]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/ChangeLog
Set reasonable limits for xdr_requests.
[thirdparty/glibc.git] / nptl / ChangeLog
CommitLineData
e054f494
RA
12013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
2
3 * pthread_create.c: Add missing #include <stdint.h> due to uint64_t or
4 uint32_t usage.
5 * sysdeps/pthread/createthread.c: Likewise.
6
ecbf4342
AJ
72013-05-14 Andreas Jaeger <aj@suse.de>
8
9 [BZ #10686]
10 * sysdeps/x86_64/tls.h (struct tcbhead_t): Add __private_ss field.
11 * sysdeps/i386/tls.h (struct tcbhead_t): Likewise.
12
66c13581
AK
132013-05-09 Andi Kleen <ak@linux.intel.com>
14
15 * tst-mutex8.c (do_test): Check for ENABLE_PI.
16
da1304bc
SP
172013-04-22 Siddhesh Poyarekar <siddhesh@redhat.com>
18
19 * pthreadP.h (check_sched_policy_attr): New inline function.
20 (check_sched_priority_attr): Likewise.
21 (check_stacksize_attr): Likewise.
22 (__kernel_cpumask_size, __determine_cpumask_size): Declare
23 extern.
24 (check_cpuset_attr): New inline function.
25 * pthread_attr_setschedparam (__pthread_attr_setschedparam):
26 Use check_sched_priority_attr.
27 * pthread_attr_setschedpolicy.c
28 (__pthread_attr_setschedpolicy): Use check_sched_policy_attr.
29 * pthread_attr_setstack.c (__pthread_attr_setstack): Use
30 check_stacksize_attr.
31 * pthread_attr_setstacksize.c (__pthread_attr_setstacksize):
32 Likewise.
33 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
34 (__pthread_attr_setaffinity_new): Use check_cpuset_attr.
35
4f682b2a
AS
362013-04-11 Andreas Schwab <schwab@suse.de>
37
38 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
39 (__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to
40 directly use absolute timeout.
41
96497bb8
CD
422013-04-07 Carlos O'Donell <carlos@redhat.com>
43
44 * sysdeps/unix/sysv/linux/sem_post.c: Include atomic.h.
45
9ac3b504
SP
462013-04-04 Siddhesh Poyarekar <siddhesh@redhat.com>
47
48 [BZ #15337]
49 * sysdeps/unix/sysv/linux/x86_64/cancellation.S
50 [IS_IN_libpthread]
51 [SHARED && defined DO_VERSIONING && !defined NO_HIDDEN]: Mark
52 __pthread_unwind hidden.
53
e57b0c61
RM
542013-03-28 Roland McGrath <roland@hack.frob.com>
55
56 * pthread_create.c (start_thread) [!SHARED]:
57 Call __call_tls_dtors only if it's not NULL.
58
e903a713
SP
592013-03-19 Siddhesh Poyarekar <siddhesh@redhat.com>
60
5cebee5d
SP
61 * allocatestack.c (allocate_stack): Use __default_pthread_attr
62 instead of __default_stacksize.
e903a713
SP
63 * nptl-init.c (__pthread_initialize_minimal_internal):
64 Likewise. Initialize guardsize.
5cebee5d 65 * pthreadP.h (__default_pthread_attr): Declare.
e903a713 66 * pthread_attr_getstacksize.c (__pthread_attr_getstacksize):
5cebee5d 67 Use __default_pthread_attr instead of __default_stacksize.
e903a713 68 * pthread_create.c (default_attr): Remove.
5cebee5d 69 (__pthread_create_2_1): Use __default_pthread_attr instead of
e903a713
SP
70 default_attr.
71 * vars.c (__default_stacksize): Remove.
5cebee5d 72 (__default_pthread_attr): New static variable to store
e903a713
SP
73 default thread attributes.
74
69854bb5
SP
752013-03-18 Siddhesh Poyarekar <siddhesh@redhat.com>
76
77 * pthread_barrier_init.c (default_attr): Rename to
78 default_barrierattr.
79 (pthread_barrier_init): Adjust for the rename.
80 * pthread_mutex_init.c (default_attr): Rename to
81 default_mutexattr.
82 (__pthread_mutex_init): Adjust for the rename.
83 * pthread_rwlock_init.c (default_attr): Rebane to
84 default_rwlockattr.
85 (__pthread_rwlock_init): Adjust for the rename.
86
05087fbb
CD
872013-03-12 Carlos O'Donell <carlos@redhat.com>
88
89 * sysdeps/unix/sysv/linux/lowlevellock.c: Include <atomic.h>.
90
b43769a3
RM
912013-03-04 Roland McGrath <roland@hack.frob.com>
92
93 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h:
94 Change multiple inclusion guard to _LINUX_I686_DL_SYSDEP_H.
95 Use #include_next.
96 (HAVE_DL_DISCOVER_OSVERSION): Remove definition, now redundant.
97 (RTLD_PRIVATE_ERRNO): Likewise.
98 (NEED_DL_SYSINFO, DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION):
99 Move macros and associated declaration to ...
100 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: ... here.
101 Change multiple include guard to _LINUX_I386_DL_SYSDEP_H.
102 Use #include_next.
103
4e9b5995
CD
1042013-03-01 Carlos O'Donell <carlos@redhat.com>
105
106 * Makefile (tests): Revert last change.
107 (tst-pthread-stack-env-ENV): Likewise.
108 * nptl-init.c (set_default_stacksize): Likewise.
109 (__pthread_initialize_minimal_internal): Likewise.
110 * tst-pthread-stack-env.c: Likewise.
111
e23872c8
SP
1122013-03-01 Siddhesh Poyarekar <siddhesh@redhat.com>
113
ace4acc8
SP
114 * tst-oddstacklimit.c: Include stdlib.h.
115
e23872c8
SP
116 * Makefile (tests): Add tst-pthread-stack-env.
117 (tst-pthread-stack-env-ENV): Set environment for test.
118 * nptl-init.c (set_default_stacksize): New function.
119 (__pthread_initialize_minimal_internal): Accept ARGC, ARGV and
120 ENVP. Initialize __ENVIRON and set __DEFAULT_STACKSIZE.
121 * tst-pthread-stack-env.c: New test case.
122
2b7ae1b2
DM
1232013-02-21 David S. Miller <davem@davemloft.net>
124
125 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h
126 (FUTEX_WAIT_REQUEUE_PI): Define.
127 (FUTEX_CMP_REQUEUE_PI): Likewise.
128 (lll_futex_wait_requeue_pi): Likewise.
129 (lll_futex_timed_wait_requeue_pi): Likewise.
130 (lll_futex_cmp_requeue_pi): Likewise.
131
9bf95cbc
CD
1322013-02-21 Carlos O'Donell <carlos@redhat.com>
133
134 * sysdeps/unix/sysv/linux/fork.c: Fix comment typo.
135
8313cb99
SP
1362013-02-18 Siddhesh Poyarekar <siddhesh@redhat.com>
137
f4804ca2
SP
138 * sysdeps/pthread/tst-timer.c: Include stdlib.h for declaration
139 of exit.
140 * tst-barrier4.c: Likewise.
141 * tst-robust7.c: Likewise.
142
8313cb99
SP
143 [BZ #14920]
144 * pthreadP.h (USE_REQUEUE_PI): New macro to check if mutex is
145 PI-aware.
146 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Use
147 PI-aware futex operations if available and mutex is PI-aware.
148 * pthread_cond_signal.c (__pthread_cond_signal): Likewise.
149 * nptl/pthread_cond_timedwait.c (__pthread_cond_timedwait):
150 Likewise.
151 * pthread_cond_wait.c (__condvar_cleanup): Adjust lock if
152 cancellation occurred just after futex returned successfully
153 from a PI operation with the mutex held.
154 (__pthread_cond_wait): Use PI-aware futex operations if
155 available and mutex is PI-aware.
156 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
157 (FUTEX_WAIT_REQUEUE_PI): Define.
158 (FUTEX_CMP_REQUEUE_PI): Likewise.
159 (lll_futex_wait_requeue_pi): Likewise.
160 (lll_futex_timed_wait_requeue_pi): Likewise.
161 (lll_futex_cmp_requeue_pi): Likewise.
162 * nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
163 (FUTEX_WAIT_REQUEUE_PI): Define.
164 (FUTEX_CMP_REQUEUE_PI): Likewise.
165 (lll_futex_wait_requeue_pi): Likewise.
166 (lll_futex_timed_wait_requeue_pi): Likewise.
167 (lll_futex_cmp_requeue_pi): Likewise.
168 * sysdeps/unix/sysv/linux/kernel-features.h: Define
169 __ASSUME_REQUEUE_PI for Linux version higher than 2.6.31.
170
903ae060
AS
1712013-02-04 Andreas Schwab <schwab@suse.de>
172
173 [BZ #14142]
174 * tst-cancel14.c: Include <sys/time.h>.
175 * tst-cancel15.c: Likewise.
176 * tst-mutex9.c: Include <stdint.h>, <stdlib.h> and <sys/time.h>.
177 * tst-stackguard1.c: Include <tls.h>
178
cfa8054f
AS
1792013-01-16 Andreas Schwab <schwab@suse.de>
180
181 [BZ #14327]
182 * sem_open.c (sem_open): Use __mktemp instead of mktemp.
183
c0609c5c
CD
1842013-01-11 Carlos O'Donell <codonell@redhat.com>
185
186 * allocatestack.c (allocate_stack): Add comment. Remove assert
187 on attr.
188
740b3dbe
L
1892013-01-11 H.J. Lu <hongjiu.lu@intel.com>
190
191 * Makefile (tst-cancel7-ARGS: Replace $(host-built-program-cmd)
192 with $(host-test-program-cmd).
193 (tst-exec4-ARGS): Likewise.
194 (tst-stackguard1-ARGS): Likewise.
195 ($(objpfx)tst-tls6.out): Don't pass $(elf-objpfx) to tst-tls6.sh.
196 Replace $(rtld-installed-name) with $(test-via-rtld-prefix).
197 * tst-tls6.sh (elf_objpfx): Removed.
198 (rtld_installed_name): Renamed to ...
199 (test_via_rtld_prefix): This.
200 (tst_tls5): Prepend ${test_via_rtld_prefix}.
201
568035b7
JM
2022013-01-02 Joseph Myers <joseph@codesourcery.com>
203
204 * All files with FSF copyright notices: Update copyright dates
205 using scripts/update-copyrights.
206
f4cf5f2d
JM
2072013-01-01 Joseph Myers <joseph@codesourcery.com>
208
209 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Reformat
210 copyright notice.
211
c93c5dec
AK
2122012-12-28 Andi Kleen <ak@linux.intel.com>
213
740b3dbe 214 * pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Convert
c93c5dec 215 to prototype.
740b3dbe 216 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock):
c93c5dec
AK
217 Likewise.
218
9c7595bd
DM
2192012-12-27 David S. Miller <davem@davemloft.net>
220
221 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h
222 (lll_futex_timed_wait_bitset): New macro.
223
8ebac778
SP
2242012-12-27 Siddhesh Poyarekar <siddhesh@redhat.com>
225
226 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (SYS_futex):
227 Remove definition.
228 (lll_futex_timed_wait): Replace assembly code with
229 INTERNAL_SYSCALL.
230 (lll_futex_timed_wait_bitset): Likewise.
231 (lll_futex_wake): Likewise.
232 (lll_futex_requeue): Likewise.
233 (lll_futex_wake_unlock): Likewise.
234
56e7d3ad
SP
2352012-12-08 Siddhesh Poyarekar <siddhesh@redhat.com>
236
237 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind):
238 Declare LOCAL_VAR as char.
239
d39b9545
JM
2402012-12-04 Joseph Myers <joseph@codesourcery.com>
241
242 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__old_sem_post):
243 Cast result of atomic_increment_val to (void) instead of storing
244 in otherwise-unused variable.
245
e30907c3
AM
2462012-12-03 Allan McRae <allan@archlinux.org>
247
248 * Makefile (LDFLAGS-tst-cond24, LDFLAGS-tst-cond25): Remove.
249
c515fb51
L
2502012-11-26 H.J. Lu <hongjiu.lu@intel.com>
251
252 * unwind.c (__pthread_unwind): Pass address of unwind_cleanup
253 to THREAD_SETMEM.
254 * sysdeps/i386/tls.h: Include <libc-internal.h>.
255 (THREAD_SETMEM): Use cast_to_integer before casting to uint64_t.
256 (THREAD_SETMEM_NC): Likewise.
257 * sysdeps/x86_64/tls.h: Include <libc-internal.h>.
258 (THREAD_SETMEM): Use cast_to_integer before casting to uint64_t.
259 (THREAD_SETMEM_NC): Likewise.
260
fac9916c
JM
2612012-11-21 Joseph Myers <joseph@codesourcery.com>
262
09e958ed
JM
263 * sysdeps/unix/sysv/linux/sem_post.c (__old_sem_post): Cast result
264 of atomic_increment_val to (void) instead of storing in
265 otherwise-unused variable.
266
fac9916c
JM
267 * pthread_cond_timedwait.c (__pthread_cond_timedwait)
268 [__NR_clock_gettime]: Cast result of INTERNAL_VSYSCALL to void
269 instead of storing in otherwise-unused variable.
270
c485e4d2
MS
2712012-11-14 Marcus Shawcroft <marcus.shawcroft@linaro.org>
272
273 * Makefile (CFLAGS-open.c, CFLAGS-open64.c, CFLAGS-pause.c)
274 (CFLAGS-recv.c, CFLAGS-send.c): Define.
275
91e0d40e
CM
2762012-11-06 Chris Metcalf <cmetcalf@tilera.com>
277
278 * tst-sem14.c (TIMEOUT): Set timeout to 10 seconds.
279 * tst-cond24.c (TIMEOUT): Increase from 10 to 20 seconds.
280
8f861542
SP
2812012-11-05 Siddhesh Poyarekar <siddhesh@redhat.com>
282
283 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Time out
284 if absolute timeout is negative.
285 [__ASSUME_FUTEX_CLOCK_REALTIME &&
286 lll_futex_timed_wait_bitset]: Use lll_futex_timed_wait_bitset.
287 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
288 Likewise.
289 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
290 Likewise.
291 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
292 (__lll_robust_timedlock_wait): Likewise.
293 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
294 (lll_futex_timed_wait_bitset): New macro.
295 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
296 (lll_futex_timed_wait_bitset): Likewise.
297
d3bd58cf
DM
2982012-11-03 David S. Miller <davem@davemloft.net>
299
300 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (BUSY_WAIT_NOP):
301 Add missing spaces.
302 (__cpu_relax): Likewise.
303
f62c8abc
L
3042012-11-02 H.J. Lu <hongjiu.lu@intel.com>
305
306 * sysdeps/x86_64/tls.h: Don't include <xmmintrin.h>.
307 (__128bits): New struct typedef.
308 (tcbhead_t): Replace __m128 with __128bits.
309
a9879fee
AJ
3102012-10-30 Aurelien Jarno <aurelien@aurel32.net>
311 Joseph Myers <joseph@codesourcery.com>
312
313 * Makefile (tst-cancel7-ARGS): Use exec in --command argument.
314
19f1dd5f
DM
3152012-10-28 David S. Miller <davem@davemloft.net>
316
317 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (BUSY_WAIT_NOP):
318 Define when we have v9 instructions available.
319 * sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S: New file.
320 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S: New
321 file.
322 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile: New
323 file.
324 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Add cpu_relax
325 to libpthread-routines.
326
b9473651
RM
3272012-10-25 Roland McGrath <roland@hack.frob.com>
328
329 * tst-cond-except.c (TEST_FUNCTION): New macro.
330
6a345e42
JM
3312012-10-25 Joseph Myers <joseph@codesourcery.com>
332
333 * Makefile ($(objpfx)tst-tls6.out): Use $(BASH) not $(SHELL) to
334 run tst-tls6.sh.
335 * tst-tls6.sh: Use /bin/bash not /bin/sh.
336
c0a1472e
RM
3372012-10-25 Roland McGrath <roland@hack.frob.com>
338
339 * tst-basic2.c (do_test): Return RESULT, not always zero.
340
341 * tst-cond25.c: Include <stdint.h>
342 (waiter): Add casts to uintptr_t between casting integer<->pointer.
343 (timed_waiter): Likewise.
344 (do_test_wait): Likewise.
345 * tst-cond-except.c (thr): Likewise.
346 (do_test): Use prototype definition.
347
cc1290d0
JM
3482012-10-24 Joseph Myers <joseph@codesourcery.com>
349 Jim Blandy <jimb@codesourcery.com>
350
351 * Makefile ($(objpfx)tst-tls6.out): Pass $(test-wrapper-env) to
352 tst-tls6.sh.
353 * tst-tls6.sh (test_wrapper_env): New variable. Use it to run
354 programs with LD_PRELOAD set.
355
6e6249d0
RM
3562012-10-24 Roland McGrath <roland@hack.frob.com>
357
358 * Makefile ($(objpfx)tst-cond11, $(objpfx)tst-cond19): Targets removed.
359 ($(objpfx)tst-sem5, $(objpfx)tst-cancel18): Likewise.
360 ((objpfx)tst-cancelx18, $(objpfx)tst-clock2): Likewise.
361 ($(objpfx)tst-rwlock14): Likewise.
362
0bf57f87
JM
3632012-10-24 Joseph Myers <joseph@codesourcery.com>
364
365 * Makefile (tests): Remove tst-oddstacklimit.
366 (test-srcs): New variable.
367 (tst-oddstacklimit-ENV): Remove.
368 [$(run-built-tests) = yes] (tests): Depend on
369 $(objpfx)tst-oddstacklimit.out.
370 [$(run-built-tests) = yes] ($(objpfx)tst-oddstacklimit.out): New
371 target.
372 * tst-oddstacklimit.c: Do not include "tst-basic1.c". Use
373 setrlimit before executing tst-basic1 test passed to --command.
374
03ac099f
JM
3752012-10-23 Joseph Myers <joseph@codesourcery.com>
376
377 * Makefile [$(cross-compiling) = no]: Change condition to
378 [$(run-built-tests) = yes].
379
166bca24
JB
3802012-10-23 Jim Blandy <jimb@codesourcery.com>
381 Joseph Myers <joseph@codesourcery.com>
382
383 * Makefile (tst-cancel7-ARGS): Use $(host-built-program-cmd).
384 (tst-exec4-ARGS): Likewise.
385 (tst-stackguard1-ARGS): Likewise.
386
aba75984
JB
3872012-10-21 Jim Blandy <jimb@codesourcery.com>
388 Joseph Myers <joseph@codesourcery.com>
389
390 * Makefile ($(objpfx)tst-cancel-wrappers.out): Pass $(NM) to
391 tst-cancel-wrappers.sh.
392 * tst-cancel-wrappers.sh: Use nm program given as first argument,
393 not hardcoded "nm".
394
37785907
SP
3952012-10-17 Siddhesh Poyarekar <siddhesh@redhat.com>
396
370539fb 397 * tst-cond25.c (do_test_wait): Don't check for return value from
37785907
SP
398 pthread_cancel.
399
9485a404
SP
4002012-10-16 Siddhesh Poyarekar <siddhesh@redhat.com>
401
402 [BZ #14652]
403 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
404 (__condvar_tw_cleanup): Adjust the mutex data structure if it
405 was locked by FUTEX_WAIT_REQUEUE_PI.
406 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait
407 (__condvar_w_cleanup): Likewise.
408 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
409 (__condvar_cleanup2): Likewise.
410 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
411 (__condvar_cleanup1): Likewise.
412
0d522f64
CD
4132012-10-10 Carlos O'Donell <carlos@systemhalted.org>
414
54a41734
CD
415 * sysdeps/pthread/pthread.h [!(defined __GNUC__ &&
416 defined __EXCEPTIONS) && defined __USE_GNU]
417 (pthread_cleanup_push_defer_np): Fix formatting.
0d522f64 418
0e3b5d6a
SP
4192012-10-10 Siddhesh Poyarekar <siddhesh@redhat.com>
420
421 [BZ #14652]
422 * Makefile (tests): New test case tst-cond25.
423 (LDFLAGS-tst-cond25): Link tst-cond25 against librt.
424 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
425 (__condvar_tw_cleanup): Lock mutex only if we don't already
426 own it.
427 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
428 (__condvar_w_cleanup): Likewise.
429 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: Add TID_MASK.
430 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
431 (__condvar_cleanup2): Lock mutex only if we don't already
432 own it.
433 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
434 (__condvar_cleanup1): Likewise.
435 * tst-cond25.c: New test case.
436
b8493de0
RM
4372012-10-09 Roland McGrath <roland@hack.frob.com>
438
439 * sysdeps/pthread/configure: Regenerated.
440 * sysdeps/x86_64/configure: Regenerated.
441
f0762164
DM
4422012-10-05 David S. Miller <davem@davemloft.net>
443
444 [BZ #14568]
445 * sysdeps/sparc/tls.h (DB_THREAD_SELF_INCLUDE): Delete.
446 (DB_THREAD_SELF): Use constants for the register offsets. Correct
447 the case of a 64-bit debugger with a 32-bit inferior.
448
1d1b34df
L
4492012-10-05 H.J. Lu <hongjiu.lu@intel.com>
450
451 [BZ #14557]
452 * Makefile (tests-static): Add tst-cancel24-static,
453 tst-cond8-static tst-mutex8-static, tst-mutexpi8-static,
454 tst-sem11-static and tst-sem12-static.
455 (tests): Likewise.
456 (LDLIBS-tst-cancel24-static): New macro.
457 * tst-cancel24-static.cc: New file.
458 * tst-cond8-static.c: Likewise.
459 * tst-mutex8-static.c: Likewise.
460 * tst-mutexpi8-static.c: Likewise.
461 * tst-sem11-static.c: Likewise.
462 * tst-sem12-static.c: Likewise.
463
c30e8edf
SP
4642012-10-05 Siddhesh Poyarekar <siddhesh@redhat.com>
465
466 [BZ #14417]
467 * Makefile (tests): New test case tst-cond24.
468 (LDFLAGS-tst-cond24): Link tst-cond24 against librt.
469 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
470 (__pthread_cond_timedwait): Unlock mutex before going back to
471 wait in PI case.
472 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
473 (__pthread_cond_wait): Likewise. Revert handling of EAGAIN
474 return from futex_wait.
475 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
476 (__pthread_cond_timedwait): Unlock mutex before going back to
477 wait in PI case. Set requeue_pi flag only if wait returned 0.
478 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
479 (__pthread_cond_wait): Likewise. Revert handling of EAGAIN
480 return from futex_wait.
481 * tst-cond24.c: New test case.
482
9043e228
RM
4832012-10-04 Roland McGrath <roland@hack.frob.com>
484
485 * pthread_create.c (start_thread): Use __madvise, not madvise.
486
b2f80a47
L
4872012-10-02 H.J. Lu <hongjiu.lu@intel.com>
488
489 * sysdeps/i386/tls.h: Update copyright years.
490
adcdc775
SP
4912012-10-02 Siddhesh Poyarekar <siddhesh@redhat.com>
492
493 * pthread_create.c (start_thread): Fix clone flag name in
494 comment to CLONE_CHILD_CLEARTID.
495 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
496 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
497 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
498 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
499 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
500 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
501
55a051c9
SP
5022012-10-01 Siddhesh Poyarekar <siddhesh@redhat.com>
503
504 [BZ #14477]
505 * Makefile (tests): Add tst-cond-except.
506 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
507 (__pthread_cond_timedwait): Mark instructions where %ebx is
508 incremented in PI case.
509 (.gcc_except_table): Add entry to jump to __condvar_tw_cleanup2
510 for the marked PI case instructions.
511 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
512 (__pthread_cond_wait): Mark instructions where %ebx is
513 incremented in PI case.
514 (.gcc_except_table): Add entry to jump to __condvar_w_cleanup2
515 for the marked PI case instructions.
516 * tst-cond-except.c: New test case.
517
9a9028b1
DL
5182012-09-24 Dmitry V. Levin <ldv@altlinux.org>
519
57c69bef
DL
520 * tst-tls6.sh: Add "set -e".
521 * Makefile: Do not specify -e option when running testsuite
522 shell scripts.
523
9a9028b1
DL
524 * tst-tls6.sh: Add copyright header.
525
620f3d26
L
5262012-09-24 H.J. Lu <hongjiu.lu@intel.com>
527
528 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Add "()" when casting
529 to uint64_t for 64-bit store.
530 (THREAD_SETMEM_NC): Likewise.
531
ae30640a
L
5322012-09-19 H.J. Lu <hongjiu.lu@intel.com>
533
534 * sysdeps/i386/tls.h (THREAD_SETMEM): Cast to uint64_t for
535 64-bit store.
536 (THREAD_SETMEM_NC): Likewise.
537
97bc38d7
JL
5382012-09-14 Jeff Law <law@redhat.com>
539
540 [BZ #14583]
541 * sysdeps/pthread/pthread.h: Fix prototype of __sigsetjmp.
542
9503345f
L
5432012-09-13 H.J. Lu <hongjiu.lu@intel.com>
544
545 [BZ #14576]
546 * sysdeps/pthread/bits/libc-lockP.h (__rtld_lock_init_recursive):
547 Removed.
548
e9ceaf25
L
5492012-09-07 H.J. Lu <hongjiu.lu@intel.com>
550
70d37fe0 551 * Makefile (LDFLAGS-tst-cancel24): Renamed to ...
e9ceaf25
L
552 (LDLIBS-tst-cancel24): This.
553
f5fce062
L
5542012-09-06 H.J. Lu <hongjiu.lu@intel.com>
555
556 [BZ #14545]
557 * Makefile (tests-static): Add tst-cancel21-static.
558 (tests): Likewise.
559 * tst-cancel21-static.c: New file.
560
26889eac
JM
5612012-09-01 Joseph Myers <joseph@codesourcery.com>
562
563 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
564 [!__ASSUME_POSIX_CPU_TIMERS]: Remove conditional code.
565 [__NR_clock_getres]: Make code unconditional.
566 (pthread_getcpuclockid): Remove code left unreachable by removal
567 of conditionals.
568
033d54a2 5692012-08-31 Joseph Myers <joseph@codesourcery.com>
b2e1c562 570
033d54a2
JM
571 [BZ #14532]
572 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Use
573 atomic_compare_and_exchange_bool_rel.
574 * tst-sem14.c: New file.
575 * Makefile (tests): Add tst-sem14.
b2e1c562 576
c75ccd4c
RM
5772012-08-15 Roland McGrath <roland@hack.frob.com>
578
579 * Makefile (CFLAGS-flockfile.c): Use $(libio-mtsafe) instead
580 of -D_IO_MTSAFE_IO.
581 (CFLAGS-ftrylockfile.c, CFLAGS-funlockfile.c): Likewise.
b2e1c562 582 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-fork.c): Likewise.
c75ccd4c 583
93a78ac4
JM
5842012-08-16 Joseph Myers <joseph@codesourcery.com>
585
586 * pthread_cond_timedwait.c (__pthread_cond_timedwait)
587 [!__ASSUME_POSIX_TIMERS]: Remove conditional code.
588 * pthread_condattr_setclock.c (pthread_condattr_setclock)
589 [!__ASSUME_POSIX_TIMERS]: Likewise.
590 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
591 (__pthread_cond_timedwait) [!__ASSUME_POSIX_TIMERS]: Likewise.
592 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
593 [!__ASSUME_POSIX_TIMERS]: Likewise.
594 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
595 (__pthread_cond_timedwait) [!__ASSUME_POSIX_TIMERS]: Likewise.
596 * sysdeps/unix/sysv/linux/timer_create.c [__NR_timer_create]: Make
597 code unconditional.
598 [!__NR-timer_create]: Remove conditional code.
599 (timer_create) [!__ASSUME_POSIX_TIMERS]: Likewise.
600 * sysdeps/unix/sysv/linux/timer_delete.c [__NR_timer_delete]: Make
601 code unconditional.
602 [!__NR_timer_delete]: Remove conditional code.
603 (timer_delete) [!__ASSUME_POSIX_TIMERS]: Likewise.
604 * sysdeps/unix/sysv/linux/timer_getoverr.c
605 [__NR_timer_getoverrun]: Make code unconditional.
606 [!__NR_timer_getoverrun]: Remove conditional code.
607 (timer_getoverrun) [!__ASSUME_POSIX_TIMERS]: Likewise.
608 * sysdeps/unix/sysv/linux/timer_gettime.c [__NR_timer_gettime]:
609 Make code unconditional.
610 [!__NR_timer_gettime]: Remove conditional code.
611 (timer_gettime) [!__ASSUME_POSIX_TIMERS]: Likewise.
612 * sysdeps/unix/sysv/linux/timer_routines.c [__NR_timer_create]:
613 Make code unconditional.
614 [!__ASSUME_POSIX_TIMERS]: Remove conditional code.
615 * sysdeps/unix/sysv/linux/timer_settime.c [__NR_timer_settime]:
616 Make code unconditional.
617 [!__NR_timer_settime]: Remove conditional code.
618 (timer_settime) [!__ASSUME_POSIX_TIMERS]: Likewise.
619 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
620 (__pthread_cond_timedwait) [!__ASSUME_POSIX_TIMERS]: Remove
621 conditional code.
622
309becf1
MK
6232012-08-15 Tom de Vries <vries@codesourcery.com>
624 Maxim Kuvyrkov <maxim@codesourcery.com>
625
626 * sysdeps/pthread/bits/libc-lockP.h (__libc_lock_lock)
627 (__libc_lock_trylock): Allow pre-existing definitions.
628
ef400973
MK
6292012-08-15 Maxim Kuvyrkov <maxim@codesourcery.com>
630
631 * pthread_spin_lock.c: New file.
632 * pthread_spin_trylock.c: New file.
633
b36137f1
JM
6342012-08-08 Joseph Myers <joseph@codesourcery.com>
635
636 * allocatestack.c (setxid_signal_thread) [__ASSUME_TGKILL]: Make
637 code unconditional.
638 (setxid_signal_thread) [!__ASSUME_TGKILL]: Remove conditional code.
639 * pthread_cancel.c (pthread_cancel) [__ASSUME_TGKILL]: Make code
640 unconditional.
641 (pthread_cancel) [!__ASSUME_TGKILL]: Remove conditional code.
642 * sysdeps/pthread/createthread.c (do_clone) [__ASSUME_TGKILL]:
643 Make code unconditional.
644 (do_clone) [!__ASSUME_TGKILL]: Remove conditional code.
645 * sysdeps/unix/sysv/linux/pt-raise.c (raise) [__ASSUME_TGKILL ||
646 __NR_tgkill]: Make code unconditional.
647 (raise) [__ASSUME_TGKILL]: Likewise.
648 (raise) [!__ASSUME_TGKILL]: Remove conditional code.
649 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill)
650 [__ASSUME_TGKILL]: Make code unconditional.
651 (__pthread_kill) [!__ASSUME_TGKILL]: Remove conditional code.
652 * sysdeps/unix/sysv/linux/raise.c (raise) [__ASSUME_TGKILL ||
653 __NR_tgkill]: Make code unconditional.
654 (raise) [__ASSUME_TGKILL]: Likewise.
655 (raise) [!__ASSUME_TGKILL]: Remove conditional code.
656
93df14ee
JM
6572012-08-07 Joseph Myers <joseph@codesourcery.com>
658
659 * sysdeps/pthread/createthread.c (create_thread)
660 [!__ASSUME_NO_CLONE_DETACHED]: Remove conditional code.
661
85fe1997
JM
6622012-08-03 Joseph Myers <joseph@codesourcery.com>
663
664 * nptl-init.c (sigcancel_handler) [__ASSUME_CORRECT_SI_PID]: Make
665 code unconditional.
666 (sighandler_setxid) [__ASSUME_CORRECT_SI_PID]: Likewise.
667
fc56c5bb
SP
6682012-07-28 Siddhesh Poyarekar <siddhesh@redhat.com>
669
670 * tst-pthread-getattr.c (MAX_STACK_SIZE): New macro.
671 (pagesize): New static variable.
672 (allocate_and_test): Return MEM. Rename parameter to TARGET.
673 (check_stack_top): New local variables MEM and PAGEMASK. Cap
674 stack size to MAX_STACK_SIZE. Call allocate_and_test for
675 halfway up the stack top page. Verify that the top page was
676 written into.
677 (do_test): Get pagesize using sysconf.
678
842a39cd
AS
6792012-07-25 Andreas Schwab <schwab@linux-m68k.org>
680
681 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Remove pseudo_end
682 label.
683 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Likewise.
684 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO):
685 Likewise.
686
77b32274
SP
6872012-07-25 Siddhesh Poyarekar <siddhesh@redhat.com>
688
689 * tst-pthread-getattr.c: Revert last change.
690
b2ae49da
SP
6912012-07-20 Siddhesh Poyarekar <siddhesh@redhat.com>
692
693 * tst-pthread-getattr.c (MAX_STACK_SIZE): New max cap for stack
694 size.
695 (_MIN): New macro.
696 (allocate_and_test): Return STACKADDR. Access STACKADDR instead
697 of MEM to test.
698 (check_stack_top): Read valued written into STACKADDR in
699 allocate_and_test. Cap stack size to MAX_STACK_SIZE.
700
a9843058
SP
7012012-07-19 Siddhesh Poyarekar <siddhesh@redhat.com>
702
703 * nptl-init.c (sighandler_setxid): Fix the comment that
704 describes it.
705
4b2c8da7
TS
7062012-06-23 Thomas Schwinge <thomas@codesourcery.com>
707
708 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
709 (__lll_robust_timedlock_wait): Simplify CFI directives.
710
18b5e737
SP
7112012-06-20 Siddhesh Poyarekar <siddhesh@redhat.com>
712
713 [BZ #12416]
714 * Makefile (tests): Add test case.
715 * pthread_getattr_np.c (pthread_getattr_np): Deduct pages below
716 the __libc_stack_end page from stacksize. Truncate stacksize to
717 make it page aligned when it is computed from RLIMIT_STACK.
718 * tst-pthread-getattr.c: New test case. Verify that stackaddr is
719 accessible.
720
24a6dbed
CSLL
7212012-06-07 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
722
723 [BZ #14205]
724 * sysdeps/sparc/sparc32/pthread_spin_lock.S: Do not use v9
725 branches.
726
4af3879c
SP
7272012-06-04 Siddhesh Poyarekar <siddhesh@redhat.com>
728 Jakub Jelinek <jakub@redhat.com>
729
730 [BZ #14188]
731 * sysdeps/pthread/pthread.h
732 [!(defined __GNUC__ && defined __EXCEPTIONS)]
733 (pthread_cleanup_push, pthread_cleanup_push_defer_np): Use
734 __libc_unlikely instead of __builtin_expect.
735
0e20515a
L
7362012-05-30 H.J. Lu <hongjiu.lu@intel.com>
737
738 [BZ #14117]
739 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Removed.
740 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
741 * sysdeps/unix/sysv/linux/i386/Implies: New file.
742 * sysdeps/unix/sysv/linux/x86_64/Implies: Likewise.
743 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Renamed
744 to ...
745 * sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h: This.
746 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Renamed
747 to ...
748 * sysdeps/unix/sysv/linux/x86/bits/semaphore.h: This.
749
865eac65
AS
7502012-05-30 Andreas Schwab <schwab@linux-m68k.org>
751
752 [BZ #14132]
753 * nptl-init.c (pthread_functions): Remove use of INTUSE and
754 _internal aliases.
755 (__pthread_initialize_minimal_internal): Likewise.
756 * sem_open.c: Likewise.
757 * sem_unlink.c: Likewise.
758 * pthreadP.h: Replace _internal aliases by hidden_proto
759 declarations.
760 * pthread_getspecific.c: Replace _internal alias by hidden_def.
761 * pthread_key_create.c: Likewise.
762 * pthread_mutex_destroy.c: Likewise.
763 * pthread_mutex_init.c: Likewise.
764 * pthread_mutex_lock.c: Likewise.
765 * pthread_mutex_unlock.c: Likewise.
766 * pthread_once.c: Likewise.
767 * pthread_rwlock_rdlock.c: Likewise.
768 * pthread_rwlock_unlock.c: Likewise.
769 * pthread_rwlock_wrlock.c: Likewise.
770 * pthread_setspecific.c: Likewise.
771 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
772 Likewise.
773 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
774 Likewise.
775 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
776 Likewise.
777 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
778 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
779 * sysdeps/unix/sysv/linux/s390/pthread_once.c: Likewise.
780 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Likewise.
781 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
782 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
783 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
784 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
785 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
786 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
787 Likewise.
788 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
789 Likewise.
790 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
791 Likewise.
792
65a4de4e
CLT
7932012-05-27 Chung-Lin Tang <cltang@codesourcery.com>
794
d701a1ab
CLT
795 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO, LOAD_ARGS_1)
796 (LOAD_ARGS_2 ,LOAD_ARGS_3 ,LOAD_ARGS_4): Add CFI restores.
797
65a4de4e
CLT
798 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_lock_wait_private)
799 (__lll_lock_wait, __lll_timedlock_wait, __lll_timedwait_tid): Add CFI
800 directives.
801 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
802 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): Likewise.
803 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
804 (pthread_barrier_wait): Likewise.
805 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
806 (__pthread_cond_broadcast): Likewise.
807 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
808 (__pthread_cond_signal): Likewise.
809 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
810 (__pthread_cond_timedwait): Likewise.
811 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S (__pthread_cond_wait):
812 Likewise.
813 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S
814 (__pthread_rwlock_rdlock): Likewise.
815 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
816 (pthread_rwlock_timedrdlock): Likewise.
817 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
818 (pthread_rwlock_timedwrlock): Likewise.
819 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S
820 (__pthread_rwlock_unlock): Likewise.
821 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S
822 (__pthread_rwlock_wrlock): Likewise.
823 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post): Likewise.
824 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Likewise.
825 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
826 Likewise.
827 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
828
9c6ea9fa
SP
8292012-05-26 Siddhesh Poyarekar <siddhesh@redhat.com>
830
831 [BZ #12416]
832 * nptl/pthread_getattr_np.c (pthread_getattr_np): Use
833 __libc_stack_end rounded to the end of containing page as the
834 real stack end.
835
17557282
RH
8362012-05-25 Rayson Ho <rho@redhat.com>
837
838 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Low-level SystemTap
839 probes for i386.
840 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
841 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
842 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
843 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
844 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
845 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
846 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
847 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
848
5acf7263
RM
8492012-05-25 Rayson Ho <rho@redhat.com>
850 Roland McGrath <roland@hack.frob.com>
851
852 * DESIGN-systemtap-probes.txt: New file.
853 * pthread_cond_broadcast.c: SystemTap probes.
854 * pthread_cond_init.c: Likewise.
855 * pthread_cond_signal.c: Likewise.
856 * pthread_cond_wait.c: Likewise.
857 * pthread_cond_destroy.c: Likewise.
858 * pthread_create.c: Likewise.
859 * pthread_join.c: Likewise.
860 * pthread_mutex_destroy.c: Likewise.
861 * pthread_mutex_init.c: Likewise.
862 * pthread_mutex_lock.c: Likewise.
863 * pthread_mutex_timedlock.c: Likewise.
864 * pthread_mutex_unlock.c: Likewise.
865 * pthread_rwlock_destroy.c: Likewise.
866 * pthread_rwlock_rdlock.c: Likewise.
867 * pthread_rwlock_unlock.c: Likewise.
868 * pthread_rwlock_wrlock.c: Likewise.
869 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
870 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
871 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
872 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
873 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
874 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
875 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
876 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
877
3a097cc7
RM
8782012-05-24 Roland McGrath <roland@hack.frob.com>
879
880 * pthread_create.c (start_thread): Define pthread_start LIBC_PROBE.
881
de7f5ce7
AJ
8822012-05-17 Andreas Jaeger <aj@suse.de>
883
884 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
885 (HAVE_DL_DISCOVER_OSVERSION): Don't declare _dl_discover_osversion
886 only for older kernels.
887
04807399
JM
8882012-05-15 Joseph Myers <joseph@codesourcery.com>
889
890 * pthreadP.h [!__NR_set_robust_list] (__NR_set_robust_list): Do
891 not define.
892
f16af742
L
8932012-05-15 H.J. Lu <hongjiu.lu@intel.com>
894
895 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_lock): Load
896 futex pointer into RDI_LP. Use RSP_LP to operate on stack.
897 (lll_robust_lock): Likewise.
898 (lll_cond_lock): Likewise.
899 (lll_robust_cond_lock): Likewise.
900 (lll_timedlock): Likewise.
901 (lll_robust_timedlock): Likewise.
902 (lll_unlock): Likewise.
903 (lll_robust_unlock): Likewise.
904
d9754f55
L
9052012-05-15 H.J. Lu <hongjiu.lu@intel.com>
906
907 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use
908 LP_OP(cmp) and RCX_LP on dep_mutex pointer.
909
dde05f00
L
9102012-05-15 H.J. Lu <hongjiu.lu@intel.com>
911
912 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Use LP_OP(op)
913 on NWAITERS.
914 (__gcc_personality_v0): Replace 8-byte data alignment with
915 LP_SIZE alignment and .quad with ASM_ADDR.
916
9dba3b5c
L
9172012-05-15 H.J. Lu <hongjiu.lu@intel.com>
918
919 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Use LP_OP(op)
920 on NWAITERS.
921 (__gcc_personality_v0): Replace 8-byte data alignment with
922 LP_SIZE alignment and .quad with ASM_ADDR.
923
5f658cf1
L
9242012-05-15 H.J. Lu <hongjiu.lu@intel.com>
925
926 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Use LP_OP(cmp) on
927 NWAITERS, which is unsigned long int.
928
6cae4b26
L
9292012-05-15 H.J. Lu <hongjiu.lu@intel.com>
930
931 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
932 (__gcc_personality_v0): Replace 8-byte data alignment with
933 LP_SIZE alignment and .quad with ASM_ADDR.
934
592f90e6
L
9352012-05-15 H.J. Lu <hongjiu.lu@intel.com>
936
937 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Use
938 LP_OP(cmp), RSI_LP and R8_LP on dep_mutex pointer. Load
939 __vdso_clock_gettime pointer into RAX_LP.
940 (__gcc_personality_v0): Replace 8-byte data alignment with
941 LP_SIZE alignment and .quad with ASM_ADDR.
942
0e8860ad
L
9432012-05-15 H.J. Lu <hongjiu.lu@intel.com>
944
945 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Use
946 LP_OP(cmp), RSI_LP and R8_LP on dep_mutex pointer. Load
947 __vdso_clock_gettime pointer into RAX_LP.
948 (__gcc_personality_v0): Replace 8-byte data alignment with
949 LP_SIZE alignment and .quad with ASM_ADDR.
950
30996e93
L
9512012-05-15 H.J. Lu <hongjiu.lu@intel.com>
952
953 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Use
954 LP_OP(cmp) and R8_LP on dep_mutex pointer.
955
289ac435
L
9562012-05-15 H.J. Lu <hongjiu.lu@intel.com>
957
958 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Use LP_OP(mov)
959 to update pointer in memory. Load pointer into RDI_LP.
960
10f74fbc
L
9612012-05-15 H.J. Lu <hongjiu.lu@intel.com>
962
963 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
964 (LLL_STUB_UNWIND_INFO_START): Align label to LP_SIZE instead
965 of 8.
966 (LLL_STUB_UNWIND_INFO_END): Likewise.
967 (lll_timedlock): Load timeout pointer into RDX_LP.
968 (lll_robust_timedlock): Likewise.
969
439bf404
SP
9702012-05-15 Siddhesh Poyarekar <siddhesh@redhat.com>
971 Jakub Jelinek <jakub@redhat.com>
972
973 [BZ #13613]
974 * Makefile (tests): Add test cases.
975 * descr.h (struct pthread): Add a comment describing multiple_threads.
976 * pthreadP.h (__pthread_multiple_threads): Expand comment to include
977 single-process case.
978 * pthread_cancel.c (pthread_cancel): Enable multiple_threads
979 before setting cancelstate of the thread.
980 * sysdeps/unix/sysv/linux/libc_multiple_threads.c
981 (__libc_multiple_threads): Add explanatory comment.
982 * tst-cancel-self-cancelstate.c: New test case.
983 * tst-cancel-self-canceltype.c: Likewise.
984 * tst-cancel-self-cleanup.c: Supporting file for test cases.
985 * tst-cancel-self-testcancel.c: New test case.
986 * tst-cancel-self.c: Likewise.
987 * vars.c: Expand comment to include single-process case.
988
2949684c
L
9892012-05-14 H.J. Lu <hongjiu.lu@intel.com>
990
991 * sysdeps/x86_64/tls.h: Don't include <bits/wordsize.h>.
992 (tcbhead_t): Remove __x86_64__ check. Align rtld_savespace_sse
993 to 32 bytes.
994
245a11d7
L
9952012-05-14 H.J. Lu <hongjiu.lu@intel.com>
996
997 * sysdeps/pthread/pthread.h (__PTHREAD_RWLOCK_INT_FLAGS_SHARED):
998 New.
999 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Check
1000 __PTHREAD_RWLOCK_INT_FLAGS_SHARED instead of __WORDSIZE.
1001
0b254d8f
L
10022012-05-14 H.J. Lu <hongjiu.lu@intel.com>
1003
1004 * shlib-versions: Move x86_64-.*-linux.* entry to ...
1005 * sysdeps/x86_64/64/shlib-versions: Here. New file.
1006 * sysdeps/x86_64/x32/shlib-versions: New file.
1007
b8caea2c
L
10082012-05-14 H.J. Lu <hongjiu.lu@intel.com>
1009
1010 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Define x32
1011 __SIZEOF_PTHREAD_XXX_T.
1012 (__pthread_internal_list): Check __x86_64__ instead of __WORDSIZE.
1013 (pthread_mutex_t): Likewise.
1014 (pthread_rwlock_t): Likewise.
1015 (__PTHREAD_RWLOCK_INT_FLAGS_SHARED): New. Defined if __x86_64__
1016 is defined.
1017
60d45b36
L
10182012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1019
1020 * sysdeps/x86_64/x32/tls.h: New file.
1021
a04e06bc
L
10222012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1023
1024 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Use uint64_t on 64-bit
1025 integer.
1026 (THREAD_SETMEM_NC): Likewise.
1027
512ec530
L
10282012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1029
1030 * sysdeps/x86_64/tls.h (THREAD_SELF): Replace movq/%q0 with
1031 mov/%0.
1032
c0d2c853
L
10332012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1034
1035 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
1036 (__cleanup_fct_attribute): Check __x86_64__ instead of
eae2d36a 1037 __WORDSIZE.
c0d2c853 1038
1f59b0b1
L
10392012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1040
1041 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER): Check
1042 __PTHREAD_MUTEX_HAVE_PREV instead of __WORDSIZE.
1043 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Likewise.
1044 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
1045 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
1046
c252ec15
L
10472012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1048
1049 * pthread_create.c (start_thread): Check __PTHREAD_MUTEX_HAVE_PREV
1050 instead of __WORDSIZE.
1051
be971a2b
TS
10522012-05-10 Thomas Schwinge <thomas@schwinge.name>
1053
1054 [BZ #3748]
1055 * sysdeps/pthread/bits/libc-lockP.h (__libc_once_get): New macro.
1056
e1b4354e
CLT
10572012-05-09 Chung-Lin Tang <cltang@codesourcery.com>
1058
1059 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
1060 (__pthread_cond_timedwait): Use CFI directives.
1061 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
1062 (__pthread_cond_wait): Likewise.
1063 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Likewise.
1064 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
1065
76e835cf
DM
10662012-05-03 David S. Miller <davem@davemloft.net>
1067
1068 * sysdeps/sparc/sparc64/pthread_spin_unlock.S: Fix thinko, we
1069 always have to return 0, especially for the pthread_spin_init
1070 alias.
1071 * sysdeps/sparc/sparc32/pthread_spin_lock.S: Add missing trailing
1072 newline.
1073 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.S: Likewise.
1074 * sysdeps/sparc/sparc64/pthread_spin_lock.S: Likewise.
1075
e2dbf201
DM
10762012-05-02 David S. Miller <davem@davemloft.net>
1077
1078 * sysdeps/sparc/sparc64/pthread_spin_lock.S: New.
1079 * sysdeps/sparc/sparc64/pthread_spin_lock.c: Delete.
1080 * sysdeps/sparc/sparc64/pthread_spin_unlock.S: New.
1081 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: Delete.
1082 * sysdeps/sparc/sparc64/pthread_spin_trylock.S: New.
1083 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: Delete.
1084 * sysdeps/sparc/sparc64/pthread_spin_init.c: New.
1085 * sysdeps/sparc/sparc32/pthread_spin_lock.S: New.
1086 * sysdeps/sparc/sparc32/pthread_spin_lock.c: Delete.
1087 * sysdeps/sparc/sparc32/pthread_spin_trylock.S: New.
1088 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: Delete.
1089 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.S: New.
1090 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: Delete.
1091 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.S: New.
1092 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: Delete.
1093 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.S: New.
1094 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: Delete.
1095 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_init.c: New.
1096
d4c2917f
AM
10972012-05-02 Allan McRae <allan@archlinux.org>
1098
1099 * Makefile: (LDFLAGS-tst-tls5): Use $(no-as-needed).
1100 (LDFLAGS-tst-cancel24): Likewise.
1101
b93d565a
PP
11022012-05-02 Paul Pluzhnikov <ppluzhnikov@google.com>
1103
1104 * sysdeps/i386/pthread_spin_lock.S: New.
1105 * sysdeps/i386/pthread_spin_lock.c: Delete.
1106 * sysdeps/x86_64/pthread_spin_lock.S: New.
1107 * sysdeps/x86_64/pthread_spin_lock.c: Delete.
1108
6d5c57fa
AS
11092012-04-28 Andreas Schwab <schwab@linux-m68k.org>
1110
1111 * Makefile ($(objpfx)tst-stack3-mem, $(objpfx)tst-tls6.out): Don't
1112 run when cross-compiling.
1113
6e236b92
SP
11142012-04-26 Siddhesh Poyarekar <siddhesh@redhat.com>
1115
1116 * sysdeps/pthread/unwind-forcedunwind.c: Include gnu/lib-names.h
1117 instead of libgcc_s.h.
1118
0cec7c54
PP
11192012-04-20 Paul Pluzhnikov <ppluzhnikov@google.com>
1120
1121 * sysdeps/x86_64/tls.h (TLS_GET_FS, TLS_SET_FS): Delete.
1122
7ac88e38
DM
11232012-03-27 David S. Miller <davem@davemloft.net>
1124
1125 * tst-cond16.c (do_test): Use a thread stack size which is either
1126 PTHREAD_STACK_MIN or the page size, whichever is larger.
1127 * tst-cond18.c (do_test): Likewise.
1128
24d8f4b7
L
11292012-03-19 H.J. Lu <hongjiu.lu@intel.com>
1130
1131 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Use
1132 register char * __asm__("rsp") to get stack frame.
1133
4adaaafc
L
11342012-03-19 H.J. Lu <hongjiu.lu@intel.com>
1135
1136 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (SYS_futex): Use
1137 __NR_futex directly.
1138
ca7b8af5
L
11392012-03-19 H.J. Lu <hongjiu.lu@intel.com>
1140
1141 * unwind.c (unwind_stop): Cast _Unwind_GetCFA return to
1142 _Unwind_Ptr first.
1143
7e7fa5f8
DM
11442012-03-16 David S. Miller <davem@davemloft.net>
1145
1146 [BZ #13844]
1147 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: Include using <..>
1148 instead of "...".
1149 * sysdeps/unix/sysv/linux/sparc/sparc32/libc-lowlevellock.c:
1150 Delete, not needed.
1151
c4a7b16e
DM
11522012-03-15 David S. Miller <davem@davemloft.net>
1153
1154 [BZ #13844]
1155 * sysdeps/unix/sysv/linux/sparc/sparc32/libc-lowlevellock.c: New file.
1156
c524201a
PE
11572012-03-09 Paul Eggert <eggert@cs.ucla.edu>
1158
1159 [BZ #13673]
1160 * pt-crti.S: Replace FSF snail mail address with URL.
1161
90ad551f
JM
11622012-03-09 Joseph Myers <joseph@codesourcery.com>
1163
1164 * sysdeps/pthread/pthread.h (__need_clockid_t, __need_timespec):
1165 Do not define before including <time.h>.
1166
c64bf5fe
DM
11672012-03-08 David S. Miller <davem@davemloft.net>
1168
1169 * sysdeps/unix/sysv/linux/sparc/sem_post.c: Update copyright year.
1170
48aff776
TS
11712012-03-08 Thomas Schwinge <thomas@codesourcery.com>
1172
2edd9a79
TS
1173 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
1174 Check for timestamp before the Epoch.
1175
c564a812
TS
1176 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Fix
1177 updating nwaiters.
1178
48aff776
TS
1179 * tst-sem13.c (do_test): Add another test case.
1180 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
1181 Fix updating nwaiters.
1182
e7dbb1be
JM
11832012-03-07 Joseph Myers <joseph@codesourcery.com>
1184
1185 [BZ #10545]
1186 * sysdeps/pthread/configure.in (libc_cv_forced_unwind): Change
1187 link test to a compile test.
1188 (libc_cv_c_cleanup): Likewise. Declare puts rather than including
1189 <stdio.h>.
1190 * sysdeps/pthread/configure: Regenerated.
1191
a4300c7a
UD
11922012-03-07 Ulrich Drepper <drepper@gmail.com>
1193
1194 * Makefile (distribute): Remove variable.
1195
840df61e
TS
11962012-01-23 Thomas Schwinge <thomas@codesourcery.com>
1197
1198 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Get rid of
1199 superfluous assignment.
1200 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c (sem_timedwait):
1201 Likewise.
1202 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
1203 (sem_timedwait): Likewise.
1204
9463518d
UD
12052012-03-06 Ulrich Drepper <drepper@gmail.com>
1206
abdf2e19
UD
1207 * sysdeps/pthread/bits/libc-lock.h: Move information not needed in
1208 installed headers to...
9463518d
UD
1209 * sysdeps/pthread/bits/libc-lockP.h: ...here. New file.
1210
e9258400
DM
12112012-03-06 David S. Miller <davem@davemloft.net>
1212
1213 * sysdeps/unix/sysv/linux/sparc/sem_post.c (__new_sem_post): Use
1214 atomic_increment and remove unused local variable.
1215 (__old_sem_post): Likewise.
1216
22f9d9df
DM
12172012-02-27 David S. Miller <davem@davemloft.net>
1218
9463518d
UD
1219 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Don't refer to
1220 non-existing __pthread_attr.
22f9d9df
DM
1221 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1222 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1223 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
1224 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1225 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1226
4efeffc1
UD
12272012-02-26 Ulrich Drepper <drepper@gmail.com>
1228
d94a4670
UD
1229 * sysdeps/pthread/pthread.h: Define __need_clockid_t for __USE_XOPEN2K.
1230
4efeffc1
UD
1231 * sysdeps/pthread/pthread.h: Define __need_timespec before including
1232 <time.h>.
1233 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Name pthread_attr_t
1234 union.
1235 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1236 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1237 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
1238 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1239 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1240
0e7dfaef
JM
12412012-02-21 Joseph Myers <joseph@codesourcery.com>
1242
1243 [BZ #13695]
1244 * Makefile (generated): Remove crti.S, crtn.S, defs.h and
1245 pt-initfini.s.
1246 [crti.S not in sysdirs] (omit-deps): Do not append.
1247 [crti.S not in sysdirs] (CFLAGS-pt-initfini.s): Remove variable.
1248 [crti.S not in sysdirs] (pt-initfini.c): Remove vpath directive.
1249 [crti.S not in sysdirs] ($(objpfx)crti.S): Remove rule.
1250 [crti.S not in sysdirs] ($(objpfx)crtn.S): Likewise.
1251 [crti.S not in sysdirs] ($(objpfx)defs.h): Likewise.
1252 [crti.S not in sysdirs] ($(objpfx)crti.o): Likewise.
1253 [crti.S not in sysdirs] ($(objpfx)crtn.o): Likewise.
1254 [crti.S in sysdirs] (extra-objs): Append unconditionally.
1255 [crti.S in sysdirs] ($(objpfx)crti.o): Define rule
1256 unconditionally.
1257 * sysdeps/pthread/pt-initfini.c: Remove file.
1258
e3b69ca7
RH
12592012-02-16 Richard Henderson <rth@twiddle.net>
1260
959e12e3
UD
1261 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: Remove file.
1262 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: Remove file.
e3b69ca7 1263
df83af67
KK
12642012-02-15 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1265
1266 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Remove file.
1267
f63f3380
DM
12682012-02-16 David S. Miller <davem@davemloft.net>
1269
1270 * sysdeps/sparc/Makefile: Add -fPIC when building pt-crti.S and crtn.S
1271
d463ab10
MP
12722012-02-15 Marek Polacek <polacek@redhat.com>
1273
1274 * sysdeps/unix/sysv/linux/x86_64/Makefile: Remove file.
1275
59ba27a6
PE
12762012-02-09 Paul Eggert <eggert@cs.ucla.edu>
1277
1278 Replace FSF snail mail address with URLs, as per GNU coding standards.
1279
28328403
AS
12802012-02-08 Andreas Schwab <schwab@linux-m68k.org>
1281
1282 * Makefile (extra-objs) [crti.S in sysdirs]: Add pt-crti.o.
1283
3add8e13
JM
12842012-02-08 Joseph Myers <joseph@codesourcery.com>
1285
1286 Support crti.S and crtn.S provided directly by architectures.
1287 * Makefile [crti.S in sysdirs] (omit-deps): Do not append.
1288 [crti.S in sysdirs] (CFLAGS-pt-initfini.s): Do not define variable.
1289 [crti.S in sysdirs] ($(objpfx)pt-initfini.s): Disable rule.
1290 [crti.S in sysdirs] ($(objpfx)crti.S): Likewise.
1291 [crti.S in sysdirs] ($(objpfx)crtn.S): Likewise.
1292 [crti.S in sysdirs] ($(objpfx)defs.h): Likewise.
1293 [crti.S in sysdirs] ($(objpfx)crti.o): Likewise.
1294 [crti.S in sysdirs] ($(objpfx)crtn.o): Likewise.
1295 [crti.S in sysdirs] (pt-initfini.c): Remove vpath directive.
1296 [crti.S in sysdirs] ($(objpfx)crti.o): New rule.
1297 * pt-crti.S: New file.
1298 * sysdeps/unix/sysv/linux/i386/Makefile: Remove file.
1299
9a1d9254
JM
13002012-02-03 Joseph Myers <joseph@codesourcery.com>
1301
1302 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
1303 macros for PIC register setup.
1304 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
1305 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1306 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
1307 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1308 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
1309
5452bffe
UD
13102012-01-11 Marek Polacek <polacek@redhat.com>
1311
1312 * forward.c (FORWARD_NORETURN): Define macro.
1313 (__pthread_unwind): Use FORWARD_NORETURN macro to avoid warning.
1314 (__pthread_exit): Likewise.
1315
356fa562
UD
13162012-01-10 Ulrich Drepper <drepper@gmail.com>
1317
8898f020
UD
1318 * sysdeps/pthread/pthread.h: Add const attribute to pthread_equal.
1319
356fa562
UD
1320 * pthreadP.h: Add noreturn to __pthread_exit.
1321 * sysdeps/pthread/pthread-functions.h: Likewise for ptr___pthread_exit.
1322
f5420cf0
AZ
13232011-12-30 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
1324
1325 * sysdeps/unix/sysv/linux/aio_misc.h (__aio_create_helper_thread):
1326 Call pthread_attr_setstacksize() with result of
1327 __pthread_get_minstack() to account for application TLS usage.
1328
c473bd1c
MP
13292012-01-08 Marek Polacek <polacek@redhat.com>
1330
1331 * sysdeps/unix/sysv/linux/mq_notify.c: Include <nptl/pthreadP.h>.
1332
120ced3f
UD
13332012-01-07 Ulrich Drepper <drepper@gmail.com>
1334
a784e502
UD
1335 [BZ #13553]
1336 * pthreadP.h: Use const instead of __const.
1337 * semaphore.h: Likewise.
1338 * sysdeps/pthread/bits/libc-lock.h: Likewise.
1339 * sysdeps/pthread/bits/sigthread.h: Likewise.
1340 * sysdeps/pthread/pthread.h: Likewise.
1341
0269750c
UD
1342 * Makefile: Remove elf=yes test, only ELF is supported.
1343
ecb6fb48
UD
1344 * shlib-versions: Remove entries for ports architectures.
1345
120ced3f
UD
1346 In case anyone cares, the IA-64 architecture could move to ports.
1347 * sysdeps/ia64/*: Removed.
1348 * sysdeps/unix/sysv/linux/ia64/*: Removed.
1349
2c1094bd
UD
13502011-12-22 Ulrich Drepper <drepper@gmail.com>
1351
ee9e0640
UD
1352 * sysdeps/pthread/gai_misc.h (__gai_create_helper_thread): Use
1353 __pthread_get_minstack.
1354 * sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Likewise.
1355
2c1094bd
UD
1356 [BZ #13088]
1357 * sysdeps/unix/sysv/linux/timer_routines.c: Get minimum stack size
1358 through __pthread_get_minstack.
1359 * nptl-init.c (__pthread_initialize_minimal_internal): Get page size
1360 directly from _rtld_global_ro.
1361 (__pthread_get_minstack): New function.
1362 * pthreadP.h: Declare __pthread_get_minstack.
1363 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_get_minstack.
1364
60e8585f
UD
13652011-12-21 Ulrich Drepper <drepper@gmail.com>
1366
1367 [BZ #13515]
1368 * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
1369 Correct reading name from file.
1370
caafb2b0
CD
13712011-12-14 Carlos O'Donell <carlos@systemhalted.org>
1372
1373 * allocatestack.c (allocate_stack): Return errno on failure.
1374
e988dba9
JL
13752011-12-14 Jeff Law <law@redhat.com>
1376
1377 [BZ #5245]
1378 * pthread_create.c (__pthread_create_2_1): Translate ENOMEM to EAGAIN.
1379
ade60c89
UD
13802011-11-28 Andreas Schwab <schwab@redhat.com>
1381
1382 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Handle
1383 EAGAIN from FUTEX_WAIT_REQUEUE_PI.
1384 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1385
312be3f9
UD
13862011-11-15 Ulrich Drepper <drepper@gmail.com>
1387
1388 * pthread_getattr_np.c (pthread_getattr_np): Set FD_CLOEXEC for
1389 /proc/self/maps.
1390
c2b18f7a
UD
13912011-10-29 Ulrich Drepper <drepper@gmail.com>
1392
1393 [BZ #13358]
1394 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1395 (__pthread_cond_timedwait): Initialize %r15 correctly also for code
1396 path for kernels with FUTEX_CLOCK_REALTIME.
1397 Debugged by H.J. Lu <hjl.tools@gmail.com>.
1398
3871f58f
AS
13992011-10-27 Andreas Schwab <schwab@redhat.com>
1400
1401 [BZ #13344]
1402 * sysdeps/pthread/pthread.h: Use __THREADNL instead of __THREAD
1403 for memory synchronization functions.
1404 * semaphore.h: Likewise.
1405
485683c3
UD
14062011-10-24 Ulrich Drepper <drepper@gmail.com>
1407
1408 * tst-cancel7.c: Avoid warning.
1409 * tst-mutex6.c: Likewise.
1410 * tst-mutex9.c: Likewise.
1411 * tst-mutexpi6.c: Likewise.
1412
10d005f7
UD
14132011-10-23 Ulrich Drepper <drepper@gmail.com>
1414
1415 * sysdeps/i386/tls.h: Remove #include <list.h>.
1416
fd5bdc09
UD
14172011-10-15 Ulrich Drepper <drepper@gmail.com>
1418
10d005f7 1419 * pthread_create.c (start_thread): Call __ctype_init.
fd5bdc09 1420
7a775e6b
AS
14212011-09-15 Andreas Schwab <schwab@redhat.com>
1422
1423 * sysdeps/pthread/list.h: Define only list_t if __need_list_t is
1424 defined.
1425 (list_add): Add atomic_write_barrier.
1426 * descr.h: Define __need_list_t before including <list.h>.
1427 * nptl-init.c: Include <list.h>
1428 * allocatestack.c: Likewise.
1429
83cd1420
UD
14302011-09-11 Ulrich Drepper <drepper@gmail.com>
1431
1432 * sysdeps/i386/tls.h: Remove HAVE_TLS_SUPPORT test.
1433 * sysdeps/ia64/tls.h: Likewise.
1434 * sysdeps/powerpc/tls.h: Likewise.
1435 * sysdeps/s390/tls.h: Likewise.
1436 * sysdeps/sh/tls.h: Likewise.
1437 * sysdeps/sparc/tls.h: Likewise.
1438 * sysdeps/x86_64/tls.h: Likewise.
1439
3ce1f295
UD
14402011-09-10 Ulrich Drepper <drepper@gmail.com>
1441
02d46fc4
UD
1442 * sysdeps/pthread/malloc-machine.h: Define MUTEX_INITIALIZER.
1443
d063d164
UD
1444 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Don't handle
1445 !USE___THREAD.
1446 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1447 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
1448 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1449 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
1450 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
1451 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
1452 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
1453 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
1454 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1455 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1456 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
1457 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1458
3ce1f295
UD
1459 * tst-tls1.c: Support for __thread is now mandatory.
1460 * tst-tls2.c: Likewise.
1461 * tst-tls3.c: Likewise.
1462 * tst-tls3mod.c: Likewise.
1463 * tst-tls4.c: Likewise.
1464 * tst-tls4moda.c: Likewise.
1465 * tst-tls4modb.c: Likewise.
1466 * tst-tls5.h: Likewise.
1467
1e4bd093
L
14682011-09-08 Ulrich Drepper <drepper@gmail.com>
1469
1470 [BZ #12403]
1471 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
1472 (pthread_rwlock_timedwrlock): Use correct macro in test.
1473 Patch by H.J. Lu <hongjiu.lu@intel.com>.
1474
a0e1f41b
UD
14752011-09-06 Ulrich Drepper <drepper@gmail.com>
1476
1477 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait): Don't
1478 use gettimeofday vsyscall, just call gettimeofday.
9e5c9dcd
UD
1479 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
1480 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
1481 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1482 Likewise.
1483 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1484 Likewise.
1485 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1486 Simplify __vdso_clock_gettime use.
a0e1f41b 1487
39c4451c
DM
14882011-09-05 David S. Miller <davem@davemloft.net>
1489
1490 * sysdeps/unix/sysv/linux/sem_timedwait.c (do_futex_timed_wait):
1491 New function.
1492 (sem_timedwait): Call it to force an exception region around
1493 the async cancel enable and the futex operation.
1494 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: Likewise.
1495 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: Likewise.
1496 * sysdeps/unix/sysv/linux/sem_wait.c (do_futex_wait): New function.
1497 (__new_sem_wait): Call it to force an exception region around
1498 the async cancel enable and the futex operation.
1499 * sysdeps/unix/sysv/linux/sparc/sem_wait.c: Likewise.
1500 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: Likewise.
1501
523df511
AS
15022011-08-31 Andreas Schwab <schwab@redhat.com>
1503
1504 * allocatestack.c (setxid_mark_thread): Ensure that the exiting
1505 thread is woken up.
1506
e315850c
DM
15072011-08-20 David S. Miller <davem@davemloft.net>
1508
1509 * Makefile (tst-cleanup0.out): Fix typo in output redirection.
1510
5744c68d
RM
15112011-08-14 Roland McGrath <roland@hack.frob.com>
1512
1513 * sysdeps/i386/pthreaddef.h (TCB_ALIGNMENT): Set to 64, optimal on Atom.
1514 * sysdeps/x86_64/pthreaddef.h (TCB_ALIGNMENT): Likewise.
1515
a724d1b9
AS
15162011-08-08 Andreas Schwab <schwab@redhat.com>
1517
1518 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Maintain aligned
1519 stack.
1520 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1521 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1522
7a03a9c8
UD
15232011-07-22 Ulrich Drepper <drepper@gmail.com>
1524
1525 * sysdeps/pthread/unwind-forcedunwind.c (_Unwind_Resume): Add read
1526 barrier.
1527 (__gcc_personality_v0): Likewise.
1528 (_Unwind_ForcedUnwind): Likewise.
1529 (_Unwind_GetCFA): Likewise.
1530
4b3d3e28
RM
15312011-07-14 Roland McGrath <roland@hack.frob.com>
1532
1533 * allocatestack.c (__reclaim_stacks): Use uintptr_t cast rather than
1534 UINTMAX_C.
1535
6f8326ca
UD
15362011-06-30 Ulrich Drepper <drepper@gmail.com>
1537
1538 * nptl-init.c (__nptl_set_robust): New function.
1539 (pthread_functions): Add reference.
1540 * npthreadP.h: Declare __nptl_set_robust.
1541 * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
1542 ptr_set_robust member.
1543 * sysdeps/unix/sysv/linux/fork.c: Call set_robust_list syscall in
1544 child if threads are used.
1545
c71ca1f8
AJ
15462011-06-14 Andreas Jaeger <aj@suse.de>
1547
1548 * pthread_rwlock_init.c: Include <string.h> for memset declaration.
1549
5bdcc103
UD
15502011-05-11 Ulrich Drepper <drepper@gmail.com>
1551
1552 [BZ #386]
1553 * allocatestack.c (allocate_stack): Convert ENOMEM error to EAGAIN.
1554
e6c61494
UD
15552011-04-10 Ulrich Drepper <drepper@gmail.com>
1556
1557 [BZ #12650]
1558 * allocatestack.c (get_cached_stack): Deallocate DTV entries before
1559 clearing memory.
1560 Patch partly by Robert Rex <robert.rex@exasol.com>.
1561
c5be0f71
RM
15622011-01-19 Roland McGrath <roland@redhat.com>
1563
1564 * pthread_cond_wait.c (__pthread_cond_wait): Fix comment typo.
1565 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
1566 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Likewise.
1567 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
1568 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock): Likewise.
1569 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock): Likewise.
1570
1f20b93a
AS
15712011-01-16 Andreas Schwab <schwab@linux-m68k.org>
1572
1573 * Makefile (test-extras): Add tst-cleanup4aux.
1574
70181fdd
UD
15752011-01-14 Ulrich Drepper <drepper@gmail.com>
1576
1577 [BZ #10563]
1578 * sysdeps/pthread/setxid.h (__SETXID_1): Add cast to assignment.
1579 (__SETXID_2): Likewise.
1580 (__SETXID_3): Likewise.
1581
451f001b
UD
15822011-01-13 Ulrich Drepper <drepper@gmail.com>
1583
1584 [BZ #10484]
1585 * Versions [libc] (GLIBC_PRIVATE): Export __libc_alloca_cutoff.
a85b5cb4 1586 * alloca_cutoff.c: Add libc_hidden_def.
451f001b 1587
f9068148
L
15882010-10-13 H.J. Lu <hongjiu.lu@intel.com>
1589
1590 [BZ #12113]
1591 * sysdeps/x86_64/pthreaddef.h (TCB_ALIGNMENT): Changed to 32.
1592 * sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Defined with alignment
1593 of "struct pthread".
1594
c3758fee
AS
15952010-09-21 Andreas Schwab <schwab@redhat.com>
1596
1597 * sysdeps/pthread/pthread.h (pthread_cleanup_push)
1598 [!__EXCEPTIONS]: Mangle local variable not_first_call.
1599 (pthread_cleanup_push_defer_np): Likewise.
1600
4ac42e19
UD
16012010-09-03 Ulrich Drepper <drepper@redhat.com>
1602
1603 * sysdeps/pthread/allocalim.h (__libc_use_alloca): Expect blocks are
1604 small.
1605
022f6b89
DG
16062010-08-10 Dinakar Guniguntala <dino@in.ibm.com>
1607 Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
1608
1609 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: If
1610 FUTEX_WAKE_OP fails make sure to call FUTEX_WAKE instead.
1611
f8392f40
L
16122010-08-12 H.J. Lu <hongjiu.lu@intel.com>
1613
93f17abf 1614 * sysdeps/unix/sysv/linux/i386/Makefile: New file.
f8392f40 1615
bebff237
AM
16162010-05-01 Alan Modra <amodra@gmail.com>
1617
1618 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
1619 (PSEUDO): Use correct cr save. Don't use wrong parm save area
1620 to save temps. Correct cfi for possible later frame manipulation.
1621 (DOCARGS_1, UNDOCARGS_1): Use the correct parm save area.
1622 (DOCARGS_2, UNDOCARGS_2, DOCARGS_3, UNDOCARGS_3): Likewise.
1623 (DOCARGS_4, UNDOCARGS_4, DOCARGS_5, UNDOCARGS_5): Likewise.
1624 (DOCARGS_6, UNDOCARGS_6): Likewise.
1625 (CENABLE, CDISABLE): Add nops for non-shared calls.
1626
e8ee8bdf
AS
16272010-07-06 Andreas Schwab <schwab@redhat.com>
1628
1629 * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
1630 Fix type mismatch.
1631
03e87550
UD
16322010-07-03 Ulrich Drepper <drepper@redhat.com>
1633
1634 * tst-abstime.c (do_test): Some more cleanups
1635
145569dc
UD
16362010-07-02 Ulrich Drepper <drepper@redhat.com>
1637
1638 * tst-abstime.c: Correct testing and add test for sem_timedwait.
1639
2983d85e
AS
16402010-07-01 Andreas Schwab <schwab@redhat.com>
1641 Ulrich Drepper <drepper@redhat.com>
1642
1643 * Makefile (tests): Add tst-abstime.
1644 * tst-abstime.c: New file.
1645 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
1646 (__lll_timedlock_wait): Check for timestamp before the Epoch.
1647 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1648 (__lll_timedlock_wait): Likewise.
1649 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
1650 (__lll_robust_timedlock_wait): Likewise.
1651 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1652 (__pthread_cond_timedwait): Likewise.
1653 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
1654 (pthread_rwlock_timedrdlock): Likewise.
1655 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
1656 (pthread_rwlock_timedwrlock): Likewise.
1657 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
1658 Likewise.
1659
72b6e8c8
UD
16602010-07-01 Ulrich Drepper <drepper@redhat.com>
1661
1662 * Makefile (tst-_res1): Add tst-_res1mod1 to dependency list.
1663
4bc93b30
TY
16642010-06-01 Takashi Yoshii <takashi.yoshii.zj@renesas.com>
1665
1666 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Fix incorrect
1667 location of ifndef __ASSUME_FUTEX_CLOCK_REALTIME.
1668
86a4c67f
UD
16692010-04-09 Ulrich Drepper <drepper@redhat.com>
1670
1671 [BZ #11390]
1672 * sysdeps/unix/sysv/linux/pthread_getname.c: New file.
1673 * sysdeps/unix/sysv/linux/pthread_setname.c: New file.
1674 * nptl/sysdeps/pthread/pthread.h: Declare pthread_getname and
1675 pthread_setname.
1676 * Makefile (libpthread-routines): Add pthread_getname and
1677 pthread_setname.
1678 * Versions: Export pthread_getname and pthread_setname for GLIBC_2.12.
1679
f571a994
RM
16802010-04-05 Thomas Schwinge <thomas@schwinge.name>
1681
1682 * sysdeps/pthread/unwind-resume.c: Moved to main tree sysdeps/gnu/.
1683 * sysdeps/pthread/rt-unwind-resume.c: Likewise.
1684 * sysdeps/pthread/Makefile: Remove csu section and rt section's
1685 unwind-resume bits, now in main tree sysdeps/gnu/Makefile instead.
1686
7749bf5f
LM
16872010-03-23 Luis Machado <luisgpm@br.ibm.com>
1688
1689 * pthread_cond_timedwait.c: Add check for
1690 HAVE_CLOCK_GETTIME_VSYSCALL to use VDSO whenever possible.
1691 (pthread_cond_timedwait): Use INTERNAL_VSYSCALL instead of
1692 INTERNAL_SYSCALL.
1693
1d78f299
UD
16942010-03-09 Ulrich Drepper <drepper@redhat.com>
1695
1696 * pthread_create.c (__pthread_create_2_1): If priorities are incorrect
1697 and the call fails wake eventually waiting setxid threads. Don't free
1698 stack here if we try starting a thread.
1699 * sysdeps/pthread/createthread.c (do_clone): Only wake setxid waiter
1700 if the clone call failed.
1701
058e9ba9
AS
17022010-03-08 Andreas Schwab <schwab@redhat.com>
1703
1704 * pthread_create.c (__pthread_create_2_1): Don't set setxid_futex.
1705 * allocatestack.c (get_cached_stack): Set setxid_futex.
1706 (allocate_stack): Likewise.
1707
66f1b8ee
UD
17082010-03-05 Andreas Schwab <schwab@redhat.com>
1709 Ulrich Drepper <drepper@redhat.com>
1710
1711 * allocatestack.c (setxid_mark_thread): Delay handling of thread if
1712 it is creating a thread or it is just being created.
1713 * pthread_create.c (start_thread): Wake setxid thread if it is
1714 waiting.
1715 (__pthread_create_2_1): Initialize setxid_futex.
1716 * sysdeps/pthread/createthread.c (do_clone): Wake setxid thread if it
1717 is waiting.
1718
893549c5
MS
17192010-01-15 Ulrich Drepper <drepper@redhat.com>
1720
1721 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
1722 Fix unwind info.
1723 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1724
17252010-01-15 Michal Schmidt <mschmidt@redhat.com>
1726
1727 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
1728 Fix pthread_cond_timedwait with requeue-PI.
1729 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
1730 Fix pthread_cond_wait with requeue-PI.
1731
402cd987
UD
17322010-01-14 Ulrich Drepper <drepper@redhat.com>
1733
78ee2185
UD
1734 * Versions: Add pthread_mutex_consistent, pthread_mutexattr_getrobust,
1735 and pthread_mutexattr_setrobust for GLIBC_2.12.
402cd987 1736 * pthread_mutex_consistent.c: Define alias pthread_mutex_consistent.
78ee2185
UD
1737 * pthread_mutexattr_getrobust.c: Define alias
1738 pthread_mutexattr_getrobust.
1739 * pthread_mutexattr_setrobust.c: Define alias
1740 pthread_mutexattr_setrobust.
402cd987 1741
d3c7e686
UD
17422010-01-12 Ulrich Drepper <drepper@redhat.com>
1743
1744 * sysdeps/pthread/pthread.h: Cleanup. Fix up for XPG7.
1745
f095bb72
UD
17462010-01-08 Ulrich Drepper <drepper@redhat.com>
1747
1748 * sysdeps/pthread/pthread.h: Fix pthread_mutex_consistent declaration.
1749
d34bd80f
TS
17502009-12-18 Thomas Schwinge <thomas@codesourcery.com>
1751
1752 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c (_init): Don't
1753 call __gmon_start__.
1754 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c (_init): Likewise.
1755
f01c2359
UD
17562009-12-17 Ulrich Drepper <drepper@redhat.com>
1757
1758 * pthread_rwlock_init.c (__pthread_rwlock_init): Simplify code by
1759 using memset.
1760
75956694
DG
17612009-12-01 Dinakar Guniguntala <dino@in.ibm.com>
1762
1763 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.h: Define
1764 FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI.
1765 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: If mutex
1766 is a non robust PI mutex, then use FUTEX_CMP_REQUEUE_PI.
1767 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
1768 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: If mutex
1769 is a non robust PI mutex, then use FUTEX_WAIT_REQUEUE_PI.
1770 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1771
9554ebf2
UD
17722009-12-12 Ulrich Drepper <drepper@redhat.com>
1773
1774 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
1775 Don't update nwaiters after invalid timeout is recognized.
1776
ebb92a49
TS
17772009-11-27 Thomas Schwinge <thomas@codesourcery.com>
1778
1779 * sysdeps/unix/sysv/linux/sh/pt-initfini.c (_init): Don't call
1780 __gmon_start__.
1781
b55ec98c
AS
17822009-11-27 Andreas Schwab <schwab@redhat.com>
1783
1784 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Reload
1785 THREAD_SELF->cancelhandling after returning from futex call.
1786
80b3a4ea
UD
17872009-11-24 Ulrich Drepper <drepper@redhat.com>
1788
1789 * tst-sem13.c: New file.
1790 * Makefile (tests): Add tst-sem13.
1791
57a299fe
RM
17922009-11-22 Roland McGrath <roland@redhat.com>
1793
1794 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: # include "i686/dl-sysdep.h"
1795 instead of recapitulating its contents.
1796
dfedb126
UD
17972009-11-18 Ulrich Drepper <drepper@redhat.com>
1798
1799 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Minor
1800 optimizations and cleanups.
1801
dd7106b3
DG
18022009-11-18 Dinakar Guniguntala <dino@in.ibm.com>
1803
1804 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
1805 Remove redundant code. Fix cfi offsets.
1806 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
1807 Fix cfi offsets.
1808
f8c10bb4
UD
18092009-11-17 Ulrich Drepper <drepper@redhat.com>
1810
62616842
UD
1811 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Minimally
1812 reduce size of unwind info.
1813
f8c10bb4
UD
1814 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Convert to use
1815 cfi directives.
1816 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1817 Based on a patch by Dinakar Guniguntala <dino@in.ibm.com>.
1818
13f6812f
AS
18192009-11-03 Andreas Schwab <schwab@linux-m68k.org>
1820
1821 [BZ #4457]
1822 * sysdeps/pthread/unwind-resume.c: Include <libgcc_s.h> and use
1823 LIBGCC_S_SO.
1824 * sysdeps/pthread/unwind-forcedunwind.c: Likewise.
1825
25db0f6c
DJ
18262009-10-30 Ulrich Drepper <drepper@redhat.com>
1827
9c04f7c1
UD
1828 * tst-sem11.c (main): Rewrite to avoid aliasing problems.
1829
25db0f6c
DJ
1830 [BZ #3270]
1831 * allocatestack.c (__nptl_setxid): Perform the operation in multiple
1832 steps to avoid races with creation and terminations.
1833 * nptl-init.c (sighandler_setxid): Adjust.
1834 Patch by Daniel Jacobowitz.
1835
3d60eb17
AS
18362009-09-07 Andreas Schwab <schwab@redhat.com>
1837
1838 * sysdeps/pthread/bits/libc-lock.h (BP_SYM): Remove space before paren.
1839
38eb6136
SP
18402009-09-02 Suzuki K P <suzuki@in.ibm.com>
1841 Joseph Myers <joseph@codesourcery.com>
1842
1843 [BZ #7094]
1844 * sysdeps/unix/sysv/linux/timer_create.c (timer_create):
1845 Initialize the sigev_notify field for newly created timer to make sure
01034d75 1846 the timer gets deleted from the active timer's list upon timer_delete.
38eb6136 1847
7812c65b
AS
18482009-08-27 Andrew Stubbs <ams@codesourcery.com>
1849
1850 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
1851 Correct a logic error.
1852
84088310
UD
18532009-08-25 Ulrich Drepper <drepper@redhat.com>
1854
1855 * sysdeps/x86_64/tls.h (RTLD_ENABLE_FOREIGN_CALL): Store old value
1856 of the field in local variables.
1857 (RTLD_FINALIZE_FOREIGN_CALL): Restore rtld_must_xmm_save from local
1858 variable and don't unconditionally clear it.
1859
b42a214c
UD
18602009-08-24 Ulrich Drepper <drepper@redhat.com>
1861
1862 * pthread_create.c (start_thread): Hint to the kernel that memory for
1863 the stack can be reused. We do not mark all the memory. The part
1864 still in use and some reserve are kept.
1865
2d094b73
UD
18662009-08-23 Ulrich Drepper <drepper@redhat.com>
1867
1868 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Clean up namespace.
1869
ae0d5450
UD
18702009-08-11 Ulrich Drepper <drepper@redhat.com>
1871
1872 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Add CFI
1873 directives.
1874
1bc2b97e
UD
18752009-08-10 Ulrich Drepper <drepper@redhat.com>
1876
1877 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Add CFI
1878 directives.
1879 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
1880
ec492239
AS
18812009-08-10 Andreas Schwab <schwab@redhat.com>
1882
1883 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
1884 (__pthread_cond_signal): Don't clobber register used for syscall
1885 number.
1886
49eea97b
UD
18872009-08-08 Ulrich Drepper <drepper@redhat.com>
1888
efa0569d
UD
1889 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
1890 Optimize code path used when FUTEX_CLOCK_REALTIME is supported.
1891
49eea97b
UD
1892 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
1893 (__pthread_cond_wait): Optimize by avoiding use of callee-safe
1894 register.
1895
9083bcc5
UD
18962009-08-07 Ulrich Drepper <drepper@redhat.com>
1897
1898 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Little optimizations
1899 enabled by the special *_asynccancel functions.
1900 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1901 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1902
1903 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Include lowlevellock.h.
1904
421665c4
UD
19052009-08-04 Ulrich Drepper <drepper@redhat.com>
1906
1907 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: New file.
1908 * sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S: New file.
1909 * sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S: New file.
1910 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Optimize
1911 since we can assume the special __*_{en,dis}able_asynccancel
1912 functions.
1913 (PUSHARGS_*, POPARGS_*, SAVESTK_*, RESTSTK_*): Removed.
1914 * sysdeps/x86_64/tcb-offsets.sym: Add cancellation-related bits
1915 and PTHREAD_CANCELED.
1916
bd03a1af
UD
19172009-07-31 Ulrich Drepper <drepper@redhat.com>
1918
1919 * descr.h: Better definition of *_BITMASK macros for cancellation.
1920
b48a267b
UD
19212009-07-29 Ulrich Drepper <drepper@redhat.com>
1922
586fa886
UD
1923 * sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Define explicitly to 32.
1924
b48a267b 1925 * sysdeps/x86_64/tls.h (tcbhead_t): Add room for SSE registers the
586fa886
UD
1926 dynamic linker might have to save.
1927 Define RTLD_CHECK_FOREIGN_CALL, RTLD_ENABLE_FOREIGN_CALL,
1928 RTLD_PREPARE_FOREIGN_CALL, and RTLD_FINALIZE_FOREIGN_CALL. Pretty
1929 printing.
1930
b48a267b
UD
1931 * sysdeps/x86_64/tcb-offsets.sym: Add RTLD_SAVESPACE_SSE.
1932
b0948ffd
UD
19332009-07-28 Ulrich Drepper <drepper@redhat.com>
1934
1935 * pthread_mutex_lock.c [NO_INCR] (__pthread_mutex_cond_lock_adjust):
1936 New function.
1937 * pthreadP.h: Declare __pthread_mutex_cond_lock_adjust.
1938 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: Add ROBUST_BIT.
1939 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Don't use
1940 requeue_pi for robust mutexes.
1941 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
1942 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1943 Don't only skip __pthread_mutex_cond_lock. Call instead
1944 __pthread_mutex_cond_lock_adjust.
1945 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1946
1947 * pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Minor
1948 optimization of PI mutex handling.
1949
e73e694e
UD
19502009-07-27 Ulrich Drepper <drepper@redhat.com>
1951
1952 [BZ #10418]
1953 * pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Use _rel
1954 instead of of _acq variants of cmpxchg.
1955
f1adf1f4
UD
19562009-07-23 Ulrich Drepper <drepper@redhat.com>
1957
01b597da
UD
1958 * sysdeps/x86_64/configure.in: New file.
1959
f1adf1f4
UD
1960 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix error
1961 path when not using absolute timeout futex.
1962
c3db953c
UD
19632009-07-20 Ulrich Drepper <drepper@redhat.com>
1964
1965 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Minor
1966 optimizations of last changes.
1967 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1968
515a8908
UD
19692009-07-19 Ulrich Drepper <drepper@redhat.com>
1970
42e69bcf
UD
1971 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
1972 FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI.
1973 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: If mutex
1974 is a PI mutex, then use FUTEX_CMP_REQUEUE_PI.
1975 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
1976 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: If mutex
1977 is a PI mutex, then use FUTEX_WAIT_REQUEUE_PI.
1978 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1979
515a8908
UD
1980 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1981 (__pthread_cond_timedwait): Make more robust.
1982
30b1954a
UD
19832009-07-18 Ulrich Drepper <drepper@redhat.com>
1984
e2dca2fe
UD
1985 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
1986 (__lll_robust_timedlock_wait): If possible use FUTEX_WAIT_BITSET to
1987 directly use absolute timeout.
1988
3d77b268
UD
1989 * tst-sem5.c (do_test): Add test for premature timeout.
1990 * Makefile: Linu tst-sem5 with librt.
1991
d979611e
UD
1992 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
1993 (pthread_rwlock_timedwrlock): If possible use FUTEX_WAIT_BITSET to
1994 directly use absolute timeout.
32c6c342
UD
1995 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
1996 (pthread_rwlock_timedrdlock): Likewise.
d979611e 1997
f8b6cd21
UD
1998 * tst-cond11.c (run_test): Add test to check that the timeout is
1999 long enough.
2000
e88726b4
UD
2001 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
2002 (__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to
2003 directly use absolute timeout.
2004
30b1954a
UD
2005 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
2006 (__pthread_cond_wait): Convert to using exception handler instead of
2007 registered unwind buffer.
92618c95
UD
2008 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2009 (__pthread_cond_timedwait): Likewise.
30b1954a 2010
d52c96e7
UD
20112009-07-17 Ulrich Drepper <drepper@redhat.com>
2012
f351f2b7
UD
2013 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
2014 If possible use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME to directly
2015 use absolute timeout.
2016
0adae468
UD
2017 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Optimize
2018 handling of uncontested semaphore.
2019
d52c96e7
UD
2020 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
2021 (__condvar_cleanup): Rewrite to use cfi directives instead of
2022 hand-coded unwind tables.
63601ccd
UD
2023 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S (__pthread_once):
2024 Likewise.
c3c2f3cf 2025 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
aee2665a
UD
2026 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
2027 Likewise.
d52c96e7 2028
bfdb73e1
UD
20292009-06-12 Ulrich Drepper <drepper@redhat.com>
2030
2031 * Makefile (libpthread-routines): Add pthread_sigqueue.
2032 * Versions: Add pthread_sigqueue for GLIBC_2.11.
2033 * sysdeps/pthread/bits/sigthread.h: Declare pthread_sigqueue.
2034 * sysdeps/unix/sysv/linux/pthread_sigqueue.c: New file.
2035
1828530f
BK
20362009-06-11 Ulrich Drepper <drepper@redhat.com>
2037
2038 [BZ #10262]
2039 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
2040 (LOAD_FUTEX_WAIT_ABS): Fix futex parameter in case private futexes
2041 cannot be assumed.
2042 Patch by Bryan Kadzban <bz-glibc@kdzbn.homelinux.net>.
2043
a5b8b56d
UD
20442009-05-16 Ulrich Drepper <drepper@redhat.com>
2045
e20c4ef0
UD
2046 * libc-cancellation.c: Move __libc_cleanup_routine to...
2047 * libc-cleanup.c: ...here. New file.
2048 * Makefile (routines): Add libc-cleanup.
2049
cba0ca79
UD
2050 * cancellation.c (__pthread_disable_asynccancel): Remove unnecessary
2051 test.
2052 * libc-cancellation.c: Use <nptl/cancellation.c: to define the code.
2053 * sysdeps/pthread/librt-cancellation.c: Likewise.
2054
a5b8b56d
UD
2055 [BZ #9924]
2056 * nptl-init.c: Renamed from init.c.
2057 * Makefile: Change all occurences of init.c to nptl-init.c.
2058
1a7f254b
UD
20592009-05-15 Ulrich Drepper <drepper@redhat.com>
2060
9437b427
UD
2061 * cancellation.c (__pthread_disable_asynccancel): Correct the bits
2062 to test when deciding on the delay.
2063 * libc-cancellation.c (__libc_disable_asynccancel): Likewise.
2064 * pthread_cancel.c: Close race between deciding on sending a signal
2065 and setting the CANCELING_BIT bit.
2066
1a7f254b
UD
2067 * cancellation.c (__pthread_disable_asynccancel): Don't return if
2068 thread is canceled.
2069 * libc-cancellation.c (__libc_disable_asynccancel): Likewise.
2070
d5c157a9
UD
20712009-04-27 Ulrich Drepper <drepper@redhat.com>
2072
2073 * cancellation.c (__pthread_disable_asynccancel): Use THREAD_ATOMIC_AND
2074 is available.
2075 * libc-cancellation.c (__libc_disable_asynccancel): Likewise.
2076 * sysdeps/x86_64/tls.h: Define THREAD_ATOMIC_AND.
2077 * sysdeps/i386/tls.h: Likewise.
2078 (tcbhead_t): Add __private_tm member.
2079
f521be31
UD
20802009-04-26 Ulrich Drepper <drepper@redhat.com>
2081
5efe8650
UD
2082 * sem_open.c (sem_open): Rewrite initialization of initsem to
2083 avoid warnings.
2084
f521be31
UD
2085 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
2086 Avoid warning by using may_alias attribute on ptrhack.
2087
d301a6e1
UD
20882009-04-22 Ulrich Drepper <drepper@redhat.com>
2089
5497de87 2090 [BZ #10090]
d301a6e1
UD
2091 * pthread_attr_setschedparam.c (__pthread_attr_setschedparam):
2092 Check policy and priority for validity.
2093 Patch mostly by Zhang Xiliang <zhangxiliang@cn.fujitsu.com>.
2094
71a5bd3e
UD
20952009-03-15 Ulrich Drepper <drepper@redhat.com>
2096
2097 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2098 (__pthread_cond_timedwait): Change to use cfi directives instead of
2099 hand-coded unwind sections.
2100
30991b8b
UD
21012009-03-10 Ulrich Drepper <drepper@redhat.com>
2102
2103 * init.c (nptl_freeres): Compile only for SHARED.
2104
9920a6b8
JJ
21052009-03-09 Jakub Jelinek <jakub@redhat.com>
2106
2107 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Define
2108 FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_CLOCK_REALTIME and
2109 FUTEX_BITSET_MATCH_ANY.
2110
e965d514
RM
21112009-02-27 Roland McGrath <roland@redhat.com>
2112
2113 * init.c (__nptl_initial_report_events): Mark __attribute_used__.
2114 * pthread_create.c (__nptl_threads_events, __nptl_last_event): Likewise.
2115
6cbe890a
UD
21162009-02-26 Ulrich Drepper <drepper@redhat.com>
2117
2118 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2119 _POSIX_THREAD_ROBUST_PRIO_INHERIT and
2120 _POSIX_THREAD_ROBUST_PRIO_PROTECT. Reset value of macros from
2121 200112L to 200809L.
2122
77db439e
UD
21232009-02-25 Ulrich Drepper <drepper@redhat.com>
2124
2125 * sysdeps/pthread/pthread.h: The robust mutex functions are in
2126 POSIX 2008.
2127
5be0a688
UD
21282009-02-24 Ulrich Drepper <drepper@redhat.com>
2129
2130 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_BITS_POSIX_OPT_H):
2131 Unify name of include protector macro.
2132
4c869eb6
UD
21332009-02-14 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
2134
2135 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
2136 LOAD_FUTEX_WAIT_ABS even if (FUTEX_WAIT == 0).
2137
cca50323
UD
21382009-01-29 Ulrich Drepper <drepper@redhat.com>
2139
7f901dd7
UD
2140 * sysdeps/pthread/unwind-forcedunwind.c: Encrypt all function
2141 pointer variables.
2142
cca50323
UD
2143 * allocatestack.c (__free_stacks): Renamed from free_stacks.
2144 (__free_stack_cache): Removed. Change callers to call __free_stacks.
2145 * init.c (nptl_freeres): New function.
2146 (pthread_functions): Initialize ptr_freeres to nptl_freeres.
2147 * pthreadP.h: Don't declare __free_stack_cache. Declare __free_stacks.
2148 * sysdeps/pthread/unwind-forcedunwind.c (libgcc_s_handle): New
2149 variable.
2150 (pthread_cancel_init): Depend in libgcc_s_handle for decision to
2151 load DSO. Assign last.
2152 (__unwind_freeres): New function.
2153
2154 * allocatestack.c (__reclaim_stacks): Reset in_flight_stack later
2155 for better debugging. No need to use stack_list_add here.
2156
a7bd183f
UD
21572009-01-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2158
2159 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
2160 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
2161 instead of computing relative timeout.
2162 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
2163 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
2164
563ee1cb
UD
21652009-01-25 Ulrich Drepper <drepper@redhat.com>
2166
2167 * pthread_mutex_lock.c (__pthread_mutex_lock): Remove unused label out.
2168
f25c7b08
UD
21692009-01-08 Ulrich Drepper <drepper@redhat.com>
2170
2171 * sysdeps/pthread/list.h (list_add): Initialize new element first.
2172 (list_add_tail): Removed.
2173
40de0fe3
JJ
21742009-01-07 Ulrich Drepper <drepper@redhat.com>
2175
2176 * (in_flight_stack): New variable.
2177 (stack_list_del): New function. Use instead of list_del.
2178 (stack_list_add): New function. Use instead of list_add when adding to
2179 stack_cache and stack_used lists.
2180 (__reclaim_stacks): Complete operations on stack_cache and stack_used lists
2181 when the fork call interrupted another thread.
2182
3c612057
UD
21832009-01-04 Ulrich Drepper <drepper@redhat.com>
2184
2185 * init.c (__pthread_initialize_minimal_internal): Optimize test
2186 FUTEX_CLOCK_REALTIME a bit.
2187
19834b42
UD
21882009-01-03 Ulrich Drepper <drepper@redhat.com>
2189
2190 * init.c (__pthread_initialize_minimal_internal): Cheat a bit by
2191 only passing five parameters to FUTEX_WAIT_BITSET call.
2192
2193 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a9fa090b 2194 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
19834b42
UD
2195 instead of computing relative timeout.
2196
7dd650d7
UD
21972009-01-02 Ulrich Drepper <drepper@redhat.com>
2198
cbd8aeb8
UD
2199 * init.c (__pthread_initialize_minimal_internal): Check for
2200 FUTEX_CLOCK_REALTIME flag.
2201 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
a9fa090b 2202 Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME instead of computing
cbd8aeb8
UD
2203 relative timeout.
2204
7dd650d7
UD
2205 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
2206 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
2207 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
2208 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2209 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2210 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2211
217d45cd
UD
22122008-12-09 Ulrich Drepper <drepper@redhat.com>
2213
2214 * sysdeps/pthread/pthread.h (pthread_cleanup_pop): Use { } as empty
2215 loop body instead of ; to avoid gcc warnings.
2216 (pthread_cleanup_pop_restore_np): Likewise.
2217 Patch by Caolán McNamara <caolanm@redhat.com>.
2218
6de79a49
UD
22192008-12-09 Jakub Jelinek <jakub@redhat.com>
2220
2221 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle only the
2222 fast path here, for robust/PI/PP mutexes call
2223 __pthread_mutex_lock_full. Don't use switch, instead use a series
2224 of ifs according to their probability.
2225 (__pthread_mutex_lock_full): New function.
2226 * pthread_mutex_unlock.c: Include assert.h.
2227 (__pthread_mutex_unlock_usercnt): Handle only the
2228 fast path here, for robust/PI/PP mutexes call
2229 __pthread_mutex_unlock_full. Don't use switch, instead use a series
2230 of ifs according to their probability.
2231 (__pthread_mutex_unlock_full): New function.
2232 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
2233 (__pthread_mutex_lock_full): Define.
2234
71bb2639
UD
22352008-12-08 Ulrich Drepper <drepper@redhat.com>
2236
2237 * sysdeps/x86_64/tls.h (tcbhead_t): Add fields reserved for TM
2238 implementation. Add necessary padding and.
2239 * descr.h (struct pthread): Increase padding for tcbhead_t to 24
2240 words.
2241
247626f3
UD
22422008-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2243
2244 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define FUTEX_WAIT_BITSET
2245 and FUTEX_WAKE_BITSET.
2246
da5ac135
UD
22472008-12-02 Ulrich Drepper <drepper@redhat.com>
2248
2249 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_WAIT_BITSET
2250 and FUTEX_WAKE_BITSET.
2251 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2252 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2253 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2254 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2255
c0439b95
RM
22562008-11-25 Roland McGrath <roland@redhat.com>
2257
2258 * sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:
2259 Subdirectories moved to ports repository as
2260 sysdeps/.../nptl subdirectories.
2261
0e54a725
UD
22622008-11-12 Jakub Jelinek <jakub@redhat.com>
2263
2264 [BZ #7008]
2265 * pthread_condattr_setclock.c (pthread_condattr_setclock): Fix masking
2266 of old value.
2267 * pthread_cond_init.c (__pthread_cond_init): Fix
2268 cond->__data.__nwaiters initialization.
2269 * Makefile (tests): Add tst-cond23.
2270 * tst-cond23.c: New test.
2271
4b23f9bd
JJ
22722008-11-07 Jakub Jelinek <jakub@redhat.com>
2273
2274 * sysdeps/pthread/malloc-machine.h (MALLOC): Adjust __libc_tsd_define
2275 arguments.
2276 (tsd_setspecific, tsd_getspecific): Adjust __libc_tsd_{set,get}
2277 arguments.
2278
efac1fce
UD
22792008-11-01 Ulrich Drepper <drepper@redhat.com>
2280
2281 [BZ #6955]
2282 * pthread_mutex_lock.c: Add support for private PI mutexes.
2283 * pthread_mutex_timedlock.c: Likewise.
2284 * pthread_mutex_trylock.c: Likewise.
2285 * pthread_mutex_unlock.c: Likewise.
2286 Patch mostly by Ben Jackson <ben@ben.com>.
2287
bf837fa3
UD
22882008-10-31 Ulrich Drepper <drepper@redhat.com>
2289
2290 [BZ #6843]
2291 * sysdeps/pthread/gai_misc.h (__gai_create_helper_thread):
2292 Increase stack size for helper thread.
2293
208bc836
UD
22942008-10-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
2295
2296 * sysdeps/s390/tls.h (THREAD_SET_STACK_GUARD): Add empty inline
2297 assembly with a clobber list for access registers a0 and a1.
2298
17f8b4a9
UD
22992008-09-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
2300
2301 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Add memory barrier
2302 to force runp->refcntr to be read from memory.
2303
2458c748
AJ
23042008-09-08 Richard Guenther <rguenther@suse.de>
2305
2306 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
2307 lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
2308 lll_timedlock, lll_robust_timedlock, lll_unlock,
2309 lll_robust_unlock): Promote private to int.
2310
965805e8
UD
23112008-08-15 Ulrich Drepper <drepper@redhat.com>
2312
2313 * sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
2314 ARCH_RETRY_MMAP definitions.
2315 * allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
2316 Define MAP_STACK when not defined.
2317 (allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS. Remove
2318 handling of ARCH_RETRY_MMAP.
2319
bd7f4857
UD
23202008-07-30 Ulrich Drepper <drepper@redhat.com>
2321
2322 * tst-align2.c (f): Print message that f is reached.
2323
619cc2f6
UD
23242008-04-28 Hiroki Kaminaga <kaminaga@sm.sony.co.jp>
2325
2326 [BZ #6740]
2327 * sysdeps/powerpc/tcb-offsets.sym (PRIVATE_FUTEX_OFFSET): Guard symbol
2328 definition with #ifndef __ASSUME_PRIVATE_FUTEX.
2329
8ccf22f9
UD
23302008-07-25 Ulrich Drepper <drepper@redhat.com>
2331
2332 * sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Use
2333 SOCK_CLOEXEC if possible.
2334
23352008-05-29 Ulrich Drepper <drepper@redhat.com>
2336
2337 * Makefile (tests): Add tst-rwlock2a.
2338 * tst-rwlock2.c: Use TYPE macro to decide what rwlock type to use.
2339 * tst-rwlock2a.c: New file.
2340
5a337776
UD
23412008-06-12 Ulrich Drepper <drepper@redhat.com>
2342
2343 * sysdeps/pthread/pthread.h: Remove inadvertant checkin.
2344
e4d6e7f5
UD
23452008-05-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
2346
2347 * sysdeps/pthread/pthread.h: Fix typo in comment.
2348
d6296e88
UD
23492008-05-28 Ulrich Drepper <drepper@redhat.com>
2350
2351 * sysdeps/pthread/createthread.c (do_clone): Pass accurate length
2352 of CPU set to the kernel.
2353
62605cbf
UD
23542008-05-23 Paul Pluzhnikov <ppluzhnikov@google.com>
2355
2356 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Add
2357 cfi directives.
2358 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
2359 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
2360 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
2361 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
2362 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
2363 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
2364
23652008-05-22 Paul Pluzhnikov <ppluzhnikov@google.com>
2366
2367 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S: Add
2368 cfi directives.
2369 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
2370 Likewise.
2371 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
2372 Likewise.
2373 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
2374 Likewise.
2375
4b2c85c0
UD
23762008-05-26 Ulrich Drepper <drepper@redhat.com>
2377
2378 * tst-typesizes.c: Explicitly check __SIZEOF_PTHREAD_* constants.
2379
b72f5692 23802008-05-20 Jakub Jelinek <jakub@redhat.com>
4b2c85c0
UD
2381
2382 David S. Miller <davem@davemloft.net>
3b15b590 2383
b72f5692 2384 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
3b15b590 2385
cdffaaa6
UD
23862008-05-10 Ulrich Drepper <drepper@redhat.com>
2387
2388 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Access
2389 __pshared correctly.
2390 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
2391 Likewise.
2392 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
2393 Likewise.
2394 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
2395 Likewise.
2396 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
2397 Likewise.
2398 Reported by Clemens Kolbitsch <clemens.kol@gmx.at>.
2399
2313c48f
JJ
24002008-04-14 David S. Miller <davem@davemloft.net>
2401
2402 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
2403 (__old_sem_wait): Fix argument to lll_futex_wait().
2404
2f611ada
UD
24052007-11-26 Daniel Jacobowitz <dan@codesourcery.com>
2406
2407 * pthread_create.c: Require pthread_mutex_trylock and
2408 pthread_key_delete for libgcc.
2409
d24be489
JJ
24102008-04-08 Jakub Jelinek <jakub@redhat.com>
2411
2412 [BZ #6020]
2413 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h
2414 (lll_futex_wake_unlock): Add private argument to the pre-v9 macro.
2415 Patch by Sunil Amitkumar Janki <devel.sjanki@gmail.com>.
2416
f96853be
UD
24172008-03-27 Ulrich Drepper <drepper@redhat.com>
2418
8ccf22f9 2419 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine ARG_MAX if
f96853be
UD
2420 <linux/limits.h> has defined it.
2421 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
2422 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
2423 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
2424 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
2425
354b7527
JJ
24262008-03-18 Jakub Jelinek <jakub@redhat.com>
2427
2428 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Use __ASSEMBLER__ instead
2429 of ASSEMBLER.
2430 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
2431 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Likewise.
2432
702ae329
UD
24332008-03-14 Ulrich Drepper <drepper@redhat.com>
2434
2435 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
2436 HAVE_DL_DISCOVER_OSVERSION.
2437 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
2438 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Likewise.
2439
443db178
UD
24402008-03-07 Ulrich Drepper <drepper@redhat.com>
2441
2442 [BZ #5778]
2443 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Change
2444 _POSIX_CHOWN_RESTRICTED value to zero.
2445
67fbfa5c
RM
24462008-01-31 Roland McGrath <roland@redhat.com>
2447
2448 * Makefile (omit-deps): Variable removed.
2449
dd3113da
UD
24502008-01-30 Ulrich Drepper <drepper@redhat.com>
2451
2452 * sysdeps/unix/sysv/linux/x86_64/sem_post.S (sem_post): Avoid
2453 unnecessary addr32 prefix.
2454
16cd816f
RM
24552008-01-29 Roland McGrath <roland@redhat.com>
2456
2457 * Makeconfig (ptw-CPPFLAGS, sysd-rules-patterns): New variables.
2458
b4b166af
UD
24592008-01-22 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2460
2461 * sysdeps/unix/sysv/linux/sh/sem_post.S: Don't overflow value field.
2462
24632008-01-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2464
2465 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XADD): Use
2466 a scratch register.
2467 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
2468 (__lll_lock_wait_private): Fix typo.
2469 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
2470 (pthread_barrier_wait): Likewise. Adjust XADD use.
2471 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
2472 Adjust XADD use.
2473 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
2474 (pthread_rwlock_timedrdlock): Return correct return value.
2475 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
16cd816f 2476 (pthread_rwlock_timedwrlock): Likewise.
b4b166af 2477
eaf95a26
UD
24782008-01-15 Ulrich Drepper <drepper@redhat.com>
2479
2480 * tst-eintr2.c (do_test): make sure that if mutex_lock in main
2481 thread returns the program exits with an error code.
2482
ab355d9a
UD
24832008-01-10 Ulrich Drepper <drepper@redhat.com>
2484
2485 * pthread-errnos.sym: Add EOVERFLOW.
2486 * sysdeps/unix/sysv/linux/structsem.sym: Add SEM_VALUE_MAX.
2487 * sysdeps/unix/sysv/linux/sem_post.c: Don't overflow value field.
2488 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
2489 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
2490
b8cca206
UD
24912007-12-14 Ulrich Drepper <drepper@redhat.com>
2492
2493 * sysdeps/x86_64/pthreaddef.h (ARCH_RETRY_MMAP): Take additional
2494 parameter. Passed it as permission to mmap.
2495 * allocatestack.c (allocate_stack): Pass prot as second parameter
2496 to ARCH_RETRY_MMAP.
2497
189dce4f
UD
24982007-12-12 Ulrich Drepper <drepper@redhat.com>
2499
3eb0e1c6
UD
2500 * tst-basic7.c: Allocate memory for the stack.
2501
189dce4f
UD
2502 [BZ #5465]
2503 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S [!SHARED]
2504 (__pthread_cond_timedwait): Don't use VDSO.
58d11795 2505 Patch by Michal Januszewski.
189dce4f 2506
26e21e75
UD
25072007-12-07 Ulrich Drepper <drepper@redhat.com>
2508
2509 [BZ #5455]
2510 * sysdeps/pthread/pthread.h [!__EXCEPTIONS] (pthread_cleanup_pop):
2511 Allow label before pthread_cleanup_pop.
2512 (pthread_cleanup_pop_restore_np): Likewise.
2513
191ec77f
UD
25142007-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2515
2516 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
2517 Store 2 before returning ETIMEDOUT.
2518
c012be6f
UD
25192007-11-23 Ulrich Drepper <drepper@redhat.com>
2520
2521 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
2522 Store 2 before returning ETIMEDOUT.
2523 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise
2524 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
2525 (__lll_lock_wait_private): Optimize.
2526 (__lll_lock_wait): Likewise.
2527
77f1e09a
UD
25282007-11-20 Jakub Jelinek <jakub@redhat.com>
2529
2530 * sysdeps/pthread/pthread.h (pthread_cleanup_push,
2531 pthread_cleanup_push_defer_np): Add extra (void *) cast to shut up
2532 g++ 4.1 and 4.2 -Wstrict-aliasing warnings.
2533
0f7e0ee5
UD
25342007-11-08 Ulrich Drepper <drepper@redhat.com>
2535
cbed6a60
UD
2536 [BZ #5240]
2537 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
2538 If we time out, try one last time to lock the futex to avoid
2539 losing a wakeup signal.
2540 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
2541 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
2542
0f7e0ee5
UD
2543 [BZ #5245]
2544 * sysdeps/pthread/createthread.c (do_clone): Translate clone error
2545 if necessary.
2546
f6ed654c
UD
25472007-11-07 Ulrich Drepper <drepper@redhat.com>
2548
2549 [BZ #5245]
2550 * allocatestack.c (allocate_stack): Change ENOMEM error in case
2551 mmap failed to EAGAIN.
2552 * Makefile (tests): Add tst-basic7.
2553 * tst-basic7.c: New file.
2554
b92e3780
UD
25552007-11-05 Ulrich Drepper <drepper@redhat.com>
2556
2557 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
2558 Use __linkin_atfork.
2559
94a749f6
UD
25602007-11-03 Mike Frysinger <vapier@gentoo.org>
2561
2562 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (LOAD_FUTEX_WAIT): Add
2563 missing line continuations.
2564 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S (LOAD_FUTEX_WAIT,
2565 LOAD_FUTEX_WAKE): Likewise. Also add missing 3rd parameter.
2566
f160a450
UD
25672007-10-28 Ulrich Drepper <drepper@redhat.com>
2568
2569 [BZ #5220]
2570 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Declare
2571 __active_timer_sigev_thread and __active_timer_sigev_thread_lock.
2572 (struct timer): Add next element.
2573 * sysdeps/unix/sysv/linux/timer_create.c: For SIGEV_THREAD timers,
2574 enqueue timer structure into __active_timer_sigev_thread list.
2575 * sysdeps/unix/sysv/linux/timer_delete.c: For SIGEV_THREAD timers,
2576 remove timer struct from __active_timer_sigev_thread.
2577 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
2578 Before using timer structure make sure it is still on the
2579 __active_timer_sigev_thread list. Keep lock until done.
2580 Define __active_timer_sigev_thread and
2581 __active_timer_sigev_thread_lock.
2582
94833f11
UD
25832007-10-27 Ulrich Drepper <drepper@redhat.com>
2584
2585 * sysdeps/pthread/malloc-machine.h: Define ATFORK_MEM.
2586 Redefine thread_atfork for use of ATFORK_MEM.
2587 * sysdeps/unix/sysv/linux/fork.h: Define __linkin_atfork.
2588 * sysdeps/unix/sysv/linux/register-atfork.c (__linkin_atfork): New
2589 function.
2590 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
2591 Use atomic operation when removing first element of list.
2592
96c06e08
JJ
25932007-10-17 Jakub Jelinek <jakub@redhat.com>
2594
2595 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
2596 routine instead of an alias to __new_sem_post.
2597
e807818b
JJ
25982007-10-15 Jakub Jelinek <jakub@redhat.com>
2599
2600 * init.c (__pthread_initialize_minimal): Initialize word to appease
2601 valgrind.
2602
59d430c6
UD
26032007-10-10 Jakub Jelinek <jakub@redhat.com>
2604
2605 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_init): Inside of
2606 libc.so just clear NAME.
2607 (__libc_rwlock_fini): Nop inside of libc.so.
2608 * tst-initializers1.c (main): Test if PTHREAD_RWLOCK_INITIALIZER is
2609 all zeros.
2610
221d9d8e
UD
26112007-09-02 Ulrich Drepper <drepper@redhat.com>
2612
2613 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
2614 (__pthread_cond_wait): Fix unlocking of internal lock after mutex
2615 unlocking failed.
2616 Patch by Luca Barbieri <luca.barbieri@gmail.com>.
2617
2a01ce56
UD
26182007-08-21 Ulrich Drepper <drepper@redhat.com>
2619
2620 [BZ #4938]
2621 * allocatestack.c (__reclaim_stacks): Clear the TSD in the
2622 reclaimed stack if necessary.
2623 * Makefile (tests): Add tst-tsd6.
2624 * tst-tsd6.c: New file.
2625
c273641b
JJ
26262007-08-21 Jakub Jelinek <jakub@redhat.com>
2627
2628 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_dead):
2629 Add private argument.
2630
fb84593c
UD
26312007-08-20 Ulrich Drepper <drepper@redhat.com>
2632
2633 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2634 (__pthread_cond_timedwait): Use clock_gettime from VDSO if possible.
2635
3e8d1eab
JJ
26362007-08-16 Jakub Jelinek <jakub@redhat.com>
2637
2638 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h
2639 (__lll_robust_timedlock): Pass private as last argument to
2640 __lll_robust_timedlock_wait.
2641 (__lll_unlock): Fix a pasto.
2642
e4720b0e
JJ
26432007-08-15 Jakub Jelinek <jakub@redhat.com>
2644
2645 * sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem,
2646 sparc_old_sem): New structs.
2647 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
2648 (__sem_wait_cleanup): New function.
2649 (__new_sem_wait): Use sparc_new_sem structure. Bump and afterwards
2650 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
2651 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
2652 lll_futex_wait.
2653 (__old_sem_wait): New function.
2654 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include
2655 nptl/sysdeps/unix/sysv/linux/sparc version.
2656 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
2657 Likewise.
2658 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise.
2659 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
2660 (__new_sem_trywait): Use sparc_old_sem structure.
2661 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
2662 (sem_timedwait): Use sparc_new_sem structure. Bump and afterwards
2663 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
2664 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
2665 lll_futex_timed_wait.
2666 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post):
2667 Use sparc_new_sem structure. Only wake if nwaiters > 0. Pass
2668 isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
2669 lll_futex_wake.
2670 (__old_sem_post): New function.
2671 * sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file.
2672 * sysdeps/unix/sysv/linux/sparc/sem_init.c: New file.
2673 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file.
2674 * sysdeps/unix/sysv/linux/sparc/sem_post.c: New file.
2675 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove.
2676 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove.
2677
d13f4a43
UD
26782007-08-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2679
2680 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
2681 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
2682 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
2683 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
2684 * sysdeps/unix/sysv/linux/shpthread_cond_signal.S
2685 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
2686 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
2687 Use FUTEX_WAKE_OP.
2688 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
2689 kernel-features.h and tcb-offsets.h.
2690 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
2691 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
2692 process private.
2693 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
2694 tcb-offsets.h.
2695 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE
2696 to lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
2697 process private.
2698 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use #ifdef
2699 __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
2700 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
2701 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
2702 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
2703 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
2704 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
2705
702a9414
JJ
27062007-08-14 Jakub Jelinek <jakub@redhat.com>
2707
467d1345
JJ
2708 * sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
2709 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
2710 (__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
2711 lll_futex_timed_wait.
2712
702a9414
JJ
2713 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
2714 __lll_robust_unlock): Rewrite as macros instead of inline functions.
2715 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
2716 __lll_robust_unlock, __lll_wait_tid): Likewise.
2717
22502ea2
UD
27182007-08-13 Jakub Jelinek <jakub@redhat.com>
2719
2720 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
2721 Fix a pasto.
2722 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
2723 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
2724 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
2725 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
2726 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
2727 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
2728 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
2729 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Include
2730 kernel-features.h.
2731 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
2732 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
2733 process private. Switch DW_CFA_advance_loc1 and some
2734 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
2735 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2736 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE to
2737 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
2738 process private. Switch DW_CFA_advance_loc{1,2} and some
2739 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
2740 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use
2741 #ifdef __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
2742 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
2743 Likewise.
2744 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
2745 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
2746 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
2747 Likewise.
2748 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
2749 (__pthread_cond_broadcast): Compare %r8 instead of
2750 dep_mutex-cond_*(%rdi) with $-1.
2751 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
2752 (__pthread_cond_signal): Xor FUTEX_WAKE_OP with FUTEX_WAKE instead
2753 of oring.
2754
4baf59ad
UD
27552007-08-13 Ulrich Drepper <drepper@redhat.com>
2756
2757 * sysdeps/unix/sysv/linux/i386/i786/Implies: New file.
2758
9c6f6953
UD
27592007-08-13 Jakub Jelinek <jakub@redhat.com>
2760
2761 * allocatestack.c: Include kernel-features.h.
2762 * pthread_create.c: Likewise.
2763 * pthread_mutex_init.c: Likewise.
2764 * init.c: Likewise.
2765 * pthread_cond_timedwait.c: Likewise.
2766 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
2767 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2768 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
2769 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
2770 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
2771 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2772 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
2773 Likewise.
2774 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
2775 Likewise.
2776 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2777 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2778 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
2779 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2780
974a1f0f
UD
27812007-08-12 Jakub Jelinek <jakub@redhat.com>
2782
2783 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
2784 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
2785 byte elements. One of them is the new __shared element.
2786 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
2787 adjust names of other padding elements.
2788 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
2789 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
2790 byte elements. One of them is the new __shared element.
2791 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
2792 adjust names of other padding elements.
2793 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_rwlock_t):
2794 Renamed __pad1 element to __shared, adjust names of other padding
2795 elements.
2796 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
2797 (pthread_rwlock_t): Likewise.
2798 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock): Fix a
2799 typo.
2800
28012007-08-09 Anton Blanchard <anton@samba.org>
2802
2803 * sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c: New file.
2804
f47e2626
UD
28052007-08-12 Ulrich Drepper <drepper@redhat.com>
2806
2807 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Include
2808 <kernel-features.h>.
2809 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2810
5bd8a249
UD
28112007-08-11 Ulrich Drepper <drepper@redhat.com>
2812
2813 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define.
2814 * pthread_mutex_lock.c: Use it instead of PTHREAD_MUTEX_PSHARED when
2815 dealing with robust mutexes.
2816 * pthread_mutex_timedlock.c: Likewise.
2817 * pthread_mutex_trylock.c: Likewise.
2818 * pthread_mutex_unlock.c: Likewise.
2819 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
2820
28212007-08-06 Jakub Jelinek <jakub@redhat.com>
2822
2823 * pthreadP.h (PTHREAD_MUTEX_PSHARED_BIT): Define.
2824 (PTHREAD_MUTEX_TYPE): Mask __kind with 127.
2825 (PTHREAD_MUTEX_PSHARED): Define.
2826 * pthread_mutex_init.c (__pthread_mutex_init): Set
2827 PTHREAD_MUTEX_PSHARED_BIT for pshared or robust
2828 mutexes.
2829 * pthread_mutex_lock.c (LLL_MUTEX_LOCK): Take mutex as argument
2830 instead of its __data.__lock field, pass PTHREAD_MUTEX_PSHARED
2831 as second argument to lll_lock.
2832 (LLL_MUTEX_TRYLOCK): Take mutex as argument
2833 instead of its __data.__lock field.
2834 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
2835 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
2836 to lll_robust_lock.
2837 (__pthread_mutex_lock): Update LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
2838 LLL_ROBUST_MUTEX_LOCK users, use PTHREAD_MUTEX_TYPE (mutex)
2839 instead of mutex->__data.__kind directly, pass
2840 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock and lll_futex_wait.
2841 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
2842 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
2843 directly, pass PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock.
2844 (pthread_mutex_timedlock): Pass PTHREAD_MUTEX_PSHARED (mutex)
2845 to lll_timedlock, lll_robust_timedlock, lll_unlock and
2846 lll_futex_timed_wait. Use PTHREAD_MUTEX_TYPE (mutex) instead
2847 of mutex->__data.__kind directly.
2848 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Pass
2849 PTHREAD_MUTEX_PSHARED (mutex) to lll_timedlock,
2850 lll_robust_timedlock, lll_unlock and lll_futex_timed_wait. Use
2851 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind directly.
2852 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Pass
2853 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock, lll_robust_unlock
2854 and lll_futex_wake.
2855 * pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): Pass
2856 PTHREAD_MUTEX_PSHARED (mutex) to lll_futex_wait and lll_futex_wake.
2857 Use PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
2858 directly.
2859 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK):
2860 Take mutex as argument instead of its __data.__lock field, pass
2861 PTHREAD_MUTEX_PSHARED as second argument to lll_cond_lock.
2862 (LLL_MUTEX_TRYLOCK): Take mutex as argument instead of its
2863 __data.__lock field.
2864 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
2865 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
2866 to lll_robust_cond_lock.
2867 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Add pshared
2868 variable, pass it to lll_lock, lll_unlock, lll_futex_requeue and
2869 lll_futex_wake. Don't use lll_futex_requeue if dependent mutex
2870 has PTHREAD_MUTEX_PSHARED_BIT bit set in its __data.__kind.
2871 * pthread_cond_destroy.c (__pthread_cond_destroy): Add pshared
2872 variable, pass it to lll_lock, lll_unlock, lll_futex_wake and
2873 lll_futex_wait.
2874 * pthread_cond_signal.c (__pthread_cond_signal): Add pshared
2875 variable, pass it to lll_lock, lll_unlock, lll_futex_wake_unlock and
2876 lll_futex_wake.
2877 * pthread_cond_timedwait.c (__pthread_cond_wait): Add
2878 pshared variable, pass it to lll_lock, lll_unlock,
2879 lll_futex_timedwait and lll_futex_wake.
2880 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait): Add
2881 pshared variable, pass it to lll_lock, lll_unlock, lll_futex_wait
2882 and lll_futex_wake.
2883 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_requeue,
2884 lll_futex_wake_unlock): Add private argument, use __lll_private_flag
2885 macro.
2886 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue,
2887 lll_futex_wake_unlock): Likewise.
2888 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_requeue):
2889 Likewise.
2890 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_futex_requeue,
2891 lll_futex_wake_unlock): Likewise.
2892 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_requeue):
2893 Likewise.
2894 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue,
2895 lll_futex_wake_unlock): Likewise.
2896 (lll_futex_wake): Fix a typo.
2897 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym (PS_BIT): Add.
2898 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
2899 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
2900 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
2901 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
2902 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
2903 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
2904 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
2905 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2906 (__pthread_cond_timedwait): Likewise.
2907 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
2908 (__condvar_cleanup, __pthread_cond_wait): Likewise.
2909
0470fa46
JJ
29102007-08-05 Jakub Jelinek <jakub@redhat.com>
2911
2912 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
2913 Don't use CGOTSETUP and CGOTRESTORE macros.
2914 (CGOTSETUP, CGOTRESTORE): Remove.
2915 <IS_IN_rtld> (CENABLE, CDISABLE): Don't use JUMPTARGET, branch to
2916 @local symbol.
2917
64f6281c
UD
29182007-08-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2919
2920 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Remove
2921 definitions for private futexes.
2922 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Include
2923 kernel-features.h and lowlevellock.h. Use private futexes if
2924 they are available.
2925 (__lll_lock_wait_private, __lll_unlock_wake_private): New.
2926 (__lll_mutex_lock_wait): Rename to
2927 (__lll_lock_wait): ... this. Don't compile in for libc.so.
2928 (__lll_mutex_timedlock_wait): Rename to ...
2929 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday.
2930 Don't compile in for libc.so.
2931 (__lll_mutex_unlock_wake): Rename to ...
2932 (__lll_unlock_wake): ... this. Don't compile in for libc.so.
2933 (__lll_timedwait_tid): Use __NR_gettimeofday.
2934 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Allow including
2935 the header from assembler. Renamed all lll_mutex_* resp.
2936 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
2937 Renamed all LLL_MUTEX_LOCK_* macros to LLL_LOCK_*.
2938 (FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE):
2939 Define.
2940 (__lll_lock_wait_private): Add prototype.
2941 (__lll_lock_wait, __lll_timedlock_wait, __lll_robust_lock_wait,
2942 __lll_robust_timedlock_wait, __lll_unlock_wake_private,
2943 __lll_unlock_wake): Likewise.
2944 (lll_lock): Add private argument. Call __lll_lock_wait_private
2945 if private is constant LLL_PRIVATE.
2946 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
2947 lll_timedlock, lll_robust_timedlock): Add private argument.
2948 (lll_unlock): Add private argument. Call __lll_unlock_wake_private
2949 if private is constant LLL_PRIVATE.
2950 (lll_robust_unlock, lll_robust_dead): Add private argument.
2951 (lll_lock_t): Remove.
2952 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
2953 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
2954 lll_cond_wake, lll_cond_broadcast): Remove.
2955 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: Include
2956 kernel-features.h and lowlevellock.h.
2957 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
2958 (LOAD_FUTEX_WAIT): Define.
2959 (__lll_robust_mutex_lock_wait): Rename to ...
2960 (__lll_robust_lock_wait): ... this. Add private argument.
2961 Use LOAD_FUTEX_WAIT macro.
2962 (__lll_robust_mutex_timedlock_wait): Rename to ...
2963 (__lll_robust_timedlock_wait): ... this. Add private argument.
2964 Use __NR_gettimeofday. Use LOAD_FUTEX_WAIT macro.
2965 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Include
2966 lowlevellock.h.
2967 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
2968 (pthread_barrier_wait): Use __lll_{lock,unlock}_* instead of
2969 __lll_mutex_{lock,unlock}_*.
2970 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Include
2971 lowlevellock.h and pthread-errnos.h.
2972 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
2973 FUTEX_CMP_REQUEUE, EINVAL): Remove.
2974 (__pthread_cond_broadcast): Use __lll_{lock,unlock}_* instead of
2975 __lll_mutex_{lock,unlock}_*.
2976 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Include
2977 lowlevellock.h and pthread-errnos.h.
2978 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE, EINVAL): Remove.
2979 (__pthread_cond_signal): Use __lll_{lock,unlock}_* instead of
2980 __lll_mutex_{lock,unlock}_*.
2981 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
2982 lowlevellock.h.
2983 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE): Remove.
2984 (__pthread_cond_timedwait): Use __lll_{lock,unlock}_* instead of
2985 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
2986 (__condvar_tw_cleanup): Likewise.
2987 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
2988 lowlevellock.h.
2989 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
2990 (__pthread_cond_wait): Use __lll_{lock,unlock}_* instead of
2991 __lll_mutex_{lock,unlock}_*.
2992 ( __condvar_w_cleanup): Likewise.
2993 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Include lowlevellock.h.
2994 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
2995 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Include
2996 lowlevellock.h.
2997 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
2998 (__pthread_rwlock_rdlock): Use __lll_{lock,unlock}_* instead of
2999 __lll_mutex_{lock,unlock}_*.
3000 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Include
3001 lowlevellock.h.
3002 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
3003 FUTEX_PRIVATE_FLAG): Remove.
3004 (pthread_rwlock_timedrdlock): Use __lll_{lock,unlock}_* instead of
3005 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
3006 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Include
3007 lowlevellock.h.
3008 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
3009 FUTEX_PRIVATE_FLAG): Remove.
3010 (pthread_rwlock_timedwrlock): Use __lll_{lock,unlock}_* instead of
3011 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
3012 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Include
3013 lowlevellock.h.
3014 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
3015 (__pthread_rwlock_unlock): Use __lll_{lock,unlock}_* instead of
3016 __lll_mutex_{lock,unlock}_*.
3017 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Include
3018 lowlevellock.h.
3019 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
3020 (__pthread_rwlock_wrlock): Use __lll_{lock,unlock}_* instead of
3021 __lll_mutex_{lock,unlock}_*.
3022 * sysdeps/unix/sysv/linux/sh/sem_post.S: Include lowlevellock.h.
3023 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
3024 (__new_sem_post): Use standard initial exec code sequences.
3025 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Include
3026 lowlevellock.h.
3027 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
3028 FUTEX_PRIVATE_FLAG): Remove.
3029 (sem_timedwait): Use __NR_gettimeofday. Use standard initial
3030 exec code sequences.
3031 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Include lowlevellock.h.
3032 (__new_sem_trywait): Use standard initial exec code sequences.
3033 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Include lowlevellock.h.
3034 (__new_sem_wait): Use standard initial exec code sequences.
3035
e51deae7
UD
30362007-07-31 Anton Blanchard <anton@samba.org>
3037
3038 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
3039 Use __asm __volatile (__lll_acq_instr ::: "memory") instead of
3040 atomic_full_barrier.
3041
30422007-07-31 Jakub Jelinek <jakub@redhat.com>
3043
3044 * allocatestack.c (stack_cache_lock): Change type to int.
3045 (get_cached_stack, allocate_stack, __deallocate_stack,
3046 __make_stacks_executable, __find_thread_by_id, __nptl_setxid,
3047 __pthread_init_static_tls, __wait_lookup_done): Add LLL_PRIVATE
3048 as second argument to lll_lock and lll_unlock macros on
3049 stack_cache_lock.
3050 * pthread_create.c (__find_in_stack_list): Likewise.
3051 (start_thread): Similarly with pd->lock. Use lll_robust_dead
3052 macro instead of lll_robust_mutex_dead, pass LLL_SHARED to it
3053 as second argument.
3054 * descr.h (struct pthread): Change lock and setxid_futex field
3055 type to int.
3056 * old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0): Use
3057 LLL_LOCK_INITIALIZER instead of LLL_MUTEX_LOCK_INITIALIZER.
3058 * old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise.
3059 * old_pthread_cond_timedwait.c (__pthread_cond_timedwait_2_0):
3060 Likewise.
3061 * old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise.
3062 * pthread_cond_init.c (__pthread_cond_init): Likewise.
3063 * pthreadP.h (__attr_list_lock): Change type to int.
3064 * pthread_attr_init.c (__attr_list_lock): Likewise.
3065 * pthread_barrier_destroy.c (pthread_barrier_destroy): Pass
3066 ibarrier->private ^ FUTEX_PRIVATE_FLAG as second argument to
3067 lll_{,un}lock.
3068 * pthread_barrier_wait.c (pthread_barrier_wait): Likewise and
3069 also for lll_futex_{wake,wait}.
3070 * pthread_barrier_init.c (pthread_barrier_init): Make iattr
3071 a pointer to const.
3072 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Pass
3073 LLL_SHARED as second argument to lll_{,un}lock.
3074 * pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
3075 * pthread_cond_signal.c (__pthread_cond_singal): Likewise.
3076 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
3077 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait):
3078 Likewise.
3079 * pthread_getattr_np.c (pthread_getattr_np): Add LLL_PRIVATE
3080 as second argument to lll_{,un}lock macros on pd->lock.
3081 * pthread_getschedparam.c (__pthread_getschedparam): Likewise.
3082 * pthread_setschedparam.c (__pthread_setschedparam): Likewise.
3083 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
3084 * tpp.c (__pthread_tpp_change_priority, __pthread_current_priority):
3085 Likewise.
3086 * sysdeps/pthread/createthread.c (do_clone, create_thread):
3087 Likewise.
3088 * pthread_once.c (once_lock): Change type to int.
3089 (__pthread_once): Pass LLL_PRIVATE as second argument to
3090 lll_{,un}lock macros on once_lock.
3091 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Use
3092 lll_{,un}lock macros instead of lll_mutex_{,un}lock, pass
3093 rwlock->__data.__shared as second argument to them and similarly
3094 for lll_futex_w*.
3095 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
3096 Likewise.
3097 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
3098 Likewise.
3099 * pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Likewise.
3100 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Likewise.
3101 * pthread_rwlock_unlock.c (__pthread_rwlock_unlock): Likewise.
3102 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
3103 * sem_close.c (sem_close): Pass LLL_PRIVATE as second argument
3104 to lll_{,un}lock macros on __sem_mappings_lock.
3105 * sem_open.c (check_add_mapping): Likewise.
3106 (__sem_mappings_lock): Change type to int.
3107 * semaphoreP.h (__sem_mappings_lock): Likewise.
3108 * pthread_mutex_lock.c (LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
3109 LLL_ROBUST_MUTEX_LOCK): Use lll_{,try,robust_}lock macros
3110 instead of lll_*mutex_*, pass LLL_SHARED as last
3111 argument.
3112 (__pthread_mutex_lock): Use lll_unlock instead of lll_mutex_unlock,
3113 pass LLL_SHARED as last argument.
3114 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK,
3115 LLL_MUTEX_TRYLOCK, LLL_ROBUST_MUTEX_LOCK): Use
3116 lll_{cond_,cond_try,robust_cond}lock macros instead of lll_*mutex_*,
3117 pass LLL_SHARED as last argument.
3118 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
3119 lll_{timed,try,robust_timed,un}lock instead of lll_*mutex*, pass
3120 LLL_SHARED as last argument.
3121 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Similarly.
3122 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
3123 Similarly.
3124 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_lock,
3125 __libc_lock_lock_recursive, __libc_lock_unlock,
3126 __libc_lock_unlock_recursive): Pass LLL_PRIVATE as second
3127 argument to lll_{,un}lock.
3128 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_lock,
3129 _IO_lock_unlock): Likewise.
3130 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Don't use
3131 compound literal.
3132 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
3133 Pass LLL_PRIVATE as second argument to lll_{,un}lock macros on
3134 __fork_lock.
3135 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork,
3136 free_mem): Likewise.
3137 (__fork_lock): Change type to int.
3138 * sysdeps/unix/sysv/linux/fork.h (__fork_lock): Likewise.
3139 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Pass
3140 isem->private ^ FUTEX_PRIVATE_FLAG as second argument to
3141 lll_futex_wake.
3142 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
3143 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Likewise.
3144 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait_private):
3145 New function.
3146 (__lll_lock_wait, __lll_timedlock_wait): Add private argument and
3147 pass it through to lll_futex_*wait, only compile in when
3148 IS_IN_libpthread.
3149 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
3150 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): Add private
3151 argument and pass it through to lll_futex_*wait.
3152 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Renamed all
3153 lll_mutex_* resp. lll_robust_mutex_* macros to lll_* resp.
3154 lll_robust_*. Renamed all __lll_mutex_* resp. __lll_robust_mutex_*
3155 inline functions to __lll_* resp. __lll_robust_*.
3156 (LLL_MUTEX_LOCK_INITIALIZER): Remove.
3157 (lll_mutex_dead): Add private argument.
3158 (__lll_lock_wait_private): New prototype.
3159 (__lll_lock_wait, __lll_robust_lock_wait, __lll_lock_timedwait,
3160 __lll_robust_lock_timedwait): Add private argument to prototypes.
3161 (__lll_lock): Add private argument, if it is constant LLL_PRIVATE,
3162 call __lll_lock_wait_private, otherwise pass private to
3163 __lll_lock_wait.
3164 (__lll_robust_lock, __lll_cond_lock, __lll_timedlock,
3165 __lll_robust_timedlock): Add private argument, pass it to
3166 __lll_*wait functions.
3167 (__lll_unlock): Add private argument, if it is constant LLL_PRIVATE,
3168 call __lll_unlock_wake_private, otherwise pass private to
3169 __lll_unlock_wake.
3170 (__lll_robust_unlock): Add private argument, pass it to
3171 __lll_robust_unlock_wake.
3172 (lll_lock, lll_robust_lock, lll_cond_lock, lll_timedlock,
3173 lll_robust_timedlock, lll_unlock, lll_robust_unlock): Add private
3174 argument, pass it through to __lll_* inline function.
3175 (__lll_mutex_unlock_force, lll_mutex_unlock_force): Remove.
3176 (lll_lock_t): Remove.
3177 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
3178 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
3179 lll_cond_wake, lll_cond_broadcast): Remove.
3180 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
3181 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
3182 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
3183 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
3184 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Allow including
3185 the header from assembler. Renamed all lll_mutex_* resp.
3186 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
3187 (LOCK, FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP,
3188 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3189 (LLL_MUTEX_LOCK_INITIALIZER, LLL_MUTEX_LOCK_INITIALIZER_LOCKED,
3190 LLL_MUTEX_LOCK_INITIALIZER_WAITERS): Remove.
3191 (__lll_mutex_lock_wait, __lll_mutex_timedlock_wait,
3192 __lll_mutex_unlock_wake, __lll_lock_wait, __lll_unlock_wake):
3193 Remove prototype.
3194 (__lll_trylock_asm, __lll_lock_asm_start, __lll_unlock_asm): Define.
3195 (lll_robust_trylock, lll_cond_trylock): Use LLL_LOCK_INITIALIZER*
3196 rather than LLL_MUTEX_LOCK_INITIALIZER* macros.
3197 (lll_trylock): Likewise, use __lll_trylock_asm, pass
3198 MULTIPLE_THREADS_OFFSET as another asm operand.
3199 (lll_lock): Add private argument, use __lll_lock_asm_start, pass
3200 MULTIPLE_THREADS_OFFSET as last asm operand, call
3201 __lll_lock_wait_private if private is constant LLL_PRIVATE,
3202 otherwise pass private as another argument to __lll_lock_wait.
3203 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
3204 lll_timedlock, lll_robust_timedlock): Add private argument, pass
3205 private as another argument to __lll_*lock_wait call.
3206 (lll_unlock): Add private argument, use __lll_unlock_asm, pass
3207 MULTIPLE_THREADS_OFFSET as another asm operand, call
3208 __lll_unlock_wake_private if private is constant LLL_PRIVATE,
3209 otherwise pass private as another argument to __lll_unlock_wake.
3210 (lll_robust_unlock): Add private argument, pass private as another
3211 argument to __lll_unlock_wake.
3212 (lll_robust_dead): Add private argument, use __lll_private_flag
3213 macro.
3214 (lll_islocked): Use LLL_LOCK_INITIALIZER instead of
3215 LLL_MUTEX_LOCK_INITIALIZER.
3216 (lll_lock_t): Remove.
3217 (LLL_LOCK_INITIALIZER_WAITERS): Define.
3218 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
3219 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
3220 lll_cond_wake, lll_cond_broadcast): Remove.
3221 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
3222 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Revert
3223 2007-05-2{3,9} changes.
3224 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Include
3225 kernel-features.h and lowlevellock.h.
3226 (LOAD_PRIVATE_FUTEX_WAIT): Define.
3227 (LOAD_FUTEX_WAIT): Rewritten.
3228 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
3229 define.
3230 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
3231 (__lll_mutex_lock_wait): Rename to ...
3232 (__lll_lock_wait): ... this. Take futex addr from %edx instead of
3233 %ecx, %ecx is now private argument. Don't compile in for libc.so.
3234 (__lll_mutex_timedlock_wait): Rename to ...
3235 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday. %esi
3236 contains private argument. Don't compile in for libc.so.
3237 (__lll_mutex_unlock_wake): Rename to ...
3238 (__lll_unlock_wake): ... this. %ecx contains private argument.
3239 Don't compile in for libc.so.
3240 (__lll_timedwait_tid): Use __NR_gettimeofday.
3241 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Include
3242 kernel-features.h and lowlevellock.h.
3243 (LOAD_FUTEX_WAIT): Define.
3244 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
3245 define.
3246 (__lll_robust_mutex_lock_wait): Rename to ...
3247 (__lll_robust_lock_wait): ... this. Futex addr is now in %edx
3248 argument, %ecx argument contains private. Use LOAD_FUTEX_WAIT
3249 macro.
3250 (__lll_robust_mutex_timedlock_wait): Rename to ...
3251 (__lll_robust_timedlock_wait): ... this. Use __NR_gettimeofday.
3252 %esi argument contains private, use LOAD_FUTEX_WAIT macro.
3253 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Include
3254 lowlevellock.h.
3255 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3256 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
3257 PRIVATE(%ebx) ^ LLL_SHARED as private argument in %ecx to
3258 __lll_lock_wait and __lll_unlock_wake, pass MUTEX(%ebx) address
3259 to __lll_lock_wait in %edx.
3260 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
3261 Include lowlevellock.h and pthread-errnos.h.
3262 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
3263 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
3264 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*, pass
3265 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
3266 pass LLL_SHARED in %ecx to both __lll_lock_wait and
3267 __lll_unlock_wake.
3268 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
3269 Include lowlevellock.h and pthread-errnos.h.
3270 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
3271 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
3272 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*, pass
3273 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
3274 pass LLL_SHARED in %ecx to both __lll_lock_wait and
3275 __lll_unlock_wake.
3276 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
3277 Include lowlevellock.h.
3278 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
3279 Don't define.
3280 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*, pass
3281 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
3282 pass LLL_SHARED in %ecx to both __lll_lock_wait and
3283 __lll_unlock_wake. Use __NR_gettimeofday.
3284 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
3285 Include lowlevellock.h.
3286 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3287 (__pthread_cond_wait, __condvar_w_cleanup): Rename __lll_mutex_*
3288 to __lll_*, pass cond_lock address in %edx rather than %ecx to
3289 __lll_lock_wait, pass LLL_SHARED in %ecx to both __lll_lock_wait
3290 and __lll_unlock_wake.
3291 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
3292 Include lowlevellock.h.
3293 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3294 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*, pass
3295 MUTEX(%ebx) address in %edx rather than %ecx to
3296 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
3297 and __lll_unlock_wake. Move return value from %ecx to %edx
3298 register.
3299 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
3300 Include lowlevellock.h.
3301 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
3302 Don't define.
3303 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
3304 MUTEX(%ebp) address in %edx rather than %ecx to
3305 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
3306 and __lll_unlock_wake. Move return value from %ecx to %edx
3307 register. Use __NR_gettimeofday.
3308 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
3309 Include lowlevellock.h.
3310 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
3311 Don't define.
3312 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
3313 MUTEX(%ebp) address in %edx rather than %ecx to
3314 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
3315 and __lll_unlock_wake. Move return value from %ecx to %edx
3316 register. Use __NR_gettimeofday.
3317 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
3318 Include lowlevellock.h.
3319 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3320 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*, pass
3321 MUTEX(%edi) address in %edx rather than %ecx to
3322 __lll_lock_wait, pass PSHARED(%edi) in %ecx to both __lll_lock_wait
3323 and __lll_unlock_wake.
3324 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
3325 Include lowlevellock.h.
3326 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3327 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
3328 MUTEX(%ebx) address in %edx rather than %ecx to
3329 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
3330 and __lll_unlock_wake. Move return value from %ecx to %edx
3331 register.
3332 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Include
3333 lowlevellock.h.
3334 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
3335 define.
3336 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Include lowlevellock.h.
3337 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
3338 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Include
3339 lowlevellock.h.
3340 (LOCK, SYS_futex, SYS_gettimeofday, FUTEX_WAIT): Don't define.
3341 (sem_timedwait): Use __NR_gettimeofday.
3342 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Include
3343 lowlevellock.h.
3344 (LOCK): Don't define.
3345 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include
3346 lowlevellock.h.
3347 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
3348 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: Wake only when there
3349 are waiters.
3350 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Revert
3351 2007-05-2{3,9} changes.
3352 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Include
3353 kernel-features.h and lowlevellock.h.
3354 (LOAD_PRIVATE_FUTEX_WAIT): Define.
3355 (LOAD_FUTEX_WAIT): Rewritten.
3356 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
3357 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
3358 (__lll_mutex_lock_wait): Rename to ...
3359 (__lll_lock_wait): ... this. %esi is now private argument.
3360 Don't compile in for libc.so.
3361 (__lll_mutex_timedlock_wait): Rename to ...
3362 (__lll_timedlock_wait): ... this. %esi contains private argument.
3363 Don't compile in for libc.so.
3364 (__lll_mutex_unlock_wake): Rename to ...
3365 (__lll_unlock_wake): ... this. %esi contains private argument.
3366 Don't compile in for libc.so.
3367 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Include
3368 kernel-features.h and lowlevellock.h.
3369 (LOAD_FUTEX_WAIT): Define.
3370 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
3371 (__lll_robust_mutex_lock_wait): Rename to ...
3372 (__lll_robust_lock_wait): ... this. %esi argument contains private.
3373 Use LOAD_FUTEX_WAIT macro.
3374 (__lll_robust_mutex_timedlock_wait): Rename to ...
3375 (__lll_robust_timedlock_wait): ... this. %esi argument contains
3376 private, use LOAD_FUTEX_WAIT macro.
3377 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Include
3378 lowlevellock.h.
3379 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3380 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
3381 PRIVATE(%rdi) ^ LLL_SHARED as private argument in %esi to
3382 __lll_lock_wait and __lll_unlock_wake.
3383 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S:
3384 Include lowlevellock.h and pthread-errnos.h.
3385 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
3386 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
3387 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*,
3388 pass LLL_SHARED in %esi to both __lll_lock_wait and
3389 __lll_unlock_wake.
3390 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S:
3391 Include lowlevellock.h and pthread-errnos.h.
3392 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
3393 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
3394 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*,
3395 pass LLL_SHARED in %esi to both __lll_lock_wait and
3396 __lll_unlock_wake.
3397 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:
3398 Include lowlevellock.h.
3399 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3400 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*,
3401 pass LLL_SHARED in %esi to both __lll_lock_wait and
3402 __lll_unlock_wake.
3403 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
3404 Include lowlevellock.h.
3405 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3406 (__pthread_cond_wait, __condvar_cleanup): Rename __lll_mutex_*
3407 to __lll_*, pass LLL_SHARED in %esi to both __lll_lock_wait
3408 and __lll_unlock_wake.
3409 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
3410 Include lowlevellock.h.
3411 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
3412 Don't define.
3413 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*,
3414 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
3415 and __lll_unlock_wake.
3416 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3417 Include lowlevellock.h.
3418 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
3419 Don't define.
3420 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
3421 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
3422 and __lll_unlock_wake.
3423 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3424 Include lowlevellock.h.
3425 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
3426 Don't define.
3427 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
3428 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
3429 and __lll_unlock_wake.
3430 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
3431 Include lowlevellock.h.
3432 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
3433 Don't define.
3434 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*,
3435 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
3436 and __lll_unlock_wake.
3437 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
3438 Include lowlevellock.h.
3439 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
3440 Don't define.
3441 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
3442 pass PSHARED(%rdi) in %ecx to both __lll_lock_wait
3443 and __lll_unlock_wake.
3444 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Include
3445 lowlevellock.h.
3446 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
3447 define.
3448 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Include lowlevellock.h.
3449 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
3450 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Include
3451 lowlevellock.h.
3452 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
3453 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Include
3454 lowlevellock.h.
3455 (LOCK): Don't define.
3456 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Include
3457 lowlevellock.h.
3458 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
3459 * sysdeps/unix/sysv/linux/sparc/internaltypes.h: New file.
3460 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c: New file.
3461 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c: New file.
3462 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c: New file.
3463 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
3464 (__lll_lock_wait_private): New function.
3465 (__lll_lock_wait, __lll_timedlock_wait): Add private argument, pass
3466 it to lll_futex_*wait. Don't compile in for libc.so.
3467 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c:
3468 Remove.
3469 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
3470 (struct sparc_pthread_barrier): Remove.
3471 (pthread_barrier_wait): Use union sparc_pthread_barrier instead of
3472 struct sparc_pthread_barrier. Pass
3473 ibarrier->s.pshared ? LLL_SHARED : LLL_PRIVATE to lll_{,un}lock
3474 and lll_futex_wait macros.
3475 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
3476 Remove.
3477 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
3478 Include sparc pthread_barrier_wait.c instead of generic one.
3479
6f59d56e
UD
34802007-07-30 Jakub Jelinek <jakub@redhat.com>
3481
1475e201
UD
3482 * tst-rwlock14.c (do_test): Avoid warnings on 32-bit arches.
3483
6f59d56e
UD
3484 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
3485 (pthread_rwlock_timedrdlock): Copy futex retval to %esi rather than
3486 %ecx.
3487 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
3488 (pthread_rwlock_timedwrlock): Likewise.
3489 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
3490 (__pthread_rwlock_unlock): Fix MUTEX != 0 args to __lll_*.
3491
558f0300
JJ
34922007-07-31 Jakub Jelinek <jakub@redhat.com>
3493
3494 * sysdeps/sparc/tls.h (tcbhead_t): Add private_futex field.
3495
cedb4109
UD
34962007-07-26 Jakub Jelinek <jakub@redhat.com>
3497
3498 * tst-locale2.c (useless): Add return statement.
3499
085a4412
UD
35002007-07-24 Jakub Jelinek <jakub@redhat.com>
3501
3502 * allocatestack.c (__nptl_setxid, __wait_lookup_done): Replace
3503 lll_private_futex_* (*) with lll_futex_* (*, LLL_PRIVATE).
3504 * pthread_create.c (start_thread): Likewise.
3505 * init.c (sighandler_setxid): Likewise.
3506 * sysdeps/alpha/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3507 * sysdeps/ia64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3508 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3509 * sysdeps/s390/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3510 * sysdeps/powerpc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3511 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3512 * sysdeps/sparc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3513 * sysdeps/sh/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3514 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY, AIO_MISC_WAIT):
3515 Likewise.
3516 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY, GAI_MISC_WAIT):
3517 Likewise.
3518 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
3519 Likewise.
3520 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_waitzero,
3521 __rtld_notify): Likewise.
3522 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Likewise.
3523 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (clear_once_control,
3524 __pthread_once): Likewise.
3525 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (clear_once_control,
3526 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
3527 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_PRIVATE_FLAG,
3528 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
3529 (lll_futex_wait): Add private argument, define as wrapper around
3530 lll_futex_timed_wait.
3531 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
3532 use __lll_private_flag macro.
3533 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
3534 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
3535 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (clear_once_control,
3536 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
3537 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_PRIVATE_FLAG,
3538 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
3539 (lll_futex_wait): Add private argument, define as wrapper around
3540 lll_futex_timed_wait.
3541 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
3542 use __lll_private_flag macro.
3543 (__lll_mutex_unlock, __lll_robust_mutex_unlock, lll_wait_tid,
3544 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
3545 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
3546 Define.
3547 (lll_futex_timed_wait, lll_futex_wake): Use it.
3548 (lll_private_futex_wait, lll_private_futex_timed_wait,
3549 lll_private_futex_wake): Removed.
3550 * sysdeps/unix/sysv/linux/s390/pthread_once.c (clear_once_control,
3551 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
3552 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_PRIVATE_FLAG,
3553 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
3554 (lll_futex_wait): Add private argument, define as wrapper around
3555 lll_futex_timed_wait.
3556 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
3557 use __lll_private_flag macro.
3558 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
3559 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
3560 to lll_futex_*.
3561 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
3562 (lll_private_futex_wait, lll_private_futex_timed_wait,
3563 lll_private_futex_wake): Removed.
3564 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_private_flag):
3565 Fix !__ASSUME_PRIVATE_FUTEX non-constant private case.
3566 (lll_private_futex_wait, lll_private_futex_timed_wait,
3567 lll_private_futex_wake): Removed.
3568 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (clear_once_control,
3569 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
3570 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_PRIVATE_FLAG,
3571 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
3572 (lll_futex_wait): Add private argument, define as wrapper around
3573 lll_futex_timed_wait.
3574 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
3575 use __lll_private_flag macro.
3576 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
3577 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
3578 to lll_futex_*.
3579 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (__lll_private_flag):
3580 Define.
3581 (lll_futex_timed_wait, lll_futex_wake): Use it.
3582 (lll_private_futex_wait, lll_private_futex_timed_wait,
3583 lll_private_futex_wake): Removed.
3584
ef0af159
JJ
35852007-07-27 Jakub Jelinek <jakub@redhat.com>
3586
3587 * sysdeps/sparc/tls.h (tcbhead_t): Move gscope_flag to the end
3588 of the structure for sparc32.
3589
35902007-07-26 Aurelien Jarno <aurelien@aurel32.net>
3591
3592 * sysdeps/sparc/tls.h (tcbhead_t): Add gscope_flag.
3593
eb4f5909
UD
35942007-07-23 Ulrich Drepper <drepper@redhat.com>
3595
3596 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
3597 code used when private futexes are assumed.
3598 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3599 Likewise.
3600
b5f13526
UD
36012007-07-23 Jakub Jelinek <jakub@redhat.com>
3602
3603 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
3604 (__lll_private_flag): Define.
3605 (lll_futex_wait): Define as a wrapper around lll_futex_timed_wait.
3606 (lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Use
3607 __lll_private_flag.
3608 (lll_private_futex_wait, lll_private_futex_timedwait,
3609 lll_private_futex_wake): Define as wrapper around non-_private
3610 macros.
3611 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
3612 (__lll_private_flag): Define.
3613 (lll_futex_timed_wait, lll_futex_wake): Use __lll_private_flag.
3614 (lll_private_futex_wait, lll_private_futex_timedwait,
3615 lll_private_futex_wake): Define as wrapper around non-_private
3616 macros.
3617
eb7721f2
UD
36182007-07-10 Steven Munroe <sjmunroe@us.ibm.com>
3619
3620 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Add LLL_SHARED
3621 parameter to lll_futex_wait call.
3622 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
3623
3624 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
3625 Replace lll_futex_wait with lll_private_futex_wait.
3626 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
3627 Add LLL_SHARED parameter to lll_futex_wake().
3628
3629 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define LLL_PRIVATE
3630 LLL_SHARED, lll_private_futex_wait, lll_private_futex_timed_wait and
3631 lll_private_futex_wake.
3632 (lll_futex_wait): Add private parameter. Adjust FUTEX_PRIVATE_FLAG
3633 bit from private parm before syscall.
3634 (lll_futex_timed_wait): Likewise.
3635 (lll_futex_wake): Likewise.
3636 (lll_futex_wake_unlock): Likewise.
3637 (lll_mutex_unlock): Add LLL_SHARED parm to lll_futex_wake call.
3638 (lll_robust_mutex_unlock): Likewise.
3639 (lll_mutex_unlock_force): Likewise.
3640 (lll_wait_tid): Add LLL_SHARED parm to lll_futex_wait call.
3641
defc45f2
UD
36422007-07-23 Ulrich Drepper <drepper@redhat.com>
3643
3644 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
3645 compilation when unconditionally using private futexes.
3646 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3647 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3648 Likewise.
3649 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
3650 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3651
087722b8
UD
36522007-07-17 Jakub Jelinek <jakub@redhat.com>
3653
3654 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock_clear_flags2):
3655 Define.
3656
765c6b0c
UD
36572007-07-06 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3658
3659 * sysdeps/sh/tls.h: Include stdlib.h, list.h, sysdep.h and
3660 kernel-features.h.
3661
7d9d8bd1
RM
36622007-05-16 Roland McGrath <roland@redhat.com>
3663
3664 * init.c (__nptl_initial_report_events): New variable.
3665 (__pthread_initialize_minimal_internal): Initialize pd->report_events
3666 to that.
3667
a4915df2
UD
36682007-06-22 Jakub Jelinek <jakub@redhat.com>
3669
3670 * pthread_getattr_np.c (pthread_getattr_np): Clear cpuset and
3671 cpusetsize if pthread_getaffinity_np failed with ENOSYS.
3672
e4eb675d
UD
36732007-06-19 Ulrich Drepper <drepper@redhat.com>
3674
3675 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Remove mrlock
3676 implementation.
3677
ae1ad3ae
UD
36782007-06-18 Ulrich Drepper <drepper@redhat.com>
3679
3680 * pthreadP.h: Define PTHREAD_MUTEX_TYPE.
3681 * phtread_mutex_lock.c: Use PTHREAD_MUTEX_TYPE.
3682 * pthread_mutex_timedlock.c: Likewise.
3683 * pthread_mutex_trylock.c: Likewise.
3684 * pthread_mutex_unlock.c: Likewise.
3685
89074592
UD
36862007-06-17 Andreas Schwab <schwab@suse.de>
3687
3688 * sysdeps/pthread/pt-initfini.c: Tell gcc about the nonstandard
3689 sections.
3690
d4201cc4
UD
36912007-06-17 Ulrich Drepper <drepper@redhat.com>
3692
3693 * allocatestack.c (allocate_stack): Make code compile if
3694 __ASSUME_PRIVATE_FUTEX is set.
3695
339dbf0e
UD
36962007-06-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3697
3698 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S:
3699 (__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction.
3700 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S:
3701 (__pthread_rwlock_wrlock): Likewise.
3702 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
3703 (pthread_rwlock_timedrdlock): Likewise.
3704 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
3705 (pthread_rwlock_timedwrlock): Likewise.
3706 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S:
3707 (__pthread_rwlock_unlock): Likewise.
3708
37092007-06-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3710
3711 * sysdeps/sh/tcb-offsets.sym: Add PRIVATE_FUTEX.
3712 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Include endian.h.
3713 Split __flags into __flags, __shared, __pad1 and __pad2.
3714 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Use private
b42a214c 3715 futexes if they are available.
339dbf0e 3716 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Adjust so that change
b42a214c 3717 in libc-lowlevellock.S allow using private futexes.
339dbf0e
UD
3718 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
3719 FUTEX_PRIVATE_FLAG. Add additional parameter to lll_futex_wait,
3720 lll_futex_timed_wait and lll_futex_wake. Change lll_futex_wait
3721 to call lll_futex_timed_wait. Add lll_private_futex_wait,
3722 lll_private_futex_timed_wait and lll_private_futex_wake.
3723 (lll_robust_mutex_unlock): Fix typo.
3724 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Use private
b42a214c 3725 field in futex command setup.
339dbf0e
UD
3726 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Use
3727 COND_NWAITERS_SHIFT instead of COND_CLOCK_BITS.
3728 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
3729 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use private futexes
b42a214c 3730 if they are available. Remove clear_once_control.
339dbf0e
UD
3731 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Use private
3732 futexes if they are available.
3733 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
3734 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
3735 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
3736 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
3737 * sysdeps/unix/sysv/linux/sh/sem_post.S: Add private futex support.
3738 Wake only when there are waiters.
3739 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add private futex
3740 support. Indicate that there are waiters. Remove unnecessary
b42a214c 3741 extra cancellation test.
339dbf0e
UD
3742 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise. Removed
3743 left-over duplication of __sem_wait_cleanup.
3744
26f56c1c
UD
37452007-06-07 Ulrich Drepper <drepper@redhat.com>
3746
3747 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Add additional
3748 parameter to lll_futex_wait, lll_futex_timed_wait, and
3749 lll_futex_wake. Change lll_futex_wait to call lll_futex_timed_wait.
3750 Add lll_private_futex_wait, lll_private_futex_timed_wait, and
3751 lll_private_futex_wake.
3752 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
3753 * allocatestack.c: Adjust use of lll_futex_* macros.
3754 * init.c: Likewise.
3755 * lowlevellock.h: Likewise.
3756 * pthread_barrier_wait.c: Likewise.
3757 * pthread_cond_broadcast.c: Likewise.
3758 * pthread_cond_destroy.c: Likewise.
3759 * pthread_cond_signal.c: Likewise.
3760 * pthread_cond_timedwait.c: Likewise.
3761 * pthread_cond_wait.c: Likewise.
3762 * pthread_create.c: Likewise.
3763 * pthread_mutex_lock.c: Likewise.
3764 * pthread_mutex_setprioceiling.c: Likewise.
3765 * pthread_mutex_timedlock.c: Likewise.
3766 * pthread_mutex_unlock.c: Likewise.
3767 * pthread_rwlock_timedrdlock.c: Likewise.
3768 * pthread_rwlock_timedwrlock.c: Likewise.
3769 * pthread_rwlock_unlock.c: Likewise.
3770 * sysdeps/alpha/tls.h: Likewise.
3771 * sysdeps/i386/tls.h: Likewise.
3772 * sysdeps/ia64/tls.h: Likewise.
3773 * sysdeps/powerpc/tls.h: Likewise.
3774 * sysdeps/pthread/aio_misc.h: Likewise.
3775 * sysdeps/pthread/gai_misc.h: Likewise.
3776 * sysdeps/s390/tls.h: Likewise.
3777 * sysdeps/sh/tls.h: Likewise.
3778 * sysdeps/sparc/tls.h: Likewise.
3779 * sysdeps/unix/sysv/linux/fork.c: Likewise.
3780 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
3781 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: Likewise.
3782 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Likewise.
3783 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
3784 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
3785 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
3786 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
3787 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
3788 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c:
3789 Likewise.
3790 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: Likewise.
3791 * sysdeps/x86_64/tls.h: Likewise.
3792
ee5d5755
UD
37932007-05-29 Ulrich Drepper <drepper@redhat.com>
3794
b03b0c29
UD
3795 * pthread_getattr_np.c: No need to install a cancellation handler,
3796 this is no cancellation point.
3797 * pthread_getschedparam.c: Likewise.
3798 * pthread_setschedparam.c: Likewise.
3799 * pthread_setschedprio.c: Likewise.
3800 * sysdeps/unix/sysv/linux/lowlevellock.c: Remove all traces of
3801 lll_unlock_wake_cb.
3802 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
3803 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
3804 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
3805 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
3806 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
3807 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
3808 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
3809 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
3810 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
3811 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: Likewise.
3812 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
3813 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
fc3f0ccb 3814
0154658d
UD
3815 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
3816 whether there are more than one thread makes no sense here since
3817 we only call the slow path if the locks are taken.
3818 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
3819
ee5d5755
UD
3820 * sysdeps/unix/sysv/linux/internaltypes.h: Introduce
3821 COND_NWAITERS_SHIFT.
3822 * pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of
3823 COND_CLOCK_BITS.
3824 * pthread_cond_init.c: Likewise.
3825 * pthread_cond_timedwait.c: Likewise.
3826 * pthread_cond_wait.c: Likewise.
3827 * pthread_condattr_getclock.c: Likewise.
3828 * pthread_condattr_setclock.c: Likewise.
3829 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Likewise.
3830 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3831 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3832 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3833 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3834
991fa82b
UD
38352007-05-28 Jakub Jelinek <jakub@redhat.com>
3836
40f57573
UD
3837 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c: Include
3838 unistd.h.
3839
991fa82b
UD
3840 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Use explicit
3841 insn suffix.
3842 (THREAD_GSCOPE_GET_FLAG): Remove.
3843 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Remove.
3844 * allocatestack.c (__wait_lookup_done): Revert 2007-05-24
3845 changes.
3846 * sysdeps/powerpc/tls.h (tcbhead_t): Remove gscope_flag.
3847 (THREAD_GSCOPE_GET_FLAG): Remove.
3848 (THREAD_GSCOPE_RESET_FLAG): Use THREAD_SELF->header.gscope_flag
3849 instead of THREAD_GSCOPE_GET_FLAG.
3850 (THREAD_GSCOPE_SET_FLAG): Likewise. Add atomic_write_barrier after
3851 it.
3852 * sysdeps/s390/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
3853 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
3854 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
3855 THREAD_GSCOPE_WAIT): Define.
3856 * sysdeps/sparc/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
3857 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
3858 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
3859 THREAD_GSCOPE_WAIT): Define.
3860 * sysdeps/sh/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
3861 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
3862 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
3863 THREAD_GSCOPE_WAIT): Define.
3864 * sysdeps/ia64/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
3865 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
3866 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
3867 THREAD_GSCOPE_WAIT): Define.
3868
38692007-05-24 Richard Henderson <rth@redhat.com>
3870
3871 * descr.h (struct pthread): Add header.gscope_flag.
3872 * sysdeps/alpha/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
3873 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
3874 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
3875 THREAD_GSCOPE_WAIT): Define.
3876
e59660bc
UD
38772007-05-27 Ulrich Drepper <drepper@redhat.com>
3878
3879 * init.c: Make it compile with older kernel headers.
3880
3881 * tst-initializers1.c: Show through exit code which test failed.
3882
3883 * pthread_rwlock_init.c: Also initialize __shared field.
3884 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Split __flags
3885 element in rwlock structure into four byte elements. One of them is
3886 the new __shared element.
3887 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h [__WORDSIZE=32]:
3888 Likewise.
cd0dbd89 3889 [__WORDSIZE=64]: Renamed __pad1 element int rwlock structure to
e59660bc
UD
3890 __shared, adjust names of other padding elements.
3891 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3892 * sysdeps/pthread/pthread.h: Adjust rwlock initializers.
3893 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: Add PSHARED.
3894 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define
3895 FUTEX_PRIVATE_FLAG.
3896 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Change main
3897 futex to use private operations if possible.
3898 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3899 Likewise.
3900 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3901 Likewise.
3902 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
3903 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
50f1dec5
UD
3904 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
3905 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
3906 Likewise.
3907 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
3908 Likewise.
3909 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
3910 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
e59660bc 3911
d8ff3792
UD
39122007-05-26 Ulrich Drepper <drepper@redhat.com>
3913
546346b6
UD
3914 * pthreadP.h (PTHREAD_RWLOCK_PREFER_READER_P): Define.
3915 * pthread_rwlock_rdlock.c: Use PTHREAD_RWLOCK_PREFER_READER_P.
3916 * pthread_rwlock_timedrdlock.c: Likewise.
3917 * pthread_rwlock_tryrdlock.c: Likewise.
3918
a2dd3360
UD
3919 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S (sem_trywait): Tiny
3920 optimization.
3921
6df7ffad
UD
3922 * sysdeps/unix/sysv/linux/sem_wait.c: Add missing break.
3923 * sysdeps/unix/sysv/linux/sem_timedwait.c: Removed left-over
3924 duplication of __sem_wait_cleanup.
3925
3926 * allocatestack.c: Revert last change.
3927 * init.c: Likewise.
3928 * sysdeps/i386/tls.h: Likewise.
3929 * sysdeps/x86_64/tls.h: Likewise.
3930 * descr.h [TLS_DTV_AT_TP] (struct pthread): Add private_futex field to
3931 header structure.
3932 * sysdeps/powerpc/tcb-offsets.sym: Add PRIVATE_FUTEX_OFFSET.
3933
d8ff3792
UD
3934 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
3935 Add private field.
3936 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
3937 * pthread_barrier_init.c: Set private flag if pshared and private
3938 futexes are supported.
3939 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use
3940 private field in futex command setup.
3941 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
3942
3d2dd6ca
UD
39432007-05-25 Ulrich Drepper <drepper@redhat.com>
3944
42e6c665
UD
3945 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Add private futex
3946 support.
3947 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
3948 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
3949 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
3950 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
3951 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3952
3d2dd6ca
UD
3953 * semaphoreP.h: Declare __old_sem_init and __old_sem_wait.
3954 * sem_init.c (__new_sem_init): Rewrite to initialize all three
3955 fields in the structure.
3956 (__old_sem_init): New function.
3957 * sem_open.c: Initialize all fields of the structure.
3958 * sem_getvalue.c: Adjust for renamed element.
3959 * sysdeps/unix/sysv/linux/Makefile [subdir=nptl]
3960 (gen-as-const-headers): Add structsem.sym.
3961 * sysdeps/unix/sysv/linux/structsem.sym: New file.
3962 * sysdeps/unix/sysv/linux/internaltypes.h: Rename struct sem to
3963 struct new_sem. Add struct old_sem.
3964 * sysdeps/unix/sysv/linux/sem_post.c: Wake only when there are waiters.
3965 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
3966 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
3967 * sysdeps/unix/sysv/linux/sem_wait.c: Indicate that there are waiters.
3968 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
3969 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3970 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
3971 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
3972 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
3973 * Makefile (tests): Add tst-sem10, tst-sem11, tst-sem12.
3974 * tst-sem10.c: New file.
3975 * tst-sem11.c: New file.
3976 * tst-sem12.c: New file.
3977 * tst-typesizes.c: Test struct new_sem and struct old_sem instead
3978 of struct sem.
3979
20a4d722
JJ
39802007-05-25 Ulrich Drepper <drepper@redhat.com>
3981 Jakub Jelinek <jakub@redhat.com>
3982
3983 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
3984 Move __pthread_enable_asynccancel right before futex syscall.
3985 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
3986 Likewise.
3987
39882007-05-24 Jakub Jelinek <jakub@redhat.com>
86acd596
UD
3989
3990 * sysdeps/i386/tls.h (THREAD_SET_PRIVATE_FUTEX,
3991 THREAD_COPY_PRIVATE_FUTEX): Define.
3992 * sysdeps/x86_64/tls.h (THREAD_SET_PRIVATE_FUTEX,
3993 THREAD_COPY_PRIVATE_FUTEX): Define.
3994 * allocatestack.c (allocate_stack): Use THREAD_COPY_PRIVATE_FUTEX.
3995 * init.c (__pthread_initialize_minimal_internal): Use
3996 THREAD_SET_PRIVATE_FUTEX.
0a54ab53
UD
3997
3998 * sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag.
3999 (THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED,
4000 THREAD_GSCOPE_FLAG_WAIT): Define.
4001 (THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG,
4002 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define.
4003 * sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use
4004 PTR_DEMANGLE.
4005 (THREAD_GSCOPE_GET_FLAG): Define.
4006 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define.
4007 * allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG
4008 instead of ->header.gscope_flag directly.
4009
5a8075b1
UD
40102007-05-23 Ulrich Drepper <drepper@redhat.com>
4011
4012 * init.c (__pthread_initialize_minimal_internal): Check whether
4013 private futexes are available.
4014 * allocatestack.c (allocate_stack): Copy private_futex field from
4015 current thread into the new stack.
4016 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Use private
4017 futexes if they are available.
4018 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise
4019 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Adjust so that change
4020 in libc-lowlevellock.S allow using private futexes.
4021 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
4022 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
4023 FUTEX_PRIVATE_FLAG.
4024 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
4025 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use private futexes
4026 if they are available.
4027 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
4028 * sysdeps/x86_64/tcb-offsets.sym: Add PRIVATE_FUTEX.
4029 * sysdeps/i386/tcb-offsets.sym: Likewise.
4030 * sysdeps/x86_64/tls.h (tcbhead_t): Add private_futex field.
4031 * sysdeps/i386/tls.h (tcbhead_t): Likewise.
4032
6d59823c
UD
40332007-05-21 Ulrich Drepper <drepper@redhat.com>
4034
4035 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
4036 Remove ptr_wait_lookup_done again.
4037 * init.c (pthread_functions): Don't add .ptr_wait_lookup_done here.
4038 (__pthread_initialize_minimal_internal): Initialize
4039 _dl_wait_lookup_done pointer in _rtld_global directly.
4040 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
4041 Remove code to code _dl_wait_lookup_done.
4042 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_WAIT): The pointer is not
4043 encrypted for now.
4044
2c9718f3
JJ
40452007-05-21 Jakub Jelinek <jakub@redhat.com>
4046
4047 * tst-robust9.c (do_test): Don't fail if ENABLE_PI and
4048 pthread_mutex_init failed with ENOTSUP.
4049
df94b641
UD
40502007-05-19 Ulrich Drepper <drepper@redhat.com>
4051
4052 * allocatestack.c (__wait_lookup_done): New function.
4053 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
4054 Add ptr_wait_lookup_done.
4055 * init.c (pthread_functions): Initialize .ptr_wait_lookup_done.
4056 * pthreadP.h: Declare __wait_lookup_done.
4057 * sysdeps/i386/tls.h (tcbhead_t): Add gscope_flag.
4058 Define macros to implement reference handling of global scope.
4059 * sysdeps/x86_64/tls.h: Likewise.
4060 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
4061 Initialize GL(dl_wait_lookup_done).
4062
bec51a30
UD
40632007-05-17 Ulrich Drepper <drepper@redhat.com>
4064
113ad5fc
UD
4065 [BZ #4512]
4066 * pthread_mutex_lock.c: Preserve FUTEX_WAITERS bit when dead owner
4067 is detected.
4068 * pthread_mutex_timedlock.c: Likewise.
4069 * pthread_mutex_trylock.c: Likewise.
4070 Patch in part by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.
4071
4072 * Makefile (tests): Add tst-robust9 and tst-robustpi9.
4073 * tst-robust9.c: New file.
4074 * tst-robustpi9.c: New file.
4075
bec51a30
UD
4076 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Remove
4077 unnecessary extra cancellation test.
4078
83d87915
UD
40792007-05-14 Ulrich Drepper <drepper@redhat.com>
4080
83d87915
UD
4081 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Remove unnecessary
4082 extra cancellation test.
4083 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
4084
3771196d
UD
40852007-05-10 Ulrich Drepper <drepper@redhat.com>
4086
341c566f
UD
4087 * descr.h (struct pthread): Rearrange members to fill hole in
4088 64-bit layout.
4089
3771196d
UD
4090 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4091 (__pthread_setaffinity_new): If syscall was successful and
4092 RESET_VGETCPU_CACHE is defined, use it before returning.
4093 * sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c: New file.
4094
7d29b542
JJ
40952007-05-10 Jakub Jelinek <jakub@redhat.com>
4096
4097 [BZ #4455]
4098 * tst-align2.c: Include stackinfo.h.
4099 * tst-getpid1.c: Likewise.
4100
16105fe0
UD
41012007-05-02 Carlos O'Donell <carlos@systemhalted.org>
4102
29c113f0
UD
4103 [BZ #4455]
4104 * tst-align2.c (do_test): Add _STACK_GROWS_UP case.
4105 * tst-getpid1.c (do_test): Likewise.
4106
16105fe0
UD
4107 [BZ #4456]
4108 * allocatestack.c (change_stack_perm): Add _STACK_GROWS_UP case.
4109 (allocate_stack): Likewise.
4110
6780bc44
UD
41112007-05-07 Ulrich Drepper <drepper@redhat.com>
4112
4113 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
4114 (__lll_robust_lock_wait): Fix race caused by reloading of futex value.
4115 (__lll_robust_timedlock_wait): Likewise.
4116 Reported by Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>.
4117
aa75f64c
UD
41182007-05-06 Mike Frysinger <vapier@gentoo.org>
4119
15eca720 4120 [BZ #4465]
aa75f64c
UD
4121 * tst-cancel-wrappers.sh: Set C["fdatasync"] to 1.
4122 * tst-cancel4.c (tf_fdatasync): New test.
4123
f672076e
UD
41242007-04-27 Ulrich Drepper <drepper@redhat.com>
4125
1bb5f5a1
UD
4126 [BZ #4392]
4127 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Treat error
4128 check mutexes like normal mutexes.
4129
f672076e
UD
4130 [BZ #4306]
4131 * sysdeps/unix/sysv/linux/timer_create.c (timer_create):
4132 Initialize the whole sigevent structure to appease valgrind.
4133
bce20b9a
UD
41342007-04-25 Ulrich Drepper <drepper@redhat.com>
4135
4136 * sysdeps/x86_64/tls.h (tcbhead_t): Add vgetcpu_cache.
4137 * sysdeps/x86_64/tcb-offsets.sym: Add VGETCPU_CACHE_OFFSET.
4138
0c786eac
UD
41392007-04-06 Ulrich Drepper <drepper@redhat.com>
4140
4141 * tst-locale1.c: Avoid warnings.
4142 * tst-locale2.c: Likewise.
4143
e1f0c5bc
UD
41442007-03-19 Steven Munroe <sjmunroe@us.ibm.com>
4145
4146 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
4147 (__lll_robust_trylock): Add MUTEX_HINT_ACQ to lwarx instruction.
4148
965cba04
UD
41492007-03-16 Jakub Jelinek <jakub@redhat.com>
4150
4151 * sysdeps/pthread/bits/libc-lock.h: Use __extern_inline and
4152 __extern_always_inline where appropriate.
4153 * sysdeps/pthread/pthread.h: Likewise.
4154
a5ea509b
RH
41552007-03-13 Richard Henderson <rth@redhat.com>
4156
4157 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use two
4158 separate cfi regions for the two subsections.
4159
00a1430e
UD
41602007-02-25 Ulrich Drepper <drepper@redhat.com>
4161
4162 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset refcntr in
4163 new thread, don't just decrement it.
4164 Patch by Suzuki K P <suzuki@in.ibm.com>.
4165
63a2f305
UD
41662007-02-21 Ulrich Drepper <drepper@redhat.com>
4167
4168 * sysdeps/pthread/pthread-functions.h: Correct last patch, correct
4169 PTHFCT_CALL definition.
4170
2484468b
UD
41712007-02-18 Ulrich Drepper <drepper@redhat.com>
4172
4173 * sysdeps/pthread/pthread-functions.h: If PTR_DEMANGLE is not
4174 available, don't use it.
4175
5ed61e0f
UD
41762007-02-09 Jakub Jelinek <jakub@redhat.com>
4177
4178 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4179 (__lll_mutex_timedlock_wait): Use correct pointer when we don't
4180 call into the kernel to delay.
4181
10ccaa5c
UD
41822007-01-18 Ulrich Drepper <drepper@redhat.com>
4183
f8a17855
UD
4184 * tst-initializers1.c: We want to test the initializers as seen
4185 outside of libc, so undefined _LIBC.
4186
10ccaa5c
UD
4187 * pthread_join.c (cleanup): Avoid warning.
4188
ea1533e0
UD
41892007-01-17 Ulrich Drepper <drepper@redhat.com>
4190
1476bce6
UD
4191 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4192 (__lll_timedwait_tid): Add unwind info.
4193
ea1533e0
UD
4194 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Don't just copy the
4195 function table, mangle the pointers.
4196 * sysdeps/pthread/pthread-functions.h: Define PTHFCT_CALL.
4197 * forward.c: Use PTHFCT_CALL and __libc_pthread_functions_init.
4198 * sysdeps/pthread/bits/libc-lock.h: When using __libc_pthread_functions
4199 demangle pointers before use.
4200 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Use PTHFCT_CALL to
4201 demangle pointer.
4202 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
4203 * sysdeps/pthread/setxid.h: Likewise.
4204
8980796b
UD
42052007-01-12 Ulrich Drepper <drepper@redhat.com>
4206
4207 * tst-rwlock7.c: Show some more information in case of correct
4208 behavior.
4209
a1d87b5d
UD
42102007-01-11 Ulrich Drepper <drepper@redhat.com>
4211
4212 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
4213 (lll_futex_timed_wait): Undo part of last change, don't negate
4214 return value.
4215
11bf311e 42162007-01-10 Ulrich Drepper <drepper@redhat.com>
66193697 4217
11bf311e
UD
4218 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Cleanups. Define
4219 FUTEX_CMP_REQUEUE and lll_futex_requeue.
66193697 4220
11bf311e 42212006-12-28 David S. Miller <davem@davemloft.net>
14a31e35 4222
11bf311e 4223 * shlib-versions: Fix sparc64 linux target specification.
a744da90 4224
11bf311e 42252007-01-10 Jakub Jelinek <jakub@redhat.com>
a744da90 4226
11bf311e
UD
4227 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
4228 Adjust include path for pthread_barrier_wait.c move.
fc242bef 4229
11bf311e 42302006-12-21 Jakub Jelinek <jakub@redhat.com>
fc242bef 4231
11bf311e
UD
4232 * sysdeps/unix/sysv/linux/pthread_kill.c (pthread_kill): Make sure
4233 tid isn't reread from pd->tid in between ESRCH test and the syscall.
a822d9f4 4234
11bf311e
UD
42352006-12-06 Jakub Jelinek <jakub@redhat.com>
4236
4237 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Handle
4238 6 argument cancellable syscalls.
4239 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
4240 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Handle
4241 6 argument cancellable syscalls.
4242 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
a822d9f4 4243
66f17705
UD
42442006-12-09 Ulrich Drepper <drepper@redhat.com>
4245
4246 * sysdeps/unix/sysv/linux/rtld-lowlevel.h
4247 (__rtld_mrlock_initialize): Add missing closing parenthesis.
4248
11bf311e
UD
42492006-10-30 Jakub Jelinek <jakub@redhat.com>
4250
4251 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
4252 __sync_lock_release instead of __sync_lock_release_si.
4253
536e40e2
UD
42542006-10-29 Jakub Jelinek <jakub@redhat.com>
4255
4256 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (RTLD_SINGLE_THREAD_P):
4257 Define.
4258 (SINGLE_THREAD_P): Define to 1 if IS_IN_rtld.
4259 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
4260 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
4261 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
4262 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
4263 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
4264 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
4265 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
4266 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
4267 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
4268 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
4269
11bf311e
UD
42702006-10-27 Ulrich Drepper <drepper@redhat.com>
4271
4272 * sysdeps/pthread/pthread_barrier_wait.c: Move to...
4273 * pthread_barrier_wait.c: ...here.
4274 * sysdeps/pthread/pthread_cond_broadcast.c: Move to...
4275 * pthread_cond_broadcast.c: ...here.
4276 * sysdeps/pthread/pthread_cond_signal.c: Move to...
4277 * pthread_cond_signal.c: ...here.
4278 * sysdeps/pthread/pthread_cond_timedwait.c: Move to...
4279 * pthread_cond_timedwait.c: ...here.
4280 * sysdeps/pthread/pthread_cond_wait.c: Move to...
4281 * pthread_cond_wait.c: ...here.
4282 * sysdeps/pthread/pthread_once.c: Move to...
4283 * pthread_once.c: ...here.
4284 * sysdeps/pthread/pthread_rwlock_rdlock.c: Move to...
4285 * pthread_rwlock_rdlock.c: ...here.
4286 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Move to...
4287 * pthread_rwlock_timedrdlock.c: ...here.
4288 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Move to...
4289 * pthread_rwlock_timedwrlock.c: ...here.
4290 * sysdeps/pthread/pthread_rwlock_unlock.c: Move to...
4291 * pthread_rwlock_unlock.c: ...here.
4292 * sysdeps/pthread/pthread_rwlock_wrlock.c: Move to...
4293 * pthread_rwlock_wrlock.c: ...here.
4294 * sysdeps/pthread/pthread_spin_destroy.c: Move to...
4295 * pthread_spin_destroy.c: ...here.
4296 * sysdeps/pthread/pthread_spin_init.c: Move to...
4297 * pthread_spin_init.c: ...here.
4298 * sysdeps/pthread/pthread_spin_unlock.c: Move to...
4299 * pthread_spin_unlock.c: ...here.
4300 * sysdeps/pthread/pthread_getcpuclockid.c: Move to...
4301 * pthread_getcpuclockid.c: ...here.
4302
4303 * init.c: USE_TLS support is now always enabled.
4304 * tst-tls5.h: Likewise.
4305 * sysdeps/alpha/tls.h: Likewise.
4306 * sysdeps/i386/tls.h: Likewise.
4307 * sysdeps/ia64/tls.h: Likewise.
4308 * sysdeps/powerpc/tls.h: Likewise.
4309 * sysdeps/s390/tls.h: Likewise.
4310 * sysdeps/sh/tls.h: Likewise.
4311 * sysdeps/sparc/tls.h: Likewise.
4312 * sysdeps/x86_64/tls.h: Likewise.
4313
006a8f6f 43142006-10-27 Jakub Jelinek <jakub@redhat.com>
c0a777e8
UD
4315
4316 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
4317 __rtld_mrlock_change): Update oldval if atomic compare and exchange
4318 failed.
4319
4320 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
4321 Define to THREAD_SELF->header.multiple_threads.
4322 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
4323 Likewise.
4324 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
4325 Likewise.
4326 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
4327 (SINGLE_THREAD_P): Likewise.
4328 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
4329 (SINGLE_THREAD_P): Likewise.
4330 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
4331 (SINGLE_THREAD_P): Likewise.
4332 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
4333 (SINGLE_THREAD_P): Likewise.
4334 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (SINGLE_THREAD_P):
4335 Likewise.
4336 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
4337 (SINGLE_THREAD_P): Likewise.
4338 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
4339 (SINGLE_THREAD_P): Likewise.
4340 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (SINGLE_THREAD_P):
4341 Likewise.
4342
11bf311e 43432006-10-26 Jakub Jelinek <jakub@redhat.com>
32c075e1 4344
11bf311e
UD
4345 * pthread_attr_setstacksize.c (NEW_VERNUM): Define to GLIBC_2_3_3
4346 by default rather than 2_3_3.
32c075e1 4347
11bf311e 43482006-10-17 Jakub Jelinek <jakub@redhat.com>
32c075e1 4349
11bf311e
UD
4350 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
4351 __rtld_mrlock_unlock, __rtld_mrlock_change, __rtld_mrlock_done): Use
4352 atomic_* instead of catomic_* macros.
4353
43542006-10-12 Ulrich Drepper <drepper@redhat.com>
4355
4356 [BZ #3285]
4357 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add SEM_VALUE_MAX.
4358 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
4359 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
4360 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
4361 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
4362 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Remove SEM_VALUE_MAX.
4363 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
4364 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4365 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
4366 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: Likewise.
4367 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
4368 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
4369 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
4370
43712006-10-11 Ulrich Drepper <drepper@redhat.com>
4372
4373 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add support for
4374 cancelable syscalls with six parameters.
4375
4376 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Use catomic_*
4377 operations instead of atomic_*.
32c075e1 4378
11bf311e 43792006-10-09 Ulrich Drepper <drepper@redhat.com>
32c075e1 4380
11bf311e 4381 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: New file..
32c075e1 4382
11bf311e 43832006-10-07 Ulrich Drepper <drepper@redhat.com>
32c075e1 4384
11bf311e
UD
4385 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: New file.
4386 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c: New file.
4387 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c:
4388 New file.
4389 * pthread_attr_setstack.c: Allow overwriting the version number of the
4390 new symbol.
4391 * pthread_attr_setstacksize.c: Likewise.
4392 (__old_pthread_attr_setstacksize): If STACKSIZE_ADJUST is defined use
4393 it.
4394 * sysdeps/unix/sysv/linux/powerpc/Versions (libpthread): Add
4395 pthread_attr_setstack and pthread_attr_setstacksize to GLIBC_2.6.
fa279678 4396
457b559e
UD
43972006-09-24 Ulrich Drepper <drepper@redhat.com>
4398
4399 [BZ #3251]
4400 * descr.h (ENQUEUE_MUTEX_BOTH): Add cast to avoid warning.
4401 Patch by Petr Baudis.
4402
0466106e
UD
44032006-09-18 Jakub Jelinek <jakub@redhat.com>
4404
4405 * tst-kill4.c (do_test): Explicitly set tf thread's stack size.
4406
4407 * tst-cancel2.c (tf): Loop as long as something was written.
4408
bd6d3b7d
UD
44092006-09-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4410
4411 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: For PI
4412 mutexes wake all mutexes.
4413 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Don't increment
4414 WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
4415 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4416
30aa5785
UD
44172006-09-12 Ulrich Drepper <drepper@redhat.com>
4418
4419 * tst-cond22.c (tf): Slight changes to the pthread_cond_wait use
4420 to guarantee the thread is always canceled.
4421
2b6a801e
UD
44222006-09-08 Jakub Jelinek <jakub@redhat.com>
4423
4424 * tst-cond22.c: Include pthread.h instead of pthreadP.h.
4425 Include stdlib.h.
4426 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Only
4427 increase FUTEX if increasing WAKEUP_SEQ. Fix comment typo.
4428 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
4429 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4430 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
bd6d3b7d 4431
346e6ad4
UD
44322006-09-08 Ulrich Drepper <drepper@redhat.com>
4433
4434 [BZ #3123]
4435 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Don't
4436 increment WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2b6a801e
UD
4437 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
4438 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4439 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
346e6ad4
UD
4440 * Makefile (tests): Add tst-cond22.
4441 * tst-cond22.c: New file.
4442
b051fc44
UD
44432006-09-05 Ulrich Drepper <drepper@redhat.com>
4444
4445 [BZ #3124]
4446 * descr.h (struct pthread): Add parent_cancelhandling.
4447 * sysdeps/pthread/createthread.c (create_thread): Pass parent
4448 cancelhandling value to child.
4449 * pthread_create.c (start_thread): If parent thread was canceled
4450 reset the SIGCANCEL mask.
4451 * Makefile (tests): Add tst-cancel25.
4452 * tst-cancel25.c: New file.
4453
d052233c 44542006-09-05 Jakub Jelinek <jakub@redhat.com>
b42a214c 4455 Ulrich Drepper <drepper@redhat.com>
d052233c
UD
4456
4457 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY): Don't decrement
4458 counterp if it is already zero.
4459 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY): Likewise..
4460
cd248c3f 44612006-03-04 Jakub Jelinek <jakub@redhat.com>
b42a214c 4462 Roland McGrath <roland@redhat.com>
cd248c3f
UD
4463
4464 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
4465 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
4466 LLL_STUB_UNWIND_INFO_3, LLL_STUB_UNWIND_INFO_4): Define.
4467 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
4468 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
4469 lll_robust_mutex_timedlock, lll_mutex_unlock,
4470 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
4471 Add _L_*_ symbols around the subsection.
4472 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Add unwind info.
4473 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Likewise.
4474
44752006-03-03 Jakub Jelinek <jakub@redhat.com>
b42a214c 4476 Roland McGrath <roland@redhat.com>
cd248c3f
UD
4477
4478 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
4479 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
4480 LLL_STUB_UNWIND_INFO_5, LLL_STUB_UNWIND_INFO_6): Define.
4481 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
4482 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
4483 lll_robust_mutex_timedlock, lll_mutex_unlock,
4484 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
4485 Add _L_*_ symbols around the subsection.
4486 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Add unwind info.
4487 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
4488
b80770b2
UD
44892006-08-31 Ulrich Drepper <drepper@redhat.com>
4490
4491 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Undo last
4492 change because it can disturb too much existing code. If real hard
4493 reader preference is needed we'll introduce another type.
4494 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
4495 (pthread_rwlock_timedwrlock): Likewise.
4496 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
4497 Likewise.
4498
bee2df0b
UD
44992006-08-30 Ulrich Drepper <drepper@redhat.com>
4500
4501 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Respect
4502 reader preference.
4503 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
4504 (pthread_rwlock_timedwrlock): Likewise.
4505 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
4506 Likewise.
4507
d678ebc1
UD
45082006-08-25 Jakub Jelinek <jakub@redhat.com>
4509
4510 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libpthread):
4511 Only define ifdef SHARED.
4512
ba408f84
UD
45132006-08-23 Ulrich Drepper <drepper@redhat.com>
4514
4515 * allocatestack.c (queue_stack): Move freeing of surplus stacks to...
4516 (free_stacks): ...here.
4517 (__free_stack_cache): New function.
4518 * pthreadP.h: Declare __free_stack_cache.
4519 * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
4520 ptr_freeres.
4521 * init.c (pthread_functions): Initialize ptr_freeres.
4522 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libptread):
4523 New freeres function.
4524
376e973a
UD
45252006-07-30 Joseph S. Myers <joseph@codesourcery.com>
4526
4527 [BZ #3018]
4528 * Makefile (extra-objs): Add modules to extra-test-objs instead.
4529
2b34af01
UD
45302006-08-20 Ulrich Drepper <drepper@redhat.com>
4531
4532 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
4533 _XOPEN_REALTIME_THREADS.
4534
89c85f87
UD
45352006-08-15 Jakub Jelinek <jakub@redhat.com>
4536
4537 * sysdeps/unix/sysv/linux/clock_settime.c (INTERNAL_VSYSCALL): Use
4538 HAVE_CLOCK_GETRES_VSYSCALL as guard macro rather than
4539 HAVE_CLOCK_GETTIME_VSYSCALL.
4540 (maybe_syscall_settime_cpu): Use plain INTERNAL_VSYSCALL here.
4541
f17efcb4
UD
45422006-08-14 Jakub Jelinek <jakub@redhat.com>
4543
4544 * sysdeps/unix/sysv/linux/bits/posix_opt.h
4545 (_POSIX_THREAD_PRIO_PROTECT): Define to 200112L.
4546 * descr.h (struct priority_protection_data): New type.
4547 (struct pthread): Add tpp field.
4548 * pthreadP.h (PTHREAD_MUTEX_PP_NORMAL_NP,
4549 PTHREAD_MUTEX_PP_RECURSIVE_NP, PTHREAD_MUTEX_PP_ERRORCHECK_NP,
4550 PTHREAD_MUTEX_PP_ADAPTIVE_NP): New enum values.
4551 * pthread_mutex_init.c (__pthread_mutex_init): Handle non-robust
4552 TPP mutexes.
4553 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle TPP mutexes.
4554 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
4555 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
4556 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
4557 * tpp.c: New file.
4558 * pthread_setschedparam.c (__pthread_setschedparam): Handle priority
4559 boosted by TPP.
4560 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
4561 * pthread_mutexattr_getprioceiling.c
4562 (pthread_mutexattr_getprioceiling): If ceiling is 0, ensure it is
4563 in the SCHED_FIFO priority range.
4564 * pthread_mutexattr_setprioceiling.c
4565 (pthread_mutexattr_setprioceiling): Fix prioceiling validation.
4566 * pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling): Fail
4567 if mutex is not TPP. Ceiling is now in __data.__lock.
4568 * pthread_mutex_setprioceiling.c: Include stdbool.h.
4569 (pthread_mutex_setprioceiling): Fix prioceiling validation. Ceiling
4570 is now in __data.__lock. Add locking.
4571 * pthread_create.c (__free_tcb): Free pd->tpp structure.
4572 * Makefile (libpthread-routines): Add tpp.
4573 (xtests): Add tst-mutexpp1, tst-mutexpp6 and tst-mutexpp10.
4574 * tst-tpp.h: New file.
4575 * tst-mutexpp1.c: New file.
4576 * tst-mutexpp6.c: New file.
4577 * tst-mutexpp10.c: New file.
4578 * tst-mutex1.c (TEST_FUNCTION): Don't redefine if already defined.
4579 * tst-mutex6.c (TEST_FUNCTION): Likewise.
4580
22bb134c
UD
45812006-08-12 Ulrich Drepper <drepper@redhat.com>
4582
4583 [BZ #2843]
4584 * pthread_join.c (pthread_join): Account for self being canceled
4585 when checking for deadlocks.
4586 * tst-join5.c: Cleanups. Allow to be used in tst-join6.
4587 (tf1): Don't print anything after pthread_join returns, this would be
4588 another cancellation point.
4589 (tf2): Likewise.
4590 * tst-join6.c: New file.
4591 * Makefile (tests): Add tst-join6.
4592
f1762c0c
UD
45932006-08-03 Ulrich Drepper <drepper@redhat.com>
4594
9c06eb66
UD
4595 [BZ #2892]
4596 * pthread_setspecific.c (__pthread_setspecific): Check
4597 out-of-range index before checking for unused key.
4598
f1762c0c
UD
4599 * sysdeps/pthread/gai_misc.h: New file.
4600
7bb1b2c9
UD
46012006-08-01 Ulrich Drepper <drepper@redhat.com>
4602
4603 * sysdeps/unix/sysv/linux/i386/smp.h: New file. Old Linux-specific
4604 file. Don't use sysctl.
4605 * sysdeps/unix/sysv/linux/smp.h: Always assume SMP. Archs can
4606 overwrite the file if this is likely not true.
4607
b06e7e9a
UD
46082006-07-31 Daniel Jacobowitz <dan@codesourcery.com>
4609
4610 * allocatestack.c (__reclaim_stacks): Reset the PID on cached stacks.
4611 * Makefile (tests): Add tst-getpid3.
4612 * tst-getpid3.c: New file.
4613
b894c2ea
RM
46142006-07-30 Roland McGrath <roland@redhat.com>
4615
4616 * Makefile (libpthread-routines): Add ptw-sigsuspend.
4617
4618 * sysdeps/unix/sysv/linux/i386/not-cancel.h
4619 (pause_not_cancel): New macro.
4620 (nanosleep_not_cancel): New macro.
4621 (sigsuspend_not_cancel): New macro.
4622 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
4623 nanosleep_not_cancel macro from <not-cancel.h>.
4624 * pthread_mutex_lock.c (__pthread_mutex_lock): Use pause_not_cancel
4625 macro from <not-cancel.h>.
4626
df47504c
UD
46272006-07-28 Ulrich Drepper <drepper@redhat.com>
4628 Jakub Jelinek <jakub@redhat.com>
4629
4630 * descr.h: Change ENQUEUE_MUTEX and DEQUEUE_MUTEX for bit 0
4631 notification of PI mutex. Add ENQUEUE_MUTEX_PI.
4632 * pthreadP.h: Define PTHREAD_MUTEX_PI_* macros for PI mutex types.
4633 * pthread_mutex_setprioceilining.c: Adjust for mutex type name change.
4634 * pthread_mutex_init.c: Add support for priority inheritance mutex.
4635 * pthread_mutex_lock.c: Likewise.
4636 * pthread_mutex_timedlock.c: Likewise.
4637 * pthread_mutex_trylock.c: Likewise.
4638 * pthread_mutex_unlock.c: Likewise.
4639 * sysdeps/pthread/pthread_cond_broadcast.c: For PI mutexes wake
4640 all mutexes.
4641 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.c: Likewise.
4642 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.c: Likewise.
4643 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: New file.
4644 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-header): Add
4645 pthread-pi-defines.sym.
4646 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_LOCK_PI,
4647 FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.
4648 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
d5ba53f9
UD
4649 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
4650 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
4651 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
4652 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
4653 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
4654 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
df47504c
UD
4655 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
4656 _POSIX_THREAD_PRIO_INHERIT to 200112L.
4657 * tst-mutex1.c: Adjust to allow use in PI mutex test.
4658 * tst-mutex2.c: Likewise.
4659 * tst-mutex3.c: Likewise.
4660 * tst-mutex4.c: Likewise.
4661 * tst-mutex5.c: Likewise.
4662 * tst-mutex6.c: Likewise.
4663 * tst-mutex7.c: Likewise.
4664 * tst-mutex7a.c: Likewise.
4665 * tst-mutex8.c: Likewise.
4666 * tst-mutex9.c: Likewise.
4667 * tst-robust1.c: Likewise.
4668 * tst-robust7.c: Likewise.
4669 * tst-robust8.c: Likewise.
4670 * tst-mutexpi1.c: New file.
4671 * tst-mutexpi2.c: New file.
4672 * tst-mutexpi3.c: New file.
4673 * tst-mutexpi4.c: New file.
4674 * tst-mutexpi5.c: New file.
4675 * tst-mutexpi6.c: New file.
4676 * tst-mutexpi7.c: New file.
4677 * tst-mutexpi7a.c: New file.
4678 * tst-mutexpi8.c: New file.
4679 * tst-mutexpi9.c: New file.
4680 * tst-robust1.c: New file.
4681 * tst-robust2.c: New file.
4682 * tst-robust3.c: New file.
4683 * tst-robust4.c: New file.
4684 * tst-robust5.c: New file.
4685 * tst-robust6.c: New file.
4686 * tst-robust7.c: New file.
4687 * tst-robust8.c: New file.
4688 * Makefile (tests): Add the new tests.
4689
4690 * pthread_create.c (start_thread): Add some casts to avoid warnings.
4691 * pthread_mutex_destroy.c: Remove unneeded label.
4692
f3be81a9
UD
46932006-07-01 Ulrich Drepper <drepper@redhat.com>
4694
4695 * pthread_mutex_init.c (__pthread_mutex_init): Move some
4696 computations to compile time.
4697
c26ca5e1
UD
46982006-06-04 Ulrich Drepper <drepper@redhat.com>
4699
4700 * sysdeps/pthread/pthread.h: Add pthread_equal inline version.
4701
6f8a7dff
UD
47022006-05-15 Ulrich Drepper <drepper@redhat.com>
4703
c26ca5e1 4704 * sysdeps/unix/sysv/linux/fork.h: Mark __fork_handlers as hidden.
6f8a7dff 4705
3d237e42
UD
47062006-05-11 Ulrich Drepper <drepper@redhat.com>
4707
04974d63
UD
4708 * pthread_key_create.c (__pthread_key_create): Do away with
4709 __pthread_keys_lock.
4710
4711 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4712 (__kernel_cpumask_size): Mark as hidden.
4713 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
4714
3d237e42
UD
4715 * sem_open.c (__sem_mappings_lock): Mark as hidden.
4716 * semaphoreP.h (__sem_mappings_lock): Likewise.
4717
790fc6e4
UD
47182006-05-10 Ulrich Drepper <drepper@redhat.com>
4719
4720 * pthread_atfork.c: Mark __dso_handle as hidden.
4721
be434a72
UD
47222006-05-09 Ulrich Drepper <drepper@redhat.com>
4723
4724 [BZ #2644]
4725 * sysdeps/pthread/unwind-forcedunwind.c: Different solution for
4726 the reload problem. Change the one path in pthread_cancel_init
4727 which causes the problem. Force gcc to reload. Simplify callers.
4728 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
4729 (_Unwind_GetBSP): Undo last patch.
4730
3142b1ac
UD
47312006-05-07 Ulrich Drepper <drepper@redhat.com>
4732
bf3635d3
UD
4733 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: Make sure the
4734 function pointer is reloaded after pthread_cancel_init calls.
3142b1ac
UD
4735
4736 [BZ #2644]
4737 * sysdeps/pthread/unwind-forcedunwind.c: Make sure functions
4738 pointers are reloaded after pthread_cancel_init calls.
4739
27488789
UD
47402006-05-01 Ulrich Drepper <drepper@redhat.com>
4741
4742 * sysdeps/pthread/allocalim.h (__libc_use_alloca): Mark with
4743 __always_inline.
4744
a6375d11
UD
47452006-04-27 Ulrich Drepper <drepper@redhat.com>
4746
4747 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
4748 Allocate new object which is passed to timer_sigev_thread so that
4749 the timer can be deleted before the new thread is scheduled.
4750
16a1d952
RM
47512006-04-26 Roland McGrath <roland@redhat.com>
4752
4753 * sysdeps/x86_64/tls.h: Include <asm/prctl.h> inside [! __ASSEMBLER__].
4754
7960f2a7
UD
47552006-04-08 Ulrich Drepper <drepper@redhat.com>
4756
ab9a9ff8
UD
4757 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove branch predicion
4758 suffix for conditional jumps.
4759 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
4760 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
4761 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
4762 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
4763 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
4764 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
4765
7960f2a7
UD
4766 * init.c (sigcancel_handler): Compare with correct PID even if the
4767 thread is in the middle of a fork call.
4768 (sighandler_setxid): Likewise.
4769 Reported by Suzuki K P <suzuki@in.ibm.com> .
4770
2035d91c
UD
47712006-04-07 Jakub Jelinek <jakub@redhat.com>
4772
4773 * pthreadP.h (FUTEX_TID_MASK): Sync with kernel.
4774
0292b0dd
UD
47752006-04-06 Ulrich Drepper <drepper@redhat.com>
4776
4777 * pthread_getattr_np.c (pthread_getattr_np): Close fp if getrlimit
4778 fails [Coverity CID 105].
4779
6738b3c0
UD
47802006-04-05 Ulrich Drepper <drepper@redhat.com>
4781
4782 * sysdeps/pthread/pthread.h: Add nonnull attributes.
4783
359157a5
RM
47842006-04-03 Steven Munroe <sjmunroe@us.ibm.com>
4785
4786 [BZ #2505]
4787 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h [_ARCH_PWR4]:
4788 Define __lll_rel_instr using lwsync.
4789
cd277b2d
UD
47902006-03-27 Ulrich Drepper <drepper@redhat.com>
4791
4792 * allocatestack.c (allocate_stack): Always initialize robust_head.
4793 * descr.h: Define struct robust_list_head.
4794 (struct pthread): Use robust_list_head in robust mutex list definition.
4795 Adjust ENQUEUE_MUTEX and DEQUEUE_MUTEX.
4796 * init.c [!__ASSUME_SET_ROBUST_LIST] (__set_robust_list_avail): Define.
4797 (__pthread_initialize_minimal_internal): Register robust_list with
4798 the kernel.
4799 * pthreadP.h: Remove PRIVATE_ from PTHREAD_MUTEX_ROBUST_* names.
4800 Declare __set_robust_list_avail.
4801 * pthread_create.c (start_thread): Register robust_list of new thread.
4802 [!__ASSUME_SET_ROBUST_LIST]: If robust_list is not empty wake up
4803 waiters.
4804 * pthread_mutex_destroy.c: For robust mutexes don't look at the
4805 number of users, it's unreliable.
4806 * pthread_mutex_init.c: Allow use of pshared robust mutexes if
4807 set_robust_list syscall is available.
4808 * pthread_mutex_consistent.c: Adjust for PTHREAD_MUTEX_ROBUST_* rename.
4809 * pthread_mutex_lock.c: Simplify robust mutex code a bit.
4810 Set robust_head.list_op_pending before trying to lock a robust mutex.
4811 * pthread_mutex_timedlock.c: Likewise.
4812 * pthread_mutex_trylock.c: Likewise.
4813 * pthread_mutex_unlock.c: Likewise for unlocking.
4814 * Makefile (tests): Add tst-robust8.
4815 * tst-robust8.c: New file.
4816
facac085
UD
48172006-03-08 Andreas Schwab <schwab@suse.de>
4818
4819 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
4820 (DL_SYSINFO_IMPLEMENTATION): Add missing newline.
4821
7ccbe1a1
RM
48222006-03-05 Roland McGrath <roland@redhat.com>
4823
4824 * configure (libc_add_on): Disable add-on when $add_ons_automatic = yes
4825 and $config_os doesn't match *linux*.
4826
043cee37
RM
48272006-03-05 David S. Miller <davem@sunset.davemloft.net>
4828
4829 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S:
4830 Use __syscall_error.
4831 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
4832 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
4833 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Likewise.
4834 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
4835 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
4836 * sysdeps/unix/sysv/linux/sparc/Makefile: New file.
4837
88bce79e
UD
48382006-03-02 Ulrich Drepper <drepper@redhat.com>
4839
4840 * sysdeps/unix/sysv/linux/aio_misc.h: Various cleanups.
4841
672ec465
UD
48422006-03-01 Ulrich Drepper <drepper@redhat.com>
4843
4844 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
4845 (__lll_robust_lock_wait): Also set FUTEX_WAITERS bit if we got the
4846 mutex.
4847 (__lll_robust_timedlock_wait): Likewise.
4848 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
4849 (__lll_robust_lock_wait): Likewise.
4850 (__lll_robust_timedlock_wait): Likewise.
4851 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
4852 (__lll_robust_lock_wait): Likewise.
4853 (__lll_robust_timedlock_wait): Likewise.
4854
c4a4875d
RM
48552006-03-01 Jakub Jelinek <jakub@redhat.com>
4856
4857 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
4858 lll_robust_mutex_trylock, lll_robust_mutex_lock,
4859 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
4860 lll_robust_mutex_unlock): Define.
4861 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
4862
3192fd8e
RM
48632006-02-28 H.J. Lu <hongjiu.lu@intel.com>
4864
4865 * sysdeps/unix/sysv/linux/ia64/clone2.S: Include <clone2.S>
4866 instead of <clone.S>.
4867
14d44b19
RM
48682006-02-27 Jakub Jelinek <jakub@redhat.com>
4869
4870 * Makefile (libpthread-routines): Add
4871 pthread_mutexattr_[sg]etprotocol, pthread_mutexattr_[sg]etprioceiling
4872 and pthread_mutex_[sg]etprioceiling.
4873 * Versions (GLIBC_2.4): Export pthread_mutexattr_getprotocol,
4874 pthread_mutexattr_setprotocol, pthread_mutexattr_getprioceiling,
4875 pthread_mutexattr_setprioceiling, pthread_mutex_getprioceiling and
4876 pthread_mutex_setprioceiling.
4877 * sysdeps/pthread/pthread.h (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT,
4878 PTHREAD_PRIO_PROTECT): New enum values.
4879 (pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
4880 pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling,
4881 pthread_mutex_getprioceiling, pthread_mutex_setprioceiling): New
4882 prototypes.
4883 * pthreadP.h (PTHREAD_MUTEX_PRIO_INHERIT_PRIVATE_NP,
4884 PTHREAD_MUTEX_PRIO_PROTECT_PRIVATE_NP): New enum values.
4885 (PTHREAD_MUTEX_PRIO_CEILING_SHIFT, PTHREAD_MUTEX_PRIO_CEILING_MASK):
4886 Define.
4887 (PTHREAD_MUTEXATTR_PROTOCOL_SHIFT, PTHREAD_MUTEXATTR_PROTOCOL_MASK,
4888 PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT,
4889 PTHREAD_MUTEXATTR_PRIO_CEILING_MASK): Define.
4890 (PTHREAD_MUTEXATTR_FLAG_BITS): Or in PTHREAD_MUTEXATTR_PROTOCOL_MASK
4891 and PTHREAD_MUTEXATTR_PRIO_CEILING_MASK.
4892 * pthread_mutex_init.c (__pthread_mutex_init): For the time being
4893 return ENOTSUP for PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT
4894 protocol mutexes.
4895 * pthread_mutex_getprioceiling.c: New file.
4896 * pthread_mutex_setprioceiling.c: New file.
4897 * pthread_mutexattr_getprioceiling.c: New file.
4898 * pthread_mutexattr_setprioceiling.c: New file.
4899 * pthread_mutexattr_getprotocol.c: New file.
4900 * pthread_mutexattr_setprotocol.c: New file.
4901
62f6b9b2
RM
49022006-02-27 Daniel Jacobowitz <dan@codesourcery.com>
4903
4904 * sysdeps/unix/sysv/linux/aio_misc.h: Include <limits.h>.
4905
e0a3ed4f
RM
49062006-02-27 Roland McGrath <roland@redhat.com>
4907
4908 * sysdeps/pthread/Subdirs: List nptl here too.
4909 * configure (libc_add_on_canonical): New variable.
4910
4911 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
4912
4913 * sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
4914 self to get main source tree's file.
4915 * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
4916 * sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
4917 * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
4918 * sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
4919 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
4920 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
4921 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
4922 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
4923 * sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
4924 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
4925 * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
4926 * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
4927 * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
4928
4929 * Makefile: Use $(sysdirs) in vpath directive.
4930
4931 * sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
4932 (CPPFLAGS-timer_routines.c): Likewise.
4933
4934 * Makeconfig (includes): Variable removed.
4935
84cfa284
RM
49362006-02-26 Roland McGrath <roland@redhat.com>
4937
4938 * sysdeps/generic/pt-raise.c: Moved to ...
4939 * pt-raise.c: ... here.
4940 * sysdeps/generic/lowlevellock.h: Moved to ...
4941 * lowlevellock.h: ... here.
4942
c5132ca1
RM
49432006-02-23 Roland McGrath <roland@redhat.com>
4944
4945 * descr.h (struct pthread): Add final member `end_padding'.
4946 (PTHREAD_STRUCT_END_PADDING): Use it.
4947
49482006-02-20 Roland McGrath <roland@redhat.com>
4949
4950 * sysdeps/mips: Directory removed, saved in ports repository.
4951 * sysdeps/unix/sysv/linux/mips: Likewise.
4952
a93317a1
UD
49532006-02-18 Ulrich Drepper <drepper@redhat.com>
4954
4955 * tst-robust1.c: Add second mutex to check that the mutex list is
4956 handled correctly.
4957
f1740bc4
UD
49582006-02-17 Jakub Jelinek <jakub@redhat.com>
4959
4960 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
4961 lll_robust_mutex_trylock, lll_robust_mutex_lock,
4962 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
4963 lll_robust_mutex_unlock): New macros.
4964 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
4965 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
4966 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
4967 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
4968 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
4969
a7245bf5
UD
49702006-02-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4971
4972 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Add lll_robust_mutex_*
4973 definitions.
4974 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: New file.
4975
49bfc1fe
UD
49762006-02-17 Ulrich Drepper <drepper@redhat.com>
4977
4978 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
4979 (lll_robust_mutex_unlock): Avoid unnecessary wakeups.
4980 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
4981 (lll_robust_mutex_unlock): Likewise.
4982
56e987ac
UD
49832006-02-13 Jakub Jelinek <jakub@redhat.com>
4984
4985 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
4986 Set robust_list.__next rather than robust_list.
4987 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
4988 (__pthread_list_t): New typedef.
4989 (pthread_mutex_t): Replace __next and __prev fields with __list.
4990 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
4991 (__pthread_list_t): New typedef.
4992 (pthread_mutex_t): Replace __next and __prev fields with __list.
4993 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4994 (__pthread_list_t, __pthread_slist_t): New typedefs.
4995 (pthread_mutex_t): Replace __next and __prev fields with __list.
4996 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
4997 (__pthread_list_t, __pthread_slist_t): New typedefs.
4998 (pthread_mutex_t): Replace __next and __prev fields with __list.
4999 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
5000 (__pthread_list_t, __pthread_slist_t): New typedefs.
5001 (pthread_mutex_t): Replace __next and __prev fields with __list.
5002 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
5003 (__pthread_slist_t): New typedef.
5004 (pthread_mutex_t): Replace __next field with __list.
5005
683040c3
UD
50062006-02-15 Ulrich Drepper <drepper@redhat.com>
5007
25bc77e6 5008 * pthreadP.h: Define PTHREAD_MUTEX_INCONSISTENT instead of
683040c3
UD
5009 PTHREAD_MUTEX_OWNERDEAD.
5010 (PTHREAD_MUTEX_ROBUST_PRIVATE_NP): Define as 16, not 256.
5011 Define FUTEX_WAITERS, FUTEX_OWNER_DIED, FUTEX_TID_MASK.
5012 * Makefile (libpthread-routines): Add lowlevelrobustlock.
5013 * pthread_create.c (start_thread): Very much simplify robust_list loop.
5014 * pthread_mutex_consistent.c: Inconsistent mutex have __owner now set
5015 to PTHREAD_MUTEX_INCONSISTENT.
5016 * pthread_mutex_destroy.c: Allow destroying of inconsistent mutexes.
5017 * pthread_mutex_lock.c: Reimplement robust mutex handling.
5018 * pthread_mutex_trylock.c: Likewise.
5019 * pthread_mutex_timedlock.c: Likewise.
5020 * pthread_mutex_unlock.c: Likewise.
5021 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
5022 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
5023 lowlevelrobustlock.sym.
5024 * sysdeps/unix/sysv/linux/lowlevelrobustlock.sym: New file.
5025 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add lll_robust_mutex_*
5026 definitions.
5027 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
5028 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: New file.
5029 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S: New file.
5030 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S: New file.
5031 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: New file.
5032
bbf209a4
UD
50332006-02-12 Ulrich Drepper <drepper@redhat.com>
5034
b007ce7c
UD
5035 * allocatestack.c (allocate_stack): Initialize robust_list.
5036 * init.c (__pthread_initialize_minimal_internal): Likewise.
5037 * descr.h (struct xid_command): Pretty printing.
5038 (struct pthread): Use __pthread_list_t or __pthread_slist_t for
5039 robust_list. Adjust macros.
5040 * pthread_create.c (start_thread): Adjust robust_list handling.
5041 * phtread_mutex_unlock.c: Don't allow unlocking from any thread
5042 but the owner for all robust mutex types.
5043 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
5044 __pthread_list_t and __pthread_slist_t. Use them in pthread_mutex_t.
0ca3379d 5045 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
b007ce7c
UD
5046 * sysdeps/pthread/pthread.h: Adjust mutex initializers.
5047
bbf209a4 5048 * sysdeps/unix/sysv/linux/i386/not-cancel.h: Define openat_not_cancel,
b42a214c 5049 openat_not_cancel_3, openat64_not_cancel, and openat64_not_cancel_3.
bbf209a4 5050
b576fca1
UD
50512006-02-08 Jakub Jelinek <jakub@redhat.com>
5052
5053 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
5054 lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
5055
a6df7387
UD
50562006-01-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5057
5058 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
5059 Return status.
5060 (lll_futex_timed_wait): Define.
5061
7c65e900
UD
50622006-01-19 Ulrich Drepper <drepper@redhat.com>
5063
5064 * tst-cancel4.c: Test ppoll.
5065
5f9f21e8
AJ
50662006-01-18 Andreas Jaeger <aj@suse.de>
5067
cf407dfb 5068 [BZ #2167]
5f9f21e8
AJ
5069 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
5070 (pthread_mutex_t): Follow changes for other archs. Based on patch
5071 by Jim Gifford <patches@jg555.com>.
5072
251278c6
UD
50732006-01-13 Richard Henderson <rth@redhat.com>
5074
5075 * sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
5076
de59a291
RM
50772006-01-10 Roland McGrath <roland@redhat.com>
5078
5079 * sysdeps/alpha/jmpbuf-unwind.h: File moved to main source tree.
5080 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
5081 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
5082 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
5083 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
5084 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
5085 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
5086 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
5087 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
0ca13e14 5088 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
de59a291 5089
931786ee
RM
50902006-01-09 Roland McGrath <roland@redhat.com>
5091
5d42c8c3
RM
5092 * tst-initializers1-c89.c: New file.
5093 * tst-initializers1-c99.c: New file.
5094 * tst-initializers1-gnu89.c: New file.
5095 * tst-initializers1-gnu99.c: New file.
5096 * Makefile (tests): Add them.
5097 (CFLAGS-tst-initializers1-c89.c): New variable.
5098 (CFLAGS-tst-initializers1-c99.c): New variable.
5099 (CFLAGS-tst-initializers1-gnu89.c): New variable.
5100 (CFLAGS-tst-initializers1-gnu99.c): New variable.
5101
931786ee
RM
5102 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
5103 Use __extension__ on anonymous union definition.
5104 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
5105 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
5106 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5107 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3c238452 5108 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
931786ee 5109
8dd18431
RM
51102006-01-08 Jakub Jelinek <jakub@redhat.com>
5111
5112 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
5113 Don't give the union a name because it changes the mangled name.
5114 Instead name the struct for __data.
5115 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_mutex_t):
5116 Likewise.
5117 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_mutex_t):
5118 Likewise.
5119
ae11e412
UD
51202006-01-09 Jakub Jelinek <jakub@redhat.com>
5121
5122 * sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Add
5123 stack bias to mc_ftp field.
5124
c6885aa1
UD
51252006-01-07 Ulrich Drepper <drepper@redhat.com>
5126
5127 * sysdeps/pthread/aio_misc.h (AIO_MISC_WAIT): Work around gcc
6e741bc3 5128 being too clever and reloading the futex value where it shouldn't.
c6885aa1 5129
ae4ad00a
UD
51302006-01-06 Ulrich Drepper <drepper@redhat.com>
5131
5132 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX): Use
5133 correct type.
5134
ced368f7
UD
51352006-01-06 Jakub Jelinek <jakub@redhat.com>
5136
5137 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
5138 Add cfi directives.
5139
d804f5df
UD
51402006-01-06 Ulrich Drepper <drepper@redhat.com>
5141
cbbbb188 5142 * sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
719046c1
UD
5143 * sysdeps/ia64/tcb-offsets.sym: Adjust for private->__private
5144 rename in tcbhead_t.
5145
d804f5df
UD
5146 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
5147 Don't give the union a name because it changes the mangled name.
5148 Instead name the struct for __data.
5149 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5150 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5151 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5152 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
5153 * pthread_create.c (start_thread): Adjust robust mutex free loop.
5154 * descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
5155
679d83ba
UD
51562006-01-05 Ulrich Drepper <drepper@redhat.com>
5157
5158 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
5159 Return status.
5160 (lll_futex_timed_wait): Define.
5161 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
5162 * sysdeps/pthread/aio_misc.h: New file.
5163
06dc5bf3
RM
51642006-01-03 Joseph S. Myers <joseph@codesourcery.com>
5165
5166 * Makefile ($(objpfx)$(multidir)): Use mkdir -p.
5167
9759bbf1
UD
51682006-01-03 Steven Munroe <sjmunroe@us.ibm.com>
5169
5170 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
5171 (PSEUDO): Remove redundant cfi_startproc and cfi_endproc directives.
5172 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
5173
db59b28b
UD
51742006-01-04 Ulrich Drepper <drepper@redhat.com>
5175
5176 * tst-cancel24.cc: Use C headers instead of C++ headers.
5177
b01fe5f7
UD
51782006-01-03 Jakub Jelinek <jakub@redhat.com>
5179
5180 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Remove #error for
5181 sparc-linux configured glibc.
5182 (lll_futex_wake_unlock): Define to 1 for sparc-linux configured glibc.
5183 (__lll_mutex_trylock, __lll_mutex_cond_trylock, __lll_mutex_lock,
5184 __lll_mutex_cond_lock, __lll_mutex_timedlock): Use
5185 atomic_compare_and_exchange_val_24_acq instead of
5186 atomic_compare_and_exchange_val_acq.
5187 (lll_mutex_unlock, lll_mutex_unlock_force): Use atomic_exchange_24_rel
5188 instead of atomic_exchange_rel.
5189 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: New file.
5190 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c: New
5191 file.
5192 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c: New
5193 file.
5194 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: New file.
5195 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: New file.
5196 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: New file.
5197 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: New file.
5198 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: New file.
5199 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
5200 New file.
5201 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
5202 New file.
5203 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: New file.
5204 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: New file.
5205 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: New
5206 file.
5207 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c: New
5208 file.
5209 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: New file.
5210
35c2fd59
UD
52112006-01-03 Ulrich Drepper <drepper@redhat.com>
5212
5213 * sysdeps/pthread/pthread.h [__WORDSIZE==64]: Don't use cast in
5214 mutex initializers.
5215
305bb37e
UD
52162006-01-02 Jakub Jelinek <jakub@redhat.com>
5217
5218 * sysdeps/sparc/tls.h (tcbhead_t): Add pointer_guard field.
5219 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
5220 THREAD_COPY_POINTER_GUARD): Define.
5221 * sysdeps/sparc/tcb-offsets.sym (POINTER_GUARD): Define.
5222 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Revert 2005-12-27 changes.
5223
cc792128
UD
52242006-01-01 Ulrich Drepper <drepper@redhat.com>
5225
5226 * version.c: Update copyright year.
5227
db0a00d3
UD
52282005-12-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5229
5230 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
5231 .eh_frame section, use cfi_* directives.
5232 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
5233
b36205c4
UD
52342005-12-30 Ulrich Drepper <drepper@redhat.com>
5235
5236 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
5237 now.
5238
8b4f1598
UD
52392005-12-29 Ulrich Drepper <drepper@redhat.com>
5240
5241 * sysdeps/pthread/sigaction.c: Removed.
5242 * sigaction.c: New file.
5243 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-sigaction.c.
5244
fec5592d
UD
52452005-12-28 Ulrich Drepper <drepper@redhat.com>
5246
5247 * Makefile (tests): Add tst-signal7.
5248 * tst-signal7.c: New file.
5249
db169ed5
RM
52502005-12-27 Roland McGrath <roland@redhat.com>
5251
5252 * sysdeps/x86_64/jmpbuf-unwind.h (_jmpbuf_sp): New inline function.
5253 (_JMPBUF_UNWINDS_ADJ): Use it, to PTR_DEMANGLE before comparison.
5254 * sysdeps/alpha/jmpbuf-unwind.h: Likewise.
5255 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
5256 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
5257 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
5258 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
5259 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
5260 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
5261 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
5262 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
5263
bfffffae
UD
52642005-12-27 Jakub Jelinek <jakub@redhat.com>
5265
5266 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next
5267 and __prev field to pthread_mutex_t.
5268 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5269 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5270 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5271 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
5272 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field
5273 to pthread_mutex_t.
5274
1bcfb5a5
UD
52752005-12-26 Ulrich Drepper <drepper@redhat.com>
5276
5277 * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
5278 PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
5279 PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
5280 PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
5281 PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
5282 and PTHREAD_MUTEXATTR_FLAG_BITS.
5283 * descr.h (struct pthread): Add robust_list field and define
5284 ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
5285 * pthread_mutexattr_getrobust.c: New file.
5286 * pthread_mutexattr_setrobust.c: New file.
5287 * pthread_mutex_consistent.c: New file.
5288 * sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
5289 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
5290 Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
5291 Adjust pthread_mutex_t initializers.
5292 * nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
5293 field to pthread_mutex_t.
5294 * nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
5295 and __prev field to pthread_mutex_t.
5296 * Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
5297 pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
5298 * pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
5299 and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
5300 * pthread_mutexattr_gettype.c: Likewise.
5301 * pthread_mutexattr_setpshared.c: Likewise.
5302 * pthread_mutexattr_settype.c: Likewise.
5303 * pthread_mutex_init.c: Reject robust+pshared attribute for now.
5304 Initialize mutex kind according to robust flag.
5305 * pthread_mutex_lock.c: Implement local robust mutex.
5306 * pthread_mutex_timedlock.c: Likewise.
5307 * pthread_mutex_trylock.c: Likewise.
5308 * pthread_mutex_unlock.c: Likewise.
5309 * pthread_create.c (start_thread): Mark robust mutexes which remained
5310 locked as dead.
5311 * tst-robust1.c: New file.
5312 * tst-robust2.c: New file.
5313 * tst-robust3.c: New file.
5314 * tst-robust4.c: New file.
5315 * tst-robust5.c: New file.
5316 * tst-robust6.c: New file.
5317 * tst-robust7.c: New file.
5318 * Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
5319 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
5320 (tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
5321 tst-robust5, tst-robust6, and tst-robust7.
5322
5323 * tst-typesizes.c: New file.
5324 * Makefile (tests): Add tst-typesizes.
5325
5326 * tst-once3.c: More debug output.
5327
9333ed0d
UD
53282005-12-24 Ulrich Drepper <drepper@redhat.com>
5329
d4d138a4
UD
5330 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
5331 missing after last change.
5332
bfffffae 5333 * version.c: Update copyright year.
9333ed0d 5334
dcc73a8d
UD
53352005-12-23 Ulrich Drepper <drepper@redhat.com>
5336
5337 * pthread_mutex_destroy.c: Set mutex type to an invalid value.
5338 * pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
5339 * pthread_mutex_trylock.c: Likewise.
5340 * pthread_mutex_timedlock.c: Likewise.
5341 * pthread_mutex_unlock.c: Likewise.
5342
879f3ca6
RM
53432005-12-22 Roland McGrath <roland@redhat.com>
5344
5345 * sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
5346 so that #include_next's search location is not reset to the -I..
5347 directory where <nptl/...> can be found.
5348
077a0da7
UD
53492005-12-22 Ulrich Drepper <drepper@redhat.com>
5350
5351 [BZ #1913]
5352 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
5353 Fix unwind info. Remove useless branch prediction prefix.
7735afa2
UD
5354 * tst-cancel24.cc: New file.
5355 * Makefile: Add rules to build and run tst-cancel24.
077a0da7 5356
8dea90aa
RM
53572005-12-21 Roland McGrath <roland@redhat.com>
5358
5359 * libc-cancellation.c: Use <> rather than "" #includes.
5360 * pt-cleanup.c: Likewise.
5361 * pthread_create.c: Likewise.
5362 * pthread_join.c: Likewise.
5363 * pthread_timedjoin.c: Likewise.
5364 * pthread_tryjoin.c: Likewise.
5365 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
5366 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
5367 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
5368 * unwind.c: Likewise.
5369
8da21f96
UD
53702005-12-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5371
5372 * sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
5373 * sysdeps/sh/tls.h (tcbhead_t): Remove private and add pointer_guard.
5374 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
5375 THREAD_COPY_POINTER_GUARD): Define.
5376
00c2b3b9
UD
53772005-12-19 Jakub Jelinek <jakub@redhat.com>
5378
5379 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
5380 rather than one.
5381 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
5382 THREAD_COPY_POINTER_GUARD): Define.
5383 * sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
5384 * sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
5385 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
5386 THREAD_COPY_POINTER_GUARD): Define.
5387 * sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
5388 * sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
5389 THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
5390 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
5391 Use PTR_DEMANGLE for B0 if defined.
5392
827b7087
UD
53932005-12-17 Ulrich Drepper <drepper@redhat.com>
5394
5395 * pthread_create.c (__pthread_create_2_1): Use
5396 THREAD_COPY_POINTER_GUARD if available.
5397 * sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
5398 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
5399 * sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
5400 Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
5401 * sysdeps/x86_64/tls.h: Likewise.
5402
2826ac7e
RM
54032005-12-15 Roland McGrath <roland@redhat.com>
5404
5405 * sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
5406
b6ab06ce
UD
54072005-12-13 Ulrich Drepper <drepper@redhat.com>
5408
5409 * sysdeps/pthread/sigfillset.c: Adjust for files moved out of
5410 sysdeps/generic.
5411 * errno-loc.c: New file.
5412
f0d1a3b5
RM
54132005-12-12 Roland McGrath <roland@redhat.com>
5414
5415 * init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
5416 adjustments before choosing stack size. Update minimum stack size
5417 calculation to match allocate_stack change.
5418
db13ddbc
UD
54192005-12-12 Ulrich Drepper <drepper@redhat.com>
5420
5421 * allocatestack.c (allocate_stack): Don't demand that there is an
5422 additional full page available on the stack beside guard, TLS, the
5423 minimum stack.
5424
088f460f
UD
54252005-11-24 Ulrich Drepper <drepper@redhat.com>
5426
5427 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
5428 (__cleanup_fct_attribute): Use __regparm__ not regparm.
5429
5430 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
5431 compiling 32-bit code we must define __cleanup_fct_attribute.
5432
16feadf2
UD
5433005-11-24 Jakub Jelinek <jakub@redhat.com>
5434
5435 [BZ #1920]
5436 * sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
5437 __attribute__ instead of __attribute.
5438 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
5439 (__cleanup_fct_attribute): Likewise.
5440
e6e493bb
UD
54412005-11-17 Jakub Jelinek <jakub@redhat.com>
5442
5443 * sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
5444 a write barrier before writing libgcc_s_getcfa.
5445
8e635611
UD
54462005-11-06 Ulrich Drepper <drepper@redhat.com>
5447
5448 * sysdeps/unix/sysv/linux/configure: Removed.
5449
ce33ee7c
UD
54502005-11-05 Ulrich Drepper <drepper@redhat.com>
5451
5452 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Remove trace of
5453 optional init_array/fini_array support.
5454
20d511e0
RM
54552005-10-24 Roland McGrath <roland@redhat.com>
5456
5457 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Remove unnecessary
5458 versioned_symbol use.
5459
fe60d146
RM
54602005-10-16 Roland McGrath <roland@redhat.com>
5461
5462 * init.c (__pthread_initialize_minimal_internal): Even when using a
5463 compile-time default stack size, apply the minimum that allocate_stack
5464 will require, and round up to page size.
5465
0faa1cf5
RM
54662005-10-10 Daniel Jacobowitz <dan@codesourcery.com>
5467
5468 * Makefile ($(test-modules)): Remove static pattern rule.
5469
f9126cc2 54702005-10-14 Jakub Jelinek <jakub@redhat.com>
b42a214c 5471 Ulrich Drepper <drepper@redhat.com>
f9126cc2
UD
5472
5473 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
5474 alignment in callback function.
5475 * Makefile: Add rules to build and run tst-align3.
5476 * tst-align3.c: New file.
5477
015a5d22
RM
54782005-10-03 Jakub Jelinek <jakub@redhat.com>
5479
5480 * allocatestack.c (setxid_signal_thread): Add
5481 INTERNAL_SYSCALL_DECL (err).
5482
b71ce910
UD
54832005-10-02 Jakub Jelinek <jakub@redhat.com>
5484
5485 * allocatestack.c (setxid_signal_thread): Need to use
5486 atomic_compare_and_exchange_bool_acq.
5487
dff9a7a1 54882005-10-01 Ulrich Drepper <drepper@redhat.com>
b42a214c 5489 Jakub Jelinek <jakub@redhat.com>
dff9a7a1
UD
5490
5491 * descr.h: Define SETXID_BIT and SETXID_BITMASK. Adjust
5492 CANCEL_RESTMASK.
5493 (struct pthread): Move specific_used field to avoid padding.
5494 Add setxid_futex field.
5495 * init.c (sighandler_setxid): Reset setxid flag and release the
5496 setxid futex.
5497 * allocatestack.c (setxid_signal_thread): New function. Broken
5498 out of the bodies of the two loops in __nptl_setxid. For undetached
5499 threads check whether they are exiting and if yes, don't send a signal.
5500 (__nptl_setxid): Simplify loops by using setxid_signal_thread.
5501 * pthread_create.c (start_thread): For undetached threads, check
5502 whether setxid bit is set. If yes, wait until signal has been
5503 processed.
5504
5505 * allocatestack.c (STACK_VARIABLES): Initialize them.
5506 * pthread_create.c (__pthread_create_2_1): Initialize pd.
5507
560b4709
UD
55082004-09-02 Jakub Jelinek <jakub@redhat.com>
5509
5510 * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
5511 waiters, awake all waiters on the associated mutex.
5512
5eac4760
RM
55132005-09-22 Roland McGrath <roland@redhat.com>
5514
5515 * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
5516 ../sysdeps/x86_64/hp-timing.h).
5517
a3615024
UD
55182005-08-29 Jakub Jelinek <jakub@redhat.com>
5519
5520 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
5521 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5522 (lll_futex_wake_unlock): Define.
5523 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
5524 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5525 (lll_futex_wake_unlock): Define.
5526 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
5527 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5528 (lll_futex_wake_unlock): Define.
5529 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
5530 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5531 (lll_futex_wake_unlock): Define.
5532 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
5533 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5534 (lll_futex_wake_unlock): Define.
5535 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
5536 lll_futex_wake_unlock.
5537 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
5538 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5539 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
5540 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
5541 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5542 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
5543
bf017034
UD
55442005-09-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5545
5546 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
5547 Fix typo in register name.
5548
fd4af664
UD
55492005-08-23 Ulrich Drepper <drepper@redhat.com>
5550
8558d715
UD
5551 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
5552 Use __sigfillset. Document that sigfillset does the right thing wrt
5553 to SIGSETXID.
fd4af664 5554
3fd1bc67
UD
55552005-07-11 Jakub Jelinek <jakub@redhat.com>
5556
44d75caf 5557 [BZ #1102]
3fd1bc67
UD
5558 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
5559 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
5560 PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
5561 PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
5562 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
5563 PTHREAD_COND_INITIALIZER): Supply zeros for all fields
5564 in the structure.
5565 * Makefile (tests): Add tst-initializers1.
5566 (CFLAGS-tst-initializers1.c): Set.
5567 * tst-initializers1.c: New test.
5568
553185e2
UD
55692005-07-11 Jakub Jelinek <jakub@redhat.com>
5570
5571 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
5572 Make sure __flags are located at offset 48 from the start of the
5573 structure.
5574
8df08cb2
RM
55752005-07-02 Roland McGrath <roland@redhat.com>
5576
5577 * Makeconfig: Comment fix.
5578
253eb3a0
UD
55792005-07-05 Jakub Jelinek <jakub@redhat.com>
5580
5581 * descr.h (PTHREAD_STRUCT_END_PADDING): Define.
5582 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
5583 is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
5584 (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
5585 TLS_PRE_TCB_SIZE is sizeof (struct pthread).
5586 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
5587 * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
5588 Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
5589 * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
5590 assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
5591
bb6e8ca3
UD
55922005-06-25 Jakub Jelinek <jakub@redhat.com>
5593
5594 * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
5595 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
5596 * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
5597 fields.
5598 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
5599 * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
5600 field. Put in sysinfo field unconditionally.
5601 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
5602 * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
5603 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
5604 * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
5605 fields.
5606 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
5607 * pthread_create.c (__pthread_create_2_1): Use
5608 THREAD_COPY_STACK_GUARD macro.
5609 * Makefile: Add rules to build and run tst-stackguard1{,-static}
5610 tests.
5611 * tst-stackguard1.c: New file.
5612 * tst-stackguard1-static.c: New file.
5613
99c7f870
UD
56142005-06-14 Alan Modra <amodra@bigpond.net.au>
5615
5616 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
5617 Invoke CGOTSETUP and CGOTRESTORE.
5618 (CGOTSETUP, CGOTRESTORE): Define.
5619
8074c5c5
RM
56202005-05-29 Richard Henderson <rth@redhat.com>
5621
5622 * tst-cancel4.c (WRITE_BUFFER_SIZE): New.
5623 (tf_write, tf_writev): Use it.
5624 (do_test): Use socketpair instead of pipe. Set SO_SNDBUF to
5625 the system minimum.
5626
c179df4e
UD
56272005-05-23 Jakub Jelinek <jakub@redhat.com>
5628
5629 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
5630 [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
5631 __librt_*_asynccancel@local.
5632
b0e196a4
UD
56332005-05-17 Alan Modra <amodra@bigpond.net.au>
5634
5635 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
5636 all occurrences of JUMPTARGET. Instead append @local to labels.
5637
f7d78e18
UD
56382005-05-20 Jakub Jelinek <jakub@redhat.com>
5639
5640 * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
5641 size/alignment of struct pthread rather than tcbhead_t.
5642 * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
5643 Likewise.
5644 * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
5645 Likewise.
5646 * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
5647 Likewise.
5648
363dd976
UD
56492005-05-19 Richard Henderson <rth@redhat.com>
5650
5651 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
5652 __sync_val_compare_and_swap, not explicit _si variant.
5653 * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
5654
1ad9da69
UD
56552005-05-03 Ulrich Drepper <drepper@redhat.com>
5656
5657 [BZ #915]
5658 * sysdeps/pthread/pthread.h: Avoid empty initializers.
5659
5085cd1f
UD
56602005-05-03 Jakub Jelinek <jakub@redhat.com>
5661
5662 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
5663 .eh_frame section, use cfi_* directives.
5664
ad529081
UD
56652005-04-27 Jakub Jelinek <jakub@redhat.com>
5666
5667 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
5668 of "" includes.
5669
dea99685
UD
56702005-04-27 Ulrich Drepper <drepper@redhat.com>
5671
c06aad09 5672 [BZ #1075]
dea99685
UD
5673 * tst-cancel17.c (do_test): Add arbitrary factor to make sure
5674 aio_write blocks.
5675
84060bad
RM
56762005-04-27 Roland McGrath <roland@redhat.com>
5677
5e2d8ac8
RM
5678 * Makefile (tests): Remove tst-clock2.
5679
84060bad
RM
5680 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
5681 CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
5682 translating to the kernel clockid_t for our own process/thread clock.
5683
5684 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
5685
4a035b9d
RM
56862005-04-15 Jakub Jelinek <jakub@redhat.com>
5687
5688 * old_pthread_cond_init.c: Include <errno.h>.
5689 (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
5690 process shared or uses clock other than CLOCK_REALTIME.
5691 * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
5692
edac0e8f
UD
56932005-04-13 David S. Miller <davem@davemloft.net>
5694
5695 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
5696 * sysdeps/sparc/sparc64/clone.S: New file.
5697
613d8d52
RM
56982005-04-05 Jakub Jelinek <jakub@redhat.com>
5699
44d75caf 5700 [BZ #1102]
613d8d52
RM
5701 * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
5702 __inline instead of inline.
5703 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
5704
ee618985
UD
57052005-03-31 Jakub Jelinek <jakub@redhat.com>
5706
5707 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
5708 functionally equivalent, but shorter instructions.
5709 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
5710 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
5711 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
5712 Likewise.
5713 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
5714 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
5715 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
5716 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
5717 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5718 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
5719 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
5720 Likewise.
5721 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
5722 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
5723 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
5724 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
5725 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
5726
f850220b
AJ
57272005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
5728
5729 * sysdeps/mips/Makefile: New file.
5730 * sysdeps/mips/nptl-sysdep.S: New file.
5731 * sysdeps/mips/tcb-offsets.sym: New file.
5732 * sysdeps/mips/pthread_spin_lock.S: New file.
5733 * sysdeps/mips/pthread_spin_trylock.S: New file.
5734 * sysdeps/mips/pthreaddef.h: New file.
5735 * sysdeps/mips/tls.h: New file.
5736 * sysdeps/mips/jmpbuf-unwind.h: New file.
5737 * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
5738 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
5739 * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
5740 * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
5741 * sysdeps/unix/sysv/linux/mips/fork.c: New file.
5742 * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
5743 * sysdeps/unix/sysv/linux/mips/vfork.S: New file.
5744 * sysdeps/unix/sysv/linux/mips/clone.S: New file.
5745 * sysdeps/unix/sysv/linux/mips/createthread.c: New file.
5746 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
5747
1e6da2b0
UD
57482005-03-23 Ulrich Drepper <drepper@redhat.com>
5749
c06aad09 5750 [BZ #1112]
1e6da2b0
UD
5751 * pthread_create.c (__pthread_create_2_1): Rename syscall error
5752 variable to scerr.
5753
5233d576
RM
57542005-03-10 Jakub Jelinek <jakub@redhat.com>
5755
5756 * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
5757
3053ff11
RM
57582005-02-25 Roland McGrath <roland@redhat.com>
5759
5760 * alloca_cutoff.c: Correct license text.
5761 * tst-unload.c: Likewise.
5762 * sysdeps/pthread/allocalim.h: Likewise.
5763 * sysdeps/pthread/pt-initfini.c: Likewise.
5764 * sysdeps/pthread/bits/libc-lock.h: Likewise.
5765 * sysdeps/pthread/bits/sigthread.h: Likewise.
5766 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
5767 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
5768
9cfe5381
RM
57692005-02-16 Roland McGrath <roland@redhat.com>
5770
5771 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
5772 Use unsigned int * for ptr_nthreads.
5773
7de00121
RM
57742005-02-14 Alan Modra <amodra@bigpond.net.au>
5775
20d511e0 5776 [BZ #721]
7de00121
RM
5777 * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
5778 gcc4.
5779
4bae262d
UD
57802005-02-07 Richard Henderson <rth@redhat.com>
5781
613d8d52 5782 [BZ #787]
4bae262d
UD
5783 * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
5784 argument.
5785
75df54b7
RM
57862004-11-03 Marcus Brinkmann <marcus@gnu.org>
5787
5788 * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
5789 order of arguments in invocation of atomic_add_zero.
5790
ea9c93cc
UD
57912005-01-26 Jakub Jelinek <jakub@redhat.com>
5792
9cfe5381 5793 [BZ #737]
ea9c93cc
UD
5794 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
5795 Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
5796 at least gotntpoff relocation and addition.
5797 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
5798 Likewise.
5799 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
5800 Likewise.
5801 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
5802 Likewise.
5803
9dcafc55
UD
58042005-01-06 Ulrich Drepper <drepper@redhat.com>
5805
5806 * allocatestack.c (init_one_static_tls): Adjust initialization of DTV
5807 entry for static tls deallocation fix.
5808 * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
5809 also contains information whether the memory pointed to is static
5810 TLS or not.
5811 * sysdeps/i386/tls.h: Likewise.
5812 * sysdeps/ia64/tls.h: Likewise.
5813 * sysdeps/powerpc/tls.h: Likewise.
5814 * sysdeps/s390/tls.h: Likewise.
5815 * sysdeps/sh/tls.h: Likewise.
5816 * sysdeps/sparc/tls.h: Likewise.
5817 * sysdeps/x86_64/tls.h: Likewise.
5818
a71c152c
UD
58192004-12-27 Ulrich Drepper <drepper@redhat.com>
5820
5821 * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
5822
d143c49e
UD
58232004-12-21 Jakub Jelinek <jakub@redhat.com>
5824
5825 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
5826 %esp.
5827 * Makefile (tests): Add tst-align2.
5828 * tst-align2.c: New test.
5829 * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
5830 -mpreferred-stack-boundary=4.
5831
50130ded
RM
58322004-12-18 Roland McGrath <roland@redhat.com>
5833
5834 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
5835 New file removed withdrawn for the moment.
5836
cbc53df0
RH
58372004-12-17 Richard Henderson <rth@redhat.com>
5838
5839 * sysdeps/unix/sysv/linux/alpha/clone.S: New file.
5840 * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
50130ded 5841
fb9d5c73
UD
58422004-12-16 Ulrich Drepper <drepper@redhat.com>
5843
03332aa6
UD
5844 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
5845 Increased PTHREAD_STACK_MIN.
5846
fb9d5c73
UD
5847 * tst-context1.c (stacks): Use bigger stack size.
5848
e853ea00
UD
58492004-12-16 Jakub Jelinek <jakub@redhat.com>
5850
5851 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
5852 * sysdeps/sparc/tcb-offsets.sym: Add TID.
5853
f23673fc
UD
58542004-12-15 Jakub Jelinek <jakub@redhat.com>
5855
5856 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
5857 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
5858 * sysdeps/s390/tcb-offsets.sym (TID): Add.
5859
917fbe70
UD
58602004-12-15 Ulrich Drepper <drepper@redhat.com>
5861
5862 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
5863
1f9d7c27
UD
58642004-12-14 Ulrich Drepper <drepper@redhat.com>
5865
5866 * sysdeps/powerpc/tcb-offsets.sym: Add TID.
5867 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
5868
5869 * tst-getpid1.c: If child crashes, report this first. Print which
5870 signal.
5871
bf7c04cd
UD
58722004-12-09 Ulrich Drepper <drepper@redhat.com>
5873
5874 * init.c (__pthread_initialize_minimal_internal): Also unblock
5875 SIGSETXID.
5876
58772004-12-01 Jakub Jelinek <jakub@redhat.com>
5878
5879 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
5880 _POSIX_THREAD_CPUTIME): Define to 0.
5881 * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
5882 handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
5883 * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
5884 __timer_signal_thread_tclk): Remove.
5885 (init_module): Remove their initialization.
5886 (thread_cleanup): Remove their cleanup assertions.
5887 * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
5888 __timer_signal_thread_tclk): Remove.
5889 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
75df54b7 5890 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
bf7c04cd
UD
5891 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
5892
484cc801
UD
58932004-12-07 Jakub Jelinek <jakub@redhat.com>
5894
5895 * sysdeps/ia64/tcb-offsets.sym (TID): Add.
5896 * sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
5897
5898 * Makefile (tests): Add tst-getpid2.
5899 * tst-getpid1.c (TEST_CLONE_FLAGS): Define.
5900 (do_test): Use it. Use __clone2 instead of clone on ia64.
5901 * tst-getpid2.c: New test.
5902
2da9a6a1
UD
59032004-12-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5904
5905 * sysdeps/unix/sysv/linux/sh/clone.S: New file.
5906
1ff241b8
UD
59072004-12-04 Ulrich Drepper <drepper@redhat.com>
5908
5909 * Makefile (tests): Add tst-getpid1.
5910 * tst-getpid1.c: New file.
5911 * sysdeps/unix/sysv/linux/i386/clone.S: New file.
5912 * sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
5913
3f488b9c
RM
59142004-12-02 Roland McGrath <roland@redhat.com>
5915
5916 * Makefile (libpthread-nonshared): Variable removed.
5917 ($(objpfx)libpthread_nonshared.a): Target removed.
5918 ($(inst_libdir)/libpthread_nonshared.a): Likewise.
5919 These are now handled by generic magic from
5920 libpthread-static-only-routines being set.
5921
597ce09c
UD
59222004-11-27 Ulrich Drepper <drepper@redhat.com>
5923
5924 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
5925 _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
5926 _POSIX_THREAD_PRIO_PROTECT): Define.
5927 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
5928 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
5929 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
5930
60e4523a
UD
59312004-11-26 Jakub Jelinek <jakub@redhat.com>
5932
5933 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
5934 _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
5935 _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
5936 _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
5937 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
5938 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
5939 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
5940
f1f2cafc
UD
59412004-11-24 Ulrich Drepper <drepper@redhat.com>
5942
bca2d208
UD
5943 * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
5944
f1f2cafc
UD
5945 * Makefile (libpthread-routines): Add pthread_setschedprio.
5946 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
5947 * sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
5948 * pthread_setschedprio.c: New file.
5949
b639d0c9
UD
59502004-11-20 Jakub Jelinek <jakub@redhat.com>
5951
ef2bb413
UD
5952 * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
5953 * pthread_cancel.c (pthread_create): Likewise.
5954
b639d0c9
UD
5955 * Makefile (libpthread-routines): Add vars.
5956 * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
5957 * init.c (__default_stacksize, __is_smp): Remove.
5958 * vars.c: New file.
5959 * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
5960 and define a wrapper macro.
5961 (PTHREAD_STATIC_FN_REQUIRE): Define.
5962 * allocatestack.c (__find_thread_by_id): Undefine.
5963 * pthread_create (__pthread_keys): Remove.
5964 (pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
5965 pthread_key_create, pthread_setspecific, pthread_getspecific): Add
5966 PTHREAD_STATIC_FN_REQUIRE.
5967
3defcff3
UD
59682004-11-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5969
5970 * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
5971 parameter to REGISTER macro.
5972
ec188f92
RM
59732004-11-17 Roland McGrath <roland@redhat.com>
5974
5975 * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
5976 Make sure SIGCANCEL is blocked as well.
5977
ccd8de9a
UD
59782004-11-10 Jakub Jelinek <jakub@redhat.com>
5979
5980 * sysdeps/pthread/setxid.h: New file.
5981 * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
5982 (struct xid_command): Add forward decl.
5983 (struct pthread_functions): Change return type of __nptl_setxid hook
5984 to int.
5985 * pthreadP.h (__nptl_setxid): Change return type to int.
5986 * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
5987 calling thread, return its return value and set errno on failure.
5988 * descr.h (struct xid_command): Change id type to long array.
5989
5990 * Makefile: Add rules to build and test tst-setuid1 and
5991 tst-setuid1-static.
5992 * tst-setuid1.c: New test.
5993 * tst-setuid1-static.c: New test.
5994
ed2ced8a
UD
59952004-11-10 Jakub Jelinek <jakub@redhat.com>
5996
5997 * Makefile (tests): Add tst-exit3.
5998 * tst-exit3.c: New test.
5999
948603ee
UD
60002004-11-09 Ulrich Drepper <drepper@redhat.com>
6001
6002 * Makefile (tests): Add tst-exit2.
6003 * tst-exit2.c: New file.
6004
ba5ffd2a
RM
60052004-11-09 Roland McGrath <roland@redhat.com>
6006
6007 [BZ #530]
6008 * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
6009 here, before calling clone.
6010 * pthread_create.c (start_thread): Don't do it here.
6011
c4d7bd39
RM
60122004-11-02 Jakub Jelinek <jakub@redhat.com>
6013
6014 * sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
6015
543fb0c8
UD
60162004-10-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6017
6018 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
6019 Set ETIMEDOUT to errno when time is up. Tweak to avoid
6020 assembler warning.
6021
a1fbd858
UD
60222004-10-28 Jakub Jelinek <jakub@redhat.com>
6023
6024 * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
6025 if sched_priority is not between minprio and maxprio.
6026
c2a4357a
UD
60272004-10-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6028
6029 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
6030 (__pthread_cond_timedwait): Use clock_gettime syscall if exists.
6031
6032 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
6033 (__lll_mutex_timedlock_wait): Fix a bad branch condition.
6034
78d8d211
UD
60352004-10-24 Ulrich Drepper <drepper@redhat.com>
6036
6037 * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
6038 not-cancelable I/O functions.
6039
dd28590f
UD
60402004-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6041
6042 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
6043 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
6044 make sure 2 is stored in the futex and we looked at the old value.
6045 Fix a few other problems to return the correct value.
6046
f8c97af7
RH
60472004-10-14 Richard Henderson <rth@redhat.com>
6048
6049 * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
6050 make gcc4 happy.
6051
3feb8efa
UD
60522004-10-06 Jakub Jelinek <jakub@redhat.com>
6053
6054 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
6055 of pthread-functions.h and pthreaddef.h.
6056 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
6057
6058 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
6059 Change __data.__nwaiters from int to unsigned int.
6060
6061 * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
6062 sysconf (_SC_THREAD_CPUTIME) returns negative value.
6063
6064 * allocatestack.c (__find_thread_by_id): Move attribute_hidden
6065 before return type.
6066
6067 * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
6068 (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
6069
67060ef5
UD
60702004-10-06 Ulrich Drepper <drepper@redhat.com>
6071
6072 * tst-cancel4.c (tf_msgrcv): Check for failure in msgget. If the
6073 test fails, remove message queue.
6074 (tf_msgsnd): Likewise.
6075
f38a3086
UD
60762004-10-05 Jakub Jelinek <jakub@redhat.com>
6077
6078 * tst-clock1.c: Change #ifdef to #if defined.
6079 * tst-clock2.c: Likewise.
6080 * tst-cond11.c: Likewise.
6081
2c03b6db
UD
6082 * sysdeps/pthread/timer_create.c (timer_create): Use
6083 defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
6084 defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
6085 THREAD_CPUTIME.
6086
6ab5f50d
UD
60872004-10-05 Jakub Jelinek <jakub@redhat.com>
6088
6089 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
6090 _POSIX_THREAD_CPUTIME): Define to 0.
6091
e4bb4853
UD
60922004-10-04 Ulrich Drepper <drepper@redhat.com>
6093
6094 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
6095 and _POSIX_THREAD_CPUTIME to zero.
6096 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
6097 * tst-barrier2.c: Fix testing for POSIX feature.
6098 * tst-clock1.c: Likewise.
6099 * tst-clock2.c: Likewise.
6100 * tst-cond11.c: Likewise.
6101 * tst-cond4.c: Likewise.
6102 * tst-cond6.c: Likewise.
6103 * tst-flock2.c: Likewise.
6104 * tst-mutex4.c: Likewise.
6105 * tst-mutex9.c: Likewise.
6106 * tst-rwlock12.c: Likewise.
6107 * tst-rwlock4.c: Likewise.
6108 * tst-signal1.c: Likewise.
6109 * tst-spin2.c: Likewise.
6110 * sysdeps/pthread/posix-timer.h: Likewise.
6111 * sysdeps/pthread/timer_create.c: Likewise.
6112 * sysdeps/pthread/timer_routines.c: Likewise.
6113
c1b48791
UD
61142004-10-01 Ulrich Drepper <drepper@redhat.com>
6115
927f0673
UD
6116 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
6117 (__lll_mutex_timedlock_wait): Address futex correctly.
6118
c1b48791 6119 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
b610fa2d 6120 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
c1b48791
UD
6121 make sure 2 is stored in the futex and we looked at the old value.
6122 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
6123 (__lll_mutex_timedlock_wait): Likewise. Fix a few other problems
6124 which might very well made the code not working at all before.
7b87aca6 6125 [BZ #417]
c1b48791 6126
e9f4e844
UD
61272004-09-28 Ulrich Drepper <drepper@redhat.com>
6128
4f21c95d
UD
6129 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
6130 allow SIGSETXID to be sent.
6131 * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
6132 for SIGSETXID to be defined.
6133 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
6134 SIGSETXID cannot be blocked.
6135
e9f4e844
UD
6136 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
6137 Add __extension__ to long long types.
6138 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
6139 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6140 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6141 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6142 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
6143 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
6144 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6145
5f66b766
UD
61462004-09-25 Ulrich Drepper <drepper@redhat.com>
6147
6148 * descr.h (struct pthread): Add stopped_start field.
6149 * sysdeps/pthread/createthread.c (create_thread): Set
6150 start_stopped flag in descriptor for new thread appropriately.
6151 * pthread_create.c (start_thread): Only take lock to be stopped on
6152 startup if stopped_start flag says so.
6153
362038b0
UD
61542004-09-24 Ulrich Drepper <drepper@redhat.com>
6155
3f80a99b
UD
6156 * pthread_create.c (__pthread_create_2_1): Remember whether thread
6157 is created detached and if yes, do not try to free the stack in case
6158 the thread creation failed.
6159 * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
6160 call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
6161 case there has been no error. [BZ #405]
6162
362038b0
UD
6163 * pthread_create.c (start_thread): Don't wait for scheduler data
6164 etc to be set at the beginning of the function. The cancellation
6165 infrastructure must have been set up. And enable async
6166 cancellation before potentially going to sleep. [BZ #401]
6167
65f0beb9
UD
61682004-09-20 Ulrich Drepper <drepper@redhat.com>
6169
3c12b91a 6170 * Versions: Remove exports for pthread_set*id_np functions.
65f0beb9
UD
6171 * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
6172 for now.
6173 * Makefile: Don't build pthread_set*id code for now.
6174
2edb61e3
UD
61752004-09-19 Ulrich Drepper <drepper@redhat.com>
6176
6177 * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
6178 internal use.
6179 * allocatestack.c (__nptl_setxid): New function.
6180 * descr.h (struct xid_command): Define type.
6181 * init.c (pthread_functions): Add ptr__nptl_setxid initialization.
6182 (sighandler_setxid): New function.
6183 (__pthread_initialize_minimal): Register sighandler_setxid for
6184 SIGCANCEL.
6185 * pt-allocrtsig.c: Update comment.
6186 * pthreadP.h: Define SIGSETXID. Declare __xidcmd variable.
6187 Declare __nptl_setxid.
6188 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
6189 * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
6190 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
6191 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
6192 and pthread_setresuid_np.
6193 * pthread_setgid_np.c: New file.
6194 * pthread_setuid_np.c: New file.
6195 * pthread_setegid_np.c: New file.
6196 * pthread_seteuid_np.c: New file.
6197 * pthread_setregid_np.c: New file.
6198 * pthread_setreuid_np.c: New file.
6199 * pthread_setresgid_np.c: New file.
6200 * pthread_setresuid_np.c: New file.
6201 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
6202 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
6203 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
6204 and pthread_setresuid_np.
6205 * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
6206 pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
6207 pthread_setregid, and pthread_setresgid.
6208
1ab1fa6f
UD
62092004-09-18 Ulrich Drepper <drepper@redhat.com>
6210
6211 * allocatestack.c (allocate_stack): Return EAGAIN instead of
6212 ENOMEM when out of memory.
6213
ae9e6b36
RM
62142004-09-10 Roland McGrath <roland@redhat.com>
6215
6216 [BZ #379]
6217 * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
6218 code, since we don't try to use the broken CLONE_STOPPED any more.
6219 * pthread_create.c (start_thread): Likewise.
6220
424bd2f8
RH
62212004-09-15 Richard Henderson <rth@redhat.com>
6222
6223 * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
6224
17b8a52d
UD
62252004-09-01 David Mosberger <davidm@hpl.hp.com>
6226
6227 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
6228 (__libc_unwind_longjmp): Delete macro and declare as function.
6229 * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
6230 __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
6231 nptl directory.
6232 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
6233 * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
6234 * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
6235
ccc63b07
UD
62362004-09-12 Ulrich Drepper <drepper@redhat.com>
6237
6238 * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
6239 for __USE_XOPEN2K.
6240 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
6241 types also for __USE_XOPEN2K.
6242 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
6243 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6244 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6245 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6246 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6247 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
6248 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6249 [BZ #320]
6250
31f93b3b
UD
62512004-09-08 Ulrich Drepper <drepper@redhat.com>
6252
6253 * sysdeps/pthread/pthread.h
6254 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
6255 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
6256 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
6257 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
6258 [BZ #375]
6259
e0329987
UD
62602004-09-07 Ulrich Drepper <drepper@redhat.com>
6261
590b40f7
UD
6262 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
6263 PSEUDO to be used with . prefix.
6264
67254a97
UD
6265 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
6266 Use atomic_increment instead of atomic_exchange_and_add.
6267 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
6268 Likewise.
6269 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
6270 Likewise.
6271 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
6272 Likewise.
6273
6274 * allocatestack.c (allocate_stack): Use atomic_increment_val
6275 instead of atomic_exchange_and_add.
6276 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
6277 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
6278 Likewise.
6279 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
6280 Likewise.
6281
e0329987
UD
6282 * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
6283 the initialization function might throw.
6284
42d86dd6 62852005-09-05 Richard Henderson <rth@redhat.com>
e0329987 6286
42d86dd6
RH
6287 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
6288 Move definition inside libpthread, libc, librt check. Provide
6289 definition for rtld.
6290
73f7c32c
UD
62912004-09-02 Ulrich Drepper <drepper@redhat.com>
6292
f76c8499
UD
6293 * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
6294 * sysdeps/i386/jmpbuf-unwind.h: Likewise
6295 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
6296 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
6297 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
6298 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
6299 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
6300 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
6301 * unwind.c: Use it.
6302
73f7c32c
UD
6303 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
6304 Rename __data.__clock to __data.__nwaiters, make it unsigned int.
6305 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
6306 Likewise.
6307 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
6308 Decrement __nwaiters. If pthread_cond_destroy has been called and
6309 this is the last waiter, signal pthread_cond_destroy caller and
6310 avoid using the pthread_cond_t structure after unlock.
6311 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6312 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6313 Read clock type from the least significant bits of __nwaiters instead
6314 of __clock.
6315 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6316 * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
6317
63182004-08-31 Jakub Jelinek <jakub@redhat.com>
6319
6320 [BZ #342]
6321 * Makefile (tests): Add tst-cond20 and tst-cond21.
6322 * tst-cond20.c: New test.
6323 * tst-cond21.c: New test.
6324 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
6325 (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
6326 it unsigned int.
6327 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
6328 Likewise.
6329 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6330 (pthread_cond_t): Likewise.
6331 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
6332 Likewise.
6333 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
6334 Likewise.
6335 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
6336 Likewise.
6337 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
6338 (cond_nwaiters): New.
6339 (clock_bits): New.
6340 * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
6341 if there are waiters not signalled yet.
6342 Wait until all already signalled waiters wake up.
6343 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
6344 __nwaiters. If pthread_cond_destroy has been called and this is the
6345 last waiter, signal pthread_cond_destroy caller and avoid using
6346 the pthread_cond_t structure after unlock.
6347 (__pthread_cond_wait): Increment __nwaiters in the beginning,
6348 decrement it when leaving. If pthread_cond_destroy has been called
6349 and this is the last waiter, signal pthread_cond_destroy caller.
6350 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
6351 Likewise. Read clock type from the least significant bits of
6352 __nwaiters instead of __clock.
6353 * pthread_condattr_setclock.c (pthread_condattr_setclock): Check
6354 whether clock ID can be encoded in COND_CLOCK_BITS bits.
6355 * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
6356 clock type just from the last COND_CLOCK_BITS bits of value.
6357 * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
6358 instead of __clock, just from second bit of condattr's value.
6359
409f7493
UD
63602004-08-30 Jakub Jelinek <jakub@redhat.com>
6361
6362 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
6363 bits/wordsize.h. Make the header match i386 header when __WORDSIZE
6364 != 64.
6365 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
6366
92c6ccd1
RM
63672004-08-15 Roland McGrath <roland@frob.com>
6368
6369 * pthread_atfork.c: Update copyright terms including special exception
6370 for these trivial files, which are statically linked into executables
6371 that use dynamic linking for the significant library code.
6372
4d004cfb
UD
63732004-08-09 Jakub Jelinek <jakub@redhat.com>
6374
6375 * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
6376 pthread_rwlock_rdlock.
6377 * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
6378 Decrease __nr_readers_queued after reacquiring lock.
6379 * sysdeps/pthread/pthread_rwlock_timedrdlock
6380 (pthread_rwlock_timedrdlock): Likewise.
6381 Reported by Bob Cook <bobcook47@hotmail.com>.
6382
90595fb6
RM
63832004-08-11 Jakub Jelinek <jakub@redhat.com>
6384
6385 * tst-rwlock14.c (tf): Read main thread handle from *ARG
6386 before pthread_barrier_wait.
6387
fa46f7ab
UD
63882004-08-07 Ulrich Drepper <drepper@redhat.com>
6389
6390 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
6391 Remove unnecessary exception handling data.
6392
15ef4b55
UD
63932004-07-23 Jakub Jelinek <jakub@redhat.com>
6394
6395 [BZ #284]
6396 * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
6397 instead of clockid_t.
6398
4fb907b7
RM
63992004-07-21 Roland McGrath <roland@redhat.com>
6400
6401 * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
6402
64032004-07-19 Roland McGrath <roland@redhat.com>
6404
6405 * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
6406
8f73811b
RM
64072004-07-02 Roland McGrath <roland@redhat.com>
6408
6409 * configure: Don't exit.
6410
290639c3
UD
64112004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6412
6413 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
6414 (__pthread_cond_timedwait): Check for invalid nanosecond in
6415 timeout value.
6416
8e5aaad9
UD
64172004-07-07 Ulrich Drepper <drepper@redhat.com>
6418
6419 * Makefile: Add rules to build and run tst-fini1.
6420 * tst-fini1.c: New file.
6421 * tst-fini1mod.c: New file.
6422
ce6e047f
UD
64232004-07-05 Ulrich Drepper <drepper@redhat.com>
6424
6425 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
6426 if no cancellation support is needed.
6427 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
6428 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
6429 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
6430 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
6431 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
6432 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
6433 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
6434 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
6435 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
6436
6437 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
6438 only if not already defined.
6439
9b9ef823
UD
64402004-07-05 Jakub Jelinek <jakub@redhat.com>
6441
2dd18ce2
UD
6442 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
6443 constraint "m" instead of "0" for futex.
6444
9b9ef823
UD
6445 * shlib-versions: Add powerpc64-.*-linux.*.
6446
38205402
UD
64472004-07-04 Jakub Jelinek <jakub@redhat.com>
6448
6449 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
6450 (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
6451 for valid tv_nsec.
6452 * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
6453 1 billion and 64-bit tv_nsec which is valid when truncated to 32
6454 bits.
6455
78a9c837
RM
64562004-06-29 Roland McGrath <roland@redhat.com>
6457
6458 * Banner: NPTL no longer has its own version number.
6459 * Makefile (nptl-version): Variable removed.
6460 * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
6461 using $(version), the glibc version number.
6462
d3d35527
UD
64632004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6464
6465 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
6466 Fix branch offset for a PLT entry.
6467 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
6468 Likewise.
6469 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
6470 Likewise.
6471 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
6472 Likewise.
6473 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
6474 Likewise.
6475
346f18ae
UD
64762004-06-28 Jakub Jelinek <jakub@redhat.com>
6477
6478 * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
6479 unconditionally.
6480
f3a19754
UD
64812004-06-28 Jakub Jelinek <jakub@redhat.com>
6482
6483 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
6484 (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
6485 instead of tv_sec.
6486 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
6487 (pthread_rwlock_timedrdlock): Likewise.
6488
539842a4
UD
64892004-06-22 Jakub Jelinek <jakub@redhat.com>
6490
6491 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
6492 Set __r7 to val, not mutex.
6493
46f4c578
UD
64942004-06-27 Ulrich Drepper <drepper@redhat.com>
6495
6496 * Makefile: Add rules to build tst-rwlock14.
6497 * tst-rwlock14.c: New file.
6498
64992004-06-24 Boris Hu <boris.hu@intel.com>
6500
6501 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
6502 check.
6503 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
6504
9898e99c
AJ
65052004-06-19 Andreas Jaeger <aj@suse.de>
6506
6507 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
6508 assembler in last patch.
6509
7c3164bc
UD
65102004-06-17 Ulrich Drepper <drepper@redhat.com>
6511
6512 * sysdeps/pthread/pthread_cond_timedwait.c
6513 (__pthread_cond_timedwait): Also check for negativ nanoseconds.
6514 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
6515 (__pthread_cond_timedwait): Check for invalid nanosecond in
6516 timeout value.
6517 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6518 * tst-cond19.c: New file.
6519 * Makefile: Add rules to build and run tst-cond19.
6520
72e61500
UD
65212004-06-15 Steven Munroe <sjmunroe@us.ibm.com>
6522
6523 * tst-context1.c (GUARD_PATTERN): Defined.
6524 (tst_context_t): Define struct containing ucontext_t & guard words.
6525 (ctx): Declare as an array of tst_context_t.
6526 (fct): Verify uc_link & guard words are still valid.
6527 (tf): Initialize guard words in ctx. Adjust ctx refs for new struct.
6528
7c370086
UD
65292004-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6530
6531 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
6532 Add __data.__futex field, reshuffle __data.__clock.
6533 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
6534 (__pthread_cond_signal): Increment __futex at the same time as
6535 __wakeup_seq or __total_seq. Pass address of __futex instead of
6536 address of low 32-bits of __wakeup_seq to futex syscall.
6537 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
6538 (__pthread_cond_wait): Likewise. Pass __futex value from before
6539 releasing internal lock to FUTEX_WAIT.
6540 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
6541 (__pthread_cond_timedwait): Likewise.
6542 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
6543 (FUTEX_CMP_REQUEUE): Define.
6544 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
6545 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
6546 Pass __futex value from before the unlock and __futex address instead
6547 of address of low 32-bits of __wakeup_seq to futex syscall.
6548 Fallback to FUTEX_WAKE all on any errors.
6549
a9e526e7
RM
65502004-06-08 Jakub Jelinek <jakub@redhat.com>
6551
6552 * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
6553 comment typo.
6554 * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
6555 * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
6556 * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
6557 * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
6558 Likewise. Reported by Bob Cook <bobcook47@hotmail.com>.
6559
f1847a84
RM
65602004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
6561
6562 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
6563 Add memory clobber to inline assembly.
6564 (__lll_mutex_trylock): Likewise.
6565 (__lll_mutex_cond_trylock): Likewise.
6566
f7c81e1a
UD
65672004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com>
6568
6569 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
6570 Pass val argument as 6th system call argument in %r7.
6571
75fccede
UD
65722004-05-21 Jakub Jelinek <jakub@redhat.com>
6573
6574 * Makefile (tests): Add tst-cond16.
6575 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
6576 * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
6577 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
6578 Add __data.__futex field, reshuffle __data.__clock.
6579 * sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S
6580 (__pthread_cond_signal): Increment __futex at the same time as
6581 __wakeup_seq or __total_seq. Pass address of __futex instead of
6582 address of low 32-bits of __wakeup_seq to futex syscall.
6583 * sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S
6584 (__pthread_cond_wait): Likewise. Pass __futex value from before
6585 releasing internal lock to FUTEX_WAIT.
6586 * sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S
6587 (__pthread_cond_timedwait): Likewise.
6588 * sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S
6589 (FUTEX_CMP_REQUEUE): Define.
6590 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
6591 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
6592 Pass __futex value from before the unlock and __futex address instead
6593 of address of low 32-bits of __wakeup_seq to futex syscall.
6594 Fallback to FUTEX_WAKE all on any errors.
6595 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
6596 Define.
6597 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
6598 internally. Return non-zero if error, zero if success.
6599 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
6600 Add __data.__futex field, reshuffle __data.__clock.
6601 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
6602 Define.
6603 (lll_futex_requeue): Add val argument, return 1 unconditionally
6604 for the time being.
6605 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
6606 Add __data.__futex field, reshuffle __data.__clock.
6607 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
6608 Define.
6609 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
6610 internally. Return non-zero if error, zero if success.
6611 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6612 (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
6613 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
6614 Define.
6615 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
6616 internally. Return non-zero if error, zero if success.
6617 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
6618 Add __data.__futex field, reshuffle __data.__clock.
6619 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
6620 Define.
6621 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
6622 internally. Return non-zero if error, zero if success.
6623 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
6624 Add __data.__futex field, reshuffle __data.__clock.
6625 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
6626 Add __data.__futex field, reshuffle __data.__clock.
6627 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
6628 Increment __futex at the same time as __wakeup_seq or __total_seq.
6629 Pass address of __futex instead of address of low 32-bits of
6630 __wakeup_seq to futex syscall.
6631 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
6632 Pass __futex value from before releasing internal lock
6633 to FUTEX_WAIT.
6634 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
6635 Likewise. Avoid unnecessary shadowing of variables.
6636 * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
6637 Set __futex to 2 * __total_seq. Pass __futex value from before the
6638 unlock and __futex address instead of address of low 32-bits of
6639 __wakeup_seq to futex_requeue macro, adjust for new return value
6640 meaning.
6641 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
6642 (__pthread_cond_signal): Increment __futex at the same time as
6643 __wakeup_seq or __total_seq. Pass address of __futex instead of
6644 address of low 32-bits of __wakeup_seq to futex syscall.
6645 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
6646 (__pthread_cond_wait): Likewise. Pass __futex value from before
6647 releasing internal lock to FUTEX_WAIT.
6648 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
6649 (__pthread_cond_timedwait): Likewise.
6650 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
6651 (FUTEX_CMP_REQUEUE): Define.
6652 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
6653 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
6654 Pass __futex value from before the unlock and __futex address instead
6655 of address of low 32-bits of __wakeup_seq to futex syscall.
6656 Fallback to FUTEX_WAKE all on any errors.
6657
66582004-06-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6659
6660 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
6661 Add nop to align the end of critical section.
6662 (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
6663
fbf86dda
UD
66642004-06-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6665
6666 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
6667 Add __broadcast_seq field.
6668 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
6669 all waiters as woken with woken_seq and bump broadcast counter.
6670 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
6671 __broadcast_seq. Increment __woken_seq correctly when cleanuped.
6672 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
6673 Comment typo fixes. Avoid returning -ETIMEDOUT.
6674
66752004-06-01 Ulrich Drepper <drepper@redhat.com>
6676
6677 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
6678 (__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
6679 Reported by Kaz Kojima.
6680
ffdd5e50
UD
66812004-05-25 Jakub Jelinek <jakub@redhat.com>
6682
6683 * sysdeps/unix/sysv/linux/aio_misc.h: New file.
6684
3abc82c8
UD
66852004-05-21 Jakub Jelinek <jakub@redhat.com>
6686
6687 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
6688 __broadcast_seq with bc_seq after acquiring internal lock instead of
6689 before it.
6690
893a3511
UD
66912004-05-18 Jakub Jelinek <jakub@redhat.com>
6692
6693 * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
6694 compilation.
6695 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
6696 (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
6697 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
6698 (pthread_cond_t): Add __data.__broadcast_seq field.
6699 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
6700 (FRAME_SIZE): Define.
6701 (__pthread_cond_timedwait): Use it. Store/check broadcast_seq.
6702 Comment typo fixes.
6703 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
6704 Define.
6705 (__pthread_cond_wait): Use it. Store/check broadcast_seq. Comment
6706 typo fixes.
6707 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
6708 (__pthread_cond_broadcast): Increment broadcast_seq. Comment typo
6709 fixes.
6710
67112004-05-18 Ulrich Drepper <drepper@redhat.com>
6712
6713 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
6714 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
6715 Add __broadcast_seq field.
6716 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6717 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6718 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
6719 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
6720 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6721 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
6722 all waiters as woken with woken_seq and bump broadcast counter.
6723 * sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
6724 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
6725 __broadcast_seq field.
6726 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6727 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6728 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
6729 * pthread_cond_init.c: Initialize __broadcast_seq field.
6730 * Makefile (tests): Add tst-cond17 and tst-cond18.
6731 Add .NOTPARALLEL goal.
6732 * tst-cond16.c: New file. From Jakub.
6733 * tst-cond17.c: New file. From Jakub.
6734 * tst-cond18.c: New file. From Jakub.
6735
4123718e
UD
67362004-05-16 Ulrich Drepper <drepper@redhat.com>
6737
6738 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
6739 unwind info.
6740
6741 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
6742 Parametrize frame size. Correct some unwind info.
6743 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6744
2d7ae210
UD
67452004-05-04 Jakub Jelinek <jakub@redhat.com>
6746
6747 * tst-stack3.c: Note testing functionality beyond POSIX.
6748
50c2b6d7
UD
67492004-05-04 Jakub Jelinek <jakub@redhat.com>
6750
6751 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
6752 Change conditional from ifdef to if.
6753
27b02589
UD
67542004-04-23 Jakub Jelinek <jakub@redhat.com>
6755
6756 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
6757 SYSDEP_CANCEL_ERROR): Define.
6758 (PSEUDO): Use it.
6759
4bb8fc33
UD
67602004-05-01 Jakub Jelinek <jakub@redhat.com>
6761
6762 * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
6763
f9a06dc1
UD
67642004-04-20 Jakub Jelinek <jakub@redhat.com>
6765
6766 * sem_unlink.c (sem_unlink): Change EPERM into EACCES.
6767
d3b52028
UD
67682004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6769
6770 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
6771 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
6772 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
6773 info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
6774
a5dd0a6c
UD
67752004-04-19 Ulrich Drepper <drepper@redhat.com>
6776
6777 * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
6778 thread has all signals blocked.
6779
620c3354
AJ
67802004-04-18 Andreas Jaeger <aj@suse.de>
6781
6782 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
6783 (SEM_VALUE_MAX): Add missing brace.
6784
1683daeb
UD
67852004-04-17 Jakub Jelinek <jakub@redhat.com>
6786
6787 * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
6788 in rt subdir.
6789 (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
6790 * sysdeps/pthread/tst-mqueue8x.c: New test.
6791 * tst-cancel4.c: Update comment about message queues.
6792
6793 * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
6794 return it_value { 0, 0 }.
6795 * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
6796 like SIGEV_SIGNAL.
6797 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
6798 assertion for SIGEV_NONE.
6799 (thread_attr_compare): Compare all attributes, not just a partial
6800 subset.
6801
68022004-04-17 Jakub Jelinek <jakub@redhat.com>
6803
6804 * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
6805
f532641d
UD
68062004-04-17 Ulrich Drepper <drepper@redhat.com>
6807
6808 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
6809 Just use a plain number.
6810 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
6811 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
6812 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
6813 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
6814 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
6815 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
6816 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
6817
7eb7fdda
UD
68182004-04-16 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6819
53392906
UD
6820 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
6821 frame info.
6822 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7eb7fdda 6823
d7ba1313
UD
68242004-04-15 Jakub Jelinek <jakub@redhat.com>
6825
6826 * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
6827 (timer_helper_thread): Use inline rt_sigtimedwait syscall instead
6828 of calling sigwaitinfo.
6829
5adac0e4
UD
68302004-04-16 Ulrich Drepper <drepper@redhat.com>
6831
6832 * allocatestack.c (allocate_stack): Set reported_guardsize
6833 unconditionally.
6834 * pthread_getattr_np.c (pthread_getattr_np): Use
6835 reported_guardsize instead of guardsize.
6836 * descr.h (struct pthread): Add reported_guardsize field.
6837
f93fa7d4
UD
68382004-04-13 Jakub Jelinek <jakub@redhat.com>
6839
6840 * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
6841
1b82c6c7
UD
68422004-04-12 Ulrich Drepper <drepper@redhat.com>
6843
6844 * sysdeps/unix/sysv/linux/mq-notify.c: New file.
6845
68462004-04-08 Jakub Jelinek <jakub@redhat.com>
6847
6848 * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
6849 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
6850 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
6851 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
6852 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
6853 Define.
6854 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
6855 (_POSIX_MESSAGE_PASSING): Define.
6856 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
6857 (_POSIX_MESSAGE_PASSING): Define.
6858 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
6859 (_POSIX_MESSAGE_PASSING): Define.
6860
e6eb894e
UD
68612004-04-04 Ulrich Drepper <drepper@redhat.com>
6862
6863 * tst-context1.c (fct): Check whether correct stack is used.
6864
1e084487
UD
68652004-04-03 Ulrich Drepper <drepper@redhat.com>
6866
4e73e115
UD
6867 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
6868 matching constraints for asm mem parameters.
6869
1e084487
UD
6870 * tst-clock2.c (tf): Don't define unless needed.
6871
feca5e0b
UD
68722004-03-30 H.J. Lu <hongjiu.lu@intel.com>
6873
6874 * Makefile (link-libc-static): Use $(static-gnulib) instead of
6875 $(gnulib).
6876
3fa21fd8
UD
68772004-03-30 Ulrich Drepper <drepper@redhat.com>
6878
6879 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
6880 * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
6881 * pthreadP.h: Declare __nptl_deallocate_tsd.
6882 * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
6883 Adjust caller.
6884
6885 * Makefile (tests): Add tst-tsd5.
6886 * tst-tsd5.c: New file.
6887
8e32efa6
UD
68882004-03-29 Ulrich Drepper <drepper@redhat.com>
6889
6890 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
6891 (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
6892 is SHLIB_COMPAT check.
6893 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
6894 (__pthread_attr_getaffinity_old): Likewise.
6895 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
6896 (__pthread_getaffinity_old): Likewise.
6897 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
6898 (__pthread_setaffinity_old): Likewise.
6899
eec8b6ca
UD
69002004-03-26 Ulrich Drepper <drepper@redhat.com>
6901
6902 * allocatestack.c (_make_stacks_executable): Call
6903 _dl_make_stack_executable first.
6904
db2f05ba
RM
69052004-03-24 Roland McGrath <roland@redhat.com>
6906
6907 * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
6908 constraint instead of "0".
6909
6abbc501
UD
69102004-03-24 Ulrich Drepper <drepper@redhat.com>
6911
68dc4dcb
UD
6912 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6913 (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
6914
6abbc501
UD
6915 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
6916 code to avoid warning.
6917
865e14d9
AJ
69182004-03-24 Andreas Jaeger <aj@suse.de>
6919
6920 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
6921 (__pthread_attr_setaffinity_old): Remove const.
6922
16b06b70
UD
69232004-03-23 Ulrich Drepper <drepper@redhat.com>
6924
2c0b891a
UD
6925 * sysdeps/unix/sysv/linux/smp.h: New file.
6926 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
6927 * init.c: Define __is_smp.
6928 (__pthread_initialize_minimal_internal): Call is_smp_system to
6929 initialize __is_smp.
6930 * pthreadP.h: Declare __is_smp.
6931 Define MAX_ADAPTIVE_COUNT is necessary.
6932 * pthread_mutex_init.c: Add comment regarding __spins field.
6933 * pthread_mutex_lock.c: Implement adaptive mutex type.
6934 * pthread_mutex_timedlock.c: Likewise.
6935 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
6936 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
6937 Add __spins field.
6938 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
6939 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6940 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6941 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6942 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6943 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
6944 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6945 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
6946 lll_mutex_cond_trylock.
6947 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6948 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6949 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6950 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
6951 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
6952 Define BUSY_WAIT_NOP.
6953 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6954 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6955
6956 * tst-mutex5.c: Add support for testing adaptive mutexes.
6957 * tst-mutex7.c: Likewise.
6958 * tst-mutex5a.c: New file.
6959 * tst-mutex7a.c: New file.
6960 * Makefile (tests): Add tst-mutex5a and tst-mutex7a.
6961
565699e4
UD
6962 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
6963 (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
6abbc501 6964 vgettimeofday call might destroy the content.
565699e4 6965
7fe1586f
UD
6966 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
6967 @pause in the loop.
6968
e408880b
UD
6969 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
6970 No need to restrict type of ret. Make it int. Add comment.
6971
16b06b70
UD
6972 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
6973 Remove unnecessary setne instruction.
6974
61645263
UD
69752004-03-22 Jakub Jelinek <jakub@redhat.com>
6976
6977 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
6978 (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
6979 * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
6980 If realloc fails, break out of the loop.
6981
e3d4c585
AJ
69822004-03-20 Andreas Jaeger <aj@suse.de>
6983
6984 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
6985 (__pthread_setaffinity_old): Fix interface.
6986 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
6987 (__pthread_getaffinity_old): Likewise.
6988
6989 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
6990 (__pthread_setaffinity_new): Remove duplicate declaration.
6991
3abb1ff7
UD
69922004-03-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6993
6994 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
6995 the return value to a safe register.
6996 (CDISABLE): Set the function argument correctly.
6997
07bd2a3f
UD
69982004-03-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6999
7000 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
7001 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
7002 Rewrite so that only one locked memory operation per round is needed.
7003 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
7004 (pthread_barrier_wait): After wakeup, release lock only when the
7005 last thread stopped using the barrier object.
7006 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
7007 (__pthread_cond_wait): Don't store mutex address if the current
7008 value is ~0l. Add correct cleanup support and unwind info.
7009 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7010 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
7011 (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
7012 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
7013 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
7014 Add correct cleanup support and unwind info.
7015 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
7016 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
7017 information for syscall wrappers.
7018
14c35863
UD
70192004-03-18 Ulrich Drepper <drepper@redhat.com>
7020
7021 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
7022 cpusetsize field, remove next.
7023 * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
7024 parameter for size of the CPU set.
7025 (pthread_setaffinity_np): Likewise.
7026 (pthread_attr_getaffinity_np): Likewise.
7027 (pthread_attr_setaffinity_np): Likewise.
7028 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
7029 interface change, keep compatibility code.
7030 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
7031 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
7032 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
7033 * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare
7034 __pthread_getaffinity_np.
7035 * Versions: Add version for changed interfaces.
7036 * tst-attr3.c: Adjust test for interface change.
7037 * pthread_getattr_np.c: Query the kernel about the affinity mask with
7038 increasing buffer sizes.
7039 * pthread_attr_destroy.c: Remove unused list handling.
7040 * pthread_attr_init.c: Likewise.
7041
8e115d80
RM
70422004-03-17 Roland McGrath <roland@redhat.com>
7043
7044 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
7045 first argument to clock_getres so we ever enable kernel timers.
7046
e3b22ad3
UD
70472004-03-15 Ulrich Weigand <uweigand@de.ibm.com>
7048
7049 * init.c (nptl_version): Add __attribute_used__ to nptl_version.
7050
841153fa
RH
70512004-03-12 Richard Henderson <rth@redhat.com>
7052
e3b22ad3
UD
7053 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
7054 oldvalue from CENABLE to CDISABLE.
841153fa 7055
932dfea7
UD
70562004-03-12 Ulrich Drepper <drepper@redhat.com>
7057
7058 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
7059 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
7060 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
7061 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
7062
9852f6dc
RH
70632004-03-11 Richard Henderson <rth@redhat.com>
7064
7065 * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
7066 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
7067 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
7068
43513fb7
UD
70692004-03-11 Jakub Jelinek <jakub@redhat.com>
7070
7071 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
7072 instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
7073 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
7074
70752004-03-11 Jakub Jelinek <jakub@redhat.com>
7076
7077 * forward.c (__pthread_cond_broadcast_2_0,
7078 __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
7079 __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
7080 __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
7081
8a3e10e0
UD
70822004-03-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7083
7084 * sysdeps/sh/tcb-offsets.sym: Add PID.
7085 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
7086 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
7087
6d3a2bec
UD
70882004-03-10 Ulrich Drepper <drepper@redhat.com>
7089
7090 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
7091 include <sysdep-cancel.h>, vfork is no cancellation point.
7092 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
7093 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
7094 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
7095
d3a4a571
UD
70962004-03-10 Jakub Jelinek <jakub@redhat.com>
7097
73b4ce64
UD
7098 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
7099 libc_hidden_def.
7100 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
7101 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
7102 Likewise.
7103 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
7104 Likewise.
7105 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
7106 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
7107 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
7108 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
7109 of DO_CALL_VIA_BREAK. Work around a gas problem.
7110
d682a515
UD
7111 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
7112 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
7113 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
7114 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
7115 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
7116 * sysdeps/powerpc/tcb-offsets.sym: Add PID.
7117
7118 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
7119 a local register for saving old PID. Negate PID in parent upon exit.
7120
d3a4a571
UD
7121 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
7122 tcb-offsets.h.
7123 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
7124 before syscall, set to the old value in the parent afterwards.
7125 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
7126 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
7127 tcb-offsets.h.
7128 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
7129 before syscall, set to the old value in the parent afterwards.
7130 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
7131 * sysdeps/s390/tcb-offsets.sym: Add PID.
7132
7133 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
7134 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
7135 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
7136 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
7137 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
7138 * sysdeps/sparc/tcb-offsets.sym: Add PID.
7139
71402004-03-10 Andreas Schwab <schwab@suse.de>
7141
7142 * sysdeps/ia64/tcb-offsets.sym: Add PID.
7143 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
7144 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
7145
3f2fb223 71462004-03-09 Jakub Jelinek <jakub@redhat.com>
f4c024d1 7147
3f2fb223
UD
7148 * tst-cancel20.c (do_one_test): Clear in_sh_body first.
7149 * tst-cancel21.c (do_one_test): Likewise.
7150 Reported by Gordon Jin <gordon.jin@intel.com>.
f4c024d1 7151
8b9d6054
UD
71522004-02-09 Jakub Jelinek <jakub@redhat.com>
7153
7154 * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
7155 if non-zero and set to INT_MIN if zero.
7156 * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
7157 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
7158 (SAVE_PID, RESTORE_PID): Define.
7159 (__vfork): Use it.
7160 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
7161 Use relative path to avoid including NPTL i386/vfork.S.
7162 (SAVE_PID, RESTORE_PID): Define.
7163 * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
7164 (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
7165 * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
7166 tst-vfork2x.
7167 (tests-reverse): Add tst-vfork1x and tst-vfork2x.
7168 * tst-vfork1.c: New test.
7169 * tst-vfork2.c: New test.
7170 * tst-vfork1x.c: New test.
7171 * tst-vfork2x.c: New test.
7172
02287d05
UD
71732004-03-08 Ulrich Drepper <drepper@redhat.com>
7174
c072ef6d 7175 * sysdeps/i386/tcb-offsets.sym: Add PID.
6fadea9f 7176 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
c072ef6d 7177 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
6fadea9f 7178 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
02287d05 7179
d4acd24b
UD
71802004-03-08 Steven Munroe <sjmunroe@us.ibm.com>
7181
7182 * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
7183
8acb4b81
UD
71842004-03-08 H.J. Lu <hongjiu.lu@intel.com>
7185
7186 * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
7187 _rtld_global_ro.
7188
4d1a02ef
UD
71892004-03-07 Ulrich Drepper <drepper@redhat.com>
7190
001836c8 7191 * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
8acb4b81 7192 _rtld_global_ro.
001836c8 7193
4d1a02ef
UD
7194 * tst-once4.c: Remove unnecessary macro definition.
7195
7196 * tst-mutex7.c (do_test): Limit thread stack size.
7197 * tst-once2.c (do_test): Likewise.
7198 * tst-tls3.c (do_test): Likewise.
7199 * tst-tls1.c (do_test): Likewise.
7200 * tst-signal3.c (do_test): Likewise.
7201 * tst-kill6.c (do_test): Likewise.
7202 * tst-key4.c (do_test): Likewise.
7203 * tst-join4.c (do_test): Likewise.
7204 * tst-fork1.c (do_test): Likewise.
7205 * tst-context1.c (do_test): Likewise.
7206 * tst-cond2.c (do_test): Likewise.
7207 * tst-cond10.c (do_test): Likewise.
7208 * tst-clock2.c (do_test): Likewise.
7209 * tst-cancel10.c (do_test): Likewise.
7210 * tst-basic2.c (do_test): Likewise.
7211 * tst-barrier4.c (do_test): Likewise.
7212
aa420660
UD
72132004-03-05 Ulrich Drepper <drepper@redhat.com>
7214
7215 * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
7216
cff08c81
UD
72172004-03-01 Ulrich Drepper <drepper@redhat.com>
7218
7219 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
7220 (__pthread_cond_timedwait): Optimize wakeup test.
7221 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
7222 (__pthread_cond_wait): Likewise.
7223 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
7224 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
7225 Likewise.
7226
b7fe377c
UD
72272004-02-29 Ulrich Drepper <drepper@redhat.com>
7228
7229 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
7230 (__lll_mutex_lock_wait): Optimize a bit more. Just one copy of
7231 the atomic instruction needed.
7232 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
7233 (__lll_mutex_lock_wait): Likewise.
7234
4c771a3b
UD
72352004-02-28 Ulrich Drepper <drepper@redhat.com>
7236
7237 * Makefile (tests): Add tst-cond14 and tst-cond15.
7238 * tst-cond14.c: New file.
7239 * tst-cond15.c: New file.
7240
a2c33d5a
UD
72412004-02-27 Ulrich Drepper <drepper@redhat.com>
7242
7243 * sysdeps/pthread/createthread.c (create_thread): Remove use of
7244 CLONE_STOPPED. We cannot use SIGCONT which means CLONE_STOPPED
7245 needs to be implemented differently to be useful.
7246
261eada2
UD
72472004-02-26 Ulrich Drepper <drepper@redhat.com>
7248
14ffbc83
UD
7249 * pthread_attr_setschedparam.c: Don't test priority against limits
7250 here. Set ATTR_FLAG_SCHED_SET flag.
7251 * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
7252 * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
7253 from parent thread to child. If attribute is used and scheduling
7254 parameters are not inherited, copy parameters from attribute or
7255 compute them. Check priority value.
7256 * pthread_getschedparam.c: If the parameters aren't known yet get
7257 them from the kernel.
7258 * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
7259 ATTR_FLAG_POLICY_SET flag for thread.
7260 * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
7261 and ATTR_FLAG_POLICY_SET.
7262
7263 * sysdeps/pthread/createthread.c: Use tgkill if possible.
7264
261eada2
UD
7265 * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
7266 fail if stack address hasn't been set. Just return 0.
7267
701d185c
UD
72682004-02-25 Ulrich Drepper <drepper@redhat.com>
7269
25b8e63c
UD
7270 * Makefile (tests-nolibpthread): Add tst-unload. Don't link with
7271 libpthread for the files in this list.
7272 (CFLAGS-tst-unload): Removed.
7273 * tst-unload.c (do_test): Don't use complete path for
7274 LIBPHREAD_SO.
7275
701d185c
UD
7276 * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
7277 tst-_res1mod2.
7278
a8fd5a02
UD
72792004-02-22 Ulrich Drepper <drepper@redhat.com>
7280
7281 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
7282 (__lll_mutex_lock_wait): Rewrite so that only one locked memory
7283 operation per round is needed.
7284 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
7285 (__lll_mutex_lock_wait): Likewise.
7286
dd0b7b19
UD
72872004-02-20 Ulrich Drepper <drepper@redhat.com>
7288
7289 * tst-cancel9.c (cleanup): Don't print to stderr.
7290
5990e1fe
UD
72912004-02-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7292
7293 * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
7294
33ab3b66
UD
72952004-02-20 Jakub Jelinek <jakub@redhat.com>
7296
1be3130e
UD
7297 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
7298 (__syscall_error_handler2): Call CDISABLE.
7299 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
7300 (__syscall_error_handler2): Call CDISABLE.
7301
8ba5025a
UD
7302 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
7303 Release lock before the loop, don't reacquire it.
8ba5025a 7304
33ab3b66
UD
7305 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
7306
11986c68
UD
73072004-02-19 Andreas Schwab <schwab@suse.de>
7308
7309 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
7310 Fix last change.
7311
dc391246
UD
73122004-02-18 Ulrich Drepper <drepper@redhat.com>
7313
37c054c7
UD
7314 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
7315 (pthread_barrier_wait): After wakeup, release lock only when the
7316 last thread stopped using the barrier object.
7317 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
7318 (pthread_barrier_wait): Likewise.
7319 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
7320 Likewise.
7321 * Makefile (tests): Add tst-barrier4.
7322 * tst-barrier4.c: New file.
dc391246
UD
7323
7324 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
7325 (__pthread_cond_timedwait): Perform timeout test while holding
7326 internal lock to prevent wakeup race.
7327 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
7328 * sysdeps/pthread/pthread_cond_timedwait.c
7329 (__pthread_cond_timedwait): Likewise.
7330 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
7331 (__pthread_cond_timedwait): Likewise.
7332
4a08113c
UD
73332004-02-18 Jakub Jelinek <jakub@redhat.com>
7334
7335 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
7336 (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
7337 * Makefile (tests): Add tst-rwlock13.
7338 * tst-rwlock13.c: New test.
7339
71b1675e
UD
73402004-02-16 Ulrich Drepper <drepper@redhat.com>
7341
7342 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
7343 (__condvar_tw_cleanup): Little optimization.
7344 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
7345
cd9fdc72
UD
73462004-02-16 Steven Munroe <sjmunroe@us.ibm.com>
7347
7348 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
7349 libpthread as "lib" parameter to SHLIB_COMPAT.
7350 (__novmx_siglongjmp): Fix typo in function name.
7351 (__novmx_longjmp): Fix typo in function name.
7352
82038750
UD
73532004-02-13 Ulrich Drepper <drepper@redhat.com>
7354
b078c591
UD
7355 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
7356 __builtin_expect.
7357
82038750
UD
7358 * sysdeps/generic/pt-longjmp.c: Moved to...
7359 * sysdeps/pthread/pt-longjmp.c: ...here. New file.
7360
e2982bf0
UD
73612004-01-29 Steven Munroe <sjmunroe@us.ibm.com>
7362
7363 * Makefile (libpthread-routines): Add pt-cleanup.
7364 * pt-longjmp.c: Removed.
7365 * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
7366 * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
7367 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
7368 Version longjmp, siglongjmp for GLIBC_2.3.4.
7369 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
7370
3730d95c
UD
73712004-02-13 Ulrich Drepper <drepper@redhat.com>
7372
219304ec
UD
7373 * sysdeps/pthread/pthread_cond_timedwait.c
7374 (__pthread_cond_timedwait): Optimize. Drop internal lock earlier.
7375 Reuse code. Add __builtin_expects.
7376
3730d95c
UD
7377 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
7378 (__pthread_cond_timedwait): Get internal lock in case timeout has
7379 passed before the futex syscall.
7380 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7381
5673ccc1
UD
73822004-01-20 Ulrich Drepper <drepper@redhat.com>
7383
debddf64
UD
7384 * allocatestack.c: Pretty printing.
7385
5673ccc1
UD
7386 * sysdeps/pthread/createthread.c (create_thread): Don't add
7387 CLONE_DETACHED bit if it is not necessary.
7388
6bae8725
UD
73892004-01-16 Ulrich Drepper <drepper@redhat.com>
7390
7391 * pthread_getattr_np.c: Include ldsodefs.h.
7392
ff151400
RH
73932004-01-16 Richard Henderson <rth@redhat.com>
7394
6bae8725
UD
7395 * allocatestack.c: Don't declare __libc_stack_end.
7396 * init.c (__pthread_initialize_minimal_internal): Likewise.
7397 * pthread_getattr_np.c (pthread_getattr_np): Likewise.
ff151400 7398
ba683832
RH
73992004-01-15 Richard Henderson <rth@redhat.com>
7400
7401 * sysdeps/alpha/tls.h (tcbhead_t): Add private.
7402 (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
7403 TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
7404 GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
7405 (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
7406 (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
7407 (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
7408 * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
7409
630d93a7
UD
74102004-01-14 Ulrich Drepper <drepper@redhat.com>
7411
219304ec 7412 * init.c (pthread_functions): Make array const.
630d93a7 7413
d1fc817e
UD
74142004-01-13 Ulrich Drepper <drepper@redhat.com>
7415
7416 * allocatestack.c (__make_stacks_executable): Change interface.
7417 Check parameters. Pass parameter on to libc counterpart.
7418 * pthreadP.h: Change declaration.
7419
dc927809
RH
74202004-01-13 Richard Henderson <rth@redhat.com>
7421
10677727
UD
7422 * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
7423 prototype form.
7424 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
7425 Likewise.
7426
d1fc817e
UD
7427 * sysdeps/alpha/Makefile: New file.
7428 * sysdeps/alpha/tcb-offsets.sym: New file.
7429 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
7430 Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
dc927809 7431
d1fc817e
UD
7432 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
7433 on powerpc version.
dc927809 7434
249a3d0c
UD
74352004-01-08 Jakub Jelinek <jakub@redhat.com>
7436
7437 * Makefile (tests): Add tst-backtrace1.
7438 * tst-backtrace1.c: New test.
7439
763c0490
RM
74402003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
7441
7442 * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
7443 register as second parameter to the REGISTER macro.
7444 * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
7445 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
7446 * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
7447 * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
7448 * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
7449 of thread register as second parameter to REGISTER macro in 64 case.
7450
c7baafd5
UD
74512004-01-03 Ulrich Drepper <drepper@redhat.com>
7452
7453 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
7454 (CFLAGS-getpid.o): Defined.
7455 (CFLAGS-getpid.os): Defined.
7456
25ac0258
UD
74572003-12-31 Ulrich Drepper <drepper@redhat.com>
7458
7459 * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
7460 returned for main thread does not overlap with any other VMA.
7461 Patch by Jakub Jelinek.
7462
795985e4
UD
74632003-12-29 Jakub Jelinek <jakub@redhat.com>
7464
7465 * tst-raise1.c: Include stdio.h.
7466
cb5b9388
UD
74672003-12-23 Jakub Jelinek <jakub@redhat.com>
7468
7469 * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
7470 setting with __ASSUME_TGKILL || defined __NR_tgkill.
7471 If pid is 0, set it to selftid.
7472 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
7473 Don't set self->pid but self->tid. If self->pid == 0 and self->tid
7474 != 0, return self->tid without doing a syscall.
7475 * descr.h (struct pthread): Move pid field after tid.
7476
7477 * Makefile (tests): Add tst-raise1.
7478 * tst-raise1.c: New file.
7479
432aaf5b
RM
74802003-12-23 Roland McGrath <roland@redhat.com>
7481
7482 * tst-oddstacklimit.c: New file.
7483 * Makefile (tests): Add it.
7484 (tst-oddstacklimit-ENV): New variable.
7485
7486 * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
7487 value up to page size for __default_stacksize.
7488
33ebea17
UD
74892003-12-21 Ulrich Drepper <drepper@redhat.com>
7490
7491 * Makefile (tests): Add tst-eintr5.
7492 * tst-eintr5.c: New file.
7493
7494 * eintr.c (eintr_source): Prevent sending signal to self.
7495
7496 * tst-eintr2.c (tf1): Improve error message.
7497
bbe35eb5
UD
74982003-12-20 Ulrich Drepper <drepper@redhat.com>
7499
7500 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
7501 * sysdeps/unix/sysv/linux/getpid.c: New file.
c0ecb80a
UD
7502 * pthread_cancel.c: Add comment explaining use of PID field.
7503 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
7504 * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
7505 * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
7506 temporarily to signal the field must not be relied on and updated
7507 by getpid().
7508 * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
7509 temporarily negative.
7510 * sysdeps/unix/sysv/linux/raise.c: Likewise.
bbe35eb5 7511
4efdd8d3
UD
75122003-12-19 Ulrich Drepper <drepper@redhat.com>
7513
7514 * eintr.c (setup_eintr): Add new parameter. Pass to thread function.
7515 (eintr_source): If ARG != NULL, use pthread_kill.
7516 * tst-eintr1.c: Adjust for this change.
7517 * tst-eintr2.c: Likewise.
7518 * Makefile (tests): Add tst-eintr3 and tst-eintr4.
7519 * tst-eintr3.c: New file.
7520 * tst-eintr4.c: New file.
7521
75222003-12-19 Jakub Jelinek <jakub@redhat.com>
7523
7524 * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
7525 if CANCELSTATE_BITMASK is set.
7526 * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
7527 Likewise.
7528
7529 * Makefile (tests): Add tst-cancel22 and tst-cancel23.
7530 (tests-reverse): Add tst-cancel23.
7531 * tst-cancel22.c: New test.
7532 * tst-cancel23.c: New test.
7533
675620f7
UD
75342003-12-18 Ulrich Drepper <drepper@redhat.com>
7535
7536 * tst-eintr1.c: Better error messages.
7537
7538 * Makefile (tests): Add tst-eintr2.
7539 * tst-eintr2.c: New file.
7540
75412003-12-18 Jakub Jelinek <jakub@redhat.com>
7542
7543 * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
7544 (CFLAGS-tst-cancelx21.c): Set.
7545 * tst-cancel21.c: New test.
7546 * tst-cancelx21.c: New test.
7547
7548 * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each
7549 comparison operand.
7550 (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
7551 _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations.
7552 * pt-longjmp.c: Include jmpbuf-unwind.h.
7553 (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
7554 _JMPBUF_UNWINDS. Adjust compared pointers.
7555 * init.c (__pthread_initialize_minimal_internal): Initialize
7556 pd->stackblock_size.
7557 * sysdeps/pthread/jmpbuf-unwind.h: Removed.
7558 * sysdeps/alpha/jmpbuf-unwind.h: New file.
7559 * sysdeps/i386/jmpbuf-unwind.h: New file.
7560 * sysdeps/powerpc/jmpbuf-unwind.h: New file.
7561 * sysdeps/s390/jmpbuf-unwind.h: New file.
7562 * sysdeps/sh/jmpbuf-unwind.h: New file.
7563 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
7564 * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2e5e031d 7565 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
675620f7
UD
7566 (_JMPBUF_CFA_UNWINDS): Remove.
7567 (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
7568
75692003-12-12 Jakub Jelinek <jakub@redhat.com>
7570
7571 * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
7572 (CFLAGS-tst-cancelx20.c): Set.
7573 * tst-cancel20.c: New test.
7574 * tst-cancelx20.c: New test.
7575
2d951ab6
UD
75762003-12-17 Ulrich Drepper <drepper@redhat.com>
7577
7578 * init.c (__pthread_initialize_minimal_internal): Don't treat
7579 architectures with separate register stack special here when
7580 computing default stack size.
7581
f8a3a2e7
RM
75822003-12-17 Roland McGrath <roland@redhat.com>
7583
7584 * Makefile (tst-cancelx7-ARGS): New variable.
7585 Reportd by Greg Schafer <gschafer@zip.com.au>.
7586
e796f92f
UD
75872003-12-17 Jakub Jelinek <jakub@redhat.com>
7588
7589 * Makefile (tests): Add tst-stack3. Depend on $(objpfx)tst-stack3-mem.
7590 (generated): Add tst-stack3.mtrace and tst-stack3-mem.
7591 (tst-stack3-ENV): Set.
7592 ($(objpfx)tst-stack3-mem): New.
7593 * tst-stack3.c: New test.
7594
092eb73c
UD
75952003-12-10 David Mosberger <davidm@hpl.hp.com>
7596
7597 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
7598 Add unwind directives. Drop unused .regstk directive.
7599 (_fini_EPILOG_BEGINS): Add unwind directives.
7600
ff48874d
UD
76012003-12-11 Ulrich Drepper <drepper@redhat.com>
7602
7603 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
7604 Assume parameter is a pointer.
7605 (lll_futex_wake): Likewise.
20945457
UD
7606 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
7607 Likewise.
7608 (lll_futex_wake): Likewise.
ff48874d
UD
7609 Reported by Boris Hu.
7610 * sysdeps/unix/sysv/linux/unregister-atfork.c
7611 (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
7612
7613 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
7614
1d9d0b80
UD
76152003-12-10 Ulrich Drepper <drepper@redhat.com>
7616
7617 * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
7618 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
7619 __rtld_lock_initialize for ld.so lock.
7620 Patch in part by Adam Li <adam.li@intel.com>.
7621
c776b3d7
UD
76222003-12-02 David Mosberger <davidm@hpl.hp.com>
7623
7624 * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
7625 in $(gnulib). Also, remove stale comment.
7626
76272003-11-12 David Mosberger <davidm@hpl.hp.com>
7628
7629 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
7630 advantage of new syscall stub and optimize accordingly.
7631
7632 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
7633 from SYS_futex, to match expectations of
7634 sysdep.h:DO_INLINE_SYSCALL.
7635 (lll_futex_clobbers): Remove.
7636 (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
7637 (lll_futex_wake): Likewise.
7638 (lll_futex_requeue): Likewise.
7639 (__lll_mutex_trylock): Rewrite to a macro, so we can include this
7640 file before DO_INLINE_SYSCALL is defined (proposed by Jakub
7641 Jelinek).
7642 (__lll_mutex_lock): Likewise.
7643 (__lll_mutex_cond_lock): Likewise.
7644 (__lll_mutex_timed_lock): Likewise.
7645 (__lll_mutex_unlock): Likewise.
7646 (__lll_mutex_unlock_force): Likewise.
7647
7648 * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
7649 comes before the include of <sysdep.h>.
7650 (THREAD_SELF_SYSINFO): New macro.
7651 (THREAD_SYSINFO): Likewise.
7652 (INIT_SYSINFO): New macro.
7653 (TLS_INIT_TP): Call INIT_SYSINFO.
7654
7655 * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
7656
7657 * sysdeps/pthread/createthread.c (create_thread): Use
7658 THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
7659 * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
7660 THREAD_SELF_SYSINFO instead of open code.
7661 * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
7662 (THREAD_SYSINFO): Likewise.
7663
7664 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
7665
7666 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
7667
57d20ee7
UD
76682003-12-06 Ulrich Drepper <drepper@redhat.com>
7669
7670 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
7671 instead of .init. Patch by David Mosberger.
7672
67aeab2a
AJ
76732003-11-30 Thorsten Kukuk <kukuk@suse.de>
7674
7675 * sysdeps/pthread/configure.in: Remove broken declaration in C
7676 cleanup handling check.
7677
8ca203e6
AJ
76782003-11-30 Andreas Jaeger <aj@suse.de>
7679
7680 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
7681 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
7682 Likewise.
7683
46bf9de7
UD
76842003-11-27 Jakub Jelinek <jakub@redhat.com>
7685
7686 * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
7687 * pthread_attr_destroy.c: Include shlib-compat.h.
7688 (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
7689 is set in iattr->flags.
7690 * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
7691
1d9b73ab
UD
76922003-11-21 Jakub Jelinek <jakub@redhat.com>
7693
7694 * Makefile (distribute): Add tst-cleanup4aux.c.
7695
7696 * tst-cond12.c (prepare): Add prototype. Move after test-skeleton.c
7697 include.
7698
53f9084e
UD
76992003-11-21 Ulrich Drepper <drepper@redhat.com>
7700
1d9b73ab
UD
7701 * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
7702 pthread_cond_signal.
7703
e42a990e
UD
7704 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
7705 store mutex address if the current value is ~0l.
7706 * sysdeps/pthread/pthread_cond_timedwait.c
7707 (__pthread_cond_timedwait): Likewise.
7708 * sysdeps/pthread/pthread_cond_broadcast.c
7709 (__pthread_cond_broadcast): Don't use requeue for pshared
7710 condvars.
7711
7712 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
7713 (__pthread_cond_wait): Don't store mutex address if the current
7714 value is ~0l.
7715 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
7716 (__pthread_cond_timedwait): Likewise.
7717 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
7718 (__pthread_cond_broadcast): Don't use requeue for pshared
7719 condvars.
7720
7721 * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
7722 element with ~0l for pshared condvars, with NULL otherwise.
7723
7724 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
7725 (__pthread_cond_wait): Don't store mutex address if the current
7726 value is ~0l.
7727 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
7728 (__pthread_cond_timedwait): Likewise.
7729 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
7730 (__pthread_cond_broadcast): Don't use requeue for pshared
7731 condvars.
7732
bf68b236 7733 * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
53f9084e 7734 * tst-cond12.c: New file.
bf68b236 7735 * tst-cond13.c: New file.
53f9084e 7736
9780c971
UD
77372003-11-17 Ulrich Drepper <drepper@redhat.com>
7738
7739 * sysdeps/pthread/configure.in: Make missing forced unwind support
7740 fatal.
7741
74e12fbc
UD
77422003-11-11 Ulrich Drepper <drepper@redhat.com>
7743
7744 * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
7745
c685b2b0
UD
77462003-11-06 Ulrich Drepper <drepper@redhat.com>
7747
7748 * Makefile: Add magic to clean up correctly.
7749
44e94149
UD
77502003-11-05 Jakub Jelinek <jakub@redhat.com>
7751
7752 * unwind.c (FRAME_LEFT): Define.
7753 (unwind_stop): Handle old style cleanups here.
7754 (__pthread_unwind): Handle old style cleanups only if
7755 !HAVE_FORCED_UNWIND.
7756 * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
7757 (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
7758 ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
7759 ($(objpfx)tst-cleanupx4): Likewise.
7760 * tst-cleanup4.c: New test.
7761 * tst-cleanup4aux.c: New.
7762 * tst-cleanupx4.c: New test.
7763
c28422b5
UD
77642003-11-04 Ulrich Drepper <drepper@redhat.com>
7765
7766 * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
7767 lll_mutex_*lock macros to skip atomic operations on some archs.
7768
27176677
UD
77692003-11-03 Ulrich Drepper <drepper@redhat.com>
7770
7771 * sysdeps/pthread/tst-timer.c (main): Initialize
7772 sigev2.sigev_value as well.
7773
026395a2
RM
77742003-10-15 Roland McGrath <roland@redhat.com>
7775
7776 * sysdeps/pthread/configure.in: Barf if visibility attribute support
7777 is missing.
7778 * sysdeps/pthread/configure: Regenerated.
7779
fa3cbe3d
UD
77802003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7781
7782 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
7783 locking macros. No distinction between normal and mutex locking
7784 anymore.
7785 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
7786 Merge bits from lowlevelmutex.S we still need.
7787 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
7788 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
7789 * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
7790 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
7791 new mutex implementation.
7792 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
7793 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
7794 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7795 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
7796 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
7797 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7798 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7799 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
7800 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7801 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
7802 symbol for entry point to avoid cancellation.
7803
e700a908
UD
78042003-10-07 Jakub Jelinek <jakub@redhat.com>
7805
7806 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
7807 changes.
7808 (SAVE_OLDTYPE_0): Fix a typo.
7809
c70a86b6
UD
78102003-10-03 Ulrich Drepper <drepper@redhat.com>
7811
7812 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
7813 Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
7814
134abcb5
UD
78152003-10-02 Ulrich Drepper <drepper@redhat.com>
7816
7817 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
7818 correct offset.
7819
b77ca0e8
UD
78202003-10-02 Jakub Jelinek <jakub@redhat.com>
7821
7822 * Makefile (tests): Add tst-cancel19.
7823 * tst-cancel19.c: New test.
7824
4d961dc7
UD
78252003-10-02 Ulrich Drepper <drepper@redhat.com>
7826
7827 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
7828 restoring of the old cancellation type.
7829
1d5b20ad 78302003-09-30 Jakub Jelinek <jakub@redhat.com>
94ae6d75 7831
1d5b20ad
UD
7832 * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
7833
4106a403
RM
78342003-09-27 Wolfram Gloger <wg@malloc.de>
7835
4d961dc7 7836 * sysdeps/pthread/malloc-machine.h: New file
94ae6d75 7837
fca9d8e4
RM
78382003-09-24 Roland McGrath <roland@redhat.com>
7839
7840 * allocatestack.c (__make_stacks_executable): Don't ignore return
7841 value from _dl_make_stack_executable.
7842
c9c60884
UD
78432003-09-24 Ulrich Drepper <drepper@redhat.com>
7844
69c9fa04
UD
7845 * allocatestack.c (__make_stacks_executable): Also change
7846 permission of the currently unused stacks.
7847
279f1143
UD
7848 * allocatestack.c (change_stack_perm): Split out from
7849 __make_stacks_executable.
7850 (allocate_stack): If the required permission changed between the time
7851 we started preparing the stack and queueing it, change the permission.
7852 (__make_stacks_executable): Call change_stack_perm.
7853
c9c60884
UD
7854 * Makefile: Build tst-execstack-mod locally.
7855 * tst-execstack-mod.c: New file.
7856
54ee14b3
UD
78572003-09-23 Jakub Jelinek <jakub@redhat.com>
7858
7859 * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
7860
78612003-09-23 Roland McGrath <roland@redhat.com>
7862
7863 * tst-execstack.c: New file.
7864 * Makefile (tests): Add it.
7865 ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
7866 (LDFLAGS-tst-execstack): New variable.
7867
7868 * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
7869 whether to use PROT_EXEC for stack mmap.
7870 (__make_stacks_executable): New function.
7871 * pthreadP.h: Declare it.
7872 * init.c (__pthread_initialize_minimal_internal): Set
7873 GL(dl_make_stack_executable_hook) to that.
7874
365b1602
UD
78752003-09-22 Ulrich Drepper <drepper@redhat.com>
7876
7877 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
7878 recommendation from AMD re avoidance of lock prefix.
7879
39358e8b
UD
78802003-09-22 Jakub Jelinek <jakub@redhat.com>
7881
7882 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
7883 lll_futex_timed_wait instead of lll_futex_wait.
7884 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
7885 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
7886 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
7887 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
7888 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
7889 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
7890 * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
7891 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
7892 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
7893 Completely revamp the locking macros. No distinction between
7894 normal and mutex locking anymore.
7895 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
7896 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
7897 __lll_lock_timedwait): Fix prototypes.
7898 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
7899 __lll_lock_timedwait): Likewise.
7900 (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
7901 macros, add __builtin_expect.
7902 (lll_mutex_timedlock): Likewise. Fix return value.
7903 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
7904 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
7905 * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
7906 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
7907 * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
7908 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
7909 * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
7910 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
7911
9d08fbbb
UD
79122003-09-22 Ulrich Drepper <drepper@redhat.com>
7913
c0df57e1
UD
7914 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
7915 (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
7916 operation if possible.
7917
9d08fbbb
UD
7918 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
7919 like jumping over the lock prefix.
7920
71451de2
UD
79212003-09-21 Ulrich Drepper <drepper@redhat.com>
7922
7923 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
7924 locking macros. No distinction between normal and mutex locking
7925 anymore.
3a226d33 7926 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
bc1989aa
UD
7927 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
7928 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
71451de2
UD
7929 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
7930 locking. Merge bits from lowlevelmutex.S we still need.
3a226d33 7931 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
bc1989aa 7932 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
71451de2 7933 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3a226d33 7934 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
71451de2
UD
7935 * Makefile (routines): Remove libc-lowlevelmutex.
7936 (libpthread-rountines): Remove lowlevelmutex.
3a226d33
UD
7937 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
7938 for new mutex implementation.
7939 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
7940 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7941 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7942 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
7943 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
7944 Likewise.
7945 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
7946 Likewise.
7947 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
7948 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
7949 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
7950 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
7951 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7952 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7953 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
7954 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
7955 Likewise.
7956 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
7957 Likewise.
7958 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
7959 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
7960 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
7961 Don't use requeue.
7962 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
bc1989aa 7963 * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
71451de2 7964
8f31c0ef
UD
79652003-09-20 Ulrich Drepper <drepper@redhat.com>
7966
56a4aa98
UD
7967 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
7968 in parameters of asm with output parameters.
7969
8f31c0ef
UD
7970 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
7971 type of DECR parameter to int.
7972 * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
7973
8b8074da
UD
79742003-09-18 Jakub Jelinek <jakub@redhat.com>
7975
7976 * tst-attr3.c (tf, do_test): Print stack start/end/size and
7977 guardsize for each thread.
7978
65af7e61
UD
79792003-09-17 Jakub Jelinek <jakub@redhat.com>
7980
9ba96eda
UD
7981 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
7982 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
7983 (pthread_attr_setaffinity_np): Handle cpuset == NULL.
7984
06f6ca90
UD
7985 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
7986 (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
7987 NULL.
7988 * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
7989 * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
7990 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
7991 (pthread_getaffinity_np): Add hidden_def.
7992
7993 * Makefile (tests): Add tst-attr3.
7994 * tst-attr3.c: New test.
7995
65af7e61
UD
7996 * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
7997
3402852c
UD
79982003-09-15 Jakub Jelinek <jakub@redhat.com>
7999
8000 * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
8001 CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
8002
a4db3439
UD
80032003-09-17 Jakub Jelinek <jakub@redhat.com>
8004
8005 * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
8006 * tst-align.c: Include tst-stack-align.h.
8007 (tf, do_test): Use TEST_STACK_ALIGN macro.
8008
80092003-09-17 Ulrich Drepper <drepper@redhat.com>
8010
8011 * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
8012 variable.
8013
92ce4676
UD
80142003-09-16 Ulrich Drepper <drepper@redhat.com>
8015
8016 * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
8017 stack-related values for the initial thread.
8018
e07bb02a
UD
80192003-09-15 Jakub Jelinek <jakub@redhat.com>
8020
8021 * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
8022
d087b5dc
UD
80232003-09-11 Ulrich Drepper <drepper@redhat.com>
8024
8025 * pthread_mutex_lock.c: Minor code rearrangements.
8026
7f08f55a
RM
80272003-09-05 Roland McGrath <roland@redhat.com>
8028
8029 * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
8030 Instead, include ../nptl_db/db_info.c to do its magic.
8031 * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
8032 (__pthread_pthread_key_2ndlevel_size): Likewise.
8033 * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
8034 * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
8035 * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
8036 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
8037 * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
8038 * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
8039 * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
8040 * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
8041 * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
8042 * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
8043 * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
8044 * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
8045 * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
8046 * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
8047 * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
8048 * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
8049 * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
8050
806e4a4a
UD
80512003-09-08 Ulrich Drepper <drepper@redhat.com>
8052
8053 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
8054 of pthread_t to be compatible with LT.
8055 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
8056 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
8057 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
8058 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
8059 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
8060 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
8061 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
8062
17f83e56
UD
80632003-09-04 Ulrich Drepper <drepper@redhat.com>
8064
8065 * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
8066
58e8ec84
UD
80672003-09-04 Jakub Jelinek <jakub@redhat.com>
8068
8069 * unwind-forcedunwind.c: Move to...
8070 * sysdeps/pthread/unwind-forcedunwind.c: ...here.
8071 (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
8072 * sysdeps/pthread/jmpbuf-unwind.h: New file.
8073 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
8074 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
8075 * unwind.c: Include jmpbuf-unwind.h.
8076 (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
8077
abf1cf21
JJ
80782003-09-02 Jakub Jelinek <jakub@redhat.com>
8079
4a244f0d
UD
8080 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
8081 * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
8082 pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
8083 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
8084 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
8085 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
8086 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
8087 * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
8088 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
8089 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
8090 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
8091 function.
8092 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
8093 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
8094 * Makefile (tests): Add tst-stack2.
8095 * tst-stack2.c: New test.
8096 * tst-stack1.c: Include limits.h and sys/param.h.
8097 (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
8098
e29ef647
UD
8099 * pthread_condattr_setpshared.c: Include errno.h.
8100 (pthread_condattr_setpshared): Return EINVAL if pshared
8101 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
8102
5777d565
UD
8103 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
8104 defined symbol for entry point to avoid cancellation.
8105 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
8106 Likewise.
8107 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
8108 Likewise.
8109 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
8110 Likewise.
8111 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
8112 Likewise.
8113 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
8114 Likewise.
8115 * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
8116 __close_nocancel, __read_nocancel, __write_nocancel,
8117 __waitpid_nocancel): Add attribute_hidden. If not in libc.so,
8118 libpthread.so or librt.so, define to corresponding function
8119 without _nocancel suffix.
8120 * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
8121 * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
8122 * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
8123
abf1cf21
JJ
8124 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
8125
8348dcc8
UD
81262003-09-02 Ulrich Drepper <drepper@redhat.com>
8127
8128 * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
1e03e0af 8129 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
8348dcc8
UD
8130
8131 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
8132 in subsections has a symbol associated with it.
8133
8134 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
8135 defined symbol for entry point to avoid cancellation.
8136 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
8137
c874a32e
UD
81382003-09-01 Jakub Jelinek <jakub@redhat.com>
8139
8140 * Makefile (tests): Add tst-tls5.
8141 (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
8142 ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
8143 ($(objpfx)tst-tls5): New.
8144 ($(objpfx)tst-tls6.out): Likewise.
8145 (tests): Depend on $(objpfx)tst-tls6.out.
8146 * tst-tls3.c: Include stdint.h and pthreaddef.h.
8147 (do_test): Check pthread_self () return value alignment.
8148 * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
8149 (tf): Check pthread_self () return value alignment.
8150 * tst-tls5.c: New test.
8151 * tst-tls5.h: New.
8152 * tst-tls5mod.c: New.
8153 * tst-tls5moda.c: New.
8154 * tst-tls5modb.c: New.
8155 * tst-tls5modc.c: New.
8156 * tst-tls5modd.c: New.
8157 * tst-tls5mode.c: New.
8158 * tst-tls5modf.c: New.
8159 * tst-tls6.sh: New test.
8160
c503d3dc
UD
8161 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
8162 ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
8163 * init.c (pthread_functions): Initialize them.
8164 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
8165 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
8166 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
8167 pthread_cond_timedwait@@GLIBC_2.3.2.
8168
48614753
JJ
81692003-09-01 Jakub Jelinek <jakub@redhat.com>
8170
56a1b877
JJ
8171 * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
8172 * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
8173 * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
8174 * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
8175 * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
8176 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
8177
8178 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
8179
48614753
JJ
8180 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
8181 _POSIX_THREAD_PRIORITY_SCHEDULING.
8182 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
8183
28c97261
UD
81842003-08-31 Ulrich Drepper <drepper@redhat.com>
8185
eef80cf8
UD
8186 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
8187 nested function, use static inline function from libio.h.
8188 Code by Richard Henderson.
8189
28c97261
UD
8190 * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
8191 weak.
8192
cd2fbe58
UD
81932003-08-30 Jakub Jelinek <jakub@redhat.com>
8194
8195 * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
8196 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
8197 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
8198 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
8199 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
8200 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
8201 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
8202 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
8203 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
8204 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
8205 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
8206 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
8207 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
8208 * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
8209 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
8210 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
8211 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
8212 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
8213 * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
8214 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
8215 * sysdeps/sparc/sparc32/pthreaddef.h: New file.
8216 * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
8217 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
8218 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
8219 * sysdeps/sparc/sparc64/pthreaddef.h: New file.
8220 * sysdeps/sparc/tls.h: New file.
8221 * sysdeps/sparc/tcb-offsets.sym: New file.
8222 * sysdeps/sparc/Makefile: New file.
8223 * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
8224 * init.c [__sparc__] (__NR_set_tid_address): Define.
8225
feda52c0
UD
82262003-08-29 Jakub Jelinek <jakub@redhat.com>
8227
8228 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
8229 _IO_release_lock): Define.
8230
7c868816
JJ
82312003-08-29 Jakub Jelinek <jakuB@redhat.com>
8232
0261d33f 8233 * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
7c868816
JJ
8234 sigemptyset before sigaddset. Reported by jreiser@BitWagon.com.
8235
68b9e1ae
UD
82362003-08-27 Ulrich Drepper <drepper@redhat.com>
8237
8238 * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
8239 (__pthread_cleanup_class): Add missing return types of member
8240 functions.
8241
13b3edfc
UD
82422003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
8243
8244 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
8245 (lll_mutex_unlock_force): Add memory barrier between store and futex
8246 syscall.
8247
bb606fbe
UD
82482003-08-25 Ulrich Drepper <drepper@redhat.com>
8249
8250 * tst-cancel4.c (do_test): Also unlink tempfname and remove
8251 tempmsg in first loop.
8252
ee4e5a3d
UD
82532003-08-18 Ulrich Drepper <drepper@redhat.com>
8254
8255 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
8256 _POSIX_THREAD_PRIORITY_SCHEDULING.
8257 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
8258
334fcf2a
UD
82592003-08-07 Jakub Jelinek <jakub@redhat.com>
8260
8261 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
8262 (__rtld_lock_default_lock_recursive,
8263 __rtld_lock_default_unlock_recursive): Define.
8264 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
8265 __rtld_lock_unlock_recursive): Define using
8266 GL(_dl_rtld_*lock_recursive).
8267 * init.c (__pthread_initialize_minimal_internal): Initialize
8268 _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
8269 Lock GL(_dl_load_lock) the same number of times as
8270 GL(_dl_load_lock) using non-mt implementation was nested.
8271
8272 * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
8273 * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
8274
a30fb2df
UD
82752003-08-06 Jakub Jelinek <jakub@redhat.com>
8276
8277 * tst-cancel17.c (do_test): Make len2 maximum of page size and
8278 PIPE_BUF.
8279
ce0d30a0
JJ
82802003-08-07 Jakub Jelinek <jakub@redhat.com>
8281
8282 * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
8283
9c988b83
UD
82842003-08-03 Jakub Jelinek <jakub@redhat.com>
8285
8286 * sysdeps/pthread/createthread.c (do_clone): Move error handling
8287 to first syscall error check. Move syscall error check for tkill
8288 into __ASSUME_CLONE_STOPPED #ifdef.
8289
5c5252bd
UD
82902003-08-02 Ulrich Drepper <drepper@redhat.com>
8291
f1205aa7
UD
8292 * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
8293 is not defined, do explicit synchronization.
8294 (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED
8295 is not defined also unlock pd->lock for non-debugging case in case
8296 it is necessary.
8297 * pthread_create.c (start_thread): Always get and release pd->lock
8298 if __ASSUME_CLONE_STOPPED is not defined.
8299 (start_thread_debug): Removed. Adjust users.
8300 * allocatestack.c (allocate_stack): Always initialize lock if
8301 __ASSUME_CLONE_STOPPED is not defined.
8302 * Makefile (tests): Add tst-sched1.
8303 * tst-sched1.c: New file.
8304
5c5252bd
UD
8305 * sysdeps/pthread/createthread.c (do_clone): Only use
8306 sched_setschduler and pass correct parameters.
8307
973d66e4
UD
83082003-07-31 Jakub Jelinek <jakub@redhat.com>
8309
8310 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
8311 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
8312 PTHREAD_STACK_MIN in comments.
8313
d347a4ab
UD
83142003-07-31 Jakub Jelinek <jakub@redhat.com>
8315
8316 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
8317 Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
8318 argument.
8319 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
8320 * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
8321 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
8322 (__pthread_cleanup_upto): Fix prototype.
8323 (_longjmp_unwind): Adjust caller.
8324 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
8325 Change second argument to const struct pointer.
8326 * tst-sem8.c (main): Remove unused s2 and s3 variables.
8327 * tst-sem9.c (main): Likewise.
8328 * unwind.c: Include string.h for strlen prototype.
8329
1b26e9a5
UD
83302003-07-31 Ulrich Drepper <drepper@redhat.com>
8331
8332 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
8333 (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
8334 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
8335 Define HAVE_CMOV.
8336 Patch by Nicholas Miell <nmiell@attbi.com>.
8337
adc12574
UD
83382003-07-30 Jakub Jelinek <jakub@redhat.com>
8339
8340 * init.c (__pthread_initialize_minimal_internal): Initialize
8341 GL(dl_init_static_tls).
8342 * pthreadP.h (__pthread_init_static_tls): New prototype.
8343 * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
8344 New functions.
8345 * Makefile (tests): Add tst-tls4.
8346 (modules-names): Add tst-tls4moda and tst-tls4modb.
8347 ($(objpfx)tst-tls4): Link against libdl and libpthread.
8348 ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
8349 tst-tls4modb.so.
8350 * tst-tls4.c: New file.
8351 * tst-tls4moda.c: New file.
8352 * tst-tls4modb.c: New file.
8353
a7f6c66e
RM
83542003-06-19 Daniel Jacobowitz <drow@mvista.com>
8355
8356 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
8357 before __timer_dealloc.
8358 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
8359 Don't call list_unlink.
8360
172ce013
RM
83612003-07-29 Roland McGrath <roland@redhat.com>
8362
8363 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
8364
7b787f85
UD
83652003-07-25 Jakub Jelinek <jakub@redhat.com>
8366
8367 * tst-cancel17.c (do_test): Check if aio_cancel failed.
8368 Don't reuse struct aiocb A if it failed.
8369 Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
8370 not just one byte, as that does not block.
8371
0e9d6240
UD
83722003-07-22 Jakub Jelinek <jakub@redhat.com>
8373
9d79e037
UD
8374 * sysdeps/pthread/unwind-resume.c: New file.
8375 * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
8376 unwind-resume in csu subdir.
8377 (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
8378 exceptions.
8379 (librt-sysdep_routines, librt-shared-only-routines): Add
8380 rt-unwind-resume.
8381 * sysdeps/pthread/rt-unwind-resume.c: New file.
8382 * unwind-forcedunwind.c: New file.
8383 * Makefile (libpthread-routines): Add unwind-forcedunwind.
8384 (libpthread-shared-only-routines): Likewise.
8385 (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
8386 * pthreadP.h (pthread_cancel_init): New prototype.
8387 * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
8388
8389 * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
8390 attr argument const struct pthread_attr *.
8391
0e9d6240
UD
8392 * res.c (__res_state): Return __resp.
8393 * descr.h: Include resolv.h.
8394 (struct pthread): Add res field.
8395 * pthread_create.c: Include resolv.h.
8396 (start_thread): Initialize __resp.
8397 * Makefile (tests): Add tst-_res1.
8398 (module-names): Add tst-_res1mod1, tst-_res1mod2.
8399 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
8400 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
8401 libpthread.
8402 * tst-_res1.c: New file.
8403 * tst-_res1mod1.c: New file.
8404 * tst-_res1mod2.c: New file.
8405
1a379ea0
UD
84062003-07-21 Ulrich Drepper <drepper@redhat.com>
8407
7e939b21
UD
8408 * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
8409
1a379ea0
UD
8410 * Makefile: Define various *-no-z-defs variables for test DSOs
8411 which has undefined symbols.
8412
ca86a763
UD
84132003-07-21 Steven Munroe <sjmunroe@us.ibm.com>
8414
8415 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
8416 Retry if the stwcx fails to store once_control.
8417
80f536db
UD
84182003-07-20 Ulrich Drepper <drepper@redhat.com>
8419
8420 * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
8421 pthread_attr_setaffinity.
8422 * Versions [libpthread] (GLIBC_2.3.3): Likewise.
8423 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
8424 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
8425 * pthread_attr_destroy.c: Free cpuset element if allocated.
8426 * pthread_create.c: Pass iattr as additional parameter to
8427 create_thread.
8428 * sysdeps/pthread/createthread.c: If attribute is provided and
8429 a new thread is created with affinity set or scheduling parameters,
8430 start thread with CLONE_STOPPED.
8431 * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
8432 pthread_attr_setaffinity.
8433 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
8434 cpuset element.
8435
73299943
UD
84362003-07-15 Ulrich Drepper <drepper@redhat.com>
8437
8438 * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
8439
da35d15e
UD
84402003-07-14 Ulrich Drepper <drepper@redhat.com>
8441
8442 * sysdeps/pthread/configure.in: Require CFI directives also for
8443 ppc and s390.
8444
75540d8a
UD
84452003-07-15 Jakub Jelinek <jakub@redhat.com>
8446
8447 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
8448 Add cfi directives.
8449
4a17085f
UD
84502003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
8451
8452 * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
8453 CLEANUP_JMP_BUF.
8454 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
8455 registers as variables. Call __pthread_mutex_unlock_usercnt.
8456 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
8457 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
8458 not self pointer in __writer. Compare with TID to determine
8459 deadlocks.
8460 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
8461 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
8462 Likewise.
8463 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
8464 Likewise.
8465 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
8466 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
8467 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
8468 macros also when compiling librt.
8469
6080ecdf
UD
84702003-07-11 Jakub Jelinek <jakub@redhat.com>
8471
8472 * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
8473 -fasynchronous-unwind-tables.
8474 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
8475 (PSEUDO): Add cfi directives.
8476 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
8477 Likewise.
8478 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
8479 Likewise.
8480
da0c02ee
UD
84812003-07-08 Jakub Jelinek <jakub@redhat.com>
8482
8483 * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
8484 __pthread_unregister_cancel): Add prototypes and hidden_proto.
8485 * unwind.c (__pthread_unwind_next): Add hidden_def.
8486 * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
8487 Likewise.
8488 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
8489 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
8490 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
8491 Likewise.
8492 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
8493 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
8494 Likewise.
8495 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
8496 HIDDEN_JUMPTARGET to call __pthread_register_cancel,
8497 __pthread_unregister_cancel and __pthread_unwind_next.
8498
57a5ea02
UD
84992003-07-04 Jakub Jelinek <jakub@redhat.com>
8500
8501 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
8502 different symbol for the cancellation syscall wrapper and
8503 non-cancellation syscall wrapper.
8504 (PSEUDO_END): Define.
8505
d810b358
UD
85062003-07-05 Richard Henderson <rth@redhat.com>
8507
8508 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
8509 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
42d86dd6
RH
8510 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
8511 return actual return value from the syscall, not 0.
d810b358 8512
db54f488
UD
85132003-07-07 Ulrich Drepper <drepper@redhat.com>
8514
8515 * descr.h (struct pthread): Add pid field.
8516 * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
8517 (__reclaim_stacks): Likewise.
8518 * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
8519 also check for PID of the signal source.
8520 (__pthread_initialize_minimal_internal): Also initialize pid field
8521 of initial thread's descriptor.
8522 * pthread_cancel.c: Use tgkill instead of tkill if possible.
8523 * sysdeps/unix/sysv/linux/fork.c: Likewise.
8524 * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
8525 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
8526 * sysdeps/unix/sysv/linux/raise.c: Likewise.
8527
5e497a41
UD
85282003-07-05 Ulrich Drepper <drepper@redhat.com>
8529
8530 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
8531 Fix use of parameter.
8532 (__libc_cleanup_pop): Likewise.
8533
86a0c4fa
UD
85342003-07-04 Ulrich Drepper <drepper@redhat.com>
8535
8536 * init.c (sigcancel_handler): Change parameters to match handler
8537 for SA_SIGACTION. Check signal number and code to recognize
8538 invalid invocations.
8539
bdbecaa3
RM
85402003-07-03 Roland McGrath <roland@redhat.com>
8541
8542 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
8543 Apply sizeof (struct pthread) bias to r13 value.
8544
56421b23
UD
85452003-07-03 Ulrich Drepper <drepper@redhat.com>
8546
fbd90f6c
UD
8547 * sysdeps/pthread/configure.in: Require CFI directives.
8548
56421b23
UD
8549 * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
8550 definition.
8551 * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
8552 libpthread compilation.
8553 * unwind.c (__pthread_unwind): Add hidden_def.
8554 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
8555
ca2b4cd7
UD
85562003-07-01 Ulrich Drepper <drepper@redhat.com>
8557
8558 * libc-cancellation.c (__libc_cleanup_routine): Define.
8559 * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
8560 (__pthread_cleanup_pop): Define.
8561
f036e569
UD
85622003-07-01 Richard Henderson <rth@redhat.com>
8563
8564 * sysdeps/alpha/elf/pt-initfini.c: New file.
8565 * sysdeps/alpha/pthread_spin_lock.S: New file.
8566 * sysdeps/alpha/pthread_spin_trylock.S: New file.
8567 * sysdeps/alpha/pthreaddef.h: New file.
8568 * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
8569 * sysdeps/alpha/tls.h: New file.
8570 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
8571 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
8572 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
8573 * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
8574 * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
8575 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
8576 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
8577 * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
8578 * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
8579 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
8580
3b985826
UD
85812003-07-01 Ulrich Drepper <drepper@redhat.com>
8582
8583 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
8584 cleanup support and unwind info.
8585
3a4d1e1e
UD
85862003-06-30 Ulrich Drepper <drepper@redhat.com>
8587
8588 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
8589 Use correct cleanup handler registration. Add unwind info.
96c814d3
UD
8590 * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
8591 * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3a4d1e1e
UD
8592 * tst-once3.c: Add cleanup handler and check it is called.
8593 * tst-once4.c: Likewise.
8594 * tst-oncex3.c: New file.
8595 * tst-oncex4.c: New file.
8596 * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
8597
e479cc8e
UD
85982003-06-29 Ulrich Drepper <drepper@redhat.com>
8599
8600 * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
8601
7d7ff54c
UD
86022003-06-27 Ulrich Drepper <drepper@redhat.com>
8603
483e95d0
UD
8604 * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
8605 (tf_msgsnd): Likewise.
8606
7d7ff54c
UD
8607 * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
8608 premature returns a bit more.
8609
7539c7ec
UD
86102003-06-26 Ulrich Drepper <drepper@redhat.com>
8611
8612 * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
8613 definition to the front.
8614
8615 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
8616 the cleanup functions to make the names unique. Fix dwarf opcode
8617 un unwind table.
8618 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
8619 functions to make the names unique. Fix CFA offset for two blocks.
8620
0af6a1d9
UD
86212003-06-25 Ulrich Drepper <drepper@redhat.com>
8622
8623 * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
8624 missing closing braces.
8625 Patch by Christophe Saout <christophe@saout.de>.
8626
eef4a9f3
RM
86272003-06-24 Roland McGrath <roland@redhat.com>
8628
8629 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
8630
4165d44d
UD
86312003-06-24 Ulrich Drepper <drepper@redhat.com>
8632
7f8f7b9d
UD
8633 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
8634 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
8635
4165d44d
UD
8636 * pthreadP.h: Declare __find_thread_by_id.
8637 * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
8638 * pthread_clock_gettime.c: Allow using other thread's clock.
8639 * pthread_clock_settime.c: Likewise.
8640 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
8641 * Makefile: Add rules to build and run tst-clock2.
8642 * tst-clock2.c: New file.
8643
67b78ef9
UD
86442003-06-23 Ulrich Drepper <drepper@redhat.com>
8645
8646 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
8647 to use exception-based cleanup handler.
8648 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8649
8650 * tst-cond8.c (ch): Announce that we are done.
8651
8652 * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
8653
8654 * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
8655 Also test aio_suspend with timeout value.
8656
61623643
UD
86572003-06-22 Ulrich Drepper <drepper@redhat.com>
8658
3a4f2043
UD
8659 * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
8660 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
8661 attribute_hidden.
8662
61623643
UD
8663 * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
8664 (__pthread_mutex_lock_internal): Likewise.
8665 (__pthread_mutex_unlock_internal): Likewise.
8666 (__pthread_mutex_unlock_usercnt): Declare.
8667 * pthread_mutex_destroy.c: Always fail if used in any way.
8668 * pthread_mutex_init.c: Update comment.
8669 * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
8670 * pthread_mutex_timedlock.c: Adjust __nusers.
8671 * pthread_mutex_trylock.c: Adjust __nusers.
8672 * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
8673 and public interfaces are wrapper with pass additional parameter.
8674 __pthread_mutex_unlock_usercnt does not adjust __nusers if second
8675 parameter zero.
8676 * tst-mutex8.c: New file.
8677 * Makefile (tests): Add tst-mutex8.
8678 * sysdeps/pthread/pthread_cond_timedwait.c: Call
8679 __pthread_mutex_unlock_usercnt.
8680 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
8681 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8682 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8683 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
8684 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
8685 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
8686 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
8687 Add __nusers.
8688 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
8689 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
8690 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
8691 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
8692 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
8693
8694 * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
8695 * pthread_mutex_timedlock.c: Likewise.
8696 * pthread_mutex_trylock.c: Adjust __nusers.
8697 * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
8698 * tst-mutex9.c: New file.
8699 * Makefile (tests): Add tst-mutex9.
8700 * sysdeps/i386/tls.h: Remove THREAD_ID definition.
8701 * sysdeps/ia64/tls.h: Likewise.
8702 * sysdeps/powerpc/tls.h: Likewise.
8703 * sysdeps/s390/tls.h: Likewise.
8704 * sysdeps/sh/tls.h: Likewise.
8705 * sysdeps/x86_64/tls.h: Likewise.
8706 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
8707 Change type of __owner.
8708 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
8709 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
8710 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
8711 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
8712 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
8713
9bdabb94
UD
87142003-06-19 Jakub Jelinek <jakub@redhat.com>
8715
8716 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
8717 * sysdeps/unix/sysv/linux/sem_post.c: ...here.
8718
8719 * sysdeps/unix/sysv/linux/sem_post.c: Move to...
8720 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
8721 instead of nr to lll_futex_wake. Only set errno and return -1
8722 if err < 0.
8723
8724 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
8725 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
8726 return actual return value from the syscall, not 0.
8727
f6c93bd9
UD
87282003-06-18 Ulrich Drepper <drepper@redhat.com>
8729
ca343e73
UD
8730 * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
8731 find a random value.
8732 (tf_msgrcv): Likewise. Also don't report msgrcv returns if
8733 errno==EIDRM.
8734
50441a98
UD
8735 * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
8736 compat_timer_settime.
8737 * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
8738 compat_timer_gettime.
8739 * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
9bdabb94 8740 compat_timer_getoverrun.
50441a98
UD
8741 * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
8742 compat_timer_delete.
8743
f6c93bd9
UD
8744 * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
8745 error-checking mutex detect busy mutexes.
8746
047aec8f
UD
87472003-06-17 Ulrich Drepper <drepper@redhat.com>
8748
1d53508d
UD
8749 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
8750 Add ax to clobber list.
8751 (lll_mutex_cond_lock): Likewise.
8752 (lll_mutex_unlock): Likewise.
8753 (lll_lock): Likewise.
8754 (lll_unlock): Likewise.
8755
f23b30e2
UD
8756 * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
8757 * tst-cancel18.c: New file.
8758 * tst-cancelx18.c: New file.
8759
8760 * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
8761 and tcdrain.
8762
8763 * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
8764 * tst-cancel17.c: New file.
8765 * tst-cancelx17.c: New file.
8766
8767 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
8768 * sysdeps/unix/sysv/linux/sigwait.c: New file.
8769 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
8770
047aec8f
UD
8771 * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
8772
bbde8527
UD
87732003-06-16 Jakub Jelinek <jakub@redhat.com>
8774
8775 * sysdeps/pthread/createthread.c (create_thread): Set
8776 header.multiple_threads unconditionally.
8777 * allocatestack.c (allocate_stack): Likewise.
8778 * descr.h (struct pthread): Add header.multiple_threads
8779 unconditionally.
8780 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
8781 Define for librt. #error if neither libpthread, libc nor librt.
8782 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
8783 Likewise.
8784 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
8785 CDISABLE): Likewise.
8786 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
8787 CDISABLE): Likewise.
8788 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
8789 CDISABLE): Likewise.
8790 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
8791 CDISABLE): Likewise. Access header.multiple_threads outside of
8792 libc and libpthread.
8793 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
8794 Likewise.
8795 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
8796 * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
8797
26676450
UD
87982003-06-17 Ulrich Drepper <drepper@redhat.com>
8799
8800 * tst-cancel4.c: Add tests for the socket and signal functions, pause.
8801 Also test early cancellation before the thread reaches the cancellation
8802 point.
8803
8804 * Makefile: Compile forward.c with exceptions.
8805
8806 * sysdeps/unix/sysv/linux/sleep.c: New file.
8807
301a6724
UD
88082003-06-16 Ulrich Drepper <drepper@redhat.com>
8809
0e0deb03
UD
8810 * Makefile: Add CFLAGS definition to compile function wrappers
8811 duplicated from libc with exceptions.
8812 * tst-cancel4.c: Also check cancellation handlers.
8813
301a6724
UD
8814 * Makefile: Add rules to build and run tst-cancel16 and
8815 tst-cancelx16. Add missing CFLAGS definitions.
8816 * tst-cancel16.c: New file.
8817 * tst-cancelx16.c: New file.
8818
7a114794
UD
88192003-06-15 Ulrich Drepper <drepper@redhat.com>
8820
452aea84
UD
8821 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
8822 (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
8823 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
8824 (DL_SYSINFO_IMPLEMENTATION): Likewise.
8825
7a114794
UD
8826 * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
8827 (LIBC_CANCEL_RESET): Likewise.
8828 Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
8829 * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
8830 librt-cancellation.
8831 (CFLAGS-libcrt-cancellation.c): Define.
8832 * sysdeps/pthread/librt-cancellation.c: New file.
8833 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
8834 macros also when compiling librt.
8835 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
8836 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
8837 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
8838 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
8839 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
8840 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
8841 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
8842
8843 * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
8844 compat_timer_create.
8845
8ba1d429
UD
88462003-06-14 Ulrich Drepper <drepper@redhat.com>
8847
cc8fb6f3
UD
8848 * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
8849
8ba1d429
UD
8850 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
8851 __register_atfork.
8852 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
8853 Add libc_hidden_def.
8854
d4f100e2
RM
88552003-06-13 Roland McGrath <roland@redhat.com>
8856
8857 * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
8858 constant from <sys/reg.h> to ps_get_thread_area, not register contents.
8859
dd9423a6
UD
88602003-06-11 Ulrich Drepper <drepper@redhat.com>
8861
8862 * allocatestack.c (queue_stack): Always inline.
8863 * ptreadhP.h (__do_cancel): Likewise.
8864
ed24330d
JJ
88652003-06-10 Jakub Jelinek <jakub@redhat.com>
8866
8867 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
8868 a typo.
8869
06120d79
UD
88702003-06-10 Ulrich Drepper <drepper@redhat.com>
8871
8872 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
8873 (__pthread_cond_signal): Remove incorrect second addition for
8874 cond_lock!=0.
8875
b1720346
UD
88762003-06-09 Ulrich Drepper <drepper@redhat.com>
8877
5b318f85
UD
8878 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
8879 (__pthread_cond_signal): Use correct futex pointer in
8880 __lll_mutex_lock_wait call.
8881
b1720346
UD
8882 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
8883 (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
8884
3e36c37d
UD
88852003-06-08 Ulrich Drepper <drepper@redhat.com>
8886
ecf7955d
UD
8887 * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
8888 cancelable.
ed24330d 8889 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
ecf7955d
UD
8890 Likewise.
8891
3e36c37d
UD
8892 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
8893 hand-written CFI generation code. Since ENTRY/END also initiated
8894 CFI frames this caused two CFI sets to be generated.
8895
7726edc2
UD
88962003-06-07 Ulrich Drepper <drepper@redhat.com>
8897
8898 * cleanup_routine.c: New file.
8899 * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
8900 * sysdeps/pthread/pthread.h: Add support for fully exception-based
8901 cleanup handling.
8902 * Makefile (libpthread-routines): Add cleanup_routine.
8903 Add more CFLAGS variables to compile with exceptions. Add comments
8904 why which file needs unwind tables.
8905 (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
8906 tests.
8907 * tst-cancelx1.c: New file.
8908 * tst-cancelx2.c: New file.
8909 * tst-cancelx3.c: New file.
8910 * tst-cancelx4.c: New file.
8911 * tst-cancelx5.c: New file.
8912 * tst-cancelx6.c: New file.
8913 * tst-cancelx7.c: New file.
8914 * tst-cancelx8.c: New file.
8915 * tst-cancelx9.c: New file.
8916 * tst-cancelx10.c: New file.
8917 * tst-cancelx11.c: New file.
8918 * tst-cancelx12.c: New file.
8919 * tst-cancelx13.c: New file.
8920 * tst-cancelx14.c: New file.
8921 * tst-cancelx15.c: New file.
8922 * tst-cleanupx0.c: New file.
8923 * tst-cleanupx0.expect: New file.
8924 * tst-cleanupx1.c: New file.
8925 * tst-cleanupx2.c: New file.
8926 * tst-cleanupx3.c: New file.
8927
8928 * tst-cleanup0.c: Make standard compliant.
8929 * tst-cleanup1.c: Likewise.
8930
8931 * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
8932 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
8933 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8934 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
8935 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
8936 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8937 * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
8938 CLEANUP_JMP_BUF.
8939 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
8940 * tst-cancel12.c: New file.
8941 * tst-cancel13.c: New file.
8942 * tst-cancel14.c: New file.
8943 * tst-cancel15.c: New file.
8944 * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
8945 and tst-cancel15.
8946
8947 * tst-cancel1.c: Add some comments.
8948
8949 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
8950 timeout correctly.
8951
7a8a8e21
UD
89522003-06-06 Ulrich Drepper <drepper@redhat.com>
8953
8954 * Makefile (CFLAGS-pthread_cancel.c): Define.
8955
4ad0bbf4
UD
89562003-06-05 Ulrich Drepper <drepper@redhat.com>
8957
8958 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
8959 Change type of __writer element to int.
8960 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
8961 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
8962 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
8963 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
8964 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
8965 * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
8966 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
8967 * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
8968 Compare with TID to determine deadlocks.
8969 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
8970 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
8971 * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
8972 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
8973 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8974 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8975 Likewise.
8976 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8977 Likewise.
8978 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8979 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
8980 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
8981 Likewise.
8982 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
8983 Likewise.
8984 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
8985 * Makefile (tests): Add tst-rwlock12.
8986 * tst-rwlock12.c: New file.
8987
332faa96
JJ
89882003-06-05 Jakub Jelinek <jakub@redhat.com>
8989
8990 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
8991 __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
8992 Remove bogus hidden_proto.
8993 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
8994 Likewise.
8995 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
8996 lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
8997 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
8998 ___lll_mutex_timedlock): Likewise.
8999
29d9e2fd
UD
90002003-06-04 Ulrich Drepper <drepper@redhat.com>
9001
9002 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
9003 (__pthread_cond_signal): Add some code to eventually handle
9004 cond_lock!=0.
9005
6f1acb30
UD
90062003-06-01 Ulrich Drepper <drepper@redhat.com>
9007
9008 * Makefile (tests): Add tst-exec4.
9009 (tst-exec4-ARGS): Define.
9010 * tst-exec4.c: New file.
9011
49b65043
UD
90122003-05-31 Ulrich Drepper <drepper@redhat.com>
9013
31195be2
UD
9014 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
9015 Also fail if tv_nsec < 0.
9016 (__lll_timedwait_tid): Likewise.
9017 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
9018 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
9019 Likewise.
9020 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
9021 Likewise.
9022 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
9023 Likewise.
9024 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
9025 Likewise.
80b54217
UD
9026 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
9027 Likewise.
9028 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
9029 Likewise.
31195be2 9030
dcfc8224
UD
9031 * Makefile (tests): Add tst-sem8 and tst-sem9.
9032 * tst-sem8.c: New file.
9033 * tst-sem9.c: New file.
9034 * sem_open.c: Fix creation of in_use record if the file exists but
9035 no internal record.
9036
49b65043
UD
9037 * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
9038 definitions.
9039
9040 * sysdeps/pthread/timer_create.c (timer_create): In case
9041 evp==NULL, assign timer ID to sival_ptr.
9042
9043 * descr.h (struct pthread_unwind_buf): Change type of prev element to
9044 struct pthread_unwind_buf *.
9045 (struct pthread): Likewise for cleanup_jmp_buf element.
9046
9047 * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
9048 * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
9049 * unwind.c (__pthread_unwind_next): Likewise.
9050
50794a45
UD
90512003-05-30 Ulrich Drepper <drepper@redhat.com>
9052
5d4f57bd
UD
9053 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
9054 (lll_futex_timed_wait): Use int for futex value parameter.
9055 (lll_futex_wake): Likewise.
9056 (lll_futex_requeue): Likewise.
9057
9058 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
9059 Replace one memory operation with one register operation.
9060
9061 * tst-join4.c (do_test): Fix error message.
9062
7ab7ea33
UD
9063 * tst-rwlock6.c (do_test): Use correct format specifier.
9064
9065 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
9066 (__lll_mutex_lock_wait): Replace one memory operation with one
9067 register operation.
9068 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
9069 (__lll_mutex_lock_wait): Likewise.
9070
50794a45
UD
9071 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
9072 (__lll_mutex_cond_lock): Add one to value parameter of
9073 __lll_lock_wait to reflect reality in the futex syscall.
9074 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
9075 (lll_mutex_cond_lock): Likewise.
9076
5a70784e
JJ
90772003-05-30 Jakub Jelinek <jakub@redhat.com>
9078
9079 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
9080 New function.
9081 (lll_mutex_cond_lock): Define.
9082
e7c5ac68
UD
90832003-05-29 Ulrich Drepper <drepper@redhat.com>
9084
586d1748
UD
9085 * Makefile (tests): Add tst-signal6.
9086 * tst-signal6.c: New file.
9087
b8ba4a27
UD
9088 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
9089 (__lll_mutex_unlock_force): New function
9090 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
9091
65d46efe
UD
9092 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
9093 (__lll_mutex_unlock_force): New function.
9094 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
9095
9096 * tst-rwlock7.c (do_test): Use correct format specifier.
9097
e7c5ac68
UD
9098 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
9099 Find break parameter in correct asm argument.
9100
284bdc42
UD
91012003-05-27 Jakub Jelinek <jakub@redhat.com>
9102
9103 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
9104 Remove out4.
9105 (lll_futex_requeue): Fix __o3 constraint, return negative errno if
9106 error occured.
9107 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
9108 Add __mutex.
9109 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
9110 lll_futex_requeue, lll_mutex_unlock_force): Define.
9111
e7c5ac68
UD
91122003-05-30 Jakub Jelinek <jakub@redhat.com>
9113
9114 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
9115 (pthread_cond_t): Add __mutex.
9116 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
9117 lll_futex_requeue, lll_mutex_unlock_force): Define.
9118
ea2630c6
UD
91192003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
9120
9121 * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
9122 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
42d86dd6 9123 Add __mutex field.
ea2630c6
UD
9124 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
9125 Define.
9126 (lll_futex_wait, lll_futex_wake): Define.
9127 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
9128 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
9129 FUTEX_REQUEUE instead of FUTEX_WAIT.
9130 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
9131 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
9132 mutex which was used in condvar structure. Call
9133 __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
9134 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
9135
9136 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
9137 include tcb-offsets.h. Read wakeup value in locked region.
9138 Use the value of gbr register as THREAD_ID.
9139 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
9140 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
9141 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
9142
9143 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
9144 macros.
9145
5a77f150
UD
91462003-05-28 Ulrich Drepper <drepper@redhat.com>
9147
9148 * sysdeps/pthread/pthread_cond_broadcast.c
9149 (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
9150
7661d9f7
UD
91512003-05-26 Ulrich Drepper <drepper@redhat.com>
9152
9153 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
9154 typo in register name.
9155 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
9156 correctly. Actually use requeue. Little optimization.
9157 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
9158 mutex address early. Handle cancellation state as 32-bit value.
9159 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
9160 Remove unnecessary label.
9161
69431c9a
UD
91622003-05-25 Ulrich Drepper <drepper@redhat.com>
9163
9164 * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
9165 instead of FUTEX_WAIT.
9166 * sysdeps/pthread/pthread_cond_signal.c: Likewise.
9167 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
9168 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
9169 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
9170 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
9171 * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
9172 used in condvar structure. Call __pthread_mutex_cond_lock instead
9173 of __pthread_mutex_lock_internal.
9174 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9175 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
9176 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
9177 (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
9178 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
9179 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
9180 * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
9181 Add pthread_mutex_cond_lock.
9182 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
9183 * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
9184 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
9185 lll_mutex_cond_lock.
9186 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
9187 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
248a3490 9188 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
69431c9a 9189 Add __mutex field.
248a3490 9190 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
69431c9a
UD
9191 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
9192
9193 * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
9194 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
9195
9196 * pthreadP.h: Declare __pthread_mutex_cond_lock.
9197 * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
9198 Use it instead of lll_mutex_lock. If __pthread_mutex_lock is a
9199 macro don't define aliases.
9200
9201 * cancellation.c: Remove __pthread_enable_asynccancel_2.
9202 * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
9203 * sysdeps/pthread/pthread_cond_timedwait.c: Use
9204 __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
9205 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9206 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
9207 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
9208 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
9209 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
9210
fddfebbd
UD
92112003-05-17 Ulrich Drepper <drepper@redhat.com>
9212
9213 * sem_open.c: Fix one endless loop. Implement correct semantics
9214 wrt opening the same semaphore more then once.
9215 * sem_close.c: Adjust for sem_open change.
9216 * semaphoreP.h: Include <semaphore.h>. Define struct inuse_sem.
9217 Declare __sem_mappings, __sem_mappings_lock, __sem_search.
9218 * Makefile (tests): Add tst-sem7.
9219 * tst-sem7.c: New file.
9220
1eefffb0
RM
92212003-05-16 Roland McGrath <roland@redhat.com>
9222
9223 * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
9224 uninitialized variable braino.
9225
6e66dc78
UD
92262003-05-16 Ulrich Drepper <drepper@redhat.com>
9227
23ae6451
UD
9228 * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
9229 test for syscall availability.
9230
9231 * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
9232 __no_posix_timers to -1 if the syscalls don't exist.
9233
7ac5b8e2
UD
9234 * pthread_join.c (pthread_join): Set tid field of the joined
9235 thread to -1. This isn't necessary but helps to recognize some
9236 error conditions with almost no cost.
9237
9238 * allocatestack.c (FREE_P): Also negative values indicate an
9239 unused stack.
9240
6e66dc78
UD
9241 * unwind.c: Include <unistd.h>.
9242
855dba3c
UD
92432003-05-14 Ulrich Drepper <drepper@redhat.com>
9244
9245 * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
9246
81f3ac4c
UD
92472003-05-14 Jakub Jelinek <jakub@redhat.com>
9248
9249 * Makefile (crti-objs, crtn-objs): New variables.
9250 (omit-deps, extra-objs): Add crtn.
9251 ($(objpfx)libpthread.so): Depend on both crti and crtn
9252 and links to them in multidir.
9253 ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
9254
7158eae4
UD
92552003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
9256
9257 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
9258 (lll_mutex_unlock): Use atomic_exchange_rel.
9259
edf205d5
UD
92602003-05-11 Ulrich Drepper <drepper@redhat.com>
9261
9262 * cond-perf.c (cons): Add missing locking around setting of alldone.
9263
a3f979a7
UD
92642003-05-10 Ulrich Drepper <drepper@redhat.com>
9265
9266 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
9267 related macros.
9268 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
9269
880867a4
UD
92702003-05-09 Ulrich Drepper <drepper@redhat.com>
9271
949ec764
UD
9272 * tst-sem6.c: New file.
9273 * Makefile (tests): Add tst-sem6.
9274
9275 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
9276 Use atomic_exchange_rel instead of atomic_exchange.
9277 * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
9278 Likewise.
9279
9280 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
9281 code for lll_futex_wait and lll_futex_wake in static apps. Use
9282 vsyscall is possible.
9283
9284 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
9285 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
9286 * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
9287 pthread_setaffinity_np.
9288 * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
9289 and pthread_setaffinity_np.
9290 * Makefile (libpthread-routines): Add pthread_getaffinity and
9291 pthread_setaffinity.
9292
880867a4
UD
9293 * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
9294 use it in case mmap to allocate the stack fails.
9295 * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
9296 ARCH_MAP_FLAGS here.
9297 * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
9298 ARCH_RETRY_MMAP.
9299
92d83c72
UD
93002003-05-08 Ulrich Drepper <drepper@redhat.com>
9301
9302 * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
9303 handler implementation. It is now lockless in fork().
9304 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
9305 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
9306 * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>. Don't
9307 declare the __fork_*_lists.
9308 (struct fork_handler): Include pointers to all three functions.
9309 Add next, refcntr and need_signal elements.
9310 (__fork_handlers): New declaration.
9311 (__register_atfork_malloc): Remove declaration.
9312 (HAVE_register_atfork_malloc): Remove definition.
9313 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
9314 __pthread_child_handler variable.
9315 (__libc_pthread_init): Use __register_atfork instead of explicitly
9316 adding to the list.
9317 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
9318 and lll_futex_wake.
9319 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
9320
9321 * unwind.c (unwind_cleanup): Print error message and then abort. This
9322 function must never be reached.
9323
9324 * cond-perf.c: New file.
9325
be4d8038
UD
93262003-05-05 Ulrich Drepper <drepper@redhat.com>
9327
9328 * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
9329
c6696b79
RM
93302003-05-04 Roland McGrath <roland@redhat.com>
9331
9332 * Makefile ($(objpfx)../libc.so): New target.
9333
7da168bf
UD
93342003-05-02 Ulrich Drepper <drepper@redhat.com>
9335
9336 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
9337 (pthread_condattr_t): Size is only an int, don't use long for
9338 alignment.
9339 (pthread_mutexattr_t): Likewise.
7da168bf
UD
9340 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
9341 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
9342 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
9343
9a7178d6
UD
93442003-05-01 Ulrich Drepper <drepper@redhat.com>
9345
9346 * sysdeps/i386/tls.h: Define THREAD_ID.
9347 * sysdeps/ia64/tls.h: Likewise.
9348 * sysdeps/powerpc/tls.h: Likewise.
9349 * sysdeps/s390/tls.h: Likewise.
9350 * sysdeps/sh/tls.h: Likewise.
9351 * sysdeps/x86_64/tls.h: Likewise.
9352 * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
9353 record ownership.
9354 * pthread_mutex_timedlock.c: Likewise.
9355 * pthread_mutex_trylock.c: Likewise.
9356 * pthread_mutex_unlock.c: Likewise.
9357 * pthread_rwlock_trywrlock.c: Likewise.
9358 * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
9359 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
9360 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
9361 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
9362
9363 * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
9364 flag.
9365
a234e27d
UD
93662003-04-29 Jakub Jelinek <jakub@redhat.com>
9367
9368 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
9369 (__SIZEOF_PTHREAD_COND_T): Define to 48.
9370 (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
9371 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
9372 Make __align long long instead of long.
9373 (pthread_rwlock_t): Formatting.
9374 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
9375 (pthread_rwlock_t): Formatting.
9376 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
9377 (pthread_cond_t): Make __align long long instead of long.
9378 (pthread_rwlock_t): Move __flags field to the same position as in
9379 linuxthreads.
9380
f025c136
UD
93812003-04-30 Ulrich Drepper <drepper@redhat.com>
9382
9383 * tst-rwlock6.c (do_test): Use correct printf format specifiers.
9384 * tst-rwlock7.c (do_test): Likewise.
9385
7531ab9e
RM
93862003-04-26 Roland McGrath <roland@redhat.com>
9387
9388 * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
9389
299601a1
UD
93902003-04-22 Jakub Jelinek <jakub@redhat.com>
9391
299601a1
UD
9392 * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
9393 sizeof (struct pthread).
9394 (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
468777e1 9395 1 struct pthread.
299601a1
UD
9396 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
9397 to 0.
9398 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
9399 struct pthread.
9400 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
9401 to 32-bit bytes.
9402 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
9403 tcbp.
9404 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
9405 unneccessarily.
9406 (NO_TLS_OFFSET): Define.
299601a1
UD
9407 * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
9408 add TLS_TCB_SIZE unnecessarily.
299601a1 9409
950094f8
RM
94102003-04-22 Roland McGrath <roland@redhat.com>
9411
9412 * Makeconfig (shared-thread-library): Reverse link order to work
9413 around linker bug.
9414
dc2f6455
UD
94152003-04-22 Ulrich Drepper <drepper@redhat.com>
9416
9417 * semaphore.h: Fix typo in comment.
9418
e7608d77
UD
94192003-04-21 Ulrich Drepper <drepper@redhat.com>
9420
6a87ee19
UD
9421 * sysdeps/pthread/sigfillset.c: New file.
9422
e7608d77
UD
9423 * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
9424 * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
9425 * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
9426 * sysdeps/pthread/sigaction.c: Likewise.
9427 * sysdeps/pthread/sigprocmask.c: New file.
9428 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
9429 __SIGRTMIN+1.
9430 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
9431 Block SIGTIMER. Also handle SI_TKILL events and terminate thread
9432 in this case.
9433
0b3df49e
UD
94342003-04-19 Ulrich Drepper <drepper@redhat.com>
9435
58a7a325
UD
9436 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
9437 (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
9438
0b3df49e
UD
9439 * sysdeps/unix/sysv/linux/unregister-atfork.c
9440 (__unregister_atfork): Don't free memory not allocated dynamically.
9441
9442 * semaphore.h: Remove __THROW marker from cancellation points.
9443 * nptl/sysdeps/pthread/pthread.h: Likewise.
9444
7d74651e
UD
94452003-04-18 Ulrich Drepper <drepper@redhat.com>
9446
76a67697
UD
9447 * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
9448 pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
7d74651e
UD
9449 __THROW.
9450
dd9d6538
JJ
94512003-04-16 Jakub Jelinek <jakub@redhat.com>
9452
9453 * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
9454
4ab6f47c
RM
94552003-04-15 Roland McGrath <roland@redhat.com>
9456
9457 * forward.c (__pthread_unwind): Tweak to avoid warning.
9458
162434a6
UD
94592003-04-15 Ulrich Drepper <drepper@redhat.com>
9460
9461 * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
9462
35909161
UD
94632003-04-14 Ulrich Drepper <drepper@redhat.com>
9464
18ddd3aa 9465 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
35909161
UD
9466 overflow CFA advance instructions.
9467 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
9468
18a8e730
UD
94692003-04-14 Jakub Jelinek <jakub@redhat.com>
9470
bd4f43b4
UD
9471 * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
9472 * sysdeps/i386/pthread_spin_lock.c: Likewise.
9473 * sysdeps/x86_64/tls.h: Likewise. Define LOCK_PREFIX if not already
9474 defined.
9475
18a8e730
UD
9476 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
9477 DW_CFA_advance_loc2 for .Laddl-.Lsubl.
9478 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
9479 DW_CFA_advance_loc for .Laddl-.Lsubl.
9480
08c765fa
UD
94812003-04-13 Ulrich Drepper <drepper@redhat.com>
9482
18a8e730
UD
9483 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
9484 position-independent unwind data for static libraries.
9485 Add missing unwind info. Add comments.
9486
ad2be852
UD
9487 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
9488 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
9489 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
08c765fa
UD
9490 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9491
177d1ad3
UD
94922003-04-12 Ulrich Drepper <drepper@redhat.com>
9493
08c765fa
UD
9494 * Makefile: Make sure all cancellation points are compiled with
9495 exception and asynchronous unwind tables.
9496
177d1ad3
UD
9497 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
9498 which mishandles loading of global object addresses in PIC.
9499 (THREAD_SETMEM_NC): Likewise.
9500
09d65ff3
UD
95012003-04-11 Ulrich Drepper <drepper@redhat.com>
9502
9503 * pthread.h: Define new data structure for cleanup buffer. Declare
9504 new cleanup handler interfaces.
9505 * descr.h: Include <unwind.h> if necessary. Define pthread_unwind_buf.
9506 (struct pthread): Add cleanup_jmp_buf pointer. Define
9507 HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
9508 * pthreadP.h: Declare __pthread_unwind. Define __do_cancel to use
9509 it. Declare old cleanup handler installation functions.
9510 * cleanup.c: Rewrite. Install handler for unwind-based cleanup
9511 handling.
9512 * cleanup_defer.c: Likewise.
9513 * cleanup_compat.c: New file. Old cleanup code.
9514 * cleanup_def_compat.c: New file. Old cleanup code.
9515 * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
9516 if own thread descriptor.
9517 * unwind.c: New file.
9518 * forward.c: Add __pthread_unwind.
9519 * init.c (pthread_functions): Add __pthread_unwind.
9520 * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
9521 Add ptr___pthread_unwind.
9522 * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
9523 and unwind function.
9524 * Makefile (libpthread-routines): Add cleanup_compat,
9525 cleanup_def_compat, and unwind. Define CFLAGS to enable unwind
9526 table generation if necessary.
9527 * version.c: Record whether unwind support is compiled in.
9528 * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
9529 * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
9530 handler interfaces.
9531 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
9532 complication to generate unwind information for syscall wrappers.
68107ec0 9533 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
09d65ff3
UD
9534 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
9535 __cleanup_fct_attribute.
9536
9537 * Makefile: Add rules to build and run tst-cleanup0.
9538 * tst-cleanup0.c: New file.
9539 * tst-cleanup0.expect: New file.
9540
9541 * pthread_create.c (deallocate_tsd): Don't take parameter. Adjust
9542 caller. Optimize to avoid often unecessary local variable.
9543
0dc44b51
RM
95442003-04-11 Roland McGrath <roland@redhat.com>
9545
9546 * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
9547 sets variable `multidir'; include that.
9548 (generated): Add it.
9549 ($(objpfx)$(multidir)/crti.o): New target.
9550 [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
9551
84a80719
UD
95522003-04-11 Ulrich Drepper <drepper@redhat.com>
9553
9554 * tst-attr2.c (do_test): Add cast to avoid warning.
9555 * tst-mutex4.c (do_test): Likewise.
9556
88ff4759
UD
95572003-04-10 Ulrich Drepper <drepper@redhat.com>
9558
9559 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
9560 in child.
9561
b2041097
UD
95622003-04-09 Ulrich Drepper <drepper@redhat.com>
9563
9564 * Makefile (tests): Add tst-detach1.
9565 * tst-detach1.c: New file.
9566
f9657e88
UD
95672003-04-08 Ulrich Drepper <drepper@redhat.com>
9568
9afe4964
UD
9569 * sysdeps/pthread/pthread.h: Remove duplicate
9570 pthread_cleanup_{push,pop} definitions.
9571
f9657e88
UD
9572 * tst-barrier2.c: Eliminate warnings.
9573 * tst-cancel4.c: Likewise.
9574 * tst-cond4.c: Likewise.
9575 * tst-cond6.c: Likewise.
9576 * tst-detach1.c: Likewise.
9577 * tst-rwlock4.c: Likewise.
9578 * tst-rwlock6.c: Likewise.
9579 * tst-rwlock7.c: Likewise.
9580 * tst-sem3.c: Likewise.
9581 * tst-spin2.c: Likewise.
9582 * tst-umask1.c: Likewise.
9583
69b35e86
UD
95842003-04-07 Ulrich Drepper <drepper@redhat.com>
9585
9586 * pthread_detach.c (pthread_detach): Fix test for invalid TID.
9587
c70ad7d7
UD
95882003-04-06 Ulrich Drepper <drepper@redhat.com>
9589
9590 * descr.h (struct pthread): Move cancelhandling member to the front.
9591
54e0138f
UD
95922003-04-05 Ulrich Drepper <drepper@redhat.com>
9593
9594 * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
9595 malloc_parent, and malloc_child statically.
9596 (__register_atfork_malloc): New function.
9597 (free_mem): Don't free any of the malloc_* variables on the list.
9598 * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
9599 Define HAVE_register_atfork_malloc.
9600
b22d701b
UD
96012003-04-04 Ulrich Drepper <drepper@redhat.com>
9602
9603 * sysdeps/pthread/createthread.c (create_thread): Add some more
9604 comments explaining when to set multiple_threads and when not.
9605
9606 * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
9607 THREAD_ATOMIC_BIT_SET if not already defined.
9608 * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
9609 THREAD_ATOMIC_BIT_SET:
9610 * sysdeps/x86_64/tls.h: Likewise.
9611 * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
9612 THREAD_ATOMIC_CMPXCHG_VAL.
9613 (_pthread_cleanup_pop_restore): Likewise.
9614 * cancellation.c (__pthread_enable_asynccancel): Likewise.
9615 (__pthread_enable_asynccancel_2): Likewise.
9616 (__pthread_disable_asynccancel): Likewise.
9617 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
9618 (__libc_disable_asynccancel): Likewise.
9619 * init.c (sigcancel_handler): Likewise.
9620 * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
9621 * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
9622
86246935
UD
96232003-04-03 Ulrich Drepper <drepper@redhat.com>
9624
9625 * init.c (sigcancel_handler): Don't set EXITING_BIT here.
9626 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
9627 * pthreadP.h (__do_cancel): Set EXITING_BIT here.
9628 * Makefile (tests): Add tst-cancel11.
9629 * tst-cancel11.c: New file.
9630
6b4686a5
UD
96312003-04-01 Ulrich Drepper <drepper@redhat.com>
9632
9633 * pthread_create.c (deallocate_tsd): Clear/free memory after the last
9634 round, not the first. Use specific_used flag instead of local
9635 found_nonzero variable. Use THREAD_[SG]ETMEM where possible.
9636 (__free_tcb): Don't call deallocate_tsd here.
9637 (start_thread): Call deallocate_tsd here.
9638 * pthread_setspecific.c: Set specific_used flag really only when
9639 needed.
0d73a73b 9640 * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
6b4686a5 9641 * tst-tsd3.c: New file.
0d73a73b 9642 * tst-tsd4.c: New file.
6b4686a5 9643
42b2395d
UD
96442003-03-31 Ulrich Drepper <drepper@redhat.com>
9645
211d90c5
UD
9646 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
9647 Use atomic_exchange_and_add instead of __lll_add.
9648 (__lll_mutex_timedlock): Likewise.
9649 Patch by Ian Wienand.
9650
96512003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
9652
9653 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
9654 (SINGLE_THREAD_P): Fix typo.
9655 * tst-cancel-wrappers.sh: Handle '.'ed symbols.
9656
96572003-03-31 Ulrich Drepper <drepper@redhat.com>
9658
9659 * Makefile (tests): Add tst-align.
9660 * tst-align.c: New file.
9661 * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
211d90c5 9662
42b2395d
UD
9663 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
9664 function correctly.
9665
211d90c5
UD
9666 * tst-tsd2.c: Add casts to avoid warnings.
9667
163b180f
UD
96682003-03-30 Ulrich Drepper <drepper@redhat.com>
9669
9670 * descr.h (struct pthread): Move most often used elements to the front.
9671
ea473bad
UD
96722003-03-29 Ulrich Drepper <drepper@redhat.com>
9673
9674 * Makefile (libpthread-routines): Add pthread_atfork.
9675 (libpthread-static-only-routines): Add pthread_atfork.
9676
dd731d53
UD
96772003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
9678
9679 * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
9680 of TLS_DTV_AT_TP.
9681 (INSTALL_DTV): Add parens.
9682 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
9683 Use passed descr instead of THREAD_SELF.
9684 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
9685 (__lll_mutex_timedlock_wait): Correct expected value after
9686 spurious wakeup.
9687 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
9688 Release lock before waking up the waiters.
9689 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
9690 criteria. Reorderstruct passed to cleanup handler. Fix
9691 handling of cancellation and failung pthread_mutex_unlock call.
9692 Use __pthread_enable_asynccancel_2 instead of
9693 __pthread_enable_asynccancel.
9694 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
9695 Return result of lock re-get if it fails.
9696 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
9697 for __pthread_cleanup_push.
9698 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
9699 completely broken rwlock implementation.
9700 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
9701 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
9702 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
9703 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
9704 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
9705 * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value. Use
9706 versioned_symbol macro.
9707 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
9708 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
9709
c75d02f0
UD
97102003-03-27 Ulrich Drepper <drepper@redhat.com>
9711
5f5004df
UD
9712 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
9713 __timer_helper_thread. Declare __start_helper_thread, __helper_once,
9714 and __helper_tid.
9715 (struct timer): Remove th and bar field.
9716 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
9717 debugging code. Create only one helper thread.
9718 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
9719 helper thread.
9720 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
9721 Renamed. Define statically. Use thread info from siginfo.
9722 (__helper_once): New variable.
9723 (__helper_tid): New variable.
9724 (__reset_helper_control): New function.
9725 (__start_helper_thread): New function.
9726
18d009ca
UD
9727 * pthread_create.c (start_thread): Don't use setjmp inside
9728 __builtin_expect to work around gcc bug.
9729
c75d02f0
UD
9730 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
9731 timer_delete syscall fails, but not with ENOSYS, set
9732 __no_posix_timers.
9733
9734 * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
9735 (timer_settime): Fix typo.
28cf3058
UD
9736 * sysdeps/unix/sysv/linux/timer_getoverr.c
9737 [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
c75d02f0 9738
049ac259
JJ
97392003-03-27 Jakub Jelinek <jakub@redhat.com>
9740
9741 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
9742 offset of cleanupbuf.__prev.
9743
f93d39dd
JJ
97442003-03-26 Jakub Jelinek <jakub@redhat.com>
9745
9746 * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
9747 of included file.
9748
f064e4c5
UD
97492003-03-26 Ulrich Drepper <drepper@redhat.com>
9750
9751 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
9752 NULL provide default definition to syscall.
9753
83e886a3
RM
97542003-03-25 Roland McGrath <roland@redhat.com>
9755
9756 * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
9757 (timer_id2ptr): Fix typo.
9758
09402f5b
UD
97592003-03-25 Ulrich Drepper <drepper@redhat.com>
9760
9761 * pthreadP.h: Define SIGCANCEL and SIGTIMER.
9762 * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
9763 * sysdeps/ia64/pthreaddef.h: Likewise.
9764 * sysdeps/powerpc/pthreaddef.h: Likewise.
9765 * sysdeps/s390/pthreaddef.h: Likewise.
9766 * sysdeps/sh/pthreaddef.h: Likewise.
9767 * sysdeps/x86_64/pthreaddef.h: Likewise.
9768 * init.c (__pthread_initialize_minimal): Block SIGTIMER.
9769 * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
9770 being changed.
9771 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
9772 SIGTIMER is not unblocked.
9773 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
9774 RT signal taken.
9775 * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
9776 be send.
9777 * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
9778 pass pointer through as ID.
9779 * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
9780 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
9781 * sysdeps/unix/sysv/linux/timer_create.c: New file.
9782 * sysdeps/unix/sysv/linux/timer_delete.c: New file.
9783 * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
9784 * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
9785 * sysdeps/unix/sysv/linux/timer_routines.c: New file.
9786 * sysdeps/unix/sysv/linux/timer_settime.c: New file.
9787 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
9788 * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
9789 * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
9790 * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
9791 * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
9792 * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
9793 * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
9794 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
9795 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
9796 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
9797 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
9798 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
9799 * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
9800 * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
9801 * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
9802 * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
9803 * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
9804 * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
9805 * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
9806 * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
9807 * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
9808 * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
9809 * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
9810 * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
9811 * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
9812
9813 * pthreadP.h: Remove FRAME_LEFT definition.
9814 * cleanup.c (_pthread_cleanup_push): Don't check for reference to
9815 already left frame. Programs which have this problem are not POSIX
9816 compliant.
9817 * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
9818
5e826ab5
UD
98192003-03-24 Ulrich Drepper <drepper@redhat.com>
9820
9821 * sysdeps/pthread/tst-timer.c: Check return values of the
9822 functions we test.
9823
b910f788
RM
98242003-03-23 Roland McGrath <roland@redhat.com>
9825
3045a1fe
RM
9826 * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
9827 * tst-tls3mod.c: Likewise.
9828 * tst-tls1.c: Likewise.
9829 * tst-tls2.c: Likewise.
9830
85047fe3
RM
9831 * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
9832 undefined behavior.
9833
b910f788
RM
9834 * tst-join5.c (tf1, tf2): Add a cast.
9835
9836 * Makeconfig (includes): Append -I$(..)nptl to this variable.
9837
9838 * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
9839 Don't test anything.
9840 * tst-cond4.c: Likewise.
9841 * tst-cond6.c: Likewise.
9842 * tst-flock2.c: Likewise.
9843 * tst-mutex4.c: Likewise.
9844 * tst-rwlock4.c: Likewise.
9845 * tst-signal1.c: Likewise.
9846 * tst-spin2.c: Likewise.
9847 * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
9848
9849 * tst-mutex4.c: Use test-skeleton.c.
9850 * tst-spin2.c: Likewise.
9851 * tst-sysconf.c: Likewise.
9852 * tst-barrier2.c: Likewise.
9853 * tst-cond4.c: Likewise.
9854 * tst-cond6.c: Likewise.
9855 * tst-rwlock4.c: Likewise.
9856 * tst-unload.c: Likewise.
9857 * tst-flock2.c (do_test): Use return instead of exit.
9858
4baa087a
RM
98592003-03-22 Jakub Jelinek <jakub@redhat.com>
9860
9861 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
9862
5a3ab2fc
UD
98632003-03-21 Ulrich Drepper <drepper@redhat.com>
9864
9f07eae2
UD
9865 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
9866 (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
9867 instead of __lll_compare_and_swap.
9868 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
9869 Likewise.
9870 Removed definition if __lll_compare_and_swap.
9871
5a3ab2fc
UD
9872 * cancellation.c: Adjust for new form of compare&exchange macros.
9873 * cleanup_defer.c: Likewise.
9874 * init.c: Likewise.
9875 * libc-cancellation.c: Likewise.
9876 * old_pthread_cond_broadcast.c: Likewise.
9877 * old_pthread_cond_signal.c: Likewise.
9878 * old_pthread_cond_timedwait.c: Likewise.
9879 * old_pthread_cond_wait.c: Likewise.
9880 * pthread_cancel.c: Likewise.
9881 * pthread_create.c: Likewise.
9882 * pthread_detach.c: Likewise.
9883 * pthread_join.c: Likewise.
9884 * pthread_key_delete.c: Likewise.
9885 * pthread_setcancelstate.c: Likewise.
9886 * pthread_setcanceltype.c: Likewise.
9887 * pthread_timedjoin.c: Likewise.
9888 * pthread_tryjoin.c: Likewise.
9889 * sysdeps/pthread/createthread.c: Likewise.
9890
b1aea098
UD
98912003-03-20 Ulrich Drepper <drepper@redhat.com>
9892
9893 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
4baa087a 9894 Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
b1aea098
UD
9895 definitions. Replace uses with calls to atomic_* functions.
9896 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
9897 * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
9898 __lll_test_and_set calls with atomic_exchange_and_add and
9899 atomic_exchange calls respectively.
9900 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
9901 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
9902 * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
9903 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
9904 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
9905 * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
9906 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
9907
9908 * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
9909 returns the old value.
9910
100a7100
RM
99112003-03-20 Martin Schwidefsky <sky@mschwid3.boeblingen.de.ibm.com>
9912
9913 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
9914 int for variable OLDVAL and correct inline assembler contraint.
9915 * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
9916 type int for variable OLD.
9917
9918 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
9919 only for s390-32.
9920 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
9921 (SINGLE_THREAD_P): Use global variable __local_multiple_threads
9922 instead of multiple_threads field in the TCB.
9923
95767b36
UD
99242003-03-19 Ulrich Drepper <drepper@redhat.com>
9925
4009bf40
UD
9926 * sysdeps/i386/i686/bits/atomic.h: Removed.
9927 * sysdeps/i386/i586/bits/atomic.h: Removed.
9928 * sysdeps/i386/i486/bits/atomic.h: Removed. Moved to glibc.
9929 * sysdeps/x86_64/bits/atomic.h: Removed. Moved to glibc.
9930 * sysdeps/s390/bits/atomic.h: Removed. Moved to glibc.
9931 * sysdeps/sh/bits/atomic.h: Removed. Moved to glibc.
9932 * sysdeps/ia64/bits/atomic.h: Removed. Moved to glibc.
9933 * sysdeps/powerpc/bits/atomic.h: Removed. Moved to glibc.
9934 * atomic.h: Removed. Moved to glibc.
9935
560a784f
UD
9936 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
9937 support for clock selection.
9938
95767b36
UD
9939 * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
9940 signalling waiters.
9941
043ad426
RM
99422003-03-18 Roland McGrath <roland@redhat.com>
9943
94659495
RM
9944 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
9945 Add __lll_rel_instr first. Add memory clobber.
9946 (lll_mutex_unlock): Use __lll_test_and_set.
9947 From Paul Mackerras <paulus@samba.org>.
9948
9949 * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
9950 unconditionally.
9951 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
9952 (SINGLE_THREAD_P): Add `header.' prefix.
9953 From Paul Mackerras <paulus@samba.org>.
9954
043ad426
RM
9955 * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
9956 pthread_timedjoin_np to ...
9957 (libpthread: GLIBC_2.3.3): ... here.
9958 (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
9959
9960 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
9961 Avoid shadowing VAL variable.
9962
9963 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
9964 New macro.
9965
86a9ee5e
UD
99662003-03-18 Ulrich Drepper <drepper@redhat.com>
9967
ac9e0aa1
UD
9968 * Makefile (tests): Add tst-cond11.
9969 * tst-cond11.c: New file.
9970
a14b373c
UD
9971 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
9972 struct passed to cleanup handler to eliminate one more
9973 instruction.
9974 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9975
24a49f38
UD
9976 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
9977 (pthrad_cond_t): Replace __unused field with __clock.
9978
9979 * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
9980 waken all waiters in cleanup handler.
9981 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
9982 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
9983
86a9ee5e
UD
9984 * pthread_condattr_getclock.c: New file.
9985 * pthread_condattr_setclock.c: New file.
9986 * sysdeps/pthread/pthread.h: Declare these new functions.
9987 * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
9988 * Makefile (libpthread-routines): Add the new functions.
9989 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
9990 Renamed field to value. Document use of the bits.
9991 * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
9992 change.
9993 * pthread_condattr_setpshared.c: Likewise.
d5cb8389 9994 * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
86a9ee5e
UD
9995 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
9996 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
9997 Add __clock field.
9998 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
9999 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
10000 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
10001 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
10002 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
10003 Implement clock selection.
10004 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
10005 * pthread-errnos.sym: Add ENOSYS.
10006 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
10007 _POSIX_CLOCK_SELECTION.
10008 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
10009
10010 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
10011 invalid .size directive.
10012
98054a05
RM
100132003-03-17 Roland McGrath <roland@redhat.com>
10014
10015 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
10016 Formatting tweaks.
10017
001bea71
UD
100182003-03-17 Ulrich Drepper <drepper@redhat.com>
10019
4773086e
UD
10020 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
10021 Use __lll_add instead of spelling it out. Use protected symbol names.
10022 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
10023 Use __lll_add.
10024 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
10025 Renamed from lll_compare_and_swap. Use new name where necessary.
10026 (__lll_add): Defined.
10027 (__lll_dec_if_positive): Defined.
10028 (__lll_test_and_set): Defined.
10029 * sysdeps/ia64/pthread_spin_init.c: Removed.
10030 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
10031 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
10032 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
10033 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
10034 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
10035 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
10036 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
001bea71
UD
10037 * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
10038 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
10039 __sync_lock_release_si.
10040 Patch by Jakub Jelinek.
10041
10042 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
10043 Fix timeout handling.
10044 (__lll_timedwait_tid): Likewise.
10045 (lll_unlock_wake_cb): Wake up other waiters if necessary.
10046 Patch by Jakub Jelinek.
10047
10048 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
10049
de4471dd
RM
100502003-03-17 Roland McGrath <roland@redhat.com>
10051
10052 PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
10053 * sysdeps/pthread/pthread_spin_init.c: New file.
10054 * sysdeps/pthread/pthread_spin_unlock.c: New file.
10055 * sysdeps/powerpc/Makefile: New file.
10056 * sysdeps/powerpc/pthread_spin_lock.c: New file.
10057 * sysdeps/powerpc/pthread_spin_trylock.c: New file.
10058 * sysdeps/powerpc/pthreaddef.h: New file.
10059 * sysdeps/powerpc/tcb-offsets.sym: New file.
10060 * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
10061 * sysdeps/powerpc/tls.h: New file.
10062 * sysdeps/powerpc/bits/atomic.h: New file.
10063 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
10064 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
10065 * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
98054a05 10066
de4471dd
RM
10067 * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
10068 * sysdeps/unix/sysv/linux/sem_post.c: New file.
10069 * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
10070 * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
10071 * sysdeps/unix/sysv/linux/sem_wait.c: New file.
10072 * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
10073 * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
10074 * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
10075 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
10076 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
10077 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
10078 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
10079 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
10080 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
10081 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
10082
10083 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
10084 not gettimeofday.
10085 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
10086 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
10087 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
10088 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
10089 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
10090
5778033f
UD
100912003-03-17 Ulrich Drepper <drepper@redhat.com>
10092
10093 * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
10094 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
10095 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
10096 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
10097 Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
10098
796038f8
RM
100992003-03-16 Roland McGrath <roland@redhat.com>
10100
10101 * tst-fork4.c: Include <string.h>.
10102 * tst-signal2.c: Likewise.
10103 * tst-mutex5.c (do_test): exit -> return.
10104 * tst-mutex2.c: Include <stdlib.h>.
10105
51d0678c
UD
101062003-03-16 Ulrich Drepper <drepper@redhat.com>
10107
5778033f
UD
10108 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
10109 (__lll_mutex_timedlock_wait): Correct expected value after
10110 spurious wakeup. Otherwise we would never wait again.
10111
b6e2f87a
UD
10112 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
10113 zone versus inline asm stupidity. Use correct instructions.
10114
51d0678c
UD
10115 * tst-rwlock6.c: Add some more status output.
10116
8112cc70
RM
101172003-03-15 Roland McGrath <roland@redhat.com>
10118
10119 * sysdeps/pthread/configure.in: New file.
10120 * sysdeps/pthread/configure: New file (generated).
10121
49773c19
UD
101222003-03-15 Ulrich Drepper <drepper@redhat.com>
10123
10124 * allocatestack.c (allocate_stack): Store the exact stack size of
10125 user allocated stacks.
10126
eec0ca9f
JJ
101272003-03-15 Jakub Jelinek <jakub@redhat.com>
10128
10129 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
10130 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
10131 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
10132 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
10133 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
10134 Use `header.' prefix.
10135 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
10136
a87731e2
UD
101372003-03-15 Ulrich Drepper <drepper@redhat.com>
10138
10139 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
10140 __builtin_frame_address, use stack pointer.
10141
10142 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
10143 instead of __builtin_frame_pointer.
10144
e22a221d
UD
101452003-03-14 Ulrich Drepper <drepper@redhat.com>
10146
92ed3daf
UD
10147 * tst-basic1.c (do_test): Add cast to avoid warning.
10148 * tst-basic2.c (do_test): Likewise.
10149
9b89567d
UD
10150 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
10151 amount of stack correction.
10152
e22a221d
UD
10153 * tst-fork4.c: Use test-skeleton.c.
10154
2e49caba
RM
101552003-03-14 Roland McGrath <roland@redhat.com>
10156
10157 * init.c: Fix typo "#eli" for "#else".
10158
415ef7d8
RM
101592003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
10160
10161 * allocatestack.c (__stack_user): Use hidden_data_def.
10162 * pthread_create.c (__pthread_keys): Likewise.
10163
10164 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
10165
52287505
RM
101662003-03-14 Roland McGrath <roland@redhat.com>
10167
415ef7d8
RM
10168 * tst-fork4.c: New file.
10169 * Makefile (tests): Add it.
10170
52287505
RM
10171 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
10172 we always define the padding space.
10173 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
10174 stopped supporting its own extensions fully.
10175 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
10176 struct also called `header', so `header.multiple_threads' is the field
10177 name to use on all machines.
10178 * allocatestack.c (allocate_stack): Use `header.' prefix.
10179 * sysdeps/pthread/createthread.c (create_thread): Likewise.
10180 * pthread_create.c (__pthread_create_2_1): Likewise.
10181 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
10182 (THREAD_SELF): Likewise.
10183 * sysdeps/x86_64/tls.h: Likewise.
10184 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
10185 (SINGLE_THREAD_P): Likewise.
10186 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
10187 (SINGLE_THREAD_P): Likewise.
10188 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
10189 (SINGLE_THREAD_P): Likewise.
10190
10191 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
10192 value directly.
10193
c44bf9aa
UD
101942003-03-14 Ulrich Drepper <drepper@redhat.com>
10195
e22a221d
UD
10196 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
10197 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
10198
0eb18281
UD
10199 * pthread_create.c (start_thread): setjmp is expected to return 0.
10200
c44bf9aa
UD
10201 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
10202 (THREAD_GETMEM_NC): Likewise.
10203
564cd8b6
UD
102042003-03-13 Ulrich Drepper <drepper@redhat.com>
10205
10206 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
10207 and the size of the stack which must be allocated is a multiple,
10208 allocate one more page.
10209 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
10210 MULTI_PAGE_ALIASING.
10211
6461e577
RM
102122003-03-13 Roland McGrath <roland@redhat.com>
10213
10214 * pthread_create.c (start_thread): Set EXITING_BIT after the
10215 event-reporting (and destructors), not before.
10216
b5ec5617
UD
102172003-03-13 Jakub Jelinek <jakub@redhat.com>
10218
6461e577
RM
10219 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
10220 lll_futex_wake): Declare register variables as long int instead of
10221 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
10222 Make syscall arguments clobbered by the syscall.
10223 (lll_futex_wait): Define using lll_futex_timed_wait.
10224
10225 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
10226 to void *.
10227
10228 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
10229 PPID if [! NDEBUG].
10230
10231 * allocatestack.c (nptl_ncreated): Only declare if
10232 COLORING_INCREMENT != 0.
10233
10234 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
10235 (__libc_enable_asynccancel_2): Remove prototype.
10236
b5ec5617
UD
10237 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
10238 ctid to match kernel.
10239
d0369fb8
UD
102402003-03-12 Ulrich Drepper <drepper@redhat.com>
10241
7588880f
UD
10242 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
10243 libc_multiple_threads.
10244 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
10245 __libc_multiple_threads to...
10246 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
10247
10248 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
10249 versioning.
10250 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
10251 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
10252
10253 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
10254 (__pthread_once_internal): Define.
10255
10256 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
10257 macros instead of .symver directly.
10258 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
10259 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
10260
d0369fb8
UD
10261 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
10262 * sysdeps/x86_64/tcb-offsets.sym: New file.
10263 * sysdeps/x86_64/Makefile: New file.
10264
10265 * sysdeps/i386/tcb-offsets.sym: Add SELF.
10266 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
10267 to access own pthread_t in TCB.
10268 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
10269 Likewise.
10270 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
10271 Likewise.
10272 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
10273
0bb2ac85
RM
102742003-03-12 Roland McGrath <roland@redhat.com>
10275
10276 * pthread-errnos.sym: New file.
10277 * Makefile (gen-as-const-headers): New variable, list that file.
10278 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
10279 header <pthread-errnos.h> instead of defining errno values here.
10280 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
10281 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
10282 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
10283 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
10284 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
10285 Likewise.
10286 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
10287 Likewise.
10288 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
10289 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
10290 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
10291 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
10292 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
10293 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
10294 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
10295 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
10296 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
10297 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
10298 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
10299 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
10300 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
10301 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
10302 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
10303 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
10304 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
10305 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
10306 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
10307 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
10308 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
10309 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
10310 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
10311 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
10312 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
10313 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
10314 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
10315
10316 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
10317 CLONE_CHILD_SETTID worked.
10318
35e148cb
UD
103192003-03-12 Ulrich Drepper <drepper@redhat.com>
10320
d0369fb8
UD
10321 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
10322 file.
10323 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
10324 file.
10325
10326 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
10327 (pthread_cond_t): Add padding.
10328
da49194d
UD
10329 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
10330 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
10331 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
10332
35e148cb
UD
10333 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
10334 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
10335 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
10336 (__pthread_rwlock_timedrdlock): Likewise.
10337 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
10338 (__pthread_rwlock_wrlock): Likewise.
10339 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
10340 (__pthread_rwlock_rdlock): Likewise.
10341
10342 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
10343
10344 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
10345 result of lock re-get if it fails.
10346
3e976b96
UD
103472003-03-11 Ulrich Drepper <drepper@redhat.com>
10348
5a03acfe
UD
10349 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
10350 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
10351 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
10352 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
10353 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
10354 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
10355 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
10356 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
10357 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
10358 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
10359
10360 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
10361 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
10362
10363 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
10364 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
10365 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
10366 (create_thread): Likewise.
10367 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
10368 * init.c (__pthread_initialize_minimal_internal): Initialize
10369 __libc_multiple_threads_ptr if necessary.
10370 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
10371 __pthread_multiple_threads and __libc_multiple_threads_ptr.
10372 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
10373 __libc_multiple_threads.
10374 (__libc_pthread_init): Return pointer to __libc_pthread_init if
10375 necessary.
10376
10377 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
10378 (THREAD_SETMEM_NC): Likewise.
10379
10380 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
10381 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
10382 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
10383 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
10384
10385 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
10386 Eliminate one entire instruction.
10387
32a589b1
UD
10388 * cancellation.c (__pthread_enable_asynccancel_2): New function.
10389 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
10390 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
10391 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
10392 instead of __pthread_enable_asynccancel.
10393 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
10394 (__pthread_cond_wait): Likewise.
10395 * sysdeps/pthread/pthread_cond_timedwait.c
10396 (__pthread_cond_timedwait): Likewise.
10397 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
10398
3e976b96
UD
10399 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
10400 (__condvar_cleanup): Wake up all waiters in case we got signaled
10401 after being woken up but before disabling asynchronous
10402 cancellation.
10403 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
10404 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
10405 (__condvar_cleanup): Likewise.
10406
10407 * init.c (__NR_set_tid_address): If already defined, don't redefine.
10408 Make it an error if architecture has no #if case. Add x86-64.
10409
10410 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
10411 pt-initfini.s generation.
10412
10413 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
10414 (TLS_INIT_TP): Fix typo.
10415
6c477888
UD
104162003-03-11 Jakub Jelinek <jakub@redhat.com>
10417
10418 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
10419 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
10420
10421 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
10422 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
10423 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
10424 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
10425 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
10426 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
10427 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
10428 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
10429
ea694823
UD
104302003-03-11 Ulrich Drepper <drepper@redhat.com>
10431
6c477888
UD
10432 * sysdeps/pthread/pthread_cond_timedwait.c
10433 (__pthread_cond_timedwait): Return the result of the final
10434 locking. If it succeeds, the regular function return value.
10435
10436 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
10437 Return result of the final locking.
10438 * version.c (__nptl_main): Work around problems with the strange
10439 INTERNAL_SYSCALL macro on ppc32.
10440 * init.c (__pthread_initialize_minimal_internal): Unblock
10441 SIGCANCEL in case the parent blocked it.
10442 Reported by Paul Mackerras <paulus@samba.org>.
10443
ea694823
UD
10444 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
10445 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
10446 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
10447
b33e6163
RM
104482003-03-11 Jakub Jelinek <jakub@redhat.com>
10449
10450 * sysdeps/pthread/pthread_cond_timedwait.c
10451 (__pthread_cond_timedwait): Unlock and fail if
10452 __pthread_mutex_unlock_internal failed.
10453
10454 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
10455 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
10456 Use ARCH_CLONE.
10457 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
10458 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
10459 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
10460 ALLOCATE_STACK): New macros.
10461 (TLS_TPADJ): New macro.
10462 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
10463 (allocate_stack): Handle TLS_DTV_AT_TP and
10464 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
10465 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
10466 Don't set PD->self.
10467 * init.c [__ia64__] (__NR_set_tid_address): Define.
10468
10469 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
10470 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
10471 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
10472 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
10473 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
10474 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
10475 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
10476 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
10477 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
10478 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
10479 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
10480 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
10481 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
10482 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
10483 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
10484 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
10485 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
10486 * sysdeps/ia64/bits/atomic.h: New file.
10487 * sysdeps/ia64/Makefile: New file.
10488 * sysdeps/ia64/pthread_spin_init.c: New file.
10489 * sysdeps/ia64/pthread_spin_lock.c: New file.
10490 * sysdeps/ia64/pthread_spin_trylock.c: New file.
10491 * sysdeps/ia64/pthread_spin_unlock.c: New file.
10492 * sysdeps/ia64/pthreaddef.h: New file.
10493 * sysdeps/ia64/tcb-offsets.sym: New file.
10494 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
10495 * sysdeps/ia64/tls.h: New file.
10496
10497 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
10498 to syscall instead of no arguments.
10499
2b30b2e5
UD
105002003-03-10 Ulrich Drepper <drepper@redhat.com>
10501
db5f2fc9
UD
10502 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
10503 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
10504 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
10505 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
10506
10507 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
10508 unused code.
10509
6a4263e3
UD
10510 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
10511
3de7c2a9
UD
10512 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
10513 lowlevelbarrier.sym.
10514 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
10515 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
10516 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 10517 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 10518
2a544d82
UD
10519 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
10520 (__lll_mutex_lock_wait): Reverse order of first two parameters.
10521 (__lll_mutex_timedlock_wait): Likewise.
10522 (lll_mutex_lock): Adjust asm for that.
10523 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
10524 (lll_lock): Adjust asm for operand order change.
10525 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
10526 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
10527
ec06436c
UD
10528 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
10529 Reverse order of parameters.
10530 (__lll_timedwait_tid): Remove regparms attribute.
10531 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
10532 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
10533
3273832c
UD
10534 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
10535 (__lll_timedwait_tid): Remove one unnecessary instruction.
10536
51f32ab8
UD
10537 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
10538 __lll_mutex_timedlock_wait only for NOT_IN_libc.
10539 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
10540 lowlevelmutex.S.
10541
10542 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
10543 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
10544 for NOT_IN_libc.
10545 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
10546 lowlevellock.S.
10547
fad48d9e
UD
10548 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
10549 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
10550 for libc.so.
10551 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
10552 define LOCK here (if UP is not defined). The actual code is in
10553 lowlevelmutex.S.
10554
9356d063
UD
10555 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
10556 LOCK is already defined. Don't define lll_unlock_wake_cb and
10557 __lll_timedwait_tid for libc.so.
10558 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
10559 define LOCK here (if UP is not defined). The actual code is in
10560 lowlevellock.S.
10561
ebf0cbc5 10562 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
10563 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
10564 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
10565 instead of lowlevelsem.h.
10566 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
10567 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
10568 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 10569
c915e5ad
UD
10570 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
10571 lowlevelrwlock.sym.
10572 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
10573 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 10574 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 10575
4c3c2e8a
UD
10576 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
10577 register loading.
10578 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
10579 last changed. D'oh.
10580
2b30b2e5
UD
10581 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
10582
10583 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
10584 of __libc_locking_needed.
10585 (lll_trylock): Initialize %eax to zero.
10586
2b30b2e5
UD
10587 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
10588 pthread_cond_t definition.
10589
e48f9638
RM
105902003-03-10 Roland McGrath <roland@redhat.com>
10591
10592 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
10593 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
10594 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
10595 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
10596 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
10597
10598 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
10599 Instead of setting PD->multiple_threads, set globals
10600 __pthread_multiple_threads and __libc_multiple_threads.
10601 * sysdeps/pthread/createthread.c (create_thread): Likewise.
10602 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
10603 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
10604
10605 * descr.h (struct pthread): Conditionalize first member on
10606 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
10607 containing an anonymous tcbhead_t. Move `list' member out.
10608 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
10609 * allocatestack.c: Remove use of `header.data.' prefix.
10610 * pthread_create.c: Likewise.
10611 * init.c (__pthread_initialize_minimal_internal): Likewise.
10612 * sysdeps/pthread/createthread.c (create_thread): Likewise.
10613 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
10614 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
10615 * sysdeps/x86_64/tls.h: Likewise.
10616 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
10617 (SINGLE_THREAD_P): Likewise.
10618 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
10619 (SINGLE_THREAD_P): Likewise.
10620 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
10621 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
10622
c37cae9e
UD
106232003-03-09 Ulrich Drepper <drepper@redhat.com>
10624
d38c777e
RM
10625 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
10626
7b44a5e0 10627 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 10628 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 10629
c2e5e085
UD
10630 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
10631 leftovers from the ia32 code.
10632
10633 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
10634 memory load.
10635 (clear_once_control): Don't load %esi.
10636
10637 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
10638 handling.
10639
10640 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
10641
cd4b2a55
UD
10642 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
10643 * sysdeps/unix/sysv/linux/createthread.c: ...here.
10644
c37cae9e
UD
10645 * Makefile (tests): Add tst-cond10.
10646 * tst-cond10.c: New file.
10647
d130a341
UD
106482003-03-08 Ulrich Drepper <drepper@redhat.com>
10649
ccf1d573
UD
10650 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
10651 * tst-signal3.c (do_test): Likewise.
10652 * tst-sem5.c (do_test): Likewise.
10653 * tst-kill6.c (do_test): Likewise.
10654 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
10655
10656 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
10657 of inc/dec.
10658 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
10659 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
10660 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
10661 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
10662 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
10663 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
10664 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
10665 Likewise.
10666 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
10667 Likewise.
10668 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
10669 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
10670 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
10671 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
10672 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
10673 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
10674 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
10675 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
10676
d130a341
UD
10677 * allocatestack.c (allocate_stack): If mprotect() fails free the
10678 TLS memory.
10679
bc6389ad
UD
106802003-03-07 Ulrich Drepper <drepper@redhat.com>
10681
41d4d223
UD
10682 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
10683
10684 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
10685 lll_wake_tid. This was used only to work around kernel limits in
10686 the early days.
10687 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
10688 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
10689 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
10690 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
10691
bc6389ad
UD
10692 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
10693 (__pthread_initialize_minimal_internal): Change initialization of
10694 __static_tls_align_m1 appropriately.
10695 * pthreadP.h (__static_tls_align_m1): Renamed from
10696 __static_tls_align.
10697 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
10698 instead of __static_tls_align-1.
10699
cc775edf
UD
107002003-03-04 Ulrich Drepper <drepper@redhat.com>
10701
0de28d5c 10702 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 10703
518b5308
UD
10704 * pthread_create.c: Define __pthread_keys using nocommon
10705 attribute, not by placing it explicitly in bss.
10706 Remove DEFINE_DEALLOC definition. Not needed anymore.
10707
10708 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
10709 Use it in mmap call to allocate stacks.
10710
10711 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
10712
cc775edf
UD
10713 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
10714 result of the thread function.
10715
4f6f0a8f
UD
107162003-03-03 Ulrich Drepper <drepper@redhat.com>
10717
f04a2721
UD
10718 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
10719 version is just fine.
10720
4f6f0a8f
UD
10721 * sysdeps/unix/sysv/linux/libc_pthread_init.c
10722 (__pthread_child_handler): Renamed from pthread_child_handler,
10723 exported, and marked hidden. Change all users.
10724 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
10725 free __pthread_child_handler from child list.
10726
7ce5c164
UD
107272003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
10728
10729 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
10730
10731 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
10732 Fix handling of cancellation and failing pthread_mutex_unlock call.
10733 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
10734 (__pthread_cond_wait): Likewise.
10735
10736 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
10737 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
10738 lll_futex_timed_wait call.
10739 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
10740 (pthread_rwlock_timedwrlock): Likewise.
10741
10742 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
10743 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
10744 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
10745
10746 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
10747 check of lll_futex_wake return value.
10748
ea6a015b
RM
107492003-03-03 Roland McGrath <roland@redhat.com>
10750
10751 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
10752
10753 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
10754 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
10755 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
10756
4adacf57
UD
107572003-03-02 Ulrich Drepper <drepper@redhat.com>
10758
1be3d664
UD
10759 * sysdeps/pthread/timer_create.c (timer_create): Return correct
10760 error for CPU clocks.
10761
885bafa1
UD
10762 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
10763 _POSIX_MONOTONIC_CLOCK.
10764 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
10765
4adacf57
UD
10766 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
10767 recent kernels.
10768
86bfff4d
UD
107692003-03-01 Ulrich Drepper <drepper@redhat.com>
10770
10771 * descr.h (struct pthread): Move cleanup field to the front.
10772
d1149385
RM
107732003-03-01 Roland McGrath <roland@redhat.com>
10774
10775 * sem_open.c (sem_open): Braino fix.
10776
bd8bb78b
UD
107772003-03-01 Ulrich Drepper <drepper@redhat.com>
10778
748bec08
UD
10779 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
10780 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
10781 __pthread_cleanup_pop functionality.
10782 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
10783
bd8bb78b
UD
10784 * descr.h (struct pthread): Move tid field to the front now that
10785 it is often used.
10786
10787 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
10788 (__lll_mutex_timedlock_wait): Remove.
10789 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
10790 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
10791 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
10792 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
10793 (lll_unlock_wake_cb): Don't save and restore %esi.
10794 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
10795 %esi.
10796 (__lll_timedwait_tid): Add alignment.
10797 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
10798 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
10799 %esi.
10800 (__lll_timedwait_tid): Removed.
10801 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
10802 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
10803 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
10804 (pthread_barrier_wait): Don't save, load, and restore %esi for
10805 last thread.
10806 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
10807 (__pthread_cond_signal): Don't save, load, and restore %esi.
10808 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
10809 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
10810 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
10811 Don't save, load, and restore %esi.
10812
d2637c70
UD
108132003-02-27 Ulrich Drepper <drepper@redhat.com>
10814
567fb22a
UD
10815 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
10816 Release lock before waking up the waiters.
10817
427f5fa1
UD
10818 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
10819
a2d83cfb
UD
10820 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
10821 (reader_thread): Likewise.
10822
d2637c70
UD
10823 * sysdeps/pthread/pthread_rwlock_unlock.c
10824 (__pthread_rwlock_unlock): Release internal lock early. Don't try
10825 to wake up readers if there are none.
10826
10827 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
10828 Release internal lock before wake threads.
10829
b1531183
UD
108302003-02-26 Ulrich Drepper <drepper@redhat.com>
10831
dbf6131c
UD
10832 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
10833 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
10834 predefined.
10835 * tst-rwlock9.c: Likewise.
10836 * tst-rwlock10.c: New file.
10837 * tst-rwlock11.c: New file.
10838
695799fe
UD
10839 * Makefile (tests): Add tst-dlsym1.
10840 * tst-dlsym1.c: New file.
10841
b1531183
UD
10842 * init.c (__pthread_initialize_minimal_internal): Set
10843 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
10844 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
10845
3724f268
UD
108462003-02-24 Ulrich Drepper <drepper@redhat.com>
10847
3857ca78
UD
10848 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
10849
80d80779
UD
10850 * tst-cond2.c: Fix sychronization with child.
10851
86371308
UD
10852 * tst-rwlock8.c (reader_thread): Remove unused variable.
10853
ffeb4481
UD
10854 * Makefile: Add rules to build and run tst-tls3.
10855 * tst-tls3.c: New file.
10856 * tst-tls3mod.c: New file.
10857
3724f268
UD
10858 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
10859 * tst-rwlock8.c: New file.
10860 * tst-rwlock9.c: New file.
10861 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
10862 complete broken rwlock implementation.
10863 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
10864 Likewise.
10865 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
10866 Likewise.
10867 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
10868 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
10869 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
10870 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
10871 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
10872 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
10873 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 10874
8915cc40
RM
108752003-02-23 Roland McGrath <roland@redhat.com>
10876
10877 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
10878
fd1a0d0c
UD
108792003-02-23 Ulrich Drepper <drepper@redhat.com>
10880
ecf28959
UD
10881 * Makefile (tests): Add tst-context1.
10882 * tst-context1.c: New file.
10883
5e47b76b
UD
10884 * Makefile (tests): Add tst-tls1 and tst-tls2.
10885 * tst-tls1.c: New file.
10886 * tst-tls2.c: New file.
10887
5a6bbb41
UD
10888 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
10889 for failed cmpxchg.
10890
fd1a0d0c
UD
10891 * pthread_create.c (start_thread): Set EXITING_BIT early.
10892
10893 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
10894 (THREAD_GETMEM_NC): Likewise.
10895
757f9fcb
UD
108962003-02-22 Ulrich Drepper <drepper@redhat.com>
10897
b1b8e747
UD
10898 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
10899 off 3 more bytes by using offset-less instructions when possible.
10900
c780aa21 10901 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
10902
10903 * eintr.c (eintr_source): Add unnecessary return but the compiler
10904 insists.
10905
10906 * tst-kill3.c: Include <unistd.h>.
10907
5148559c
RM
109082003-02-21 Roland McGrath <roland@redhat.com>
10909
10910 * pthread_create.c (start_thread): Call __libc_thread_freeres.
10911
ab2d98e3
UD
109122003-02-21 Ulrich Drepper <drepper@redhat.com>
10913
71028edd
UD
10914 * Makefile (tests): Add tst-eintr1.
10915 (distribute): Add eintr.c.
10916 * tst-eintr1.c: New file.
10917 * eintr.c: New file.
10918
e814f748
UD
10919 * pthread_cancel.c (pthread_cancel): Use tkill directly.
10920
10921 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
10922 Disallow sending SIGCANCEL.
10923
ab2d98e3 10924 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 10925 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
10926 * tst-kill1.c: New file.
10927 * tst-kill2.c: New file.
10928 * tst-kill3.c: New file.
10929 * tst-kill5.c: New file.
9c03686d 10930 * tst-kill6.c: New file.
e814f748
UD
10931 * tst-basic7.c: Renamed to...
10932 * tst-kill4.c: ...this.
ab2d98e3 10933
59fed0e2
RM
109342003-02-21 Roland McGrath <roland@redhat.com>
10935
10936 * Makefile (install-lib-ldscripts): New variable.
10937
49dc759f
UD
109382003-02-21 Ulrich Drepper <drepper@redhat.com>
10939
8c2e9a29
UD
10940 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
10941 * pthread_cancel.c: Use INVALID_TD_P.
10942 * pthread_detach.c: Likewise.
10943 * pthread_getschedparam.c: Likewise.
10944 * pthread_setschedparam.c: Likewise.
10945 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
10946 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
10947 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
10948 * pthread_timedjoin.c: Likewise.
10949
10950 * tst-basic7.c: Include <signal.h>.
10951
49dc759f
UD
10952 * pthread_join.c (pthread_join): Limited checking for invalid
10953 descriptors.
10954 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
10955
df5803bf
UD
109562003-02-20 Ulrich Drepper <drepper@redhat.com>
10957
c5acd3d7
UD
10958 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
10959 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
10960 * Makefile (tests): Add tst-key4.
10961 * tst-key4.c: New file.
10962
729924a0
UD
109632003-02-18 Ulrich Drepper <drepper@redhat.com>
10964
2f7dc594
UD
10965 * Makefile (tests): Add tst-basic7.
10966 * tst-basic7.c: New file.
10967
ba25bb0f
UD
10968 * pthread_create.c (deallocate_tsd): Mark as internal_function.
10969 Add some more __builtin_expect.
10970
12fd3c5f 10971 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 10972
5430d926
UD
109732003-02-17 Ulrich Drepper <drepper@redhat.com>
10974
b0db7fbe
UD
10975 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
10976 _POSIX_THREAD_PRIORITY_SCHEDULING.
10977 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
10978 _XOPEN_REALTIME_THREADS.
10979 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
10980
10981 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
10982 kernel returns EINVAL for PID <= 0, work around it.
10983
ecfda9bd
UD
10984 * Makefile (tests): Add tst-signal5.
10985 * tst-signal5.c: New file.
10986
7d78ab99
UD
10987 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
10988 and LOGIN_NAME_MAX.
10989
371a2972
UD
10990 * tst-cancel1.c (tf): Block all signals.
10991
5430d926
UD
10992 * Makefile (tests): Add tst-basic6.
10993 * tst-basic6.c: New file.
10994
10995 * tst-basic1.c: Add test for process ID.
10996
10997 * Makefile (tests): Add tst-cancel10.
10998 * tst-cancel10.c: New file.
10999
11000 * Makefile (tests): Add tst-signal4.
11001 * tst-signal4.c: New file.
11002
11003 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
11004 __sigismember instead of sigismember. Add __builtin_expect.
11005
1564916a
UD
110062003-02-16 Ulrich Drepper <drepper@redhat.com>
11007
179ff175
UD
11008 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
11009 pthread_setcancelstate, and pthread_rwlock_setpshared.
11010
e4335f9a
UD
11011 * tst-cancel7.c (do_test): Make sure the pid file exists before
11012 canceling the thread.
11013
0a37669a
UD
11014 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
11015 pthread_rwlock_timedrdlock tests.
11016 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
11017 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
11018 Check for invalid tv_nsec field.
11019 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
11020 Likewise.
11021
11022 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
11023 recursive mutex of overflow.
11024
11025 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
11026
e4335f9a 11027 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
11028 going into an endless loop.
11029 * Makefile (tests): Add tst-cancel9.
11030 * tst-cancel9.c: New file.
11031
11032 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
11033
b270b548
UD
110342003-02-15 Ulrich Drepper <drepper@redhat.com>
11035
1c82b97f
UD
11036 * tst-mutex5.c (do_test): Add more timedlock tests.
11037
b2f05465 11038 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
11039 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
11040
e798b60f
UD
11041 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
11042 use INLINE_SYSCALL. Error number is returned, not -1.
11043
90491dc4
UD
11044 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
11045 and __deallocate_stack with internal_function.
11046 * pthread_create.c: Adjust definitions appropriately.
11047 * allocatestack.c: Likewise.
11048
11049 * pthread_join.c: Add one more __builtin_expect.
11050 * pthread_timedjoin.c: Likewise.
11051
11052 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
11053 not data of sequence number does not match.
11054 Add one __builtin_expect.
11055
c6247c9d
UD
11056 * Makefile (tests): Add tst-clock1.
11057 * tst-clock1.c: New file.
11058
b270b548
UD
11059 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
11060 negative arguments.
11061 * Makefile (tests): Add tst-basic5.
11062 * tst-basic5.c: New file.
11063
700bf7af
UD
110642003-02-14 Ulrich Drepper <drepper@redhat.com>
11065
757de559
UD
11066 * Makefile (tests): Add tst-basic4.
11067 * tst-basic4.c: New file.
11068
47202270
UD
11069 * pthreadP.h: Add declaraction for __nptl_nthreads.
11070 * pthread_create.c: Define __nptl_nthreads
11071 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 11072 after thread is done. If then zero, call exit(0).
47202270
UD
11073 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
11074 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
11075 * init.c (pthread_functions): Initialize ptr_nthreads.
11076 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
11077 (__reclaim_stacks): Decrement __nptl_nthreads.
11078 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
11079 Define.
11080 * Makefile (tests): Add tst-basic3.
11081 * tst-basic3.c: New file.
11082
e320ef46
UD
11083 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
11084 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
11085 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
11086 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
11087 if asynchronous canceling is enabled.
11088 * pthread_join.c (pthread_join): When recognizing circular joins,
11089 take into account the other thread might be already canceled.
11090 * Makefile (tests): Add tst-join5.
11091 * tst-join5.c: New file.
11092
700bf7af
UD
11093 * Makefile (tests): Add tst-join4.
11094 * tst-join4.c: New file.
11095
110962003-02-13 Ulrich Drepper <drepper@redhat.com>
11097
11098 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
11099
dac0f772
UD
111002003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
11101
11102 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
11103 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
11104 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
11105 warning.
11106 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
11107 to avoid warning.
11108 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
11109 error if lll_futex_wake failed.
11110
e8cda341
UD
111112003-02-13 Ulrich Drepper <drepper@redhat.com>
11112
a7720b5e
UD
11113 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
11114 handling of cancellation and failung pthread_mutex_unlock call.
11115 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
11116 * Makefile (tests): Add tst-cond8 and tst-cond9.
11117 * tst-cond8.c: New file.
11118 * tst-cond9.c: New file.
11119
a1ea4c06
UD
11120 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
11121
11122 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
11123 non-standard initializers with __USE_GNU.
11124
e8cda341
UD
11125 * Makefile (tests): Add tst-cleanup3.
11126 * tst-cleanup3.c: New file.
11127
2067577c
UD
111282003-02-12 Ulrich Drepper <drepper@redhat.com>
11129
89e78a95
UD
11130 * Makefile (tests): Add tst-attr1 and tst-attr2.
11131 * tst-attr1.c: New file.
11132 * tst-attr2.c: New file.
11133
dfdd294a
UD
11134 * Makefile: Add rules to build and run tst-atfork2 test.
11135 * tst-atfork2.c: New file.
11136 * tst-atfork2mod.c: New file.
11137
11138 * sysdeps/unix/sysv/linux/unregister-atfork.c
11139 (__unregister_atfork): Free the memory allocated for the handlers
11140 after removing them from the lists.
11141
11142 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
11143 cleanup function.
11144
11145 * tst-atfork1.c (do_test): Wait for the child we forked.
11146 Report error in child.
11147
11148 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
11149
2067577c
UD
11150 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
11151
2a8a8a84
UD
111522003-02-10 Ulrich Drepper <drepper@redhat.com>
11153
d9dd121e
UD
11154 * Makefile (tests): Add tst-cancel8.
11155 * tst-cancel8.c: New file.
11156
2a8a8a84
UD
11157 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
11158 clearing of control variable.
defd1870 11159 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 11160 * tst-once3.c: New file.
defd1870 11161 * tst-once4.c: New file.
2a8a8a84 11162
a54e8d33
UD
111632003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
11164
11165 * sysdeps/sh/Makefile: New file.
11166 * sysdeps/sh/bits/atomic.h: New file.
11167 * sysdeps/sh/pthread_spin_init.c: New file.
11168 * sysdeps/sh/pthread_spin_lock.c: New file.
11169 * sysdeps/sh/pthread_spin_trylock.S: New file.
11170 * sysdeps/sh/pthread_spin_unlock.S: New file.
11171 * sysdeps/sh/pthreaddef.h: New file.
11172 * sysdeps/sh/tcb-offsets.sym: New file.
11173 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
11174 * sysdeps/sh/tls.h: New file.
11175 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
11176 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
11177 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
11178 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
11179 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
11180 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
11181 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
11182 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
11183 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
11184 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
11185 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
11186 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
11187 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
11188 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
11189 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
11190 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
11191 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
11192 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
11193 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
11194 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
11195 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
11196 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
11197 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
11198 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
11199 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
11200 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
11201 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
11202 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
11203 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
11204 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
11205
696e556e
UD
112062003-02-08 Ulrich Drepper <drepper@redhat.com>
11207
11208 * tst-cond2.c: Rearrange code to not rely on behavior undefined
11209 according to POSIX.
11210
11211 * tst-basic2.c (do_test): Lock mutex before creating the thread.
11212
fef710d6
UD
112132003-02-07 Ulrich Drepper <drepper@redhat.com>
11214
c6180643
UD
11215 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
11216 (TLS_GET_FS): New #define.
11217 (TLS_SET_FS): New #define.
11218 Correct value of __NR_set_thread_area.
11219
fef710d6
UD
11220 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
11221
11090a99
UD
112222003-02-06 Ulrich Drepper <drepper@redhat.com>
11223
65c68990
UD
11224 * Makefile (tests): Add tst-popen1.
11225 * tst-popen1.c: New file.
11226
11090a99
UD
11227 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
11228 but inactive generalization.
11229 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
11230 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
11231 Minor optimization, remove one instruction.
11232 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
11233
a88c9263
UD
112342003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
11235
11236 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
11237
112382003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
11239
11240 * init.c (__NR_set_tid_address): Add #ifdef for s390.
11241 * sysdeps/pthread/pthread_barrier_wait.c: New file.
11242 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
11243 * sysdeps/pthread/pthread_cond_signal.c: New file.
11244 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
11245 * sysdeps/pthread/pthread_cond_wait.c: New file.
11246 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
11247 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
11248 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
11249 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
11250 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
11251 * sysdeps/s390/Makefile: New file.
11252 * sysdeps/s390/bits/atomic.h: New file.
11253 * sysdeps/s390/pthread_spin_init.c: New file.
11254 * sysdeps/s390/pthread_spin_lock.c: New file.
11255 * sysdeps/s390/pthread_spin_trylock.c: New file.
11256 * sysdeps/s390/pthread_spin_unlock.c: New file.
11257 * sysdeps/s390/pthreaddef.h: New file.
11258 * sysdeps/s390/tcb-offsets.sym: New file.
11259 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
11260 * sysdeps/s390/tls.h: New file.
11261 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
11262 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
11263 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
11264 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
11265 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
11266 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
11267 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
11268 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
11269 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
11270 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
11271 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
11272 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
11273 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
11274 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
11275 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
11276 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
11277 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
11278 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
11279 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
11280 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
11281 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
11282 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
11283 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
11284
6f1cff95
UD
112852003-02-04 Ulrich Drepper <drepper@redhat.com>
11286
ec609a8e
UD
11287 * atomic.h: Add a couple more default implementations.
11288 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
11289 __arch_compare_and_exchange_32_acq in return value definition. It
11290 always exists.
11291 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 11292 Add missing atomic_ prefixes.
e3ec8904 11293
6f1cff95
UD
11294 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
11295 thread library is available, use correct value to mark initialized
11296 once variable.
11297
4f088329
UD
112982003-02-03 Ulrich Drepper <drepper@redhat.com>
11299
6f1cff95
UD
11300 * allocatestack.c (allocate_stack): Use __getpagesize instead of
11301 __sysconf to determine pagesize.
11302
3e4fc359 11303 * pthread_create.c: Include <atomic.h>.
4f088329
UD
11304 * allocatestack.c (allocate_stack): Implement coloring of the
11305 allocated stack memory. Rename pagesize to pagesize_m1. It's the
11306 size minus one. Adjust users.
3e4fc359 11307 * sysdeps/i386/i686/Makefile: New file.
4f088329 11308
2f42e8be
UD
113092003-02-02 Ulrich Drepper <drepper@redhat.com>
11310
4301f7e2
UD
11311 * allocatestack.c: Improve comment throughout the file.
11312
2f42e8be 11313 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 11314 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
11315 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
11316 (__lll_lock_wait): Likewise.
11317 (lll_unlock_wake_cb): Removed.
11318
4a7d6545
UD
113192003-01-31 Ulrich Drepper <drepper@redhat.com>
11320
11321 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
11322 _POSIX_THREAD_PRIORITY_SCHEDULING.
11323
886d5973
UD
113242003-01-30 Jakub Jelinek <jakub@redhat.com>
11325
11326 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
11327 Fix return type of ptr___pthread_getspecific.
11328
e474ca78
UD
113292003-01-29 Ulrich Drepper <drepper@redhat.com>
11330
11331 * Makefile (tests): Add tst-umask1.
11332 (tst-umask1-ARGS): Define.
11333 * tst-umask1.c: New file.
11334
e6ebd2e4
UD
113352003-01-28 Ulrich Drepper <drepper@redhat.com>
11336
6cf26f41
UD
11337 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
11338 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
11339 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
11340 pthread_rwlock_unlock.
11341 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
11342 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
11343 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
11344 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
11345 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
11346 New file.
11347 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
11348 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
11349 New file.
11350 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
11351 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
11352 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
11353 New file.
11354 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
11355 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
11356 New file.
11357 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
11358 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
11359 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
11360 New file.
11361 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
11362 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
11363 New file.
11364 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
11365
1d087a7e
UD
11366 * Makefile (libpthread-routines): Remove lowlevelcond and
11367 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
11368 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
11369 and pthread_cond_broadcast.
4a99d160
UD
11370 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
11371 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
11372 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
11373 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
11374 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
11375 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
11376 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
11377 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
11378 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
11379 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
11380 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
11381 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
11382 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
11383 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
11384 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
11385 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
11386 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
11387 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
11388 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
11389 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
11390 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
11391 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
11392 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
11393 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
11394 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
11395 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
11396 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
11397 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
11398 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
11399 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
11400 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 11401
e6ebd2e4
UD
11402 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
11403 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
11404 of the code is moved to ...
11405 * sysdeps/pthread/createthread.c: ...here. New file.
11406
a15698cb
UD
114072003-01-27 Ulrich Drepper <drepper@redhat.com>
11408
0566b130
UD
11409 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
11410 (__new_sem_post): Clear %eax before returning.
11411 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
11412
e6fb8846
UD
11413 * Makefile (tests): Add tst-cleanup2.
11414 * tst-cleanup2.c: New file.
11415
a15698cb
UD
11416 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
11417 Interpret first parameter correctly.
11418
8824b0a1
UD
114192003-01-17 Ulrich Drepper <drepper@redhat.com>
11420
11421 * Makefile (headers): Add bits/semaphore.h.
11422
850dcfca
UD
114232003-01-16 Jakub Jelinek <jakub@redhat.com>
11424
11425 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
11426 if not SHARED.
11427
574b892e
UD
114282003-01-14 Ulrich Drepper <drepper@redhat.com>
11429
a8d87c92
UD
11430 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
11431 must be used and mapping failed.
11432 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
11433
574b892e
UD
11434 * Makefile (CFLAGS-pthread_self.os): Define this, not
11435 CFLAGS-pthread_self.c.
11436
fb48047a
UD
114372003-01-13 Ulrich Drepper <drepper@redhat.com>
11438
47805511
UD
11439 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
11440 lll_unlock_wake_cb.
11441
fb48047a
UD
11442 * Makefile (libpthread-routines): Add version. Add rules to build
11443 version.os and banner.h.
11444 * version.c: New file.
11445
115bb61d
UD
114462003-01-13 Jakub Jelinek <jakub@redhat.com>
11447
11448 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
11449 the alias unconditional.
11450 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
11451
114522003-01-13 Ulrich Drepper <drepper@redhat.com>
11453
11454 * Makefile (CFLAGS-pthread_self.c): New definition.
11455
6aca81bb
UD
114562003-01-06 Jakub Jelinek <jakub@redhat.com>
11457
11458 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
11459 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
11460 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
11461 * init.c (__pthread_initialize_minimal_internal): Likewise.
11462
e9c7764e
UD
114632003-01-07 Jakub Jelinek <jakub@redhat.com>
11464
b5facfda
UD
11465 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
11466
e9c7764e
UD
11467 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
11468 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
11469 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
11470 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
11471 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
11472 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
11473
bef1e42f
UD
114742003-01-06 Jakub Jelinek <jakub@redhat.com>
11475
11476 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
11477 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
11478 * tst-cancel-wrappers.sh: Remove all exceptions.
11479
bbd17455
UD
114802003-01-05 Ulrich Drepper <drepper@redhat.com>
11481
a73ab6df
UD
11482 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
11483 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
11484
bbd17455
UD
11485 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
11486 Use __libc_pthread_functions array if SHARED.
11487
11488 * pthreadP.h: Move pthread_cond_2_0_t definition to...
11489 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
11490
11491 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
11492 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
11493 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
11494 __libc_ptf_call instead of __libc_maybe_call.
11495 (PTF): New #define.
11496 (__libc_cleanup_region_start): Wrap function name with PTF call.
11497 (__libc_cleanup_region_end): Likewise.
11498 (__libc_cleanup_end): Likewise.
11499
11500 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
11501 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
11502 * pthread_key_create.c: Add __pthread_key_create_internal alias.
11503 * pthreadP.h: Add prototypes.
11504
11505 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
11506 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
11507 __pthread_rwlock_unlock aliases.
11508 * pthreadP.h: Add prototypes for new aliases.
11509
11510 * pthreadP.h (struct pthead_functions): Moved to...
11511 * sysdeps/pthread/pthread-functions.h: ...here. New file.
11512 * init.c (pthread_functions): Add initializers for new elements.
11513
11514 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
11515 __pthread_cleanup_pop_restore aliases.
11516 * pthreadP.h: Add prototypes.
11517
11518 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
11519 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
11520 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
11521 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
11522 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
11523 * pthreadP.h: Adjust prototypes and callers.
11524
d27a78be
UD
115252003-01-04 Ulrich Drepper <drepper@redhat.com>
11526
b74121ae
UD
11527 * Makefile (tests): Add tst-cancel7.
11528 (tst-cancel7-ARGS): New variable.
bbd17455 11529 * tst-cancel7.c: New file.
b74121ae 11530
29bc410c
UD
11531 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
11532 around gcc defficiencies.
11533 * old_pthread_cond_signal.c: Likewise.
11534 * old_pthread_cond_timedwait.c: Likewise.
11535 * old_pthread_cond_wait.c: Likewise.
11536
d27a78be
UD
11537 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
11538
733f25e6
UD
115392003-01-03 Ulrich Drepper <drepper@redhat.com>
11540
7edb2ae3
UD
11541 * Makefile (tests): Add tst-cond7.
11542 * tst-cond7.c: New file.
11543
b1151300
UD
11544 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
11545 (condvar_cleanup): Get condvar address from the right place.
11546
733f25e6
UD
11547 * atomic.h: Correct definitions of atomic_full_barrier,
11548 atomic_read_barrier, atomic_write_barrier.
11549
11550 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
11551 race-free.
11552 * old_pthread_cond_signal.c: Likewise.
11553 * old_pthread_cond_timedwait.c: Likewise.
11554 * old_pthread_cond_wait.c: Likewise.
11555
686b7223
UD
115562003-01-03 Jakub Jelinek <jakub@redhat.com>
11557
11558 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
11559
0e07706e
UD
115602003-01-03 Ulrich Drepper <drepper@redhat.com>
11561
997256dd
UD
11562 * pthreadP.h (pthread_cond_2_0_t): New type.
11563 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
11564 Use new type for the 2.0 condvar function prototypes.
11565 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
11566 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
11567 parameter.
11568 * old_pthread_cond_destroy.c: Likewise.
11569 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
11570 * old_pthread_cond_signal.c: Likewise.
11571 * old_pthread_cond_timedwait.c: Likewise.
11572 * old_pthread_cond_wait.c: Likewise.
11573
842d2817
UD
11574 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
11575 (__pthread_cond_wait): Don't save cancellation mode and seq value
11576 in same location.
11577
0e07706e
UD
11578 * herrno.c (__h_errno_location): Don't define as weak.
11579
bf293afe
UD
115802003-01-02 Jakub Jelinek <jakub@redhat.com>
11581
11582 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
11583 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
11584 and pthread_cond_wait.
11585 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
11586 Renamed to...
11587 (__pthread_cond_broadcast_2_0): ... this.
11588 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
11589 Renamed to...
11590 (__pthread_cond_destroy_2_0): ... this.
11591 * old_pthread_cond_init.c (__old_pthread_cond_init):
11592 Renamed to...
11593 (__pthread_cond_init_2_0): ... this.
11594 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
11595 Renamed to...
11596 (__pthread_cond_signal_2_0): ... this.
11597 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
11598 Renamed to...
11599 (__pthread_cond_wait_2_0): ... this.
11600 * pthread_cond_destroy.c: Include shlib-compat.h.
11601 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
11602 * pthread_cond_init.c: Include shlib-compat.h.
11603 (pthread_cond_init): Change strong_alias into versioned_symbol.
11604 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
11605 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
11606 fields.
11607 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
11608 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
11609 __pthread_cond_wait_2_0): New prototypes.
11610 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
11611 __old_pthread_cond_init, __old_pthread_cond_signal,
11612 __old_pthread_cond_wait): Removed.
11613 * init.c: Include shlib-compat.h.
11614 (pthread_functions): Guard ptr___pthread_attr_init_2_0
11615 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
11616 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
11617 ptr___pthread_cond_*_2_0 fields.
11618 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
11619 pthread_cond_*@GLIBC_2.0 compatibility symbols.
11620
11621 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
11622 LIBC_SIGACTION was not yet defined.
11623 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
11624 [!defined LIBC_SIGACTION] (__sigaction): New function and
11625 libc_hidden_weak.
11626 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
11627 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
11628
116292003-01-02 Jakub Jelinek <jakub@redhat.com>
11630
11631 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
11632
05df18c3
UD
116332003-01-02 Ulrich Drepper <drepper@redhat.com>
11634
11635 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
11636 New, larger type definition.
11637 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
11638 implementation.
11639 * Versions [libpthread]: Add definitions for new pthread_cond_*
11640 interfaces for version GLIBC_2.3.2.
11641 * pthread_cond_init.c: Update initialization for new type definition.
11642 * Makefile (libpthread-routines): Remove pthread_cond_wait,
11643 pthread_cond_timedwait, pthread_cond_signal, and
11644 pthread_cond_broadcast. Add old_pthread_cond_init,
11645 old_pthread_cond_destroy, old_pthread_cond_wait,
11646 old_pthread_cond_timedwait, old_pthread_cond_signal, and
11647 old_pthread_cond_broadcast.
11648 * old_pthread_cond_broadcast.c: New file.
11649 * old_pthread_cond_destroy.c: New file.
11650 * old_pthread_cond_init.c: New file.
11651 * old_pthread_cond_signal.c: New file.
11652 * old_pthread_cond_timedwait.c: New file.
11653 * old_pthread_cond_wait.c: New file.
11654 * pthreadP.h: Add prototypes for the compatibility interfaces.
11655
11656 * pthread_cond_destroy.c: Don't include <errno.h>.
11657
fd8979e4
UD
116582003-01-01 Ulrich Drepper <drepper@redhat.com>
11659
11660 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
11661 unnecessary zero offset when addressing MUTEX.
11662
6d6ee629
UD
116632002-12-31 Ulrich Drepper <drepper@redhat.com>
11664
11665 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
11666 __register_atfork.
11667 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
11668 for __register_atfork.
11669
a4baf360
UD
116702002-12-31 Jakub Jelinek <jakub@redhat.com>
11671
11672 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
11673 instead of ASSEMBLER test macro.
11674
11675 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
11676 __libc_current_sigrtmax): Add libc_hidden_def.
11677
11678 * sysdeps/pthread/list.h: Remove assert.h include.
11679
e9395a94
UD
116802002-12-31 Ulrich Drepper <drepper@redhat.com>
11681
11682 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
11683 __pthread_initialize_minimal_internal not
11684 __pthread_initialize_minimal.
11685
89d6e444
UD
116862002-12-30 Ulrich Drepper <drepper@redhat.com>
11687
416d2de6
UD
11688 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
11689 __pthread_initialize_minimal as hidden.
11690
89d6e444
UD
11691 * init.c (__pthread_initialize_minimal_internal): Don't mark as
11692 constructor.
11693
116942002-12-31 Jakub Jelinek <jakub@redhat.com>
11695
11696 * Makefile ($(inst_libdir)/libpthread.so): Depend on
11697 $(common-objpfx)format.lds, include that into the output script.
11698 Fix comment.
11699 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
11700
8cac677c
UD
117012002-12-28 Andreas Jaeger <aj@suse.de>
11702
11703 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
11704 nsec resolution changes.
11705 (xstat64_conv): Likewise.
11706 (xstat32_conv): Likewise.
11707 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
11708 struct kernel_stat.
11709 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
11710 structs stat and stat64.
11711 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 11712 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 11713
49e9f864
UD
117142002-12-30 Jakub Jelinek <jakub@redhat.com>
11715
11716 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
11717 argument.
11718 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
11719 (pthread_exit): Use strong_alias to avoid warnings.
11720 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
11721 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
11722 ptr___pthread_attr_init_2_*.
11723 * init.c (pthread_functions): Adjust.
11724
bab09b26
UD
117252002-12-29 Ulrich Drepper <drepper@redhat.com>
11726
598d7a42
UD
11727 * forward.c: Make all functions available by default again. It
11728 caused too much trouble.
11729
bab09b26
UD
11730 * pt-siglongjmp.c: Removed.
11731
3b7ed871
UD
117322002-12-28 Jakub Jelinek <jakub@redhat.com>
11733
11734 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
11735 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
11736 * sysdeps/i386/Makefile: New file.
11737 * sysdeps/i386/tcb-offsets.sym: New file.
11738 * sysdeps/pthread/tcb-offsets.h: New file.
11739 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
11740 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
11741
11742 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
11743 __register_atfork...
11744 (GLIBC_2.3.2): ...here.
11745
117462002-12-28 Ulrich Drepper <drepper@redhat.com>
11747
11748 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
11749 pthread_attr_setstackaddr with __attribute_deprecated__.
11750
270d9d47
UD
117512002-12-27 Jakub Jelinek <jakub@redhat.com>
11752
11753 * pt-system.c (system): Remove cancellation handling.
11754 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
11755 cancellation routines.
11756
131fd126
UD
117572002-12-28 Ulrich Drepper <drepper@redhat.com>
11758
afb2e954
UD
11759 * descr.h: Include <dl-sysdep.h>.
11760 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
11761 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
11762 (MULTIPLE_THREADS_OFFSET): Adjust offset.
11763 (SYSINFO_OFFSEET): Likewise.
11764
117652002-12-27 Jakub Jelinek <jakub@redhat.com>
11766
11767 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
11768 Define.
11769 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
11770 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
11771 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
11772 (USE_DL_SYSINFO): Undef.
11773
117742002-12-22 Jakub Jelinek <jakub@redhat.com>
11775
11776 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
11777 $(common-objpfx)libc.so.
11778 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
11779 it is bigger than pipe buffer size even on arches with bigger
11780 page size.
11781 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
11782
a218c9cf
UD
117832002-12-25 Ulrich Drepper <drepper@redhat.com>
11784
11785 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
11786 correct errno access for case that USE___THREAD is not defined.
11787
015a2dc9
UD
117882002-12-24 Ulrich Drepper <drepper@redhat.com>
11789
11790 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
11791 Patch by Marijn Ros <marijn@mad.scientist.com>.
11792
5220f9ac
RM
117932002-12-22 Roland McGrath <roland@redhat.com>
11794
11795 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
11796
1561bf63
UD
117972002-12-20 Ulrich Drepper <drepper@redhat.com>
11798
11799 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
11800
3325198e
UD
118012002-12-19 Ulrich Drepper <drepper@redhat.com>
11802
057c823f
UD
11803 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
11804 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
11805 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
11806
097eca29
UD
11807 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
11808 of int $0x80.
11809 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
11810 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
11811 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
11812 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
11813 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
11814 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
11815 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
11816 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
11817
11818 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
11819 sysenter.
11820 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
11821
11822 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
11823
5f5843e3
UD
11824 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
11825 in new TCB.
11826 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
11827 that sysinfo is properly initialized.
11828 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
11829 to 1 only for ld.so.
11830
3325198e
UD
11831 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
11832 RTLD_CORRECT_DYNAMIC_WEAK.
11833
74e8f2dc
UD
118342002-12-19 Jakub Jelinek <jakub@redhat.com>
11835
11836 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
11837 Use return 0 as 6th argument to FORWARD4.
11838 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
11839
df45b31e
UD
118402002-12-18 Ulrich Drepper <drepper@redhat.com>
11841
11842 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
11843 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
11844 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
11845 (INIT_SYSINFO): New #define.
11846 (TLS_TP_INIT): Use INIT_SYSINFO.
11847 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
11848 At test to make sure SYSINFO_OFFSET value is correct.
11849 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
11850
3d539579
UD
118512002-12-18 Jakub Jelinek <jakub@redhat.com>
11852
11853 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
11854 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
11855 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
11856 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
11857 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
11858 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
11859 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
11860
d7913e0e
UD
118612002-12-18 Ulrich Drepper <drepper@redhat.com>
11862
f051627f
UD
11863 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
11864 macro instead of using int $0x80 directly.
11865
d7913e0e
UD
11866 * sysdeps/pthread/bits/stdio-lock.h: New file.
11867 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
11868 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
11869 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
11870 * Makefile (routines): Add libc-lowlevelmutex.
11871
11872 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
11873 __i686.get_pc_thunk.dx.
11874
f077a4a9
UD
118752002-12-17 Jakub Jelinek <jakub@redhat.com>
11876
11877 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
11878 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
11879 ($(objpfx)tst-cancel-wrappers.out): New rule.
11880 * tst-cancel-wrappers.sh: New test.
11881 * tst-locale1.c: Include signal.h.
11882 (uselocale): Test static linking of __libc_current_sigrt*.
11883
118842002-12-17 Ulrich Drepper <drepper@redhat.com>
11885
11886 * Makefile (tests): Add tst-cancel6.
11887 * tst-cancel6.c: New file
11888
bd499a3b
UD
118892002-12-17 Jakub Jelinek <jakub@redhat.com>
11890
11891 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
11892 Define meaningfully for assembler as well.
11893 * pthreadP.h (struct pthread_functions): Remove
11894 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
11895 and ptr_pthread_attr_init_2_1 fields.
11896 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
11897 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
11898 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
11899 (FORWARD3): Define using FORWARD4.
11900 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
11901 versions.
11902 * pt-system.c: Remove duplicate stdlib.h include.
11903
0a1063f4
UD
119042002-12-16 Ulrich Drepper <drepper@redhat.com>
11905
87d60668
UD
11906 * sem_init.c: Define sem_init@GLIBC_2.0.
11907 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
11908 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
11909
0a1063f4
UD
11910 * flockfile.c: Moved to...
11911 * sysdeps/pthread/flockfile.c: ...here. New file.
11912 * funlockfile.c: Moved to...
11913 * sysdeps/pthread/funlockfile.c: ...here. New file.
11914 * ftrylockfile.c: Moved to...
11915 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
11916
9634cf9d
UD
119172002-12-16 Jakub Jelinek <jakub@redhat.com>
11918
11919 * libc-cancellation.c: Guard both function with
11920 #if !defined NOT_IN_libc.
11921 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
11922 automatically provided pthread wrappers.
11923 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
11924 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
11925 nor in libpthread.
11926 * pt-open.c: Removed.
11927 * pt-fcntl.c: Removed.
11928 * pt-fsync.c: Removed.
11929 * pt-lseek.c: Removed.
11930 * pt-msgrcv.c: Removed.
11931 * pt-msgsnd.c: Removed.
11932 * pt-msync.c: Removed.
11933 * pt-nanosleep.c: Removed.
11934 * pt-open64.c: Removed.
11935 * pt-pause.c: Removed.
11936 * pt-pread.c: Removed.
11937 * pt-pread64.c: Removed.
11938 * pt-pwrite.c: Removed.
11939 * pt-pwrite64.c: Removed.
11940 * pt-read.c: Removed.
11941 * pt-recv.c: Removed.
11942 * pt-recvfrom.c: Removed.
11943 * pt-recvmsg.c: Removed.
11944 * pt-send.c: Removed.
11945 * pt-sendto.c: Removed.
11946 * pt-sigtimedwait.c: Removed.
11947 * pt-sigwait.c: Removed.
11948 * pt-wait.c: Removed.
11949 * pt-waitpid.c: Removed.
11950 * pt-write.c: Removed.
11951 * pt-accept.c: Removed.
11952 * pt-close.c: Removed.
11953 * pt-connect.c: Removed.
11954 * pt-lseek64.c: Removed.
11955 * pt-sendmsg.c: Removed.
11956 * pt-tcdrain.c: Removed.
11957
6ee8d334
UD
119582002-12-15 Ulrich Drepper <drepper@redhat.com>
11959
81fa9371
UD
11960 * init.c (__pthread_initialize_minimal_internal): Renamed from
11961 __pthread_initialize_minimal. Make old name an alias. This
11962 converts a normal relocation into a relative relocation.
11963
f3015aa5
UD
11964 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
11965
4cbc1950
UD
11966 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
11967 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
11968 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
11969 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
11970 pt-sigwaitinfo, pt-waitid, and pt-writev.
11971 * pt-creat.c: Removed.
11972 * pt-poll.c: Removed.
11973 * pt-pselect.c: Removed.
11974 * pt-readv.c: Removed.
11975 * pt-select.c: Removed.
11976 * pt-sigpause.c: Removed.
11977 * pt-sigsuspend.c: Removed.
11978 * pt-sigwaitinfo.c: Removed.
11979 * pt-waitid.c: Removed.
11980 * pt-writev.c: Removed.
11981
8454830b
UD
11982 * init.c (pthread_functions): New variable.
11983 (__pthread_initialize_minimal): Pass pointer to pthread_functions
11984 (or NULL) to __libc_pthread_init.
11985 * forward.c: Rewrite to use __libc:pthread_functions array to get
11986 function addresses.
11987 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
11988 prototype.
11989 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
11990 Take new parameter. Copy content of variable pointed to by it
11991 to __libc_pthread_init.
11992
11993 * pthreadP.h (struct pthread_functions): New type.
11994 (__libc_pthread_init): Declare.
11995
11996 * pthread_attr_destroy.c: Add namespace protected alias.
11997 * pthread_attr_getdetachstate.c: Likewise.
11998 * pthread_attr_getinheritsched.c: Likewise.
11999 * pthread_attr_getschedparam.c: Likewise.
12000 * pthread_attr_getschedpolicy.c: Likewise.
12001 * pthread_attr_getscope.c: Likewise.
12002 * pthread_attr_setdetachstate.c: Likewise.
12003 * pthread_attr_setinheritsched.c: Likewise.
12004 * pthread_attr_setschedparam.c: Likewise.
12005 * pthread_attr_setschedpolicy.c: Likewise.
12006 * pthread_attr_setscope.c: Likewise.
12007 * pthread_cond_broadcast.c: Likewise.
12008 * pthread_cond_destroy.c: Likewise.
12009 * pthread_cond_init.c: Likewise.
12010 * pthread_cond_signal.c: Likewise.
12011 * pthread_cond_wait.c: Likewise.
12012 * pthread_condattr_destroy.c: Likewise.
12013 * pthread_condattr_init.c: Likewise.
12014 * pthread_equal.c: Likewise.
12015 * pthread_exit.c: Likewise.
12016 * pthread_getschedparam.c: Likewise.
12017 * pthread_self.c: Likewise.
12018 * pthread_setcancelstate.c: Likewise.
12019 * pthread_setschedparam.c: Likewise.
12020 * pthread_mutex_destroy.c: Likewise.
12021 * pthread_mutex_init.c: Likewise.
12022 * pthreadP.h: Add prototypes for the aliases.
12023
0d5f4929
UD
12024 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
12025 multiple_threads member in correct TCB to 1.
12026
6ee8d334
UD
12027 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
12028 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
12029 member of thread decriptor, otherwise return unconditionally 1.
12030
2fb6444d
UD
120312002-12-14 Ulrich Drepper <drepper@redhat.com>
12032
12033 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
12034 regular Linux version. Remove file.
12035 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
12036 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
12037 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
12038 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
12039 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
12040 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
12041 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
12042 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
12043 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
12044 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
12045 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
12046 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
12047 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
12048 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
12049 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
12050 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
12051 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
12052 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
12053 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
12054 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
12055 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
12056 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
12057 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
12058 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
12059 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
12060 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
12061 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
12062 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
12063 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
12064 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
12065
86b2dc40
UD
120662002-12-14 Jakub Jelinek <jakub@redhat.com>
12067
12068 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
12069 * sysdeps/unix/sysv/linux/open.c: Removed.
12070 * sysdeps/unix/sysv/linux/fsync.c: Removed.
12071 * sysdeps/unix/sysv/linux/lseek.c: Removed.
12072 * sysdeps/unix/sysv/linux/msync.c: Removed.
12073 * sysdeps/unix/sysv/linux/read.c: Removed.
12074 * sysdeps/unix/sysv/linux/close.c: Removed.
12075 * sysdeps/unix/sysv/linux/creat.c: Removed.
12076 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
12077 * sysdeps/unix/sysv/linux/pause.c: Removed.
12078 * sysdeps/unix/sysv/linux/select.c: Removed.
12079 * sysdeps/unix/sysv/linux/write.c: Removed.
12080
9d263d72
UD
120812002-12-14 Ulrich Drepper <drepper@redhat.com>
12082
12083 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
12084 element in TCB to see whether locking is needed.
12085
12086 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
12087 MULTIPLE_THREADS_OFFSET value is correct.
12088
12089 * sysdeps/unix/sysv/linux/close.c: New file.
12090 * sysdeps/unix/sysv/linux/connect.S: New file.
12091 * sysdeps/unix/sysv/linux/creat.c: New file.
12092 * sysdeps/unix/sysv/linux/fsync.c: New file.
12093 * sysdeps/unix/sysv/linux/llseek.c: New file.
12094 * sysdeps/unix/sysv/linux/lseek.c: New file.
12095 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
12096 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
12097 * sysdeps/unix/sysv/linux/msync.c: New file.
12098 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
12099 * sysdeps/unix/sysv/linux/open.c: New file.
12100 * sysdeps/unix/sysv/linux/open64.c: New file.
12101 * sysdeps/unix/sysv/linux/pause.c: New file.
12102 * sysdeps/unix/sysv/linux/poll.c: New file.
12103 * sysdeps/unix/sysv/linux/pread.c: New file.
12104 * sysdeps/unix/sysv/linux/pread64.c: New file.
12105 * sysdeps/unix/sysv/linux/pselect.c: New file.
12106 * sysdeps/unix/sysv/linux/pwrite.c: New file.
12107 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
12108 * sysdeps/unix/sysv/linux/readv.c: New file.
12109 * sysdeps/unix/sysv/linux/recv.S: New file.
12110 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
12111 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
12112 * sysdeps/unix/sysv/linux/select.c: New file.
12113 * sysdeps/unix/sysv/linux/send.S: New file.
12114 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
12115 * sysdeps/unix/sysv/linux/sendto.S: New file.
12116 * sysdeps/unix/sysv/linux/sigpause.c: New file.
12117 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
12118 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
12119 * sysdeps/unix/sysv/linux/sigwait.c: New file.
12120 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
12121 * sysdeps/unix/sysv/linux/system.c: New file.
12122 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
12123 * sysdeps/unix/sysv/linux/wait.c: New file.
12124 * sysdeps/unix/sysv/linux/waitid.c: New file.
12125 * sysdeps/unix/sysv/linux/waitpid.c: New file.
12126 * sysdeps/unix/sysv/linux/writev.c: New file.
12127 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
12128
12129 * pt-readv.c: Fix comment.
12130
121312002-12-14 Jakub Jelinek <jakub@redhat.com>
12132
12133 * tst-cleanup1.c: Include stdlib.h.
12134
12135 * tst-cancel5.c: New test.
12136 * Makefile (tests): Add tst-cancel5.
12137 (tst-cancel5): Link against libc.so libpthread.so in that order.
12138
9ae0909b
UD
121392002-12-13 Ulrich Drepper <drepper@redhat.com>
12140
b7bdd9c4
UD
12141 * forward.c (test_loaded): Prevent recursive calls.
12142
9ae0909b
UD
12143 * Makefile (routines): Add libc-cancellation.
12144 * libc-cancellation.c: New file.
12145 * descr.h (struct pthread): Add multiple_threads field.
12146 * allocatestack.c (allocate_stack): Initialize multiple_header field of
12147 new thread descriptor to 1.
12148 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
12149 Initialize multiple_thread field after successful thread creation.
12150 * cancellation.c (__do_cancel): Move to pthreadP.h.
12151 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
12152 (__pthread_disable_asynccancel): Add internal_function attribute.
12153 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
12154 * pthread_setcancelstate.c: Likewise.
12155 * pthread_setcanceltype.c: Likewise.
12156 * pthread_exit.c: Likewise.
12157 * pthreadP.h (CANCELLATION_P): Likewise.
12158 (__do_cancel): Define as static inline.
12159 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
12160 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
12161 declarations.
12162 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
12163 fields. Define MULTIPLE_THREADS_OFFSET.
12164 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
12165 declaration.
12166 * sysdeps/unix/sysv/linux/accept.S: New file.
12167 * sysdeps/unix/sysv/linux/read.c: New file.
12168 * sysdeps/unix/sysv/linux/write.c: New file.
12169 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
12170 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
12171 initialization of __libc_locking_needed.
12172 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
12173 __libc_locking_needed, use multiple_threads field in TCB.
12174 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
12175
22f20674
UD
121762002-12-12 Ulrich Drepper <drepper@redhat.com>
12177
2ad2e1e7
UD
12178 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
12179 version.
12180 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
12181
22f20674
UD
12182 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
12183 access to __libc_locking_needed for PIC.
12184
aa80bf86
UD
121852002-12-12 Jakub Jelinek <jakub@redhat.com>
12186
12187 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
12188 declare for libc.so.
12189 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
12190 expression.
12191 (__libc_lock_lock): Put into statement expression.
12192 (__libc_lock_unlock): Remove trailing semicolon.
12193 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
12194
24021373
RM
121952002-12-12 Roland McGrath <roland@redhat.com>
12196
12197 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
12198 "m" constraint to refer to __libc_locking_needed. Declare it here.
12199
14e7aece
UD
122002002-12-12 Ulrich Drepper <drepper@redhat.com>
12201
12202 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
12203 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
12204 Initialize __libc_locking_needed.
12205 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
12206 instead of __register_pthread_fork_handler.
12207 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
12208 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
12209 fork-gen with libc_pthread_init.
12210 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
12211 of __register_pthread_fork_handler.
12212 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
12213 of __register_pthread_fork_handler.
12214 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
12215 __libc_locking_needed to determine whether lock prefix can be avoided.
12216 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
12217
85631c8e
UD
122182002-12-11 Ulrich Drepper <drepper@redhat.com>
12219
da63009e
UD
12220 * Makefile (tests): Add tst-cleanup1.
12221 * tst-cleanup1.c: New file.
12222 * cancellation.c (__cleanup_thread): Removed.
12223 (__do_cancel): Remove call to __cleanup_thread.
12224 * pthreadP.h: Remove __cleanup_thread prorotype.
12225
000160a2
UD
12226 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
12227 Remember function and argument even if cancellation handler
12228 function is not available.
12229 (__libc_cleanup_region_end): Execute registered function directly if
12230 pthread functions are not available.
12231 (__libc_cleanup_end): Likewise.
12232
85631c8e
UD
12233 * init.c (__pthread_initialize_minimal): Fix initialization in
12234 static lib by preventing gcc from being too clever.
12235
dce8f2b6
UD
122362002-12-10 Ulrich Drepper <drepper@redhat.com>
12237
34a075be
UD
12238 * init.c (__pthread_initialize_minimal): Remove unneccesary
12239 sigaddset call.
12240
dce8f2b6
UD
12241 * Makefile (tests): We can run tst-locale2 now.
12242
e5e45b53
UD
122432002-12-09 Ulrich Drepper <drepper@redhat.com>
12244
12245 * Versions: Remove duplicated sigwait entry.
12246
bdb04f92
UD
122472002-12-08 Ulrich Drepper <drepper@redhat.com>
12248
1e506629
UD
12249 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
12250 inside libpthread.
12251
a3957dd5
UD
12252 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
12253
bdb04f92
UD
12254 * pthreadP.h: Declare __pthread_enable_asynccancel and
12255 __pthread_disable_asynccancel.
12256 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
12257 (CANCEL_RESET): Use __pthread_disable_asynccancel.
12258 * cancellation.c (__pthread_enable_asynccancel): New function.
12259 (__pthread_disable_asynccancel): New function.
12260 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
12261 * pt-close.c: Likewise.
12262 * pt-connect.c: Likewise.
12263 * pt-creat.c: Likewise.
12264 * pt-fcntl.c: Likewise.
12265 * pt-fsync.c: Likewise.
12266 * pt-lseek.c: Likewise.
12267 * pt-lseek64.c: Likewise.
12268 * pt-msgrcv.c: Likewise.
12269 * pt-msgsnd.c: Likewise.
12270 * pt-msync.c: Likewise.
12271 * pt-nanosleep.c: Likewise.
12272 * pt-open.c: Likewise.
12273 * pt-open64.c: Likewise.
12274 * pt-pause.c: Likewise.
12275 * pt-poll.c: Likewise.
12276 * pt-pread.c: Likewise.
12277 * pt-pread64.c: Likewise.
12278 * pt-pselect.c: Likewise.
12279 * pt-pwrite.c: Likewise.
12280 * pt-pwrite64.c: Likewise.
12281 * pt-read.c: Likewise.
12282 * pt-readv.c: Likewise.
12283 * pt-recv.c: Likewise.
12284 * pt-recvfrom.c: Likewise.
12285 * pt-recvmsg.c: Likewise.
12286 * pt-select.c: Likewise.
12287 * pt-send.c: Likewise.
12288 * pt-sendmsg.c: Likewise.
12289 * pt-sendto.c: Likewise.
12290 * pt-sigpause.c: Likewise.
12291 * pt-sigsuspend.c: Likewise.
12292 * pt-sigtimedwait.c: Likewise.
12293 * pt-sigwait.c: Likewise.
12294 * pt-sigwaitinfo.c: Likewise.
12295 * pt-system.c: Likewise.
12296 * pt-tcdrain.c: Likewise.
12297 * pt-wait.c: Likewise.
12298 * pt-waitid.c: Likewise.
12299 * pt-waitpid.c: Likewise.
12300 * pt-write.c: Likewise.
12301 * pt-writev.c: Likewise.
a3957dd5
UD
12302 * pthread_join.c: Likewise.
12303 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
12304
12305 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
12306 (__xpg_sigpause): New function.
12307 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
12308
6ccb3834
UD
123092002-12-07 Ulrich Drepper <drepper@redhat.com>
12310
09efc3ba
UD
12311 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
12312
12313 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
12314 _GI_pthread_cleanup_pop to pthreadP.h.
12315
12316 * ftrylockfile.c: Use _IO_lock_trylock instead of
12317 pthread_mutex_trylock.
12318
12319 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
12320 (CANCEL_RESET): Likewise.
12321 (__pthread_setcanceltype_): Declare.
12322 (__pthread_mutex_lock_internal): Declare.
12323 (__pthread_mutex_unlock_internal): Declare.
12324 (__pthread_once_internal): Declare.
12325 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
12326 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
12327
12328 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
12329 and pthread_mutex_unlock.
12330 * pthread_cond_wait.c: Likewise.
12331 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
12332 * pthread_mutex_unlock.c: Likewise.
12333
12334 * pthread_setcanceltype.c: Add additional alias
12335 __pthread_setcanceltype.
12336
12337 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
12338 * sem_open.c (sem_open): Likewise.
12339 Use __libc_open, __libc_write, and __libc_close instead of
12340 open, write, and close respectively.
12341
12342 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
12343 Rewrite as statement expression since it must return a value.
12344
12345 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
12346 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
12347 __pthread_kill.
12348
12349 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
12350 alias __pthread_once_internal.
12351
6ccb3834
UD
12352 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
12353
d3c9f895
UD
123542002-12-06 Ulrich Drepper <drepper@redhat.com>
12355
4614167a
UD
12356 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
12357 * tst-stdio1.c: New file.
12358 * tst-stdio2.c: New file.
12359
a4548cea
UD
12360 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
12361
d3c9f895
UD
12362 * Makefile (tests): Comment out tst-locale2 for now.
12363 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
12364
12365 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
12366 -D_IO_MTSAFE_IO.
12367 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
12368 Use _IO_lock_init instead of explicit assignment.
12369
12370 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
12371 Define __libc_lock_* and __libc_lock_recursive macros with
12372 lowlevellock macros, not pthread mutexes.
12373
12374 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
12375 of pthread_mutex_lock.
12376 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
12377 instead of pthread_mutex_unlock.
12378
fde89ad0
RM
123792002-12-06 Roland McGrath <roland@redhat.com>
12380
12381 * allocatestack.c (__stack_user): Use uninitialized defn.
12382 * init.c (__pthread_initialize_minimal): Initialize it here.
12383
11767d47
RM
123842002-12-05 Roland McGrath <roland@redhat.com>
12385
fde89ad0
RM
12386 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
12387 string.
12388 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
12389
11767d47
RM
12390 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
12391 missing & here too.
12392
440d8bc2
UD
123932002-12-05 Ulrich Drepper <drepper@redhat.com>
12394
12395 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
12396 lowlevellock.
12397 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
12398 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
12399 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
12400 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
12401 for __libc_lock_* macros.
12402 * Makefile (routines): Add libc-lowlevellock.
12403
124042002-10-09 Roland McGrath <roland@redhat.com>
12405
12406 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
12407 Under [__PIC__], call the function via the pointer fetched for
12408 comparison rather than a call by name that uses the PLT.
12409 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
12410 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
12411 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
12412 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
12413 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
12414
d5ed0118
RM
124152002-12-04 Roland McGrath <roland@redhat.com>
12416
12417 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
12418
12419 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
12420 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
12421
12422 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
12423
eaa4099f
UD
124242002-12-04 Ulrich Drepper <drepper@redhat.com>
12425
12426 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
12427 a completely opaque, non-integer type.
12428 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
12429
33b5d0cc
UD
124302002-12-05 Jakub Jelinek <jakub@redhat.com>
12431
12432 * sysdeps/i386/tls.h: Include stdlib.h.
12433 * sysdeps/x86_64/tls.h: Likewise.
12434
7a5cdb30
UD
124352002-12-04 Ulrich Drepper <drepper@redhat.com>
12436
c4a6d859
UD
12437 * Makefile (tests): Add tst-locale2.
12438 (tests-static): Likewise.
12439 * tst-locale2.c: New file.
12440
7a5cdb30
UD
12441 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
12442 volatile and add memory clobbers to lock operations.
12443
d82d5d12
UD
124442002-12-03 Ulrich Drepper <drepper@redhat.com>
12445
69cae3cf
UD
12446 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
12447 * sysdeps/i386/i486/bits/atomic.h: New file.
12448 * sysdeps/i386/i586/bits/atomic.h: New file.
12449 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
12450 include i486 version.
12451 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
12452 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 12453 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 12454
e4044c01
UD
12455 * allocatestack.c (get_cached_stack): Don't crash if we first
12456 found a stack with a larger size then needed.
12457 Reported by Hui Huang <hui.huang@sun.com>.
12458
d82d5d12
UD
12459 * Makefile (tests): Add tst-sysconf.
12460 * tst-sysconf.c: New file.
12461
12462 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
12463 PTHREAD_THREADS_MAX.
12464
fa9a4ff0
RM
124652002-12-02 Roland McGrath <roland@redhat.com>
12466
12467 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
12468 Declare using hidden_proto instead of attribute_hidden, so there are
12469 non-.hidden static symbols for gdb to find.
12470 (__pthread_keys): Likewise.
12471 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
12472 * allocatestack.c (__stack_user): Likewise.
12473 * pthread_create.c (__pthread_keys): Likewise.
12474 (__nptl_threads_events, __nptl_last_event): Make these static instead
12475 of hidden.
12476 * pthread_key_create.c (__pthread_pthread_keys_max,
12477 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
12478
91949a33
UD
124792002-12-02 Ulrich Drepper <drepper@redhat.com>
12480
c22b52fa
UD
12481 * Makefile (tests): Add tst-locale1. If buid-static is yes link
12482 statically.
12483 * tst-locale1.c: New file.
12484
beb6aa41
UD
12485 * pthread_cond_timedwait.c: Include <stdlib.h>.
12486
91949a33
UD
12487 * Makefile (tests): Add tst-fork2 and tst-fork3.
12488 * tst-fork2.c: New file.
12489 * tst-fork3.c: New file.
12490
654dff90
UD
124912002-11-28 Ulrich Drepper <drepper@redhat.com>
12492
cb0e76b4
UD
12493 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
12494
12495 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
12496 require it to 200112L.
12497
12498 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
12499 instruction only if HAVE_CMOV is defined.
12500 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
12501
975aa229
UD
12502 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
12503
654dff90
UD
12504 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
12505
12506 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
12507
12508 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
12509
a3931336
UD
125102002-11-27 Ulrich Drepper <drepper@redhat.com>
12511
c10c099c
UD
12512 * sysdeps/x86_64/bits/atomic.h: New file.
12513
12514 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
12515 16-bit operations.
12516
dca99d27
UD
12517 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
12518 possible since gettid cannot fail.
12519
f78deea6
UD
12520 * sysdeps/x86_64/pthreaddef.h: New file.
12521
12522 * sysdeps/i386/pthreaddef.h (gettid): Removed.
12523
12524 * sysdeps/x86_64/pthread_spin_init.c: New file.
12525 * sysdeps/x86_64/pthread_spin_lock.c: New file.
12526 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
12527 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
12528
12529 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
12530 Add missing lock prefix. Minute optimization.
12531
12532 * tst-spin2.c (main): Also check successful trylock call.
12533
12534 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
12535 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
12536
12537 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
12538 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
12539
12540 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
12541 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
12542 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
12543
12544 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
12545 value in case of an error.
12546
a3931336
UD
12547 * sysdeps/x86_64/tls.h: New file.
12548
76a50749
UD
125492002-11-26 Ulrich Drepper <drepper@redhat.com>
12550
117c452c
UD
12551 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
12552 takes the array member name and the index as parameters.
12553 (THREAD_SETMEM_NC): Likewise.
12554 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
12555 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
12556 interfaces.
12557
12558 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
12559 to decide which code to use.
12560 (THREAD_SETMEM_NC): Likewise.
12561
76a50749
UD
12562 * allocatestack.c (queue_stack): Don't remove stack from list here.
12563 Do it in the caller. Correct condition to prematurely terminate
12564 loop to free stacks.
12565 (__deallocate_stack): Remove stack from list here.
12566
125672002-11-26 Ulrich Drepper <drepper@redhat.com>
12568
12569 * Makefile (tests): Add tst-stack1.
12570 * tst-stack1.c: New file.
12571
12572 * allocatestack.c (allocate_stack): Initialize the TCB on a user
12573 provided stack.
12574
12575 * pthread_attr_getstack.c: Return bottom of the thread area.
12576
125772002-11-25 Ulrich Drepper <drepper@redhat.com>
12578
12579 * Makefile (libpthread-routines): Add pt-allocrtsig and
12580 pthread_kill_other_threads.
12581 * pt-allocrtsig.c: New file.
12582 * pthread_kill_other_threads.c: New file.
12583 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
12584 all three functions.
12585 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
12586 allocrtsig.
12587 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
12588 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
12589 and __libc_allocate_rtsig_private.
12590 * Versions (libpthread): Export pthread_kill_other_threads_np,
12591 __libc_current_sigrtmin, and __libc_current_sigrtmax.
12592
125932002-11-24 Ulrich Drepper <drepper@redhat.com>
12594
12595 * allocatestack.c (allocate_stack): stackaddr in attribute points to
12596 the end of the stack. Adjust computations.
12597 When mprotect call fails dequeue stack and free it.
12598 * pthread_attr_setstack.c: Store top of the stack in stackaddr
12599 attribute.
12600 * pthread_getattr_np.c: Likewise.
12601
12602 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
12603 surprises.
12604
126052002-11-23 Ulrich Drepper <drepper@redhat.com>
12606
12607 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
12608 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
12609
126102002-11-22 Ulrich Drepper <drepper@redhat.com>
12611
12612 * pthread_getspecific.c: Optimize access to first 2nd-level array.
12613 * pthread_setspecific.c: Likewise.
12614
126152002-11-21 Ulrich Drepper <drepper@redhat.com>
12616
12617 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
12618 definitions. Get them from the official place.
12619 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
12620
12621 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
12622 Use new CLONE_ flags in clone() calls.
12623
12624 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
12625 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
12626
12627 * Versions: Add pthread_* functions for libc.
12628 * forward.c: New file.
12629
12630 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
12631 errno-loc.
12632 * herrno.c: New file.
12633 * res.c: New file.
12634
12635 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
12636 sem_trywait, and sem_timedwait. Add herrno and res.
12637 * sem_init.c: Don't initialize lock and waiters members.
12638 * sem_open.c: Likewise.
12639 * sem_post.c: Removed.
12640 * sem_wait.c: Removed.
12641 * sem_trywait.c: Removed.
12642 * sem_timedwait.c: Removed.
12643 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
12644 Includes full implementations of sem_post, sem_wait, sem_trywait,
12645 and sem_timedwait.
12646 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
12647 for new implementation.
12648 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
12649 and waiters fields.
12650
12651 * tst-sem3.c: Improve error message.
12652 * tst-signal3.c: Likewise.
12653
12654 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
12655 to tell the kernel about the termination futex and to initialize tid
12656 member. Don't initialize main_thread.
12657 * descr.h (struct pthread): Remove main_thread member.
12658 * cancelllation.c (__do_cancel): Remove code handling main thread.
12659 The main thread is not special anymore.
12660
12661 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
12662 size of the stacks to stack_cache_actsize.
12663
12664 * pt-readv.c: Add missing "defined".
12665 * pt-sigwait.c: Likewise.
12666 * pt-writev.c: Likewise.
12667
126682002-11-09 Ulrich Drepper <drepper@redhat.com>
12669
12670 * Versions: Export __connect from libpthread.
12671 Patch by Luca Barbieri <ldb@ldb.ods.org>.
12672
12673 * Makefile (libpthread-routines): Add pt-raise.
12674 * sysdeps/unix/sysv/linux/raise.c: New file.
12675 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
12676 * sysdeps/generic/pt-raise.c: New file.
12677
12678 * pthread_cond_init.c: Initialize all data elements of the condvar
12679 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
12680
12681 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
12682 * pthread_create.c: Likewise.
12683
12684 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
12685 * tst-key1.c: New file.
12686 * tst-key2.c: New file.
12687 * tst-key3.c: New file.
12688
12689 * Versions: Export pthread_detach for version GLIBC_2.0.
12690 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
12691
126922002-11-08 Ulrich Drepper <drepper@redhat.com>
12693
12694 * pthread_key_create.c: Terminate search after an unused key was found.
12695 Patch by Luca Barbieri <ldb@ldb.ods.org>.
12696
12697 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
12698 Patch by Luca Barbieri <ldb@ldb.ods.org>.
12699
127002002-10-10 Ulrich Drepper <drepper@redhat.com>
12701
12702 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
12703 dynamic lookup for errno in PIC.
12704
12705 * allocatestack.c (get_cached_stack): Rearrange code slightly to
12706 release the stack lock as soon as possible.
12707 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
12708 the static TLS block.
12709 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
12710
12711 * cancellation.c: Renamed from cancelation.c.
12712 * Makefile: Adjust accordingly.
12713 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
12714 * cleanup_defer.c: Use CANCELLATION_P.
12715 * pthread_testcancel.c: Likewise.
12716 * descr.h: Fix spelling in comments.
12717 * init.c: Likewise.
12718 * pthread_getattr_np.c: Likewise.
12719 * pthread_getschedparam.c: Likewise.
12720 * pthread_setschedparam.c: Likewise.
12721 * Versions: Likewise.
12722
12723 * pt-pselect.c: New file.
12724 * Makefile (libpthread-routines): Add pt-pselect.
12725 * Versions: Add pselect.
12726
12727 * tst-cancel4.c: New file.
12728 * Makefile (tests): Add tst-cancel4.
12729
127302002-10-09 Ulrich Drepper <drepper@redhat.com>
12731
12732 * pthread_mutex_lock.c: Always record lock ownership.
12733 * pthread_mutex_timedlock.c: Likewise.
12734 * pthread_mutex_trylock.c: Likewise.
12735
12736 * pt-readv.c: New file.
12737 * pt-writev.c: New file.
12738 * pt-creat.c: New file.
12739 * pt-msgrcv.c: New file.
12740 * pt-msgsnd.c: New file.
12741 * pt-poll.c: New file.
12742 * pt-select.c: New file.
12743 * pt-sigpause.c: New file.
12744 * pt-sigsuspend.c: New file.
12745 * pt-sigwait.c: New file.
12746 * pt-sigwaitinfo.c: New file.
12747 * pt-waitid.c: New file.
12748 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
12749 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
12750 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
12751 * Versions: Add all the new functions.
12752
12753 * tst-exit1.c: New file.
12754 * Makefile (tests): Add tst-exit1.
12755
12756 * sem_timedwait.c: Minor optimization for more optimal fastpath.
12757
127582002-10-08 Ulrich Drepper <drepper@redhat.com>
12759
12760 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
12761
12762 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
12763 call. pthread_join is an official cancellation point.
12764 * pthread_timedjoin.c: Likewise.
12765
12766 * pthread_cond_wait.c: Revert order in which internal lock are dropped
12767 and the condvar's mutex are retrieved.
12768 * pthread_cond_timedwait.c: Likewise.
12769 Reported by dice@saros.East.Sun.COM.
12770
127712002-10-07 Ulrich Drepper <drepper@redhat.com>
12772
12773 * pthreadP.h: Cut out all type definitions and move them...
12774 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
12775 * pthreadP.h: Include <internaltypes.h>.
12776
12777 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
12778 performance tweaks.
12779
12780 * sem_trywait.c: Shuffle #includes around to get right order.
12781 * sem_timedwait.c: Likewise.
12782 * sem_post.c: Likewise.
12783 * sem_wait.c: Likewise.
12784
12785 * nptl 0.3 released.
12786
12787 * Makefile (tests): Add tst-signal3.
12788 * tst-signal3.c: New file.
12789
127902002-10-05 Ulrich Drepper <drepper@redhat.com>
12791
12792 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
12793 the asms modify the sem object.
12794 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
12795
12796 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
12797 the actual members.
12798 * pthreadP.h (struct sem): New type. Actual semaphore type.
12799 * semaphoreP.h: Include pthreadP.h.
12800 * sem_getvalue.c: Adjust to sem_t change.
12801 * sem_init.c: Likewise.
12802 * sem_open.c: Likewise.
12803 * sem_post.c: Likewise.
12804 * sem_timedwait.c: Likewise.
12805 * sem_trywait.c: Likewise.
12806 * sem_wait.c: Likewise.
12807
128082002-10-04 Ulrich Drepper <drepper@redhat.com>
12809
12810 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
12811 * tst-basic2.c: New file.
12812 * tst-exec1.c: New file.
12813 * tst-exec2.c: New file.
12814 * tst-exec3.c: New file.
12815
12816 * tst-fork1.c: Remove extra */.
12817
12818 * nptl 0.2 released. The API for IA-32 is complete.