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