1 2004-03-12 Ulrich Drepper <drepper@redhat.com>
3 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add HOST_NAME_MAX.
4 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
5 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
6 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
8 2004-03-08 Andreas Jaeger <aj@suse.de>
10 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT_KERNEL_CHECK):
11 dl_osversion is readonly.
13 2004-03-07 Ulrich Drepper <drepper@redhat.com>
15 * sysdeps/i386/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
17 * sysdeps/ia64/tls.h (INIT_SYSINFO): Likewise.
19 2004-02-20 Steven Munroe <sjmunroe@us.ibm.com>
21 * sysdeps/unix/sysv/linux/powerpc/ptlongjmp.c [SHARED]: Code only
22 valid for SHARED case. Correct spelling of __vmx_longjmp.
24 * sysdeps/powerpc/pspinlock.c: Move from here.
25 * sysdeps/powerpc/powerpc32/pspinlock.c: To here.
26 * sysdeps/powerpc/powerpc64/pspinlock.c: New file.
27 * sysdeps/powerpc/powerpc64/pt-machine.h: Define __compare_and_swap32
28 and __compare_and_swap32_with_release_semantics.
30 2004-02-20 Jakub Jelinek <jakub@redhat.com>
32 * Makefile (generated): Remove tst-stack1.mtrace and tst-stack1-mem.
33 (tests): Remove $(objpfx)tst-stack1-mem.
34 (tst-stack1-ENV): Remove.
35 ($(objpfx)tst-stack1-mem): Remove.
37 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
38 (__syscall_error_handler2): Call CDISABLE.
39 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
40 (__syscall_error_handler2): Call CDISABLE.
42 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
44 2004-02-10 Steven Munroe <sjmunroe@us.ibm.com>
46 * Makefile (libpthread-routines): Add ptcleanup.
47 * ptlongjmp.c: Removed.
48 * ptcleanup.c: Copied __pthread_cleanup_upto to here. New file.
49 * sysdeps/pthread/ptlongjmp.c: Copied longjmp to here. New file.
50 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
51 Version longjmp, siglongjmp for GLIBC_2.3.4.
52 * sysdeps/unix/sysv/linux/powerpc/ptlongjmp.c: New File.
54 2004-01-22 Andreas Jaeger <aj@suse.de>
56 * spinlock.c (__pthread_lock): Fix contraint to avoid warning.
57 (__pthread_release): Likewise.
59 2004-01-16 Richard Henderson <rth@redhat.com>
61 * attr.c: Include ldsodefs.h.
62 (pthread_getattr_np): Don't declare __libc_stack_end.
64 2004-01-09 Steven Munroe <sjmunroe@us.ibm.com>
66 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
67 [!HAVE_TLS_SUPPORT]: Define SINGLE_THREAD_P using static
68 __lib*_multiple_threads.
69 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
70 [!HAVE_TLS_SUPPORT]: Likewise.
72 2004-01-13 Roland McGrath <roland@redhat.com>
74 * sysdeps/powerpc/tcb-offsets.sym: Put -- separator line before any
77 2004-01-10 Andreas Jaeger <aj@suse.de>
79 * sysdeps/unix/sysv/linux/x86_64/vfork.S: Add cfi directives.
81 2004-01-01 Andreas Jaeger <aj@suse.de>
83 * Makefile (generated): Add missing files.
85 2003-12-31 Ulrich Drepper <drepper@redhat.com>
87 * attr.c (pthread_getattr_np): Make sure stack info returned for
88 main thread does not overlap with any other VMA.
89 Patch by Jakub Jelinek.
91 2003-12-29 Jakub Jelinek <jakub@redhat.com>
93 * sysdeps/ia64/tls.h: Include dl-sysdep.h.
94 (INIT_SYSINFO): Define.
95 (TLS_INIT_TP): Use it.
97 2003-12-28 Carlos O'Donell <carlos@baldric.uwo.ca>
99 * attr.c (pthread_getattr_np): Add _STACK_GROWS_UP case.
101 2003-12-26 Jakub Jelinek <jakub@redhat.com>
103 * sysdeps/pthread/pthread.h (pthread_setcancelstate,
104 pthread_setcanceltype, pthread_cancel, pthread_testcancel): Remove
106 * semaphore.h (sem_wait, sem_timedwait): Likewise.
108 2003-12-17 Jakub Jelinek <jakub@redhat.com>
110 * manager.c (pthread_free): Call _dl_deallocate_tls even for
112 * pthread.c (__pthread_initialize_manager): Call _dl_deallocate_tls
114 (pthread_onexit_process): Update comment.
115 * Makefile (tests): Add tst-stack1. Depend on $(objpfx)tst-stack1-mem.
116 (generated): Add tst-stack1.mtrace and tst-stack1-mem.
117 (tst-stack1-ENV): Set.
118 ($(objpfx)tst-stack1-mem): New.
119 * tst-stack1.c: New test.
121 2003-12-16 Steven Munroe <sjmunroe@us.ibm.com>
123 * sysdeps/powerpc/tcb-offsets.sym [!__powerpc64__]: Remove
124 conditional so MULTIPLE_THREADS_OFFSET is generated for both.
125 * sysdeps/powerpc/tls.h [!__powerpc64__]: Remove conditional
126 so TLS_MULTIPLE_THREADS_IN_TCB is generated for both.
127 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h:
130 2003-12-04 Steven Munroe <sjmunroe@us.ibm.com>
132 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
133 (SINGLE_THREAD_P): Test using thread local p_multiple_threads field.
135 2003-12-10 David Mosberger <davidm@hpl.hp.com>
137 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Update copyright
138 message. Add include of <stddef.h>.
139 (INIT_NEW_WAY): New macro.
140 (INIT_OLD_WAY): Likewise.
141 (_init): Add unwind directives. Invoke
142 __pthread_initialize_minimal() via INIT_NEW_WAY or INIT_OLD_WAY,
144 (_init_EPILOG_BEGINS): Add unwind-directives. Drop unused .regstk
146 (_fini): Add unwind directives. Drop unnecessary .align 16
147 directive (bundles are always 16-byte aligned).
148 (_fini_EPILOG_BEGINS): Add unwind-directives.
150 2003-11-19 David Mosberger <davidm@hpl.hp.com>
152 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
154 2003-12-10 Andreas Jaeger <aj@suse.de>
155 Ruediger Oertel <ro@suse.de>
157 * sysdeps/alpha/elf/pt-initfini.c (__asm__): Remove extra .prologue.
159 2003-11-30 Andreas Jaeger <aj@suse.de>
161 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
162 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
165 2003-11-04 Jakub Jelinek <jakub@redhat.com>
167 * signals.c (__pthread_sigaction): Set __sighandler[sig].old before
168 __libc_sigaction if it has been one of the special values before.
170 2003-10-06 Carlos O'Donell <carlos@baldric.uwo.ca>
172 * pthread.c (__pthread_self_stack): _STACK_GROWS_UP case added.
173 (__pthread_find_self): Likewise.
174 * manager.c (thread_segment): _STACK_GROWS_UP case added.
176 2003-10-10 Carlos O'Donell <carlos@baldric.uwo.ca>
178 * linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h: New file.
180 2003-10-10 Carlos O'Donell <carlos@baldric.uwo.ca>
182 * sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h: New file.
184 2003-10-07 Jakub Jelinek <jakub@redhat.com>
186 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
188 (SAVE_OLDTYPE_0): Fix a typo.
190 2003-10-02 Ulrich Drepper <drepper@redhat.com>
192 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
195 2003-10-02 Jakub Jelinek <jakub@redhat.com>
197 * Makefile (tests): Add tst-cancel8.
198 * tst-cancel8.c: New test.
200 2003-10-02 Ulrich Drepper <drepper@redhat.com>
202 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
203 restoring of the old cancellation type.
205 2003-09-10 Chris Demetriou <cgd@broadcom.com>
207 * sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h: New file.
209 2003-09-30 Jakub Jelinek <jakub@redhat.com>
211 * sysdeps/pthread/malloc-machine.h [!__libc_maybe_call2] (mutex_init,
212 mutex_lock, mutex_trylock, mutex_unlock): Remove.
214 2003-09-27 Wolfram Gloger <wg@malloc.de>
216 * sysdeps/pthread/malloc-machine.h: New file.
218 2003-09-18 H.J. Lu <hongjiu.lu@intel.com>
220 * attr.c (__pthread_attr_init_2_1): Double __guardsize size
221 if NEED_SEPARATE_REGISTER_STACK is defined.
223 2003-09-22 Philip Blundell <philb@gnu.org>
225 * forward.c: Add _pthread_cleanup_push, _pthread_cleanup_pop.
226 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
228 * pthread.c (__pthread_elements): Initialise these new elements.
229 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Use
231 (__libc_cleanup_pop): Likewise.
233 2003-09-22 Jakub Jelinek <jakub@redhat.com>
235 * attr.c: Include stdlib.h.
237 2003-09-18 Jakub Jelinek <jakub@redhat.com>
239 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
241 * tst-attr1.c: New test.
242 * Makefile (tests): Add tst-attr1.
244 2003-09-17 Philip Blundell <philb@gnu.org>
246 * sysdeps/unix/sysv/linux/arm/vfork.S: Branch to fork if
247 libpthread is loaded. Elide backwards compatibility code when not
250 2003-09-17 Jakub Jelinek <jakub@redhat.com>
252 * descr.h (manager_thread): Rename to...
253 (__pthread_manager_threadp): ... this.
254 * pthread.c (manager_thread): Define to __pthread_manager_threadp.
255 (__pthread_manager_threadp): New variable.
256 * internals.h (__manager_thread): Define to
257 __pthread_manager_threadp if USE_TLS.
259 2003-09-15 Jakub Jelinek <jakub@redhat.com>
261 * sysdeps/i386/Makefile (CFLAGS-cancel.c, CFLAGS-manager.c,
262 CFLAGS-pthread.c, CFLAGS-sighandler.c): Add
263 -mpreferred-stack-boundary=4.
265 2003-09-16 Ulrich Drepper <drepper@redhat.com>
267 * attr.c (pthread_getattr_np): Correctly fill in the stack-related
268 values for the initial thread.
270 2003-09-17 Jakub Jelinek <jakub@redhat.com>
272 * pthread.c (manager_thread): Remove static, add attribute_hidden.
273 (thread_self_stack): Rename to...
274 (__pthread_self_stack): ... this. Remove static.
275 (pthread_handle_sigcancel): Use check_thread_self ().
276 (pthread_handle_sigrestart): Likewise.
277 * sighandler.c (__pthread_sighandler, __pthread_sighandler_rt):
279 * descr.h (manager_thread): Declare.
280 * internals.h (__pthread_self_stack): New prototype.
281 (__manager_thread): Define.
282 (check_thread_self): New function.
284 2003-09-15 Jakub Jelinek <jakub@redhat.com>
286 * Makefile (CFLAGS-mutex.c): Add $(uses-callbacks).
287 (CFLAGS-sighandler.c): Change $(exceptions) into $(uses-callbacks).
289 2003-09-12 Jakub Jelinek <jakub@redhat.com>
291 * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: New.
292 (__SSIZE_T_TYPE): Define to __SWORD_TYPE for gcc 2.95.x and
293 __SLONGWORD_TYPE otherwise.
295 2003-09-11 Steven Munroe <sjmunroe@us.ibm.com>
297 * sysdeps/powerpc/powerpc64/pt-machine.h [MEMORY_BARRIER]: Use lwsync.
298 [READ_MEMORY_BARRIER]: Define.
299 [WRITE_MEMORY_BARRIER]: Define.
301 2003-09-10 Jakub Jelinek <jakub@redhat.com>
303 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Move
304 ptr___pthread_cond_timedwait to the end of the structure to avoid
305 breaking Wine unnecessarily.
307 2003-09-08 Jakub Jelinek <jakub@redhat.com>
309 * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: Remove.
311 2003-09-02 Jakub Jelinek <jakub@redhat.com>
313 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
314 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
315 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
316 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
317 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
318 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
319 * attr.c (__old_pthread_attr_setstacksize,
320 __old_pthread_attr_setstack): New functions.
321 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
322 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
323 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
324 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
325 * tststack.c: Include limits.h and sys/param.h.
326 (main): Set size to MAX (70 * 1024, PTHREAD_STACK_MIN).
328 * barrier.c (__pthread_barrierattr_getpshared): Always
329 return PTHREAD_PROCESS_PRIVATE.
330 (pthread_barrierattr_setpshared): Return EINVAL if pshared
331 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
333 2003-09-02 Ulrich Drepper <drepper@redhat.com>
335 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
336 (DL_SYSINFO_IMPLEMENTATION): Add CFI and make sure the code ends
339 * barrier.c (pthread_barrierattr_setpshared): We don't handle
340 inter-process barriers.
342 2003-09-01 Jakub Jelinek <jakub@redhat.com>
344 * Makefile (tests): Add tst-tls1.
345 (module-names): Add tst-tls1mod{,a,b,c,d,e,f}.
346 ($(objpfx)tst-tls1mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
347 ($(objpfx)tst-tls1): New.
348 ($(objpfx)tst-tls2.out): Likewise.
349 (tests): Depend on $(objpfx)tst-tls2.out.
350 * tst-tls1.c: New test.
352 * tst-tls1mod.c: New.
353 * tst-tls1moda.c: New.
354 * tst-tls1modb.c: New.
355 * tst-tls1modc.c: New.
356 * tst-tls1modd.c: New.
357 * tst-tls1mode.c: New.
358 * tst-tls1modf.c: New.
359 * tst-tls2.sh: New test.
361 * internals.h (__pthread_cond_timedwait): New prototype.
362 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
363 ptr___pthread_cond_timedwait.
364 * pthread.c (__pthread_functions): Initialize them.
365 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
366 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
367 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
368 pthread_cond_timedwait@@GLIBC_2.3.2.
370 2003-08-27 Ulrich Drepper <drepper@redhat.com>
372 * sysdeps/pthread/pthread.h: Don't mark pthread_exit,
373 pthread_join, pthread_cond_wait, and pthread_cond_timedwait with
374 __THROW to match NPTL.
376 2003-08-13 Ulrich Drepper <drepper@redhat.com>
378 * sysdeps/pthread/Makefile [subdir=rt] (CPPFLAGS): Add
379 -DBROKEN_THREAD_SIGNALS.
381 2003-08-11 Steven Munroe <sjmunroe@us.ibm.com>
383 * manager.c (pthread_start_thread) [!(USE_TLS && HAVE___THREAD)]:
384 Correct spelling of per thread resolver state.
386 2003-08-07 Jakub Jelinek <jakub@redhat.com>
388 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
389 (__rtld_lock_default_lock_recursive,
390 __rtld_lock_default_unlock_recursive): Define.
391 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
392 __rtld_lock_unlock_recursive): Define using
393 GL(_dl_rtld_*lock_recursive).
394 * pthread.c (pthread_initialize): Initialize _dl_rtld_lock_recursive
395 and _dl_rtld_unlock_recursive. Lock GL(_dl_load_lock) the same
396 number of times as GL(_dl_load_lock) using non-mt implementation was
399 2003-07-31 Jakub Jelinek <jakub@redhat.com>
401 * sysdeps/pthread/bits/typesizes.h (__SSIZE_T_TYPE): Define.
402 * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h (__SSIZE_T_TYPE):
404 * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h (__SSIZE_T_TYPE):
406 * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: New file.
408 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
409 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
410 PTHREAD_STACK_MIN in comments.
412 * sysdeps/alpha/pt-machine.h (PT_EI): Add
413 __attribute__((always_inline)).
414 * sysdeps/arm/pt-machine.h (PT_EI): Likewise.
415 * sysdeps/cris/pt-machine.h (PT_EI): Likewise.
416 * sysdeps/hppa/pt-machine.h (PT_EI): Likewise.
417 * sysdeps/i386/i686/pt-machine.h (PT_EI): Likewise.
418 * sysdeps/i386/pt-machine.h (PT_EI): Likewise.
419 * sysdeps/ia64/pt-machine.h (PT_EI): Likewise.
420 * sysdeps/m68k/pt-machine.h (PT_EI): Likewise.
421 * sysdeps/mips/pt-machine.h (PT_EI): Likewise.
422 * sysdeps/powerpc/powerpc32/pt-machine.h (PT_EI): Likewise.
423 * sysdeps/powerpc/powerpc64/pt-machine.h (PT_EI): Likewise.
424 * sysdeps/s390/s390-32/pt-machine.h (PT_EI): Likewise.
425 * sysdeps/s390/s390-64/pt-machine.h (PT_EI): Likewise.
426 * sysdeps/sh/pt-machine.h (PT_EI): Likewise.
427 * sysdeps/sparc/sparc32/pt-machine.h (PT_EI): Likewise.
428 * sysdeps/sparc/sparc64/pt-machine.h (PT_EI): Likewise.
429 * sysdeps/x86_64/pt-machine.h (PT_EI): Likewise.
430 * spinlock.h (__pthread_set_own_extricate_if): Likewise.
431 * sysdeps/ia64/tls.h (TLS_INIT_TP): Cast tcbp to __typeof
433 * Examples/ex13.c (main): Change res type to void * to avoid
435 * tst-cancel.c (cleanup, inner, tf1, tf2, tf3): Comment out.
437 2003-07-30 Jakub Jelinek <jakub@redhat.com>
439 * pthread.c (init_one_static_tls, __pthread_init_static_tls): New
441 (pthread_initialize): Initialize GL(dl_init_static_tls).
443 2003-06-19 Daniel Jacobowitz <drow@mvista.com>
445 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
446 before __timer_dealloc.
447 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
448 Don't call list_unlink.
450 2003-07-29 Roland McGrath <roland@redhat.com>
452 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
454 2003-07-25 Roland McGrath <roland@redhat.com>
456 * manager.c (pthread_start_thread): Fix typo in last change.
458 2003-07-14 Guido Guenther <agx@sigxcpu.org>
460 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: Add IS_IN_librt,
461 use L() for local labels.
463 2003-07-22 Jakub Jelinek <jakub@redhat.com>
465 * descr.h (struct _pthread_descr_struct): Provide p_res member
466 even if USE_TLS && HAVE___THREAD.
467 * sysdeps/pthread/res-state.c (__res_state): Return __resp
469 * manager.c: Include resolv.h.
470 (pthread_start_thread): Initialize __resp.
471 * libc-tls-loc.c (__res_state): Return __resp.
472 * Makefile (tests): Add tst-_res1.
473 (modules-names, extra-objs, test-extras, test-modules): Add support
475 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
476 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
478 * tst-_res1.c: New test.
479 * tst-_res1mod1.c: New test.
480 * tst-_res1mod2.c: New test.
482 2003-07-20 Ulrich Drepper <drepper@redhat.com>
484 * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_push and
487 * tst-cancel-wrappers.sh: lseek and llseek are no cancellation points.
489 2003-07-14 Ulrich Drepper <drepper@redhat.com>
491 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Fix typo
492 in test for compilation in libc.
494 2003-07-04 Jakub Jelinek <jakub@redhat.com>
496 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
497 different symbol for the cancellation syscall wrapper and
498 non-cancellation syscall wrapper.
499 (PSEUDO_END): Define.
501 2003-07-05 Richard Henderson <rth@redhat.com>
503 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
505 2003-06-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
507 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Support cancellation
510 2003-06-21 Andreas Schwab <schwab@suse.de>
512 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Support cancellation
515 2003-06-20 Richard Henderson <rth@redhat.com>
517 * sysdeps/unix/sysv/linux/alpha/Makefile (libpthread-routines):
518 Remove ptw-osf_sigprocmask.
520 2003-06-18 Jakub Jelinek <jakub@redhat.com>
522 * internals.h (__librt_multiple_threads, __librt_enable_asynccancel,
523 __librt_disable_asynccancel): Declare.
524 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET, LIBC_CANCEL_HANDLED): Define
526 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Support cancellation
528 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
529 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
530 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
531 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
532 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
533 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
534 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
535 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
536 * sysdeps/x86_64/tcb-offsets.sym: New file.
537 * sysdeps/x86_64/Makefile: New file.
538 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
539 * Versions (libc): Export __librt_enable_asynccancel,
540 __librt_disable_asynccancel and __librt_multiple_threads as
542 * libc-cancellation.c (__librt_multiple_threads,
543 __librt_enable_asynccancel, __librt_disable_asynccancel): New aliases.
545 2003-06-12 Steven Munroe <sjmunroe@us.ibm.com>
547 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
548 (SINGLE_THREAD_P): Replace @ got notation with @toc.
550 2003-06-11 Ulrich Drepper <drepper@redhat.com>
552 * sysdeps/powerpc/pspinlock.c (__pthread_spin_init): Fix
553 initializer [PR libc/5052].
555 2003-06-09 Andreas Schwab <schwab@suse.de>
557 * Makefile: Move inclusion of ../Rules down after extra-objs is
560 2003-06-06 Ulrich Drepper <drepper@redhat.com>
562 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: New sequences for
563 5+ arg syscalls only needed for PIC.
564 Patch by Ralph Siemsen <ralphs@netwinder.org>.
566 2003-06-05 Richard Henderson <rth@redhat.com>
568 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use
569 and require CFI assembler directives.
570 * sysdeps/unix/sysv/linux/alpha/vfork.S: Likewise.
572 2003-05-30 Andreas Jaeger <aj@suse.de>
574 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
575 (SAVESTK_0): Add CFI directives.
576 (SAVESTK_3): Likewise.
577 (SAVESTK_5): Likewise.
578 (RESTSTK_0): Likewise.
579 (RESTSTK_3): Likewise.
580 (RESTSTK_5): Likewise.
582 2003-05-05 Ulrich Drepper <drepper@redhat.com>
584 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Add \n to error
587 2003-05-04 Roland McGrath <roland@redhat.com>
589 * Makefile ($(objpfx)../libc.so): New target.
591 2003-04-26 Ulrich Drepper <drepper@redhat.com>
593 * pthread.c (__pthread_initialize_manager): Remove one last
594 p_multiple_threads call.
596 2003-04-22 Jakub Jelinek <jakub@redhat.com>
598 * pthread.c (__pthread_initialize_manager): Subtract
599 TLS_PRE_TCB_SIZE bytes from tcbp to get to descr.
600 * manager.c (pthread_handle_create): Subtract or add TLS_PRE_TCB_SIZE
601 instead of sizeof (pthread_descr).
602 (pthread_free): Add TLS_PRE_TCB_SIZE instead of sizeof (pthread_descr).
603 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define to 0.
604 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
606 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
608 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
610 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
612 (NO_TLS_OFFSET): Define.
614 2003-04-22 Roland McGrath <roland@redhat.com>
616 * Makeconfig (shared-thread-library): Reverse link order to work
619 2003-04-20 Ulrich Drepper <drepper@redhat.com>
621 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Make sure the
622 compiler knows we use the ldt_entry variable and that the syscall
625 * internals.h: Split pthread_functions definition into...
626 * sysdeps/pthread/pthread-functions.h: ...new file.
628 * sysdeps/i386/useldt.h: Include <sysdep.h>.
630 2003-04-13 Jakub Jelinek <jakub@redhat.com>
632 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Rename macros to
633 match changes in NPTL sysdep-cancel.h.
635 2003-04-11 Roland McGrath <roland@redhat.com>
637 * Makefile (multidir): Don't set the variable here with $(shell ...).
638 ($(objpfx)multidir.mk): New target, generated makefile; include that.
639 (generated): Append it.
641 2003-04-10 Jakub Jelinek <jakub@redhat.com>
643 * Makefile (multidir, crti-objs, crtn-objs): New variables.
644 (generated-dirs): Add pathname component of multidir.
645 (omit-deps, extra-objs): Include $(multidir)/crt? as well.
646 ($(objpfx)libpthread.so): Depend on $(multidir)/crt?.o as well.
647 ($(objpfx)$(multidir), $(objpfx)$(multidir)/crti.o,
648 $(objpfx)$(multidir)/crtn.o): New.
649 * sysdeps/unix/sysv/linux/sparc/Makefile: Removed.
650 * sysdeps/unix/sysv/linux/x86_64/Makefile (LDFLAGS-pthread.so,
651 before-compile, generated): Don't generate and use specs.
652 ($(objpfx)specs): Remove.
654 2003-04-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
656 * sysdeps/s390/pspinlock.c (__pthread_spin_unlock): Fix asm contraints.
658 2003-04-03 Ulrich Drepper <drepper@redhat.com>
660 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (PSEUDO): Add
661 missing ; after ENTRY use [PR libc/4997].
663 2003-04-03 Jakub Jelinek <jakub@redhat.com>
665 * pthread.c (pthread_initialize): Unblock __pthread_sig_cancel
666 in case the parent blocked it.
668 2003-04-02 Jakub Jelinek <jakub@redhat.com>
670 * Makefile (libpthread-routines): Add pthread_atfork.
671 (libpthread-static-only-routines): Add pthread_atfork.
673 2003-04-01 Jakub Jelinek <jakub@redhat.com>
675 * pthread.c (__pthread_wait_for_restart_signal): Use
676 __pthread_sigsuspend instead of sigsuspend.
677 * internals.h (__pthread_sigsuspend): New prototype.
678 * Makefile (libpthread-routines): Add pt-sigsuspend.
679 (tests): Add tst-cancel7.
680 * sysdeps/unix/sysv/linux/pt-sigsuspend.c: New file.
681 * sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S: New file.
682 * sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c: New file.
683 * sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c: New file.
684 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-sigsuspend.c: New file.
685 * sysdeps/unix/sysv/linux/x86_64/pt-sigsuspend.c: New file.
686 * tst-cancel7.c: New test.
688 2003-03-31 Alexandre Oliva <aoliva@redhat.com>
690 * alloca_cutoff.c: Include internals.h.
691 * sysdeps/pthread/errno-loc.c: Include linuxthreads/internals.h.
692 * sysdeps/pthread/herrno-loc.c: Likewise.
693 * sysdeps/pthread/res-state.c: Likewise.
695 2003-03-25 Ulrich Drepper <drepper@redhat.com>
697 * sysdeps/pthread/bits/typesizes.h: New file.
698 * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h: New file.
699 * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h: New file.
701 2003-03-24 Daniel Jacobowitz <drow@mvista.com>
703 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
704 (DOARGS_5, DOARGS_6, DOARGS_7): Rewritten.
706 2003-03-22 Jakub Jelinek <jakub@redhat.com>
708 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
710 2003-03-21 Daniel Jacobowitz <drow@mvista.com>
712 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
713 (SINGLE_THREAD_P_PIC): Use "reg" instead of "lr".
715 2003-03-21 Jakub Jelinek <jakub@redhat.com>
717 * sysdeps/i386/tls.h [__ASSUME_SET_THREAD_AREA_SYSCALL]
718 (TLS_SETUP_GS_SEGMENT): Fix a typo.
720 2003-03-19 Ulrich Drepper <drepper@redhat.com>
722 * sysdeps/pthread/Makefile: Fix cut&paste error.
724 2003-03-18 Roland McGrath <roland@redhat.com>
726 * Versions (libpthread: GLIBC_2.2): Remove
727 pthread_barrierattr_getpshared, never really existed.
728 (libpthread: GLIBC_2.0): Move __pthread_initialize to ...
729 (libpthread: GLIBC_PRIVATE): ... here.
731 2003-03-14 Jakub Jelinek <jakub@redhat.com>
733 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
734 * sysdeps/unix/sysv/linux/sparc/Makefile ($(objpfx)specs): Use full
737 2003-03-14 Alexandre Oliva <aoliva@redhat.com>
739 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Don't .set
741 * sysdeps/mips/pt-machine.h (__compare_and_swap): Likewise.
742 Handle 64-bit longs on n64.
744 2003-03-07 Jakub Jelinek <jakub@redhat.com>
746 * sysdeps/ia64/pspinlock.c (__pthread_spin_lock,
747 __pthread_spin_trylock): Rewritten.
749 2003-03-06 Ulrich Drepper <drepper@redhat.com>
751 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
754 2003-03-02 Ulrich Drepper <drepper@redhat.com>
756 * sysdeps/pthread/timer_create.c (timer_create): Return correct
757 error for CPU clocks.
759 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
760 _POSIX_MONOTONIC_CLOCK.
761 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
763 2003-03-01 Roland McGrath <roland@redhat.com>
765 * sysdeps/powerpc/powerpc64/pt-machine.h
766 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
768 * sysdeps/powerpc/tls.h: Don't define those here.
770 * sysdeps/powerpc/tls.h [! USE_TLS && !__powerpc64__]: Define
771 tcbhead_t with multiple_threads member.
772 [USE_TLS] (tcbhead_t): Define minimal one-word version.
773 [USE_TLS && !__powerpc64__] (TLS_MULTIPLE_THREADS_IN_TCB): Define.
774 * sysdeps/powerpc/tcb-offsets.sym [USE_TLS]: Use tls.h macros to
775 derive thread register offset of p_multiple_threads member.
777 * descr.h (struct _pthread_descr_struct) [!USE_TLS || !TLS_DTV_AT_TP]:
778 Conditionalize p_header member on this.
779 [TLS_MULTIPLE_THREADS_IN_TCB]: Add p_multiple_threads alternatively.
780 * sysdeps/ia64/tls.h [USE_TLS] (TLS_MULTIPLE_THREADS_IN_TCB): Define.
781 * sysdeps/sh/tls.h: Likewise.
782 * sysdeps/ia64/tcb-offsets.sym [USE_TLS]: Use p_multiple_threads.
783 * sysdeps/sh/tcb-offsets.sym: Likewise.
784 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
785 (SINGLE_THREAD_P): Likewise.
786 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
787 (SINGLE_THREAD_P): Likewise.
788 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
789 (SINGLE_THREAD_P): Likewise.
790 * pthread.c (__pthread_initialize_manager): Likewise.
791 * manager.c (pthread_handle_create): Likewise.
793 * sysdeps/powerpc/tls.h [HAVE_TLS_SUPPORT]: Define USE_TLS and all
796 2003-01-31 Steven Munroe <sjmunroe@us.ibm.com>
798 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S [SHARED]:
799 Conditionalize .toc section magic on this.
801 2003-02-21 Roland McGrath <roland@redhat.com>
803 * cancel.c (__pthread_perform_cleanup): Call __libc_thread_freeres
804 instead of __rpc_thread_destroy.
806 2003-02-21 Jakub Jelinek <jakub@redhat.com>
808 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Call
809 __fork instead of branching to it if BROKEN_SPARC_WDISP22.
810 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
812 * sysdeps/unix/sysv/linux/sparc/Makefile (specs): Add ./ prefix
813 to crti.o and crtn.o.
814 * sysdeps/unix/sysv/linux/x86_64/Makefile (specs): Likewise.
816 2003-02-21 Roland McGrath <roland@redhat.com>
818 * Makefile (install-lib-ldscripts): New variable.
820 2003-02-20 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
822 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Avoid short
823 interprocedure branches.
825 2003-02-19 Ulrich Drepper <drepper@redhat.com>
827 * specific.c (pthread_key_delete_helper): Don't use GETMEM, we
828 need the target thread's lock.
830 2003-02-17 Ulrich Drepper <drepper@redhat.com>
832 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
835 2003-02-17 Kevin B. Hendricks <kevin.hendricks@sympatico.ca>
836 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
838 * sysdeps/powerpc/Makefile: Handle tcb-offsets.sym.
839 * sysdeps/powerpc/tcb-offsets.sym: New file.
840 * sysdeps/powerpc/tls.h: New file.
841 * sysdeps/powerpc/powerpc32/pt-machine.h (FLOATING_STACKS): Define.
842 (ARCH_STACK_MAX_SIZE): Define.
843 (THREAD_SELF): Define.
844 (INIT_THREAD_SELF): Define.
845 (THREAD_GETMEM): Define.
846 (THREAD_GETMEM_NC): Define.
847 (THREAD_SETMEM): Define.
848 (THREAD_SETMEM_NC): Define.
849 (__thread_self): Declare.
850 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Adjust
853 2003-02-14 Steven Munroe <sjmunroe@us.ibm.com>
855 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
856 Check pthread_create existance, not __pthread_fork.
858 2003-02-12 Ulrich Drepper <drepper@redhat.com>
860 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
862 2003-02-10 Jakub Jelinek <jakub@redhat.com>
864 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Check
865 pthread_create existance, not __pthread_fork.
866 * sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise.
867 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise.
868 * sysdeps/unix/sysv/linux/m68k/vfork.S (__vfork): Likewise.
869 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
871 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
872 * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise.
873 * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Likewise.
874 Add .weak pthread_create.
875 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Fix a typo.
876 Check pthread_create existance, not __pthread_fork.
877 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
878 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Branch to
879 __fork whenever libpthread.so is loaded.
881 2003-02-09 Andreas Jaeger <aj@suse.de>
883 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h:
884 Rework: %r9 is destroyed by functions so don't use it as
885 temporary, align stack correctly, fix parameter for CDISABLE.
887 2003-02-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
889 * sysdeps/sh/Makefile: New file.
890 * sysdeps/sh/tcb-offsets.sym: Likewise.
891 * sysdeps/sh/tls.h: Don't include sysdep.h. Move include
892 of linuxthreads/descr.h after the definition of THREAD_SELF.
893 (tcbhead_t): Use IA64 type tcbhead_t for TLS case.
894 (TLS_TCB_SIZE): Set size of tcbhead_t.
895 (TLS_PRE_TCB_SIZE): Define.
896 (INSTALL_NEW_DTV): Set dtv of tcbhead_t structure instead of
897 a member of thread structure.
898 (THREAD_DTV): Likewise.
899 (TLS_INIT_TP_EXPENSIVE): Remove.
900 (TLS_INIT_TP): Set gbr register only.
902 (INIT_THREAD_SELF): Likewise.
903 (NONTLS_INIT_TP): New.
904 * sysdeps/unix/sysv/linux/sh/pt-initfini.c (__fpscr_values):
906 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Add
907 SYSCALL_INST_PAD macro after DO_CALL.
908 (SINGLE_THREAD_P): Fix non-PIC and TLS case so to read the
910 * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Branch to __fork
911 whenever libpthread.so is loaded.
913 2003-02-08 Andreas Schwab <schwab@suse.de>
915 * sysdeps/unix/sysv/linux/m68k/vfork.S: Branch to __fork whenever
916 libpthread.so is loaded.
918 2003-02-07 Ulrich Drepper <drepper@redhat.com>
920 * sysdeps/unix/sysv/linux/i386/vfork.S: Make sure
921 __ASSUME_VFORK_SYSCALL is not defined if the kernel headers have
922 no __NR_vfork definition.
924 2003-02-07 Jakub Jelinek <jakub@redhat.com>
926 * tst-popen2.c: New test.
927 * Makefile (tests): Add tst-popen2.
928 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Branch to __fork
929 whenever libpthread.so is loaded.
930 * sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise.
931 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise.
932 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
933 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
935 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
936 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
937 * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise.
939 2003-02-05 Ulrich Drepper <drepper@redhat.com>
941 * sysdeps/pthread/bits/libc-lock.h (__libc_once): Set control
942 variable for non-libpthread case to the same value the
943 pthread_once function would use.
945 2003-02-03 Jakub Jelinek <jakub@redhat.com>
947 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): If
948 BROKEN_SPARC_WDISP22, handle SHARED the same way as non-SHARED.
950 2003-02-04 Andreas Jaeger <aj@suse.de>
952 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: Do not use
955 2003-01-30 Jakub Jelinek <jakub@redhat.com>
957 * sysdeps/s390/tls.h (TLS_INIT_TP): Return NULL, not 0.
959 2003-01-30 Jakub Jelinek <jakub@redhat.com>
961 * sysdeps/alpha/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC,
962 THREAD_SETMEM, THREAD_SETMEM_NC): Avoid warnings about unused self
964 * sysdeps/ia64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
965 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
966 * sysdeps/s390/s390-32/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
967 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
968 * sysdeps/s390/s390-64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
969 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
970 * sysdeps/sh/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
971 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
972 * sysdeps/sparc/sparc32/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
973 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
974 * sysdeps/sparc/sparc64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
975 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
977 2003-01-27 Martin Schwidefsky <schwidefsky@de.ibm.com>
979 * sysdeps/s390/s390-32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
981 * sysdeps/s390/s390-64/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
983 * sysdeps/s390/tls.h [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE,
984 TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE, TLS_TCB_ALIGN, TLS_TCB_AT_TP,
985 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_DTV):
987 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Use
988 branch with 32 bit offset.
989 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise.
991 2003-01-24 Jakub Jelinek <jakub@redhat.com>
993 * sysdeps/sparc/sparc32/pt-machine.h (__thread_self): Change to %g7,
994 as required by TLS ABI.
995 * sysdeps/sparc/sparc64/pt-machine.h (__thread_self): Likewise.
996 * sysdeps/sparc/tls.h [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE,
997 TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE, TLS_TCB_ALIGN, TLS_TCB_AT_TP,
998 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_DTV):
1000 [HAVE_TLS_SUPPORT]: Include descr.h and sysdep.h.
1001 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Use %g7
1002 instead of %g6 for thread pointer.
1003 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
1004 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
1005 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
1007 2003-01-25 Guido Guenther <agx@sigxcpu.org>
1009 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
1010 * sysdeps/unix/sysv/linux/mips/Makefile: New file.
1012 2003-01-20 Martin Schwidefsky <schwidefsky@de.ibm.com>
1014 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Avoid non pc relative
1015 reference to __fork.
1017 2003-01-17 Richard Henderson <rth@redhat.com>
1019 * sysdeps/alpha/tls.h (tcbhead_t): Clarify second member.
1020 (TLS_TCB_SIZE, TLS_TCB_ALIGN): Set for tcbhead_t.
1021 (TLS_PRE_TCB_SIZE): New.
1022 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Update for
1023 new ia64-style thread pointer layout.
1024 (THREAD_GETMEM, THREAD_GETMEM_NC): New.
1025 (THREAD_SETMEM, THREAD_SETMEM_NC): New.
1026 * sysdeps/unix/sysv/linux/alpha/vfork.S: Don't tail-call to __fork
1029 2003-01-15 Jakub Jelinek <jakub@redhat.com>
1031 * sysdeps/ia64/tls.h (tcbhead_t): Use the TLS ABI required layout
1033 (NONTLS_INIT_TP): Revert last change.
1034 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define to
1035 offsetof (tcbhead_t, multiple_threads) if USE_TLS not defined.
1037 2003-01-16 Jakub Jelinek <jakub@redhat.com>
1039 * pthread.c (_pthread_initialize_minimal): Use
1040 GL(dl_tls_dtv_slotinfo_list) != NULL to check whether TLS has
1041 been already initialized.
1043 2003-01-16 Jakub Jelinek <jakub@redhat.com>
1045 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize head->sysinfo even
1048 2003-01-15 Jakub Jelinek <jakub@redhat.com>
1050 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init,
1051 __libc_lock_init_recursive): Initialize fields directly.
1053 2003-01-15 Jakub Jelinek <jakub@redhat.com>
1055 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Allow
1056 __fork to be far away from __vfork ifndef SHARED.
1057 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
1059 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
1060 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
1061 Add a missing instruction.
1062 * sysdeps/unix/sysv/linux/arm/vfork.S (__vfork): Conditionally
1063 branch to __fork even if __NR_vfork is not defined.
1065 2003-01-14 Ulrich Drepper <drepper@redhat.com>
1067 * tst-cancel-wrappers.sh: Allow .__*_asynccancel functions names
1070 2003-01-14 Steven Munroe <sjmunroe@us.ibm.com>
1072 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
1074 2003-01-14 Jakub Jelinek <jakub@redhat.com>
1076 * sysdeps/unix/sysv/linux/ia64/vfork.S (JUMPTARGET): Remove.
1078 2003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
1080 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: Avoid
1081 unterminated string literals.
1082 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: Likewise.
1084 2003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
1086 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
1087 (PSEUDO): Code reordering. Move CENABLE and CDISABLE literals from
1088 PSEUDO_END to PSEUDO.
1089 (PSEUDO_END): Remove.
1090 (SINGLE_THREAD_P): Save an instruction.
1091 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add missing
1092 parameter to SINGLE_THREAD_P call.
1093 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
1096 2003-01-10 Andreas Schwab <schwab@suse.de>
1098 * sysdeps/unix/sysv/linux/m68k/vfork.S: New file.
1100 2003-01-10 Martin Schwidefsky <schwidefsky@de.ibm.com>
1102 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Setup
1103 backchain in pseudo_cancel. Minor code improvements.
1104 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
1107 2003-01-10 Martin Schwidefsky <schwidefsky@de.ibm.com>
1109 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
1110 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
1112 2002-01-12 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1114 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
1116 2002-01-09 Richard Henderson <rth@redhat.com>
1118 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Assume only
1119 ret follows pseudo, and thus avoid branch-to-branch in cancel
1120 case. Use SYSCALL_ERROR_LABEL.
1122 2003-01-11 Philip Blundell <philb@gnu.org>
1124 * sysdeps/unix/sysv/linux/arm/vfork.S: New file.
1125 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (PSEUDO_RET):
1126 Correctly unstack lr.
1127 (UNDOARGS_5): Fix ordering of pushes and pops.
1128 (SINGLE_THREAD_P_PIC): New.
1129 (SINGLE_THREAD_P_INT): New.
1130 (SINGLE_THREAD_P): Implement in terms of above. Restore lr if it
1132 (PSEUDO): Use SINGLE_THREAD_P_INT.
1134 2003-01-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1136 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
1138 2003-01-11 Jakub Jelinek <jakub@redhat.com>
1140 * sysdeps/ia64/tls.h (tcbhead_t): Change into dtv_t *, void *.
1141 [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN,
1142 TLS_TCB_SIZE, TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, TLS_DTV_AT_TP,
1143 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_SELF,
1144 INIT_THREAD_SELF): Define.
1145 [HAVE_TLS_SUPPORT]: Include descr.h.
1146 (NONTLS_INIT_TP): Point __thread_self at the end of dummy
1147 struct _pthread_descr_struct.
1148 * sysdeps/ia64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
1149 THREAD_SETMEM, THREAD_SETMEM_NC): Define using THREAD_SELF,
1151 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Adjust
1153 * pthread.c (__pthread_initialize_minimal): Use tcbp, not self
1155 (__pthread_initialize_manager): Rename tcb to mgr.
1156 Use tcbp for TCB pointer, if TLS_DTV_AT_TP set mgr to sizeof (struct
1157 _pthread_descr) below tcbp, otherwise to tcbp.
1158 * manager.c (pthread_handle_create): If TLS_DTV_AT_TP, set
1159 new_thread to be below _dl_allocate_tls (). Adjust new_thread back
1160 before freeing. Fix clone arguments if report_events and USE_TLS.
1161 (pthread_free): Adjust th back before freeing.
1163 2003-01-10 Steven Munroe <sjmunroe@us.ibm.com>
1165 * sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: Moved to ...
1166 * sysdeps/unix/sysv/linux/powerpc/Makefile: ...here.
1167 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New File.
1169 2003-01-09 Jakub Jelinek <jakub@redhat.com>
1171 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
1172 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
1173 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
1174 [__ASSEMBLER__] (SINGLE_THREAD_P): Remove trailing ;;.
1175 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
1176 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
1177 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
1178 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
1179 * tst-popen.c: New test.
1180 * Makefile (tests): Add tst-popen.
1182 2003-01-06 Jakub Jelinek <jakub@redhat.com>
1184 * sysdeps/unix/sysv/linux/sigwait.c (do_sigwait): Add
1185 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
1187 2003-01-06 Jakub Jelinek <jakub@redhat.com>
1189 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use
1190 PSEUDO_PREPARE_ARGS. Fix branch condition after SINGLE_THREAD_P.
1192 2003-01-06 Philip Blundell <philb@gnu.org>
1194 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: New file.
1196 2003-01-06 Jakub Jelinek <jakub@redhat.com>
1198 * internals.h (LIBC_CANCEL_HANDLED): Define.
1199 * sysdeps/unix/sysv/linux/sigwait.c (LIBC_CANCEL_HANDLED): Add.
1200 * signals.c (LIBC_CANCEL_HANDLED): Add.
1201 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
1202 * tst-cancel-wrappers.sh: Remove all exceptions.
1204 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
1206 2003-01-05 Andreas Schwab <schwab@suse.de>
1208 * sysdeps/m68k/Makefile: New file, use -fPIC for nonshared
1211 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (SINGLE_THREAD_P):
1213 (CENABLE): Likewise.
1214 (CDISABLE): Likewise.
1216 2003-01-05 Ulrich Drepper <drepper@redhat.com>
1218 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
1219 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
1221 * Makefile (libc.so-no-z-defs): Define to yes.
1223 2003-01-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1225 * sysdeps/sh/tls.h: Include dl-sysdep.h and stdint.h.
1226 (tcbhead_t): Add multiple_threads member.
1227 (TLS_INIT_TP_EXPENSIVE): Define.
1228 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Don't use multi-line
1229 strings. Remove unused code.
1230 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
1232 2003-01-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1234 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
1235 * sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: New file.
1237 2003-01-04 Jakub Jelinek <jakub@redhat.com>
1239 * internals.h (LIBC_THREAD_GETMEM, LIBC_THREAD_SETMEM): Define
1240 even if NOT_IN_libc is defined.
1242 2003-01-05 Jakub Jelinek <jakub@redhat.com>
1244 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
1245 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
1246 * sysdeps/s390/Makefile: New file.
1247 * sysdeps/s390/tcb-offsets.sym: New file.
1248 * sysdeps/s390/tls.h: New file.
1250 2003-01-03 Richard Henderson <rth@redhat.com>
1252 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
1254 2003-01-03 Andreas Jaeger <aj@suse.de>
1256 * sysdeps/pthread/bits/libc-tsd.h: Declare weak_extern functions.
1258 2003-01-03 Jakub Jelinek <jakub@redhat.com>
1260 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
1262 2003-01-02 Ulrich Drepper <drepper@redhat.com>
1264 * tst-cancel-wrappers.sh: Exclude sigwait.c as well, it does not have
1267 2003-01-02 Jakub Jelinek <jakub@redhat.com>
1269 * internals.h (struct pthread_functions): Rename
1270 ptr_pthread_cond_* fields to ptr___pthread_cond_*.
1271 * pthread.c (pthread_functions): Adjust.
1272 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
1273 pthread_cond_*@GLIBC_2.0 compatibility symbols.
1274 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
1275 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
1276 and pthread_cond_wait.
1278 * sysdeps/pthread/bits/pthreadtypes.h (__pthread_cond_align_t): New
1280 (pthread_cond_t): Add __align member, shorten __padding.
1281 * sysdeps/pthread/pthread.h (PHTREAD_COND_INITIALIZER): Initialize
1282 __padding and __align too.
1284 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call2): Add
1286 * sysdeps/pthread/sigaction.c: New file.
1287 * sysdeps/unix/sysv/linux/raise.c: New file.
1288 * sysdeps/unix/sysv/linux/sigwait.c: New file.
1289 * sysdeps/unix/sysv/linux/fork.c (__pthread_fork): Protect
1290 weak_extern with #ifndef SHARED.
1291 * sysdeps/unix/sysv/linux/jmp-unwind.c (__pthread_cleanup_upto):
1293 * signals.c (__sigaction): Renamed to...
1294 (__pthread_sigaction): ... this.
1295 (__sigaction): New strong alias, #ifdef SHARED only.
1296 (sigaction): Protect with #ifdef SHARED.
1297 (sigwait): Renamed to...
1298 (__pthread_sigwait): ... this.
1299 (sigwait): New strong alias, #ifdef SHARED only.
1300 (raise): Renamed to...
1301 (__pthread_raise): ... this.
1302 (raise): New strong alias, #ifdef SHARED only.
1303 * internals.h (__pthread_sigaction, __pthread_sigwait,
1304 __pthread_raise): New prototypes.
1305 (struct pthread_functions): Add ptr_pthread_sigaction,
1306 ptr_pthread_sigwait, ptr_pthread_raise.
1307 * pthread.c (pthread_functions): Renamed to...
1308 (__pthread_functions): ... this. No longer static, no longer
1309 SHARED only. Initialize ptr_pthread_sigaction, ptr_pthread_sigwait
1310 and ptr_pthread_raise.
1311 [SHARED] (ptr_pthread_functions): Change to &__pthread_functions.
1312 * libc-cancellation.c (__pthread_thread_self): Remove weak_extern.
1313 * ptfork.c (__fork, __vfork): Protect with #ifdef SHARED.
1314 * ptlongjmp.c (siglongjmp, longjmp): Protect with #ifdef SHARED.
1316 * Makefile (tests, tests-static): Add tst-cancel-static.
1317 * tst-cancel-static.c: New test.
1319 2003-01-02 Jakub Jelinek <jakub@redhat.com>
1321 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
1323 2003-01-02 Ulrich Drepper <drepper@redhat.com>
1325 * sysdeps/pthread/bits/pthreadtypes.h (pthread_cond_t): Add padding.
1326 * condvar.c: Add symbol versioning. The compatibility versions
1327 are the same as the change in the interface does not effect this
1329 * Versions [libpthread]: Add definitions for new pthread_cond_*
1330 interfaces for version GLIBC_2.3.2.
1332 2002-12-31 Ulrich Drepper <drepper@redhat.com>
1334 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
1336 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
1337 for __register_atfork.
1339 2002-12-31 Jakub Jelinek <jakub@redhat.com>
1341 * sysdeps/i386/i686/pt-machine.h: Use __ASSEMBLER__ instead of
1342 ASSEMBLER test macro.
1343 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Likewise.
1344 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
1345 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Likewise.
1346 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
1347 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
1348 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
1350 * sysdeps/pthread/errno-loc.c (__errno_location): Add
1352 * sysdeps/pthread/herrno-loc.c (__h_errno_location): Likewise.
1353 * sysdeps/pthread/res-state.c (__res_state): Likewise.
1354 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
1355 __libc_current_sigrtmax): Likewise.
1356 * Versions [libc] (GLIBC_PRIVATE): Remove __libc_internal_tsd_get,
1357 __libc_internal_tsd_set, __libc_internal_tsd_address,
1358 __libc_alloca_cutoff.
1359 [libpthread] (GLIBC_PRIVATE): Remove __libc_internal_tsd_get,
1360 __libc_internal_tsd_set, __libc_internal_tsd_address.
1362 * sysdeps/pthread/list.h: Remove assert.h include.
1363 * sysdeps/unix/sysv/linux/fork.c: Include <fork.h>, not "fork.h".
1365 * sysdeps/pthread/list.h: New file.
1366 * sysdeps/unix/sysv/linux/jmp-unwind.c: New file.
1367 * sysdeps/unix/sysv/linux/fork.c: New file.
1368 * sysdeps/unix/sysv/linux/fork.h: New file.
1369 * sysdeps/unix/sysv/linux/ia64/fork.h: New file.
1370 * sysdeps/unix/sysv/linux/sparc/fork.h: New file.
1371 * sysdeps/unix/sysv/linux/register-atfork.c: New file.
1372 * sysdeps/unix/sysv/linux/unregister-atfork.c: New file.
1373 * sysdeps/unix/sysv/linux/Makefile: New file.
1374 * sysdeps/unix/sysv/linux/Versions: New file.
1375 * ptlongjmp.c (pthread_cleanup_upto): Rename to...
1376 (__pthread_cleanup_upto): ...this. Add targetframe argument,
1377 use it instead of currentframe. No longer static.
1378 (siglongjmp, longjmp): Remove pthread_cleanup_upto calls.
1379 * internals.h (__pthread_cleanup_upto, __pthread_fork): New prototypes.
1380 (struct pthread_functions): Add ptr_pthread_fork,
1381 ptr_pthread_cleanup_upto.
1382 * pthread.c (pthread_functions): Initialize ptr_pthread_fork and
1383 ptr_pthread_cleanup_upto.
1384 * ptfork.c: Include fork.h.
1385 (struct handler_list, struct handler_list_block): Remove.
1386 (pthread_atfork_lock, pthread_atfork_prepare, pthread_atfork_parent,
1387 pthread_atfork_child): Remove.
1388 (pthread_insert_list, __pthread_atfork, pthread_call_handlers): Remove.
1389 (__pthread_fork): New function.
1390 (__fork, __vfork): Call __libc_fork.
1391 * Makefile (libpthread-routines): Add old_pthread_atfork.
1392 (libpthread-nonshared): Add pthread_atfork.
1393 (others): Depend on $(objpfx)libpthread_nonshared.a.
1394 ($(objpfx)libpthread_nonshared.a): New rule.
1395 (install): Depend on $(inst_libdir)/libpthread.so.
1396 ($(inst_libdir)/libpthread.so, $(inst_libdir)/libpthread_nonshared.a):
1398 (tests): Depend on libpthread_nonshared.a too.
1399 * old_pthread_atfork.c: New file.
1400 * pthread_atfork.c: New file.
1401 * Makeconfig (shared-thread-library): Include libpthread_nonshared.a
1404 2002-12-30 Jakub Jelinek <jakub@redhat.com>
1406 * forward.c: Make all functions available by default again. It
1407 caused too much trouble.
1408 * internals.h (struct pthread_functions): Rename ptr_pthread_exit
1409 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
1410 ptr___pthread_attr_init_2_*.
1411 * pthread.c (pthread_functions): Adjust.
1413 2002-12-28 Jakub Jelinek <jakub@redhat.com>
1415 * libc_pthread_init.c (__libc_pthread_init): Remove
1416 MULTIPLE_THREADS_OFFSET check.
1417 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
1418 (SYSINFO_OFFSET): Remove.
1419 * sysdeps/i386/Makefile [csu] (gen-as-const-headers): Add
1421 * sysdeps/i386/tcb-offsets.sym: New file.
1422 * sysdeps/pthread/tcb-offsets.h: New file.
1423 * sysdeps/sparc/sparc32/tls.h: Removed.
1424 * sysdeps/sparc/sparc64/tls.h: Move...
1425 * sysdeps/sparc/tls.h: ...here. Include tcb-offsets.h in assembler.
1426 * sysdeps/sparc/Makefile: New file.
1427 * sysdeps/sparc/tcb-offsets.sym: New file.
1428 * sysdeps/ia64/tls.h: Include tcb-offsets.h in assembler.
1429 * sysdeps/ia64/Makefile: New file.
1430 * sysdeps/ia64/tcb-offsets.sym: New file.
1431 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
1432 (MULTIPLE_THREADS_OFFSET): Remove.
1433 Replace defined MULTIPLE_THREADS_OFFSET
1434 with defined FLOATING_STACKS && USE___THREAD.
1435 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
1436 (MULTIPLE_THREADS_OFFSET): Remove.
1437 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
1438 (MULTIPLE_THREADS_OFFSET): Remove.
1439 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
1440 (MULTIPLE_THREADS_OFFSET): Remove.
1441 * pthread.c (__pthread_initialize_manager): Remove
1442 MULTIPLE_THREADS_OFFSET cbeck.
1444 * tst-cancel-wrappers.sh: Add line continuations.
1446 2002-12-27 Jakub Jelinek <jakub@redhat.com>
1448 * sysdeps/pthread/bits/libc-tsd.h: Include linuxthreads/descr.h
1449 and bits/libc-lock.h.
1450 (__libc_internal_tsd_get, __libc_internal_tsd_set,
1451 __libc_internal_tsd_address): Remove.
1452 (__pthread_internal_tsd_address, __pthread_internal_tsd_get,
1453 __pthread_internal_tsd_set): New weak_externs.
1454 (__libc_tsd_address, __libc_tsd_get, __libc_tsd_set): Define
1455 using __libc_maybe_call2.
1456 (__libc_tsd_key_t): Move to ...
1457 * descr.h (__libc_tsd_key_t): ...here.
1458 Remove bits/libc-tsd.h include.
1459 * sysdeps/pthread/errno-loc.c: New file.
1460 * sysdeps/pthread/herrno-loc.c: New file.
1461 * sysdeps/pthread/res-state.c: New file.
1462 * libc-cancellation.c (THREAD_GETMEM, THREAD_SETMEM): Remove.
1463 (__libc_enable_asynccancel, __libc_disable_asynccancel): Use
1464 thread_self unconditionally. Use LIBC_THREAD_[SG]ETMEM instead
1465 of THREAD_[SG]ETMEM.
1466 * specific.c (libc_internal_tsd_set): Renamed to...
1467 __pthread_internal_tsd_set. Remove static.
1468 (libc_internal_tsd_get): Renamed to...
1469 __pthread_internal_tsd_get. Remove static.
1470 (libc_internal_tsd_address): Renamed to...
1471 __pthread_internal_tsd_address. Remove static.
1472 (__libc_internal_tsd_set, __libc_internal_tsd_get,
1473 __libc_internal_tsd_address, __libc_alloca_cutoff): Remove.
1474 * internals.h [!NOT_IN_libc] (LIBC_THREAD_GETMEM, LIBC_THREAD_SETMEM):
1476 (__pthread_internal_tsd_set, __pthread_internal_tsd_get,
1477 __pthread_internal_tsd_address): New prototypes.
1478 (struct pthread_functions): Add
1479 ptr_pthread_internal_tsd_([sg]et|address) fields.
1480 [!NOT_IN_libc && !FLOATING_STACKS] (thread_self): Define.
1481 * pthread.c (pthread_functions) [!USE_TLS && !HAVE___THREAD]:
1482 Initialize ptr_pthread_internal_tsd_([sg]et|address) fields.
1483 * Versions (libpthread): Remove __libc_alloca_cutoff@GLIBC_PRIVATE.
1484 * alloca_cutoff.c: New file.
1485 * no-tsd.c: Removed.
1486 * Makefile (routines): Remove no-tsd. Add alloca_cutoff.
1487 * pt-system.c (system): Remove cancellation handling.
1488 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
1489 cancellation routines.
1491 * sysdeps/i386/tls.h: Include dl-sysdep.h and stdint.h.
1492 (tcbhead_t): Add sysinfo field.
1493 (SYSINFO_OFFSET, INIT_SYSINFO): Define.
1494 (TLS_INIT_TP): Use INIT_SYSINFO.
1495 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
1496 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
1497 (MULTIPLE_THREADS_OFFSET): Adjust.
1498 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
1499 (MULTIPLE_THREADS_OFFSET): Likewise.
1500 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
1501 (MULTIPLE_THREADS_OFFSET): Likewise.
1502 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
1503 (MULTIPLE_THREADS_OFFSET): Likewise.
1504 * descr.h: Include stdint.h.
1505 (struct _pthread_descr_struct): Add p_header.data.sysinfo field.
1507 2002-12-22 Jakub Jelinek <jakub@redhat.com>
1509 * libc_pthread_init.c: Include stdlib.h.
1510 * sysdeps/i386/tls.h (tcbhead_t): Add multiple_threads member.
1511 (TLS_INIT_TP_EXPENSIVE): Define.
1512 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call,
1513 __libc_maybe_call2): In _LIBC check SHARED define.
1514 * sysdeps/ia64/tls.h: New file.
1515 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
1516 * sysdeps/unix/sysv/linux/ia64/Makefile: New file.
1517 * sysdeps/x86_64/tls.h (TLS_INIT_TP_EXPENSIVE): Define.
1518 * sysdeps/sparc/sparc32/tls.h: New file.
1519 * sysdeps/sparc/sparc64/tls.h: New file.
1520 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
1521 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
1522 * Makefile (tests): Add tst-cancel[1-6].
1523 (tests-reverse): Add tst-cancel5.
1524 Link libc.so before libpthread.so for tests-reverse.
1525 * tst-cancel1.c: New file.
1526 * tst-cancel2.c: New file.
1527 * tst-cancel3.c: New file.
1528 * tst-cancel4.c: New file.
1529 * tst-cancel5.c: New file.
1530 * tst-cancel6.c: New file.
1532 2002-12-27 Andreas Schwab <schwab@suse.de>
1534 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: New file.
1536 2002-12-22 Roland McGrath <roland@redhat.com>
1538 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
1540 2002-12-21 Ulrich Drepper <drepper@redhat.com>
1542 * pthread.c (init_rtsigs): Remove incomplete __builtin_expect.
1543 Reported by Art Hass <ahaas@airmail.net>.
1545 2002-12-19 Jakub Jelinek <jakub@redhat.com>
1547 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
1548 Use return 0 as 6th argument to FORWARD4.
1550 2002-12-18 Jakub Jelinek <jakub@redhat.com>
1552 * sysdeps/i386/useldt.h (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Only
1553 define if __ASSUME_LDT_WORKS > 0.
1554 * libc-cancellation.c (THREAD_GETMEM, THREAD_SETMEM): Redefine to
1555 struct member access if !FLOATING_STACKS.
1556 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
1558 2002-12-18 Jakub Jelinek <jakub@redhat.com>
1560 * internals.h (__pthread_thread_self): New prototype.
1561 (struct pthread_functions): Add ptr_pthread_thread_self field.
1562 * pthread.c (pthread_functions): Initialize ptr_pthread_thread_self.
1563 (__pthread_thread_self): New function.
1564 * libc-cancellation.c (__pthread_thread_self): Add weak_extern.
1565 (__libc_enable_asynccancel, __libc_disable_asynccancel): Don't
1566 use thread_self() directly if not FLOATING_STACKS.
1568 2002-12-18 Jakub Jelinek <jakub@redhat.com>
1570 * sysdeps/x86_64/pt-machine.h: Guard most of the header
1571 with #ifndef __ASSEMBLER__.
1572 * pthread.c (pthread_functions): Use SHLIB_COMPAT around
1573 pthread_attr_init_2_0 use.
1575 2002-12-17 Jakub Jelinek <jakub@redhat.com>
1577 * wrapsyscall.c: Removed.
1579 * Makefile (distribute): Add tst-cancel-wrappers.sh.
1580 (routines): Remove weaks. Add forward,
1581 libc_pthread_init, libc-cancellation.
1582 (shared-only-routines): Remove weaks. Add forward.
1583 (libpthread-routines): Remove wrapsyscall.
1584 Add ptw-write, ptw-read, ptw-close, ptw-fcntl, ptw-accept,
1585 ptw-connect, ptw-recv, ptw-recvfrom, ptw-recvmsg, ptw-send,
1586 ptw-sendmsg, ptw-sendto, ptw-fsync, ptw-lseek, ptw-lseek64,
1587 ptw-llseek, ptw-msync, ptw-nanosleep, ptw-open, ptw-open64,
1588 ptw-pause, ptw-pread, ptw-pread64, ptw-pwrite, ptw-pwrite64,
1589 ptw-tcdrain, ptw-wait, ptw-waitpid, pt-system, pt-allocrtsig.
1590 (libpthread-shared-only-routines): Add pt-allocrtsig.
1591 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
1592 ($(objpfx)tst-cancel-wrappers.out): New rule.
1593 * sysdeps/pthread/bits/libc-lock.h: Include linuxthreads/internals.h
1595 (__libc_maybe_call): In libpthread.* don't check for existance
1597 (__libc_maybe_call2): Define.
1598 (__libc_lock_init, __libc_lock_fini, __libc_lock_lock,
1599 __libc_lock_trylock, __libc_lock_unlock): Use it.
1600 * sysdeps/pthread/flockfile.c: New file.
1601 * sysdeps/pthread/ftrylockfile.c: New file.
1602 * sysdeps/pthread/funlockfile.c: New file.
1603 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
1604 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
1605 * sysdeps/unix/sysv/linux/allocrtsig.c: New file.
1606 * libc-cancellation.c: New file.
1607 * forward.c: New file.
1608 * libc_pthread_init.c: New file.
1609 * pt-system.c: New file.
1610 * pthread.c: Remove locale.h.
1611 (__pthread_manager_thread): Initialize multiple_threads.
1612 (__pthread_multiple_threads): Declare.
1613 (pthread_functions): New variable.
1614 (__pthread_initialize_minimal): Remove __uselocale call.
1615 Call __libc_pthread_init.
1616 (__pthread_initialize_manager): Initialize __pthread_multiple_threads,
1617 initial thread's multiple_threads and __libc_multiple_threads.
1618 Check MULTIPLE_THREADS_OFFSET value. Initialize manager thread's
1620 (pthread_setschedparam, pthread_getschedparam): Rename to __
1621 prefixed variants. Add strong_alias.
1622 (current_rtmin, current_rtmax, __libc_current_sigrtmin,
1623 __libc_current_sigrtmax, __libc_allocate_rtsig): Remove.
1624 (init_rtsigs): Use __libc_current_sigrtmin_private.
1625 (pthread_initialize): Only call init_rtsigs if
1626 !__ASSUME_REALTIME_SIGNALS.
1627 (__pthread_require_wrappers, __pthread_require_lockfile): Remove.
1628 * internals.h (__pthread_attr_destroy, __pthread_attr_setdetachstate,
1629 __pthread_attr_getdetachstate, __pthread_attr_setschedparam,
1630 __pthread_attr_getschedparam, __pthread_attr_setschedpolicy,
1631 __pthread_attr_getschedpolicy, __pthread_attr_setinheritsched,
1632 __pthread_attr_getinheritsched, __pthread_attr_setscope,
1633 __pthread_attr_getscope, __pthread_cond_init,
1634 __pthread_cond_destroy, __pthread_cond_wait,
1635 __pthread_cond_signal, __pthread_cond_broadcast,
1636 __pthread_condattr_init, __pthread_condattr_destroy,
1637 __pthread_equal, __pthread_getschedparam,
1638 __pthread_setschedparam, __pthread_setcancelstate,
1639 __pthread_setcanceltype, __pthread_enable_asynccancel,
1640 __libc_enable_asynccancel, __libc_pthread_init): New prototype.
1641 (__pthread_mutex_init, __pthread_mutex_destroy,
1642 __pthread_mutex_lock, __pthread_mutex_unlock,
1643 __pthread_mutex_trylock): Likewise.
1645 (struct pthread_functions): New type.
1646 (__libc_pthread_functions): New variable.
1647 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define.
1648 * descr.h (struct _pthread_descr_struct): Add
1649 p_header.data.multiple_threads field.
1650 * manager.c (pthread_handle_create): Initialize multiple_threads.
1651 * cancel.c (__pthread_enable_asynccancel,
1652 __pthread_disable_asynccancel): New functions.
1653 (__pthread_provide_wrappers): Remove.
1654 (pthread_setcancelstate, pthread_setcanceltype): Rename to __
1655 prefixed variants. Add strong_alias.
1656 * condvar.c (pthread_cond_init, pthread_cond_destroy,
1657 pthread_cond_wait, pthread_cond_signal, pthread_cond_broadcast,
1658 pthread_condattr_init, pthread_condattr_destroy): Likewise.
1659 * join.c (pthread_exit): Likewise.
1660 * attr.c (pthread_attr_destroy, pthread_attr_setdetachstate,
1661 pthread_attr_getdetachstate, pthread_attr_setschedparam,
1662 pthread_attr_getschedparam, pthread_attr_setschedpolicy,
1663 pthread_attr_getschedpolicy, pthread_attr_setinheritsched,
1664 pthread_attr_getinheritsched, pthread_attr_setscope,
1665 pthread_attr_getscope): Likewise.
1666 * mutex.c (__pthread_mutex_init, __pthread_mutex_destroy,
1667 __pthread_mutex_lock, __pthread_mutex_unlock,
1668 __pthread_mutex_trylock): Add hidden_def.
1669 * Versions (libc): Add __libc_pthread_init,
1670 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
1671 __libc_allocate_rtsig_private @@GLIBC_PRIVATE.
1672 * lockfile.c: Remove some USE_IN_LIBIO guards.
1673 (__pthread_provide_lockfile): Remove.
1674 * pt-allocrtsig.c: New file.
1675 * tst-cancel-wrappers.sh: New test.
1677 2002-12-15 Ulrich Drepper <drepper@redhat.com>
1679 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
1680 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
1681 * wrapsyscall.c: Remove creat, poll, pselect, readv, select,
1682 sigpause, sigsuspend, sigwaitinfo, waitid, and writev wrappers.
1684 2002-12-10 Ulrich Drepper <drepper@redhat.com>
1686 * wrapsyscall.c (CANCELABLE_SYSCALL): Don't define function as
1687 weak. There is no reason for that.
1688 (CANCELABLE_SYSCALL_VA): Likewise.
1690 2002-12-09 Ulrich Drepper <drepper@redhat.com>
1692 * wrapsyscall.c: Add wrappers for creat, poll, pselect, readv, select,
1693 sigpause, __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev.
1694 * Versions: Export creat, poll, pselect, readv, select, sigpause,
1695 __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev from
1696 libpthread in version GLIBC_2.3.2.
1698 2002-12-06 Ulrich Drepper <drepper@redhat.com>
1700 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
1702 2002-12-05 Roland McGrath <roland@redhat.com>
1704 * pthread.c (__pthread_initialize_minimal)
1705 [USE_TLS && SHARED && !USE___THREAD]: Initialize TLS and set up the
1706 TCB if the dynamic linker didn't do it at startup.
1708 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
1710 (TLS_DO_SET_THREAD_AREA, TLS_DO_MODIFY_LDT, TLS_SETUP_GS_SEGMENT):
1712 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
1713 * sysdeps/alpha/tls.h (TLS_INIT_TP): Likewise (always zero).
1715 2002-12-03 Roland McGrath <roland@redhat.com>
1717 * pthread.c (pthread_initialize) [SHARED]: Copy dl_error_tsd value
1718 from dynamic linker internal cell to new libc cell.
1720 2002-11-28 Roland McGrath <roland@redhat.com>
1722 * tst-context.c: #define IS_IN_libpthread around #include <tls.h>
1723 before other headers, so FLOATING_STACKS is not defined wrongly.
1725 * sysdeps/i386/tls.h [!IS_IN_libpthread]: Enable TLS support
1726 even if [! FLOATING_STACKS].
1727 (TLS_DO_MODIFY_LDT_KERNEL_CHECK): New macro.
1728 If not under [__ASSUME_LDT_WORKS > 0], then do a runtime check of
1729 dl_osversion >= 2.3.99 and fatal if not.
1730 (TLS_DO_MODIFY_LDT): Use it.
1732 2002-11-28 Ulrich Drepper <drepper@redhat.com>
1734 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
1735 require it to 200112L. Remove _POSIX_POLL and _POSIX_SELECT.
1736 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1738 2002-11-19 Ulrich Drepper <drepper@redhat.com>
1740 * Versions (libc: GLIBC_2.0): Remove names of functions which are
1741 not defined in libc.
1742 * Makefile (shared-only-routines): Add weaks.
1743 * weaks.c: Remove functions which are not exported from libc.so.
1745 2002-11-14 Roland McGrath <roland@redhat.com>
1747 * libc-tsd.c: New file.
1748 * Makefile (distribute): Add it.
1749 (libc-link.so): New variable.
1750 ($(objpfx)libpthread.so): Depend on that instead of libc.so file name.
1751 (libc-ok-for-link): New variable.
1752 [$(versioning) = yes]: Include $(common-objpfx)tls.make and define
1753 libc-ok-for-link to $(use-thread).
1754 [$(libc-ok-for-link) = no]
1755 (libc-link.so): Set to $(objpfx)libc.so, not $(common-objpfx)libc.so.
1756 ($(objpfx)libc_pic_lite.a,$(objpfx)libc_pic_lite.os, $(objpfx)libc.so):
1758 (generated): Append them.
1759 (extra-objs): Append libc-tsd.os.
1761 * libc-tls-loc.c: New file.
1762 * Makefile (libpthread-routines): Add it.
1764 2002-11-14 Andreas Schwab <schwab@suse.de>
1766 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Fix unterminated
1769 2002-11-13 Roland McGrath <roland@redhat.com>
1771 * Examples/ex6.c (main): Improve error reporting.
1773 2002-11-04 Ulrich Drepper <drepper@redhat.com>
1775 * sysdeps/i386/Makefile: Compile pthread.c and sighandler.c with
1776 -fno-omit-frame-pointer. Patch by Andreas Steinmetz <ast@domdv.de>.
1778 * sysdeps/i386/useldt.h [PIC] (USETLS_LOAD_EBX): Use correct input
1780 (DO_SET_THREAD_AREA): Mark asm output specifiers correctly.
1782 2002-10-22 Jakub Jelinek <jakub@redhat.com>
1784 * manager.c (pthread_start_thread): Call __uselocale even
1785 if [! SHARED]. Patch by Leon Kanter <leon@geon.donetsk.ua>.
1787 2002-10-17 Roland McGrath <roland@redhat.com>
1789 * Makefile (unload): Don't link in libpthread.so.
1790 ($(objpfx)unload.out): Do depend on it.
1791 * unload.c (main): Improve error reporting.
1793 2002-10-09 Roland McGrath <roland@redhat.com>
1795 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
1796 Under [__PIC__], call the function via the pointer fetched for
1797 comparison rather than a call by name that uses the PLT.
1798 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
1799 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
1800 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
1801 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
1802 (__libc_key_create, __libc_getspecific, __libc_setspecific)
1803 (__libc_atfork): Use it.
1805 * pthread.c [SHARED] (__libc_dl_error_tsd): New function.
1806 (pthread_initialize) [SHARED]: Set _dl_error_catch_tsd to that.
1807 * Versions (libc: GLIBC_PRIVATE): Add __libc_dl_error_tsd.
1808 (ld: GLIBC_PRIVATE): Set removed.
1810 2002-10-11 Ulrich Drepper <drepper@redhat.com>
1812 * sysdeps/unix/sysv/linux/execve.c: New file.
1814 2002-10-09 Jakub Jelinek <jakub@redhat.com>
1816 * no-tsd.c: Include stdlib.h.
1818 2002-10-07 Jakub Jelinek <jakub@redhat.com>
1820 * sysdeps/unix/sysv/linux/allocalim.h: New file.
1821 * descr.h (struct _pthread_descr_struct): Add p_alloca_cutoff
1823 * manager.c (__pthread_allocate_stack): Add out_stacksize argument.
1824 Pass stack size to caller.
1825 (pthread_handle_create): Set p_alloca_cutoff.
1826 * pthread.c (__pthread_initial_thread): Use C99 designated
1827 initializers. Set p_alloca_cutoff.
1828 (__pthread_manager_thread): Likewise.
1829 (__pthread_initialize_minimal) [USE_TLS]: Set p_alloca_cutoff
1831 (__pthread_init_max_stacksize): Possibly decrease p_alloca_cutoff
1833 (__pthread_initialize_manager) [USE_TLS]: Set p_alloca_cutoff
1835 * specific.c (__libc_alloca_cutoff): New function.
1836 * no-tsd.c (__libc_alloca_cutoff): New function.
1837 * Versions: Export __libc_alloca_cutoff@@GLIBC_PRIVATE from libc
1840 2002-10-02 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1842 * sysdeps/sh/pt-machine.h: Make C code ifndef'ed with __ASSEMBLER__.
1843 * sysdeps/sh/tls.h: Likewise.
1844 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
1846 2002-09-29 Jakub Jelinek <jakub@redhat.com>
1848 * sysdeps/pthread/tst-timer.c (main): Clear
1849 SIGEV2.sigev_notify_attributes.
1851 2002-09-29 Ulrich Drepper <drepper@redhat.com>
1853 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Don't use
1854 INLINE_SYSCALL for set_thread_area syscall.
1856 2002-09-28 Roland McGrath <roland@redhat.com>
1858 * pthread.c (__pthread_reset_main_thread) [FLOATING_STACKS]:
1859 Don't call setrlimit, since we did no prior bogon we need to undo.
1861 2002-09-27 Roland McGrath <roland@redhat.com>
1863 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Don't include <pt-machine.h>.
1865 2002-09-24 Roland McGrath <roland@redhat.com>
1867 * sysdeps/x86_64/tls.h: New file.
1869 2002-09-23 Roland McGrath <roland@redhat.com>
1871 * Examples/ex13.c (dump_mut): int -> size_t for counter.
1873 2002-09-18 Bruno Haible <bruno@clisp.org>
1875 * Examples/ex10.c (thread): Fail if pthread_mutex_timedlock() returns
1876 an unexpected error code.
1878 * internals.h (__pthread_message): Add const to first parameter type.
1879 * pthread.c (__pthread_message): Likewise.
1881 * sysdeps/unix/sysv/linux/configure: Moved to ../sysdeps/pthread.
1883 2002-09-17 Roland McGrath <roland@redhat.com>
1885 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT, TLS_DO_SET_THREAD_AREA):
1886 Set the descriptor limit to the full 4GB, so %gs:OFFSET works for any
1887 offset (positive or negative) relative to the thread struct.
1888 * sysdeps/i386/useldt.h (DO_MODIFY_LDT, DO_SET_THREAD_AREA): Likewise.
1890 2002-09-12 Jakub Jelinek <jakub@redhat.com>
1892 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Move...
1893 * sysdeps/unix/sysv/linux/sparc/Makefile: ...here.
1894 Replace /usr/lib/crt[in].o with crt[in].o too.
1896 2002-09-11 Steven Munroe <sjmunroe@us.ibm.com>
1898 * sysdeps/powerpc/powerpc64/pt-machine.h: New file.
1900 2002-09-04 Bruno Haible <bruno@clisp.org>
1902 * pthread.c: Include <sys/time.h>.
1903 (is_smp_system): Move to sysdeps/unix/sysv/linux/smp.h.
1904 * sysdeps/unix/sysv/linux/smp.h: New file, extracted from pthread.c.
1905 * Makefile (distribute): Add smp.h to the list.
1907 2002-09-04 Bruno Haible <bruno@clisp.org>
1909 * sysdeps/alpha/pt-machine.h: Choose different include file location
1910 on non-Linux platforms.
1912 * wrapsyscall.c (PROMOTE_INTEGRAL_TYPE): New macro.
1913 (open, open64): Change va_arg argument type to the integral type to
1914 which mode_t promotes.
1916 * sysdeps/pthread/tst-timer.c (main): Don't assume anything about
1917 the structure of 'struct sigevent'.
1919 * errno.c (__errno_location, __h_errno_location, __res_state):
1920 Use prototype function definitions.
1922 2002-07-29 Steven Munroe <sjmunroe@us.ibm.com>
1924 * shlib-versions: Set libpthread version to 2.3 for powerpc64.
1925 * sysdeps/powerpc/pt-machine.h: moved to...
1926 * sysdeps/powerpc/powerpc32/pt-machine.h: ...here
1927 * sysdeps/powerpc/powerpc64/pt-machine.h: New file.
1929 2002-09-02 Roland McGrath <roland@redhat.com>
1931 * sysdeps/powerpc/Makefile (CFLAGS-pt-initfini.s): New variable.
1933 2002-09-01 Roland McGrath <roland@redhat.com>
1935 * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t): Add new keys
1936 CTYPE_B, CTYPE_TOLOWER, CTYPE_TOUPPER.
1938 * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_address): New macro.
1939 (__libc_internal_tsd_address): Declare it.
1940 * Versions (libc, ld, libpthread: GLIBC_PRIVATE): Add
1941 __libc_internal_tsd_address.
1942 * specific.c (libc_internal_tsd_address): New function.
1943 (__libc_internal_tsd_address): New variable.
1944 * no-tsd.c (__libc_internal_tsd_address): New variable.
1946 2002-08-31 Ulrich Drepper <drepper@redhat.com>
1948 * Makefile: Don't use rule for crt%.o, spell it out as rules for
1951 2002-08-30 Roland McGrath <roland@redhat.com>
1953 * Makefile (extra-objs, omit-deps): Add crtn.
1954 ($(objpfx)libpthread.so): Depend on $(objpfx)crtn.o.
1955 ($(objpfx)libpthread.so: +postinit): Append $(objpfx)crtn.o.
1956 ($(objpfx)crtn.S): New target.
1957 ($(objpfx)crt%.o): Pattern rule replaces crti.o target.
1958 (generated): Add crtn.S.
1960 * sysdeps/unix/sysv/linux/x86_64/Makefile ($(objpfx)specs): Massage
1961 crtn.o pathname too.
1963 2002-08-30 Jakub Jelinek <jakub@redhat.com>
1965 * pthread.c (__pthread_initialize_minimal): Call __uselocale even
1968 2002-08-30 Roland McGrath <roland@redhat.com>
1970 * tst-static-locale.c: New file.
1971 * Makefile (tests, tests-static): Add it.
1973 2002-04-24 Steven Munroe <sjmunroe@us.ibm.com>
1975 * spinlock.c (__pthread_lock): Fix spurious wakeup
1976 handling. Don't clear lowest bit of list pointer as sign the thread
1977 is still on the wait list. Don't restart after spurious wakeup
1978 with spinning to get the lock.
1979 (__pthread_unlock): Take set lowest bit into account when handling
1980 pointer to list elements.
1981 Patch by Steve Munroe <sjmunroe@us.ibm.com>.
1983 2002-08-28 Roland McGrath <roland@redhat.com>
1985 * sysdeps/pthread/timer_routines.c (thread_func): Fix type in cast.
1987 2002-08-28 Jakub Jelinek <jakub@redhat.com>
1989 * sysdeps/unix/sysv/linux/hppa/aio_cancel.c: New file.
1990 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
1991 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
1993 2002-08-28 Ulrich Drepper <drepper@redhat.com>
1995 * sysdeps/pthread/timer_routines.c (thread_func): Change return
1996 type to void and add casts in use to avoid warnings with all gcc
1999 2002-08-08 Jakub Jelinek <jakub@redhat.com>
2001 * sysdeps/unix/sysv/linux/bits/local_lim.h (PTHREAD_THREADS_MAX):
2003 * manager.c (__pthread_handles): Remove.
2004 * pthandles.c: New file.
2005 * pthread.c (__pthread_initialize_minimal): Initialize
2006 __pthread_handles[0] and __pthread_handles[1].
2007 * Makefile (libpthread-routines): Add pthandles (must be last).
2009 2002-08-26 Brian Youmans <3diff@gnu.org>
2011 * Examples/ex10.c: Corrected version number in Lesser GPL copying
2012 permission notice from 2 to 2.1.
2013 * Examples/ex11.c: Likewise.
2014 * Examples/ex13.c: Likewise.
2015 * Examples/ex8.c: Likewise.
2016 * Examples/ex9.c: Likewise.
2017 * barrier.c: Likewise.
2018 * events.c: Likewise.
2019 * lockfile.c: Likewise.
2020 * no-tsd.c: Likewise.
2021 * pt-machine.c: Likewise.
2022 * ptclock_gettime.c: Likewise.
2023 * ptclock_settime.c: Likewise.
2024 * rwlock.c: Likewise.
2025 * sysdeps/alpha/pspinlock.c: Likewise.
2026 * sysdeps/alpha/pt-machine.h: Likewise.
2027 * sysdeps/arm/pspinlock.c: Likewise.
2028 * sysdeps/arm/pt-machine.h: Likewise.
2029 * sysdeps/cris/pspinlock.c: Likewise.
2030 * sysdeps/cris/pt-machine.h: Likewise.
2031 * sysdeps/hppa/pspinlock.c: Likewise.
2032 * sysdeps/hppa/pt-machine.h: Likewise.
2033 * sysdeps/i386/i686/pt-machine.h: Likewise.
2034 * sysdeps/i386/pspinlock.c: Likewise.
2035 * sysdeps/i386/pt-machine.h: Likewise.
2036 * sysdeps/i386/useldt.h: Likewise.
2037 * sysdeps/ia64/pspinlock.c: Likewise.
2038 * sysdeps/ia64/pt-machine.h: Likewise.
2039 * sysdeps/m68k/pspinlock.c: Likewise.
2040 * sysdeps/m68k/pt-machine.h: Likewise.
2041 * sysdeps/mips/pspinlock.c: Likewise.
2042 * sysdeps/mips/pt-machine.h: Likewise.
2043 * sysdeps/powerpc/pspinlock.c: Likewise.
2044 * sysdeps/powerpc/pt-machine.h: Likewise.
2045 * sysdeps/pthread/bits/initspin.h: Likewise.
2046 * sysdeps/pthread/bits/libc-lock.h: Likewise.
2047 * sysdeps/pthread/bits/libc-tsd.h: Likewise.
2048 * sysdeps/pthread/getcpuclockid.c: Likewise.
2049 * sysdeps/pthread/posix-timer.h: Likewise.
2050 * sysdeps/pthread/timer_create.c: Likewise.
2051 * sysdeps/pthread/timer_delete.c: Likewise.
2052 * sysdeps/pthread/timer_getoverr.c: Likewise.
2053 * sysdeps/pthread/timer_gettime.c: Likewise.
2054 * sysdeps/pthread/timer_routines.c: Likewise.
2055 * sysdeps/pthread/timer_settime.c: Likewise.
2056 * sysdeps/pthread/tst-timer.c: Likewise.
2057 * sysdeps/s390/pspinlock.c: Likewise.
2058 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
2059 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
2060 * sysdeps/sh/pspinlock.c: Likewise.
2061 * sysdeps/sh/pt-machine.h: Likewise.
2062 * sysdeps/sparc/sparc32/pspinlock.c: Likewise.
2063 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
2064 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
2065 * sysdeps/sparc/sparc64/pspinlock.c: Likewise.
2066 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
2067 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
2068 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
2069 * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
2070 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
2071 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2072 * tststack.c: Likewise.
2073 * unload.c: Likewise.
2074 * weaks.c: Likewise.
2075 * wrapsyscall.c: Likewise.
2077 * sysdeps/pthread/pt-initfini.c: Changed copying
2078 permission notice to Lesser GPL from Library GPL, including the
2079 references in the special exception.
2080 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: Likewise.
2081 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Likewise.
2082 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c:
2084 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c:
2086 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Likewise.
2088 2002-08-26 Ulrich Drepper <drepper@redhat.com>
2090 * Examples/ex10.c (thread): tv_nsec == 1000000000 is already
2091 overflow [PR libc/4244].
2093 2002-08-25 Ulrich Drepper <drepper@redhat.com>
2095 * sysdeps/pthread/timer_routines.c (thread_func): Make the
2096 compiler happy by adding a return statement which will never be
2099 * tst-context.c (main): Cast to long before casting to pointer.
2101 * Examples/ex17.c (main): Use correct format string.
2103 * Examples/ex9.c (thread): Remove incorrect return statement.
2105 2002-08-23 Ulrich Drepper <drepper@redhat.com>
2107 * pthread.c (__linuxthreads_version): New global constant.
2109 2002-08-23 Andreas Jaeger <aj@suse.de>
2111 * sysdeps/x86_64/pt-machine.h: Use %fs instead of %gs
2112 as thread specific register.
2113 (testandset): Fix inline asm.
2114 (THREAD_GETMEM): Fix inline asm.
2116 2002-08-22 Roland McGrath <roland@redhat.com>
2118 * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Remove [HAVE_TLS_SUPPORT]
2120 (INIT_THREAD_SELF): Pass second arg to DO_SET_THREAD_AREA.
2121 (DO_SET_THREAD_AREA): Take second arg, pass to DO_SET_THREAD_AREA_REUSE
2122 macro. That chooses whether to reuse %gs value or let kernel set it.
2123 [USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, always 1.
2124 [!USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, true if arg is
2127 2002-08-21 Ulrich Drepper <drepper@redhat.com>
2129 * sysdeps/i386/tls.h (TLS_SETUP_GS_SEGMENT): Add new parameter
2130 also to the third definition of this macro.
2132 2002-06-17 Andreas Jaeger <aj@suse.de>
2134 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
2137 2002-08-20 Ulrich Drepper <drepper@redhat.com>
2139 * sysdeps/i386/useldt.h: Go back to using 16-bit instructions when
2140 loading/reading segment registers. Some old hardware doesn't
2141 handle the 32-bit instructions as expected.
2142 * sysdeps/i386/tls.h: Likewise.
2144 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Second parameter is
2145 renamed to secondcall and use is negated.
2146 (TLS_SETUP_GS_SEGMENT): Likewise.
2147 (TLS_INIT_TP): Likewise.
2148 * sysdeps/sh/tls.h (TLS_INIT_TP): Second parameter is renamed to
2151 * sysdeps/i386/tls.h: Use 32-bit operations when handling segment
2152 registers. No need to mask upper 16 bits in this case.
2153 * sysdeps/i386/useldt.h: Likewise.
2154 (DO_SET_THREAD_AREA): We have to load %gs again even if the value
2155 is the same since the GDT content changed.
2157 * sysdeps/i386/tls.h (TLS_INIT_TP): Add new parameter and pass it on
2158 to TLS_SETUP_GS_SEGMENT.
2159 (TLS_SETUP_GS_SEGMENT): Add new parameter and pass it on to
2160 TLS_DO_SET_THREAD_AREA.
2161 (TLS_DO_SET_THREAD_AREA): If new parameter is zero determine
2162 entry number from %gs value.
2163 * sysdeps/sh/tls.h (TLS_INIT_TP): Add new parameter and simply
2166 * manager.c (pthread_handle_create): Pass NULL to _dl_allocate_tls.
2167 Pass true to _dl_deallocate_tls.
2168 (pthread_free): Likewise.
2169 * pthread.c (__pthread_initialize_manager): Likewise.
2171 2002-08-19 Ulrich Drepper <drepper@redhat.com>
2173 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Use correct shift when
2174 computing index from %gs value.
2176 2002-08-16 Roland McGrath <roland@redhat.com>
2178 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Calculate segment
2179 register value from entry number properly.
2181 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Rewrite asm to use %ebx
2182 optimally conditional on [__PIC__].
2183 (TLS_DO_SET_THREAD_AREA): New macro, implement inline syscall
2184 without touching errno, and use latest modify_ldt-like interface.
2185 (TLS_SETUP_GS_SEGMENT): Use that instead of INLINE_SYSCALL.
2186 * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Set %gs in this macro.
2187 (DO_SET_THREAD_AREA): New macro, uses current syscall interface with
2188 existing %gs value as the segment to set.
2189 (INIT_THREAD_SELF): Rewritten using those. Use set_thread_area only
2190 under [HAVE_TLS_SUPPORT] so we can rely on the initialization done
2191 by the first thread's early TLS setup.
2193 2002-08-15 Roland McGrath <roland@redhat.com>
2195 * sysdeps/i386/tls.h (TLS_INIT_TP): Use statement expression and
2196 return a value as callers now expect.
2198 2002-08-11 Roland McGrath <roland@redhat.com>
2200 * pthread.c (__pthread_initialize_manager): Initialize
2201 p_header.data.tcb field of manager thread's descriptor.
2202 (__pthread_initialize_minimal): Don't initialize p_header.data.self
2203 field, already done by TLS_INIT_TP.
2205 * manager.c (pthread_handle_create): Move p_header field initializers
2208 2002-08-08 Ulrich Drepper <drepper@redhat.com>
2210 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Removed.
2212 2002-08-07 Ulrich Drepper <drepper@redhat.com>
2214 * pthread.c (__linuxthreads_initial_report_events): New variable.
2215 (__pthread_initialize_manager): Use it to initialize p_report_events
2217 [TLS]: Store pointer to descriptor of manager in __pthread_handles.
2219 2002-08-07 Roland McGrath <roland@redhat.com>
2221 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Add an extra argument with
2222 an "m" constraint to the asm so the compiler knows LDT_ENTRY was used.
2224 2002-08-02 Roland McGrath <roland@redhat.com>
2226 * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t):
2227 Add _LIBC_TSD_KEY_LOCALE.
2228 * manager.c (pthread_start_thread) [!(USE_TLS && HAVE___THREAD)]:
2229 Call __uselocale to initialize our per-thread locale pointer to
2231 * pthread.c (__pthread_initialize_minimal): Likewise.
2233 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Add missing \s.
2235 2002-08-02 Ulrich Drepper <drepper@redhat.com>
2237 * pthread.c: Declare _errno, _h_errno, and _res unless we use TLS
2240 * cancel.c (__pthread_perform_cleanup) [USE_TLS && HAVE___THREAD]:
2241 Don't use p_libc_specific element in thread descriptor.
2243 2002-07-30 Roland McGrath <roland@redhat.com>
2245 * sysdeps/pthread/bits/libc-tsd.h: Include <tls.h>.
2246 [USE_TLS && HAVE___THREAD]: Just include the sysdeps/generic file,
2247 which does the right thing when __thread support is available.
2248 * descr.h (struct _pthread_descr_struct) [USE_TLS && HAVE___THREAD]:
2249 Omit `p_libc_specific', `p_errnop', `p_errno', `p_h_errnop',
2250 `p_h_errno', `p_resp', and `p_res' members.
2251 * pthread.c (__pthread_initialize_minimal) [USE_TLS && HAVE___THREAD]:
2252 Don't initialize `p_errnop' and `p_h_errnop' members.
2253 (__pthread_reset_main_thread): Likewise.
2254 (__pthread_initialize_manager): Likewise.
2255 * manager.c (__pthread_manager, pthread_handle_create): Likewise.
2256 * pthread.c (pthread_initialize) [USE_TLS && HAVE___THREAD]:
2257 Don't initialize `p_resp' member.
2258 (__pthread_reset_main_thread): Likewise.
2259 * manager.c (pthread_handle_create): Likewise.
2260 * specific.c (libc_internal_tsd_set, libc_internal_tsd_get):
2261 Conditionalize these on [!(USE_TLS && HAVE___THREAD)].
2262 * no-tsd.c: Conditionalize contents on [!(USE_TLS && HAVE___THREAD)].
2263 * errno.c [USE_TLS && HAVE___THREAD]
2264 (__h_errno_location, __res_state): Don't define these at all.
2266 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens around arguments!
2267 (INSTALL_NEW_DTV, GET_DTV): Likewise.
2268 * sysdeps/sh/tls.h (INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV): Likewise.
2270 * weaks.c: Don't include <errno.h> here.
2272 2002-08-01 Roland McGrath <roland@redhat.com>
2274 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): New macro, broken out of
2276 (TLS_DO_SET_THREAD_AREA): New macro, uses thread_set_area syscall.
2277 (TLS_SETUP_GS_SEGMENT): New macro, try one or the other or both.
2278 (TLS_INIT_TP): Use that.
2280 2002-08-02 Jakub Jelinek <jakub@redhat.com>
2282 * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Move from INIT_THREAD_SELF.
2283 (INIT_THREAD_SELF): Use sys_thread_area syscall instead if available.
2284 (FREE_THREAD): Avoid modify_ldt if using GDT.
2285 * sysdeps/i386/pspinlock.c (__have_no_set_thread_area): New variable.
2287 2002-07-25 Jakub Jelinek <jakub@redhat.com>
2289 * sysdeps/i386/tls.h: Use __ASSEMBLER__ test macro not ASSEMBLER.
2290 * sysdeps/i386/pt-machine.h: Likewise.
2291 * sysdeps/i386/useldt.h: Likewise.
2293 2002-07-22 Ulrich Drepper <drepper@redhat.com>
2295 * pthread.c (__pthread_initialize_minimal): If !SHARED and TLS
2296 call __libc_setup_tls first.
2297 * Makefile: Actually create tst-signal.out file when running the test.
2298 (tests): Add tststatic.
2299 * Examples/tststatic.c: New file.
2301 2002-07-19 Ulrich Drepper <drepper@redhat.com>
2303 * errno.c (__errno_location): Don't define unless !USE_TLS
2305 * sysdeps/i386/pt-machine.c: Protect C code with #ifndef ASSEMBLER.
2306 * sysdeps/i386/tls.h: Likewise.
2307 * sysdeps/i386/useldt.h: Likewise.
2308 * sysdeps/i386/i686/pt-machine.h: Likewise.
2310 2002-07-02 H.J. Lu <hjl@gnu.org>
2312 * sysdeps/mips/pspinlock.c: Don't include <sgidefs.h>. Always
2314 * sysdeps/mips/pt-machine.h: Likewise.
2316 2002-07-14 Ulrich Drepper <drepper@redhat.com>
2318 * manager.c (pthread_handle_create): Initialize self-reference in
2321 2002-07-01 Jakub Jelinek <jakub@redhat.com>
2323 * Examples/ex9.c (main): Remove unused th variable.
2325 2002-07-10 Ulrich Drepper <drepper@redhat.com>
2327 * wrapsyscall.c: Add __nanosleep alias.
2328 * Versions (GLIBC_2.2.6): Add __nanosleep.
2329 * bug-sleep.c: New file.
2330 * Makefile (tests): Add bug-sleep.
2332 2002-06-19 Steven Munroe <sjmunroe@vnet.ibm.com>
2334 * Examples/ex9.c (main): Use list of children and join them.
2335 (thread): Do not call exit.
2337 2002-06-20 Ulrich Drepper <drepper@redhat.com>
2339 * spinlock.c (wait_node_alloc): We cannot use compare-and-exchange.
2340 Unconditionally use the code using spinlock. Use __pthread_release
2342 (wait_node_free): Likewise.
2343 (__pthread_acquire, __pthread_release): Unconditionally define.
2345 2002-06-07 Jakub Jelinek <jakub@redhat.com>
2347 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Fix typo.
2349 2002-05-24 Ulrich Drepper <drepper@redhat.com>
2351 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Use __sync_synchronize.
2353 2002-05-21 Ulrich Drepper <drepper@redhat.com>
2355 * sysdeps/pthread/pthread.h (pthread_create): Rename first
2357 (pthread_cancel): Likewise.
2358 * internals.h (__pthread_create_2_1): Likewise.
2359 * sysdeps/unix/sysv/linux/bits/sigthread.h (pthread_kill): Likewise.
2361 2002-05-20 Ulrich Drepper <drepper@redhat.com>
2363 * sysdeps/alpha/pt-machine.c (THREAD_SELF): Remove clobber.
2364 Patch by Glen Nakamura <gen@flex.com>.
2366 2002-05-03 Ulrich Drepper <drepper@redhat.com>
2368 * signals.c: Move sighandler functions to...
2369 * sighandler.c: ...here. New file.
2370 * signals.c: Move signal handler related type definitions to...
2371 * internals.h: ...here. Add prototypes for signal handlers.
2372 * Makefile (libpthread-routines): Add sighandler.
2373 (CFLAGS-sighandler.c): Add $(exceptions).
2375 2002-04-30 Jakub Jelinek <jakub@redhat.com>
2377 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
2379 2002-04-08 Ulrich Drepper <drepper@redhat.com>
2381 * sysdeps/pthread/timer_getoverr.c: Return real overrun.
2382 * sysdeps/pthread/posix-timer.h (struct timer_node): Add overrun_count.
2383 * sysdeps/pthread/timer_routines.c (thread_func): Schedule next timeout
2384 based on previous one and not on current time. Count overruns.
2385 Patch by Eric F. Sorton <eric@cctcorp.com>.
2387 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add DELAYTIMER_MAX.
2389 2002-04-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
2391 * sysdeps/sh/pt-machine.h: Define _PT_MACHINE_H
2392 if it isn't defined yet.
2393 (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Defined.
2394 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
2396 * sysdeps/sh/tls.h: New file.
2398 2002-04-08 Jakub Jelinek <jakub@redhat.com>
2400 * manager.c (__pthread_manager_event): Use self instead of arg
2401 for INIT_THREAD_SELF.
2402 * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Use sizeof (struct
2403 _pthread_descr_struct) instead of sizeof (*descr).
2405 2002-04-05 Ulrich Drepper <drepper@redhat.com>
2407 * sysdeps/ia64/pt-machine.h: Protect against multiple inclusion.
2408 * sysdeps/alpha/pt-machine.h: Likewise.
2409 * sysdeps/arm/pt-machine.h: Likewise.
2410 * sysdeps/cris/pt-machine.h: Likewise.
2411 * sysdeps/hppa/pt-machine.h: Likewise.
2412 * sysdeps/m68k/pt-machine.h: Likewise.
2413 * sysdeps/mips/pt-machine.h: Likewise.
2414 * sysdeps/powerpc/pt-machine.h: Likewise.
2415 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
2416 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
2417 * sysdeps/sh/pt-machine.h: Likewise.
2418 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
2419 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
2420 * sysdeps/x86_64/pt-machine.h: Likewise.
2422 2002-04-05 Jakub Jelinek <jakub@redhat.com>
2424 * man/pthread_mutexattr_init.man (pthread_mutexattr_settype): Document
2425 instead of pthread_mutexattr_setkind_np.
2426 (pthread_mutexattr_gettype): Similarly.
2427 * man/pthread_mutexattr_setkind_np.man: New.
2428 * man/Makefile (SOURCES): Add pthread_mutexattr_setkind_np.man.
2430 2002-04-02 Ulrich Drepper <drepper@redhat.com>
2432 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Define.
2434 2002-03-22 Jakub Jelinek <jakub@redhat.com>
2436 * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Remove.
2438 2002-03-22 Ulrich Drepper <drepper@redhat.com>
2440 * internals.h (MEMORY_BARRIER): Define as asm with memory as clobber.
2442 2002-03-17 Andreas Jaeger <aj@suse.de>
2444 * sysdeps/i386/pt-machine.h: Add testandset and __compare_and_swap
2446 * sysdeps/alpha/pt-machine.h: Likewise.
2447 * sysdeps/arm/pt-machine.h: Likewise.
2448 * sysdeps/cris/pt-machine.h: Likewise.
2449 * sysdeps/hppa/pt-machine.h: Likewise.
2450 * sysdeps/i386/i686/pt-machine.h: Likewise.
2451 * sysdeps/ia64/pt-machine.h: Likewise.
2452 * sysdeps/m68k/pt-machine.h: Likewise.
2453 * sysdeps/mips/pt-machine.h: Likewise.
2454 * sysdeps/powerpc/pt-machine.h: Likewise.
2455 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
2456 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
2457 * sysdeps/sh/pt-machine.h: Likewise.
2458 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
2459 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
2460 * sysdeps/x86_64/pt-machine.h: Likewise.
2462 * internals.h: Move testandset and __compare_and_swap prototypes
2465 2002-03-03 Andreas Jaeger <aj@suse.de>
2467 * errno.c: Include resolv.h to avoid warning.
2469 2002-02-27 Ulrich Drepper <drepper@redhat.com>
2471 * pthread.c [USE_TLS] (thread_self_stack): Correct check for upper
2474 2002-02-23 Ulrich Drepper <drepper@redhat.com>
2476 * attr.c (pthread_getattr_np): Don't take thread descriptor size
2477 into account if USE_TLS.
2478 * manager.c (pthread_handle_create): Free TLS data structures if call
2479 failed. Pass correct stack to clone if USE_TLS.
2480 * sysdeps/i386/pt-machine.h: Handle multiple inclusion.
2481 * sysdeps/i386/i686/pt-machine.h: Likewise.
2482 * sysdeps/i386/tls.h: Unconditionally include <pt-machine.h>.
2484 * descr.h (struct _pthread_descr_struct): Update p_header for TLS.
2485 Add p_stackaddr element #if USE_TLS.
2486 * internals.c: Include <tls.h>.
2487 * manager.c: Integrate creating and handling of thread descriptor
2489 * pthread.c: Likewise.
2490 * sysdeps/i386/tls.h (tcbhead_t): Add self pointer.
2491 Include <linuxthreads/descr.h> only if TLS is really used.
2492 (GET_DTV): New macro.
2493 (TLS_INIT_TP): Initialize self pointer.
2495 2002-02-17 Andreas Schwab <schwab@suse.de>
2497 * signals.c (sigwait): Check for old sighandler being SIG_ERR,
2500 2002-02-12 Ulrich Drepper <drepper@redhat.com>
2502 * sysdeps/i386/tls.c (INSTALL_NEW_DTV): Define.
2503 (INSTALL_DTV): Adjust for being passed pointer to element with length.
2505 2002-02-08 Ulrich Drepper <drepper@redhat.com>
2507 * sysdeps/i386/tls.h (TLS_INIT_TP): Also initialize %gs.
2509 2002-02-08 Richard Henderson <rth@redhat.com>
2511 * sysdeps/alpha/elf/pt-initfini.c: Use \n\ for multiline string.
2513 2002-02-08 Ulrich Drepper <drepper@redhat.com>
2515 * sysdeps/i386/tls.h: TLS cannot be supported with FLOATING_STACKS
2518 2002-02-07 H.J. Lu <hjl@gnu.org>
2520 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Silence the
2522 (__pthread_spin_lock): Remove ".set noreorder".
2523 * sysdeps/mips/pt-machine.h (__compare_and_swap): Liekwise.
2525 2002-02-05 H.J. Lu <hjl@gnu.org>
2527 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Not use
2529 * sysdeps/mips/pt-machine.h (testandset): Likewise.
2530 (__compare_and_swap): Likewise.
2532 2002-02-07 Ulrich Drepper <drepper@redhat.com>
2534 * internals.h: Move declarations/definitions of
2535 __pthread_initial_thread_bos, __pthread_initial_thread,
2536 __pthread_manager_thread_bos, __pthread_manager_thread_tos,
2537 __pthread_manager_thread, __pthread_nonstandard_stacks, STACK_SIZE,
2538 CURRENT_STACK_FRAME, __pthread_find_self, and thread_self...
2540 * sysdeps/i386/tls.h: Add TLS definitions also for !FLOATING_STACKS.
2541 Define THREAD_GETMEM accordingly.
2543 2002-02-06 Ulrich Drepper <drepper@redhat.com>
2545 * sysdeps/i386/tls.h: Include <stddef.h> for size_t.
2547 * sysdeps/i386/tls.h: Define THREAD_DTV.
2549 2002-02-04 Ulrich Drepper <drepper@redhat.com>
2551 * internals.h: Move thread descriptor definition...
2552 * descr.h.: ...here. New file.
2553 * sysdeps/i386/tls.h: New file.
2555 2002-02-01 H.J. Lu <hjl@gnu.org>
2557 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Use a
2558 different register in the delayed slot. Use branch likely.
2560 * sysdeps/mips/pt-machine.h (testandset): Call _test_and_set.
2561 (__compare_and_swap): Return 0 only when failed to compare. Use
2564 2002-02-01 Jakub Jelinek <jakub@redhat.com>
2566 * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set,
2567 __pthread_kill_other_threads_np): Move to GLIBC_PRIVATE.
2568 * sysdeps/i386/i586/Versions: Move all symbols to GLIBC_PRIVATE.
2569 * sysdeps/i386/i686/Versions: Move all symbols to GLIBC_PRIVATE.
2570 * sysdeps/sparc/sparc32/sparcv9/Versions: New file.
2571 * sysdeps/sparc/sparc64/Versions: New file.
2572 * sysdeps/ia64/Versions: Move all symbols to GLIBC_PRIVATE.
2574 2002-01-31 Ulrich Drepper <drepper@redhat.com>
2576 * pthread.c: _dl_cpuclock_offset is not any longer a global variable
2577 in SHARED code, use GL(dl_cpuclock_offset).
2579 2002-01-28 Andreas Jaeger <aj@suse.de>
2581 * sysdeps/mips/pspinlock.c (__pthread_spin_init): Clear *LOCK to
2582 0. Patch by Machida Hiroyuki <machida@sm.sony.co.jp>.
2584 2002-01-16 Martin Schwidefsky <schwidefsky@de.ibm.com>
2586 * sysdeps/s390/s390-32/pt-machine.h (MEMORY_BARRIER): Define.
2587 (CURRENT_STACK_FRAME): Remove duplicate definition.
2588 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
2590 2002-01-14 Martin Schwidefsky <schwidefsky@de.ibm.com>
2592 * Makefile (CFLAGS-tst-cancel.c): Add -fno-inline-functions to prevent
2595 2002-01-12 Andreas Schwab <schwab@suse.de>
2597 * Makefile (test-srcs): Add tst-signal.
2598 (tests): Run tst-signal.
2599 (distribute): Add tst-signal.sh.
2600 * tst-signal.c, tst-signal.sh: New files.
2602 2002-01-14 Andreas Jaeger <aj@suse.de>
2604 * sysdeps/x86_64/pt-machine.h (INIT_THREAD_SELF): Avoid warning.
2606 2002-01-11 Andreas Schwab <schwab@suse.de>
2608 * signals.c (sighandler): Initialize all elements to SIG_ERR.
2609 (__sigaction): Don't use value from sighandler if it is SIG_ERR.
2611 2002-01-06 Richard Henderson <rth@redhat.com>
2613 * sysdeps/alpha/elf/pt-initfini.c: New file.
2615 2001-12-29 Andreas Jaeger <aj@suse.de>
2617 * Examples/ex9.c: Add noreturn attribute for thread.
2618 * Examples/ex10.c: Likewise.
2619 * Examples/ex13.c (thread_start): Likewise.
2620 * Examples/ex15.c (worker): Likewise.
2622 * Examples/ex18.c: Include unistd.h for prototype of sleep.
2624 2001-12-14 Ulrich Drepper <drepper@redhat.com>
2626 * man/pthread_atfork.man: Adjust description of mutex handling
2627 after fork for current implementation.
2628 * linuxthreads.texi: Likewise [PR libc/2519].
2630 2001-12-13 Andreas Schwab <schwab@suse.de>
2632 * specific.c (pthread_key_delete): Don't contact the thread
2633 manager if no threads have been created yet.
2635 2001-12-12 NIIBE Yutaka <gniibe@m17n.org>
2637 * sysdeps/sh/pt-machine.h (INIT_THREAD_SELF): Added __volatile__
2638 qualifier to be safe.
2640 2001-11-30 Andreas Schwab <schwab@suse.de>
2642 * pthread.c (pthread_handle_sigcancel) [THREAD_SELF]: Double check
2643 that self is the manager thread, and initialize the thread
2645 (thread_self_stack) [THREAD_SELF]: New function to find self via
2647 * manager.c (pthread_handle_create): Don't block cancel signal any
2650 2001-11-29 Andreas Jaeger <aj@suse.de>
2652 * sysdeps/x86_64/pt-machine.h: Use %gs as thread specific register.
2654 (INIT_THREAD_SELF): New.
2655 (THREAD_GETMEM): New.
2657 (THREAD_SETMEM): New.
2658 (THREAD_SETMEM_NC): New.
2659 (FLOATING_STACKS): Define.
2660 (ARCH_STACK_MAX_SIZE): Define.
2662 2001-11-28 Kaz Kylheku <kaz@ashi.footprints.net>
2664 Bugfix to pthread_key_delete. It was iterating over the thread
2665 manager's linked list of threads, behind the thread manager's
2666 back causing a race. The fix is to have the manager iterate over
2667 the threads instead, using a new request type for doing so.
2668 * internals.h (struct pthread_request): New manager request type
2669 REQ_FOR_EACH_THREAD.
2670 * manager.c (pthread_for_each_thread): New function.
2671 (__pthread_manager): Handle new REQ_FOR_EACH_THREAD request.
2672 * specific.c (struct pthread_key_delete_helper_args): New type.
2673 (pthread_key_delete_helper): New static function.
2674 (pthread_key_delete): Use the new thread manager
2675 REQ_FOR_EACH_THREAD function to iterate over the threads and set
2676 the delete key slot to a null value in each thread.
2677 * Examples/ex18.c: New test.
2678 * Makefile (tests): Add ex18.
2680 2001-11-22 Wolfram Gloger <wg@malloc.de>
2682 * pthread.c (pthread_onexit_process): Don't call free
2683 after threads have been asynchronously terminated.
2685 * manager.c (pthread_handle_exit): Surround cancellation
2686 of threads with __flockfilelist()/__funlockfilelist().
2688 2001-11-26 Andreas Schwab <schwab@suse.de>
2690 * manager.c (pthread_handle_create): Start the child thread with
2691 the cancel signal blocked, so that it does not handle it before
2692 the thread register is set up. Save errno from failed clone call.
2694 2001-11-15 Ulrich Drepper <drepper@redhat.com>
2696 * sysdeps/i386/i686/Implies: Removed.
2697 * sysdeps/i386/i686/Versions: New file.
2699 2001-10-31 Andreas Jaeger <aj@suse.de>
2701 * sysdeps/x86_64/Makefile: Remove, we do not need it anymore.
2703 2001-10-05 Kevin Buettner <kevinb@cygnus.com>
2705 * pthread.c (__linuxthread_pthread_sizeof_descr): Change name
2706 to __linuxthreads_pthread_sizeof_descr to match name used by
2707 symbol_list_arr[LINUXTHREADS_PTHREAD_SIZEOF_DESCR] in
2708 linuxthreads_db/td_symbol_list.c.
2710 2001-09-22 Andreas Jaeger <aj@suse.de>
2712 * linuxthreads/tst-context.c: Avoid compile warning.
2714 2001-09-20 Andreas Jaeger <aj@suse.de>
2716 * shlib-versions: Add x86-64.
2718 2001-09-19 Andreas Jaeger <aj@suse.de>
2720 * sysdeps/x86_64/Makefile: New file.
2721 * sysdeps/x86_64/pspinlock.c: New file.
2722 * sysdeps/x86_64/pt-machine.h: New file.
2724 2001-09-12 Jakub Jelinek <jakub@redhat.com>
2726 * sysdeps/pthread/timer_delete.c (timer_delete): Thread may be NULL
2728 * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
2730 2001-09-11 Ulrich Drepper <drepper@redhat.com>
2731 Wolfram Gloger <wg@malloc.de>
2733 * join.c: Protect all communications from and to manager with
2735 * manager.c: Likewise.
2736 * pthread.c: Likewise.
2737 * smeaphore.c: Likewise.
2739 2001-08-29 Ulrich Drepper <drepper@redhat.com>
2741 * spinlock.c (__pthread_lock): Top max_count value with
2742 MAX_ADAPTIVE_SPIN_COUNT.
2743 * internals.h (MAX_ADAPTIVE_SPIN_COUNT): Define if not already done.
2745 * sysdeps/i386/i686/pt-machine.h (BUSY_WAIT_NOP): New macro to
2748 2001-08-27 Jakub Jelinek <jakub@redhat.com>
2750 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_t): Only define to
2751 non-opaque type if __USE_UNIX98.
2753 2001-08-26 Jakub Jelinek <jakub@redhat.com>
2755 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_t): Define
2756 non-opaque lock types also if _IO_MTSAFE_IO is defined.
2758 2001-08-23 Roland McGrath <roland@frob.com>
2760 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start): Take
2761 new first argument, skip the cleanup handler if it's zero.
2762 (_LIBC_LOCK_RECURSIVE_INITIALIZER): New macro.
2763 (__libc_lock_define_initialized_recursive): Use it.
2764 * sysdeps/pthread/bits/stdio-lock.h: File removed.
2765 The sysdeps/generic file from the main tree now suffices.
2767 2001-08-22 Roland McGrath <roland@frob.com>
2769 * sysdeps/pthread/bits/stdio-lock.h: Include <bits/libc-lock.h>
2770 instead of <pthread.h>.
2771 (_IO_lock_t): Define this typedef using __libc_lock_define_recursive.
2772 (_IO_lock_initializer): Add braces.
2773 (_IO_lock_lock): Use __libc_lock_lock_recursive.
2774 (_IO_lock_unlock): Use __libc_lock_unlock_recursive.
2776 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_recursive_t): New type.
2777 (__libc_lock_define_initialized_recursive): Use it.
2778 (__libc_lock_init_recursive): Likewise.
2779 (__libc_lock_fini_recursive): Likewise.
2780 (__libc_lock_lock_recursive): Likewise.
2781 (__libc_lock_trylock_recursive): Likewise.
2782 (__libc_lock_unlock_recursive): Likewise.
2783 (__libc_lock_define_recursive): New macro.
2785 2001-08-14 Jakub Jelinek <jakub@redhat.com>
2787 * lockfile.c (__pthread_provide_lockfile): New variable.
2788 * pthread.c (__pthread_require_lockfile): New variable.
2789 * cancel.c (__pthread_require_lockfile): New variable.
2791 2001-07-31 Ulrich Drepper <drepper@redhat.com>
2793 * tst-context.c (threadfct): Initialize context before calling
2796 * Examples/ex17.c: Make sure test thread is around long enough.
2798 2001-07-26 kaz Kojima <kkojima@rr.iij4u.or.jp>
2800 * sysdeps/sh/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF): Defined.
2802 2001-07-24 Ulrich Drepper <drepper@redhat.com>
2804 * tst-context.c (main): Print explanation before bailing out
2805 because context handling is not supported.
2807 2001-07-23 Ulrich Drepper <drepper@redhat.com>
2809 * Makefile (tests): Add tst-context.
2810 * tst-context.c: New file.
2812 * sysdeps/pthread/bits/stdio-lock.h: Define
2813 _IO_cleanup_region_start_noarg.
2815 2001-07-23 Jakub Jelinek <jakub@redhat.com>
2817 * sysdeps/alpha/pt-machine.h (FLOATING_STACKS): Define.
2818 (ARCH_STACK_MAX_SIZE): Define.
2819 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
2820 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
2822 2001-07-19 Jakub Jelinek <jakub@redhat.com>
2824 * sysdeps/i386/useldt.h: Fix typo in ARCH_STACK_MAX_SIZE comment.
2826 * sysdeps/ia64/pt-machine.h (FLOATING_STACKS): Define.
2827 (ARCH_STACK_MAX_SIZE): Define.
2828 * manager.c (pthread_allocate_stack): Handle FLOATING_STACKS with
2829 NEED_SEPARATE_REGISTER_STACK.
2831 2001-07-16 Andreas Schwab <schwab@suse.de>
2833 * Makefile (before-compile): Don't add $(objpfx)crti.o.
2834 (omit-deps): Add crti.
2835 ($(objpfx)libpthread.so): Depend on $(objpfx)crti.o, but make sure
2836 it is filtered out of the link command.
2838 2001-07-16 Ulrich Drepper <drepper@redhat.com>
2840 * pthread.c (pthread_initialize): For FLOATING_STACKS don't bother
2841 to find the right value for __pthread_initial_thread_bos, it's not
2842 used. If not FLOATING_STACKS first run
2843 __pthread_init_max_stacksize.
2845 2001-06-16 H.J. Lu <hjl@gnu.org>
2847 * internals.h: Include <stackinfo.h>.
2849 * attr.c: Don't include <stackinfo.h> here.
2850 * cancel.c: Likewise.
2851 * manager.c: Likewise.
2852 * pthread.c: Likewise.
2853 * ptlongjmp.c: Likewise.
2855 2001-03-23 Matthew Wilcox <willy@ldl.fc.hp.com>
2857 * attr.c: Make _STACK_GROWS_UP work.
2858 * internals.h: Likewise.
2859 * manager.c: Likewise.
2860 * pthread.c: Likewise.
2862 2001-06-15 H.J. Lu <hjl@gnu.org>
2864 * pthread.c (__pthread_reset_main_thread): Fix a typo.
2866 2001-02-02 John S. Marvin <jsm@udlkern.fc.hp.com>
2868 * semaphore.h: Use struct _pthread_fastlock as an element of
2869 sem_t instead of an identical struct.
2870 * rwlock.c: Remove casts.
2871 * semaphore.c: Likewise.
2873 2001-04-30 Alan Modra <amodra@one.net.au>
2875 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: New.
2877 2001-05-25 Bruce Mitchener <bruce@cubik.org>
2879 * linuxthreads.texi: Spelling corrections.
2881 2001-05-25 Ulrich Drepper <drepper@redhat.com>
2883 * oldsemaphore.c (__old_sem_wait): Clear p_nextwaiting before
2884 returning successfully.
2885 Patch by Gene Cooperman <gene@ccs.neu.edu>.
2887 2001-05-24 Ulrich Drepper <drepper@redhat.com>
2889 * spinlock.c (__pthread_lock) [HAS_COMPARE_AND_SWAP]: Before doing any
2890 serious work try once whether the lock is uncontested.
2891 Remove duplicate reading of __status before loop.
2892 Change suggested by Hans Boehm <hans_boehm@hp.com>.
2894 * spinlock.h (__pthread_trylock): Remove need for oldstatus variable.
2895 (__pthread_alt_trylock): Likewise.
2897 2001-05-01 Kaz Kylheku <kaz@ashi.footprints.net>
2899 Memory barrier overhaul following line by line inspection.
2900 * mutex.c (pthread_once): Missing memory barriers added.
2901 * pthread.c (__pthread_wait_for_restart_signal,
2902 __pthread_timedsuspend_new, __pthread_restart_new): Added
2903 memory barriers ``just in case'' and for documentary value.
2904 * spinlock.c (__pthread_release): New inline function for releasing
2905 spinlock, to complement __pthread_acquire. Includes memory
2906 barrier prior to assignment to spinlock, and __asm __volatile
2907 dance to prevent reordering or optimization of the spinlock access.
2908 * spinlock.c (__pthread_unlock, __pthread_alt_lock,
2909 __pthread_alt_timedlock, __pthread_alt_unlock,
2910 __pthread_compare_and_swap): Updated to use new __pthread_release
2911 instead of updating spinlock directly.
2912 * spinlock.c (__pthread_lock, __pthread_unlock, wait_node_alloc,
2913 wait_node_free, wait_node_dequeue, __pthread_alt_lock,
2914 __pthread_alt_timedlock, __pthread_alt_unlock, __pthread_acquire):
2915 Memory barrier overhaul. Lots of missing memory barriers added,
2916 a couple needless ones removed.
2917 * spinlock.c (__pthread_compare_and_swap): testandset optimization
2918 removed, just calls __pthread_acquire, which has the new read
2919 barrier in it before its testandset.
2921 2001-05-20 Roland McGrath <roland@frob.com>
2923 * Makeconfig: New file, variables used to be in main libc Makeconfig.
2925 2001-05-09 Geoff Keating <geoffk@redhat.com>
2927 * sysdeps/powerpc/pt-machine.h
2928 (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): Define.
2929 (__compare_and_swap): Remove memory barriers.
2930 (__compare_and_swap_with_release_semantics): New function.
2932 2001-04-24 Andreas Jaeger <aj@suse.de>
2934 * wrapsyscall.c: send* and recv* return ssize_t.
2936 * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Unlock the
2937 mutex instead of double locking it.
2938 Reported by Pierre Artaud <partaud@sodatec.com>.
2940 2001-04-23 Ulrich Drepper <drepper@redhat.com>
2942 * sysdeps/pthread/getcpuclockid.c: Make function generic, test
2943 using #ifdef whether the clock is available.
2944 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: Removed.
2946 * sysdeps/ia64/Versions: New file.
2948 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init): We don't
2949 have to call __gmon_start__ in the libpthread DSO.
2950 * sysdeps/pthread/pt-initfini.c (_init): Likewise.
2952 * Makefile (libpthread-routines): Add ptclock_gettime and
2954 * internals.h: Don't use cpuclock-init.h definitions, use
2955 hp-timing.h definitions.
2956 * pthread.c: Likewise.
2957 * manager.c: Likewise.
2958 * ptclock_gettime.c: New file.
2959 * ptclock_settime.c: New file.
2960 * internals.h: Fix parameter type for __pthread_clock_gettime and
2961 __pthread_clock_settime.
2963 * sysdeps/i386/i586/ptclock_gettime.c: Removed.
2964 * sysdeps/i386/i586/ptclock_settime.c: Removed.
2965 * sysdeps/i386/i586/Makefile: Removed.
2967 2001-04-22 Ulrich Drepper <drepper@redhat.com>
2969 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_ASYNCH_IO.
2970 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2972 2001-04-21 Andreas Jaeger <aj@suse.de>
2974 * sysdeps/pthread/timer_routines.c (thread_func): Add noreturn
2975 attribute, remove statements that will never be executed.
2976 (thread_func): Remove mutex_unlock call since it's never executed.
2977 (thread_func): Fix comment as suggested by Jakub Jelinek.
2979 * manager.c (__pthread_manager): Add noreturn
2981 (pthread_start_thread): Likewise, remove return statement.
2982 (pthread_start_thread_event): Likewise.
2983 Add noreturn attribute for pthread_handle_exit.
2984 * weaks.c: Add noreturn attribute for pthread_exit.
2986 * internals.h: Add __pthread_clock_gettime and
2987 __pthread_clock_settime prototypes.
2989 2001-04-21 Ulrich Drepper <drepper@redhat.com>
2991 * internals.h: Include <cpuclock-init.h>.
2992 (struct _pthread_descr_struct): Add p_cpuclock_offset field if
2993 CPUCLOCK_VARDEF is defined.
2994 * pthread.c (__pthread_initialize_minimal): Initialize
2995 p_cpuclock_offset field for main thread if CPUCLOCK_INIT is defined.
2996 * manager.c (pthread_start_thread): Set p_cpuclock_offset field
2997 for new thread to current CPU clock value.
2999 * sysdeps/i386/useldt.h: Extend all the macros to handle 8-byte values.
3001 * sysdeps/i386/i586/Makefile: New file.
3002 * sysdeps/i386/i586/Versions: New file.
3003 * sysdeps/i386/i586/ptclock_gettime.c: New file.
3004 * sysdeps/i386/i586/ptclock_settime.c: New file.
3005 * sysdeps/i386/i686/Implies: New file.
3007 2001-04-18 Jakub Jelinek <jakub@redhat.com>
3009 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Put specs into
3010 $generated, not $postclean-generated.
3012 2001-04-18 Andreas Jaeger <aj@suse.de>
3014 * Makefile (otherlibs): Added.
3016 2001-04-18 Jakub Jelinek <jakub@redhat.com>
3018 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
3020 2001-04-16 Ulrich Drepper <drepper@redhat.com>
3022 * signals.c (sigwait): NSIG is no signal number. Block all
3023 signals while in signal handler for signals in SET.
3024 Patch by Manfred Spraul <manfred@colorfullife.com>.
3026 2001-04-12 Ulrich Drepper <drepper@redhat.com>
3028 * tst-cancel.c: Disable most tests. Add new test where all
3029 cleanup handlers must run.
3030 * Makefile (tests): Add tst-cancel again.
3032 * cancel.c (__pthread_perform_cleanup): Correct condition for
3033 leaving cleanup loop early.
3035 * sysdeps/i386/Makefile: Make sure gcc uses a frame pointer for
3036 all the files which use CURRENT_STACK_FRAME.
3037 * sysdeps/i386/pt-machine.h (CURRENT_STACK_FRAME): Define using
3038 __builtin_frame_address.
3039 * sysdeps/i386/i686/pt-machine.h: Likewise.
3041 2001-04-11 Ulrich Drepper <drepper@redhat.com>
3043 * Makefile (tests): Comment out tst-cancel for now.
3045 * tst-cancel.c (main): Cleanup 4 is supposed to run. Create
3046 temporary file in object directory.
3047 * Makefile: Don't allow inlining when compiling tst-cancel.c.
3048 Pass $(objpfx) to tst-cancel.
3050 2001-04-11 David S. Miller <davem@redhat.com>
3052 * sysdeps/sparc/sparc32/pt-machine.h (stack_pointer): Advance
3053 up closer to user local variables so that new cleanup heuristics work.
3054 * sysdeps/sparc/sparc64/pt-machine.h (stack_pointer): Likewise.
3056 2001-04-11 Ulrich Drepper <drepper@redhat.com>
3058 * cancel.c (_pthread_cleanup_push): Catch invalid __prev buffer
3060 (_pthread_cleanup_push_defer): Likewise.
3062 * tst-cancel.c (main): Fix loop printing cleanup output.
3064 2001-04-10 kaz Kojima <kkojima@rr.iij4u.or.jp>
3066 * sysdeps/sh/pspinlock.c (__pthread_spin_lock): Fix a reverse
3068 (__pthread_spin_trylock): Likewise.
3069 * sysdeps/sh/pt-machine.h (testandset): Likewise.
3071 2001-04-10 Ulrich Drepper <drepper@redhat.com>
3073 * join.c (pthread_exit): Move code to new function __pthread_do_exit
3074 which takes an extra parameter with the current frame pointer.
3075 Call new function with CURRENT_STACK_FRAME.
3076 (__pthread_do_exit): New function. Call __pthread_perform_cleanup
3077 with the new parameter.
3078 (pthread_join): Call __pthread_do_exit instead of pthread_exit.
3079 * cancel.c (__pthread_perform_cleanup): Takes extra parameter. Use
3080 this parameter as the initial value the cleanup handler records are
3081 compared against. No active cleanup handler record must have an
3082 address lower than the previous one and the initial record must be
3083 above (below on PA) the frame address passed in.
3084 (pthread_setcancelstate): Call __pthread_do_exit instead of
3086 (pthread_setcanceltype): Likewise.
3087 (pthread_testcancel): Likewise.
3088 (_pthread_cleanup_pop_restore): Likewise.
3089 * condvar.c (pthread_cond_wait): Likewise.
3090 (pthread_cond_timedwait_relative): Likewise.
3091 * manager.c (pthread_start_thread): Likewise.
3092 * oldsemaphore.c (__old_sem_wait): Likewise.
3093 * pthread.c (pthread_handle_sigcancel): Likewise.
3094 * semaphore.c (__new_sem_wait): Likewise.
3095 (sem_timedwait): Likewise.
3096 * ptlongjmp.c (pthread_cleanup_upto): Also use current stack frame
3097 to limit the cleanup handlers which get run.
3098 * internals.h: Add prototype for __pthread_do_exit. Adjust prototype
3099 for __pthread_perform_cleanup.
3101 * Makefile (tests): Add tst-cancel.
3102 * tst-cancel.c: New file.
3104 2001-04-08 Hans-Peter Nilsson <hp@axis.com>
3106 * sysdeps/cris/pt-machine.h: New file.
3107 * sysdeps/cris/pspinlock.c: New file.
3109 2001-04-09 Hans-Peter Nilsson <hp@axis.com>
3111 * shlib-versions: Add case for Linux on CRIS.
3113 2001-03-26 Ulrich Drepper <drepper@redhat.com>
3115 * attr.c (pthread_getattr_np): Correct computation of stack size
3116 for machiens with register stack.
3118 * Examples/ex17.c (main): Correct detection of failed mmap call.
3120 2001-03-21 Jakub Jelinek <jakub@redhat.com>
3122 * pthread.c (__pthread_initialize_manager): Fix a typo.
3124 2001-03-21 Jakub Jelinek <jakub@redhat.com>
3126 * attr.c (__pthread_attr_setstack): Fix alignment check.
3127 (pthread_getattr_np): __stackaddr is top of stack, not bottom.
3128 * Makefile (tests): Add ex17 test.
3129 * Examples/ex17.c: New test.
3131 2001-03-20 Ulrich Drepper <drepper@redhat.com>
3133 * Makefile: Define -D_RPC_THREAD_SAFE_ for cancel.c.
3134 * cancel.c (__pthread_perform_cleanup): Call __rpc_thread_destroy.
3135 * sysdeps/pthread/bits/libc-tsd.h: Define _LIBC_TSD_KEY_VARS.
3137 2001-03-18 Ulrich Drepper <drepper@redhat.com>
3139 * Makefile: When generating DSO link with libc_nonshared.a.
3141 2001-02-26 Jakub Jelinek <jakub@redhat.com>
3143 * signals.c (pthread_sighandler): Use CALL_SIGHANDLER.
3145 2001-02-23 Jakub Jelinek <jakub@redhat.com>
3147 * internals.h (__pthread_init_max_stacksize): New prototype.
3148 * attr.c (__pthread_attr_setstacksize): Call
3149 __pthread_init_max_stacksize if not yet initialized.
3150 * pthread.c (__pthread_init_max_stacksize): New function.
3151 (__pthread_initialize_manager): Call it.
3152 Patch by <dtc@cmucl.cons.org>.
3154 2001-03-16 Ulrich Drepper <drepper@redhat.com>
3156 * attr.c (pthread_getattr_np): Fix __stacksize computation for IA-64.
3158 2001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
3160 * shlib-versions: Add rule for Linux on 64 bit S/390.
3161 * sysdeps/s390/s390-64/pt-machine.h: New file.
3162 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
3164 2001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
3166 * sysdeps/s390/pt-machine.h: Move to...
3167 * sysdeps/s390/s390-32/pt-machine.h: ...here.
3168 Add defines for FLOATING_STACK and ARCH_STACK_MAX_SIZE.
3170 2001-03-15 Ulrich Drepper <drepper@redhat.com>
3172 * Versions [libpthread] (GLIBC_2.2.3): Add pthread_getattr_np.
3173 * attr.c: Implement pthread_getattr_np.
3174 * sysdeps/pthread/pthread.h: Add prototype for pthread_getattr_np.
3175 * internals.h (struct _pthread_descr_struct): Add p_inheritsched.
3176 * manager.c (pthread_handle_create): Initialize p_inheritsched.
3178 2001-03-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
3180 * sysdeps/unix/sysv/linux/s390/pt-initfini.c: Use 0x07 padding for
3183 2001-02-20 Hans Boehm <hans_boehm@hp.com>
3185 * manager.c (manager_mask): Removed static vesion. Now always local
3186 to __pthread_manager().
3187 (manager_mask_all): Removed completely.
3188 (__pthread_manager): Remove manager_mask_all initialization.
3189 (pthread_handle_create): Remove code to set and reset signal mask
3190 around __clone2() calls.
3192 2001-02-17 Jakub Jelinek <jakub@redhat.com>
3194 * spinlock.c (__pthread_lock): Force lock->__status to be read from
3195 memory on every spin.
3197 2001-02-10 Andreas Jaeger <aj@suse.de>
3199 * Makefile (extra-objs): New.
3201 2001-02-09 Jakub Jelinek <jakub@redhat.com>
3203 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Add
3204 __pthread_initialize_minimal prototype.
3206 2001-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
3208 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
3210 2001-02-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
3212 * sysdeps/unix/sysv/linux/s390/pt-initfini.c: New file.
3214 2001-02-06 Ulrich Drepper <drepper@redhat.com>
3216 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: First attempt to fix the
3217 broken code. Patch by Jes Sorensen.
3219 2001-02-06 Andreas Jaeger <aj@suse.de>
3221 * sysdeps/pthread/pthread.h: Move __pthread_initialize from here
3223 * internals.h: ...here.
3225 2001-02-05 Jes Sorensen <jes@linuxcare.com>
3227 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
3229 2001-02-02 Ulrich Drepper <drepper@redhat.com>
3231 * Versions: Remove __pthread_initialize_minimal.
3233 2001-02-01 Ulrich Drepper <drepper@redhat.com>
3235 * Makefile: Add rules to build crti.o and make it being used in
3236 building libpthread.so.
3237 * sysdeps/i386/Makefile: New file.
3238 * sysdeps/pthread/pt-initfini.c: New file.
3240 * pthread.c: Cleanups.
3242 2001-01-28 Andreas Jaeger <aj@suse.de>
3244 * oldsemaphore.c (__old_sem_init): Adjust for last change.
3245 * sysdeps/pthread/bits/libc-lock.h: Likewise.
3246 * spinlock.c: Likewise.
3248 2001-01-28 Ulrich Drepper <drepper@redhat.com>
3250 * sysdeps/pthread/bits/initspin.h: Make all names namespace clean.
3251 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
3252 * manager.c: Adjust for namespace cleanup in bits/initspin.h.
3253 * pthread.c: Likewise.
3254 * spinlock.h: Likewise.
3255 * sysdeps/pthread/pthread.h: Likewise.
3257 2001-01-26 Ulrich Drepper <drepper@redhat.com>
3259 * sysdeps/pthread/bits/pthreadtypes.h: Define pthread_attr_t also
3260 as struct __pthread_attr_s.
3262 * semaphore.h (sem_t): Cleanup namespace, rename status and
3265 2001-01-13 Jakub Jelinek <jakub@redhat.com>
3267 * pthread.c (pthread_onexit_process): Clear
3268 __pthread_manager_thread_bos after freeing it.
3269 * Makefile (tests): Add ex16.
3270 * Examples/ex16.c: New file.
3272 2001-01-11 Jakub Jelinek <jakub@redhat.com>
3274 * Makefile (CFLAGS-pthread.c): Pass -DHAVE_Z_NODELETE if ld supports
3276 * pthread.c (pthread_exit_process): Rename to...
3277 (pthread_onexit_process): ...this.
3278 (pthread_atexit_process, pthread_atexit_retcode): New.
3279 (pthread_initialize): Call __cxa_atexit instead of __cxa_on_exit
3280 and only if HAVE_Z_NODELETE is not defined.
3281 (__pthread_initialize_manager): Register pthread_atexit_retcode
3284 2001-01-11 Ulrich Drepper <drepper@redhat.com>
3286 * pthread.c (pthread_initialize): Use __cxs_on_exit not __cxa_atexit.
3288 2001-01-11 Jakub Jelinek <jakub@redhat.com>
3290 * Makefile (tests): Add ex15.
3291 * Examples/ex15.c: New test.
3293 2001-01-08 Ulrich Drepper <drepper@redhat.com>
3295 * pthread.c (pthread_exit_process): Free memory allocated for
3298 2000-12-31 Ulrich Drepper <drepper@redhat.com>
3300 * manager.c (pthread_alloca_stack): Remove MAP_FIXED from mmap calls.
3301 (pthread_free): Always unmap the stack. It's safe now that we don't
3302 use MAP_FIXED to allocate stacks.
3304 2000-12-31 Ulrich Drepper <drepper@redhat.com>
3306 * sysdeps/powerpc/pspinlock.c: Don't include pt-machine.h here.
3308 * manager.c (pthread_allocate_stack): Prepare for removal of MAP_FIXED.
3310 2000-11-15 Wolfram Gloger <wg@malloc.de>
3312 * manager.c (pthread_free): [!FLOATING_STACKS]: Only remap the
3313 stack to PROT_NONE, don't unmap it, avoiding collisions with malloc.
3315 2000-12-27 Andreas Jaeger <aj@suse.de>
3317 * Examples/ex13.c: Make local functions static.
3318 * ecmutex.c: Likewise.
3319 * joinrace.c: Likewise.
3320 * Examples/ex14.c: Likewise.
3322 * Examples/ex2.c: Make local functions static; reformat.
3323 * Examples/ex1.c: Likewise.
3324 * Examples/ex4.c: Likewise.
3325 * Examples/ex5.c: Likewise.
3326 * Examples/ex7.c: Likewise.
3328 * oldsemaphore.c: Add prototypes to shut up GCC.
3329 * pt-machine.c: Likewise.
3331 * weaks.c: Add prototype for pthread_exit.
3333 * internals.h: Add some prototypes, format prototypes and add
3335 Move __libc_waitpid prototype to include/sys/wait.h.
3337 * rwlock.c: Include <bits/libc-lock.h> for prototypes.
3338 * mutex.c: Likewise.
3339 * specific.c: Likewise.
3340 * ptfork.c: Likewise.
3342 * lockfile.c: Include internals.h to get prototypes.
3343 * events.c: Likewise.
3344 * sysdeps/alpha/pspinlock.c: Likewise.
3345 * sysdeps/arm/pspinlock.c: Likewise.
3346 * sysdeps/hppa/pspinlock.c: Likewise.
3347 * sysdeps/i386/pspinlock.c: Likewise.
3348 * sysdeps/ia64/pspinlock.c: Likewise.
3349 * sysdeps/m68k/pspinlock.c: Likewise.
3350 * sysdeps/mips/pspinlock.c: Likewise.
3351 * sysdeps/powerpc/pspinlock.c: Likewise.
3352 * sysdeps/s390/pspinlock.c: Likewise.
3353 * sysdeps/sh/pspinlock.c: Likewise.
3354 * sysdeps/sparc/sparc32/pspinlock.c: Likewise.
3355 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
3356 * sysdeps/sparc/sparc64/pspinlock.c: Likewise.
3358 2000-12-27 Ulrich Drepper <drepper@redhat.com>
3360 * attr.c (__pthread_attr_setstack): Fix setting of __stackaddr element.
3361 (__pthread_attr_getstack): Return correct address.
3362 Add warnings for using pthread_attr_getstackaddr and
3363 pthread_attr_setstackaddr.
3365 2000-12-26 Ulrich Drepper <drepper@redhat.com>
3367 * Examples/ex6.c (test_thread): Make static.
3368 * Examples/ex12.c (test_thread): Make static and add noreturn
3371 2000-12-18 Jes Sorensen <jes@linuxcare.com>
3373 * linuxthreads/sysdeps/ia64/pt-machine.h: __compare_and_swap
3374 and compare_and_swap_with_release_semantics returns int not long.
3376 2000-12-17 Andreas Jaeger <aj@suse.de>
3378 * sysdeps/s390/pt-machine.h (testandset): Use long int as return
3380 * sysdeps/arm/pt-machine.h (testandset): Likewise.
3381 * sysdeps/hppa/pt-machine.h (testandset): Likewise.
3382 * sysdeps/m68k/pt-machine.h (testandset): Likewise.
3383 * sysdeps/sh/pt-machine.h (testandset): Likewise.
3384 * sysdeps/sparc/sparc32/pt-machine.h (testandset): Likewise.
3385 * sysdeps/sparc/sparc64/pt-machine.h (testandset): Likewise.
3387 2000-12-17 Ulrich Drepper <drepper@redhat.com>
3389 * sysdeps/i386/pt-machine.h (testandset): Adjust for prototype change.
3390 * sysdeps/i386/i686/pt-machine.h (testandset): Likewise.
3392 2000-12-17 Andreas Jaeger <aj@suse.de>
3394 * internals.h: Add prototypes for testandset and
3395 __compare_and_swap to shut up gcc warnings.
3397 2000-12-06 Wolfram Gloger <wg@malloc.de>
3399 * join.c (pthread_detach): Allow case where the thread has already
3402 2000-12-05 Andreas Jaeger <aj@suse.de>
3404 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Don't set mips2.
3405 * sysdeps/mips/pt-machine.h (testandset): Likewise.
3406 (__compare_and_swap): Likewise.
3407 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
3409 2000-11-20 Jakub Jelinek <jakub@redhat.com>
3411 * Examples/ex3.c (main): Cast int to long before casting to void *.
3412 (search): Cast void * to long, not int.
3413 * Examples/ex8.c (main, thread): Similarly.
3414 * Examples/ex11.c (main): Similarly.
3415 * Examples/ex14.c (worker, do_test): Similarly.
3416 * ecmutex.c (worker, do_test): Similarly.
3417 (nlocks): Cast to int.
3419 2000-11-08 Bruce Mitchener <bruce@cubik.org>
3421 * linuxthreads.texi: Add documentation for pthreads attributes
3422 guardsize, stackaddr, stacksize, and stack. Fix typo in previous
3423 patch. Document pthread_[sg]etconcurrency(). Mark
3424 pthread_mutexattr_[sg]ettype() as POSIX rather than GNU.
3426 2000-11-07 Ulrich Drepper <drepper@redhat.com>
3428 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
3430 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3431 Reported by Christopher Yeoh <cyeoh@linuxcare.com.au>.
3433 2000-11-06 Ulrich Drepper <drepper@redhat.com>
3435 * cancel.c (pthread_cancel): Always set p_canceled, even if we are
3436 not doing it right now.
3437 Reported by Kaz Kylheku <kaz@ashi.footprints.net>.