]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/ChangeLog
Update.
[thirdparty/glibc.git] / nptl / ChangeLog
CommitLineData
3abb1ff7
UD
12004-03-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2
3 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
4 the return value to a safe register.
5 (CDISABLE): Set the function argument correctly.
6
14c35863
UD
72004-03-18 Ulrich Drepper <drepper@redhat.com>
8
9 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
10 cpusetsize field, remove next.
11 * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
12 parameter for size of the CPU set.
13 (pthread_setaffinity_np): Likewise.
14 (pthread_attr_getaffinity_np): Likewise.
15 (pthread_attr_setaffinity_np): Likewise.
16 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
17 interface change, keep compatibility code.
18 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
19 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
20 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
21 * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare
22 __pthread_getaffinity_np.
23 * Versions: Add version for changed interfaces.
24 * tst-attr3.c: Adjust test for interface change.
25 * pthread_getattr_np.c: Query the kernel about the affinity mask with
26 increasing buffer sizes.
27 * pthread_attr_destroy.c: Remove unused list handling.
28 * pthread_attr_init.c: Likewise.
29
8e115d80
RM
302004-03-17 Roland McGrath <roland@redhat.com>
31
32 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
33 first argument to clock_getres so we ever enable kernel timers.
34
e3b22ad3
UD
352004-03-15 Ulrich Weigand <uweigand@de.ibm.com>
36
37 * init.c (nptl_version): Add __attribute_used__ to nptl_version.
38
841153fa
RH
392004-03-12 Richard Henderson <rth@redhat.com>
40
e3b22ad3
UD
41 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
42 oldvalue from CENABLE to CDISABLE.
841153fa 43
932dfea7
UD
442004-03-12 Ulrich Drepper <drepper@redhat.com>
45
46 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
47 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
48 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
49 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
50
9852f6dc
RH
512004-03-11 Richard Henderson <rth@redhat.com>
52
53 * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
54 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
55 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
56
43513fb7
UD
572004-03-11 Jakub Jelinek <jakub@redhat.com>
58
59 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
60 instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
61 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
62
632004-03-11 Jakub Jelinek <jakub@redhat.com>
64
65 * forward.c (__pthread_cond_broadcast_2_0,
66 __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
67 __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
68 __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
69
8a3e10e0
UD
702004-03-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
71
72 * sysdeps/sh/tcb-offsets.sym: Add PID.
73 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
74 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
75
6d3a2bec
UD
762004-03-10 Ulrich Drepper <drepper@redhat.com>
77
78 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
79 include <sysdep-cancel.h>, vfork is no cancellation point.
80 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
81 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
82 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
83
d3a4a571
UD
842004-03-10 Jakub Jelinek <jakub@redhat.com>
85
73b4ce64
UD
86 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
87 libc_hidden_def.
88 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
89 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
90 Likewise.
91 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
92 Likewise.
93 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
94 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
95 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
96 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
97 of DO_CALL_VIA_BREAK. Work around a gas problem.
98
d682a515
UD
99 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
100 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
101 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
102 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
103 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
104 * sysdeps/powerpc/tcb-offsets.sym: Add PID.
105
106 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
107 a local register for saving old PID. Negate PID in parent upon exit.
108
d3a4a571
UD
109 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
110 tcb-offsets.h.
111 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
112 before syscall, set to the old value in the parent afterwards.
113 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
114 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
115 tcb-offsets.h.
116 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
117 before syscall, set to the old value in the parent afterwards.
118 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
119 * sysdeps/s390/tcb-offsets.sym: Add PID.
120
121 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
122 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
123 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
124 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
125 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
126 * sysdeps/sparc/tcb-offsets.sym: Add PID.
127
1282004-03-10 Andreas Schwab <schwab@suse.de>
129
130 * sysdeps/ia64/tcb-offsets.sym: Add PID.
131 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
132 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
133
3f2fb223 1342004-03-09 Jakub Jelinek <jakub@redhat.com>
f4c024d1 135
3f2fb223
UD
136 * tst-cancel20.c (do_one_test): Clear in_sh_body first.
137 * tst-cancel21.c (do_one_test): Likewise.
138 Reported by Gordon Jin <gordon.jin@intel.com>.
f4c024d1 139
8b9d6054
UD
1402004-02-09 Jakub Jelinek <jakub@redhat.com>
141
142 * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
143 if non-zero and set to INT_MIN if zero.
144 * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
145 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
146 (SAVE_PID, RESTORE_PID): Define.
147 (__vfork): Use it.
148 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
149 Use relative path to avoid including NPTL i386/vfork.S.
150 (SAVE_PID, RESTORE_PID): Define.
151 * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
152 (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
153 * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
154 tst-vfork2x.
155 (tests-reverse): Add tst-vfork1x and tst-vfork2x.
156 * tst-vfork1.c: New test.
157 * tst-vfork2.c: New test.
158 * tst-vfork1x.c: New test.
159 * tst-vfork2x.c: New test.
160
02287d05
UD
1612004-03-08 Ulrich Drepper <drepper@redhat.com>
162
c072ef6d 163 * sysdeps/i386/tcb-offsets.sym: Add PID.
6fadea9f 164 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
c072ef6d 165 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
6fadea9f 166 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
02287d05 167
d4acd24b
UD
1682004-03-08 Steven Munroe <sjmunroe@us.ibm.com>
169
170 * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
171
8acb4b81
UD
1722004-03-08 H.J. Lu <hongjiu.lu@intel.com>
173
174 * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
175 _rtld_global_ro.
176
4d1a02ef
UD
1772004-03-07 Ulrich Drepper <drepper@redhat.com>
178
001836c8 179 * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
8acb4b81 180 _rtld_global_ro.
001836c8 181
4d1a02ef
UD
182 * tst-once4.c: Remove unnecessary macro definition.
183
184 * tst-mutex7.c (do_test): Limit thread stack size.
185 * tst-once2.c (do_test): Likewise.
186 * tst-tls3.c (do_test): Likewise.
187 * tst-tls1.c (do_test): Likewise.
188 * tst-signal3.c (do_test): Likewise.
189 * tst-kill6.c (do_test): Likewise.
190 * tst-key4.c (do_test): Likewise.
191 * tst-join4.c (do_test): Likewise.
192 * tst-fork1.c (do_test): Likewise.
193 * tst-context1.c (do_test): Likewise.
194 * tst-cond2.c (do_test): Likewise.
195 * tst-cond10.c (do_test): Likewise.
196 * tst-clock2.c (do_test): Likewise.
197 * tst-cancel10.c (do_test): Likewise.
198 * tst-basic2.c (do_test): Likewise.
199 * tst-barrier4.c (do_test): Likewise.
200
aa420660
UD
2012004-03-05 Ulrich Drepper <drepper@redhat.com>
202
203 * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
204
cff08c81
UD
2052004-03-01 Ulrich Drepper <drepper@redhat.com>
206
207 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
208 (__pthread_cond_timedwait): Optimize wakeup test.
209 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
210 (__pthread_cond_wait): Likewise.
211 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
212 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
213 Likewise.
214
b7fe377c
UD
2152004-02-29 Ulrich Drepper <drepper@redhat.com>
216
217 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
218 (__lll_mutex_lock_wait): Optimize a bit more. Just one copy of
219 the atomic instruction needed.
220 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
221 (__lll_mutex_lock_wait): Likewise.
222
4c771a3b
UD
2232004-02-28 Ulrich Drepper <drepper@redhat.com>
224
225 * Makefile (tests): Add tst-cond14 and tst-cond15.
226 * tst-cond14.c: New file.
227 * tst-cond15.c: New file.
228
a2c33d5a
UD
2292004-02-27 Ulrich Drepper <drepper@redhat.com>
230
231 * sysdeps/pthread/createthread.c (create_thread): Remove use of
232 CLONE_STOPPED. We cannot use SIGCONT which means CLONE_STOPPED
233 needs to be implemented differently to be useful.
234
261eada2
UD
2352004-02-26 Ulrich Drepper <drepper@redhat.com>
236
14ffbc83
UD
237 * pthread_attr_setschedparam.c: Don't test priority against limits
238 here. Set ATTR_FLAG_SCHED_SET flag.
239 * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
240 * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
241 from parent thread to child. If attribute is used and scheduling
242 parameters are not inherited, copy parameters from attribute or
243 compute them. Check priority value.
244 * pthread_getschedparam.c: If the parameters aren't known yet get
245 them from the kernel.
246 * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
247 ATTR_FLAG_POLICY_SET flag for thread.
248 * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
249 and ATTR_FLAG_POLICY_SET.
250
251 * sysdeps/pthread/createthread.c: Use tgkill if possible.
252
261eada2
UD
253 * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
254 fail if stack address hasn't been set. Just return 0.
255
701d185c
UD
2562004-02-25 Ulrich Drepper <drepper@redhat.com>
257
25b8e63c
UD
258 * Makefile (tests-nolibpthread): Add tst-unload. Don't link with
259 libpthread for the files in this list.
260 (CFLAGS-tst-unload): Removed.
261 * tst-unload.c (do_test): Don't use complete path for
262 LIBPHREAD_SO.
263
701d185c
UD
264 * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
265 tst-_res1mod2.
266
a8fd5a02
UD
2672004-02-22 Ulrich Drepper <drepper@redhat.com>
268
269 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
270 (__lll_mutex_lock_wait): Rewrite so that only one locked memory
271 operation per round is needed.
272 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
273 (__lll_mutex_lock_wait): Likewise.
274
dd0b7b19
UD
2752004-02-20 Ulrich Drepper <drepper@redhat.com>
276
277 * tst-cancel9.c (cleanup): Don't print to stderr.
278
5990e1fe
UD
2792004-02-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
280
281 * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
282
33ab3b66
UD
2832004-02-20 Jakub Jelinek <jakub@redhat.com>
284
1be3130e
UD
285 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
286 (__syscall_error_handler2): Call CDISABLE.
287 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
288 (__syscall_error_handler2): Call CDISABLE.
289
8ba5025a
UD
290 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
291 Release lock before the loop, don't reacquire it.
8ba5025a 292
33ab3b66
UD
293 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
294
11986c68
UD
2952004-02-19 Andreas Schwab <schwab@suse.de>
296
297 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
298 Fix last change.
299
dc391246
UD
3002004-02-18 Ulrich Drepper <drepper@redhat.com>
301
37c054c7
UD
302 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
303 (pthread_barrier_wait): After wakeup, release lock only when the
304 last thread stopped using the barrier object.
305 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
306 (pthread_barrier_wait): Likewise.
307 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
308 Likewise.
309 * Makefile (tests): Add tst-barrier4.
310 * tst-barrier4.c: New file.
dc391246
UD
311
312 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
313 (__pthread_cond_timedwait): Perform timeout test while holding
314 internal lock to prevent wakeup race.
315 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
316 * sysdeps/pthread/pthread_cond_timedwait.c
317 (__pthread_cond_timedwait): Likewise.
318 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
319 (__pthread_cond_timedwait): Likewise.
320
4a08113c
UD
3212004-02-18 Jakub Jelinek <jakub@redhat.com>
322
323 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
324 (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
325 * Makefile (tests): Add tst-rwlock13.
326 * tst-rwlock13.c: New test.
327
71b1675e
UD
3282004-02-16 Ulrich Drepper <drepper@redhat.com>
329
330 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
331 (__condvar_tw_cleanup): Little optimization.
332 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
333
cd9fdc72
UD
3342004-02-16 Steven Munroe <sjmunroe@us.ibm.com>
335
336 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
337 libpthread as "lib" parameter to SHLIB_COMPAT.
338 (__novmx_siglongjmp): Fix typo in function name.
339 (__novmx_longjmp): Fix typo in function name.
340
82038750
UD
3412004-02-13 Ulrich Drepper <drepper@redhat.com>
342
b078c591
UD
343 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
344 __builtin_expect.
345
82038750
UD
346 * sysdeps/generic/pt-longjmp.c: Moved to...
347 * sysdeps/pthread/pt-longjmp.c: ...here. New file.
348
e2982bf0
UD
3492004-01-29 Steven Munroe <sjmunroe@us.ibm.com>
350
351 * Makefile (libpthread-routines): Add pt-cleanup.
352 * pt-longjmp.c: Removed.
353 * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
354 * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
355 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
356 Version longjmp, siglongjmp for GLIBC_2.3.4.
357 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
358
3730d95c
UD
3592004-02-13 Ulrich Drepper <drepper@redhat.com>
360
219304ec
UD
361 * sysdeps/pthread/pthread_cond_timedwait.c
362 (__pthread_cond_timedwait): Optimize. Drop internal lock earlier.
363 Reuse code. Add __builtin_expects.
364
3730d95c
UD
365 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
366 (__pthread_cond_timedwait): Get internal lock in case timeout has
367 passed before the futex syscall.
368 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
369
5673ccc1
UD
3702004-01-20 Ulrich Drepper <drepper@redhat.com>
371
debddf64
UD
372 * allocatestack.c: Pretty printing.
373
5673ccc1
UD
374 * sysdeps/pthread/createthread.c (create_thread): Don't add
375 CLONE_DETACHED bit if it is not necessary.
376
6bae8725
UD
3772004-01-16 Ulrich Drepper <drepper@redhat.com>
378
379 * pthread_getattr_np.c: Include ldsodefs.h.
380
ff151400
RH
3812004-01-16 Richard Henderson <rth@redhat.com>
382
6bae8725
UD
383 * allocatestack.c: Don't declare __libc_stack_end.
384 * init.c (__pthread_initialize_minimal_internal): Likewise.
385 * pthread_getattr_np.c (pthread_getattr_np): Likewise.
ff151400 386
ba683832
RH
3872004-01-15 Richard Henderson <rth@redhat.com>
388
389 * sysdeps/alpha/tls.h (tcbhead_t): Add private.
390 (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
391 TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
392 GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
393 (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
394 (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
395 (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
396 * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
397
630d93a7
UD
3982004-01-14 Ulrich Drepper <drepper@redhat.com>
399
219304ec 400 * init.c (pthread_functions): Make array const.
630d93a7 401
d1fc817e
UD
4022004-01-13 Ulrich Drepper <drepper@redhat.com>
403
404 * allocatestack.c (__make_stacks_executable): Change interface.
405 Check parameters. Pass parameter on to libc counterpart.
406 * pthreadP.h: Change declaration.
407
dc927809
RH
4082004-01-13 Richard Henderson <rth@redhat.com>
409
10677727
UD
410 * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
411 prototype form.
412 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
413 Likewise.
414
d1fc817e
UD
415 * sysdeps/alpha/Makefile: New file.
416 * sysdeps/alpha/tcb-offsets.sym: New file.
417 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
418 Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
dc927809 419
d1fc817e
UD
420 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
421 on powerpc version.
dc927809 422
249a3d0c
UD
4232004-01-08 Jakub Jelinek <jakub@redhat.com>
424
425 * Makefile (tests): Add tst-backtrace1.
426 * tst-backtrace1.c: New test.
427
763c0490
RM
4282003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
429
430 * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
431 register as second parameter to the REGISTER macro.
432 * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
433 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
434 * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
435 * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
436 * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
437 of thread register as second parameter to REGISTER macro in 64 case.
438
c7baafd5
UD
4392004-01-03 Ulrich Drepper <drepper@redhat.com>
440
441 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
442 (CFLAGS-getpid.o): Defined.
443 (CFLAGS-getpid.os): Defined.
444
25ac0258
UD
4452003-12-31 Ulrich Drepper <drepper@redhat.com>
446
447 * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
448 returned for main thread does not overlap with any other VMA.
449 Patch by Jakub Jelinek.
450
795985e4
UD
4512003-12-29 Jakub Jelinek <jakub@redhat.com>
452
453 * tst-raise1.c: Include stdio.h.
454
cb5b9388
UD
4552003-12-23 Jakub Jelinek <jakub@redhat.com>
456
457 * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
458 setting with __ASSUME_TGKILL || defined __NR_tgkill.
459 If pid is 0, set it to selftid.
460 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
461 Don't set self->pid but self->tid. If self->pid == 0 and self->tid
462 != 0, return self->tid without doing a syscall.
463 * descr.h (struct pthread): Move pid field after tid.
464
465 * Makefile (tests): Add tst-raise1.
466 * tst-raise1.c: New file.
467
432aaf5b
RM
4682003-12-23 Roland McGrath <roland@redhat.com>
469
470 * tst-oddstacklimit.c: New file.
471 * Makefile (tests): Add it.
472 (tst-oddstacklimit-ENV): New variable.
473
474 * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
475 value up to page size for __default_stacksize.
476
33ebea17
UD
4772003-12-21 Ulrich Drepper <drepper@redhat.com>
478
479 * Makefile (tests): Add tst-eintr5.
480 * tst-eintr5.c: New file.
481
482 * eintr.c (eintr_source): Prevent sending signal to self.
483
484 * tst-eintr2.c (tf1): Improve error message.
485
bbe35eb5
UD
4862003-12-20 Ulrich Drepper <drepper@redhat.com>
487
488 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
489 * sysdeps/unix/sysv/linux/getpid.c: New file.
c0ecb80a
UD
490 * pthread_cancel.c: Add comment explaining use of PID field.
491 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
492 * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
493 * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
494 temporarily to signal the field must not be relied on and updated
495 by getpid().
496 * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
497 temporarily negative.
498 * sysdeps/unix/sysv/linux/raise.c: Likewise.
bbe35eb5 499
4efdd8d3
UD
5002003-12-19 Ulrich Drepper <drepper@redhat.com>
501
502 * eintr.c (setup_eintr): Add new parameter. Pass to thread function.
503 (eintr_source): If ARG != NULL, use pthread_kill.
504 * tst-eintr1.c: Adjust for this change.
505 * tst-eintr2.c: Likewise.
506 * Makefile (tests): Add tst-eintr3 and tst-eintr4.
507 * tst-eintr3.c: New file.
508 * tst-eintr4.c: New file.
509
5102003-12-19 Jakub Jelinek <jakub@redhat.com>
511
512 * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
513 if CANCELSTATE_BITMASK is set.
514 * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
515 Likewise.
516
517 * Makefile (tests): Add tst-cancel22 and tst-cancel23.
518 (tests-reverse): Add tst-cancel23.
519 * tst-cancel22.c: New test.
520 * tst-cancel23.c: New test.
521
675620f7
UD
5222003-12-18 Ulrich Drepper <drepper@redhat.com>
523
524 * tst-eintr1.c: Better error messages.
525
526 * Makefile (tests): Add tst-eintr2.
527 * tst-eintr2.c: New file.
528
5292003-12-18 Jakub Jelinek <jakub@redhat.com>
530
531 * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
532 (CFLAGS-tst-cancelx21.c): Set.
533 * tst-cancel21.c: New test.
534 * tst-cancelx21.c: New test.
535
536 * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each
537 comparison operand.
538 (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
539 _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations.
540 * pt-longjmp.c: Include jmpbuf-unwind.h.
541 (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
542 _JMPBUF_UNWINDS. Adjust compared pointers.
543 * init.c (__pthread_initialize_minimal_internal): Initialize
544 pd->stackblock_size.
545 * sysdeps/pthread/jmpbuf-unwind.h: Removed.
546 * sysdeps/alpha/jmpbuf-unwind.h: New file.
547 * sysdeps/i386/jmpbuf-unwind.h: New file.
548 * sysdeps/powerpc/jmpbuf-unwind.h: New file.
549 * sysdeps/s390/jmpbuf-unwind.h: New file.
550 * sysdeps/sh/jmpbuf-unwind.h: New file.
551 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
552 * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2e5e031d 553 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
675620f7
UD
554 (_JMPBUF_CFA_UNWINDS): Remove.
555 (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
556
5572003-12-12 Jakub Jelinek <jakub@redhat.com>
558
559 * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
560 (CFLAGS-tst-cancelx20.c): Set.
561 * tst-cancel20.c: New test.
562 * tst-cancelx20.c: New test.
563
2d951ab6
UD
5642003-12-17 Ulrich Drepper <drepper@redhat.com>
565
566 * init.c (__pthread_initialize_minimal_internal): Don't treat
567 architectures with separate register stack special here when
568 computing default stack size.
569
f8a3a2e7
RM
5702003-12-17 Roland McGrath <roland@redhat.com>
571
572 * Makefile (tst-cancelx7-ARGS): New variable.
573 Reportd by Greg Schafer <gschafer@zip.com.au>.
574
e796f92f
UD
5752003-12-17 Jakub Jelinek <jakub@redhat.com>
576
577 * Makefile (tests): Add tst-stack3. Depend on $(objpfx)tst-stack3-mem.
578 (generated): Add tst-stack3.mtrace and tst-stack3-mem.
579 (tst-stack3-ENV): Set.
580 ($(objpfx)tst-stack3-mem): New.
581 * tst-stack3.c: New test.
582
092eb73c
UD
5832003-12-10 David Mosberger <davidm@hpl.hp.com>
584
585 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
586 Add unwind directives. Drop unused .regstk directive.
587 (_fini_EPILOG_BEGINS): Add unwind directives.
588
ff48874d
UD
5892003-12-11 Ulrich Drepper <drepper@redhat.com>
590
591 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
592 Assume parameter is a pointer.
593 (lll_futex_wake): Likewise.
20945457
UD
594 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
595 Likewise.
596 (lll_futex_wake): Likewise.
ff48874d
UD
597 Reported by Boris Hu.
598 * sysdeps/unix/sysv/linux/unregister-atfork.c
599 (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
600
601 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
602
1d9d0b80
UD
6032003-12-10 Ulrich Drepper <drepper@redhat.com>
604
605 * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
606 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
607 __rtld_lock_initialize for ld.so lock.
608 Patch in part by Adam Li <adam.li@intel.com>.
609
c776b3d7
UD
6102003-12-02 David Mosberger <davidm@hpl.hp.com>
611
612 * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
613 in $(gnulib). Also, remove stale comment.
614
6152003-11-12 David Mosberger <davidm@hpl.hp.com>
616
617 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
618 advantage of new syscall stub and optimize accordingly.
619
620 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
621 from SYS_futex, to match expectations of
622 sysdep.h:DO_INLINE_SYSCALL.
623 (lll_futex_clobbers): Remove.
624 (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
625 (lll_futex_wake): Likewise.
626 (lll_futex_requeue): Likewise.
627 (__lll_mutex_trylock): Rewrite to a macro, so we can include this
628 file before DO_INLINE_SYSCALL is defined (proposed by Jakub
629 Jelinek).
630 (__lll_mutex_lock): Likewise.
631 (__lll_mutex_cond_lock): Likewise.
632 (__lll_mutex_timed_lock): Likewise.
633 (__lll_mutex_unlock): Likewise.
634 (__lll_mutex_unlock_force): Likewise.
635
636 * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
637 comes before the include of <sysdep.h>.
638 (THREAD_SELF_SYSINFO): New macro.
639 (THREAD_SYSINFO): Likewise.
640 (INIT_SYSINFO): New macro.
641 (TLS_INIT_TP): Call INIT_SYSINFO.
642
643 * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
644
645 * sysdeps/pthread/createthread.c (create_thread): Use
646 THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
647 * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
648 THREAD_SELF_SYSINFO instead of open code.
649 * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
650 (THREAD_SYSINFO): Likewise.
651
652 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
653
654 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
655
57d20ee7
UD
6562003-12-06 Ulrich Drepper <drepper@redhat.com>
657
658 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
659 instead of .init. Patch by David Mosberger.
660
67aeab2a
AJ
6612003-11-30 Thorsten Kukuk <kukuk@suse.de>
662
663 * sysdeps/pthread/configure.in: Remove broken declaration in C
664 cleanup handling check.
665
8ca203e6
AJ
6662003-11-30 Andreas Jaeger <aj@suse.de>
667
668 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
669 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
670 Likewise.
671
46bf9de7
UD
6722003-11-27 Jakub Jelinek <jakub@redhat.com>
673
674 * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
675 * pthread_attr_destroy.c: Include shlib-compat.h.
676 (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
677 is set in iattr->flags.
678 * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
679
1d9b73ab
UD
6802003-11-21 Jakub Jelinek <jakub@redhat.com>
681
682 * Makefile (distribute): Add tst-cleanup4aux.c.
683
684 * tst-cond12.c (prepare): Add prototype. Move after test-skeleton.c
685 include.
686
53f9084e
UD
6872003-11-21 Ulrich Drepper <drepper@redhat.com>
688
1d9b73ab
UD
689 * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
690 pthread_cond_signal.
691
e42a990e
UD
692 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
693 store mutex address if the current value is ~0l.
694 * sysdeps/pthread/pthread_cond_timedwait.c
695 (__pthread_cond_timedwait): Likewise.
696 * sysdeps/pthread/pthread_cond_broadcast.c
697 (__pthread_cond_broadcast): Don't use requeue for pshared
698 condvars.
699
700 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
701 (__pthread_cond_wait): Don't store mutex address if the current
702 value is ~0l.
703 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
704 (__pthread_cond_timedwait): Likewise.
705 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
706 (__pthread_cond_broadcast): Don't use requeue for pshared
707 condvars.
708
709 * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
710 element with ~0l for pshared condvars, with NULL otherwise.
711
712 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
713 (__pthread_cond_wait): Don't store mutex address if the current
714 value is ~0l.
715 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
716 (__pthread_cond_timedwait): Likewise.
717 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
718 (__pthread_cond_broadcast): Don't use requeue for pshared
719 condvars.
720
bf68b236 721 * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
53f9084e 722 * tst-cond12.c: New file.
bf68b236 723 * tst-cond13.c: New file.
53f9084e 724
9780c971
UD
7252003-11-17 Ulrich Drepper <drepper@redhat.com>
726
727 * sysdeps/pthread/configure.in: Make missing forced unwind support
728 fatal.
729
74e12fbc
UD
7302003-11-11 Ulrich Drepper <drepper@redhat.com>
731
732 * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
733
c685b2b0
UD
7342003-11-06 Ulrich Drepper <drepper@redhat.com>
735
736 * Makefile: Add magic to clean up correctly.
737
44e94149
UD
7382003-11-05 Jakub Jelinek <jakub@redhat.com>
739
740 * unwind.c (FRAME_LEFT): Define.
741 (unwind_stop): Handle old style cleanups here.
742 (__pthread_unwind): Handle old style cleanups only if
743 !HAVE_FORCED_UNWIND.
744 * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
745 (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
746 ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
747 ($(objpfx)tst-cleanupx4): Likewise.
748 * tst-cleanup4.c: New test.
749 * tst-cleanup4aux.c: New.
750 * tst-cleanupx4.c: New test.
751
c28422b5
UD
7522003-11-04 Ulrich Drepper <drepper@redhat.com>
753
754 * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
755 lll_mutex_*lock macros to skip atomic operations on some archs.
756
27176677
UD
7572003-11-03 Ulrich Drepper <drepper@redhat.com>
758
759 * sysdeps/pthread/tst-timer.c (main): Initialize
760 sigev2.sigev_value as well.
761
026395a2
RM
7622003-10-15 Roland McGrath <roland@redhat.com>
763
764 * sysdeps/pthread/configure.in: Barf if visibility attribute support
765 is missing.
766 * sysdeps/pthread/configure: Regenerated.
767
fa3cbe3d
UD
7682003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
769
770 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
771 locking macros. No distinction between normal and mutex locking
772 anymore.
773 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
774 Merge bits from lowlevelmutex.S we still need.
775 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
776 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
777 * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
778 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
779 new mutex implementation.
780 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
781 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
782 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
783 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
784 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
785 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
786 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
787 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
788 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
789 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
790 symbol for entry point to avoid cancellation.
791
e700a908
UD
7922003-10-07 Jakub Jelinek <jakub@redhat.com>
793
794 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
795 changes.
796 (SAVE_OLDTYPE_0): Fix a typo.
797
c70a86b6
UD
7982003-10-03 Ulrich Drepper <drepper@redhat.com>
799
800 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
801 Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
802
134abcb5
UD
8032003-10-02 Ulrich Drepper <drepper@redhat.com>
804
805 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
806 correct offset.
807
b77ca0e8
UD
8082003-10-02 Jakub Jelinek <jakub@redhat.com>
809
810 * Makefile (tests): Add tst-cancel19.
811 * tst-cancel19.c: New test.
812
4d961dc7
UD
8132003-10-02 Ulrich Drepper <drepper@redhat.com>
814
815 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
816 restoring of the old cancellation type.
817
1d5b20ad 8182003-09-30 Jakub Jelinek <jakub@redhat.com>
94ae6d75 819
1d5b20ad
UD
820 * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
821
4106a403
RM
8222003-09-27 Wolfram Gloger <wg@malloc.de>
823
4d961dc7 824 * sysdeps/pthread/malloc-machine.h: New file
94ae6d75 825
fca9d8e4
RM
8262003-09-24 Roland McGrath <roland@redhat.com>
827
828 * allocatestack.c (__make_stacks_executable): Don't ignore return
829 value from _dl_make_stack_executable.
830
c9c60884
UD
8312003-09-24 Ulrich Drepper <drepper@redhat.com>
832
69c9fa04
UD
833 * allocatestack.c (__make_stacks_executable): Also change
834 permission of the currently unused stacks.
835
279f1143
UD
836 * allocatestack.c (change_stack_perm): Split out from
837 __make_stacks_executable.
838 (allocate_stack): If the required permission changed between the time
839 we started preparing the stack and queueing it, change the permission.
840 (__make_stacks_executable): Call change_stack_perm.
841
c9c60884
UD
842 * Makefile: Build tst-execstack-mod locally.
843 * tst-execstack-mod.c: New file.
844
54ee14b3
UD
8452003-09-23 Jakub Jelinek <jakub@redhat.com>
846
847 * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
848
8492003-09-23 Roland McGrath <roland@redhat.com>
850
851 * tst-execstack.c: New file.
852 * Makefile (tests): Add it.
853 ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
854 (LDFLAGS-tst-execstack): New variable.
855
856 * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
857 whether to use PROT_EXEC for stack mmap.
858 (__make_stacks_executable): New function.
859 * pthreadP.h: Declare it.
860 * init.c (__pthread_initialize_minimal_internal): Set
861 GL(dl_make_stack_executable_hook) to that.
862
365b1602
UD
8632003-09-22 Ulrich Drepper <drepper@redhat.com>
864
865 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
866 recommendation from AMD re avoidance of lock prefix.
867
39358e8b
UD
8682003-09-22 Jakub Jelinek <jakub@redhat.com>
869
870 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
871 lll_futex_timed_wait instead of lll_futex_wait.
872 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
873 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
874 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
875 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
876 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
877 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
878 * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
879 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
880 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
881 Completely revamp the locking macros. No distinction between
882 normal and mutex locking anymore.
883 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
884 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
885 __lll_lock_timedwait): Fix prototypes.
886 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
887 __lll_lock_timedwait): Likewise.
888 (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
889 macros, add __builtin_expect.
890 (lll_mutex_timedlock): Likewise. Fix return value.
891 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
892 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
893 * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
894 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
895 * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
896 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
897 * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
898 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
899
9d08fbbb
UD
9002003-09-22 Ulrich Drepper <drepper@redhat.com>
901
c0df57e1
UD
902 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
903 (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
904 operation if possible.
905
9d08fbbb
UD
906 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
907 like jumping over the lock prefix.
908
71451de2
UD
9092003-09-21 Ulrich Drepper <drepper@redhat.com>
910
911 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
912 locking macros. No distinction between normal and mutex locking
913 anymore.
3a226d33 914 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
bc1989aa
UD
915 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
916 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
71451de2
UD
917 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
918 locking. Merge bits from lowlevelmutex.S we still need.
3a226d33 919 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
bc1989aa 920 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
71451de2 921 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3a226d33 922 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
71451de2
UD
923 * Makefile (routines): Remove libc-lowlevelmutex.
924 (libpthread-rountines): Remove lowlevelmutex.
3a226d33
UD
925 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
926 for new mutex implementation.
927 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
928 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
929 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
930 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
931 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
932 Likewise.
933 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
934 Likewise.
935 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
936 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
937 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
938 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
939 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
940 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
941 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
942 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
943 Likewise.
944 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
945 Likewise.
946 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
947 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
948 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
949 Don't use requeue.
950 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
bc1989aa 951 * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
71451de2 952
8f31c0ef
UD
9532003-09-20 Ulrich Drepper <drepper@redhat.com>
954
56a4aa98
UD
955 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
956 in parameters of asm with output parameters.
957
8f31c0ef
UD
958 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
959 type of DECR parameter to int.
960 * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
961
8b8074da
UD
9622003-09-18 Jakub Jelinek <jakub@redhat.com>
963
964 * tst-attr3.c (tf, do_test): Print stack start/end/size and
965 guardsize for each thread.
966
65af7e61
UD
9672003-09-17 Jakub Jelinek <jakub@redhat.com>
968
9ba96eda
UD
969 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
970 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
971 (pthread_attr_setaffinity_np): Handle cpuset == NULL.
972
06f6ca90
UD
973 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
974 (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
975 NULL.
976 * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
977 * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
978 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
979 (pthread_getaffinity_np): Add hidden_def.
980
981 * Makefile (tests): Add tst-attr3.
982 * tst-attr3.c: New test.
983
65af7e61
UD
984 * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
985
3402852c
UD
9862003-09-15 Jakub Jelinek <jakub@redhat.com>
987
988 * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
989 CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
990
a4db3439
UD
9912003-09-17 Jakub Jelinek <jakub@redhat.com>
992
993 * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
994 * tst-align.c: Include tst-stack-align.h.
995 (tf, do_test): Use TEST_STACK_ALIGN macro.
996
9972003-09-17 Ulrich Drepper <drepper@redhat.com>
998
999 * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
1000 variable.
1001
92ce4676
UD
10022003-09-16 Ulrich Drepper <drepper@redhat.com>
1003
1004 * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
1005 stack-related values for the initial thread.
1006
e07bb02a
UD
10072003-09-15 Jakub Jelinek <jakub@redhat.com>
1008
1009 * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
1010
d087b5dc
UD
10112003-09-11 Ulrich Drepper <drepper@redhat.com>
1012
1013 * pthread_mutex_lock.c: Minor code rearrangements.
1014
7f08f55a
RM
10152003-09-05 Roland McGrath <roland@redhat.com>
1016
1017 * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
1018 Instead, include ../nptl_db/db_info.c to do its magic.
1019 * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
1020 (__pthread_pthread_key_2ndlevel_size): Likewise.
1021 * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
1022 * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
1023 * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
1024 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
1025 * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
1026 * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
1027 * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
1028 * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
1029 * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
1030 * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
1031 * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
1032 * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
1033 * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
1034 * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
1035 * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
1036 * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
1037 * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
1038
806e4a4a
UD
10392003-09-08 Ulrich Drepper <drepper@redhat.com>
1040
1041 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
1042 of pthread_t to be compatible with LT.
1043 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1044 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
1045 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1046 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1047 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
1048 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1049 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
1050
17f83e56
UD
10512003-09-04 Ulrich Drepper <drepper@redhat.com>
1052
1053 * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
1054
58e8ec84
UD
10552003-09-04 Jakub Jelinek <jakub@redhat.com>
1056
1057 * unwind-forcedunwind.c: Move to...
1058 * sysdeps/pthread/unwind-forcedunwind.c: ...here.
1059 (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
1060 * sysdeps/pthread/jmpbuf-unwind.h: New file.
1061 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
1062 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
1063 * unwind.c: Include jmpbuf-unwind.h.
1064 (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
1065
abf1cf21
JJ
10662003-09-02 Jakub Jelinek <jakub@redhat.com>
1067
4a244f0d
UD
1068 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
1069 * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
1070 pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
1071 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
1072 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
1073 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
1074 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
1075 * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
1076 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
1077 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
1078 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
1079 function.
1080 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
1081 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
1082 * Makefile (tests): Add tst-stack2.
1083 * tst-stack2.c: New test.
1084 * tst-stack1.c: Include limits.h and sys/param.h.
1085 (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
1086
e29ef647
UD
1087 * pthread_condattr_setpshared.c: Include errno.h.
1088 (pthread_condattr_setpshared): Return EINVAL if pshared
1089 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
1090
5777d565
UD
1091 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
1092 defined symbol for entry point to avoid cancellation.
1093 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
1094 Likewise.
1095 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
1096 Likewise.
1097 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
1098 Likewise.
1099 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
1100 Likewise.
1101 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
1102 Likewise.
1103 * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
1104 __close_nocancel, __read_nocancel, __write_nocancel,
1105 __waitpid_nocancel): Add attribute_hidden. If not in libc.so,
1106 libpthread.so or librt.so, define to corresponding function
1107 without _nocancel suffix.
1108 * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
1109 * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
1110 * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
1111
abf1cf21
JJ
1112 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
1113
8348dcc8
UD
11142003-09-02 Ulrich Drepper <drepper@redhat.com>
1115
1116 * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
1e03e0af 1117 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
8348dcc8
UD
1118
1119 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
1120 in subsections has a symbol associated with it.
1121
1122 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
1123 defined symbol for entry point to avoid cancellation.
1124 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
1125
c874a32e
UD
11262003-09-01 Jakub Jelinek <jakub@redhat.com>
1127
1128 * Makefile (tests): Add tst-tls5.
1129 (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
1130 ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
1131 ($(objpfx)tst-tls5): New.
1132 ($(objpfx)tst-tls6.out): Likewise.
1133 (tests): Depend on $(objpfx)tst-tls6.out.
1134 * tst-tls3.c: Include stdint.h and pthreaddef.h.
1135 (do_test): Check pthread_self () return value alignment.
1136 * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
1137 (tf): Check pthread_self () return value alignment.
1138 * tst-tls5.c: New test.
1139 * tst-tls5.h: New.
1140 * tst-tls5mod.c: New.
1141 * tst-tls5moda.c: New.
1142 * tst-tls5modb.c: New.
1143 * tst-tls5modc.c: New.
1144 * tst-tls5modd.c: New.
1145 * tst-tls5mode.c: New.
1146 * tst-tls5modf.c: New.
1147 * tst-tls6.sh: New test.
1148
c503d3dc
UD
1149 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
1150 ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
1151 * init.c (pthread_functions): Initialize them.
1152 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
1153 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
1154 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
1155 pthread_cond_timedwait@@GLIBC_2.3.2.
1156
48614753
JJ
11572003-09-01 Jakub Jelinek <jakub@redhat.com>
1158
56a1b877
JJ
1159 * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
1160 * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
1161 * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
1162 * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
1163 * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
1164 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
1165
1166 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
1167
48614753
JJ
1168 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
1169 _POSIX_THREAD_PRIORITY_SCHEDULING.
1170 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
1171
28c97261
UD
11722003-08-31 Ulrich Drepper <drepper@redhat.com>
1173
eef80cf8
UD
1174 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
1175 nested function, use static inline function from libio.h.
1176 Code by Richard Henderson.
1177
28c97261
UD
1178 * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
1179 weak.
1180
cd2fbe58
UD
11812003-08-30 Jakub Jelinek <jakub@redhat.com>
1182
1183 * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
1184 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
1185 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
1186 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
1187 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
1188 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
1189 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
1190 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
1191 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
1192 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
1193 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
1194 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
1195 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
1196 * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
1197 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
1198 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
1199 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
1200 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
1201 * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
1202 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
1203 * sysdeps/sparc/sparc32/pthreaddef.h: New file.
1204 * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
1205 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
1206 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
1207 * sysdeps/sparc/sparc64/pthreaddef.h: New file.
1208 * sysdeps/sparc/tls.h: New file.
1209 * sysdeps/sparc/tcb-offsets.sym: New file.
1210 * sysdeps/sparc/Makefile: New file.
1211 * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
1212 * init.c [__sparc__] (__NR_set_tid_address): Define.
1213
feda52c0
UD
12142003-08-29 Jakub Jelinek <jakub@redhat.com>
1215
1216 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
1217 _IO_release_lock): Define.
1218
7c868816
JJ
12192003-08-29 Jakub Jelinek <jakuB@redhat.com>
1220
0261d33f 1221 * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
7c868816
JJ
1222 sigemptyset before sigaddset. Reported by jreiser@BitWagon.com.
1223
68b9e1ae
UD
12242003-08-27 Ulrich Drepper <drepper@redhat.com>
1225
1226 * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
1227 (__pthread_cleanup_class): Add missing return types of member
1228 functions.
1229
13b3edfc
UD
12302003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
1231
1232 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1233 (lll_mutex_unlock_force): Add memory barrier between store and futex
1234 syscall.
1235
bb606fbe
UD
12362003-08-25 Ulrich Drepper <drepper@redhat.com>
1237
1238 * tst-cancel4.c (do_test): Also unlink tempfname and remove
1239 tempmsg in first loop.
1240
ee4e5a3d
UD
12412003-08-18 Ulrich Drepper <drepper@redhat.com>
1242
1243 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
1244 _POSIX_THREAD_PRIORITY_SCHEDULING.
1245 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1246
334fcf2a
UD
12472003-08-07 Jakub Jelinek <jakub@redhat.com>
1248
1249 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
1250 (__rtld_lock_default_lock_recursive,
1251 __rtld_lock_default_unlock_recursive): Define.
1252 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
1253 __rtld_lock_unlock_recursive): Define using
1254 GL(_dl_rtld_*lock_recursive).
1255 * init.c (__pthread_initialize_minimal_internal): Initialize
1256 _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
1257 Lock GL(_dl_load_lock) the same number of times as
1258 GL(_dl_load_lock) using non-mt implementation was nested.
1259
1260 * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
1261 * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
1262
a30fb2df
UD
12632003-08-06 Jakub Jelinek <jakub@redhat.com>
1264
1265 * tst-cancel17.c (do_test): Make len2 maximum of page size and
1266 PIPE_BUF.
1267
ce0d30a0
JJ
12682003-08-07 Jakub Jelinek <jakub@redhat.com>
1269
1270 * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
1271
9c988b83
UD
12722003-08-03 Jakub Jelinek <jakub@redhat.com>
1273
1274 * sysdeps/pthread/createthread.c (do_clone): Move error handling
1275 to first syscall error check. Move syscall error check for tkill
1276 into __ASSUME_CLONE_STOPPED #ifdef.
1277
5c5252bd
UD
12782003-08-02 Ulrich Drepper <drepper@redhat.com>
1279
f1205aa7
UD
1280 * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
1281 is not defined, do explicit synchronization.
1282 (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED
1283 is not defined also unlock pd->lock for non-debugging case in case
1284 it is necessary.
1285 * pthread_create.c (start_thread): Always get and release pd->lock
1286 if __ASSUME_CLONE_STOPPED is not defined.
1287 (start_thread_debug): Removed. Adjust users.
1288 * allocatestack.c (allocate_stack): Always initialize lock if
1289 __ASSUME_CLONE_STOPPED is not defined.
1290 * Makefile (tests): Add tst-sched1.
1291 * tst-sched1.c: New file.
1292
5c5252bd
UD
1293 * sysdeps/pthread/createthread.c (do_clone): Only use
1294 sched_setschduler and pass correct parameters.
1295
973d66e4
UD
12962003-07-31 Jakub Jelinek <jakub@redhat.com>
1297
1298 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
1299 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
1300 PTHREAD_STACK_MIN in comments.
1301
d347a4ab
UD
13022003-07-31 Jakub Jelinek <jakub@redhat.com>
1303
1304 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
1305 Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
1306 argument.
1307 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
1308 * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
1309 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
1310 (__pthread_cleanup_upto): Fix prototype.
1311 (_longjmp_unwind): Adjust caller.
1312 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
1313 Change second argument to const struct pointer.
1314 * tst-sem8.c (main): Remove unused s2 and s3 variables.
1315 * tst-sem9.c (main): Likewise.
1316 * unwind.c: Include string.h for strlen prototype.
1317
1b26e9a5
UD
13182003-07-31 Ulrich Drepper <drepper@redhat.com>
1319
1320 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1321 (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
1322 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
1323 Define HAVE_CMOV.
1324 Patch by Nicholas Miell <nmiell@attbi.com>.
1325
adc12574
UD
13262003-07-30 Jakub Jelinek <jakub@redhat.com>
1327
1328 * init.c (__pthread_initialize_minimal_internal): Initialize
1329 GL(dl_init_static_tls).
1330 * pthreadP.h (__pthread_init_static_tls): New prototype.
1331 * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
1332 New functions.
1333 * Makefile (tests): Add tst-tls4.
1334 (modules-names): Add tst-tls4moda and tst-tls4modb.
1335 ($(objpfx)tst-tls4): Link against libdl and libpthread.
1336 ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
1337 tst-tls4modb.so.
1338 * tst-tls4.c: New file.
1339 * tst-tls4moda.c: New file.
1340 * tst-tls4modb.c: New file.
1341
a7f6c66e
RM
13422003-06-19 Daniel Jacobowitz <drow@mvista.com>
1343
1344 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
1345 before __timer_dealloc.
1346 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
1347 Don't call list_unlink.
1348
172ce013
RM
13492003-07-29 Roland McGrath <roland@redhat.com>
1350
1351 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
1352
7b787f85
UD
13532003-07-25 Jakub Jelinek <jakub@redhat.com>
1354
1355 * tst-cancel17.c (do_test): Check if aio_cancel failed.
1356 Don't reuse struct aiocb A if it failed.
1357 Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
1358 not just one byte, as that does not block.
1359
0e9d6240
UD
13602003-07-22 Jakub Jelinek <jakub@redhat.com>
1361
9d79e037
UD
1362 * sysdeps/pthread/unwind-resume.c: New file.
1363 * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
1364 unwind-resume in csu subdir.
1365 (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
1366 exceptions.
1367 (librt-sysdep_routines, librt-shared-only-routines): Add
1368 rt-unwind-resume.
1369 * sysdeps/pthread/rt-unwind-resume.c: New file.
1370 * unwind-forcedunwind.c: New file.
1371 * Makefile (libpthread-routines): Add unwind-forcedunwind.
1372 (libpthread-shared-only-routines): Likewise.
1373 (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
1374 * pthreadP.h (pthread_cancel_init): New prototype.
1375 * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
1376
1377 * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
1378 attr argument const struct pthread_attr *.
1379
0e9d6240
UD
1380 * res.c (__res_state): Return __resp.
1381 * descr.h: Include resolv.h.
1382 (struct pthread): Add res field.
1383 * pthread_create.c: Include resolv.h.
1384 (start_thread): Initialize __resp.
1385 * Makefile (tests): Add tst-_res1.
1386 (module-names): Add tst-_res1mod1, tst-_res1mod2.
1387 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
1388 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
1389 libpthread.
1390 * tst-_res1.c: New file.
1391 * tst-_res1mod1.c: New file.
1392 * tst-_res1mod2.c: New file.
1393
1a379ea0
UD
13942003-07-21 Ulrich Drepper <drepper@redhat.com>
1395
7e939b21
UD
1396 * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
1397
1a379ea0
UD
1398 * Makefile: Define various *-no-z-defs variables for test DSOs
1399 which has undefined symbols.
1400
ca86a763
UD
14012003-07-21 Steven Munroe <sjmunroe@us.ibm.com>
1402
1403 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
1404 Retry if the stwcx fails to store once_control.
1405
80f536db
UD
14062003-07-20 Ulrich Drepper <drepper@redhat.com>
1407
1408 * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
1409 pthread_attr_setaffinity.
1410 * Versions [libpthread] (GLIBC_2.3.3): Likewise.
1411 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
1412 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
1413 * pthread_attr_destroy.c: Free cpuset element if allocated.
1414 * pthread_create.c: Pass iattr as additional parameter to
1415 create_thread.
1416 * sysdeps/pthread/createthread.c: If attribute is provided and
1417 a new thread is created with affinity set or scheduling parameters,
1418 start thread with CLONE_STOPPED.
1419 * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
1420 pthread_attr_setaffinity.
1421 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
1422 cpuset element.
1423
73299943
UD
14242003-07-15 Ulrich Drepper <drepper@redhat.com>
1425
1426 * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
1427
da35d15e
UD
14282003-07-14 Ulrich Drepper <drepper@redhat.com>
1429
1430 * sysdeps/pthread/configure.in: Require CFI directives also for
1431 ppc and s390.
1432
75540d8a
UD
14332003-07-15 Jakub Jelinek <jakub@redhat.com>
1434
1435 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
1436 Add cfi directives.
1437
4a17085f
UD
14382003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1439
1440 * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
1441 CLEANUP_JMP_BUF.
1442 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
1443 registers as variables. Call __pthread_mutex_unlock_usercnt.
1444 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
1445 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
1446 not self pointer in __writer. Compare with TID to determine
1447 deadlocks.
1448 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
1449 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
1450 Likewise.
1451 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
1452 Likewise.
1453 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
1454 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
1455 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
1456 macros also when compiling librt.
1457
6080ecdf
UD
14582003-07-11 Jakub Jelinek <jakub@redhat.com>
1459
1460 * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
1461 -fasynchronous-unwind-tables.
1462 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
1463 (PSEUDO): Add cfi directives.
1464 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
1465 Likewise.
1466 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
1467 Likewise.
1468
da0c02ee
UD
14692003-07-08 Jakub Jelinek <jakub@redhat.com>
1470
1471 * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
1472 __pthread_unregister_cancel): Add prototypes and hidden_proto.
1473 * unwind.c (__pthread_unwind_next): Add hidden_def.
1474 * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
1475 Likewise.
1476 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
1477 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
1478 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
1479 Likewise.
1480 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
1481 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
1482 Likewise.
1483 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
1484 HIDDEN_JUMPTARGET to call __pthread_register_cancel,
1485 __pthread_unregister_cancel and __pthread_unwind_next.
1486
57a5ea02
UD
14872003-07-04 Jakub Jelinek <jakub@redhat.com>
1488
1489 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
1490 different symbol for the cancellation syscall wrapper and
1491 non-cancellation syscall wrapper.
1492 (PSEUDO_END): Define.
1493
d810b358
UD
14942003-07-05 Richard Henderson <rth@redhat.com>
1495
1496 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
1497 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
1498 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
1499 return actual return value from the syscall, not 0.
1500
db54f488
UD
15012003-07-07 Ulrich Drepper <drepper@redhat.com>
1502
1503 * descr.h (struct pthread): Add pid field.
1504 * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
1505 (__reclaim_stacks): Likewise.
1506 * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
1507 also check for PID of the signal source.
1508 (__pthread_initialize_minimal_internal): Also initialize pid field
1509 of initial thread's descriptor.
1510 * pthread_cancel.c: Use tgkill instead of tkill if possible.
1511 * sysdeps/unix/sysv/linux/fork.c: Likewise.
1512 * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
1513 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
1514 * sysdeps/unix/sysv/linux/raise.c: Likewise.
1515
5e497a41
UD
15162003-07-05 Ulrich Drepper <drepper@redhat.com>
1517
1518 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
1519 Fix use of parameter.
1520 (__libc_cleanup_pop): Likewise.
1521
86a0c4fa
UD
15222003-07-04 Ulrich Drepper <drepper@redhat.com>
1523
1524 * init.c (sigcancel_handler): Change parameters to match handler
1525 for SA_SIGACTION. Check signal number and code to recognize
1526 invalid invocations.
1527
bdbecaa3
RM
15282003-07-03 Roland McGrath <roland@redhat.com>
1529
1530 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
1531 Apply sizeof (struct pthread) bias to r13 value.
1532
56421b23
UD
15332003-07-03 Ulrich Drepper <drepper@redhat.com>
1534
fbd90f6c
UD
1535 * sysdeps/pthread/configure.in: Require CFI directives.
1536
56421b23
UD
1537 * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
1538 definition.
1539 * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
1540 libpthread compilation.
1541 * unwind.c (__pthread_unwind): Add hidden_def.
1542 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
1543
ca2b4cd7
UD
15442003-07-01 Ulrich Drepper <drepper@redhat.com>
1545
1546 * libc-cancellation.c (__libc_cleanup_routine): Define.
1547 * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
1548 (__pthread_cleanup_pop): Define.
1549
f036e569
UD
15502003-07-01 Richard Henderson <rth@redhat.com>
1551
1552 * sysdeps/alpha/elf/pt-initfini.c: New file.
1553 * sysdeps/alpha/pthread_spin_lock.S: New file.
1554 * sysdeps/alpha/pthread_spin_trylock.S: New file.
1555 * sysdeps/alpha/pthreaddef.h: New file.
1556 * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
1557 * sysdeps/alpha/tls.h: New file.
1558 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
1559 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
1560 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
1561 * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
1562 * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
1563 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
1564 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
1565 * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
1566 * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
1567 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
1568
3b985826
UD
15692003-07-01 Ulrich Drepper <drepper@redhat.com>
1570
1571 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
1572 cleanup support and unwind info.
1573
3a4d1e1e
UD
15742003-06-30 Ulrich Drepper <drepper@redhat.com>
1575
1576 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
1577 Use correct cleanup handler registration. Add unwind info.
96c814d3
UD
1578 * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
1579 * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3a4d1e1e
UD
1580 * tst-once3.c: Add cleanup handler and check it is called.
1581 * tst-once4.c: Likewise.
1582 * tst-oncex3.c: New file.
1583 * tst-oncex4.c: New file.
1584 * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
1585
e479cc8e
UD
15862003-06-29 Ulrich Drepper <drepper@redhat.com>
1587
1588 * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
1589
7d7ff54c
UD
15902003-06-27 Ulrich Drepper <drepper@redhat.com>
1591
483e95d0
UD
1592 * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
1593 (tf_msgsnd): Likewise.
1594
7d7ff54c
UD
1595 * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
1596 premature returns a bit more.
1597
7539c7ec
UD
15982003-06-26 Ulrich Drepper <drepper@redhat.com>
1599
1600 * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
1601 definition to the front.
1602
1603 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
1604 the cleanup functions to make the names unique. Fix dwarf opcode
1605 un unwind table.
1606 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
1607 functions to make the names unique. Fix CFA offset for two blocks.
1608
0af6a1d9
UD
16092003-06-25 Ulrich Drepper <drepper@redhat.com>
1610
1611 * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
1612 missing closing braces.
1613 Patch by Christophe Saout <christophe@saout.de>.
1614
eef4a9f3
RM
16152003-06-24 Roland McGrath <roland@redhat.com>
1616
1617 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
1618
4165d44d
UD
16192003-06-24 Ulrich Drepper <drepper@redhat.com>
1620
7f8f7b9d
UD
1621 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
1622 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
1623
4165d44d
UD
1624 * pthreadP.h: Declare __find_thread_by_id.
1625 * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
1626 * pthread_clock_gettime.c: Allow using other thread's clock.
1627 * pthread_clock_settime.c: Likewise.
1628 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
1629 * Makefile: Add rules to build and run tst-clock2.
1630 * tst-clock2.c: New file.
1631
67b78ef9
UD
16322003-06-23 Ulrich Drepper <drepper@redhat.com>
1633
1634 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
1635 to use exception-based cleanup handler.
1636 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1637
1638 * tst-cond8.c (ch): Announce that we are done.
1639
1640 * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
1641
1642 * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
1643 Also test aio_suspend with timeout value.
1644
61623643
UD
16452003-06-22 Ulrich Drepper <drepper@redhat.com>
1646
3a4f2043
UD
1647 * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
1648 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
1649 attribute_hidden.
1650
61623643
UD
1651 * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
1652 (__pthread_mutex_lock_internal): Likewise.
1653 (__pthread_mutex_unlock_internal): Likewise.
1654 (__pthread_mutex_unlock_usercnt): Declare.
1655 * pthread_mutex_destroy.c: Always fail if used in any way.
1656 * pthread_mutex_init.c: Update comment.
1657 * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
1658 * pthread_mutex_timedlock.c: Adjust __nusers.
1659 * pthread_mutex_trylock.c: Adjust __nusers.
1660 * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
1661 and public interfaces are wrapper with pass additional parameter.
1662 __pthread_mutex_unlock_usercnt does not adjust __nusers if second
1663 parameter zero.
1664 * tst-mutex8.c: New file.
1665 * Makefile (tests): Add tst-mutex8.
1666 * sysdeps/pthread/pthread_cond_timedwait.c: Call
1667 __pthread_mutex_unlock_usercnt.
1668 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
1669 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1670 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1671 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1672 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1673 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
1674 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
1675 Add __nusers.
1676 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1677 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1678 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1679 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
1680 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1681
1682 * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
1683 * pthread_mutex_timedlock.c: Likewise.
1684 * pthread_mutex_trylock.c: Adjust __nusers.
1685 * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
1686 * tst-mutex9.c: New file.
1687 * Makefile (tests): Add tst-mutex9.
1688 * sysdeps/i386/tls.h: Remove THREAD_ID definition.
1689 * sysdeps/ia64/tls.h: Likewise.
1690 * sysdeps/powerpc/tls.h: Likewise.
1691 * sysdeps/s390/tls.h: Likewise.
1692 * sysdeps/sh/tls.h: Likewise.
1693 * sysdeps/x86_64/tls.h: Likewise.
1694 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
1695 Change type of __owner.
1696 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1697 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1698 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1699 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
1700 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1701
9bdabb94
UD
17022003-06-19 Jakub Jelinek <jakub@redhat.com>
1703
1704 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
1705 * sysdeps/unix/sysv/linux/sem_post.c: ...here.
1706
1707 * sysdeps/unix/sysv/linux/sem_post.c: Move to...
1708 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
1709 instead of nr to lll_futex_wake. Only set errno and return -1
1710 if err < 0.
1711
1712 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
1713 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
1714 return actual return value from the syscall, not 0.
1715
f6c93bd9
UD
17162003-06-18 Ulrich Drepper <drepper@redhat.com>
1717
ca343e73
UD
1718 * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
1719 find a random value.
1720 (tf_msgrcv): Likewise. Also don't report msgrcv returns if
1721 errno==EIDRM.
1722
50441a98
UD
1723 * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
1724 compat_timer_settime.
1725 * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
1726 compat_timer_gettime.
1727 * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
9bdabb94 1728 compat_timer_getoverrun.
50441a98
UD
1729 * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
1730 compat_timer_delete.
1731
f6c93bd9
UD
1732 * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
1733 error-checking mutex detect busy mutexes.
1734
047aec8f
UD
17352003-06-17 Ulrich Drepper <drepper@redhat.com>
1736
1d53508d
UD
1737 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
1738 Add ax to clobber list.
1739 (lll_mutex_cond_lock): Likewise.
1740 (lll_mutex_unlock): Likewise.
1741 (lll_lock): Likewise.
1742 (lll_unlock): Likewise.
1743
f23b30e2
UD
1744 * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
1745 * tst-cancel18.c: New file.
1746 * tst-cancelx18.c: New file.
1747
1748 * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
1749 and tcdrain.
1750
1751 * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
1752 * tst-cancel17.c: New file.
1753 * tst-cancelx17.c: New file.
1754
1755 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
1756 * sysdeps/unix/sysv/linux/sigwait.c: New file.
1757 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
1758
047aec8f
UD
1759 * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
1760
bbde8527
UD
17612003-06-16 Jakub Jelinek <jakub@redhat.com>
1762
1763 * sysdeps/pthread/createthread.c (create_thread): Set
1764 header.multiple_threads unconditionally.
1765 * allocatestack.c (allocate_stack): Likewise.
1766 * descr.h (struct pthread): Add header.multiple_threads
1767 unconditionally.
1768 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
1769 Define for librt. #error if neither libpthread, libc nor librt.
1770 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
1771 Likewise.
1772 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
1773 CDISABLE): Likewise.
1774 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
1775 CDISABLE): Likewise.
1776 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
1777 CDISABLE): Likewise.
1778 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
1779 CDISABLE): Likewise. Access header.multiple_threads outside of
1780 libc and libpthread.
1781 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
1782 Likewise.
1783 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
1784 * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
1785
26676450
UD
17862003-06-17 Ulrich Drepper <drepper@redhat.com>
1787
1788 * tst-cancel4.c: Add tests for the socket and signal functions, pause.
1789 Also test early cancellation before the thread reaches the cancellation
1790 point.
1791
1792 * Makefile: Compile forward.c with exceptions.
1793
1794 * sysdeps/unix/sysv/linux/sleep.c: New file.
1795
301a6724
UD
17962003-06-16 Ulrich Drepper <drepper@redhat.com>
1797
0e0deb03
UD
1798 * Makefile: Add CFLAGS definition to compile function wrappers
1799 duplicated from libc with exceptions.
1800 * tst-cancel4.c: Also check cancellation handlers.
1801
301a6724
UD
1802 * Makefile: Add rules to build and run tst-cancel16 and
1803 tst-cancelx16. Add missing CFLAGS definitions.
1804 * tst-cancel16.c: New file.
1805 * tst-cancelx16.c: New file.
1806
7a114794
UD
18072003-06-15 Ulrich Drepper <drepper@redhat.com>
1808
452aea84
UD
1809 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
1810 (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
1811 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
1812 (DL_SYSINFO_IMPLEMENTATION): Likewise.
1813
7a114794
UD
1814 * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
1815 (LIBC_CANCEL_RESET): Likewise.
1816 Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
1817 * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
1818 librt-cancellation.
1819 (CFLAGS-libcrt-cancellation.c): Define.
1820 * sysdeps/pthread/librt-cancellation.c: New file.
1821 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
1822 macros also when compiling librt.
1823 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
1824 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
1825 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
1826 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
1827 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
1828 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
1829 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
1830
1831 * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
1832 compat_timer_create.
1833
8ba1d429
UD
18342003-06-14 Ulrich Drepper <drepper@redhat.com>
1835
cc8fb6f3
UD
1836 * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
1837
8ba1d429
UD
1838 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
1839 __register_atfork.
1840 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
1841 Add libc_hidden_def.
1842
d4f100e2
RM
18432003-06-13 Roland McGrath <roland@redhat.com>
1844
1845 * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
1846 constant from <sys/reg.h> to ps_get_thread_area, not register contents.
1847
dd9423a6
UD
18482003-06-11 Ulrich Drepper <drepper@redhat.com>
1849
1850 * allocatestack.c (queue_stack): Always inline.
1851 * ptreadhP.h (__do_cancel): Likewise.
1852
ed24330d
JJ
18532003-06-10 Jakub Jelinek <jakub@redhat.com>
1854
1855 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
1856 a typo.
1857
06120d79
UD
18582003-06-10 Ulrich Drepper <drepper@redhat.com>
1859
1860 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
1861 (__pthread_cond_signal): Remove incorrect second addition for
1862 cond_lock!=0.
1863
b1720346
UD
18642003-06-09 Ulrich Drepper <drepper@redhat.com>
1865
5b318f85
UD
1866 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
1867 (__pthread_cond_signal): Use correct futex pointer in
1868 __lll_mutex_lock_wait call.
1869
b1720346
UD
1870 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
1871 (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
1872
3e36c37d
UD
18732003-06-08 Ulrich Drepper <drepper@redhat.com>
1874
ecf7955d
UD
1875 * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
1876 cancelable.
ed24330d 1877 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
ecf7955d
UD
1878 Likewise.
1879
3e36c37d
UD
1880 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
1881 hand-written CFI generation code. Since ENTRY/END also initiated
1882 CFI frames this caused two CFI sets to be generated.
1883
7726edc2
UD
18842003-06-07 Ulrich Drepper <drepper@redhat.com>
1885
1886 * cleanup_routine.c: New file.
1887 * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
1888 * sysdeps/pthread/pthread.h: Add support for fully exception-based
1889 cleanup handling.
1890 * Makefile (libpthread-routines): Add cleanup_routine.
1891 Add more CFLAGS variables to compile with exceptions. Add comments
1892 why which file needs unwind tables.
1893 (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
1894 tests.
1895 * tst-cancelx1.c: New file.
1896 * tst-cancelx2.c: New file.
1897 * tst-cancelx3.c: New file.
1898 * tst-cancelx4.c: New file.
1899 * tst-cancelx5.c: New file.
1900 * tst-cancelx6.c: New file.
1901 * tst-cancelx7.c: New file.
1902 * tst-cancelx8.c: New file.
1903 * tst-cancelx9.c: New file.
1904 * tst-cancelx10.c: New file.
1905 * tst-cancelx11.c: New file.
1906 * tst-cancelx12.c: New file.
1907 * tst-cancelx13.c: New file.
1908 * tst-cancelx14.c: New file.
1909 * tst-cancelx15.c: New file.
1910 * tst-cleanupx0.c: New file.
1911 * tst-cleanupx0.expect: New file.
1912 * tst-cleanupx1.c: New file.
1913 * tst-cleanupx2.c: New file.
1914 * tst-cleanupx3.c: New file.
1915
1916 * tst-cleanup0.c: Make standard compliant.
1917 * tst-cleanup1.c: Likewise.
1918
1919 * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
1920 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
1921 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1922 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1923 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1924 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1925 * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
1926 CLEANUP_JMP_BUF.
1927 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
1928 * tst-cancel12.c: New file.
1929 * tst-cancel13.c: New file.
1930 * tst-cancel14.c: New file.
1931 * tst-cancel15.c: New file.
1932 * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
1933 and tst-cancel15.
1934
1935 * tst-cancel1.c: Add some comments.
1936
1937 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
1938 timeout correctly.
1939
7a8a8e21
UD
19402003-06-06 Ulrich Drepper <drepper@redhat.com>
1941
1942 * Makefile (CFLAGS-pthread_cancel.c): Define.
1943
4ad0bbf4
UD
19442003-06-05 Ulrich Drepper <drepper@redhat.com>
1945
1946 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
1947 Change type of __writer element to int.
1948 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1949 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1950 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1951 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1952 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1953 * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
1954 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
1955 * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
1956 Compare with TID to determine deadlocks.
1957 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
1958 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
1959 * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
1960 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
1961 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
1962 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1963 Likewise.
1964 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1965 Likewise.
1966 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
1967 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
1968 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1969 Likewise.
1970 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1971 Likewise.
1972 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
1973 * Makefile (tests): Add tst-rwlock12.
1974 * tst-rwlock12.c: New file.
1975
332faa96
JJ
19762003-06-05 Jakub Jelinek <jakub@redhat.com>
1977
1978 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
1979 __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
1980 Remove bogus hidden_proto.
1981 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
1982 Likewise.
1983 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
1984 lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
1985 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
1986 ___lll_mutex_timedlock): Likewise.
1987
29d9e2fd
UD
19882003-06-04 Ulrich Drepper <drepper@redhat.com>
1989
1990 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
1991 (__pthread_cond_signal): Add some code to eventually handle
1992 cond_lock!=0.
1993
6f1acb30
UD
19942003-06-01 Ulrich Drepper <drepper@redhat.com>
1995
1996 * Makefile (tests): Add tst-exec4.
1997 (tst-exec4-ARGS): Define.
1998 * tst-exec4.c: New file.
1999
49b65043
UD
20002003-05-31 Ulrich Drepper <drepper@redhat.com>
2001
31195be2
UD
2002 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
2003 Also fail if tv_nsec < 0.
2004 (__lll_timedwait_tid): Likewise.
2005 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
2006 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
2007 Likewise.
2008 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
2009 Likewise.
2010 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
2011 Likewise.
2012 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
2013 Likewise.
80b54217
UD
2014 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
2015 Likewise.
2016 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
2017 Likewise.
31195be2 2018
dcfc8224
UD
2019 * Makefile (tests): Add tst-sem8 and tst-sem9.
2020 * tst-sem8.c: New file.
2021 * tst-sem9.c: New file.
2022 * sem_open.c: Fix creation of in_use record if the file exists but
2023 no internal record.
2024
49b65043
UD
2025 * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
2026 definitions.
2027
2028 * sysdeps/pthread/timer_create.c (timer_create): In case
2029 evp==NULL, assign timer ID to sival_ptr.
2030
2031 * descr.h (struct pthread_unwind_buf): Change type of prev element to
2032 struct pthread_unwind_buf *.
2033 (struct pthread): Likewise for cleanup_jmp_buf element.
2034
2035 * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
2036 * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
2037 * unwind.c (__pthread_unwind_next): Likewise.
2038
50794a45
UD
20392003-05-30 Ulrich Drepper <drepper@redhat.com>
2040
5d4f57bd
UD
2041 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
2042 (lll_futex_timed_wait): Use int for futex value parameter.
2043 (lll_futex_wake): Likewise.
2044 (lll_futex_requeue): Likewise.
2045
2046 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
2047 Replace one memory operation with one register operation.
2048
2049 * tst-join4.c (do_test): Fix error message.
2050
7ab7ea33
UD
2051 * tst-rwlock6.c (do_test): Use correct format specifier.
2052
2053 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
2054 (__lll_mutex_lock_wait): Replace one memory operation with one
2055 register operation.
2056 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
2057 (__lll_mutex_lock_wait): Likewise.
2058
50794a45
UD
2059 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
2060 (__lll_mutex_cond_lock): Add one to value parameter of
2061 __lll_lock_wait to reflect reality in the futex syscall.
2062 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
2063 (lll_mutex_cond_lock): Likewise.
2064
5a70784e
JJ
20652003-05-30 Jakub Jelinek <jakub@redhat.com>
2066
2067 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
2068 New function.
2069 (lll_mutex_cond_lock): Define.
2070
e7c5ac68
UD
20712003-05-29 Ulrich Drepper <drepper@redhat.com>
2072
586d1748
UD
2073 * Makefile (tests): Add tst-signal6.
2074 * tst-signal6.c: New file.
2075
b8ba4a27
UD
2076 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
2077 (__lll_mutex_unlock_force): New function
2078 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
2079
65d46efe
UD
2080 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
2081 (__lll_mutex_unlock_force): New function.
2082 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
2083
2084 * tst-rwlock7.c (do_test): Use correct format specifier.
2085
e7c5ac68
UD
2086 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
2087 Find break parameter in correct asm argument.
2088
284bdc42
UD
20892003-05-27 Jakub Jelinek <jakub@redhat.com>
2090
2091 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
2092 Remove out4.
2093 (lll_futex_requeue): Fix __o3 constraint, return negative errno if
2094 error occured.
2095 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
2096 Add __mutex.
2097 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
2098 lll_futex_requeue, lll_mutex_unlock_force): Define.
2099
e7c5ac68
UD
21002003-05-30 Jakub Jelinek <jakub@redhat.com>
2101
2102 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
2103 (pthread_cond_t): Add __mutex.
2104 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
2105 lll_futex_requeue, lll_mutex_unlock_force): Define.
2106
ea2630c6
UD
21072003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2108
2109 * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
2110 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
2111 Add __mutex field.
2112 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
2113 Define.
2114 (lll_futex_wait, lll_futex_wake): Define.
2115 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
2116 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
2117 FUTEX_REQUEUE instead of FUTEX_WAIT.
2118 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
2119 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
2120 mutex which was used in condvar structure. Call
2121 __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
2122 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
2123
2124 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
2125 include tcb-offsets.h. Read wakeup value in locked region.
2126 Use the value of gbr register as THREAD_ID.
2127 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
2128 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
2129 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
2130
2131 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
2132 macros.
2133
5a77f150
UD
21342003-05-28 Ulrich Drepper <drepper@redhat.com>
2135
2136 * sysdeps/pthread/pthread_cond_broadcast.c
2137 (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
2138
7661d9f7
UD
21392003-05-26 Ulrich Drepper <drepper@redhat.com>
2140
2141 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
2142 typo in register name.
2143 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
2144 correctly. Actually use requeue. Little optimization.
2145 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
2146 mutex address early. Handle cancellation state as 32-bit value.
2147 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
2148 Remove unnecessary label.
2149
69431c9a
UD
21502003-05-25 Ulrich Drepper <drepper@redhat.com>
2151
2152 * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
2153 instead of FUTEX_WAIT.
2154 * sysdeps/pthread/pthread_cond_signal.c: Likewise.
2155 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
2156 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
2157 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
2158 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
2159 * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
2160 used in condvar structure. Call __pthread_mutex_cond_lock instead
2161 of __pthread_mutex_lock_internal.
2162 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2163 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2164 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
2165 (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
2166 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2167 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
2168 * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
2169 Add pthread_mutex_cond_lock.
2170 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
2171 * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
2172 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
2173 lll_mutex_cond_lock.
2174 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2175 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
248a3490 2176 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
69431c9a 2177 Add __mutex field.
248a3490 2178 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
69431c9a
UD
2179 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2180
2181 * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
2182 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
2183
2184 * pthreadP.h: Declare __pthread_mutex_cond_lock.
2185 * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
2186 Use it instead of lll_mutex_lock. If __pthread_mutex_lock is a
2187 macro don't define aliases.
2188
2189 * cancellation.c: Remove __pthread_enable_asynccancel_2.
2190 * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
2191 * sysdeps/pthread/pthread_cond_timedwait.c: Use
2192 __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
2193 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2194 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2195 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
2196 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2197 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
2198
fddfebbd
UD
21992003-05-17 Ulrich Drepper <drepper@redhat.com>
2200
2201 * sem_open.c: Fix one endless loop. Implement correct semantics
2202 wrt opening the same semaphore more then once.
2203 * sem_close.c: Adjust for sem_open change.
2204 * semaphoreP.h: Include <semaphore.h>. Define struct inuse_sem.
2205 Declare __sem_mappings, __sem_mappings_lock, __sem_search.
2206 * Makefile (tests): Add tst-sem7.
2207 * tst-sem7.c: New file.
2208
1eefffb0
RM
22092003-05-16 Roland McGrath <roland@redhat.com>
2210
2211 * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
2212 uninitialized variable braino.
2213
6e66dc78
UD
22142003-05-16 Ulrich Drepper <drepper@redhat.com>
2215
23ae6451
UD
2216 * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
2217 test for syscall availability.
2218
2219 * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
2220 __no_posix_timers to -1 if the syscalls don't exist.
2221
7ac5b8e2
UD
2222 * pthread_join.c (pthread_join): Set tid field of the joined
2223 thread to -1. This isn't necessary but helps to recognize some
2224 error conditions with almost no cost.
2225
2226 * allocatestack.c (FREE_P): Also negative values indicate an
2227 unused stack.
2228
6e66dc78
UD
2229 * unwind.c: Include <unistd.h>.
2230
855dba3c
UD
22312003-05-14 Ulrich Drepper <drepper@redhat.com>
2232
2233 * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
2234
81f3ac4c
UD
22352003-05-14 Jakub Jelinek <jakub@redhat.com>
2236
2237 * Makefile (crti-objs, crtn-objs): New variables.
2238 (omit-deps, extra-objs): Add crtn.
2239 ($(objpfx)libpthread.so): Depend on both crti and crtn
2240 and links to them in multidir.
2241 ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
2242
7158eae4
UD
22432003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
2244
2245 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
2246 (lll_mutex_unlock): Use atomic_exchange_rel.
2247
edf205d5
UD
22482003-05-11 Ulrich Drepper <drepper@redhat.com>
2249
2250 * cond-perf.c (cons): Add missing locking around setting of alldone.
2251
a3f979a7
UD
22522003-05-10 Ulrich Drepper <drepper@redhat.com>
2253
2254 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
2255 related macros.
2256 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
2257
880867a4
UD
22582003-05-09 Ulrich Drepper <drepper@redhat.com>
2259
949ec764
UD
2260 * tst-sem6.c: New file.
2261 * Makefile (tests): Add tst-sem6.
2262
2263 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
2264 Use atomic_exchange_rel instead of atomic_exchange.
2265 * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
2266 Likewise.
2267
2268 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
2269 code for lll_futex_wait and lll_futex_wake in static apps. Use
2270 vsyscall is possible.
2271
2272 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
2273 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
2274 * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
2275 pthread_setaffinity_np.
2276 * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
2277 and pthread_setaffinity_np.
2278 * Makefile (libpthread-routines): Add pthread_getaffinity and
2279 pthread_setaffinity.
2280
880867a4
UD
2281 * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
2282 use it in case mmap to allocate the stack fails.
2283 * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
2284 ARCH_MAP_FLAGS here.
2285 * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
2286 ARCH_RETRY_MMAP.
2287
92d83c72
UD
22882003-05-08 Ulrich Drepper <drepper@redhat.com>
2289
2290 * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
2291 handler implementation. It is now lockless in fork().
2292 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
2293 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
2294 * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>. Don't
2295 declare the __fork_*_lists.
2296 (struct fork_handler): Include pointers to all three functions.
2297 Add next, refcntr and need_signal elements.
2298 (__fork_handlers): New declaration.
2299 (__register_atfork_malloc): Remove declaration.
2300 (HAVE_register_atfork_malloc): Remove definition.
2301 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
2302 __pthread_child_handler variable.
2303 (__libc_pthread_init): Use __register_atfork instead of explicitly
2304 adding to the list.
2305 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
2306 and lll_futex_wake.
2307 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2308
2309 * unwind.c (unwind_cleanup): Print error message and then abort. This
2310 function must never be reached.
2311
2312 * cond-perf.c: New file.
2313
be4d8038
UD
23142003-05-05 Ulrich Drepper <drepper@redhat.com>
2315
2316 * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
2317
c6696b79
RM
23182003-05-04 Roland McGrath <roland@redhat.com>
2319
2320 * Makefile ($(objpfx)../libc.so): New target.
2321
7da168bf
UD
23222003-05-02 Ulrich Drepper <drepper@redhat.com>
2323
2324 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
2325 (pthread_condattr_t): Size is only an int, don't use long for
2326 alignment.
2327 (pthread_mutexattr_t): Likewise.
7da168bf
UD
2328 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
2329 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2330 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2331
9a7178d6
UD
23322003-05-01 Ulrich Drepper <drepper@redhat.com>
2333
2334 * sysdeps/i386/tls.h: Define THREAD_ID.
2335 * sysdeps/ia64/tls.h: Likewise.
2336 * sysdeps/powerpc/tls.h: Likewise.
2337 * sysdeps/s390/tls.h: Likewise.
2338 * sysdeps/sh/tls.h: Likewise.
2339 * sysdeps/x86_64/tls.h: Likewise.
2340 * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
2341 record ownership.
2342 * pthread_mutex_timedlock.c: Likewise.
2343 * pthread_mutex_trylock.c: Likewise.
2344 * pthread_mutex_unlock.c: Likewise.
2345 * pthread_rwlock_trywrlock.c: Likewise.
2346 * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
2347 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
2348 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
2349 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
2350
2351 * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
2352 flag.
2353
a234e27d
UD
23542003-04-29 Jakub Jelinek <jakub@redhat.com>
2355
2356 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
2357 (__SIZEOF_PTHREAD_COND_T): Define to 48.
2358 (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
2359 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
2360 Make __align long long instead of long.
2361 (pthread_rwlock_t): Formatting.
2362 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
2363 (pthread_rwlock_t): Formatting.
2364 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
2365 (pthread_cond_t): Make __align long long instead of long.
2366 (pthread_rwlock_t): Move __flags field to the same position as in
2367 linuxthreads.
2368
f025c136
UD
23692003-04-30 Ulrich Drepper <drepper@redhat.com>
2370
2371 * tst-rwlock6.c (do_test): Use correct printf format specifiers.
2372 * tst-rwlock7.c (do_test): Likewise.
2373
7531ab9e
RM
23742003-04-26 Roland McGrath <roland@redhat.com>
2375
2376 * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
2377
299601a1
UD
23782003-04-22 Jakub Jelinek <jakub@redhat.com>
2379
299601a1
UD
2380 * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
2381 sizeof (struct pthread).
2382 (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
468777e1 2383 1 struct pthread.
299601a1
UD
2384 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
2385 to 0.
2386 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
2387 struct pthread.
2388 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
2389 to 32-bit bytes.
2390 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
2391 tcbp.
2392 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
2393 unneccessarily.
2394 (NO_TLS_OFFSET): Define.
299601a1
UD
2395 * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
2396 add TLS_TCB_SIZE unnecessarily.
299601a1 2397
950094f8
RM
23982003-04-22 Roland McGrath <roland@redhat.com>
2399
2400 * Makeconfig (shared-thread-library): Reverse link order to work
2401 around linker bug.
2402
dc2f6455
UD
24032003-04-22 Ulrich Drepper <drepper@redhat.com>
2404
2405 * semaphore.h: Fix typo in comment.
2406
e7608d77
UD
24072003-04-21 Ulrich Drepper <drepper@redhat.com>
2408
6a87ee19
UD
2409 * sysdeps/pthread/sigfillset.c: New file.
2410
e7608d77
UD
2411 * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
2412 * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
2413 * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
2414 * sysdeps/pthread/sigaction.c: Likewise.
2415 * sysdeps/pthread/sigprocmask.c: New file.
2416 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
2417 __SIGRTMIN+1.
2418 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
2419 Block SIGTIMER. Also handle SI_TKILL events and terminate thread
2420 in this case.
2421
0b3df49e
UD
24222003-04-19 Ulrich Drepper <drepper@redhat.com>
2423
58a7a325
UD
2424 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
2425 (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
2426
0b3df49e
UD
2427 * sysdeps/unix/sysv/linux/unregister-atfork.c
2428 (__unregister_atfork): Don't free memory not allocated dynamically.
2429
2430 * semaphore.h: Remove __THROW marker from cancellation points.
2431 * nptl/sysdeps/pthread/pthread.h: Likewise.
2432
7d74651e
UD
24332003-04-18 Ulrich Drepper <drepper@redhat.com>
2434
76a67697
UD
2435 * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
2436 pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
7d74651e
UD
2437 __THROW.
2438
dd9d6538
JJ
24392003-04-16 Jakub Jelinek <jakub@redhat.com>
2440
2441 * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
2442
4ab6f47c
RM
24432003-04-15 Roland McGrath <roland@redhat.com>
2444
2445 * forward.c (__pthread_unwind): Tweak to avoid warning.
2446
162434a6
UD
24472003-04-15 Ulrich Drepper <drepper@redhat.com>
2448
2449 * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
2450
35909161
UD
24512003-04-14 Ulrich Drepper <drepper@redhat.com>
2452
18ddd3aa 2453 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
35909161
UD
2454 overflow CFA advance instructions.
2455 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2456
18a8e730
UD
24572003-04-14 Jakub Jelinek <jakub@redhat.com>
2458
bd4f43b4
UD
2459 * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
2460 * sysdeps/i386/pthread_spin_lock.c: Likewise.
2461 * sysdeps/x86_64/tls.h: Likewise. Define LOCK_PREFIX if not already
2462 defined.
2463
18a8e730
UD
2464 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
2465 DW_CFA_advance_loc2 for .Laddl-.Lsubl.
2466 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
2467 DW_CFA_advance_loc for .Laddl-.Lsubl.
2468
08c765fa
UD
24692003-04-13 Ulrich Drepper <drepper@redhat.com>
2470
18a8e730
UD
2471 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
2472 position-independent unwind data for static libraries.
2473 Add missing unwind info. Add comments.
2474
ad2be852
UD
2475 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
2476 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2477 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
08c765fa
UD
2478 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2479
177d1ad3
UD
24802003-04-12 Ulrich Drepper <drepper@redhat.com>
2481
08c765fa
UD
2482 * Makefile: Make sure all cancellation points are compiled with
2483 exception and asynchronous unwind tables.
2484
177d1ad3
UD
2485 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
2486 which mishandles loading of global object addresses in PIC.
2487 (THREAD_SETMEM_NC): Likewise.
2488
09d65ff3
UD
24892003-04-11 Ulrich Drepper <drepper@redhat.com>
2490
2491 * pthread.h: Define new data structure for cleanup buffer. Declare
2492 new cleanup handler interfaces.
2493 * descr.h: Include <unwind.h> if necessary. Define pthread_unwind_buf.
2494 (struct pthread): Add cleanup_jmp_buf pointer. Define
2495 HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
2496 * pthreadP.h: Declare __pthread_unwind. Define __do_cancel to use
2497 it. Declare old cleanup handler installation functions.
2498 * cleanup.c: Rewrite. Install handler for unwind-based cleanup
2499 handling.
2500 * cleanup_defer.c: Likewise.
2501 * cleanup_compat.c: New file. Old cleanup code.
2502 * cleanup_def_compat.c: New file. Old cleanup code.
2503 * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
2504 if own thread descriptor.
2505 * unwind.c: New file.
2506 * forward.c: Add __pthread_unwind.
2507 * init.c (pthread_functions): Add __pthread_unwind.
2508 * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
2509 Add ptr___pthread_unwind.
2510 * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
2511 and unwind function.
2512 * Makefile (libpthread-routines): Add cleanup_compat,
2513 cleanup_def_compat, and unwind. Define CFLAGS to enable unwind
2514 table generation if necessary.
2515 * version.c: Record whether unwind support is compiled in.
2516 * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
2517 * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
2518 handler interfaces.
2519 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
2520 complication to generate unwind information for syscall wrappers.
68107ec0 2521 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
09d65ff3
UD
2522 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
2523 __cleanup_fct_attribute.
2524
2525 * Makefile: Add rules to build and run tst-cleanup0.
2526 * tst-cleanup0.c: New file.
2527 * tst-cleanup0.expect: New file.
2528
2529 * pthread_create.c (deallocate_tsd): Don't take parameter. Adjust
2530 caller. Optimize to avoid often unecessary local variable.
2531
0dc44b51
RM
25322003-04-11 Roland McGrath <roland@redhat.com>
2533
2534 * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
2535 sets variable `multidir'; include that.
2536 (generated): Add it.
2537 ($(objpfx)$(multidir)/crti.o): New target.
2538 [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
2539
84a80719
UD
25402003-04-11 Ulrich Drepper <drepper@redhat.com>
2541
2542 * tst-attr2.c (do_test): Add cast to avoid warning.
2543 * tst-mutex4.c (do_test): Likewise.
2544
88ff4759
UD
25452003-04-10 Ulrich Drepper <drepper@redhat.com>
2546
2547 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
2548 in child.
2549
b2041097
UD
25502003-04-09 Ulrich Drepper <drepper@redhat.com>
2551
2552 * Makefile (tests): Add tst-detach1.
2553 * tst-detach1.c: New file.
2554
f9657e88
UD
25552003-04-08 Ulrich Drepper <drepper@redhat.com>
2556
9afe4964
UD
2557 * sysdeps/pthread/pthread.h: Remove duplicate
2558 pthread_cleanup_{push,pop} definitions.
2559
f9657e88
UD
2560 * tst-barrier2.c: Eliminate warnings.
2561 * tst-cancel4.c: Likewise.
2562 * tst-cond4.c: Likewise.
2563 * tst-cond6.c: Likewise.
2564 * tst-detach1.c: Likewise.
2565 * tst-rwlock4.c: Likewise.
2566 * tst-rwlock6.c: Likewise.
2567 * tst-rwlock7.c: Likewise.
2568 * tst-sem3.c: Likewise.
2569 * tst-spin2.c: Likewise.
2570 * tst-umask1.c: Likewise.
2571
69b35e86
UD
25722003-04-07 Ulrich Drepper <drepper@redhat.com>
2573
2574 * pthread_detach.c (pthread_detach): Fix test for invalid TID.
2575
c70ad7d7
UD
25762003-04-06 Ulrich Drepper <drepper@redhat.com>
2577
2578 * descr.h (struct pthread): Move cancelhandling member to the front.
2579
54e0138f
UD
25802003-04-05 Ulrich Drepper <drepper@redhat.com>
2581
2582 * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
2583 malloc_parent, and malloc_child statically.
2584 (__register_atfork_malloc): New function.
2585 (free_mem): Don't free any of the malloc_* variables on the list.
2586 * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
2587 Define HAVE_register_atfork_malloc.
2588
b22d701b
UD
25892003-04-04 Ulrich Drepper <drepper@redhat.com>
2590
2591 * sysdeps/pthread/createthread.c (create_thread): Add some more
2592 comments explaining when to set multiple_threads and when not.
2593
2594 * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
2595 THREAD_ATOMIC_BIT_SET if not already defined.
2596 * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
2597 THREAD_ATOMIC_BIT_SET:
2598 * sysdeps/x86_64/tls.h: Likewise.
2599 * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
2600 THREAD_ATOMIC_CMPXCHG_VAL.
2601 (_pthread_cleanup_pop_restore): Likewise.
2602 * cancellation.c (__pthread_enable_asynccancel): Likewise.
2603 (__pthread_enable_asynccancel_2): Likewise.
2604 (__pthread_disable_asynccancel): Likewise.
2605 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
2606 (__libc_disable_asynccancel): Likewise.
2607 * init.c (sigcancel_handler): Likewise.
2608 * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
2609 * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
2610
86246935
UD
26112003-04-03 Ulrich Drepper <drepper@redhat.com>
2612
2613 * init.c (sigcancel_handler): Don't set EXITING_BIT here.
2614 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
2615 * pthreadP.h (__do_cancel): Set EXITING_BIT here.
2616 * Makefile (tests): Add tst-cancel11.
2617 * tst-cancel11.c: New file.
2618
6b4686a5
UD
26192003-04-01 Ulrich Drepper <drepper@redhat.com>
2620
2621 * pthread_create.c (deallocate_tsd): Clear/free memory after the last
2622 round, not the first. Use specific_used flag instead of local
2623 found_nonzero variable. Use THREAD_[SG]ETMEM where possible.
2624 (__free_tcb): Don't call deallocate_tsd here.
2625 (start_thread): Call deallocate_tsd here.
2626 * pthread_setspecific.c: Set specific_used flag really only when
2627 needed.
0d73a73b 2628 * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
6b4686a5 2629 * tst-tsd3.c: New file.
0d73a73b 2630 * tst-tsd4.c: New file.
6b4686a5 2631
42b2395d
UD
26322003-03-31 Ulrich Drepper <drepper@redhat.com>
2633
211d90c5
UD
2634 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
2635 Use atomic_exchange_and_add instead of __lll_add.
2636 (__lll_mutex_timedlock): Likewise.
2637 Patch by Ian Wienand.
2638
26392003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
2640
2641 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
2642 (SINGLE_THREAD_P): Fix typo.
2643 * tst-cancel-wrappers.sh: Handle '.'ed symbols.
2644
26452003-03-31 Ulrich Drepper <drepper@redhat.com>
2646
2647 * Makefile (tests): Add tst-align.
2648 * tst-align.c: New file.
2649 * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
211d90c5 2650
42b2395d
UD
2651 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
2652 function correctly.
2653
211d90c5
UD
2654 * tst-tsd2.c: Add casts to avoid warnings.
2655
163b180f
UD
26562003-03-30 Ulrich Drepper <drepper@redhat.com>
2657
2658 * descr.h (struct pthread): Move most often used elements to the front.
2659
ea473bad
UD
26602003-03-29 Ulrich Drepper <drepper@redhat.com>
2661
2662 * Makefile (libpthread-routines): Add pthread_atfork.
2663 (libpthread-static-only-routines): Add pthread_atfork.
2664
dd731d53
UD
26652003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2666
2667 * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
2668 of TLS_DTV_AT_TP.
2669 (INSTALL_DTV): Add parens.
2670 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
2671 Use passed descr instead of THREAD_SELF.
2672 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
2673 (__lll_mutex_timedlock_wait): Correct expected value after
2674 spurious wakeup.
2675 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
2676 Release lock before waking up the waiters.
2677 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
2678 criteria. Reorderstruct passed to cleanup handler. Fix
2679 handling of cancellation and failung pthread_mutex_unlock call.
2680 Use __pthread_enable_asynccancel_2 instead of
2681 __pthread_enable_asynccancel.
2682 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2683 Return result of lock re-get if it fails.
2684 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
2685 for __pthread_cleanup_push.
2686 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
2687 completely broken rwlock implementation.
2688 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
2689 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
2690 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
2691 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
2692 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
2693 * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value. Use
2694 versioned_symbol macro.
2695 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
2696 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
2697
c75d02f0
UD
26982003-03-27 Ulrich Drepper <drepper@redhat.com>
2699
5f5004df
UD
2700 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
2701 __timer_helper_thread. Declare __start_helper_thread, __helper_once,
2702 and __helper_tid.
2703 (struct timer): Remove th and bar field.
2704 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
2705 debugging code. Create only one helper thread.
2706 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
2707 helper thread.
2708 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
2709 Renamed. Define statically. Use thread info from siginfo.
2710 (__helper_once): New variable.
2711 (__helper_tid): New variable.
2712 (__reset_helper_control): New function.
2713 (__start_helper_thread): New function.
2714
18d009ca
UD
2715 * pthread_create.c (start_thread): Don't use setjmp inside
2716 __builtin_expect to work around gcc bug.
2717
c75d02f0
UD
2718 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
2719 timer_delete syscall fails, but not with ENOSYS, set
2720 __no_posix_timers.
2721
2722 * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
2723 (timer_settime): Fix typo.
28cf3058
UD
2724 * sysdeps/unix/sysv/linux/timer_getoverr.c
2725 [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
c75d02f0 2726
049ac259
JJ
27272003-03-27 Jakub Jelinek <jakub@redhat.com>
2728
2729 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
2730 offset of cleanupbuf.__prev.
2731
f93d39dd
JJ
27322003-03-26 Jakub Jelinek <jakub@redhat.com>
2733
2734 * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
2735 of included file.
2736
f064e4c5
UD
27372003-03-26 Ulrich Drepper <drepper@redhat.com>
2738
2739 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
2740 NULL provide default definition to syscall.
2741
83e886a3
RM
27422003-03-25 Roland McGrath <roland@redhat.com>
2743
2744 * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
2745 (timer_id2ptr): Fix typo.
2746
09402f5b
UD
27472003-03-25 Ulrich Drepper <drepper@redhat.com>
2748
2749 * pthreadP.h: Define SIGCANCEL and SIGTIMER.
2750 * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
2751 * sysdeps/ia64/pthreaddef.h: Likewise.
2752 * sysdeps/powerpc/pthreaddef.h: Likewise.
2753 * sysdeps/s390/pthreaddef.h: Likewise.
2754 * sysdeps/sh/pthreaddef.h: Likewise.
2755 * sysdeps/x86_64/pthreaddef.h: Likewise.
2756 * init.c (__pthread_initialize_minimal): Block SIGTIMER.
2757 * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
2758 being changed.
2759 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
2760 SIGTIMER is not unblocked.
2761 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
2762 RT signal taken.
2763 * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
2764 be send.
2765 * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
2766 pass pointer through as ID.
2767 * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
2768 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
2769 * sysdeps/unix/sysv/linux/timer_create.c: New file.
2770 * sysdeps/unix/sysv/linux/timer_delete.c: New file.
2771 * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
2772 * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
2773 * sysdeps/unix/sysv/linux/timer_routines.c: New file.
2774 * sysdeps/unix/sysv/linux/timer_settime.c: New file.
2775 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
2776 * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
2777 * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
2778 * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
2779 * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
2780 * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
2781 * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
2782 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
2783 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
2784 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
2785 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
2786 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
2787 * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
2788 * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
2789 * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
2790 * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
2791 * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
2792 * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
2793 * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
2794 * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
2795 * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
2796 * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
2797 * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
2798 * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
2799 * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
2800
2801 * pthreadP.h: Remove FRAME_LEFT definition.
2802 * cleanup.c (_pthread_cleanup_push): Don't check for reference to
2803 already left frame. Programs which have this problem are not POSIX
2804 compliant.
2805 * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
2806
5e826ab5
UD
28072003-03-24 Ulrich Drepper <drepper@redhat.com>
2808
2809 * sysdeps/pthread/tst-timer.c: Check return values of the
2810 functions we test.
2811
b910f788
RM
28122003-03-23 Roland McGrath <roland@redhat.com>
2813
3045a1fe
RM
2814 * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
2815 * tst-tls3mod.c: Likewise.
2816 * tst-tls1.c: Likewise.
2817 * tst-tls2.c: Likewise.
2818
85047fe3
RM
2819 * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
2820 undefined behavior.
2821
b910f788
RM
2822 * tst-join5.c (tf1, tf2): Add a cast.
2823
2824 * Makeconfig (includes): Append -I$(..)nptl to this variable.
2825
2826 * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
2827 Don't test anything.
2828 * tst-cond4.c: Likewise.
2829 * tst-cond6.c: Likewise.
2830 * tst-flock2.c: Likewise.
2831 * tst-mutex4.c: Likewise.
2832 * tst-rwlock4.c: Likewise.
2833 * tst-signal1.c: Likewise.
2834 * tst-spin2.c: Likewise.
2835 * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
2836
2837 * tst-mutex4.c: Use test-skeleton.c.
2838 * tst-spin2.c: Likewise.
2839 * tst-sysconf.c: Likewise.
2840 * tst-barrier2.c: Likewise.
2841 * tst-cond4.c: Likewise.
2842 * tst-cond6.c: Likewise.
2843 * tst-rwlock4.c: Likewise.
2844 * tst-unload.c: Likewise.
2845 * tst-flock2.c (do_test): Use return instead of exit.
2846
4baa087a
RM
28472003-03-22 Jakub Jelinek <jakub@redhat.com>
2848
2849 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
2850
5a3ab2fc
UD
28512003-03-21 Ulrich Drepper <drepper@redhat.com>
2852
9f07eae2
UD
2853 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
2854 (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
2855 instead of __lll_compare_and_swap.
2856 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
2857 Likewise.
2858 Removed definition if __lll_compare_and_swap.
2859
5a3ab2fc
UD
2860 * cancellation.c: Adjust for new form of compare&exchange macros.
2861 * cleanup_defer.c: Likewise.
2862 * init.c: Likewise.
2863 * libc-cancellation.c: Likewise.
2864 * old_pthread_cond_broadcast.c: Likewise.
2865 * old_pthread_cond_signal.c: Likewise.
2866 * old_pthread_cond_timedwait.c: Likewise.
2867 * old_pthread_cond_wait.c: Likewise.
2868 * pthread_cancel.c: Likewise.
2869 * pthread_create.c: Likewise.
2870 * pthread_detach.c: Likewise.
2871 * pthread_join.c: Likewise.
2872 * pthread_key_delete.c: Likewise.
2873 * pthread_setcancelstate.c: Likewise.
2874 * pthread_setcanceltype.c: Likewise.
2875 * pthread_timedjoin.c: Likewise.
2876 * pthread_tryjoin.c: Likewise.
2877 * sysdeps/pthread/createthread.c: Likewise.
2878
b1aea098
UD
28792003-03-20 Ulrich Drepper <drepper@redhat.com>
2880
2881 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
4baa087a 2882 Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
b1aea098
UD
2883 definitions. Replace uses with calls to atomic_* functions.
2884 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2885 * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
2886 __lll_test_and_set calls with atomic_exchange_and_add and
2887 atomic_exchange calls respectively.
2888 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
2889 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
2890 * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
2891 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
2892 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
2893 * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
2894 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
2895
2896 * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
2897 returns the old value.
2898
100a7100
RM
28992003-03-20 Martin Schwidefsky <sky@mschwid3.boeblingen.de.ibm.com>
2900
2901 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
2902 int for variable OLDVAL and correct inline assembler contraint.
2903 * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
2904 type int for variable OLD.
2905
2906 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
2907 only for s390-32.
2908 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
2909 (SINGLE_THREAD_P): Use global variable __local_multiple_threads
2910 instead of multiple_threads field in the TCB.
2911
95767b36
UD
29122003-03-19 Ulrich Drepper <drepper@redhat.com>
2913
4009bf40
UD
2914 * sysdeps/i386/i686/bits/atomic.h: Removed.
2915 * sysdeps/i386/i586/bits/atomic.h: Removed.
2916 * sysdeps/i386/i486/bits/atomic.h: Removed. Moved to glibc.
2917 * sysdeps/x86_64/bits/atomic.h: Removed. Moved to glibc.
2918 * sysdeps/s390/bits/atomic.h: Removed. Moved to glibc.
2919 * sysdeps/sh/bits/atomic.h: Removed. Moved to glibc.
2920 * sysdeps/ia64/bits/atomic.h: Removed. Moved to glibc.
2921 * sysdeps/powerpc/bits/atomic.h: Removed. Moved to glibc.
2922 * atomic.h: Removed. Moved to glibc.
2923
560a784f
UD
2924 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
2925 support for clock selection.
2926
95767b36
UD
2927 * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
2928 signalling waiters.
2929
043ad426
RM
29302003-03-18 Roland McGrath <roland@redhat.com>
2931
94659495
RM
2932 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
2933 Add __lll_rel_instr first. Add memory clobber.
2934 (lll_mutex_unlock): Use __lll_test_and_set.
2935 From Paul Mackerras <paulus@samba.org>.
2936
2937 * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
2938 unconditionally.
2939 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
2940 (SINGLE_THREAD_P): Add `header.' prefix.
2941 From Paul Mackerras <paulus@samba.org>.
2942
043ad426
RM
2943 * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
2944 pthread_timedjoin_np to ...
2945 (libpthread: GLIBC_2.3.3): ... here.
2946 (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
2947
2948 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
2949 Avoid shadowing VAL variable.
2950
2951 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
2952 New macro.
2953
86a9ee5e
UD
29542003-03-18 Ulrich Drepper <drepper@redhat.com>
2955
ac9e0aa1
UD
2956 * Makefile (tests): Add tst-cond11.
2957 * tst-cond11.c: New file.
2958
a14b373c
UD
2959 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
2960 struct passed to cleanup handler to eliminate one more
2961 instruction.
2962 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2963
24a49f38
UD
2964 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
2965 (pthrad_cond_t): Replace __unused field with __clock.
2966
2967 * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
2968 waken all waiters in cleanup handler.
2969 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
2970 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2971
86a9ee5e
UD
2972 * pthread_condattr_getclock.c: New file.
2973 * pthread_condattr_setclock.c: New file.
2974 * sysdeps/pthread/pthread.h: Declare these new functions.
2975 * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
2976 * Makefile (libpthread-routines): Add the new functions.
2977 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
2978 Renamed field to value. Document use of the bits.
2979 * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
2980 change.
2981 * pthread_condattr_setpshared.c: Likewise.
d5cb8389 2982 * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
86a9ee5e
UD
2983 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
2984 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
2985 Add __clock field.
2986 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
2987 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
2988 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2989 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
2990 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
2991 Implement clock selection.
2992 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
2993 * pthread-errnos.sym: Add ENOSYS.
2994 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2995 _POSIX_CLOCK_SELECTION.
2996 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2997
2998 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
2999 invalid .size directive.
3000
98054a05
RM
30012003-03-17 Roland McGrath <roland@redhat.com>
3002
3003 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
3004 Formatting tweaks.
3005
001bea71
UD
30062003-03-17 Ulrich Drepper <drepper@redhat.com>
3007
4773086e
UD
3008 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
3009 Use __lll_add instead of spelling it out. Use protected symbol names.
3010 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
3011 Use __lll_add.
3012 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
3013 Renamed from lll_compare_and_swap. Use new name where necessary.
3014 (__lll_add): Defined.
3015 (__lll_dec_if_positive): Defined.
3016 (__lll_test_and_set): Defined.
3017 * sysdeps/ia64/pthread_spin_init.c: Removed.
3018 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
3019 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
3020 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
3021 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
3022 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
3023 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
3024 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
001bea71
UD
3025 * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
3026 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
3027 __sync_lock_release_si.
3028 Patch by Jakub Jelinek.
3029
3030 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
3031 Fix timeout handling.
3032 (__lll_timedwait_tid): Likewise.
3033 (lll_unlock_wake_cb): Wake up other waiters if necessary.
3034 Patch by Jakub Jelinek.
3035
3036 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
3037
de4471dd
RM
30382003-03-17 Roland McGrath <roland@redhat.com>
3039
3040 PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
3041 * sysdeps/pthread/pthread_spin_init.c: New file.
3042 * sysdeps/pthread/pthread_spin_unlock.c: New file.
3043 * sysdeps/powerpc/Makefile: New file.
3044 * sysdeps/powerpc/pthread_spin_lock.c: New file.
3045 * sysdeps/powerpc/pthread_spin_trylock.c: New file.
3046 * sysdeps/powerpc/pthreaddef.h: New file.
3047 * sysdeps/powerpc/tcb-offsets.sym: New file.
3048 * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
3049 * sysdeps/powerpc/tls.h: New file.
3050 * sysdeps/powerpc/bits/atomic.h: New file.
3051 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
3052 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
3053 * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
98054a05 3054
de4471dd
RM
3055 * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
3056 * sysdeps/unix/sysv/linux/sem_post.c: New file.
3057 * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
3058 * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
3059 * sysdeps/unix/sysv/linux/sem_wait.c: New file.
3060 * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
3061 * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
3062 * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
3063 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
3064 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
3065 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
3066 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
3067 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
3068 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
3069 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
3070
3071 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
3072 not gettimeofday.
3073 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
3074 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
3075 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
3076 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
3077 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
3078
5778033f
UD
30792003-03-17 Ulrich Drepper <drepper@redhat.com>
3080
3081 * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
3082 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
3083 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3084 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3085 Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
3086
796038f8
RM
30872003-03-16 Roland McGrath <roland@redhat.com>
3088
3089 * tst-fork4.c: Include <string.h>.
3090 * tst-signal2.c: Likewise.
3091 * tst-mutex5.c (do_test): exit -> return.
3092 * tst-mutex2.c: Include <stdlib.h>.
3093
51d0678c
UD
30942003-03-16 Ulrich Drepper <drepper@redhat.com>
3095
5778033f
UD
3096 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
3097 (__lll_mutex_timedlock_wait): Correct expected value after
3098 spurious wakeup. Otherwise we would never wait again.
3099
b6e2f87a
UD
3100 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
3101 zone versus inline asm stupidity. Use correct instructions.
3102
51d0678c
UD
3103 * tst-rwlock6.c: Add some more status output.
3104
8112cc70
RM
31052003-03-15 Roland McGrath <roland@redhat.com>
3106
3107 * sysdeps/pthread/configure.in: New file.
3108 * sysdeps/pthread/configure: New file (generated).
3109
49773c19
UD
31102003-03-15 Ulrich Drepper <drepper@redhat.com>
3111
3112 * allocatestack.c (allocate_stack): Store the exact stack size of
3113 user allocated stacks.
3114
eec0ca9f
JJ
31152003-03-15 Jakub Jelinek <jakub@redhat.com>
3116
3117 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
3118 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
3119 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
3120 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
3121 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
3122 Use `header.' prefix.
3123 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
3124
a87731e2
UD
31252003-03-15 Ulrich Drepper <drepper@redhat.com>
3126
3127 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
3128 __builtin_frame_address, use stack pointer.
3129
3130 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
3131 instead of __builtin_frame_pointer.
3132
e22a221d
UD
31332003-03-14 Ulrich Drepper <drepper@redhat.com>
3134
92ed3daf
UD
3135 * tst-basic1.c (do_test): Add cast to avoid warning.
3136 * tst-basic2.c (do_test): Likewise.
3137
9b89567d
UD
3138 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
3139 amount of stack correction.
3140
e22a221d
UD
3141 * tst-fork4.c: Use test-skeleton.c.
3142
2e49caba
RM
31432003-03-14 Roland McGrath <roland@redhat.com>
3144
3145 * init.c: Fix typo "#eli" for "#else".
3146
415ef7d8
RM
31472003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
3148
3149 * allocatestack.c (__stack_user): Use hidden_data_def.
3150 * pthread_create.c (__pthread_keys): Likewise.
3151
3152 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
3153
52287505
RM
31542003-03-14 Roland McGrath <roland@redhat.com>
3155
415ef7d8
RM
3156 * tst-fork4.c: New file.
3157 * Makefile (tests): Add it.
3158
52287505
RM
3159 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
3160 we always define the padding space.
3161 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
3162 stopped supporting its own extensions fully.
3163 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
3164 struct also called `header', so `header.multiple_threads' is the field
3165 name to use on all machines.
3166 * allocatestack.c (allocate_stack): Use `header.' prefix.
3167 * sysdeps/pthread/createthread.c (create_thread): Likewise.
3168 * pthread_create.c (__pthread_create_2_1): Likewise.
3169 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
3170 (THREAD_SELF): Likewise.
3171 * sysdeps/x86_64/tls.h: Likewise.
3172 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
3173 (SINGLE_THREAD_P): Likewise.
3174 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
3175 (SINGLE_THREAD_P): Likewise.
3176 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
3177 (SINGLE_THREAD_P): Likewise.
3178
3179 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
3180 value directly.
3181
c44bf9aa
UD
31822003-03-14 Ulrich Drepper <drepper@redhat.com>
3183
e22a221d
UD
3184 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
3185 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
3186
0eb18281
UD
3187 * pthread_create.c (start_thread): setjmp is expected to return 0.
3188
c44bf9aa
UD
3189 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
3190 (THREAD_GETMEM_NC): Likewise.
3191
564cd8b6
UD
31922003-03-13 Ulrich Drepper <drepper@redhat.com>
3193
3194 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
3195 and the size of the stack which must be allocated is a multiple,
3196 allocate one more page.
3197 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
3198 MULTI_PAGE_ALIASING.
3199
6461e577
RM
32002003-03-13 Roland McGrath <roland@redhat.com>
3201
3202 * pthread_create.c (start_thread): Set EXITING_BIT after the
3203 event-reporting (and destructors), not before.
3204
b5ec5617
UD
32052003-03-13 Jakub Jelinek <jakub@redhat.com>
3206
6461e577
RM
3207 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
3208 lll_futex_wake): Declare register variables as long int instead of
3209 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
3210 Make syscall arguments clobbered by the syscall.
3211 (lll_futex_wait): Define using lll_futex_timed_wait.
3212
3213 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
3214 to void *.
3215
3216 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
3217 PPID if [! NDEBUG].
3218
3219 * allocatestack.c (nptl_ncreated): Only declare if
3220 COLORING_INCREMENT != 0.
3221
3222 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
3223 (__libc_enable_asynccancel_2): Remove prototype.
3224
b5ec5617
UD
3225 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
3226 ctid to match kernel.
3227
d0369fb8
UD
32282003-03-12 Ulrich Drepper <drepper@redhat.com>
3229
7588880f
UD
3230 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
3231 libc_multiple_threads.
3232 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
3233 __libc_multiple_threads to...
3234 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
3235
3236 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
3237 versioning.
3238 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
3239 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3240
3241 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
3242 (__pthread_once_internal): Define.
3243
3244 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
3245 macros instead of .symver directly.
3246 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
3247 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
3248
d0369fb8
UD
3249 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
3250 * sysdeps/x86_64/tcb-offsets.sym: New file.
3251 * sysdeps/x86_64/Makefile: New file.
3252
3253 * sysdeps/i386/tcb-offsets.sym: Add SELF.
3254 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
3255 to access own pthread_t in TCB.
3256 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
3257 Likewise.
3258 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
3259 Likewise.
3260 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
3261
0bb2ac85
RM
32622003-03-12 Roland McGrath <roland@redhat.com>
3263
3264 * pthread-errnos.sym: New file.
3265 * Makefile (gen-as-const-headers): New variable, list that file.
3266 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
3267 header <pthread-errnos.h> instead of defining errno values here.
3268 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
3269 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
3270 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
3271 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
3272 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
3273 Likewise.
3274 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
3275 Likewise.
3276 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
3277 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3278 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
3279 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
3280 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3281 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
3282 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
3283 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
3284 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3285 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
3286 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
3287 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
3288 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
3289 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
3290 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
3291 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
3292 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
3293 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
3294 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
3295 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
3296 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
3297 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
3298 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
3299 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
3300 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
3301 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3302 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3303
3304 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
3305 CLONE_CHILD_SETTID worked.
3306
35e148cb
UD
33072003-03-12 Ulrich Drepper <drepper@redhat.com>
3308
d0369fb8
UD
3309 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
3310 file.
3311 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
3312 file.
3313
3314 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
3315 (pthread_cond_t): Add padding.
3316
da49194d
UD
3317 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
3318 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
3319 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
3320
35e148cb
UD
3321 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
3322 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
3323 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
3324 (__pthread_rwlock_timedrdlock): Likewise.
3325 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
3326 (__pthread_rwlock_wrlock): Likewise.
3327 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
3328 (__pthread_rwlock_rdlock): Likewise.
3329
3330 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
3331
3332 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
3333 result of lock re-get if it fails.
3334
3e976b96
UD
33352003-03-11 Ulrich Drepper <drepper@redhat.com>
3336
5a03acfe
UD
3337 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
3338 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
3339 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
3340 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
3341 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3342 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
3343 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
3344 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
3345 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
3346 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3347
3348 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
3349 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
3350
3351 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
3352 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
3353 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
3354 (create_thread): Likewise.
3355 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
3356 * init.c (__pthread_initialize_minimal_internal): Initialize
3357 __libc_multiple_threads_ptr if necessary.
3358 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
3359 __pthread_multiple_threads and __libc_multiple_threads_ptr.
3360 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
3361 __libc_multiple_threads.
3362 (__libc_pthread_init): Return pointer to __libc_pthread_init if
3363 necessary.
3364
3365 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
3366 (THREAD_SETMEM_NC): Likewise.
3367
3368 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
3369 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
3370 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
3371 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
3372
3373 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
3374 Eliminate one entire instruction.
3375
32a589b1
UD
3376 * cancellation.c (__pthread_enable_asynccancel_2): New function.
3377 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
3378 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
3379 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
3380 instead of __pthread_enable_asynccancel.
3381 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
3382 (__pthread_cond_wait): Likewise.
3383 * sysdeps/pthread/pthread_cond_timedwait.c
3384 (__pthread_cond_timedwait): Likewise.
3385 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
3386
3e976b96
UD
3387 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
3388 (__condvar_cleanup): Wake up all waiters in case we got signaled
3389 after being woken up but before disabling asynchronous
3390 cancellation.
3391 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
3392 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
3393 (__condvar_cleanup): Likewise.
3394
3395 * init.c (__NR_set_tid_address): If already defined, don't redefine.
3396 Make it an error if architecture has no #if case. Add x86-64.
3397
3398 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
3399 pt-initfini.s generation.
3400
3401 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
3402 (TLS_INIT_TP): Fix typo.
3403
6c477888
UD
34042003-03-11 Jakub Jelinek <jakub@redhat.com>
3405
3406 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
3407 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
3408
3409 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
3410 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
3411 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
3412 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
3413 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
3414 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
3415 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
3416 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
3417
ea694823
UD
34182003-03-11 Ulrich Drepper <drepper@redhat.com>
3419
6c477888
UD
3420 * sysdeps/pthread/pthread_cond_timedwait.c
3421 (__pthread_cond_timedwait): Return the result of the final
3422 locking. If it succeeds, the regular function return value.
3423
3424 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
3425 Return result of the final locking.
3426 * version.c (__nptl_main): Work around problems with the strange
3427 INTERNAL_SYSCALL macro on ppc32.
3428 * init.c (__pthread_initialize_minimal_internal): Unblock
3429 SIGCANCEL in case the parent blocked it.
3430 Reported by Paul Mackerras <paulus@samba.org>.
3431
ea694823
UD
3432 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
3433 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
3434 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
3435
b33e6163
RM
34362003-03-11 Jakub Jelinek <jakub@redhat.com>
3437
3438 * sysdeps/pthread/pthread_cond_timedwait.c
3439 (__pthread_cond_timedwait): Unlock and fail if
3440 __pthread_mutex_unlock_internal failed.
3441
3442 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
3443 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
3444 Use ARCH_CLONE.
3445 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
3446 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
3447 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
3448 ALLOCATE_STACK): New macros.
3449 (TLS_TPADJ): New macro.
3450 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
3451 (allocate_stack): Handle TLS_DTV_AT_TP and
3452 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
3453 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
3454 Don't set PD->self.
3455 * init.c [__ia64__] (__NR_set_tid_address): Define.
3456
3457 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
3458 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
3459 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
3460 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
3461 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
3462 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
3463 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
3464 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
3465 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
3466 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
3467 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
3468 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
3469 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
3470 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
3471 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
3472 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
3473 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
3474 * sysdeps/ia64/bits/atomic.h: New file.
3475 * sysdeps/ia64/Makefile: New file.
3476 * sysdeps/ia64/pthread_spin_init.c: New file.
3477 * sysdeps/ia64/pthread_spin_lock.c: New file.
3478 * sysdeps/ia64/pthread_spin_trylock.c: New file.
3479 * sysdeps/ia64/pthread_spin_unlock.c: New file.
3480 * sysdeps/ia64/pthreaddef.h: New file.
3481 * sysdeps/ia64/tcb-offsets.sym: New file.
3482 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
3483 * sysdeps/ia64/tls.h: New file.
3484
3485 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
3486 to syscall instead of no arguments.
3487
2b30b2e5
UD
34882003-03-10 Ulrich Drepper <drepper@redhat.com>
3489
db5f2fc9
UD
3490 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
3491 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
3492 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
3493 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
3494
3495 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
3496 unused code.
3497
6a4263e3
UD
3498 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
3499
3de7c2a9
UD
3500 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
3501 lowlevelbarrier.sym.
3502 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
3503 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
3504 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 3505 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 3506
2a544d82
UD
3507 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
3508 (__lll_mutex_lock_wait): Reverse order of first two parameters.
3509 (__lll_mutex_timedlock_wait): Likewise.
3510 (lll_mutex_lock): Adjust asm for that.
3511 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
3512 (lll_lock): Adjust asm for operand order change.
3513 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
3514 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
3515
ec06436c
UD
3516 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
3517 Reverse order of parameters.
3518 (__lll_timedwait_tid): Remove regparms attribute.
3519 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
3520 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
3521
3273832c
UD
3522 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
3523 (__lll_timedwait_tid): Remove one unnecessary instruction.
3524
51f32ab8
UD
3525 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
3526 __lll_mutex_timedlock_wait only for NOT_IN_libc.
3527 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
3528 lowlevelmutex.S.
3529
3530 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
3531 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
3532 for NOT_IN_libc.
3533 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
3534 lowlevellock.S.
3535
fad48d9e
UD
3536 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
3537 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
3538 for libc.so.
3539 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
3540 define LOCK here (if UP is not defined). The actual code is in
3541 lowlevelmutex.S.
3542
9356d063
UD
3543 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
3544 LOCK is already defined. Don't define lll_unlock_wake_cb and
3545 __lll_timedwait_tid for libc.so.
3546 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
3547 define LOCK here (if UP is not defined). The actual code is in
3548 lowlevellock.S.
3549
ebf0cbc5 3550 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
3551 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
3552 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
3553 instead of lowlevelsem.h.
3554 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
3555 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
3556 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 3557
c915e5ad
UD
3558 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
3559 lowlevelrwlock.sym.
3560 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
3561 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 3562 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 3563
4c3c2e8a
UD
3564 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
3565 register loading.
3566 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
3567 last changed. D'oh.
3568
2b30b2e5
UD
3569 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
3570
3571 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
3572 of __libc_locking_needed.
3573 (lll_trylock): Initialize %eax to zero.
3574
2b30b2e5
UD
3575 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
3576 pthread_cond_t definition.
3577
e48f9638
RM
35782003-03-10 Roland McGrath <roland@redhat.com>
3579
3580 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
3581 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
3582 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
3583 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
3584 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
3585
3586 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
3587 Instead of setting PD->multiple_threads, set globals
3588 __pthread_multiple_threads and __libc_multiple_threads.
3589 * sysdeps/pthread/createthread.c (create_thread): Likewise.
3590 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
3591 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
3592
3593 * descr.h (struct pthread): Conditionalize first member on
3594 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
3595 containing an anonymous tcbhead_t. Move `list' member out.
3596 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
3597 * allocatestack.c: Remove use of `header.data.' prefix.
3598 * pthread_create.c: Likewise.
3599 * init.c (__pthread_initialize_minimal_internal): Likewise.
3600 * sysdeps/pthread/createthread.c (create_thread): Likewise.
3601 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
3602 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
3603 * sysdeps/x86_64/tls.h: Likewise.
3604 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
3605 (SINGLE_THREAD_P): Likewise.
3606 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
3607 (SINGLE_THREAD_P): Likewise.
3608 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
3609 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
3610
c37cae9e
UD
36112003-03-09 Ulrich Drepper <drepper@redhat.com>
3612
d38c777e
RM
3613 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
3614
7b44a5e0 3615 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 3616 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 3617
c2e5e085
UD
3618 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
3619 leftovers from the ia32 code.
3620
3621 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
3622 memory load.
3623 (clear_once_control): Don't load %esi.
3624
3625 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
3626 handling.
3627
3628 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
3629
cd4b2a55
UD
3630 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
3631 * sysdeps/unix/sysv/linux/createthread.c: ...here.
3632
c37cae9e
UD
3633 * Makefile (tests): Add tst-cond10.
3634 * tst-cond10.c: New file.
3635
d130a341
UD
36362003-03-08 Ulrich Drepper <drepper@redhat.com>
3637
ccf1d573
UD
3638 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
3639 * tst-signal3.c (do_test): Likewise.
3640 * tst-sem5.c (do_test): Likewise.
3641 * tst-kill6.c (do_test): Likewise.
3642 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
3643
3644 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
3645 of inc/dec.
3646 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
3647 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
3648 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
3649 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
3650 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
3651 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
3652 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
3653 Likewise.
3654 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
3655 Likewise.
3656 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
3657 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3658 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3659 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
3660 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
3661 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
3662 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
3663 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
3664
d130a341
UD
3665 * allocatestack.c (allocate_stack): If mprotect() fails free the
3666 TLS memory.
3667
bc6389ad
UD
36682003-03-07 Ulrich Drepper <drepper@redhat.com>
3669
41d4d223
UD
3670 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
3671
3672 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
3673 lll_wake_tid. This was used only to work around kernel limits in
3674 the early days.
3675 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
3676 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
3677 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
3678 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
3679
bc6389ad
UD
3680 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
3681 (__pthread_initialize_minimal_internal): Change initialization of
3682 __static_tls_align_m1 appropriately.
3683 * pthreadP.h (__static_tls_align_m1): Renamed from
3684 __static_tls_align.
3685 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
3686 instead of __static_tls_align-1.
3687
cc775edf
UD
36882003-03-04 Ulrich Drepper <drepper@redhat.com>
3689
0de28d5c 3690 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 3691
518b5308
UD
3692 * pthread_create.c: Define __pthread_keys using nocommon
3693 attribute, not by placing it explicitly in bss.
3694 Remove DEFINE_DEALLOC definition. Not needed anymore.
3695
3696 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
3697 Use it in mmap call to allocate stacks.
3698
3699 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
3700
cc775edf
UD
3701 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
3702 result of the thread function.
3703
4f6f0a8f
UD
37042003-03-03 Ulrich Drepper <drepper@redhat.com>
3705
f04a2721
UD
3706 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
3707 version is just fine.
3708
4f6f0a8f
UD
3709 * sysdeps/unix/sysv/linux/libc_pthread_init.c
3710 (__pthread_child_handler): Renamed from pthread_child_handler,
3711 exported, and marked hidden. Change all users.
3712 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
3713 free __pthread_child_handler from child list.
3714
7ce5c164
UD
37152003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
3716
3717 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
3718
3719 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
3720 Fix handling of cancellation and failing pthread_mutex_unlock call.
3721 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
3722 (__pthread_cond_wait): Likewise.
3723
3724 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
3725 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
3726 lll_futex_timed_wait call.
3727 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
3728 (pthread_rwlock_timedwrlock): Likewise.
3729
3730 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
3731 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
3732 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
3733
3734 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
3735 check of lll_futex_wake return value.
3736
ea6a015b
RM
37372003-03-03 Roland McGrath <roland@redhat.com>
3738
3739 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
3740
3741 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
3742 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
3743 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
3744
4adacf57
UD
37452003-03-02 Ulrich Drepper <drepper@redhat.com>
3746
1be3d664
UD
3747 * sysdeps/pthread/timer_create.c (timer_create): Return correct
3748 error for CPU clocks.
3749
885bafa1
UD
3750 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
3751 _POSIX_MONOTONIC_CLOCK.
3752 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3753
4adacf57
UD
3754 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
3755 recent kernels.
3756
86bfff4d
UD
37572003-03-01 Ulrich Drepper <drepper@redhat.com>
3758
3759 * descr.h (struct pthread): Move cleanup field to the front.
3760
d1149385
RM
37612003-03-01 Roland McGrath <roland@redhat.com>
3762
3763 * sem_open.c (sem_open): Braino fix.
3764
bd8bb78b
UD
37652003-03-01 Ulrich Drepper <drepper@redhat.com>
3766
748bec08
UD
3767 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
3768 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
3769 __pthread_cleanup_pop functionality.
3770 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3771
bd8bb78b
UD
3772 * descr.h (struct pthread): Move tid field to the front now that
3773 it is often used.
3774
3775 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
3776 (__lll_mutex_timedlock_wait): Remove.
3777 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
3778 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
3779 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
3780 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
3781 (lll_unlock_wake_cb): Don't save and restore %esi.
3782 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
3783 %esi.
3784 (__lll_timedwait_tid): Add alignment.
3785 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
3786 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
3787 %esi.
3788 (__lll_timedwait_tid): Removed.
3789 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
3790 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
3791 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
3792 (pthread_barrier_wait): Don't save, load, and restore %esi for
3793 last thread.
3794 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
3795 (__pthread_cond_signal): Don't save, load, and restore %esi.
3796 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
3797 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
3798 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
3799 Don't save, load, and restore %esi.
3800
d2637c70
UD
38012003-02-27 Ulrich Drepper <drepper@redhat.com>
3802
567fb22a
UD
3803 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
3804 Release lock before waking up the waiters.
3805
427f5fa1
UD
3806 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
3807
a2d83cfb
UD
3808 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
3809 (reader_thread): Likewise.
3810
d2637c70
UD
3811 * sysdeps/pthread/pthread_rwlock_unlock.c
3812 (__pthread_rwlock_unlock): Release internal lock early. Don't try
3813 to wake up readers if there are none.
3814
3815 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
3816 Release internal lock before wake threads.
3817
b1531183
UD
38182003-02-26 Ulrich Drepper <drepper@redhat.com>
3819
dbf6131c
UD
3820 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
3821 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
3822 predefined.
3823 * tst-rwlock9.c: Likewise.
3824 * tst-rwlock10.c: New file.
3825 * tst-rwlock11.c: New file.
3826
695799fe
UD
3827 * Makefile (tests): Add tst-dlsym1.
3828 * tst-dlsym1.c: New file.
3829
b1531183
UD
3830 * init.c (__pthread_initialize_minimal_internal): Set
3831 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
3832 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
3833
3724f268
UD
38342003-02-24 Ulrich Drepper <drepper@redhat.com>
3835
3857ca78
UD
3836 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
3837
80d80779
UD
3838 * tst-cond2.c: Fix sychronization with child.
3839
86371308
UD
3840 * tst-rwlock8.c (reader_thread): Remove unused variable.
3841
ffeb4481
UD
3842 * Makefile: Add rules to build and run tst-tls3.
3843 * tst-tls3.c: New file.
3844 * tst-tls3mod.c: New file.
3845
3724f268
UD
3846 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
3847 * tst-rwlock8.c: New file.
3848 * tst-rwlock9.c: New file.
3849 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
3850 complete broken rwlock implementation.
3851 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
3852 Likewise.
3853 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
3854 Likewise.
3855 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
3856 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
3857 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
3858 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
3859 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
3860 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
3861 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 3862
8915cc40
RM
38632003-02-23 Roland McGrath <roland@redhat.com>
3864
3865 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
3866
fd1a0d0c
UD
38672003-02-23 Ulrich Drepper <drepper@redhat.com>
3868
ecf28959
UD
3869 * Makefile (tests): Add tst-context1.
3870 * tst-context1.c: New file.
3871
5e47b76b
UD
3872 * Makefile (tests): Add tst-tls1 and tst-tls2.
3873 * tst-tls1.c: New file.
3874 * tst-tls2.c: New file.
3875
5a6bbb41
UD
3876 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
3877 for failed cmpxchg.
3878
fd1a0d0c
UD
3879 * pthread_create.c (start_thread): Set EXITING_BIT early.
3880
3881 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
3882 (THREAD_GETMEM_NC): Likewise.
3883
757f9fcb
UD
38842003-02-22 Ulrich Drepper <drepper@redhat.com>
3885
b1b8e747
UD
3886 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
3887 off 3 more bytes by using offset-less instructions when possible.
3888
c780aa21 3889 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
3890
3891 * eintr.c (eintr_source): Add unnecessary return but the compiler
3892 insists.
3893
3894 * tst-kill3.c: Include <unistd.h>.
3895
5148559c
RM
38962003-02-21 Roland McGrath <roland@redhat.com>
3897
3898 * pthread_create.c (start_thread): Call __libc_thread_freeres.
3899
ab2d98e3
UD
39002003-02-21 Ulrich Drepper <drepper@redhat.com>
3901
71028edd
UD
3902 * Makefile (tests): Add tst-eintr1.
3903 (distribute): Add eintr.c.
3904 * tst-eintr1.c: New file.
3905 * eintr.c: New file.
3906
e814f748
UD
3907 * pthread_cancel.c (pthread_cancel): Use tkill directly.
3908
3909 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
3910 Disallow sending SIGCANCEL.
3911
ab2d98e3 3912 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 3913 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
3914 * tst-kill1.c: New file.
3915 * tst-kill2.c: New file.
3916 * tst-kill3.c: New file.
3917 * tst-kill5.c: New file.
9c03686d 3918 * tst-kill6.c: New file.
e814f748
UD
3919 * tst-basic7.c: Renamed to...
3920 * tst-kill4.c: ...this.
ab2d98e3 3921
59fed0e2
RM
39222003-02-21 Roland McGrath <roland@redhat.com>
3923
3924 * Makefile (install-lib-ldscripts): New variable.
3925
49dc759f
UD
39262003-02-21 Ulrich Drepper <drepper@redhat.com>
3927
8c2e9a29
UD
3928 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
3929 * pthread_cancel.c: Use INVALID_TD_P.
3930 * pthread_detach.c: Likewise.
3931 * pthread_getschedparam.c: Likewise.
3932 * pthread_setschedparam.c: Likewise.
3933 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
3934 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
3935 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
3936 * pthread_timedjoin.c: Likewise.
3937
3938 * tst-basic7.c: Include <signal.h>.
3939
49dc759f
UD
3940 * pthread_join.c (pthread_join): Limited checking for invalid
3941 descriptors.
3942 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
3943
df5803bf
UD
39442003-02-20 Ulrich Drepper <drepper@redhat.com>
3945
c5acd3d7
UD
3946 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
3947 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
3948 * Makefile (tests): Add tst-key4.
3949 * tst-key4.c: New file.
3950
729924a0
UD
39512003-02-18 Ulrich Drepper <drepper@redhat.com>
3952
2f7dc594
UD
3953 * Makefile (tests): Add tst-basic7.
3954 * tst-basic7.c: New file.
3955
ba25bb0f
UD
3956 * pthread_create.c (deallocate_tsd): Mark as internal_function.
3957 Add some more __builtin_expect.
3958
12fd3c5f 3959 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 3960
5430d926
UD
39612003-02-17 Ulrich Drepper <drepper@redhat.com>
3962
b0db7fbe
UD
3963 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
3964 _POSIX_THREAD_PRIORITY_SCHEDULING.
3965 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
3966 _XOPEN_REALTIME_THREADS.
3967 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
3968
3969 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
3970 kernel returns EINVAL for PID <= 0, work around it.
3971
ecfda9bd
UD
3972 * Makefile (tests): Add tst-signal5.
3973 * tst-signal5.c: New file.
3974
7d78ab99
UD
3975 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
3976 and LOGIN_NAME_MAX.
3977
371a2972
UD
3978 * tst-cancel1.c (tf): Block all signals.
3979
5430d926
UD
3980 * Makefile (tests): Add tst-basic6.
3981 * tst-basic6.c: New file.
3982
3983 * tst-basic1.c: Add test for process ID.
3984
3985 * Makefile (tests): Add tst-cancel10.
3986 * tst-cancel10.c: New file.
3987
3988 * Makefile (tests): Add tst-signal4.
3989 * tst-signal4.c: New file.
3990
3991 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
3992 __sigismember instead of sigismember. Add __builtin_expect.
3993
1564916a
UD
39942003-02-16 Ulrich Drepper <drepper@redhat.com>
3995
179ff175
UD
3996 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
3997 pthread_setcancelstate, and pthread_rwlock_setpshared.
3998
e4335f9a
UD
3999 * tst-cancel7.c (do_test): Make sure the pid file exists before
4000 canceling the thread.
4001
0a37669a
UD
4002 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
4003 pthread_rwlock_timedrdlock tests.
4004 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
4005 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
4006 Check for invalid tv_nsec field.
4007 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
4008 Likewise.
4009
4010 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
4011 recursive mutex of overflow.
4012
4013 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
4014
e4335f9a 4015 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
4016 going into an endless loop.
4017 * Makefile (tests): Add tst-cancel9.
4018 * tst-cancel9.c: New file.
4019
4020 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
4021
b270b548
UD
40222003-02-15 Ulrich Drepper <drepper@redhat.com>
4023
1c82b97f
UD
4024 * tst-mutex5.c (do_test): Add more timedlock tests.
4025
b2f05465 4026 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
4027 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
4028
e798b60f
UD
4029 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
4030 use INLINE_SYSCALL. Error number is returned, not -1.
4031
90491dc4
UD
4032 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
4033 and __deallocate_stack with internal_function.
4034 * pthread_create.c: Adjust definitions appropriately.
4035 * allocatestack.c: Likewise.
4036
4037 * pthread_join.c: Add one more __builtin_expect.
4038 * pthread_timedjoin.c: Likewise.
4039
4040 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
4041 not data of sequence number does not match.
4042 Add one __builtin_expect.
4043
c6247c9d
UD
4044 * Makefile (tests): Add tst-clock1.
4045 * tst-clock1.c: New file.
4046
b270b548
UD
4047 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
4048 negative arguments.
4049 * Makefile (tests): Add tst-basic5.
4050 * tst-basic5.c: New file.
4051
700bf7af
UD
40522003-02-14 Ulrich Drepper <drepper@redhat.com>
4053
757de559
UD
4054 * Makefile (tests): Add tst-basic4.
4055 * tst-basic4.c: New file.
4056
47202270
UD
4057 * pthreadP.h: Add declaraction for __nptl_nthreads.
4058 * pthread_create.c: Define __nptl_nthreads
4059 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 4060 after thread is done. If then zero, call exit(0).
47202270
UD
4061 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
4062 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
4063 * init.c (pthread_functions): Initialize ptr_nthreads.
4064 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
4065 (__reclaim_stacks): Decrement __nptl_nthreads.
4066 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
4067 Define.
4068 * Makefile (tests): Add tst-basic3.
4069 * tst-basic3.c: New file.
4070
e320ef46
UD
4071 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
4072 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
4073 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
4074 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
4075 if asynchronous canceling is enabled.
4076 * pthread_join.c (pthread_join): When recognizing circular joins,
4077 take into account the other thread might be already canceled.
4078 * Makefile (tests): Add tst-join5.
4079 * tst-join5.c: New file.
4080
700bf7af
UD
4081 * Makefile (tests): Add tst-join4.
4082 * tst-join4.c: New file.
4083
40842003-02-13 Ulrich Drepper <drepper@redhat.com>
4085
4086 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
4087
dac0f772
UD
40882003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
4089
4090 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
4091 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
4092 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
4093 warning.
4094 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
4095 to avoid warning.
4096 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
4097 error if lll_futex_wake failed.
4098
e8cda341
UD
40992003-02-13 Ulrich Drepper <drepper@redhat.com>
4100
a7720b5e
UD
4101 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
4102 handling of cancellation and failung pthread_mutex_unlock call.
4103 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4104 * Makefile (tests): Add tst-cond8 and tst-cond9.
4105 * tst-cond8.c: New file.
4106 * tst-cond9.c: New file.
4107
a1ea4c06
UD
4108 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
4109
4110 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
4111 non-standard initializers with __USE_GNU.
4112
e8cda341
UD
4113 * Makefile (tests): Add tst-cleanup3.
4114 * tst-cleanup3.c: New file.
4115
2067577c
UD
41162003-02-12 Ulrich Drepper <drepper@redhat.com>
4117
89e78a95
UD
4118 * Makefile (tests): Add tst-attr1 and tst-attr2.
4119 * tst-attr1.c: New file.
4120 * tst-attr2.c: New file.
4121
dfdd294a
UD
4122 * Makefile: Add rules to build and run tst-atfork2 test.
4123 * tst-atfork2.c: New file.
4124 * tst-atfork2mod.c: New file.
4125
4126 * sysdeps/unix/sysv/linux/unregister-atfork.c
4127 (__unregister_atfork): Free the memory allocated for the handlers
4128 after removing them from the lists.
4129
4130 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
4131 cleanup function.
4132
4133 * tst-atfork1.c (do_test): Wait for the child we forked.
4134 Report error in child.
4135
4136 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
4137
2067577c
UD
4138 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
4139
2a8a8a84
UD
41402003-02-10 Ulrich Drepper <drepper@redhat.com>
4141
d9dd121e
UD
4142 * Makefile (tests): Add tst-cancel8.
4143 * tst-cancel8.c: New file.
4144
2a8a8a84
UD
4145 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
4146 clearing of control variable.
defd1870 4147 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 4148 * tst-once3.c: New file.
defd1870 4149 * tst-once4.c: New file.
2a8a8a84 4150
a54e8d33
UD
41512003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
4152
4153 * sysdeps/sh/Makefile: New file.
4154 * sysdeps/sh/bits/atomic.h: New file.
4155 * sysdeps/sh/pthread_spin_init.c: New file.
4156 * sysdeps/sh/pthread_spin_lock.c: New file.
4157 * sysdeps/sh/pthread_spin_trylock.S: New file.
4158 * sysdeps/sh/pthread_spin_unlock.S: New file.
4159 * sysdeps/sh/pthreaddef.h: New file.
4160 * sysdeps/sh/tcb-offsets.sym: New file.
4161 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
4162 * sysdeps/sh/tls.h: New file.
4163 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
4164 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
4165 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
4166 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
4167 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
4168 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
4169 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
4170 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
4171 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
4172 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
4173 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
4174 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
4175 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
4176 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
4177 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
4178 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
4179 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
4180 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
4181 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
4182 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
4183 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
4184 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
4185 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
4186 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
4187 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
4188 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
4189 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
4190 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
4191 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
4192 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
4193
696e556e
UD
41942003-02-08 Ulrich Drepper <drepper@redhat.com>
4195
4196 * tst-cond2.c: Rearrange code to not rely on behavior undefined
4197 according to POSIX.
4198
4199 * tst-basic2.c (do_test): Lock mutex before creating the thread.
4200
fef710d6
UD
42012003-02-07 Ulrich Drepper <drepper@redhat.com>
4202
c6180643
UD
4203 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
4204 (TLS_GET_FS): New #define.
4205 (TLS_SET_FS): New #define.
4206 Correct value of __NR_set_thread_area.
4207
fef710d6
UD
4208 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
4209
11090a99
UD
42102003-02-06 Ulrich Drepper <drepper@redhat.com>
4211
65c68990
UD
4212 * Makefile (tests): Add tst-popen1.
4213 * tst-popen1.c: New file.
4214
11090a99
UD
4215 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
4216 but inactive generalization.
4217 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4218 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
4219 Minor optimization, remove one instruction.
4220 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
4221
a88c9263
UD
42222003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
4223
4224 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
4225
42262003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
4227
4228 * init.c (__NR_set_tid_address): Add #ifdef for s390.
4229 * sysdeps/pthread/pthread_barrier_wait.c: New file.
4230 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
4231 * sysdeps/pthread/pthread_cond_signal.c: New file.
4232 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
4233 * sysdeps/pthread/pthread_cond_wait.c: New file.
4234 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
4235 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
4236 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
4237 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
4238 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
4239 * sysdeps/s390/Makefile: New file.
4240 * sysdeps/s390/bits/atomic.h: New file.
4241 * sysdeps/s390/pthread_spin_init.c: New file.
4242 * sysdeps/s390/pthread_spin_lock.c: New file.
4243 * sysdeps/s390/pthread_spin_trylock.c: New file.
4244 * sysdeps/s390/pthread_spin_unlock.c: New file.
4245 * sysdeps/s390/pthreaddef.h: New file.
4246 * sysdeps/s390/tcb-offsets.sym: New file.
4247 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
4248 * sysdeps/s390/tls.h: New file.
4249 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
4250 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
4251 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
4252 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
4253 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
4254 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
4255 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
4256 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
4257 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
4258 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
4259 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
4260 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
4261 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
4262 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
4263 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
4264 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
4265 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
4266 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
4267 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
4268 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
4269 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
4270 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
4271 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
4272
6f1cff95
UD
42732003-02-04 Ulrich Drepper <drepper@redhat.com>
4274
ec609a8e
UD
4275 * atomic.h: Add a couple more default implementations.
4276 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
4277 __arch_compare_and_exchange_32_acq in return value definition. It
4278 always exists.
4279 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 4280 Add missing atomic_ prefixes.
e3ec8904 4281
6f1cff95
UD
4282 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
4283 thread library is available, use correct value to mark initialized
4284 once variable.
4285
4f088329
UD
42862003-02-03 Ulrich Drepper <drepper@redhat.com>
4287
6f1cff95
UD
4288 * allocatestack.c (allocate_stack): Use __getpagesize instead of
4289 __sysconf to determine pagesize.
4290
3e4fc359 4291 * pthread_create.c: Include <atomic.h>.
4f088329
UD
4292 * allocatestack.c (allocate_stack): Implement coloring of the
4293 allocated stack memory. Rename pagesize to pagesize_m1. It's the
4294 size minus one. Adjust users.
3e4fc359 4295 * sysdeps/i386/i686/Makefile: New file.
4f088329 4296
2f42e8be
UD
42972003-02-02 Ulrich Drepper <drepper@redhat.com>
4298
4301f7e2
UD
4299 * allocatestack.c: Improve comment throughout the file.
4300
2f42e8be 4301 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 4302 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
4303 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
4304 (__lll_lock_wait): Likewise.
4305 (lll_unlock_wake_cb): Removed.
4306
4a7d6545
UD
43072003-01-31 Ulrich Drepper <drepper@redhat.com>
4308
4309 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
4310 _POSIX_THREAD_PRIORITY_SCHEDULING.
4311
886d5973
UD
43122003-01-30 Jakub Jelinek <jakub@redhat.com>
4313
4314 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
4315 Fix return type of ptr___pthread_getspecific.
4316
e474ca78
UD
43172003-01-29 Ulrich Drepper <drepper@redhat.com>
4318
4319 * Makefile (tests): Add tst-umask1.
4320 (tst-umask1-ARGS): Define.
4321 * tst-umask1.c: New file.
4322
e6ebd2e4
UD
43232003-01-28 Ulrich Drepper <drepper@redhat.com>
4324
6cf26f41
UD
4325 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
4326 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
4327 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
4328 pthread_rwlock_unlock.
4329 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
4330 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
4331 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
4332 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
4333 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
4334 New file.
4335 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
4336 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
4337 New file.
4338 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
4339 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
4340 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
4341 New file.
4342 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
4343 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
4344 New file.
4345 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
4346 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
4347 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
4348 New file.
4349 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
4350 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
4351 New file.
4352 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
4353
1d087a7e
UD
4354 * Makefile (libpthread-routines): Remove lowlevelcond and
4355 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
4356 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
4357 and pthread_cond_broadcast.
4a99d160
UD
4358 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
4359 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
4360 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
4361 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
4362 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
4363 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
4364 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
4365 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
4366 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
4367 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
4368 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
4369 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
4370 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
4371 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
4372 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
4373 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
4374 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
4375 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
4376 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
4377 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
4378 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
4379 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
4380 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
4381 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
4382 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
4383 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
4384 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
4385 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
4386 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
4387 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
4388 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 4389
e6ebd2e4
UD
4390 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
4391 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
4392 of the code is moved to ...
4393 * sysdeps/pthread/createthread.c: ...here. New file.
4394
a15698cb
UD
43952003-01-27 Ulrich Drepper <drepper@redhat.com>
4396
0566b130
UD
4397 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
4398 (__new_sem_post): Clear %eax before returning.
4399 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
4400
e6fb8846
UD
4401 * Makefile (tests): Add tst-cleanup2.
4402 * tst-cleanup2.c: New file.
4403
a15698cb
UD
4404 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
4405 Interpret first parameter correctly.
4406
8824b0a1
UD
44072003-01-17 Ulrich Drepper <drepper@redhat.com>
4408
4409 * Makefile (headers): Add bits/semaphore.h.
4410
850dcfca
UD
44112003-01-16 Jakub Jelinek <jakub@redhat.com>
4412
4413 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
4414 if not SHARED.
4415
574b892e
UD
44162003-01-14 Ulrich Drepper <drepper@redhat.com>
4417
a8d87c92
UD
4418 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
4419 must be used and mapping failed.
4420 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
4421
574b892e
UD
4422 * Makefile (CFLAGS-pthread_self.os): Define this, not
4423 CFLAGS-pthread_self.c.
4424
fb48047a
UD
44252003-01-13 Ulrich Drepper <drepper@redhat.com>
4426
47805511
UD
4427 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
4428 lll_unlock_wake_cb.
4429
fb48047a
UD
4430 * Makefile (libpthread-routines): Add version. Add rules to build
4431 version.os and banner.h.
4432 * version.c: New file.
4433
115bb61d
UD
44342003-01-13 Jakub Jelinek <jakub@redhat.com>
4435
4436 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
4437 the alias unconditional.
4438 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
4439
44402003-01-13 Ulrich Drepper <drepper@redhat.com>
4441
4442 * Makefile (CFLAGS-pthread_self.c): New definition.
4443
6aca81bb
UD
44442003-01-06 Jakub Jelinek <jakub@redhat.com>
4445
4446 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
4447 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
4448 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
4449 * init.c (__pthread_initialize_minimal_internal): Likewise.
4450
e9c7764e
UD
44512003-01-07 Jakub Jelinek <jakub@redhat.com>
4452
b5facfda
UD
4453 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
4454
e9c7764e
UD
4455 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
4456 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
4457 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
4458 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
4459 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
4460 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
4461
bef1e42f
UD
44622003-01-06 Jakub Jelinek <jakub@redhat.com>
4463
4464 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
4465 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
4466 * tst-cancel-wrappers.sh: Remove all exceptions.
4467
bbd17455
UD
44682003-01-05 Ulrich Drepper <drepper@redhat.com>
4469
a73ab6df
UD
4470 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
4471 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
4472
bbd17455
UD
4473 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
4474 Use __libc_pthread_functions array if SHARED.
4475
4476 * pthreadP.h: Move pthread_cond_2_0_t definition to...
4477 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
4478
4479 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
4480 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
4481 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
4482 __libc_ptf_call instead of __libc_maybe_call.
4483 (PTF): New #define.
4484 (__libc_cleanup_region_start): Wrap function name with PTF call.
4485 (__libc_cleanup_region_end): Likewise.
4486 (__libc_cleanup_end): Likewise.
4487
4488 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
4489 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
4490 * pthread_key_create.c: Add __pthread_key_create_internal alias.
4491 * pthreadP.h: Add prototypes.
4492
4493 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
4494 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
4495 __pthread_rwlock_unlock aliases.
4496 * pthreadP.h: Add prototypes for new aliases.
4497
4498 * pthreadP.h (struct pthead_functions): Moved to...
4499 * sysdeps/pthread/pthread-functions.h: ...here. New file.
4500 * init.c (pthread_functions): Add initializers for new elements.
4501
4502 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
4503 __pthread_cleanup_pop_restore aliases.
4504 * pthreadP.h: Add prototypes.
4505
4506 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
4507 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
4508 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
4509 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
4510 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
4511 * pthreadP.h: Adjust prototypes and callers.
4512
d27a78be
UD
45132003-01-04 Ulrich Drepper <drepper@redhat.com>
4514
b74121ae
UD
4515 * Makefile (tests): Add tst-cancel7.
4516 (tst-cancel7-ARGS): New variable.
bbd17455 4517 * tst-cancel7.c: New file.
b74121ae 4518
29bc410c
UD
4519 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
4520 around gcc defficiencies.
4521 * old_pthread_cond_signal.c: Likewise.
4522 * old_pthread_cond_timedwait.c: Likewise.
4523 * old_pthread_cond_wait.c: Likewise.
4524
d27a78be
UD
4525 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
4526
733f25e6
UD
45272003-01-03 Ulrich Drepper <drepper@redhat.com>
4528
7edb2ae3
UD
4529 * Makefile (tests): Add tst-cond7.
4530 * tst-cond7.c: New file.
4531
b1151300
UD
4532 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
4533 (condvar_cleanup): Get condvar address from the right place.
4534
733f25e6
UD
4535 * atomic.h: Correct definitions of atomic_full_barrier,
4536 atomic_read_barrier, atomic_write_barrier.
4537
4538 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
4539 race-free.
4540 * old_pthread_cond_signal.c: Likewise.
4541 * old_pthread_cond_timedwait.c: Likewise.
4542 * old_pthread_cond_wait.c: Likewise.
4543
686b7223
UD
45442003-01-03 Jakub Jelinek <jakub@redhat.com>
4545
4546 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
4547
0e07706e
UD
45482003-01-03 Ulrich Drepper <drepper@redhat.com>
4549
997256dd
UD
4550 * pthreadP.h (pthread_cond_2_0_t): New type.
4551 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
4552 Use new type for the 2.0 condvar function prototypes.
4553 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
4554 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
4555 parameter.
4556 * old_pthread_cond_destroy.c: Likewise.
4557 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
4558 * old_pthread_cond_signal.c: Likewise.
4559 * old_pthread_cond_timedwait.c: Likewise.
4560 * old_pthread_cond_wait.c: Likewise.
4561
842d2817
UD
4562 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
4563 (__pthread_cond_wait): Don't save cancellation mode and seq value
4564 in same location.
4565
0e07706e
UD
4566 * herrno.c (__h_errno_location): Don't define as weak.
4567
bf293afe
UD
45682003-01-02 Jakub Jelinek <jakub@redhat.com>
4569
4570 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
4571 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
4572 and pthread_cond_wait.
4573 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
4574 Renamed to...
4575 (__pthread_cond_broadcast_2_0): ... this.
4576 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
4577 Renamed to...
4578 (__pthread_cond_destroy_2_0): ... this.
4579 * old_pthread_cond_init.c (__old_pthread_cond_init):
4580 Renamed to...
4581 (__pthread_cond_init_2_0): ... this.
4582 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
4583 Renamed to...
4584 (__pthread_cond_signal_2_0): ... this.
4585 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
4586 Renamed to...
4587 (__pthread_cond_wait_2_0): ... this.
4588 * pthread_cond_destroy.c: Include shlib-compat.h.
4589 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
4590 * pthread_cond_init.c: Include shlib-compat.h.
4591 (pthread_cond_init): Change strong_alias into versioned_symbol.
4592 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
4593 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
4594 fields.
4595 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
4596 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
4597 __pthread_cond_wait_2_0): New prototypes.
4598 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
4599 __old_pthread_cond_init, __old_pthread_cond_signal,
4600 __old_pthread_cond_wait): Removed.
4601 * init.c: Include shlib-compat.h.
4602 (pthread_functions): Guard ptr___pthread_attr_init_2_0
4603 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
4604 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
4605 ptr___pthread_cond_*_2_0 fields.
4606 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
4607 pthread_cond_*@GLIBC_2.0 compatibility symbols.
4608
4609 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
4610 LIBC_SIGACTION was not yet defined.
4611 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
4612 [!defined LIBC_SIGACTION] (__sigaction): New function and
4613 libc_hidden_weak.
4614 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
4615 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
4616
46172003-01-02 Jakub Jelinek <jakub@redhat.com>
4618
4619 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
4620
05df18c3
UD
46212003-01-02 Ulrich Drepper <drepper@redhat.com>
4622
4623 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4624 New, larger type definition.
4625 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
4626 implementation.
4627 * Versions [libpthread]: Add definitions for new pthread_cond_*
4628 interfaces for version GLIBC_2.3.2.
4629 * pthread_cond_init.c: Update initialization for new type definition.
4630 * Makefile (libpthread-routines): Remove pthread_cond_wait,
4631 pthread_cond_timedwait, pthread_cond_signal, and
4632 pthread_cond_broadcast. Add old_pthread_cond_init,
4633 old_pthread_cond_destroy, old_pthread_cond_wait,
4634 old_pthread_cond_timedwait, old_pthread_cond_signal, and
4635 old_pthread_cond_broadcast.
4636 * old_pthread_cond_broadcast.c: New file.
4637 * old_pthread_cond_destroy.c: New file.
4638 * old_pthread_cond_init.c: New file.
4639 * old_pthread_cond_signal.c: New file.
4640 * old_pthread_cond_timedwait.c: New file.
4641 * old_pthread_cond_wait.c: New file.
4642 * pthreadP.h: Add prototypes for the compatibility interfaces.
4643
4644 * pthread_cond_destroy.c: Don't include <errno.h>.
4645
fd8979e4
UD
46462003-01-01 Ulrich Drepper <drepper@redhat.com>
4647
4648 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
4649 unnecessary zero offset when addressing MUTEX.
4650
6d6ee629
UD
46512002-12-31 Ulrich Drepper <drepper@redhat.com>
4652
4653 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
4654 __register_atfork.
4655 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
4656 for __register_atfork.
4657
a4baf360
UD
46582002-12-31 Jakub Jelinek <jakub@redhat.com>
4659
4660 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
4661 instead of ASSEMBLER test macro.
4662
4663 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
4664 __libc_current_sigrtmax): Add libc_hidden_def.
4665
4666 * sysdeps/pthread/list.h: Remove assert.h include.
4667
e9395a94
UD
46682002-12-31 Ulrich Drepper <drepper@redhat.com>
4669
4670 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
4671 __pthread_initialize_minimal_internal not
4672 __pthread_initialize_minimal.
4673
89d6e444
UD
46742002-12-30 Ulrich Drepper <drepper@redhat.com>
4675
416d2de6
UD
4676 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
4677 __pthread_initialize_minimal as hidden.
4678
89d6e444
UD
4679 * init.c (__pthread_initialize_minimal_internal): Don't mark as
4680 constructor.
4681
46822002-12-31 Jakub Jelinek <jakub@redhat.com>
4683
4684 * Makefile ($(inst_libdir)/libpthread.so): Depend on
4685 $(common-objpfx)format.lds, include that into the output script.
4686 Fix comment.
4687 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
4688
8cac677c
UD
46892002-12-28 Andreas Jaeger <aj@suse.de>
4690
4691 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
4692 nsec resolution changes.
4693 (xstat64_conv): Likewise.
4694 (xstat32_conv): Likewise.
4695 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
4696 struct kernel_stat.
4697 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
4698 structs stat and stat64.
4699 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 4700 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 4701
49e9f864
UD
47022002-12-30 Jakub Jelinek <jakub@redhat.com>
4703
4704 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
4705 argument.
4706 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
4707 (pthread_exit): Use strong_alias to avoid warnings.
4708 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
4709 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
4710 ptr___pthread_attr_init_2_*.
4711 * init.c (pthread_functions): Adjust.
4712
bab09b26
UD
47132002-12-29 Ulrich Drepper <drepper@redhat.com>
4714
598d7a42
UD
4715 * forward.c: Make all functions available by default again. It
4716 caused too much trouble.
4717
bab09b26
UD
4718 * pt-siglongjmp.c: Removed.
4719
3b7ed871
UD
47202002-12-28 Jakub Jelinek <jakub@redhat.com>
4721
4722 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
4723 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
4724 * sysdeps/i386/Makefile: New file.
4725 * sysdeps/i386/tcb-offsets.sym: New file.
4726 * sysdeps/pthread/tcb-offsets.h: New file.
4727 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
4728 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
4729
4730 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
4731 __register_atfork...
4732 (GLIBC_2.3.2): ...here.
4733
47342002-12-28 Ulrich Drepper <drepper@redhat.com>
4735
4736 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
4737 pthread_attr_setstackaddr with __attribute_deprecated__.
4738
270d9d47
UD
47392002-12-27 Jakub Jelinek <jakub@redhat.com>
4740
4741 * pt-system.c (system): Remove cancellation handling.
4742 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
4743 cancellation routines.
4744
131fd126
UD
47452002-12-28 Ulrich Drepper <drepper@redhat.com>
4746
afb2e954
UD
4747 * descr.h: Include <dl-sysdep.h>.
4748 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
4749 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
4750 (MULTIPLE_THREADS_OFFSET): Adjust offset.
4751 (SYSINFO_OFFSEET): Likewise.
4752
47532002-12-27 Jakub Jelinek <jakub@redhat.com>
4754
4755 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
4756 Define.
4757 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
4758 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
4759 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
4760 (USE_DL_SYSINFO): Undef.
4761
47622002-12-22 Jakub Jelinek <jakub@redhat.com>
4763
4764 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
4765 $(common-objpfx)libc.so.
4766 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
4767 it is bigger than pipe buffer size even on arches with bigger
4768 page size.
4769 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
4770
a218c9cf
UD
47712002-12-25 Ulrich Drepper <drepper@redhat.com>
4772
4773 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
4774 correct errno access for case that USE___THREAD is not defined.
4775
015a2dc9
UD
47762002-12-24 Ulrich Drepper <drepper@redhat.com>
4777
4778 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
4779 Patch by Marijn Ros <marijn@mad.scientist.com>.
4780
5220f9ac
RM
47812002-12-22 Roland McGrath <roland@redhat.com>
4782
4783 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
4784
1561bf63
UD
47852002-12-20 Ulrich Drepper <drepper@redhat.com>
4786
4787 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
4788
3325198e
UD
47892002-12-19 Ulrich Drepper <drepper@redhat.com>
4790
057c823f
UD
4791 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
4792 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
4793 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
4794
097eca29
UD
4795 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
4796 of int $0x80.
4797 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
4798 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
4799 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
4800 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
4801 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
4802 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
4803 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
4804 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
4805
4806 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
4807 sysenter.
4808 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
4809
4810 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
4811
5f5843e3
UD
4812 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
4813 in new TCB.
4814 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
4815 that sysinfo is properly initialized.
4816 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
4817 to 1 only for ld.so.
4818
3325198e
UD
4819 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
4820 RTLD_CORRECT_DYNAMIC_WEAK.
4821
74e8f2dc
UD
48222002-12-19 Jakub Jelinek <jakub@redhat.com>
4823
4824 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
4825 Use return 0 as 6th argument to FORWARD4.
4826 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
4827
df45b31e
UD
48282002-12-18 Ulrich Drepper <drepper@redhat.com>
4829
4830 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
4831 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
4832 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
4833 (INIT_SYSINFO): New #define.
4834 (TLS_TP_INIT): Use INIT_SYSINFO.
4835 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
4836 At test to make sure SYSINFO_OFFSET value is correct.
4837 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
4838
3d539579
UD
48392002-12-18 Jakub Jelinek <jakub@redhat.com>
4840
4841 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
4842 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
4843 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
4844 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
4845 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
4846 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
4847 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
4848
d7913e0e
UD
48492002-12-18 Ulrich Drepper <drepper@redhat.com>
4850
f051627f
UD
4851 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
4852 macro instead of using int $0x80 directly.
4853
d7913e0e
UD
4854 * sysdeps/pthread/bits/stdio-lock.h: New file.
4855 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
4856 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
4857 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
4858 * Makefile (routines): Add libc-lowlevelmutex.
4859
4860 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
4861 __i686.get_pc_thunk.dx.
4862
f077a4a9
UD
48632002-12-17 Jakub Jelinek <jakub@redhat.com>
4864
4865 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
4866 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
4867 ($(objpfx)tst-cancel-wrappers.out): New rule.
4868 * tst-cancel-wrappers.sh: New test.
4869 * tst-locale1.c: Include signal.h.
4870 (uselocale): Test static linking of __libc_current_sigrt*.
4871
48722002-12-17 Ulrich Drepper <drepper@redhat.com>
4873
4874 * Makefile (tests): Add tst-cancel6.
4875 * tst-cancel6.c: New file
4876
bd499a3b
UD
48772002-12-17 Jakub Jelinek <jakub@redhat.com>
4878
4879 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
4880 Define meaningfully for assembler as well.
4881 * pthreadP.h (struct pthread_functions): Remove
4882 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
4883 and ptr_pthread_attr_init_2_1 fields.
4884 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
4885 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
4886 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
4887 (FORWARD3): Define using FORWARD4.
4888 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
4889 versions.
4890 * pt-system.c: Remove duplicate stdlib.h include.
4891
0a1063f4
UD
48922002-12-16 Ulrich Drepper <drepper@redhat.com>
4893
87d60668
UD
4894 * sem_init.c: Define sem_init@GLIBC_2.0.
4895 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
4896 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
4897
0a1063f4
UD
4898 * flockfile.c: Moved to...
4899 * sysdeps/pthread/flockfile.c: ...here. New file.
4900 * funlockfile.c: Moved to...
4901 * sysdeps/pthread/funlockfile.c: ...here. New file.
4902 * ftrylockfile.c: Moved to...
4903 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
4904
9634cf9d
UD
49052002-12-16 Jakub Jelinek <jakub@redhat.com>
4906
4907 * libc-cancellation.c: Guard both function with
4908 #if !defined NOT_IN_libc.
4909 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
4910 automatically provided pthread wrappers.
4911 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
4912 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
4913 nor in libpthread.
4914 * pt-open.c: Removed.
4915 * pt-fcntl.c: Removed.
4916 * pt-fsync.c: Removed.
4917 * pt-lseek.c: Removed.
4918 * pt-msgrcv.c: Removed.
4919 * pt-msgsnd.c: Removed.
4920 * pt-msync.c: Removed.
4921 * pt-nanosleep.c: Removed.
4922 * pt-open64.c: Removed.
4923 * pt-pause.c: Removed.
4924 * pt-pread.c: Removed.
4925 * pt-pread64.c: Removed.
4926 * pt-pwrite.c: Removed.
4927 * pt-pwrite64.c: Removed.
4928 * pt-read.c: Removed.
4929 * pt-recv.c: Removed.
4930 * pt-recvfrom.c: Removed.
4931 * pt-recvmsg.c: Removed.
4932 * pt-send.c: Removed.
4933 * pt-sendto.c: Removed.
4934 * pt-sigtimedwait.c: Removed.
4935 * pt-sigwait.c: Removed.
4936 * pt-wait.c: Removed.
4937 * pt-waitpid.c: Removed.
4938 * pt-write.c: Removed.
4939 * pt-accept.c: Removed.
4940 * pt-close.c: Removed.
4941 * pt-connect.c: Removed.
4942 * pt-lseek64.c: Removed.
4943 * pt-sendmsg.c: Removed.
4944 * pt-tcdrain.c: Removed.
4945
6ee8d334
UD
49462002-12-15 Ulrich Drepper <drepper@redhat.com>
4947
81fa9371
UD
4948 * init.c (__pthread_initialize_minimal_internal): Renamed from
4949 __pthread_initialize_minimal. Make old name an alias. This
4950 converts a normal relocation into a relative relocation.
4951
f3015aa5
UD
4952 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
4953
4cbc1950
UD
4954 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
4955 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
4956 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
4957 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
4958 pt-sigwaitinfo, pt-waitid, and pt-writev.
4959 * pt-creat.c: Removed.
4960 * pt-poll.c: Removed.
4961 * pt-pselect.c: Removed.
4962 * pt-readv.c: Removed.
4963 * pt-select.c: Removed.
4964 * pt-sigpause.c: Removed.
4965 * pt-sigsuspend.c: Removed.
4966 * pt-sigwaitinfo.c: Removed.
4967 * pt-waitid.c: Removed.
4968 * pt-writev.c: Removed.
4969
8454830b
UD
4970 * init.c (pthread_functions): New variable.
4971 (__pthread_initialize_minimal): Pass pointer to pthread_functions
4972 (or NULL) to __libc_pthread_init.
4973 * forward.c: Rewrite to use __libc:pthread_functions array to get
4974 function addresses.
4975 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
4976 prototype.
4977 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
4978 Take new parameter. Copy content of variable pointed to by it
4979 to __libc_pthread_init.
4980
4981 * pthreadP.h (struct pthread_functions): New type.
4982 (__libc_pthread_init): Declare.
4983
4984 * pthread_attr_destroy.c: Add namespace protected alias.
4985 * pthread_attr_getdetachstate.c: Likewise.
4986 * pthread_attr_getinheritsched.c: Likewise.
4987 * pthread_attr_getschedparam.c: Likewise.
4988 * pthread_attr_getschedpolicy.c: Likewise.
4989 * pthread_attr_getscope.c: Likewise.
4990 * pthread_attr_setdetachstate.c: Likewise.
4991 * pthread_attr_setinheritsched.c: Likewise.
4992 * pthread_attr_setschedparam.c: Likewise.
4993 * pthread_attr_setschedpolicy.c: Likewise.
4994 * pthread_attr_setscope.c: Likewise.
4995 * pthread_cond_broadcast.c: Likewise.
4996 * pthread_cond_destroy.c: Likewise.
4997 * pthread_cond_init.c: Likewise.
4998 * pthread_cond_signal.c: Likewise.
4999 * pthread_cond_wait.c: Likewise.
5000 * pthread_condattr_destroy.c: Likewise.
5001 * pthread_condattr_init.c: Likewise.
5002 * pthread_equal.c: Likewise.
5003 * pthread_exit.c: Likewise.
5004 * pthread_getschedparam.c: Likewise.
5005 * pthread_self.c: Likewise.
5006 * pthread_setcancelstate.c: Likewise.
5007 * pthread_setschedparam.c: Likewise.
5008 * pthread_mutex_destroy.c: Likewise.
5009 * pthread_mutex_init.c: Likewise.
5010 * pthreadP.h: Add prototypes for the aliases.
5011
0d5f4929
UD
5012 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
5013 multiple_threads member in correct TCB to 1.
5014
6ee8d334
UD
5015 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
5016 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
5017 member of thread decriptor, otherwise return unconditionally 1.
5018
2fb6444d
UD
50192002-12-14 Ulrich Drepper <drepper@redhat.com>
5020
5021 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
5022 regular Linux version. Remove file.
5023 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
5024 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
5025 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
5026 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
5027 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
5028 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
5029 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
5030 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
5031 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
5032 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
5033 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
5034 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
5035 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
5036 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
5037 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
5038 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
5039 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
5040 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
5041 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
5042 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
5043 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
5044 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
5045 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
5046 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
5047 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
5048 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
5049 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
5050 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
5051 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
5052 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
5053
86b2dc40
UD
50542002-12-14 Jakub Jelinek <jakub@redhat.com>
5055
5056 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
5057 * sysdeps/unix/sysv/linux/open.c: Removed.
5058 * sysdeps/unix/sysv/linux/fsync.c: Removed.
5059 * sysdeps/unix/sysv/linux/lseek.c: Removed.
5060 * sysdeps/unix/sysv/linux/msync.c: Removed.
5061 * sysdeps/unix/sysv/linux/read.c: Removed.
5062 * sysdeps/unix/sysv/linux/close.c: Removed.
5063 * sysdeps/unix/sysv/linux/creat.c: Removed.
5064 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
5065 * sysdeps/unix/sysv/linux/pause.c: Removed.
5066 * sysdeps/unix/sysv/linux/select.c: Removed.
5067 * sysdeps/unix/sysv/linux/write.c: Removed.
5068
9d263d72
UD
50692002-12-14 Ulrich Drepper <drepper@redhat.com>
5070
5071 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
5072 element in TCB to see whether locking is needed.
5073
5074 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
5075 MULTIPLE_THREADS_OFFSET value is correct.
5076
5077 * sysdeps/unix/sysv/linux/close.c: New file.
5078 * sysdeps/unix/sysv/linux/connect.S: New file.
5079 * sysdeps/unix/sysv/linux/creat.c: New file.
5080 * sysdeps/unix/sysv/linux/fsync.c: New file.
5081 * sysdeps/unix/sysv/linux/llseek.c: New file.
5082 * sysdeps/unix/sysv/linux/lseek.c: New file.
5083 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
5084 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
5085 * sysdeps/unix/sysv/linux/msync.c: New file.
5086 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
5087 * sysdeps/unix/sysv/linux/open.c: New file.
5088 * sysdeps/unix/sysv/linux/open64.c: New file.
5089 * sysdeps/unix/sysv/linux/pause.c: New file.
5090 * sysdeps/unix/sysv/linux/poll.c: New file.
5091 * sysdeps/unix/sysv/linux/pread.c: New file.
5092 * sysdeps/unix/sysv/linux/pread64.c: New file.
5093 * sysdeps/unix/sysv/linux/pselect.c: New file.
5094 * sysdeps/unix/sysv/linux/pwrite.c: New file.
5095 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
5096 * sysdeps/unix/sysv/linux/readv.c: New file.
5097 * sysdeps/unix/sysv/linux/recv.S: New file.
5098 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
5099 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
5100 * sysdeps/unix/sysv/linux/select.c: New file.
5101 * sysdeps/unix/sysv/linux/send.S: New file.
5102 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
5103 * sysdeps/unix/sysv/linux/sendto.S: New file.
5104 * sysdeps/unix/sysv/linux/sigpause.c: New file.
5105 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
5106 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
5107 * sysdeps/unix/sysv/linux/sigwait.c: New file.
5108 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
5109 * sysdeps/unix/sysv/linux/system.c: New file.
5110 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
5111 * sysdeps/unix/sysv/linux/wait.c: New file.
5112 * sysdeps/unix/sysv/linux/waitid.c: New file.
5113 * sysdeps/unix/sysv/linux/waitpid.c: New file.
5114 * sysdeps/unix/sysv/linux/writev.c: New file.
5115 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
5116
5117 * pt-readv.c: Fix comment.
5118
51192002-12-14 Jakub Jelinek <jakub@redhat.com>
5120
5121 * tst-cleanup1.c: Include stdlib.h.
5122
5123 * tst-cancel5.c: New test.
5124 * Makefile (tests): Add tst-cancel5.
5125 (tst-cancel5): Link against libc.so libpthread.so in that order.
5126
9ae0909b
UD
51272002-12-13 Ulrich Drepper <drepper@redhat.com>
5128
b7bdd9c4
UD
5129 * forward.c (test_loaded): Prevent recursive calls.
5130
9ae0909b
UD
5131 * Makefile (routines): Add libc-cancellation.
5132 * libc-cancellation.c: New file.
5133 * descr.h (struct pthread): Add multiple_threads field.
5134 * allocatestack.c (allocate_stack): Initialize multiple_header field of
5135 new thread descriptor to 1.
5136 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
5137 Initialize multiple_thread field after successful thread creation.
5138 * cancellation.c (__do_cancel): Move to pthreadP.h.
5139 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
5140 (__pthread_disable_asynccancel): Add internal_function attribute.
5141 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
5142 * pthread_setcancelstate.c: Likewise.
5143 * pthread_setcanceltype.c: Likewise.
5144 * pthread_exit.c: Likewise.
5145 * pthreadP.h (CANCELLATION_P): Likewise.
5146 (__do_cancel): Define as static inline.
5147 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
5148 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
5149 declarations.
5150 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
5151 fields. Define MULTIPLE_THREADS_OFFSET.
5152 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
5153 declaration.
5154 * sysdeps/unix/sysv/linux/accept.S: New file.
5155 * sysdeps/unix/sysv/linux/read.c: New file.
5156 * sysdeps/unix/sysv/linux/write.c: New file.
5157 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
5158 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
5159 initialization of __libc_locking_needed.
5160 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
5161 __libc_locking_needed, use multiple_threads field in TCB.
5162 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
5163
22f20674
UD
51642002-12-12 Ulrich Drepper <drepper@redhat.com>
5165
2ad2e1e7
UD
5166 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
5167 version.
5168 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
5169
22f20674
UD
5170 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
5171 access to __libc_locking_needed for PIC.
5172
aa80bf86
UD
51732002-12-12 Jakub Jelinek <jakub@redhat.com>
5174
5175 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
5176 declare for libc.so.
5177 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
5178 expression.
5179 (__libc_lock_lock): Put into statement expression.
5180 (__libc_lock_unlock): Remove trailing semicolon.
5181 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
5182
24021373
RM
51832002-12-12 Roland McGrath <roland@redhat.com>
5184
5185 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
5186 "m" constraint to refer to __libc_locking_needed. Declare it here.
5187
14e7aece
UD
51882002-12-12 Ulrich Drepper <drepper@redhat.com>
5189
5190 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
5191 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
5192 Initialize __libc_locking_needed.
5193 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
5194 instead of __register_pthread_fork_handler.
5195 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
5196 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
5197 fork-gen with libc_pthread_init.
5198 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
5199 of __register_pthread_fork_handler.
5200 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
5201 of __register_pthread_fork_handler.
5202 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
5203 __libc_locking_needed to determine whether lock prefix can be avoided.
5204 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
5205
85631c8e
UD
52062002-12-11 Ulrich Drepper <drepper@redhat.com>
5207
da63009e
UD
5208 * Makefile (tests): Add tst-cleanup1.
5209 * tst-cleanup1.c: New file.
5210 * cancellation.c (__cleanup_thread): Removed.
5211 (__do_cancel): Remove call to __cleanup_thread.
5212 * pthreadP.h: Remove __cleanup_thread prorotype.
5213
000160a2
UD
5214 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
5215 Remember function and argument even if cancellation handler
5216 function is not available.
5217 (__libc_cleanup_region_end): Execute registered function directly if
5218 pthread functions are not available.
5219 (__libc_cleanup_end): Likewise.
5220
85631c8e
UD
5221 * init.c (__pthread_initialize_minimal): Fix initialization in
5222 static lib by preventing gcc from being too clever.
5223
dce8f2b6
UD
52242002-12-10 Ulrich Drepper <drepper@redhat.com>
5225
34a075be
UD
5226 * init.c (__pthread_initialize_minimal): Remove unneccesary
5227 sigaddset call.
5228
dce8f2b6
UD
5229 * Makefile (tests): We can run tst-locale2 now.
5230
e5e45b53
UD
52312002-12-09 Ulrich Drepper <drepper@redhat.com>
5232
5233 * Versions: Remove duplicated sigwait entry.
5234
bdb04f92
UD
52352002-12-08 Ulrich Drepper <drepper@redhat.com>
5236
1e506629
UD
5237 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
5238 inside libpthread.
5239
a3957dd5
UD
5240 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
5241
bdb04f92
UD
5242 * pthreadP.h: Declare __pthread_enable_asynccancel and
5243 __pthread_disable_asynccancel.
5244 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
5245 (CANCEL_RESET): Use __pthread_disable_asynccancel.
5246 * cancellation.c (__pthread_enable_asynccancel): New function.
5247 (__pthread_disable_asynccancel): New function.
5248 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
5249 * pt-close.c: Likewise.
5250 * pt-connect.c: Likewise.
5251 * pt-creat.c: Likewise.
5252 * pt-fcntl.c: Likewise.
5253 * pt-fsync.c: Likewise.
5254 * pt-lseek.c: Likewise.
5255 * pt-lseek64.c: Likewise.
5256 * pt-msgrcv.c: Likewise.
5257 * pt-msgsnd.c: Likewise.
5258 * pt-msync.c: Likewise.
5259 * pt-nanosleep.c: Likewise.
5260 * pt-open.c: Likewise.
5261 * pt-open64.c: Likewise.
5262 * pt-pause.c: Likewise.
5263 * pt-poll.c: Likewise.
5264 * pt-pread.c: Likewise.
5265 * pt-pread64.c: Likewise.
5266 * pt-pselect.c: Likewise.
5267 * pt-pwrite.c: Likewise.
5268 * pt-pwrite64.c: Likewise.
5269 * pt-read.c: Likewise.
5270 * pt-readv.c: Likewise.
5271 * pt-recv.c: Likewise.
5272 * pt-recvfrom.c: Likewise.
5273 * pt-recvmsg.c: Likewise.
5274 * pt-select.c: Likewise.
5275 * pt-send.c: Likewise.
5276 * pt-sendmsg.c: Likewise.
5277 * pt-sendto.c: Likewise.
5278 * pt-sigpause.c: Likewise.
5279 * pt-sigsuspend.c: Likewise.
5280 * pt-sigtimedwait.c: Likewise.
5281 * pt-sigwait.c: Likewise.
5282 * pt-sigwaitinfo.c: Likewise.
5283 * pt-system.c: Likewise.
5284 * pt-tcdrain.c: Likewise.
5285 * pt-wait.c: Likewise.
5286 * pt-waitid.c: Likewise.
5287 * pt-waitpid.c: Likewise.
5288 * pt-write.c: Likewise.
5289 * pt-writev.c: Likewise.
a3957dd5
UD
5290 * pthread_join.c: Likewise.
5291 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
5292
5293 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
5294 (__xpg_sigpause): New function.
5295 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
5296
6ccb3834
UD
52972002-12-07 Ulrich Drepper <drepper@redhat.com>
5298
09efc3ba
UD
5299 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
5300
5301 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
5302 _GI_pthread_cleanup_pop to pthreadP.h.
5303
5304 * ftrylockfile.c: Use _IO_lock_trylock instead of
5305 pthread_mutex_trylock.
5306
5307 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
5308 (CANCEL_RESET): Likewise.
5309 (__pthread_setcanceltype_): Declare.
5310 (__pthread_mutex_lock_internal): Declare.
5311 (__pthread_mutex_unlock_internal): Declare.
5312 (__pthread_once_internal): Declare.
5313 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
5314 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
5315
5316 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
5317 and pthread_mutex_unlock.
5318 * pthread_cond_wait.c: Likewise.
5319 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
5320 * pthread_mutex_unlock.c: Likewise.
5321
5322 * pthread_setcanceltype.c: Add additional alias
5323 __pthread_setcanceltype.
5324
5325 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
5326 * sem_open.c (sem_open): Likewise.
5327 Use __libc_open, __libc_write, and __libc_close instead of
5328 open, write, and close respectively.
5329
5330 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
5331 Rewrite as statement expression since it must return a value.
5332
5333 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
5334 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
5335 __pthread_kill.
5336
5337 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
5338 alias __pthread_once_internal.
5339
6ccb3834
UD
5340 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
5341
d3c9f895
UD
53422002-12-06 Ulrich Drepper <drepper@redhat.com>
5343
4614167a
UD
5344 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
5345 * tst-stdio1.c: New file.
5346 * tst-stdio2.c: New file.
5347
a4548cea
UD
5348 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
5349
d3c9f895
UD
5350 * Makefile (tests): Comment out tst-locale2 for now.
5351 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
5352
5353 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
5354 -D_IO_MTSAFE_IO.
5355 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
5356 Use _IO_lock_init instead of explicit assignment.
5357
5358 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
5359 Define __libc_lock_* and __libc_lock_recursive macros with
5360 lowlevellock macros, not pthread mutexes.
5361
5362 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
5363 of pthread_mutex_lock.
5364 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
5365 instead of pthread_mutex_unlock.
5366
fde89ad0
RM
53672002-12-06 Roland McGrath <roland@redhat.com>
5368
5369 * allocatestack.c (__stack_user): Use uninitialized defn.
5370 * init.c (__pthread_initialize_minimal): Initialize it here.
5371
11767d47
RM
53722002-12-05 Roland McGrath <roland@redhat.com>
5373
fde89ad0
RM
5374 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
5375 string.
5376 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
5377
11767d47
RM
5378 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
5379 missing & here too.
5380
440d8bc2
UD
53812002-12-05 Ulrich Drepper <drepper@redhat.com>
5382
5383 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
5384 lowlevellock.
5385 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
5386 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
5387 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
5388 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
5389 for __libc_lock_* macros.
5390 * Makefile (routines): Add libc-lowlevellock.
5391
53922002-10-09 Roland McGrath <roland@redhat.com>
5393
5394 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
5395 Under [__PIC__], call the function via the pointer fetched for
5396 comparison rather than a call by name that uses the PLT.
5397 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
5398 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
5399 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
5400 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
5401 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
5402
d5ed0118
RM
54032002-12-04 Roland McGrath <roland@redhat.com>
5404
5405 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
5406
5407 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
5408 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
5409
5410 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
5411
eaa4099f
UD
54122002-12-04 Ulrich Drepper <drepper@redhat.com>
5413
5414 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
5415 a completely opaque, non-integer type.
5416 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
5417
33b5d0cc
UD
54182002-12-05 Jakub Jelinek <jakub@redhat.com>
5419
5420 * sysdeps/i386/tls.h: Include stdlib.h.
5421 * sysdeps/x86_64/tls.h: Likewise.
5422
7a5cdb30
UD
54232002-12-04 Ulrich Drepper <drepper@redhat.com>
5424
c4a6d859
UD
5425 * Makefile (tests): Add tst-locale2.
5426 (tests-static): Likewise.
5427 * tst-locale2.c: New file.
5428
7a5cdb30
UD
5429 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
5430 volatile and add memory clobbers to lock operations.
5431
d82d5d12
UD
54322002-12-03 Ulrich Drepper <drepper@redhat.com>
5433
69cae3cf
UD
5434 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
5435 * sysdeps/i386/i486/bits/atomic.h: New file.
5436 * sysdeps/i386/i586/bits/atomic.h: New file.
5437 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
5438 include i486 version.
5439 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
5440 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 5441 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 5442
e4044c01
UD
5443 * allocatestack.c (get_cached_stack): Don't crash if we first
5444 found a stack with a larger size then needed.
5445 Reported by Hui Huang <hui.huang@sun.com>.
5446
d82d5d12
UD
5447 * Makefile (tests): Add tst-sysconf.
5448 * tst-sysconf.c: New file.
5449
5450 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
5451 PTHREAD_THREADS_MAX.
5452
fa9a4ff0
RM
54532002-12-02 Roland McGrath <roland@redhat.com>
5454
5455 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
5456 Declare using hidden_proto instead of attribute_hidden, so there are
5457 non-.hidden static symbols for gdb to find.
5458 (__pthread_keys): Likewise.
5459 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
5460 * allocatestack.c (__stack_user): Likewise.
5461 * pthread_create.c (__pthread_keys): Likewise.
5462 (__nptl_threads_events, __nptl_last_event): Make these static instead
5463 of hidden.
5464 * pthread_key_create.c (__pthread_pthread_keys_max,
5465 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
5466
91949a33
UD
54672002-12-02 Ulrich Drepper <drepper@redhat.com>
5468
c22b52fa
UD
5469 * Makefile (tests): Add tst-locale1. If buid-static is yes link
5470 statically.
5471 * tst-locale1.c: New file.
5472
beb6aa41
UD
5473 * pthread_cond_timedwait.c: Include <stdlib.h>.
5474
91949a33
UD
5475 * Makefile (tests): Add tst-fork2 and tst-fork3.
5476 * tst-fork2.c: New file.
5477 * tst-fork3.c: New file.
5478
654dff90
UD
54792002-11-28 Ulrich Drepper <drepper@redhat.com>
5480
cb0e76b4
UD
5481 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
5482
5483 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
5484 require it to 200112L.
5485
5486 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
5487 instruction only if HAVE_CMOV is defined.
5488 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
5489
975aa229
UD
5490 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
5491
654dff90
UD
5492 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
5493
5494 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
5495
5496 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
5497
a3931336
UD
54982002-11-27 Ulrich Drepper <drepper@redhat.com>
5499
c10c099c
UD
5500 * sysdeps/x86_64/bits/atomic.h: New file.
5501
5502 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
5503 16-bit operations.
5504
dca99d27
UD
5505 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
5506 possible since gettid cannot fail.
5507
f78deea6
UD
5508 * sysdeps/x86_64/pthreaddef.h: New file.
5509
5510 * sysdeps/i386/pthreaddef.h (gettid): Removed.
5511
5512 * sysdeps/x86_64/pthread_spin_init.c: New file.
5513 * sysdeps/x86_64/pthread_spin_lock.c: New file.
5514 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
5515 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
5516
5517 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
5518 Add missing lock prefix. Minute optimization.
5519
5520 * tst-spin2.c (main): Also check successful trylock call.
5521
5522 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
5523 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
5524
5525 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
5526 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
5527
5528 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
5529 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
5530 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
5531
5532 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
5533 value in case of an error.
5534
a3931336
UD
5535 * sysdeps/x86_64/tls.h: New file.
5536
76a50749
UD
55372002-11-26 Ulrich Drepper <drepper@redhat.com>
5538
117c452c
UD
5539 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
5540 takes the array member name and the index as parameters.
5541 (THREAD_SETMEM_NC): Likewise.
5542 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
5543 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
5544 interfaces.
5545
5546 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
5547 to decide which code to use.
5548 (THREAD_SETMEM_NC): Likewise.
5549
76a50749
UD
5550 * allocatestack.c (queue_stack): Don't remove stack from list here.
5551 Do it in the caller. Correct condition to prematurely terminate
5552 loop to free stacks.
5553 (__deallocate_stack): Remove stack from list here.
5554
55552002-11-26 Ulrich Drepper <drepper@redhat.com>
5556
5557 * Makefile (tests): Add tst-stack1.
5558 * tst-stack1.c: New file.
5559
5560 * allocatestack.c (allocate_stack): Initialize the TCB on a user
5561 provided stack.
5562
5563 * pthread_attr_getstack.c: Return bottom of the thread area.
5564
55652002-11-25 Ulrich Drepper <drepper@redhat.com>
5566
5567 * Makefile (libpthread-routines): Add pt-allocrtsig and
5568 pthread_kill_other_threads.
5569 * pt-allocrtsig.c: New file.
5570 * pthread_kill_other_threads.c: New file.
5571 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
5572 all three functions.
5573 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
5574 allocrtsig.
5575 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
5576 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
5577 and __libc_allocate_rtsig_private.
5578 * Versions (libpthread): Export pthread_kill_other_threads_np,
5579 __libc_current_sigrtmin, and __libc_current_sigrtmax.
5580
55812002-11-24 Ulrich Drepper <drepper@redhat.com>
5582
5583 * allocatestack.c (allocate_stack): stackaddr in attribute points to
5584 the end of the stack. Adjust computations.
5585 When mprotect call fails dequeue stack and free it.
5586 * pthread_attr_setstack.c: Store top of the stack in stackaddr
5587 attribute.
5588 * pthread_getattr_np.c: Likewise.
5589
5590 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
5591 surprises.
5592
55932002-11-23 Ulrich Drepper <drepper@redhat.com>
5594
5595 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
5596 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
5597
55982002-11-22 Ulrich Drepper <drepper@redhat.com>
5599
5600 * pthread_getspecific.c: Optimize access to first 2nd-level array.
5601 * pthread_setspecific.c: Likewise.
5602
56032002-11-21 Ulrich Drepper <drepper@redhat.com>
5604
5605 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
5606 definitions. Get them from the official place.
5607 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
5608
5609 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
5610 Use new CLONE_ flags in clone() calls.
5611
5612 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
5613 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
5614
5615 * Versions: Add pthread_* functions for libc.
5616 * forward.c: New file.
5617
5618 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
5619 errno-loc.
5620 * herrno.c: New file.
5621 * res.c: New file.
5622
5623 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
5624 sem_trywait, and sem_timedwait. Add herrno and res.
5625 * sem_init.c: Don't initialize lock and waiters members.
5626 * sem_open.c: Likewise.
5627 * sem_post.c: Removed.
5628 * sem_wait.c: Removed.
5629 * sem_trywait.c: Removed.
5630 * sem_timedwait.c: Removed.
5631 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
5632 Includes full implementations of sem_post, sem_wait, sem_trywait,
5633 and sem_timedwait.
5634 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
5635 for new implementation.
5636 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
5637 and waiters fields.
5638
5639 * tst-sem3.c: Improve error message.
5640 * tst-signal3.c: Likewise.
5641
5642 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
5643 to tell the kernel about the termination futex and to initialize tid
5644 member. Don't initialize main_thread.
5645 * descr.h (struct pthread): Remove main_thread member.
5646 * cancelllation.c (__do_cancel): Remove code handling main thread.
5647 The main thread is not special anymore.
5648
5649 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
5650 size of the stacks to stack_cache_actsize.
5651
5652 * pt-readv.c: Add missing "defined".
5653 * pt-sigwait.c: Likewise.
5654 * pt-writev.c: Likewise.
5655
56562002-11-09 Ulrich Drepper <drepper@redhat.com>
5657
5658 * Versions: Export __connect from libpthread.
5659 Patch by Luca Barbieri <ldb@ldb.ods.org>.
5660
5661 * Makefile (libpthread-routines): Add pt-raise.
5662 * sysdeps/unix/sysv/linux/raise.c: New file.
5663 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
5664 * sysdeps/generic/pt-raise.c: New file.
5665
5666 * pthread_cond_init.c: Initialize all data elements of the condvar
5667 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
5668
5669 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
5670 * pthread_create.c: Likewise.
5671
5672 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
5673 * tst-key1.c: New file.
5674 * tst-key2.c: New file.
5675 * tst-key3.c: New file.
5676
5677 * Versions: Export pthread_detach for version GLIBC_2.0.
5678 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
5679
56802002-11-08 Ulrich Drepper <drepper@redhat.com>
5681
5682 * pthread_key_create.c: Terminate search after an unused key was found.
5683 Patch by Luca Barbieri <ldb@ldb.ods.org>.
5684
5685 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
5686 Patch by Luca Barbieri <ldb@ldb.ods.org>.
5687
56882002-10-10 Ulrich Drepper <drepper@redhat.com>
5689
5690 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
5691 dynamic lookup for errno in PIC.
5692
5693 * allocatestack.c (get_cached_stack): Rearrange code slightly to
5694 release the stack lock as soon as possible.
5695 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
5696 the static TLS block.
5697 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
5698
5699 * cancellation.c: Renamed from cancelation.c.
5700 * Makefile: Adjust accordingly.
5701 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
5702 * cleanup_defer.c: Use CANCELLATION_P.
5703 * pthread_testcancel.c: Likewise.
5704 * descr.h: Fix spelling in comments.
5705 * init.c: Likewise.
5706 * pthread_getattr_np.c: Likewise.
5707 * pthread_getschedparam.c: Likewise.
5708 * pthread_setschedparam.c: Likewise.
5709 * Versions: Likewise.
5710
5711 * pt-pselect.c: New file.
5712 * Makefile (libpthread-routines): Add pt-pselect.
5713 * Versions: Add pselect.
5714
5715 * tst-cancel4.c: New file.
5716 * Makefile (tests): Add tst-cancel4.
5717
57182002-10-09 Ulrich Drepper <drepper@redhat.com>
5719
5720 * pthread_mutex_lock.c: Always record lock ownership.
5721 * pthread_mutex_timedlock.c: Likewise.
5722 * pthread_mutex_trylock.c: Likewise.
5723
5724 * pt-readv.c: New file.
5725 * pt-writev.c: New file.
5726 * pt-creat.c: New file.
5727 * pt-msgrcv.c: New file.
5728 * pt-msgsnd.c: New file.
5729 * pt-poll.c: New file.
5730 * pt-select.c: New file.
5731 * pt-sigpause.c: New file.
5732 * pt-sigsuspend.c: New file.
5733 * pt-sigwait.c: New file.
5734 * pt-sigwaitinfo.c: New file.
5735 * pt-waitid.c: New file.
5736 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
5737 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
5738 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
5739 * Versions: Add all the new functions.
5740
5741 * tst-exit1.c: New file.
5742 * Makefile (tests): Add tst-exit1.
5743
5744 * sem_timedwait.c: Minor optimization for more optimal fastpath.
5745
57462002-10-08 Ulrich Drepper <drepper@redhat.com>
5747
5748 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
5749
5750 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
5751 call. pthread_join is an official cancellation point.
5752 * pthread_timedjoin.c: Likewise.
5753
5754 * pthread_cond_wait.c: Revert order in which internal lock are dropped
5755 and the condvar's mutex are retrieved.
5756 * pthread_cond_timedwait.c: Likewise.
5757 Reported by dice@saros.East.Sun.COM.
5758
57592002-10-07 Ulrich Drepper <drepper@redhat.com>
5760
5761 * pthreadP.h: Cut out all type definitions and move them...
5762 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
5763 * pthreadP.h: Include <internaltypes.h>.
5764
5765 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
5766 performance tweaks.
5767
5768 * sem_trywait.c: Shuffle #includes around to get right order.
5769 * sem_timedwait.c: Likewise.
5770 * sem_post.c: Likewise.
5771 * sem_wait.c: Likewise.
5772
5773 * nptl 0.3 released.
5774
5775 * Makefile (tests): Add tst-signal3.
5776 * tst-signal3.c: New file.
5777
57782002-10-05 Ulrich Drepper <drepper@redhat.com>
5779
5780 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
5781 the asms modify the sem object.
5782 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
5783
5784 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
5785 the actual members.
5786 * pthreadP.h (struct sem): New type. Actual semaphore type.
5787 * semaphoreP.h: Include pthreadP.h.
5788 * sem_getvalue.c: Adjust to sem_t change.
5789 * sem_init.c: Likewise.
5790 * sem_open.c: Likewise.
5791 * sem_post.c: Likewise.
5792 * sem_timedwait.c: Likewise.
5793 * sem_trywait.c: Likewise.
5794 * sem_wait.c: Likewise.
5795
57962002-10-04 Ulrich Drepper <drepper@redhat.com>
5797
5798 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
5799 * tst-basic2.c: New file.
5800 * tst-exec1.c: New file.
5801 * tst-exec2.c: New file.
5802 * tst-exec3.c: New file.
5803
5804 * tst-fork1.c: Remove extra */.
5805
5806 * nptl 0.2 released. The API for IA-32 is complete.