]> git.ipfire.org Git - thirdparty/glibc.git/blame - linuxthreads/ChangeLog
Test for stack alignment.
[thirdparty/glibc.git] / linuxthreads / ChangeLog
CommitLineData
410828e4
UD
12004-12-12 Ulrich Drepper <drepper@redhat.com>
2
3 * internals.h: Include <stdbool.h> to match includes used in nptl.
4
dc165f7b
UD
52004-12-01 Jakub Jelinek <jakub@redhat.coM.
6
7 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
8 _POSIX_THREAD_CPUTIME): Define to 0.
9 * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
10 handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
11 * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
12 __timer_signal_thread_tclk): Remove.
13 (init_module): Remove their initialization.
14 (thread_cleanup): Remove their cleanup assertions.
15 * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
16 __timer_signal_thread_tclk): Remove.
17 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
18 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
19 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
20 * tst-clock1.c (do_test): Check for availability of CPU clock.
21
577e4aa1
RM
222004-11-18 Daniel Jacobowitz <dan@codesourcery.com>
23
24 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: Update RETINSTR use.
25 * sysdeps/unix/sysv/linux/arm/vfork.S: Likewise.
26
3f488b9c
RM
272004-12-02 Roland McGrath <roland@redhat.com>
28
29 * Makefile (libpthread-nonshared): Variable removed.
30 ($(objpfx)libpthread_nonshared.a): Target removed.
31 ($(inst_libdir)/libpthread_nonshared.a): Likewise.
32 These are now handled by generic magic from
33 libpthread-static-only-routines being set.
34
597ce09c
UD
352004-11-27 Ulrich Drepper <drepper@redhat.com>
36
37 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
38 _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
39 _POSIX_THREAD_PRIO_PROTECT): Define.
40 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
41 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
42 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
43
60e4523a
UD
442004-11-26 Jakub Jelinek <jakub@redhat.com>
45
46 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
47 _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
48 _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
49 _POSIX_TYPED_MEMORY_OBJECTS): Define.
50 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
51 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
52 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
53
c997e9d4
AJ
542004-11-05 Maciej W. Rozycki <macro@mips.com>
55
56 * sysdeps/mips/pspinlock.c: Include <sgidefs.h>. Use _ABIO32,
57 _ABIN32 and _ABI64 for ABI selection throughout.
58 * sysdeps/mips/pt-machine.h: Use _ABIO32, _ABIN32 and _ABI64 for
59 ABI selection throughout.
60
ad269d83
RM
612004-10-18 Roland McGrath <roland@redhat.com>
62
63 [BZ #406]
64 * Makefile (linuxthreads-CPPFLAGS): New variable;
65 adds -DIS_IN_linuxthreads=1.
66 * sysdeps/i386/tls.h: Protect "useldt.h" with
67 [!IS_IN_linuxthreads && !DO_MODIFY_LDT].
68 * sysdeps/i386/i686/pt-machine.h: Revert last change.
69
5ca3d19c
UD
702004-10-14 Jakub Jelinek <jakub@redhat.com>
71
72 * sysdeps/pthread/errno-loc.c: Don't undef #errno
73 if RTLD_PRIVATE_ERRNO.
74
67060ef5
UD
752004-10-05 Dwayne Grant McConnell <dgm69@us.ibm.com>
76
77 * pthread.c: Mask restart signal during cancel signal handler.
78
6ab5f50d
UD
792004-10-05 Jakub Jelinek <jakub@redhat.com>
80
81 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
82 _POSIX_THREAD_CPUTIME): Define to 0.
83
3078cba2
UD
842004-10-04 Ulrich Drepper <drepper@redhat.com>
85
94d824f9
UD
86 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Set _POSIX_CPUTIME
87 and _POSIX_THREAD_CPUTIME to zero.
88 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
89
3078cba2
UD
90 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
91 _POSIX_THREAD_PROCESS_SHARED and _POSIX_CLOCK_SELECTION as -1.
92 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
93 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
94 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
95
9fd3ceae
RM
962004-09-25 Roland McGrath <roland@redhat.com>
97
98 [BZ #406]
99 * sysdeps/i386/i686/pt-machine.h: Don't #include "../useldt.h" if
100 [_TLS_H], since sysdeps/i386/tls.h includes it after including us.
101
5fa3cee8
RM
1022004-09-24 Roland McGrath <roland@redhat.com>
103
104 [BZ #406]
105 * sysdeps/i386/tls.h: Move #include "useldt.h" outside
106 of [__ASSUME_LDT_WORKS > 0] test.
107 Reported by Carlos Velasco <carlos.velasco@newipnet.com>.
108
31ff71d8
RM
1092004-09-21 Roland McGrath <roland@redhat.com>
110
111 * Versions: Add comment about linuxthreads' frozen ABI.
112
65f0beb9
UD
1132004-09-20 Ulrich Drepper <drepper@redhat.com>
114
115 * Versions: Remove exports for pthread_set*id_np functions.
116 * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
117 for now.
118 * Makefile: Don't build pthread_set*id code for now.
119
2edb61e3
UD
1202004-09-19 Ulrich Drepper <drepper@redhat.com>
121
122 * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
123 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
124 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
125 and pthread_setresuid_np.
126 * pthread_setgid_np.c: New file.
127 * pthread_setuid_np.c: New file.
128 * pthread_setegid_np.c: New file.
129 * pthread_seteuid_np.c: New file.
130 * pthread_setregid_np.c: New file.
131 * pthread_setreuid_np.c: New file.
132 * pthread_setresgid_np.c: New file.
133 * pthread_setresuid_np.c: New file.
134 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
135 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
136 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
137 and pthread_setresuid_np.
138 * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
139 pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
140 pthread_setregid, and pthread_setresgid.
141
ccc63b07
UD
1422004-09-12 Ulrich Drepper <drepper@redhat.com>
143
144 * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
145 for __USE_XOPEN2K.
146 * sysdeps/pthread/bits/pthreadtypes.h: Define rwlock types also
147 for __USE_XOPEN2K. [BZ #320]
148
e2e2181e
RM
1492004-09-04 Jakub Jelinek <jakub@redhat.com>
150
151 * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
152
e0329987
UD
1532004-09-07 Ulrich Drepper <drepper@redhat.com>
154
155 * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
156 the initialization function might throw.
157
d2e75f65
RM
1582004-08-30 Roland McGrath <roland@frob.com>
159
160 * Makefile (libpthread-abi-frozen): New variable.
161
c80e931a
RM
1622004-08-26 Roland McGrath <roland@redhat.com>
163
164 * configure.in: New file. If nptl add-on is also selected, barf if
165 explicit and elide ourselves if implicit.
166 * configure: Now generated.
167
ec450c4b
AJ
1682004-08-25 Richard Sandiford <rsandifo@redhat.com>
169
170 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h (CENABLE, CDISABLE,
171 __local_multiple_threads): Fix definitions for IS_IN_librt.
172 * sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h: Likewise.
173
ef786da1
UD
1742004-08-22 Andreas Schwab <schwab@suse.de>
175
176 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO) [IS_IN_librt]:
177 Save gp around CENABLE/CDISABLE calls.
178
92c6ccd1
RM
1792004-08-15 Roland McGrath <roland@frob.com>
180
181 * pthread_atfork.c: Update copyright terms including special exception
182 for these trivial files, which are statically linked into executables
183 that use dynamic linking for the significant library code.
184
5b6f86b3
UD
1852004-08-09 Jakub Jelinek <jakub@redhat.com>
186
187 * libc-tsd.c: Move resolv.h include before the #if.
188 (__res_maybe_init): New function. Add libc_hidden_def.
189
f95bb511
UD
1902004-08-02 Ulrich Drepper <drepper@redhat.com>
191
192 * linuxthreads.texi (Cleanup Handlers): Fix typo.
193 Reported by Bjoern Engelmann <bjengelmann@gmx.de>.
194
15ef4b55
UD
1952004-07-23 Jakub Jelinek <jakub@redhat.com>
196
197 [BZ #284]
198 * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
199 instead of clockid_t.
200
4fb907b7
RM
2012004-07-21 Roland McGrath <roland@redhat.com>
202
203 * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
204
8f73811b
RM
2052004-07-02 Roland McGrath <roland@redhat.com>
206
207 * configure: Don't exit.
208
918f187f
AJ
2092004-07-20 Alexandre Oliva <aoliva@redhat.com>
210
16e6e834
AJ
211 * sysdeps/mips/pt-machine.h: Use standard names for ABI macros,
212 include sgidefs.h.
213 * sysdeps/mips/atomicity.h: Likewise.
918f187f 214
b27e7a54
AJ
2152004-07-19 Alexandre Oliva <aoliva@redhat.com>
216
217 * sysdeps/unix/sysv/linux/mips/Makefile (CFLAGS-pt-initfini.s):
218 Remove redundant override that missed -g0.
219
290639c3
UD
2202004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
221
222 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
223 (__local_multiple_threads): Define for librt.
224 (SINGLE_THREAD_P): Likewise.
225
1b8cbd08
UD
2262004-07-07 Jakub Jelinek <jakub@redhat.com>
227
228 * sysdeps/pthread/getcpuclockid.c (pthread_getcpuclockid): Allow
229 using other thread's clock.
230 * ptclock_gettime.c (__pthread_clock_gettime): Likewise.
231 * ptclock_settime.c (__pthread_clock_settime): Likewise.
232 * internals.h (__pthread_clock_gettime, __pthread_clock_settime):
233 Remove prototypes.
234 Reported by Bernd Schmidt <bernds@redhat.com>.
235 * Makefile (librt-tests): Add tst-clock1.
236 * tst-clock1.c: New test.
237
238 * sysdeps/x86_64/Versions: New file.
239 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
240 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
241
ece385db
UD
2422004-04-16 Andreas Schwab <schwab@suse.de>
243
244 * sysdeps/ia64/tls.h (INIT_SYSINFO): Cast dl_sysinfo to void*.
245
2dd18ce2
UD
2462004-07-05 Jakub Jelinek <jakub@redhat.com>
247
248 * sysdeps/s390/pspinlock.c (__pthread_spin_lock,
249 __pthread_spin_trylock): Use constraint "m" instead of "0" for
250 futex.
251 * sysdeps/ia64/pt-machine.h (__compare_and_swap,
252 __compare_and_swap_with_release_semantic, testandset): Use
253 constraint "m" instead of "0" for futex.
254
d3d35527
UD
2552004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
256
257 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Fix
258 branch offset for a PLT entry.
259 (CDISABLE): Likewise.
260
d3db7f92
AJ
2612004-05-31 Andreas Jaeger <aj@suse.de>
262
263 * sysdeps/unix/sysv/linux/mips/Makefile (CFLAGS-pt-initfini.s):
264 Set to -fno-unit-at-a-time.
265 Patch by Dan Kegel <dank@kegel.com>.
266
2d7ae210
UD
2672004-05-04 Jakub Jelinek <jakub@redhat.com>
268
269 * tst-stack1.c: Don't include mcheck.h.
270 (do_test): Make sure user defined stacks aren't reused,
271 don't free them at the end. [BZ #110]
272
27b02589
UD
2732004-05-02 Jakub Jelinek <jakub@redhat.com>
274
275 * manager.c: Include not-cancel.h.
276 (__pthread_manager): Use read_not_cancel instead of __libc_read.
277 (pthread_start_thread, __pthread_manager_sighandler): Use
278 write_not_cancel instead of __libc_write.
279 (pthread_reap_children): Use waitpid_not_cancel instead of
280 __libc_waitpid.
281 * pthread.c: Include not-cancel.h.
282 (__pthread_initialize_minimal, __pthread_create_2_1,
283 pthread_onexit_process, __pthread_message): Use
284 write_not_cancel instead of __libc_write.
285 (__pthread_initialize_manager): Likewise. Use close_not_cancel
286 instead of __libc_close.
287 (__pthread_reset_main_thread): Use close_not_cancel instead of
288 __libc_close.
289 * join.c: Include not-cancel.h.
290 (__pthread_do_exit, pthread_join, pthread_detach): Use
291 write_not_cancel instead of __libc_write.
292 * semaphore.c: Include not-cancel.h.
293 (__new_sem_post): Use write_not_cancel instead of __libc_write.
294 * specific.c: Include not-cancel.h.
295 (pthread_key_delete): Use write_not_cancel instead of __libc_write.
296
4bb8fc33
UD
2972004-05-01 Jakub Jelinek <jakub@redhat.com>
298
299 * Versions (libc): Add __on_exit and __libc_sigaction.
300
6f0b2e1f
RM
3012004-04-28 Jakub Jelinek <jakub@redhat.com>
302
303 * semaphore.c (sem_timedwait): Return -1 and set errno instead of
304 returning error number [BZ #133]. Patch by <rmhaddad@yahoo.com>.
305
091e1f6a
UD
3062004-04-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
307
308 * sysdeps/unix/sysv/linux/sh/vfork.S: Fix wrong function pointer
309 reference in PIC case.
310
f9a06dc1
UD
3112004-04-20 Jakub Jelinek <jakub@redhat.com>
312
313 * oldsemaphore.c (SEM_VALUE_MAX): Remove.
314
bfa26122
UD
3152004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
316
317 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Define
318 for librt. Save the return value to a safe register.
319 (CDISABLE): Define for librt. Set the function argument correctly.
320
72c41589
UD
3212004-04-18 Jakub Jelinek <jakub@redhat.com>
322
323 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
324 (PSEUDO_CANCEL): Define.
325 (PSEUDO): Use it.
326 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
327 CDISABLE): For librt, append @PLT.
328
1683daeb
UD
3292004-04-17 Jakub Jelinek <jakub@redhat.com>
330
331 * sysdeps/x86_64/tls.h [!__ASSEMBLER__]: Include tcb-offsets.h.
332
333 * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
334 return it_value { 0, 0 }.
335 * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
336 like SIGEV_SIGNAL.
337 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
338 assertion for SIGEV_NONE.
339 (thread_attr_compare): Compare all attributes, not just a partial
340 subset.
341
342 * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
343
f532641d
UD
3442004-04-17 Ulrich Drepper <drepper@redhat.com>
345
346 * semaphore.h (SEM_VALUE_MAX): Just use a plain number.
347
edb4d496
UD
3482004-04-16 Ulrich Drepper <drepper@redhat.com>
349
350 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix last patch.
351
f93fa7d4
UD
3522004-04-13 Jakub Jelinek <jakub@redhat.com>
353
354 * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
355
e079c228
UD
3562004-04-12 Ulrich Drepper <drepper@redhat.com>
357
358 * sysdeps/unix/sysv/linux/mq_notify.c: New file.
359
360 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE): Define
361 for librt.
362 (CDISABLE): Likewise.
363
1b82c6c7
UD
3642004-04-08 Jakub Jelinek <jakub@redhat.com>
365
366 * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
367 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
368 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
369 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
370 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
371 Define.
372 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
373 (_POSIX_MESSAGE_PASSING): Define.
374
21496a85
AJ
3752004-04-10 Andreas Jaeger <aj@suse.de>
376
377 * sysdeps/x86_64/pt-machine.h: Add used attribute to stack_pointer
378 to avoid warnings with GCC 3.5.
379
7906dd56
UD
3802004-04-09 Steven Munroe <sjmunroe@us.ibm.com>
381
382 * sysdeps/powerpc/tls.h (TLS_INIT_TP): Eliminate lvalue cast from
383 __thread_self assignment.
384 (THREAD_DTV): Replace __thread_register with __thread_self.
385 (INIT_THREAD_SELF): Eliminate lvalue cast from __thread_self
386 assignment.
387
adcd5164
UD
3882004-04-08 Alexandre Oliva <aoliva@redhat.com>
389
390 * signals.c (pthread_sigmask): Don't ever block or mask
391 __pthread_sig_debug.
392
9ce0ecbe
UD
3932004-03-11 Steven Munroe <sjmunroe@us.ibm.com>
394
395 * sysdeps/powerpc/tls.h: Remove __powerpc64__ conditional.
396
e408880b
UD
3972004-03-23 Ulrich Drepper <drepper@redhat.com>
398
399 * sysdeps/ia64/pt-machine.h (BUSY_WAIT_NOP): Define.
400 * sysdeps/x86_64/pt-machine.h (BUSY_WAIT_NOP): Likewise.
401
932dfea7
UD
4022004-03-12 Ulrich Drepper <drepper@redhat.com>
403
404 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add HOST_NAME_MAX.
405 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
406 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
407 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
408
f29ad2a5
AJ
4092004-03-08 Andreas Jaeger <aj@suse.de>
410
411 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT_KERNEL_CHECK):
412 dl_osversion is readonly.
413
001836c8
UD
4142004-03-07 Ulrich Drepper <drepper@redhat.com>
415
416 * sysdeps/i386/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
417 _rtlf_global_ro.
418 * sysdeps/ia64/tls.h (INIT_SYSINFO): Likewise.
419
f1c616fc
UD
4202004-02-20 Steven Munroe <sjmunroe@us.ibm.com>
421
5990e1fe
UD
422 * sysdeps/unix/sysv/linux/powerpc/ptlongjmp.c [SHARED]: Code only
423 valid for SHARED case. Correct spelling of __vmx_longjmp.
424
f1c616fc
UD
425 * sysdeps/powerpc/pspinlock.c: Move from here.
426 * sysdeps/powerpc/powerpc32/pspinlock.c: To here.
427 * sysdeps/powerpc/powerpc64/pspinlock.c: New file.
428 * sysdeps/powerpc/powerpc64/pt-machine.h: Define __compare_and_swap32
429 and __compare_and_swap32_with_release_semantics.
430
6e21902a
UD
4312004-02-20 Jakub Jelinek <jakub@redhat.com>
432
1be3130e
UD
433 * Makefile (generated): Remove tst-stack1.mtrace and tst-stack1-mem.
434 (tests): Remove $(objpfx)tst-stack1-mem.
435 (tst-stack1-ENV): Remove.
436 ($(objpfx)tst-stack1-mem): Remove.
437
8ba5025a
UD
438 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
439 (__syscall_error_handler2): Call CDISABLE.
440 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
441 (__syscall_error_handler2): Call CDISABLE.
33ab3b66 442
6e21902a
UD
443 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
444
5c76ff27
UD
4452004-02-10 Steven Munroe <sjmunroe@us.ibm.com>
446
447 * Makefile (libpthread-routines): Add ptcleanup.
448 * ptlongjmp.c: Removed.
449 * ptcleanup.c: Copied __pthread_cleanup_upto to here. New file.
450 * sysdeps/pthread/ptlongjmp.c: Copied longjmp to here. New file.
451 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
452 Version longjmp, siglongjmp for GLIBC_2.3.4.
453 * sysdeps/unix/sysv/linux/powerpc/ptlongjmp.c: New File.
454
1f81acbc
AJ
4552004-01-22 Andreas Jaeger <aj@suse.de>
456
457 * spinlock.c (__pthread_lock): Fix contraint to avoid warning.
458 (__pthread_release): Likewise.
459
ff151400
RH
4602004-01-16 Richard Henderson <rth@redhat.com>
461
40b334af
UD
462 * attr.c: Include ldsodefs.h.
463 (pthread_getattr_np): Don't declare __libc_stack_end.
ff151400 464
5de90b7c
UD
4652004-01-09 Steven Munroe <sjmunroe@us.ibm.com>
466
467 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
468 [!HAVE_TLS_SUPPORT]: Define SINGLE_THREAD_P using static
469 __lib*_multiple_threads.
470 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
471 [!HAVE_TLS_SUPPORT]: Likewise.
472
2d548c4f
RM
4732004-01-13 Roland McGrath <roland@redhat.com>
474
475 * sysdeps/powerpc/tcb-offsets.sym: Put -- separator line before any
476 conditionals.
477
5b2da5f3
AJ
4782004-01-10 Andreas Jaeger <aj@suse.de>
479
480 * sysdeps/unix/sysv/linux/x86_64/vfork.S: Add cfi directives.
481
454bbf21
AJ
4822004-01-01 Andreas Jaeger <aj@suse.de>
483
484 * Makefile (generated): Add missing files.
485
a31f867a
UD
4862003-12-31 Ulrich Drepper <drepper@redhat.com>
487
488 * attr.c (pthread_getattr_np): Make sure stack info returned for
489 main thread does not overlap with any other VMA.
490 Patch by Jakub Jelinek.
491
e5ebb9ca
UD
4922003-12-29 Jakub Jelinek <jakub@redhat.com>
493
494 * sysdeps/ia64/tls.h: Include dl-sysdep.h.
495 (INIT_SYSINFO): Define.
496 (TLS_INIT_TP): Use it.
497
5a299c96
UD
4982003-12-28 Carlos O'Donell <carlos@baldric.uwo.ca>
499
500 * attr.c (pthread_getattr_np): Add _STACK_GROWS_UP case.
501
dc8527f6
UD
5022003-12-26 Jakub Jelinek <jakub@redhat.com>
503
504 * sysdeps/pthread/pthread.h (pthread_setcancelstate,
505 pthread_setcanceltype, pthread_cancel, pthread_testcancel): Remove
506 __THROW.
507 * semaphore.h (sem_wait, sem_timedwait): Likewise.
508
e796f92f
UD
5092003-12-17 Jakub Jelinek <jakub@redhat.com>
510
511 * manager.c (pthread_free): Call _dl_deallocate_tls even for
512 p_userstack threads.
513 * pthread.c (__pthread_initialize_manager): Call _dl_deallocate_tls
514 on error.
515 (pthread_onexit_process): Update comment.
516 * Makefile (tests): Add tst-stack1. Depend on $(objpfx)tst-stack1-mem.
517 (generated): Add tst-stack1.mtrace and tst-stack1-mem.
518 (tst-stack1-ENV): Set.
519 ($(objpfx)tst-stack1-mem): New.
520 * tst-stack1.c: New test.
521
02786528
UD
5222003-12-16 Steven Munroe <sjmunroe@us.ibm.com>
523
524 * sysdeps/powerpc/tcb-offsets.sym [!__powerpc64__]: Remove
525 conditional so MULTIPLE_THREADS_OFFSET is generated for both.
526 * sysdeps/powerpc/tls.h [!__powerpc64__]: Remove conditional
527 so TLS_MULTIPLE_THREADS_IN_TCB is generated for both.
528 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h:
529 Include tls.h.
530
1ce9631b
UD
5312003-12-04 Steven Munroe <sjmunroe@us.ibm.com>
532
533 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
534 (SINGLE_THREAD_P): Test using thread local p_multiple_threads field.
535
092eb73c
UD
5362003-12-10 David Mosberger <davidm@hpl.hp.com>
537
538 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Update copyright
539 message. Add include of <stddef.h>.
540 (INIT_NEW_WAY): New macro.
541 (INIT_OLD_WAY): Likewise.
542 (_init): Add unwind directives. Invoke
543 __pthread_initialize_minimal() via INIT_NEW_WAY or INIT_OLD_WAY,
544 respectively.
545 (_init_EPILOG_BEGINS): Add unwind-directives. Drop unused .regstk
546 directive.
547 (_fini): Add unwind directives. Drop unnecessary .align 16
548 directive (bundles are always 16-byte aligned).
549 (_fini_EPILOG_BEGINS): Add unwind-directives.
550
c776b3d7
UD
5512003-11-19 David Mosberger <davidm@hpl.hp.com>
552
553 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
554
8b4615cc
AJ
5552003-12-10 Andreas Jaeger <aj@suse.de>
556 Ruediger Oertel <ro@suse.de>
557
c776b3d7 558 * sysdeps/alpha/elf/pt-initfini.c (__asm__): Remove extra .prologue.
8b4615cc 559
8ca203e6
AJ
5602003-11-30 Andreas Jaeger <aj@suse.de>
561
562 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
563 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
564 Likewise.
565
93787845
UD
5662003-11-04 Jakub Jelinek <jakub@redhat.com>
567
568 * signals.c (__pthread_sigaction): Set __sighandler[sig].old before
569 __libc_sigaction if it has been one of the special values before.
570
a21a20a3
UD
5712003-10-06 Carlos O'Donell <carlos@baldric.uwo.ca>
572
573 * pthread.c (__pthread_self_stack): _STACK_GROWS_UP case added.
574 (__pthread_find_self): Likewise.
575 * manager.c (thread_segment): _STACK_GROWS_UP case added.
576
1769a73f
UD
5772003-10-10 Carlos O'Donell <carlos@baldric.uwo.ca>
578
579 * linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h: New file.
580
8f2e25b4
RM
5812003-10-10 Carlos O'Donell <carlos@baldric.uwo.ca>
582
583 * sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h: New file.
584
e700a908
UD
5852003-10-07 Jakub Jelinek <jakub@redhat.com>
586
587 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
588 changes.
589 (SAVE_OLDTYPE_0): Fix a typo.
590
134abcb5
UD
5912003-10-02 Ulrich Drepper <drepper@redhat.com>
592
593 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
594 correct offset.
595
b77ca0e8
UD
5962003-10-02 Jakub Jelinek <jakub@redhat.com>
597
598 * Makefile (tests): Add tst-cancel8.
599 * tst-cancel8.c: New test.
600
0d297437
UD
6012003-10-02 Ulrich Drepper <drepper@redhat.com>
602
603 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
604 restoring of the old cancellation type.
605
f28c14d6
RM
6062003-09-10 Chris Demetriou <cgd@broadcom.com>
607
608 * sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h: New file.
609
c1384d10
UD
6102003-09-30 Jakub Jelinek <jakub@redhat.com>
611
612 * sysdeps/pthread/malloc-machine.h [!__libc_maybe_call2] (mutex_init,
613 mutex_lock, mutex_trylock, mutex_unlock): Remove.
614
6152003-09-27 Wolfram Gloger <wg@malloc.de>
616
617 * sysdeps/pthread/malloc-machine.h: New file.
618
6a8a852b
UD
6192003-09-18 H.J. Lu <hongjiu.lu@intel.com>
620
621 * attr.c (__pthread_attr_init_2_1): Double __guardsize size
622 if NEED_SEPARATE_REGISTER_STACK is defined.
623
571f2090
UD
6242003-09-22 Philip Blundell <philb@gnu.org>
625
626 * forward.c: Add _pthread_cleanup_push, _pthread_cleanup_pop.
627 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
628 Likewise.
629 * pthread.c (__pthread_elements): Initialise these new elements.
630 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Use
631 __libc_maybe_call.
632 (__libc_cleanup_pop): Likewise.
633
365b1602
UD
6342003-09-22 Jakub Jelinek <jakub@redhat.com>
635
636 * attr.c: Include stdlib.h.
637
8b8074da
UD
6382003-09-18 Jakub Jelinek <jakub@redhat.com>
639
640 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
641
642 * tst-attr1.c: New test.
643 * Makefile (tests): Add tst-attr1.
644
06f6ca90
UD
6452003-09-17 Philip Blundell <philb@gnu.org>
646
647 * sysdeps/unix/sysv/linux/arm/vfork.S: Branch to fork if
648 libpthread is loaded. Elide backwards compatibility code when not
649 required.
650
65af7e61
UD
6512003-09-17 Jakub Jelinek <jakub@redhat.com>
652
653 * descr.h (manager_thread): Rename to...
654 (__pthread_manager_threadp): ... this.
655 * pthread.c (manager_thread): Define to __pthread_manager_threadp.
656 (__pthread_manager_threadp): New variable.
657 * internals.h (__manager_thread): Define to
658 __pthread_manager_threadp if USE_TLS.
659
3402852c
UD
6602003-09-15 Jakub Jelinek <jakub@redhat.com>
661
662 * sysdeps/i386/Makefile (CFLAGS-cancel.c, CFLAGS-manager.c,
663 CFLAGS-pthread.c, CFLAGS-sighandler.c): Add
664 -mpreferred-stack-boundary=4.
665
92ce4676
UD
6662003-09-16 Ulrich Drepper <drepper@redhat.com>
667
668 * attr.c (pthread_getattr_np): Correctly fill in the stack-related
669 values for the initial thread.
670
a243f94e
UD
6712003-09-17 Jakub Jelinek <jakub@redhat.com>
672
673 * pthread.c (manager_thread): Remove static, add attribute_hidden.
674 (thread_self_stack): Rename to...
675 (__pthread_self_stack): ... this. Remove static.
676 (pthread_handle_sigcancel): Use check_thread_self ().
677 (pthread_handle_sigrestart): Likewise.
678 * sighandler.c (__pthread_sighandler, __pthread_sighandler_rt):
679 Likewise.
680 * descr.h (manager_thread): Declare.
681 * internals.h (__pthread_self_stack): New prototype.
682 (__manager_thread): Define.
683 (check_thread_self): New function.
684
e07bb02a
UD
6852003-09-15 Jakub Jelinek <jakub@redhat.com>
686
687 * Makefile (CFLAGS-mutex.c): Add $(uses-callbacks).
688 (CFLAGS-sighandler.c): Change $(exceptions) into $(uses-callbacks).
689
9b995718
UD
6902003-09-12 Jakub Jelinek <jakub@redhat.com>
691
692 * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: New.
693 (__SSIZE_T_TYPE): Define to __SWORD_TYPE for gcc 2.95.x and
694 __SLONGWORD_TYPE otherwise.
695
854f9ec4
UD
6962003-09-11 Steven Munroe <sjmunroe@us.ibm.com>
697
698 * sysdeps/powerpc/powerpc64/pt-machine.h [MEMORY_BARRIER]: Use lwsync.
699 [READ_MEMORY_BARRIER]: Define.
700 [WRITE_MEMORY_BARRIER]: Define.
701
38791048
RM
7022003-09-10 Jakub Jelinek <jakub@redhat.com>
703
704 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Move
705 ptr___pthread_cond_timedwait to the end of the structure to avoid
706 breaking Wine unnecessarily.
707
806e4a4a
UD
7082003-09-08 Jakub Jelinek <jakub@redhat.com>
709
710 * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: Remove.
711
e29ef647
UD
7122003-09-02 Jakub Jelinek <jakub@redhat.com>
713
4a244f0d
UD
714 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
715 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
716 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
717 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
718 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
719 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
720 * attr.c (__old_pthread_attr_setstacksize,
721 __old_pthread_attr_setstack): New functions.
722 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
723 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
724 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
725 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
726 * tststack.c: Include limits.h and sys/param.h.
727 (main): Set size to MAX (70 * 1024, PTHREAD_STACK_MIN).
728
e29ef647
UD
729 * barrier.c (__pthread_barrierattr_getpshared): Always
730 return PTHREAD_PROCESS_PRIVATE.
731 (pthread_barrierattr_setpshared): Return EINVAL if pshared
732 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
733
7da1e911
UD
7342003-09-02 Ulrich Drepper <drepper@redhat.com>
735
14feaff3
UD
736 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
737 (DL_SYSINFO_IMPLEMENTATION): Add CFI and make sure the code ends
738 up in .text.
739
7da1e911
UD
740 * barrier.c (pthread_barrierattr_setpshared): We don't handle
741 inter-process barriers.
742
c874a32e
UD
7432003-09-01 Jakub Jelinek <jakub@redhat.com>
744
745 * Makefile (tests): Add tst-tls1.
746 (module-names): Add tst-tls1mod{,a,b,c,d,e,f}.
747 ($(objpfx)tst-tls1mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
748 ($(objpfx)tst-tls1): New.
749 ($(objpfx)tst-tls2.out): Likewise.
750 (tests): Depend on $(objpfx)tst-tls2.out.
751 * tst-tls1.c: New test.
752 * tst-tls1.h: New.
753 * tst-tls1mod.c: New.
754 * tst-tls1moda.c: New.
755 * tst-tls1modb.c: New.
756 * tst-tls1modc.c: New.
757 * tst-tls1modd.c: New.
758 * tst-tls1mode.c: New.
759 * tst-tls1modf.c: New.
760 * tst-tls2.sh: New test.
761
c503d3dc
UD
762 * internals.h (__pthread_cond_timedwait): New prototype.
763 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
764 ptr___pthread_cond_timedwait.
765 * pthread.c (__pthread_functions): Initialize them.
766 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
767 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
768 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
769 pthread_cond_timedwait@@GLIBC_2.3.2.
770
577822c0
UD
7712003-08-27 Ulrich Drepper <drepper@redhat.com>
772
773 * sysdeps/pthread/pthread.h: Don't mark pthread_exit,
774 pthread_join, pthread_cond_wait, and pthread_cond_timedwait with
775 __THROW to match NPTL.
776
b61c8aba
UD
7772003-08-13 Ulrich Drepper <drepper@redhat.com>
778
779 * sysdeps/pthread/Makefile [subdir=rt] (CPPFLAGS): Add
780 -DBROKEN_THREAD_SIGNALS.
781
ca91553a
UD
7822003-08-11 Steven Munroe <sjmunroe@us.ibm.com>
783
784 * manager.c (pthread_start_thread) [!(USE_TLS && HAVE___THREAD)]:
785 Correct spelling of per thread resolver state.
786
334fcf2a
UD
7872003-08-07 Jakub Jelinek <jakub@redhat.com>
788
789 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
790 (__rtld_lock_default_lock_recursive,
791 __rtld_lock_default_unlock_recursive): Define.
792 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
793 __rtld_lock_unlock_recursive): Define using
794 GL(_dl_rtld_*lock_recursive).
795 * pthread.c (pthread_initialize): Initialize _dl_rtld_lock_recursive
796 and _dl_rtld_unlock_recursive. Lock GL(_dl_load_lock) the same
797 number of times as GL(_dl_load_lock) using non-mt implementation was
798 nested.
799
973d66e4
UD
8002003-07-31 Jakub Jelinek <jakub@redhat.com>
801
fa65f066
UD
802 * sysdeps/pthread/bits/typesizes.h (__SSIZE_T_TYPE): Define.
803 * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h (__SSIZE_T_TYPE):
804 Likewise.
805 * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h (__SSIZE_T_TYPE):
806 Likewise.
807 * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: New file.
808
973d66e4
UD
809 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
810 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
811 PTHREAD_STACK_MIN in comments.
812
d347a4ab
UD
813 * sysdeps/alpha/pt-machine.h (PT_EI): Add
814 __attribute__((always_inline)).
815 * sysdeps/arm/pt-machine.h (PT_EI): Likewise.
816 * sysdeps/cris/pt-machine.h (PT_EI): Likewise.
817 * sysdeps/hppa/pt-machine.h (PT_EI): Likewise.
818 * sysdeps/i386/i686/pt-machine.h (PT_EI): Likewise.
819 * sysdeps/i386/pt-machine.h (PT_EI): Likewise.
820 * sysdeps/ia64/pt-machine.h (PT_EI): Likewise.
821 * sysdeps/m68k/pt-machine.h (PT_EI): Likewise.
822 * sysdeps/mips/pt-machine.h (PT_EI): Likewise.
823 * sysdeps/powerpc/powerpc32/pt-machine.h (PT_EI): Likewise.
824 * sysdeps/powerpc/powerpc64/pt-machine.h (PT_EI): Likewise.
825 * sysdeps/s390/s390-32/pt-machine.h (PT_EI): Likewise.
826 * sysdeps/s390/s390-64/pt-machine.h (PT_EI): Likewise.
827 * sysdeps/sh/pt-machine.h (PT_EI): Likewise.
828 * sysdeps/sparc/sparc32/pt-machine.h (PT_EI): Likewise.
829 * sysdeps/sparc/sparc64/pt-machine.h (PT_EI): Likewise.
830 * sysdeps/x86_64/pt-machine.h (PT_EI): Likewise.
831 * spinlock.h (__pthread_set_own_extricate_if): Likewise.
832 * sysdeps/ia64/tls.h (TLS_INIT_TP): Cast tcbp to __typeof
833 (__thread_self).
834 * Examples/ex13.c (main): Change res type to void * to avoid
835 warnings.
836 * tst-cancel.c (cleanup, inner, tf1, tf2, tf3): Comment out.
837
adc12574
UD
8382003-07-30 Jakub Jelinek <jakub@redhat.com>
839
840 * pthread.c (init_one_static_tls, __pthread_init_static_tls): New
841 functions.
842 (pthread_initialize): Initialize GL(dl_init_static_tls).
843
a7f6c66e
RM
8442003-06-19 Daniel Jacobowitz <drow@mvista.com>
845
846 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
847 before __timer_dealloc.
848 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
849 Don't call list_unlink.
850
172ce013
RM
8512003-07-29 Roland McGrath <roland@redhat.com>
852
853 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
854
8552003-07-25 Roland McGrath <roland@redhat.com>
856
857 * manager.c (pthread_start_thread): Fix typo in last change.
858
01fd72ac
AJ
8592003-07-14 Guido Guenther <agx@sigxcpu.org>
860
861 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: Add IS_IN_librt,
862 use L() for local labels.
863
9d79e037
UD
8642003-07-22 Jakub Jelinek <jakub@redhat.com>
865
866 * descr.h (struct _pthread_descr_struct): Provide p_res member
867 even if USE_TLS && HAVE___THREAD.
868 * sysdeps/pthread/res-state.c (__res_state): Return __resp
869 if USE___THREAD.
870 * manager.c: Include resolv.h.
871 (pthread_start_thread): Initialize __resp.
872 * libc-tls-loc.c (__res_state): Return __resp.
873 * Makefile (tests): Add tst-_res1.
874 (modules-names, extra-objs, test-extras, test-modules): Add support
875 for test modules.
876 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
877 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
878 -lpthread.
879 * tst-_res1.c: New test.
880 * tst-_res1mod1.c: New test.
881 * tst-_res1mod2.c: New test.
882
3f56243a
UD
8832003-07-20 Ulrich Drepper <drepper@redhat.com>
884
885 * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_push and
886 __libc_cleanup_pop.
887
888 * tst-cancel-wrappers.sh: lseek and llseek are no cancellation points.
889
75540d8a
UD
8902003-07-14 Ulrich Drepper <drepper@redhat.com>
891
892 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Fix typo
893 in test for compilation in libc.
894
57a5ea02
UD
8952003-07-04 Jakub Jelinek <jakub@redhat.com>
896
897 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
898 different symbol for the cancellation syscall wrapper and
899 non-cancellation syscall wrapper.
900 (PSEUDO_END): Define.
901
6fe93e82
RH
9022003-07-05 Richard Henderson <rth@redhat.com>
903
904 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
905
eef4a9f3
RM
9062003-06-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
907
908 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Support cancellation
909 in librt.
910
0ec2bf3d
AS
9112003-06-21 Andreas Schwab <schwab@suse.de>
912
913 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Support cancellation
914 in librt.
915
c99b6d97
RH
9162003-06-20 Richard Henderson <rth@redhat.com>
917
eef4a9f3 918 * sysdeps/unix/sysv/linux/alpha/Makefile (libpthread-routines):
c99b6d97
RH
919 Remove ptw-osf_sigprocmask.
920
f23b30e2
UD
9212003-06-18 Jakub Jelinek <jakub@redhat.com>
922
923 * internals.h (__librt_multiple_threads, __librt_enable_asynccancel,
924 __librt_disable_asynccancel): Declare.
925 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET, LIBC_CANCEL_HANDLED): Define
926 for IS_IN_librt.
927 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Support cancellation
928 in librt.
929 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
930 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
931 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
932 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
933 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
934 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
935 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
936 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
937 * sysdeps/x86_64/tcb-offsets.sym: New file.
938 * sysdeps/x86_64/Makefile: New file.
939 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
940 * Versions (libc): Export __librt_enable_asynccancel,
941 __librt_disable_asynccancel and __librt_multiple_threads as
942 GLIBC_PRIVATE.
943 * libc-cancellation.c (__librt_multiple_threads,
944 __librt_enable_asynccancel, __librt_disable_asynccancel): New aliases.
945
9d1e8e8e 9462003-06-12 Steven Munroe <sjmunroe@us.ibm.com>
2ce1a10f
UD
947
948 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
949 (SINGLE_THREAD_P): Replace @ got notation with @toc.
950
9c7ff11a
UD
9512003-06-11 Ulrich Drepper <drepper@redhat.com>
952
953 * sysdeps/powerpc/pspinlock.c (__pthread_spin_init): Fix
954 initializer [PR libc/5052].
955
54c92465
UD
9562003-06-09 Andreas Schwab <schwab@suse.de>
957
958 * Makefile: Move inclusion of ../Rules down after extra-objs is
959 fully known.
960
c3f90e26
UD
9612003-06-06 Ulrich Drepper <drepper@redhat.com>
962
963 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: New sequences for
964 5+ arg syscalls only needed for PIC.
965 Patch by Ralph Siemsen <ralphs@netwinder.org>.
966
63e1f70d
RH
9672003-06-05 Richard Henderson <rth@redhat.com>
968
969 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use
970 and require CFI assembler directives.
971 * sysdeps/unix/sysv/linux/alpha/vfork.S: Likewise.
972
b34f9a90
AJ
9732003-05-30 Andreas Jaeger <aj@suse.de>
974
975 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
976 (SAVESTK_0): Add CFI directives.
977 (SAVESTK_3): Likewise.
978 (SAVESTK_5): Likewise.
979 (RESTSTK_0): Likewise.
980 (RESTSTK_3): Likewise.
981 (RESTSTK_5): Likewise.
982
be4d8038
UD
9832003-05-05 Ulrich Drepper <drepper@redhat.com>
984
985 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Add \n to error
986 messages.
987
c6696b79
RM
9882003-05-04 Roland McGrath <roland@redhat.com>
989
990 * Makefile ($(objpfx)../libc.so): New target.
991
a52bb600
UD
9922003-04-26 Ulrich Drepper <drepper@redhat.com>
993
994 * pthread.c (__pthread_initialize_manager): Remove one last
995 p_multiple_threads call.
996
299601a1
UD
9972003-04-22 Jakub Jelinek <jakub@redhat.com>
998
468777e1
UD
999 * pthread.c (__pthread_initialize_manager): Subtract
1000 TLS_PRE_TCB_SIZE bytes from tcbp to get to descr.
1001 * manager.c (pthread_handle_create): Subtract or add TLS_PRE_TCB_SIZE
1002 instead of sizeof (pthread_descr).
1003 (pthread_free): Add TLS_PRE_TCB_SIZE instead of sizeof (pthread_descr).
1004 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define to 0.
299601a1
UD
1005 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
1006 pthread_descr.
1007 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
1008 to TLS_TCB_ALIGN.
1009 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
1010 tcbp.
1011 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
1012 unneccessarily.
1013 (NO_TLS_OFFSET): Define.
299601a1 1014
950094f8
RM
10152003-04-22 Roland McGrath <roland@redhat.com>
1016
1017 * Makeconfig (shared-thread-library): Reverse link order to work
1018 around linker bug.
1019
d63c3a70
UD
10202003-04-20 Ulrich Drepper <drepper@redhat.com>
1021
2626ed6c
UD
1022 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Make sure the
1023 compiler knows we use the ldt_entry variable and that the syscall
1024 modifies the memory.
1025
d63c3a70
UD
1026 * internals.h: Split pthread_functions definition into...
1027 * sysdeps/pthread/pthread-functions.h: ...new file.
1028
1029 * sysdeps/i386/useldt.h: Include <sysdep.h>.
1030
657a543b
RM
10312003-04-13 Jakub Jelinek <jakub@redhat.com>
1032
1033 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Rename macros to
1034 match changes in NPTL sysdep-cancel.h.
1035
0dc44b51
RM
10362003-04-11 Roland McGrath <roland@redhat.com>
1037
1038 * Makefile (multidir): Don't set the variable here with $(shell ...).
1039 ($(objpfx)multidir.mk): New target, generated makefile; include that.
1040 (generated): Append it.
1041
10422003-04-10 Jakub Jelinek <jakub@redhat.com>
1043
1044 * Makefile (multidir, crti-objs, crtn-objs): New variables.
1045 (generated-dirs): Add pathname component of multidir.
1046 (omit-deps, extra-objs): Include $(multidir)/crt? as well.
1047 ($(objpfx)libpthread.so): Depend on $(multidir)/crt?.o as well.
1048 ($(objpfx)$(multidir), $(objpfx)$(multidir)/crti.o,
1049 $(objpfx)$(multidir)/crtn.o): New.
1050 * sysdeps/unix/sysv/linux/sparc/Makefile: Removed.
1051 * sysdeps/unix/sysv/linux/x86_64/Makefile (LDFLAGS-pthread.so,
1052 before-compile, generated): Don't generate and use specs.
1053 ($(objpfx)specs): Remove.
1054
9fb0cae8
RM
10552003-04-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
1056
1057 * sysdeps/s390/pspinlock.c (__pthread_spin_unlock): Fix asm contraints.
1058
dd59050d
UD
10592003-04-03 Ulrich Drepper <drepper@redhat.com>
1060
1061 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (PSEUDO): Add
1062 missing ; after ENTRY use [PR libc/4997].
1063
ff4d6f1b
UD
10642003-04-03 Jakub Jelinek <jakub@redhat.com>
1065
1066 * pthread.c (pthread_initialize): Unblock __pthread_sig_cancel
1067 in case the parent blocked it.
1068
fabb2e1c
RM
10692003-04-02 Jakub Jelinek <jakub@redhat.com>
1070
1071 * Makefile (libpthread-routines): Add pthread_atfork.
1072 (libpthread-static-only-routines): Add pthread_atfork.
1073
9a197dcc
RM
10742003-04-01 Jakub Jelinek <jakub@redhat.com>
1075
1076 * pthread.c (__pthread_wait_for_restart_signal): Use
1077 __pthread_sigsuspend instead of sigsuspend.
1078 * internals.h (__pthread_sigsuspend): New prototype.
1079 * Makefile (libpthread-routines): Add pt-sigsuspend.
1080 (tests): Add tst-cancel7.
1081 * sysdeps/unix/sysv/linux/pt-sigsuspend.c: New file.
1082 * sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S: New file.
1083 * sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c: New file.
1084 * sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c: New file.
1085 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-sigsuspend.c: New file.
1086 * sysdeps/unix/sysv/linux/x86_64/pt-sigsuspend.c: New file.
1087 * tst-cancel7.c: New test.
1088
2bf49a01
AO
10892003-03-31 Alexandre Oliva <aoliva@redhat.com>
1090
1091 * alloca_cutoff.c: Include internals.h.
1092 * sysdeps/pthread/errno-loc.c: Include linuxthreads/internals.h.
1093 * sysdeps/pthread/herrno-loc.c: Likewise.
1094 * sysdeps/pthread/res-state.c: Likewise.
1095
09402f5b
UD
10962003-03-25 Ulrich Drepper <drepper@redhat.com>
1097
1098 * sysdeps/pthread/bits/typesizes.h: New file.
bacb0296
UD
1099 * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h: New file.
1100 * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h: New file.
09402f5b 1101
38576ab3
RM
11022003-03-24 Daniel Jacobowitz <drow@mvista.com>
1103
1104 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
1105 (DOARGS_5, DOARGS_6, DOARGS_7): Rewritten.
1106
4baa087a
RM
11072003-03-22 Jakub Jelinek <jakub@redhat.com>
1108
1109 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
1110
88b3f3ed
RM
11112003-03-21 Daniel Jacobowitz <drow@mvista.com>
1112
1113 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
1114 (SINGLE_THREAD_P_PIC): Use "reg" instead of "lr".
1115
b50946de
RM
11162003-03-21 Jakub Jelinek <jakub@redhat.com>
1117
1118 * sysdeps/i386/tls.h [__ASSUME_SET_THREAD_AREA_SYSCALL]
1119 (TLS_SETUP_GS_SEGMENT): Fix a typo.
1120
560a784f
UD
11212003-03-19 Ulrich Drepper <drepper@redhat.com>
1122
1123 * sysdeps/pthread/Makefile: Fix cut&paste error.
1124
043ad426
RM
11252003-03-18 Roland McGrath <roland@redhat.com>
1126
1127 * Versions (libpthread: GLIBC_2.2): Remove
1128 pthread_barrierattr_getpshared, never really existed.
1129 (libpthread: GLIBC_2.0): Move __pthread_initialize to ...
1130 (libpthread: GLIBC_PRIVATE): ... here.
1131
c58859ce
RM
11322003-03-14 Jakub Jelinek <jakub@redhat.com>
1133
1134 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
1135 * sysdeps/unix/sysv/linux/sparc/Makefile ($(objpfx)specs): Use full
1136 path for crt[in].o.
1137
7fb8033c
AO
11382003-03-14 Alexandre Oliva <aoliva@redhat.com>
1139
1140 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Don't .set
1141 mips2 on new abi.
1142 * sysdeps/mips/pt-machine.h (__compare_and_swap): Likewise.
1143 Handle 64-bit longs on n64.
1144
35457070
UD
11452003-03-07 Jakub Jelinek <jakub@redhat.com>
1146
1147 * sysdeps/ia64/pspinlock.c (__pthread_spin_lock,
1148 __pthread_spin_trylock): Rewritten.
1149
30e4b3f4
UD
11502003-03-06 Ulrich Drepper <drepper@redhat.com>
1151
1152 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
1153 recent kernels.
1154
ad0e8eb0
UD
11552003-03-02 Ulrich Drepper <drepper@redhat.com>
1156
885bafa1
UD
1157 * sysdeps/pthread/timer_create.c (timer_create): Return correct
1158 error for CPU clocks.
1159
ad0e8eb0
UD
1160 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
1161 _POSIX_MONOTONIC_CLOCK.
e5497892 1162 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
ad0e8eb0 1163
bb0ddc2f
RM
11642003-03-01 Roland McGrath <roland@redhat.com>
1165
1166 * sysdeps/powerpc/powerpc64/pt-machine.h
1167 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
1168 New macros.
1169 * sysdeps/powerpc/tls.h: Don't define those here.
1170
1171 * sysdeps/powerpc/tls.h [! USE_TLS && !__powerpc64__]: Define
1172 tcbhead_t with multiple_threads member.
1173 [USE_TLS] (tcbhead_t): Define minimal one-word version.
1174 [USE_TLS && !__powerpc64__] (TLS_MULTIPLE_THREADS_IN_TCB): Define.
1175 * sysdeps/powerpc/tcb-offsets.sym [USE_TLS]: Use tls.h macros to
1176 derive thread register offset of p_multiple_threads member.
1177
1178 * descr.h (struct _pthread_descr_struct) [!USE_TLS || !TLS_DTV_AT_TP]:
1179 Conditionalize p_header member on this.
1180 [TLS_MULTIPLE_THREADS_IN_TCB]: Add p_multiple_threads alternatively.
1181 * sysdeps/ia64/tls.h [USE_TLS] (TLS_MULTIPLE_THREADS_IN_TCB): Define.
1182 * sysdeps/sh/tls.h: Likewise.
1183 * sysdeps/ia64/tcb-offsets.sym [USE_TLS]: Use p_multiple_threads.
1184 * sysdeps/sh/tcb-offsets.sym: Likewise.
1185 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
1186 (SINGLE_THREAD_P): Likewise.
1187 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
1188 (SINGLE_THREAD_P): Likewise.
1189 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
1190 (SINGLE_THREAD_P): Likewise.
1191 * pthread.c (__pthread_initialize_manager): Likewise.
1192 * manager.c (pthread_handle_create): Likewise.
73a061bb
RM
1193
1194 * sysdeps/powerpc/tls.h [HAVE_TLS_SUPPORT]: Define USE_TLS and all
1195 related macros.
1196
afafddab
RM
11972003-01-31 Steven Munroe <sjmunroe@us.ibm.com>
1198
e42e757e 1199 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S [SHARED]:
afafddab
RM
1200 Conditionalize .toc section magic on this.
1201
e8783fd5
RM
12022003-02-21 Roland McGrath <roland@redhat.com>
1203
1204 * cancel.c (__pthread_perform_cleanup): Call __libc_thread_freeres
1205 instead of __rpc_thread_destroy.
1206
6f50cb00
UD
12072003-02-21 Jakub Jelinek <jakub@redhat.com>
1208
1209 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Call
1210 __fork instead of branching to it if BROKEN_SPARC_WDISP22.
1211 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
1212 Fix typo.
1213 * sysdeps/unix/sysv/linux/sparc/Makefile (specs): Add ./ prefix
1214 to crti.o and crtn.o.
1215 * sysdeps/unix/sysv/linux/x86_64/Makefile (specs): Likewise.
1216
59fed0e2
RM
12172003-02-21 Roland McGrath <roland@redhat.com>
1218
1219 * Makefile (install-lib-ldscripts): New variable.
1220
05856976
UD
12212003-02-20 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1222
1223 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Avoid short
1224 interprocedure branches.
1225
ed22820f
UD
12262003-02-19 Ulrich Drepper <drepper@redhat.com>
1227
1228 * specific.c (pthread_key_delete_helper): Don't use GETMEM, we
1229 need the target thread's lock.
1230
a5e34e04
UD
12312003-02-17 Ulrich Drepper <drepper@redhat.com>
1232
1233 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
1234 and LOGIN_NAME_MAX.
1235
b2740a3b
UD
12362003-02-17 Kevin B. Hendricks <kevin.hendricks@sympatico.ca>
1237 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1238
1239 * sysdeps/powerpc/Makefile: Handle tcb-offsets.sym.
1240 * sysdeps/powerpc/tcb-offsets.sym: New file.
1241 * sysdeps/powerpc/tls.h: New file.
1242 * sysdeps/powerpc/powerpc32/pt-machine.h (FLOATING_STACKS): Define.
1243 (ARCH_STACK_MAX_SIZE): Define.
1244 (THREAD_SELF): Define.
1245 (INIT_THREAD_SELF): Define.
1246 (THREAD_GETMEM): Define.
1247 (THREAD_GETMEM_NC): Define.
1248 (THREAD_SETMEM): Define.
1249 (THREAD_SETMEM_NC): Define.
1250 (__thread_self): Declare.
1251 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Adjust
1252 for thread register.
1253
7c6d00e6
UD
12542003-02-14 Steven Munroe <sjmunroe@us.ibm.com>
1255
1256 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
1257 Check pthread_create existance, not __pthread_fork.
1258
2067577c
UD
12592003-02-12 Ulrich Drepper <drepper@redhat.com>
1260
1261 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
1262
e5ffa64a
UD
12632003-02-10 Jakub Jelinek <jakub@redhat.com>
1264
1265 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Check
1266 pthread_create existance, not __pthread_fork.
1267 * sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise.
1268 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise.
1269 * sysdeps/unix/sysv/linux/m68k/vfork.S (__vfork): Likewise.
1270 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
1271 Likewise.
1272 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
1273 * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise.
1274 * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Likewise.
1275 Add .weak pthread_create.
1276 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Fix a typo.
1277 Check pthread_create existance, not __pthread_fork.
1278 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
1279 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Branch to
1280 __fork whenever libpthread.so is loaded.
1281
df037172
AJ
12822003-02-09 Andreas Jaeger <aj@suse.de>
1283
1284 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h:
1285 Rework: %r9 is destroyed by functions so don't use it as
1286 temporary, align stack correctly, fix parameter for CDISABLE.
1287
ae9ecd08
UD
12882003-02-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1289
1290 * sysdeps/sh/Makefile: New file.
1291 * sysdeps/sh/tcb-offsets.sym: Likewise.
1292 * sysdeps/sh/tls.h: Don't include sysdep.h. Move include
1293 of linuxthreads/descr.h after the definition of THREAD_SELF.
1294 (tcbhead_t): Use IA64 type tcbhead_t for TLS case.
1295 (TLS_TCB_SIZE): Set size of tcbhead_t.
1296 (TLS_PRE_TCB_SIZE): Define.
1297 (INSTALL_NEW_DTV): Set dtv of tcbhead_t structure instead of
1298 a member of thread structure.
1299 (THREAD_DTV): Likewise.
1300 (TLS_INIT_TP_EXPENSIVE): Remove.
1301 (TLS_INIT_TP): Set gbr register only.
1302 (THREAD_SELF): New.
1303 (INIT_THREAD_SELF): Likewise.
1304 (NONTLS_INIT_TP): New.
1305 * sysdeps/unix/sysv/linux/sh/pt-initfini.c (__fpscr_values):
1306 Remove.
1307 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Add
1308 SYSCALL_INST_PAD macro after DO_CALL.
1309 (SINGLE_THREAD_P): Fix non-PIC and TLS case so to read the
1310 correct variable.
1311 * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Branch to __fork
1312 whenever libpthread.so is loaded.
1313
bd62e50b
AS
13142003-02-08 Andreas Schwab <schwab@suse.de>
1315
1316 * sysdeps/unix/sysv/linux/m68k/vfork.S: Branch to __fork whenever
1317 libpthread.so is loaded.
1318
1f503475
UD
13192003-02-07 Ulrich Drepper <drepper@redhat.com>
1320
1321 * sysdeps/unix/sysv/linux/i386/vfork.S: Make sure
1322 __ASSUME_VFORK_SYSCALL is not defined if the kernel headers have
1323 no __NR_vfork definition.
1324
65c68990
UD
13252003-02-07 Jakub Jelinek <jakub@redhat.com>
1326
1327 * tst-popen2.c: New test.
1328 * Makefile (tests): Add tst-popen2.
1329 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Branch to __fork
1330 whenever libpthread.so is loaded.
1331 * sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise.
1332 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise.
1333 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
1f503475
UD
1334 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
1335 Likewise.
65c68990
UD
1336 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
1337 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
1338 * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise.
1339
a88c9263
UD
13402003-02-05 Ulrich Drepper <drepper@redhat.com>
1341
1342 * sysdeps/pthread/bits/libc-lock.h (__libc_once): Set control
1343 variable for non-libpthread case to the same value the
1344 pthread_once function would use.
1345
6900ded2
UD
13462003-02-03 Jakub Jelinek <jakub@redhat.com>
1347
1348 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): If
1349 BROKEN_SPARC_WDISP22, handle SHARED the same way as non-SHARED.
1350
85cb5803
AJ
13512003-02-04 Andreas Jaeger <aj@suse.de>
1352
1353 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: Do not use
1354 multi-line strings.
1355
886d5973
UD
13562003-01-30 Jakub Jelinek <jakub@redhat.com>
1357
1358 * sysdeps/s390/tls.h (TLS_INIT_TP): Return NULL, not 0.
1359
567678b6
UD
13602003-01-30 Jakub Jelinek <jakub@redhat.com>
1361
1362 * sysdeps/alpha/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC,
1363 THREAD_SETMEM, THREAD_SETMEM_NC): Avoid warnings about unused self
1364 variable.
1365 * sysdeps/ia64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
1366 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
1367 * sysdeps/s390/s390-32/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
1368 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
1369 * sysdeps/s390/s390-64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
1370 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
1371 * sysdeps/sh/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
1372 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
1373 * sysdeps/sparc/sparc32/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
1374 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
1375 * sysdeps/sparc/sparc64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
1376 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
1377
e6ebd2e4
UD
13782003-01-27 Martin Schwidefsky <schwidefsky@de.ibm.com>
1379
1380 * sysdeps/s390/s390-32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
1381 Define TLS versions.
1382 * sysdeps/s390/s390-64/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
1383 Likewise.
1384 * sysdeps/s390/tls.h [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE,
1385 TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE, TLS_TCB_ALIGN, TLS_TCB_AT_TP,
1386 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_DTV):
1387 Define.
1388 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Use
1389 branch with 32 bit offset.
1390 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise.
1391
62f29da7
UD
13922003-01-24 Jakub Jelinek <jakub@redhat.com>
1393
1394 * sysdeps/sparc/sparc32/pt-machine.h (__thread_self): Change to %g7,
1395 as required by TLS ABI.
1396 * sysdeps/sparc/sparc64/pt-machine.h (__thread_self): Likewise.
1397 * sysdeps/sparc/tls.h [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE,
1398 TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE, TLS_TCB_ALIGN, TLS_TCB_AT_TP,
1399 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_DTV):
1400 Define.
1401 [HAVE_TLS_SUPPORT]: Include descr.h and sysdep.h.
1402 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Use %g7
1403 instead of %g6 for thread pointer.
1404 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
1405 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
1406 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
1407
e4e9446b
UD
14082003-01-25 Guido Guenther <agx@sigxcpu.org>
1409
1410 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
1411 * sysdeps/unix/sysv/linux/mips/Makefile: New file.
1412
d5b6c817
UD
14132003-01-20 Martin Schwidefsky <schwidefsky@de.ibm.com>
1414
1415 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Avoid non pc relative
1416 reference to __fork.
1417
0f0b7994
UD
14182003-01-17 Richard Henderson <rth@redhat.com>
1419
1420 * sysdeps/alpha/tls.h (tcbhead_t): Clarify second member.
1421 (TLS_TCB_SIZE, TLS_TCB_ALIGN): Set for tcbhead_t.
1422 (TLS_PRE_TCB_SIZE): New.
1423 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Update for
1424 new ia64-style thread pointer layout.
1425 (THREAD_GETMEM, THREAD_GETMEM_NC): New.
1426 (THREAD_SETMEM, THREAD_SETMEM_NC): New.
1427 * sysdeps/unix/sysv/linux/alpha/vfork.S: Don't tail-call to __fork
1428 if !SHARED.
1429
7b7b9e70
UD
14302003-01-15 Jakub Jelinek <jakub@redhat.com>
1431
1432 * sysdeps/ia64/tls.h (tcbhead_t): Use the TLS ABI required layout
1433 if USE_TLS only.
1434 (NONTLS_INIT_TP): Revert last change.
1435 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define to
1436 offsetof (tcbhead_t, multiple_threads) if USE_TLS not defined.
1437
850dcfca
UD
14382003-01-16 Jakub Jelinek <jakub@redhat.com>
1439
1440 * pthread.c (_pthread_initialize_minimal): Use
1441 GL(dl_tls_dtv_slotinfo_list) != NULL to check whether TLS has
1442 been already initialized.
1443
a1f8ec97
UD
14442003-01-16 Jakub Jelinek <jakub@redhat.com>
1445
1446 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize head->sysinfo even
1447 if not SHARED.
1448
574b892e
UD
14492003-01-15 Jakub Jelinek <jakub@redhat.com>
1450
1451 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init,
1452 __libc_lock_init_recursive): Initialize fields directly.
1453
14542003-01-15 Jakub Jelinek <jakub@redhat.com>
1455
1456 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Allow
1457 __fork to be far away from __vfork ifndef SHARED.
1458 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
1459 Likewise.
1460 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
1461 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
1462 Add a missing instruction.
1463 * sysdeps/unix/sysv/linux/arm/vfork.S (__vfork): Conditionally
1464 branch to __fork even if __NR_vfork is not defined.
1465
14662003-01-14 Ulrich Drepper <drepper@redhat.com>
1467
1468 * tst-cancel-wrappers.sh: Allow .__*_asynccancel functions names
1469 as well.
1470
14712003-01-14 Steven Munroe <sjmunroe@us.ibm.com>
1472
1473 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
1474
115bb61d
UD
14752003-01-14 Jakub Jelinek <jakub@redhat.com>
1476
1477 * sysdeps/unix/sysv/linux/ia64/vfork.S (JUMPTARGET): Remove.
1478
db0a052c
UD
14792003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
1480
1481 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: Avoid
1482 unterminated string literals.
1483 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: Likewise.
1484
14852003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
1486
1487 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
1488 (PSEUDO): Code reordering. Move CENABLE and CDISABLE literals from
1489 PSEUDO_END to PSEUDO.
1490 (PSEUDO_END): Remove.
1491 (SINGLE_THREAD_P): Save an instruction.
1492 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add missing
1493 parameter to SINGLE_THREAD_P call.
1494 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
1495 Code reordering.
1496
bf8a2877
AS
14972003-01-10 Andreas Schwab <schwab@suse.de>
1498
1499 * sysdeps/unix/sysv/linux/m68k/vfork.S: New file.
1500
40212ce0
UD
15012003-01-10 Martin Schwidefsky <schwidefsky@de.ibm.com>
1502
1503 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Setup
1504 backchain in pseudo_cancel. Minor code improvements.
1505 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
1506 Likewise.
1507
15082003-01-10 Martin Schwidefsky <schwidefsky@de.ibm.com>
1509
1510 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
1511 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
1512
b398ae3c
UD
15132002-01-12 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1514
1515 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
1516
addb5f31
UD
15172002-01-09 Richard Henderson <rth@redhat.com>
1518
1519 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Assume only
1520 ret follows pseudo, and thus avoid branch-to-branch in cancel
1521 case. Use SYSCALL_ERROR_LABEL.
1522
aff4519d
UD
15232003-01-11 Philip Blundell <philb@gnu.org>
1524
1525 * sysdeps/unix/sysv/linux/arm/vfork.S: New file.
1526 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (PSEUDO_RET):
1527 Correctly unstack lr.
1528 (UNDOARGS_5): Fix ordering of pushes and pops.
1529 (SINGLE_THREAD_P_PIC): New.
1530 (SINGLE_THREAD_P_INT): New.
1531 (SINGLE_THREAD_P): Implement in terms of above. Restore lr if it
1532 was stacked.
1533 (PSEUDO): Use SINGLE_THREAD_P_INT.
1534
15352003-01-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1536
1537 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
1538
15392003-01-11 Jakub Jelinek <jakub@redhat.com>
1540
1541 * sysdeps/ia64/tls.h (tcbhead_t): Change into dtv_t *, void *.
1542 [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN,
1543 TLS_TCB_SIZE, TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, TLS_DTV_AT_TP,
1544 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_SELF,
1545 INIT_THREAD_SELF): Define.
1546 [HAVE_TLS_SUPPORT]: Include descr.h.
1547 (NONTLS_INIT_TP): Point __thread_self at the end of dummy
1548 struct _pthread_descr_struct.
1549 * sysdeps/ia64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
1550 THREAD_SETMEM, THREAD_SETMEM_NC): Define using THREAD_SELF,
1551 not __thread_self.
1552 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Adjust
1553 computation.
1554 * pthread.c (__pthread_initialize_minimal): Use tcbp, not self
1555 for TCB pointer.
1556 (__pthread_initialize_manager): Rename tcb to mgr.
1557 Use tcbp for TCB pointer, if TLS_DTV_AT_TP set mgr to sizeof (struct
1558 _pthread_descr) below tcbp, otherwise to tcbp.
1559 * manager.c (pthread_handle_create): If TLS_DTV_AT_TP, set
1560 new_thread to be below _dl_allocate_tls (). Adjust new_thread back
1561 before freeing. Fix clone arguments if report_events and USE_TLS.
1562 (pthread_free): Adjust th back before freeing.
1563
15642003-01-10 Steven Munroe <sjmunroe@us.ibm.com>
1565
1566 * sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: Moved to ...
1567 * sysdeps/unix/sysv/linux/powerpc/Makefile: ...here.
1568 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New File.
1569
29d9a17d
UD
15702003-01-09 Jakub Jelinek <jakub@redhat.com>
1571
1572 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
1573 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
1574 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
1575 [__ASSEMBLER__] (SINGLE_THREAD_P): Remove trailing ;;.
1576 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
1577 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
1578 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
1579 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
1580 * tst-popen.c: New test.
1581 * Makefile (tests): Add tst-popen.
1582
6aca81bb
UD
15832003-01-06 Jakub Jelinek <jakub@redhat.com>
1584
1585 * sysdeps/unix/sysv/linux/sigwait.c (do_sigwait): Add
1586 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
1587
bef1e42f
UD
15882003-01-06 Jakub Jelinek <jakub@redhat.com>
1589
1590 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use
1591 PSEUDO_PREPARE_ARGS. Fix branch condition after SINGLE_THREAD_P.
1592
52f3d213
UD
15932003-01-06 Philip Blundell <philb@gnu.org>
1594
1595 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: New file.
1596
15972003-01-06 Jakub Jelinek <jakub@redhat.com>
1598
1599 * internals.h (LIBC_CANCEL_HANDLED): Define.
1600 * sysdeps/unix/sysv/linux/sigwait.c (LIBC_CANCEL_HANDLED): Add.
1601 * signals.c (LIBC_CANCEL_HANDLED): Add.
1602 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
1603 * tst-cancel-wrappers.sh: Remove all exceptions.
1604
1605 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
1606
c52a5fb9
AS
16072003-01-05 Andreas Schwab <schwab@suse.de>
1608
c711d9d2
AS
1609 * sysdeps/m68k/Makefile: New file, use -fPIC for nonshared
1610 objects.
1611
c52a5fb9
AS
1612 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (SINGLE_THREAD_P):
1613 Fix for PIC.
1614 (CENABLE): Likewise.
1615 (CDISABLE): Likewise.
1616
bbd17455
UD
16172003-01-05 Ulrich Drepper <drepper@redhat.com>
1618
a73ab6df
UD
1619 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
1620 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
1621
bbd17455
UD
1622 * Makefile (libc.so-no-z-defs): Define to yes.
1623
bdee30cf
UD
16242003-01-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1625
1626 * sysdeps/sh/tls.h: Include dl-sysdep.h and stdint.h.
1627 (tcbhead_t): Add multiple_threads member.
1628 (TLS_INIT_TP_EXPENSIVE): Define.
1629 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Don't use multi-line
1630 strings. Remove unused code.
1631 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
1632
73e9ae88
UD
16332003-01-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1634
1635 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
1636 * sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: New file.
1637
a7f7b879
UD
16382003-01-04 Jakub Jelinek <jakub@redhat.com>
1639
1640 * internals.h (LIBC_THREAD_GETMEM, LIBC_THREAD_SETMEM): Define
1641 even if NOT_IN_libc is defined.
1642
00e58701
UD
16432003-01-05 Jakub Jelinek <jakub@redhat.com>
1644
1645 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
1646 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
1647 * sysdeps/s390/Makefile: New file.
1648 * sysdeps/s390/tcb-offsets.sym: New file.
1649 * sysdeps/s390/tls.h: New file.
1650
75c43017
UD
16512003-01-03 Richard Henderson <rth@redhat.com>
1652
1653 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
1654
1cb990bc
UD
16552003-01-03 Andreas Jaeger <aj@suse.de>
1656
1657 * sysdeps/pthread/bits/libc-tsd.h: Declare weak_extern functions.
1658
733f25e6
UD
16592003-01-03 Jakub Jelinek <jakub@redhat.com>
1660
1661 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
1662
bf293afe
UD
16632003-01-02 Ulrich Drepper <drepper@redhat.com>
1664
1665 * tst-cancel-wrappers.sh: Exclude sigwait.c as well, it does not have
1666 cancellation tests.
1667
16682003-01-02 Jakub Jelinek <jakub@redhat.com>
1669
1670 * internals.h (struct pthread_functions): Rename
1671 ptr_pthread_cond_* fields to ptr___pthread_cond_*.
1672 * pthread.c (pthread_functions): Adjust.
1673 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
1674 pthread_cond_*@GLIBC_2.0 compatibility symbols.
1675 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
1676 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
1677 and pthread_cond_wait.
1678
1679 * sysdeps/pthread/bits/pthreadtypes.h (__pthread_cond_align_t): New
1680 type.
1681 (pthread_cond_t): Add __align member, shorten __padding.
1682 * sysdeps/pthread/pthread.h (PHTREAD_COND_INITIALIZER): Initialize
1683 __padding and __align too.
1684
1685 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call2): Add
1686 __builtin_expect.
1687 * sysdeps/pthread/sigaction.c: New file.
1688 * sysdeps/unix/sysv/linux/raise.c: New file.
1689 * sysdeps/unix/sysv/linux/sigwait.c: New file.
1690 * sysdeps/unix/sysv/linux/fork.c (__pthread_fork): Protect
1691 weak_extern with #ifndef SHARED.
1692 * sysdeps/unix/sysv/linux/jmp-unwind.c (__pthread_cleanup_upto):
1693 Likewise.
1694 * signals.c (__sigaction): Renamed to...
1695 (__pthread_sigaction): ... this.
1696 (__sigaction): New strong alias, #ifdef SHARED only.
1697 (sigaction): Protect with #ifdef SHARED.
1698 (sigwait): Renamed to...
1699 (__pthread_sigwait): ... this.
1700 (sigwait): New strong alias, #ifdef SHARED only.
1701 (raise): Renamed to...
1702 (__pthread_raise): ... this.
1703 (raise): New strong alias, #ifdef SHARED only.
1704 * internals.h (__pthread_sigaction, __pthread_sigwait,
1705 __pthread_raise): New prototypes.
1706 (struct pthread_functions): Add ptr_pthread_sigaction,
1707 ptr_pthread_sigwait, ptr_pthread_raise.
1708 * pthread.c (pthread_functions): Renamed to...
1709 (__pthread_functions): ... this. No longer static, no longer
1710 SHARED only. Initialize ptr_pthread_sigaction, ptr_pthread_sigwait
1711 and ptr_pthread_raise.
1712 [SHARED] (ptr_pthread_functions): Change to &__pthread_functions.
1713 * libc-cancellation.c (__pthread_thread_self): Remove weak_extern.
1714 * ptfork.c (__fork, __vfork): Protect with #ifdef SHARED.
1715 * ptlongjmp.c (siglongjmp, longjmp): Protect with #ifdef SHARED.
1716
1717 * Makefile (tests, tests-static): Add tst-cancel-static.
1718 * tst-cancel-static.c: New test.
1719
17202003-01-02 Jakub Jelinek <jakub@redhat.com>
1721
1722 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
1723
05df18c3
UD
17242003-01-02 Ulrich Drepper <drepper@redhat.com>
1725
1726 * sysdeps/pthread/bits/pthreadtypes.h (pthread_cond_t): Add padding.
1727 * condvar.c: Add symbol versioning. The compatibility versions
1728 are the same as the change in the interface does not effect this
1729 implementation.
1730 * Versions [libpthread]: Add definitions for new pthread_cond_*
1731 interfaces for version GLIBC_2.3.2.
1732
6d6ee629
UD
17332002-12-31 Ulrich Drepper <drepper@redhat.com>
1734
1735 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
1736 __register_atfork.
1737 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
1738 for __register_atfork.
1739
416d2de6
UD
17402002-12-31 Jakub Jelinek <jakub@redhat.com>
1741
a4baf360
UD
1742 * sysdeps/i386/i686/pt-machine.h: Use __ASSEMBLER__ instead of
1743 ASSEMBLER test macro.
1744 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Likewise.
1745 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
1746 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Likewise.
1747 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
1748 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
1749 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
1750
1751 * sysdeps/pthread/errno-loc.c (__errno_location): Add
1752 libc_hidden_def.
1753 * sysdeps/pthread/herrno-loc.c (__h_errno_location): Likewise.
1754 * sysdeps/pthread/res-state.c (__res_state): Likewise.
1755 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
1756 __libc_current_sigrtmax): Likewise.
1757 * Versions [libc] (GLIBC_PRIVATE): Remove __libc_internal_tsd_get,
1758 __libc_internal_tsd_set, __libc_internal_tsd_address,
1759 __libc_alloca_cutoff.
1760 [libpthread] (GLIBC_PRIVATE): Remove __libc_internal_tsd_get,
1761 __libc_internal_tsd_set, __libc_internal_tsd_address.
1762
1763 * sysdeps/pthread/list.h: Remove assert.h include.
1764 * sysdeps/unix/sysv/linux/fork.c: Include <fork.h>, not "fork.h".
1765
416d2de6
UD
1766 * sysdeps/pthread/list.h: New file.
1767 * sysdeps/unix/sysv/linux/jmp-unwind.c: New file.
1768 * sysdeps/unix/sysv/linux/fork.c: New file.
1769 * sysdeps/unix/sysv/linux/fork.h: New file.
1770 * sysdeps/unix/sysv/linux/ia64/fork.h: New file.
1771 * sysdeps/unix/sysv/linux/sparc/fork.h: New file.
1772 * sysdeps/unix/sysv/linux/register-atfork.c: New file.
1773 * sysdeps/unix/sysv/linux/unregister-atfork.c: New file.
1774 * sysdeps/unix/sysv/linux/Makefile: New file.
1775 * sysdeps/unix/sysv/linux/Versions: New file.
1776 * ptlongjmp.c (pthread_cleanup_upto): Rename to...
1777 (__pthread_cleanup_upto): ...this. Add targetframe argument,
1778 use it instead of currentframe. No longer static.
1779 (siglongjmp, longjmp): Remove pthread_cleanup_upto calls.
1780 * internals.h (__pthread_cleanup_upto, __pthread_fork): New prototypes.
1781 (struct pthread_functions): Add ptr_pthread_fork,
1782 ptr_pthread_cleanup_upto.
1783 * pthread.c (pthread_functions): Initialize ptr_pthread_fork and
1784 ptr_pthread_cleanup_upto.
1785 * ptfork.c: Include fork.h.
1786 (struct handler_list, struct handler_list_block): Remove.
1787 (pthread_atfork_lock, pthread_atfork_prepare, pthread_atfork_parent,
1788 pthread_atfork_child): Remove.
1789 (pthread_insert_list, __pthread_atfork, pthread_call_handlers): Remove.
1790 (__pthread_fork): New function.
1791 (__fork, __vfork): Call __libc_fork.
1792 * Makefile (libpthread-routines): Add old_pthread_atfork.
1793 (libpthread-nonshared): Add pthread_atfork.
1794 (others): Depend on $(objpfx)libpthread_nonshared.a.
1795 ($(objpfx)libpthread_nonshared.a): New rule.
1796 (install): Depend on $(inst_libdir)/libpthread.so.
1797 ($(inst_libdir)/libpthread.so, $(inst_libdir)/libpthread_nonshared.a):
1798 New rules.
1799 (tests): Depend on libpthread_nonshared.a too.
1800 * old_pthread_atfork.c: New file.
1801 * pthread_atfork.c: New file.
1802 * Makeconfig (shared-thread-library): Include libpthread_nonshared.a
1803 too.
1804
8cac677c
UD
18052002-12-30 Jakub Jelinek <jakub@redhat.com>
1806
1807 * forward.c: Make all functions available by default again. It
1808 caused too much trouble.
1809 * internals.h (struct pthread_functions): Rename ptr_pthread_exit
1810 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
1811 ptr___pthread_attr_init_2_*.
1812 * pthread.c (pthread_functions): Adjust.
1813
3b7ed871
UD
18142002-12-28 Jakub Jelinek <jakub@redhat.com>
1815
1816 * libc_pthread_init.c (__libc_pthread_init): Remove
1817 MULTIPLE_THREADS_OFFSET check.
1818 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
1819 (SYSINFO_OFFSET): Remove.
1820 * sysdeps/i386/Makefile [csu] (gen-as-const-headers): Add
1821 tcb-offsets.sym.
1822 * sysdeps/i386/tcb-offsets.sym: New file.
1823 * sysdeps/pthread/tcb-offsets.h: New file.
1824 * sysdeps/sparc/sparc32/tls.h: Removed.
1825 * sysdeps/sparc/sparc64/tls.h: Move...
1826 * sysdeps/sparc/tls.h: ...here. Include tcb-offsets.h in assembler.
1827 * sysdeps/sparc/Makefile: New file.
1828 * sysdeps/sparc/tcb-offsets.sym: New file.
1829 * sysdeps/ia64/tls.h: Include tcb-offsets.h in assembler.
1830 * sysdeps/ia64/Makefile: New file.
1831 * sysdeps/ia64/tcb-offsets.sym: New file.
1832 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
1833 (MULTIPLE_THREADS_OFFSET): Remove.
1834 Replace defined MULTIPLE_THREADS_OFFSET
1835 with defined FLOATING_STACKS && USE___THREAD.
1836 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
1837 (MULTIPLE_THREADS_OFFSET): Remove.
1838 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
1839 (MULTIPLE_THREADS_OFFSET): Remove.
1840 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
1841 (MULTIPLE_THREADS_OFFSET): Remove.
1842 * pthread.c (__pthread_initialize_manager): Remove
1843 MULTIPLE_THREADS_OFFSET cbeck.
1844
1845 * tst-cancel-wrappers.sh: Add line continuations.
1846
afb2e954
UD
18472002-12-27 Jakub Jelinek <jakub@redhat.com>
1848
270d9d47
UD
1849 * sysdeps/pthread/bits/libc-tsd.h: Include linuxthreads/descr.h
1850 and bits/libc-lock.h.
1851 (__libc_internal_tsd_get, __libc_internal_tsd_set,
1852 __libc_internal_tsd_address): Remove.
1853 (__pthread_internal_tsd_address, __pthread_internal_tsd_get,
1854 __pthread_internal_tsd_set): New weak_externs.
1855 (__libc_tsd_address, __libc_tsd_get, __libc_tsd_set): Define
1856 using __libc_maybe_call2.
1857 (__libc_tsd_key_t): Move to ...
1858 * descr.h (__libc_tsd_key_t): ...here.
1859 Remove bits/libc-tsd.h include.
1860 * sysdeps/pthread/errno-loc.c: New file.
1861 * sysdeps/pthread/herrno-loc.c: New file.
1862 * sysdeps/pthread/res-state.c: New file.
1863 * libc-cancellation.c (THREAD_GETMEM, THREAD_SETMEM): Remove.
1864 (__libc_enable_asynccancel, __libc_disable_asynccancel): Use
1865 thread_self unconditionally. Use LIBC_THREAD_[SG]ETMEM instead
1866 of THREAD_[SG]ETMEM.
1867 * specific.c (libc_internal_tsd_set): Renamed to...
1868 __pthread_internal_tsd_set. Remove static.
1869 (libc_internal_tsd_get): Renamed to...
1870 __pthread_internal_tsd_get. Remove static.
1871 (libc_internal_tsd_address): Renamed to...
1872 __pthread_internal_tsd_address. Remove static.
1873 (__libc_internal_tsd_set, __libc_internal_tsd_get,
1874 __libc_internal_tsd_address, __libc_alloca_cutoff): Remove.
1875 * internals.h [!NOT_IN_libc] (LIBC_THREAD_GETMEM, LIBC_THREAD_SETMEM):
1876 Define.
1877 (__pthread_internal_tsd_set, __pthread_internal_tsd_get,
1878 __pthread_internal_tsd_address): New prototypes.
1879 (struct pthread_functions): Add
1880 ptr_pthread_internal_tsd_([sg]et|address) fields.
1881 [!NOT_IN_libc && !FLOATING_STACKS] (thread_self): Define.
1882 * pthread.c (pthread_functions) [!USE_TLS && !HAVE___THREAD]:
1883 Initialize ptr_pthread_internal_tsd_([sg]et|address) fields.
1884 * Versions (libpthread): Remove __libc_alloca_cutoff@GLIBC_PRIVATE.
1885 * alloca_cutoff.c: New file.
1886 * no-tsd.c: Removed.
1887 * Makefile (routines): Remove no-tsd. Add alloca_cutoff.
1888 * pt-system.c (system): Remove cancellation handling.
1889 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
1890 cancellation routines.
1891
afb2e954
UD
1892 * sysdeps/i386/tls.h: Include dl-sysdep.h and stdint.h.
1893 (tcbhead_t): Add sysinfo field.
1894 (SYSINFO_OFFSET, INIT_SYSINFO): Define.
1895 (TLS_INIT_TP): Use INIT_SYSINFO.
1896 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
1897 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
1898 (MULTIPLE_THREADS_OFFSET): Adjust.
1899 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
1900 (MULTIPLE_THREADS_OFFSET): Likewise.
1901 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
1902 (MULTIPLE_THREADS_OFFSET): Likewise.
1903 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
1904 (MULTIPLE_THREADS_OFFSET): Likewise.
1905 * descr.h: Include stdint.h.
1906 (struct _pthread_descr_struct): Add p_header.data.sysinfo field.
1907
19082002-12-22 Jakub Jelinek <jakub@redhat.com>
1909
1910 * libc_pthread_init.c: Include stdlib.h.
1911 * sysdeps/i386/tls.h (tcbhead_t): Add multiple_threads member.
1912 (TLS_INIT_TP_EXPENSIVE): Define.
1913 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call,
1914 __libc_maybe_call2): In _LIBC check SHARED define.
1915 * sysdeps/ia64/tls.h: New file.
1916 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
1917 * sysdeps/unix/sysv/linux/ia64/Makefile: New file.
1918 * sysdeps/x86_64/tls.h (TLS_INIT_TP_EXPENSIVE): Define.
1919 * sysdeps/sparc/sparc32/tls.h: New file.
1920 * sysdeps/sparc/sparc64/tls.h: New file.
1921 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
1922 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
1923 * Makefile (tests): Add tst-cancel[1-6].
1924 (tests-reverse): Add tst-cancel5.
1925 Link libc.so before libpthread.so for tests-reverse.
1926 * tst-cancel1.c: New file.
1927 * tst-cancel2.c: New file.
1928 * tst-cancel3.c: New file.
1929 * tst-cancel4.c: New file.
1930 * tst-cancel5.c: New file.
1931 * tst-cancel6.c: New file.
1932
9f256765
AS
19332002-12-27 Andreas Schwab <schwab@suse.de>
1934
1935 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: New file.
1936
5220f9ac
RM
19372002-12-22 Roland McGrath <roland@redhat.com>
1938
1939 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
1940
2e4f58a4
UD
19412002-12-21 Ulrich Drepper <drepper@redhat.com>
1942
1943 * pthread.c (init_rtsigs): Remove incomplete __builtin_expect.
1944 Reported by Art Hass <ahaas@airmail.net>.
1945
3325198e
UD
19462002-12-19 Jakub Jelinek <jakub@redhat.com>
1947
1948 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
1949 Use return 0 as 6th argument to FORWARD4.
1950
5e289179
UD
19512002-12-18 Jakub Jelinek <jakub@redhat.com>
1952
1953 * sysdeps/i386/useldt.h (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Only
1954 define if __ASSUME_LDT_WORKS > 0.
1955 * libc-cancellation.c (THREAD_GETMEM, THREAD_SETMEM): Redefine to
1956 struct member access if !FLOATING_STACKS.
1957 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
1958
82f81a90
UD
19592002-12-18 Jakub Jelinek <jakub@redhat.com>
1960
1961 * internals.h (__pthread_thread_self): New prototype.
1962 (struct pthread_functions): Add ptr_pthread_thread_self field.
1963 * pthread.c (pthread_functions): Initialize ptr_pthread_thread_self.
1964 (__pthread_thread_self): New function.
1965 * libc-cancellation.c (__pthread_thread_self): Add weak_extern.
1966 (__libc_enable_asynccancel, __libc_disable_asynccancel): Don't
1967 use thread_self() directly if not FLOATING_STACKS.
1968
19692002-12-18 Jakub Jelinek <jakub@redhat.com>
1970
1971 * sysdeps/x86_64/pt-machine.h: Guard most of the header
1972 with #ifndef __ASSEMBLER__.
1973 * pthread.c (pthread_functions): Use SHLIB_COMPAT around
1974 pthread_attr_init_2_0 use.
1975
19762002-12-17 Jakub Jelinek <jakub@redhat.com>
1977
1978 * wrapsyscall.c: Removed.
1979 * weaks.c: Removed.
1980 * Makefile (distribute): Add tst-cancel-wrappers.sh.
1981 (routines): Remove weaks. Add forward,
1982 libc_pthread_init, libc-cancellation.
1983 (shared-only-routines): Remove weaks. Add forward.
1984 (libpthread-routines): Remove wrapsyscall.
1985 Add ptw-write, ptw-read, ptw-close, ptw-fcntl, ptw-accept,
1986 ptw-connect, ptw-recv, ptw-recvfrom, ptw-recvmsg, ptw-send,
1987 ptw-sendmsg, ptw-sendto, ptw-fsync, ptw-lseek, ptw-lseek64,
1988 ptw-llseek, ptw-msync, ptw-nanosleep, ptw-open, ptw-open64,
1989 ptw-pause, ptw-pread, ptw-pread64, ptw-pwrite, ptw-pwrite64,
1990 ptw-tcdrain, ptw-wait, ptw-waitpid, pt-system, pt-allocrtsig.
1991 (libpthread-shared-only-routines): Add pt-allocrtsig.
1992 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
1993 ($(objpfx)tst-cancel-wrappers.out): New rule.
1994 * sysdeps/pthread/bits/libc-lock.h: Include linuxthreads/internals.h
1995 if in libc.
1996 (__libc_maybe_call): In libpthread.* don't check for existance
1997 of the function.
1998 (__libc_maybe_call2): Define.
1999 (__libc_lock_init, __libc_lock_fini, __libc_lock_lock,
2000 __libc_lock_trylock, __libc_lock_unlock): Use it.
2001 * sysdeps/pthread/flockfile.c: New file.
2002 * sysdeps/pthread/ftrylockfile.c: New file.
2003 * sysdeps/pthread/funlockfile.c: New file.
2004 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
2005 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2006 * sysdeps/unix/sysv/linux/allocrtsig.c: New file.
2007 * libc-cancellation.c: New file.
2008 * forward.c: New file.
2009 * libc_pthread_init.c: New file.
2010 * pt-system.c: New file.
2011 * pthread.c: Remove locale.h.
2012 (__pthread_manager_thread): Initialize multiple_threads.
2013 (__pthread_multiple_threads): Declare.
2014 (pthread_functions): New variable.
2015 (__pthread_initialize_minimal): Remove __uselocale call.
2016 Call __libc_pthread_init.
2017 (__pthread_initialize_manager): Initialize __pthread_multiple_threads,
2018 initial thread's multiple_threads and __libc_multiple_threads.
2019 Check MULTIPLE_THREADS_OFFSET value. Initialize manager thread's
2020 multiple_threads.
2021 (pthread_setschedparam, pthread_getschedparam): Rename to __
2022 prefixed variants. Add strong_alias.
2023 (current_rtmin, current_rtmax, __libc_current_sigrtmin,
2024 __libc_current_sigrtmax, __libc_allocate_rtsig): Remove.
2025 (init_rtsigs): Use __libc_current_sigrtmin_private.
2026 (pthread_initialize): Only call init_rtsigs if
2027 !__ASSUME_REALTIME_SIGNALS.
2028 (__pthread_require_wrappers, __pthread_require_lockfile): Remove.
2029 * internals.h (__pthread_attr_destroy, __pthread_attr_setdetachstate,
2030 __pthread_attr_getdetachstate, __pthread_attr_setschedparam,
2031 __pthread_attr_getschedparam, __pthread_attr_setschedpolicy,
2032 __pthread_attr_getschedpolicy, __pthread_attr_setinheritsched,
2033 __pthread_attr_getinheritsched, __pthread_attr_setscope,
2034 __pthread_attr_getscope, __pthread_cond_init,
2035 __pthread_cond_destroy, __pthread_cond_wait,
2036 __pthread_cond_signal, __pthread_cond_broadcast,
2037 __pthread_condattr_init, __pthread_condattr_destroy,
2038 __pthread_equal, __pthread_getschedparam,
2039 __pthread_setschedparam, __pthread_setcancelstate,
2040 __pthread_setcanceltype, __pthread_enable_asynccancel,
2041 __libc_enable_asynccancel, __libc_pthread_init): New prototype.
2042 (__pthread_mutex_init, __pthread_mutex_destroy,
2043 __pthread_mutex_lock, __pthread_mutex_unlock,
2044 __pthread_mutex_trylock): Likewise.
2045 Add hidden_proto.
2046 (struct pthread_functions): New type.
2047 (__libc_pthread_functions): New variable.
2048 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define.
2049 * descr.h (struct _pthread_descr_struct): Add
2050 p_header.data.multiple_threads field.
2051 * manager.c (pthread_handle_create): Initialize multiple_threads.
2052 * cancel.c (__pthread_enable_asynccancel,
2053 __pthread_disable_asynccancel): New functions.
2054 (__pthread_provide_wrappers): Remove.
2055 (pthread_setcancelstate, pthread_setcanceltype): Rename to __
2056 prefixed variants. Add strong_alias.
2057 * condvar.c (pthread_cond_init, pthread_cond_destroy,
2058 pthread_cond_wait, pthread_cond_signal, pthread_cond_broadcast,
2059 pthread_condattr_init, pthread_condattr_destroy): Likewise.
2060 * join.c (pthread_exit): Likewise.
2061 * attr.c (pthread_attr_destroy, pthread_attr_setdetachstate,
2062 pthread_attr_getdetachstate, pthread_attr_setschedparam,
2063 pthread_attr_getschedparam, pthread_attr_setschedpolicy,
2064 pthread_attr_getschedpolicy, pthread_attr_setinheritsched,
2065 pthread_attr_getinheritsched, pthread_attr_setscope,
2066 pthread_attr_getscope): Likewise.
2067 * mutex.c (__pthread_mutex_init, __pthread_mutex_destroy,
2068 __pthread_mutex_lock, __pthread_mutex_unlock,
2069 __pthread_mutex_trylock): Add hidden_def.
2070 * Versions (libc): Add __libc_pthread_init,
2071 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
2072 __libc_allocate_rtsig_private @@GLIBC_PRIVATE.
2073 * lockfile.c: Remove some USE_IN_LIBIO guards.
2074 (__pthread_provide_lockfile): Remove.
2075 * pt-allocrtsig.c: New file.
2076 * tst-cancel-wrappers.sh: New test.
2077
f3015aa5
UD
20782002-12-15 Ulrich Drepper <drepper@redhat.com>
2079
2080 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
2081 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
2082 * wrapsyscall.c: Remove creat, poll, pselect, readv, select,
2083 sigpause, sigsuspend, sigwaitinfo, waitid, and writev wrappers.
2084
dce8f2b6
UD
20852002-12-10 Ulrich Drepper <drepper@redhat.com>
2086
2087 * wrapsyscall.c (CANCELABLE_SYSCALL): Don't define function as
2088 weak. There is no reason for that.
2089 (CANCELABLE_SYSCALL_VA): Likewise.
2090
e5e45b53
UD
20912002-12-09 Ulrich Drepper <drepper@redhat.com>
2092
2093 * wrapsyscall.c: Add wrappers for creat, poll, pselect, readv, select,
2094 sigpause, __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev.
2095 * Versions: Export creat, poll, pselect, readv, select, sigpause,
2096 __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev from
2097 libpthread in version GLIBC_2.3.2.
2098
d3c9f895
UD
20992002-12-06 Ulrich Drepper <drepper@redhat.com>
2100
2101 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
2102
fde89ad0
RM
21032002-12-05 Roland McGrath <roland@redhat.com>
2104
2105 * pthread.c (__pthread_initialize_minimal)
2106 [USE_TLS && SHARED && !USE___THREAD]: Initialize TLS and set up the
2107 TCB if the dynamic linker didn't do it at startup.
2108
2109 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
2110 string.
2111 (TLS_DO_SET_THREAD_AREA, TLS_DO_MODIFY_LDT, TLS_SETUP_GS_SEGMENT):
2112 Submacros updated.
2113 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
2114 * sysdeps/alpha/tls.h (TLS_INIT_TP): Likewise (always zero).
2115
21162002-12-03 Roland McGrath <roland@redhat.com>
2117
2118 * pthread.c (pthread_initialize) [SHARED]: Copy dl_error_tsd value
2119 from dynamic linker internal cell to new libc cell.
2120
fa9a4ff0
RM
21212002-11-28 Roland McGrath <roland@redhat.com>
2122
2123 * tst-context.c: #define IS_IN_libpthread around #include <tls.h>
2124 before other headers, so FLOATING_STACKS is not defined wrongly.
2125
2126 * sysdeps/i386/tls.h [!IS_IN_libpthread]: Enable TLS support
2127 even if [! FLOATING_STACKS].
2128 (TLS_DO_MODIFY_LDT_KERNEL_CHECK): New macro.
2129 If not under [__ASSUME_LDT_WORKS > 0], then do a runtime check of
2130 dl_osversion >= 2.3.99 and fatal if not.
2131 (TLS_DO_MODIFY_LDT): Use it.
2132
f9ad060c
UD
21332002-11-28 Ulrich Drepper <drepper@redhat.com>
2134
2135 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
2136 require it to 200112L. Remove _POSIX_POLL and _POSIX_SELECT.
2137 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2138
96bbfe3f
UD
21392002-11-19 Ulrich Drepper <drepper@redhat.com>
2140
fa9a4ff0 2141 * Versions (libc: GLIBC_2.0): Remove names of functions which are
96bbfe3f
UD
2142 not defined in libc.
2143 * Makefile (shared-only-routines): Add weaks.
2144 * weaks.c: Remove functions which are not exported from libc.so.
2145
53da80ab
RM
21462002-11-14 Roland McGrath <roland@redhat.com>
2147
2148 * libc-tsd.c: New file.
2149 * Makefile (distribute): Add it.
2150 (libc-link.so): New variable.
2151 ($(objpfx)libpthread.so): Depend on that instead of libc.so file name.
2152 (libc-ok-for-link): New variable.
2153 [$(versioning) = yes]: Include $(common-objpfx)tls.make and define
2154 libc-ok-for-link to $(use-thread).
2155 [$(libc-ok-for-link) = no]
2156 (libc-link.so): Set to $(objpfx)libc.so, not $(common-objpfx)libc.so.
2157 ($(objpfx)libc_pic_lite.a,$(objpfx)libc_pic_lite.os, $(objpfx)libc.so):
2158 New targets.
2159 (generated): Append them.
2160 (extra-objs): Append libc-tsd.os.
2161
2162 * libc-tls-loc.c: New file.
2163 * Makefile (libpthread-routines): Add it.
2164
29923dfd
AS
21652002-11-14 Andreas Schwab <schwab@suse.de>
2166
2167 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Fix unterminated
2168 string.
2169
cdedcc79
RM
21702002-11-13 Roland McGrath <roland@redhat.com>
2171
2172 * Examples/ex6.c (main): Improve error reporting.
2173
8e96ae1a
UD
21742002-11-04 Ulrich Drepper <drepper@redhat.com>
2175
226e9fda
UD
2176 * sysdeps/i386/Makefile: Compile pthread.c and sighandler.c with
2177 -fno-omit-frame-pointer. Patch by Andreas Steinmetz <ast@domdv.de>.
2178
8e96ae1a
UD
2179 * sysdeps/i386/useldt.h [PIC] (USETLS_LOAD_EBX): Use correct input
2180 register number.
2181 (DO_SET_THREAD_AREA): Mark asm output specifiers correctly.
2182
bd6daf3b
RM
21832002-10-22 Jakub Jelinek <jakub@redhat.com>
2184
2185 * manager.c (pthread_start_thread): Call __uselocale even
2186 if [! SHARED]. Patch by Leon Kanter <leon@geon.donetsk.ua>.
2187
2430d57a
RM
21882002-10-17 Roland McGrath <roland@redhat.com>
2189
2190 * Makefile (unload): Don't link in libpthread.so.
2191 ($(objpfx)unload.out): Do depend on it.
2192 * unload.c (main): Improve error reporting.
2193
3021e36d
RM
21942002-10-09 Roland McGrath <roland@redhat.com>
2195
2196 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
2197 Under [__PIC__], call the function via the pointer fetched for
2198 comparison rather than a call by name that uses the PLT.
2199 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
2200 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
2201 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
2202 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
2203 (__libc_key_create, __libc_getspecific, __libc_setspecific)
2204 (__libc_atfork): Use it.
2205
2206 * pthread.c [SHARED] (__libc_dl_error_tsd): New function.
2207 (pthread_initialize) [SHARED]: Set _dl_error_catch_tsd to that.
2208 * Versions (libc: GLIBC_PRIVATE): Add __libc_dl_error_tsd.
2209 (ld: GLIBC_PRIVATE): Set removed.
2210
ef43f9d4
UD
22112002-10-11 Ulrich Drepper <drepper@redhat.com>
2212
2213 * sysdeps/unix/sysv/linux/execve.c: New file.
2214
65e6f476
UD
22152002-10-09 Jakub Jelinek <jakub@redhat.com>
2216
2217 * no-tsd.c: Include stdlib.h.
2218
d3c79d4a
UD
22192002-10-07 Jakub Jelinek <jakub@redhat.com>
2220
2221 * sysdeps/unix/sysv/linux/allocalim.h: New file.
2222 * descr.h (struct _pthread_descr_struct): Add p_alloca_cutoff
2223 field.
2224 * manager.c (__pthread_allocate_stack): Add out_stacksize argument.
2225 Pass stack size to caller.
2226 (pthread_handle_create): Set p_alloca_cutoff.
2227 * pthread.c (__pthread_initial_thread): Use C99 designated
2228 initializers. Set p_alloca_cutoff.
2229 (__pthread_manager_thread): Likewise.
2230 (__pthread_initialize_minimal) [USE_TLS]: Set p_alloca_cutoff
2231 for initial thread.
2232 (__pthread_init_max_stacksize): Possibly decrease p_alloca_cutoff
2233 for initial thread.
2234 (__pthread_initialize_manager) [USE_TLS]: Set p_alloca_cutoff
2235 for manager thread.
2236 * specific.c (__libc_alloca_cutoff): New function.
2237 * no-tsd.c (__libc_alloca_cutoff): New function.
2238 * Versions: Export __libc_alloca_cutoff@@GLIBC_PRIVATE from libc
2239 and libpthread.
2240
aa298c08
UD
22412002-10-02 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2242
2243 * sysdeps/sh/pt-machine.h: Make C code ifndef'ed with __ASSEMBLER__.
2244 * sysdeps/sh/tls.h: Likewise.
2245 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
2246
57449fa3
RM
22472002-09-29 Jakub Jelinek <jakub@redhat.com>
2248
2249 * sysdeps/pthread/tst-timer.c (main): Clear
2250 SIGEV2.sigev_notify_attributes.
2251
9a1c21c4
UD
22522002-09-29 Ulrich Drepper <drepper@redhat.com>
2253
2254 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Don't use
2255 INLINE_SYSCALL for set_thread_area syscall.
2256
3865b57f
RM
22572002-09-28 Roland McGrath <roland@redhat.com>
2258
2259 * pthread.c (__pthread_reset_main_thread) [FLOATING_STACKS]:
2260 Don't call setrlimit, since we did no prior bogon we need to undo.
2261
2c536abd
RM
22622002-09-27 Roland McGrath <roland@redhat.com>
2263
2264 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Don't include <pt-machine.h>.
2265
160bb409
RM
22662002-09-24 Roland McGrath <roland@redhat.com>
2267
2268 * sysdeps/x86_64/tls.h: New file.
2269
22702002-09-23 Roland McGrath <roland@redhat.com>
2271
2272 * Examples/ex13.c (dump_mut): int -> size_t for counter.
2273
9db6ee8d
RM
22742002-09-18 Bruno Haible <bruno@clisp.org>
2275
2276 * Examples/ex10.c (thread): Fail if pthread_mutex_timedlock() returns
2277 an unexpected error code.
2278
2279 * internals.h (__pthread_message): Add const to first parameter type.
2280 * pthread.c (__pthread_message): Likewise.
2281
2282 * sysdeps/unix/sysv/linux/configure: Moved to ../sysdeps/pthread.
2283
1d0ad773
RM
22842002-09-17 Roland McGrath <roland@redhat.com>
2285
2286 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT, TLS_DO_SET_THREAD_AREA):
2287 Set the descriptor limit to the full 4GB, so %gs:OFFSET works for any
2288 offset (positive or negative) relative to the thread struct.
2289 * sysdeps/i386/useldt.h (DO_MODIFY_LDT, DO_SET_THREAD_AREA): Likewise.
2290
54c1e6ca
RM
22912002-09-12 Jakub Jelinek <jakub@redhat.com>
2292
2293 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Move...
2294 * sysdeps/unix/sysv/linux/sparc/Makefile: ...here.
2295 Replace /usr/lib/crt[in].o with crt[in].o too.
2296
4730fc68
RM
22972002-09-11 Steven Munroe <sjmunroe@us.ibm.com>
2298
2299 * sysdeps/powerpc/powerpc64/pt-machine.h: New file.
2300
64ca3f32
RM
23012002-09-04 Bruno Haible <bruno@clisp.org>
2302
2303 * pthread.c: Include <sys/time.h>.
2304 (is_smp_system): Move to sysdeps/unix/sysv/linux/smp.h.
2305 * sysdeps/unix/sysv/linux/smp.h: New file, extracted from pthread.c.
2306 * Makefile (distribute): Add smp.h to the list.
2307
a1e56cd1
RM
23082002-09-04 Bruno Haible <bruno@clisp.org>
2309
5842a756
UD
2310 * sysdeps/alpha/pt-machine.h: Choose different include file location
2311 on non-Linux platforms.
4f58b7c6 2312
a1e56cd1
RM
2313 * wrapsyscall.c (PROMOTE_INTEGRAL_TYPE): New macro.
2314 (open, open64): Change va_arg argument type to the integral type to
2315 which mode_t promotes.
2316
2317 * sysdeps/pthread/tst-timer.c (main): Don't assume anything about
2318 the structure of 'struct sigevent'.
2319
2320 * errno.c (__errno_location, __h_errno_location, __res_state):
2321 Use prototype function definitions.
2322
92b27c74
UD
23232002-07-29 Steven Munroe <sjmunroe@us.ibm.com>
2324
2325 * shlib-versions: Set libpthread version to 2.3 for powerpc64.
2326 * sysdeps/powerpc/pt-machine.h: moved to...
2327 * sysdeps/powerpc/powerpc32/pt-machine.h: ...here
a1e56cd1 2328 * sysdeps/powerpc/powerpc64/pt-machine.h: New file.
92b27c74 2329
bcc565a0
UD
23302002-09-02 Roland McGrath <roland@redhat.com>
2331
2332 * sysdeps/powerpc/Makefile (CFLAGS-pt-initfini.s): New variable.
2333
cf684340
RM
23342002-09-01 Roland McGrath <roland@redhat.com>
2335
2336 * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t): Add new keys
2337 CTYPE_B, CTYPE_TOLOWER, CTYPE_TOUPPER.
2338
2339 * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_address): New macro.
2340 (__libc_internal_tsd_address): Declare it.
2341 * Versions (libc, ld, libpthread: GLIBC_PRIVATE): Add
2342 __libc_internal_tsd_address.
2343 * specific.c (libc_internal_tsd_address): New function.
2344 (__libc_internal_tsd_address): New variable.
2345 * no-tsd.c (__libc_internal_tsd_address): New variable.
2346
9649be24
UD
23472002-08-31 Ulrich Drepper <drepper@redhat.com>
2348
2349 * Makefile: Don't use rule for crt%.o, spell it out as rules for
2350 crti.o and crtn.o.
2351
cc6d371d
RM
23522002-08-30 Roland McGrath <roland@redhat.com>
2353
2354 * Makefile (extra-objs, omit-deps): Add crtn.
2355 ($(objpfx)libpthread.so): Depend on $(objpfx)crtn.o.
2356 ($(objpfx)libpthread.so: +postinit): Append $(objpfx)crtn.o.
2357 ($(objpfx)crtn.S): New target.
2358 ($(objpfx)crt%.o): Pattern rule replaces crti.o target.
2359 (generated): Add crtn.S.
2360
2361 * sysdeps/unix/sysv/linux/x86_64/Makefile ($(objpfx)specs): Massage
2362 crtn.o pathname too.
2363
95ed9d84
RM
23642002-08-30 Jakub Jelinek <jakub@redhat.com>
2365
9649be24
UD
2366 * pthread.c (__pthread_initialize_minimal): Call __uselocale even
2367 if [! SHARED].
95ed9d84
RM
2368
23692002-08-30 Roland McGrath <roland@redhat.com>
2370
2371 * tst-static-locale.c: New file.
2372 * Makefile (tests, tests-static): Add it.
2373
c98d82db
UD
23742002-04-24 Steven Munroe <sjmunroe@us.ibm.com>
2375
2376 * spinlock.c (__pthread_lock): Fix spurious wakeup
2377 handling. Don't clear lowest bit of list pointer as sign the thread
2378 is still on the wait list. Don't restart after spurious wakeup
2379 with spinning to get the lock.
2380 (__pthread_unlock): Take set lowest bit into account when handling
2381 pointer to list elements.
2382 Patch by Steve Munroe <sjmunroe@us.ibm.com>.
2383
963e3b58
RM
23842002-08-28 Roland McGrath <roland@redhat.com>
2385
2386 * sysdeps/pthread/timer_routines.c (thread_func): Fix type in cast.
2387
5fe14d96
UD
23882002-08-28 Jakub Jelinek <jakub@redhat.com>
2389
2390 * sysdeps/unix/sysv/linux/hppa/aio_cancel.c: New file.
2391 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
2392 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
2393
dd4f2115
UD
23942002-08-28 Ulrich Drepper <drepper@redhat.com>
2395
2396 * sysdeps/pthread/timer_routines.c (thread_func): Change return
963e3b58 2397 type to void and add casts in use to avoid warnings with all gcc
dd4f2115
UD
2398 versions.
2399
f0377954
UD
24002002-08-08 Jakub Jelinek <jakub@redhat.com>
2401
2402 * sysdeps/unix/sysv/linux/bits/local_lim.h (PTHREAD_THREADS_MAX):
2403 Bump to 16384.
2404 * manager.c (__pthread_handles): Remove.
2405 * pthandles.c: New file.
2406 * pthread.c (__pthread_initialize_minimal): Initialize
2407 __pthread_handles[0] and __pthread_handles[1].
2408 * Makefile (libpthread-routines): Add pthandles (must be last).
2409
5fe14d96 24102002-08-26 Brian Youmans <3diff@gnu.org>
8b269abc 2411
e0cffcf6
UD
2412 * Examples/ex10.c: Corrected version number in Lesser GPL copying
2413 permission notice from 2 to 2.1.
8b269abc
UD
2414 * Examples/ex11.c: Likewise.
2415 * Examples/ex13.c: Likewise.
2416 * Examples/ex8.c: Likewise.
2417 * Examples/ex9.c: Likewise.
2418 * barrier.c: Likewise.
2419 * events.c: Likewise.
2420 * lockfile.c: Likewise.
2421 * no-tsd.c: Likewise.
2422 * pt-machine.c: Likewise.
2423 * ptclock_gettime.c: Likewise.
2424 * ptclock_settime.c: Likewise.
2425 * rwlock.c: Likewise.
2426 * sysdeps/alpha/pspinlock.c: Likewise.
2427 * sysdeps/alpha/pt-machine.h: Likewise.
2428 * sysdeps/arm/pspinlock.c: Likewise.
2429 * sysdeps/arm/pt-machine.h: Likewise.
2430 * sysdeps/cris/pspinlock.c: Likewise.
2431 * sysdeps/cris/pt-machine.h: Likewise.
2432 * sysdeps/hppa/pspinlock.c: Likewise.
2433 * sysdeps/hppa/pt-machine.h: Likewise.
2434 * sysdeps/i386/i686/pt-machine.h: Likewise.
2435 * sysdeps/i386/pspinlock.c: Likewise.
2436 * sysdeps/i386/pt-machine.h: Likewise.
2437 * sysdeps/i386/useldt.h: Likewise.
2438 * sysdeps/ia64/pspinlock.c: Likewise.
2439 * sysdeps/ia64/pt-machine.h: Likewise.
2440 * sysdeps/m68k/pspinlock.c: Likewise.
2441 * sysdeps/m68k/pt-machine.h: Likewise.
2442 * sysdeps/mips/pspinlock.c: Likewise.
2443 * sysdeps/mips/pt-machine.h: Likewise.
2444 * sysdeps/powerpc/pspinlock.c: Likewise.
2445 * sysdeps/powerpc/pt-machine.h: Likewise.
2446 * sysdeps/pthread/bits/initspin.h: Likewise.
2447 * sysdeps/pthread/bits/libc-lock.h: Likewise.
2448 * sysdeps/pthread/bits/libc-tsd.h: Likewise.
2449 * sysdeps/pthread/getcpuclockid.c: Likewise.
2450 * sysdeps/pthread/posix-timer.h: Likewise.
2451 * sysdeps/pthread/timer_create.c: Likewise.
2452 * sysdeps/pthread/timer_delete.c: Likewise.
2453 * sysdeps/pthread/timer_getoverr.c: Likewise.
2454 * sysdeps/pthread/timer_gettime.c: Likewise.
2455 * sysdeps/pthread/timer_routines.c: Likewise.
2456 * sysdeps/pthread/timer_settime.c: Likewise.
2457 * sysdeps/pthread/tst-timer.c: Likewise.
2458 * sysdeps/s390/pspinlock.c: Likewise.
2459 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
2460 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
2461 * sysdeps/sh/pspinlock.c: Likewise.
2462 * sysdeps/sh/pt-machine.h: Likewise.
2463 * sysdeps/sparc/sparc32/pspinlock.c: Likewise.
2464 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
2465 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
2466 * sysdeps/sparc/sparc64/pspinlock.c: Likewise.
2467 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
2468 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
2469 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
2470 * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
2471 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
2472 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2473 * tststack.c: Likewise.
2474 * unload.c: Likewise.
2475 * weaks.c: Likewise.
2476 * wrapsyscall.c: Likewise.
2477
2478 * sysdeps/pthread/pt-initfini.c: Changed copying
2479 permission notice to Lesser GPL from Library GPL, including the
2480 references in the special exception.
2481 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: Likewise.
2482 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Likewise.
2483 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c:
2484 Likewise.
2485 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c:
2486 Likewise.
2487 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Likewise.
2488
34816665
UD
24892002-08-26 Ulrich Drepper <drepper@redhat.com>
2490
2491 * Examples/ex10.c (thread): tv_nsec == 1000000000 is already
2492 overflow [PR libc/4244].
2493
6d497bbe
UD
24942002-08-25 Ulrich Drepper <drepper@redhat.com>
2495
fd77c361
UD
2496 * sysdeps/pthread/timer_routines.c (thread_func): Make the
2497 compiler happy by adding a return statement which will never be
2498 reached.
2499
9df89390
UD
2500 * tst-context.c (main): Cast to long before casting to pointer.
2501
2502 * Examples/ex17.c (main): Use correct format string.
2503
6d497bbe
UD
2504 * Examples/ex9.c (thread): Remove incorrect return statement.
2505
069125e5
UD
25062002-08-23 Ulrich Drepper <drepper@redhat.com>
2507
2508 * pthread.c (__linuxthreads_version): New global constant.
2509
fb2bdbba
AJ
25102002-08-23 Andreas Jaeger <aj@suse.de>
2511
2512 * sysdeps/x86_64/pt-machine.h: Use %fs instead of %gs
2513 as thread specific register.
2514 (testandset): Fix inline asm.
2515 (THREAD_GETMEM): Fix inline asm.
2516
8ddcb7da
RM
25172002-08-22 Roland McGrath <roland@redhat.com>
2518
2519 * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Remove [HAVE_TLS_SUPPORT]
2520 conditional.
2521 (INIT_THREAD_SELF): Pass second arg to DO_SET_THREAD_AREA.
2522 (DO_SET_THREAD_AREA): Take second arg, pass to DO_SET_THREAD_AREA_REUSE
2523 macro. That chooses whether to reuse %gs value or let kernel set it.
2524 [USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, always 1.
2525 [!USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, true if arg is
2526 not constant 0.
2527
0fe35439
UD
25282002-08-21 Ulrich Drepper <drepper@redhat.com>
2529
2530 * sysdeps/i386/tls.h (TLS_SETUP_GS_SEGMENT): Add new parameter
2531 also to the third definition of this macro.
2532
c70a0936
AJ
25332002-06-17 Andreas Jaeger <aj@suse.de>
2534
2535 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
2536 Set it.
2537
58d2d09b
UD
25382002-08-20 Ulrich Drepper <drepper@redhat.com>
2539
c761cdf5
UD
2540 * sysdeps/i386/useldt.h: Go back to using 16-bit instructions when
2541 loading/reading segment registers. Some old hardware doesn't
2542 handle the 32-bit instructions as expected.
2543 * sysdeps/i386/tls.h: Likewise.
2544
9d69bd24
UD
2545 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Second parameter is
2546 renamed to secondcall and use is negated.
2547 (TLS_SETUP_GS_SEGMENT): Likewise.
2548 (TLS_INIT_TP): Likewise.
2549 * sysdeps/sh/tls.h (TLS_INIT_TP): Second parameter is renamed to
2550 secondcall.
2551
69681bde
UD
2552 * sysdeps/i386/tls.h: Use 32-bit operations when handling segment
2553 registers. No need to mask upper 16 bits in this case.
2554 * sysdeps/i386/useldt.h: Likewise.
2555 (DO_SET_THREAD_AREA): We have to load %gs again even if the value
2556 is the same since the GDT content changed.
2557
d78ce054
UD
2558 * sysdeps/i386/tls.h (TLS_INIT_TP): Add new parameter and pass it on
2559 to TLS_SETUP_GS_SEGMENT.
2560 (TLS_SETUP_GS_SEGMENT): Add new parameter and pass it on to
2561 TLS_DO_SET_THREAD_AREA.
2562 (TLS_DO_SET_THREAD_AREA): If new parameter is zero determine
2563 entry number from %gs value.
2564 * sysdeps/sh/tls.h (TLS_INIT_TP): Add new parameter and simply
2565 ignore it.
2566
58d2d09b
UD
2567 * manager.c (pthread_handle_create): Pass NULL to _dl_allocate_tls.
2568 Pass true to _dl_deallocate_tls.
2569 (pthread_free): Likewise.
2570 * pthread.c (__pthread_initialize_manager): Likewise.
2571
46615777
UD
25722002-08-19 Ulrich Drepper <drepper@redhat.com>
2573
2574 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Use correct shift when
2575 computing index from %gs value.
2576
25cb6eb2
RM
25772002-08-16 Roland McGrath <roland@redhat.com>
2578
3ed35099
RM
2579 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Calculate segment
2580 register value from entry number properly.
2581
25cb6eb2
RM
2582 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Rewrite asm to use %ebx
2583 optimally conditional on [__PIC__].
2584 (TLS_DO_SET_THREAD_AREA): New macro, implement inline syscall
2585 without touching errno, and use latest modify_ldt-like interface.
2586 (TLS_SETUP_GS_SEGMENT): Use that instead of INLINE_SYSCALL.
2587 * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Set %gs in this macro.
2588 (DO_SET_THREAD_AREA): New macro, uses current syscall interface with
2589 existing %gs value as the segment to set.
2590 (INIT_THREAD_SELF): Rewritten using those. Use set_thread_area only
2591 under [HAVE_TLS_SUPPORT] so we can rely on the initialization done
2592 by the first thread's early TLS setup.
2593
c88b4759
RM
25942002-08-15 Roland McGrath <roland@redhat.com>
2595
2596 * sysdeps/i386/tls.h (TLS_INIT_TP): Use statement expression and
2597 return a value as callers now expect.
2598
e6f52680
RM
25992002-08-11 Roland McGrath <roland@redhat.com>
2600
2601 * pthread.c (__pthread_initialize_manager): Initialize
2602 p_header.data.tcb field of manager thread's descriptor.
2603 (__pthread_initialize_minimal): Don't initialize p_header.data.self
2604 field, already done by TLS_INIT_TP.
2605
2606 * manager.c (pthread_handle_create): Move p_header field initializers
2607 together.
2608
b7eb7b0f
UD
26092002-08-08 Ulrich Drepper <drepper@redhat.com>
2610
2611 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Removed.
2612
f70b0ea2
UD
26132002-08-07 Ulrich Drepper <drepper@redhat.com>
2614
2615 * pthread.c (__linuxthreads_initial_report_events): New variable.
2616 (__pthread_initialize_manager): Use it to initialize p_report_events
2617 of initial thread.
2618 [TLS]: Store pointer to descriptor of manager in __pthread_handles.
2619
e8e91498
RM
26202002-08-07 Roland McGrath <roland@redhat.com>
2621
2622 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Add an extra argument with
2623 an "m" constraint to the asm so the compiler knows LDT_ENTRY was used.
2624
26e73ab6
RM
26252002-08-02 Roland McGrath <roland@redhat.com>
2626
a14f26ef
RM
2627 * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t):
2628 Add _LIBC_TSD_KEY_LOCALE.
2629 * manager.c (pthread_start_thread) [!(USE_TLS && HAVE___THREAD)]:
2630 Call __uselocale to initialize our per-thread locale pointer to
2631 the global one.
2632 * pthread.c (__pthread_initialize_minimal): Likewise.
2633
26e73ab6
RM
2634 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Add missing \s.
2635
1f3f143e
UD
26362002-08-02 Ulrich Drepper <drepper@redhat.com>
2637
3c877a04
UD
2638 * pthread.c: Declare _errno, _h_errno, and _res unless we use TLS
2639 internally.
2640
1f3f143e
UD
2641 * cancel.c (__pthread_perform_cleanup) [USE_TLS && HAVE___THREAD]:
2642 Don't use p_libc_specific element in thread descriptor.
2643
c2afe833
RM
26442002-07-30 Roland McGrath <roland@redhat.com>
2645
2646 * sysdeps/pthread/bits/libc-tsd.h: Include <tls.h>.
2647 [USE_TLS && HAVE___THREAD]: Just include the sysdeps/generic file,
2648 which does the right thing when __thread support is available.
2649 * descr.h (struct _pthread_descr_struct) [USE_TLS && HAVE___THREAD]:
2650 Omit `p_libc_specific', `p_errnop', `p_errno', `p_h_errnop',
2651 `p_h_errno', `p_resp', and `p_res' members.
2652 * pthread.c (__pthread_initialize_minimal) [USE_TLS && HAVE___THREAD]:
2653 Don't initialize `p_errnop' and `p_h_errnop' members.
2654 (__pthread_reset_main_thread): Likewise.
2655 (__pthread_initialize_manager): Likewise.
2656 * manager.c (__pthread_manager, pthread_handle_create): Likewise.
2657 * pthread.c (pthread_initialize) [USE_TLS && HAVE___THREAD]:
2658 Don't initialize `p_resp' member.
2659 (__pthread_reset_main_thread): Likewise.
2660 * manager.c (pthread_handle_create): Likewise.
2661 * specific.c (libc_internal_tsd_set, libc_internal_tsd_get):
2662 Conditionalize these on [!(USE_TLS && HAVE___THREAD)].
fc10bc8d 2663 * no-tsd.c: Conditionalize contents on [!(USE_TLS && HAVE___THREAD)].
c2afe833
RM
2664 * errno.c [USE_TLS && HAVE___THREAD]
2665 (__h_errno_location, __res_state): Don't define these at all.
2666
2667 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens around arguments!
2668 (INSTALL_NEW_DTV, GET_DTV): Likewise.
2669 * sysdeps/sh/tls.h (INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV): Likewise.
2670
2671 * weaks.c: Don't include <errno.h> here.
2672
26732002-08-01 Roland McGrath <roland@redhat.com>
2674
2675 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): New macro, broken out of
2676 TLS_INIT_TP.
2677 (TLS_DO_SET_THREAD_AREA): New macro, uses thread_set_area syscall.
2678 (TLS_SETUP_GS_SEGMENT): New macro, try one or the other or both.
2679 (TLS_INIT_TP): Use that.
2680
06c2c536
UD
26812002-08-02 Jakub Jelinek <jakub@redhat.com>
2682
2683 * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Move from INIT_THREAD_SELF.
2684 (INIT_THREAD_SELF): Use sys_thread_area syscall instead if available.
2685 (FREE_THREAD): Avoid modify_ldt if using GDT.
2686 * sysdeps/i386/pspinlock.c (__have_no_set_thread_area): New variable.
2687
78ce5a3b
UD
26882002-07-25 Jakub Jelinek <jakub@redhat.com>
2689
2690 * sysdeps/i386/tls.h: Use __ASSEMBLER__ test macro not ASSEMBLER.
2691 * sysdeps/i386/pt-machine.h: Likewise.
2692 * sysdeps/i386/useldt.h: Likewise.
2693
67ee6db0
UD
26942002-07-22 Ulrich Drepper <drepper@redhat.com>
2695
8a30f00f
UD
2696 * pthread.c (__pthread_initialize_minimal): If !SHARED and TLS
2697 call __libc_setup_tls first.
2698 * Makefile: Actually create tst-signal.out file when running the test.
2699 (tests): Add tststatic.
2700 * Examples/tststatic.c: New file.
67ee6db0 2701
739d440d
UD
27022002-07-19 Ulrich Drepper <drepper@redhat.com>
2703
2704 * errno.c (__errno_location): Don't define unless !USE_TLS
2705 || !HAVE___THREAD.
2706 * sysdeps/i386/pt-machine.c: Protect C code with #ifndef ASSEMBLER.
2707 * sysdeps/i386/tls.h: Likewise.
2708 * sysdeps/i386/useldt.h: Likewise.
2709 * sysdeps/i386/i686/pt-machine.h: Likewise.
2710
a99bfa85
UD
27112002-07-02 H.J. Lu <hjl@gnu.org>
2712
2713 * sysdeps/mips/pspinlock.c: Don't include <sgidefs.h>. Always
2714 use ll/sc.
2715 * sysdeps/mips/pt-machine.h: Likewise.
2716
2acfe5d6
UD
27172002-07-14 Ulrich Drepper <drepper@redhat.com>
2718
2719 * manager.c (pthread_handle_create): Initialize self-reference in
2720 descriptor.
2721
b664d723
UD
27222002-07-01 Jakub Jelinek <jakub@redhat.com>
2723
2724 * Examples/ex9.c (main): Remove unused th variable.
2725
d880edc4
UD
27262002-07-10 Ulrich Drepper <drepper@redhat.com>
2727
2728 * wrapsyscall.c: Add __nanosleep alias.
2729 * Versions (GLIBC_2.2.6): Add __nanosleep.
f4741da2
UD
2730 * bug-sleep.c: New file.
2731 * Makefile (tests): Add bug-sleep.
d880edc4 2732
95fdc6a0
UD
27332002-06-19 Steven Munroe <sjmunroe@vnet.ibm.com>
2734
2735 * Examples/ex9.c (main): Use list of children and join them.
2736 (thread): Do not call exit.
2737
9b17bc94
UD
27382002-06-20 Ulrich Drepper <drepper@redhat.com>
2739
2740 * spinlock.c (wait_node_alloc): We cannot use compare-and-exchange.
2741 Unconditionally use the code using spinlock. Use __pthread_release
2742 to free a spinlock.
2743 (wait_node_free): Likewise.
2744 (__pthread_acquire, __pthread_release): Unconditionally define.
2745
a6cd9bf9
AJ
27462002-06-07 Jakub Jelinek <jakub@redhat.com>
2747
2748 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Fix typo.
2749
c0a0f9a3
UD
27502002-05-24 Ulrich Drepper <drepper@redhat.com>
2751
2752 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Use __sync_synchronize.
2753
12b7f470
UD
27542002-05-21 Ulrich Drepper <drepper@redhat.com>
2755
2756 * sysdeps/pthread/pthread.h (pthread_create): Rename first
2757 parameter.
2758 (pthread_cancel): Likewise.
2759 * internals.h (__pthread_create_2_1): Likewise.
2760 * sysdeps/unix/sysv/linux/bits/sigthread.h (pthread_kill): Likewise.
2761
4c393b68
UD
27622002-05-20 Ulrich Drepper <drepper@redhat.com>
2763
2764 * sysdeps/alpha/pt-machine.c (THREAD_SELF): Remove clobber.
2765 Patch by Glen Nakamura <gen@flex.com>.
2766
38a7d8ba
UD
27672002-05-03 Ulrich Drepper <drepper@redhat.com>
2768
2769 * signals.c: Move sighandler functions to...
2770 * sighandler.c: ...here. New file.
2771 * signals.c: Move signal handler related type definitions to...
2772 * internals.h: ...here. Add prototypes for signal handlers.
2773 * Makefile (libpthread-routines): Add sighandler.
2774 (CFLAGS-sighandler.c): Add $(exceptions).
2775
531bafd8
UD
27762002-04-30 Jakub Jelinek <jakub@redhat.com>
2777
2778 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
2779
14b2ede5
UD
27802002-04-08 Ulrich Drepper <drepper@redhat.com>
2781
2782 * sysdeps/pthread/timer_getoverr.c: Return real overrun.
2783 * sysdeps/pthread/posix-timer.h (struct timer_node): Add overrun_count.
2784 * sysdeps/pthread/timer_routines.c (thread_func): Schedule next timeout
2785 based on previous one and not on current time. Count overruns.
2786 Patch by Eric F. Sorton <eric@cctcorp.com>.
2787
2788 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add DELAYTIMER_MAX.
2789
776cc5d3
UD
27902002-04-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
2791
2792 * sysdeps/sh/pt-machine.h: Define _PT_MACHINE_H
2793 if it isn't defined yet.
14b2ede5 2794 (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Defined.
776cc5d3
UD
2795 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
2796 Likewise.
2797 * sysdeps/sh/tls.h: New file.
2798
3632a260
UD
27992002-04-08 Jakub Jelinek <jakub@redhat.com>
2800
2801 * manager.c (__pthread_manager_event): Use self instead of arg
2802 for INIT_THREAD_SELF.
2803 * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Use sizeof (struct
2804 _pthread_descr_struct) instead of sizeof (*descr).
2805
3fc2f6c8
UD
28062002-04-05 Ulrich Drepper <drepper@redhat.com>
2807
2808 * sysdeps/ia64/pt-machine.h: Protect against multiple inclusion.
2809 * sysdeps/alpha/pt-machine.h: Likewise.
2810 * sysdeps/arm/pt-machine.h: Likewise.
2811 * sysdeps/cris/pt-machine.h: Likewise.
2812 * sysdeps/hppa/pt-machine.h: Likewise.
2813 * sysdeps/m68k/pt-machine.h: Likewise.
2814 * sysdeps/mips/pt-machine.h: Likewise.
2815 * sysdeps/powerpc/pt-machine.h: Likewise.
2816 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
2817 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
2818 * sysdeps/sh/pt-machine.h: Likewise.
2819 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
2820 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
2821 * sysdeps/x86_64/pt-machine.h: Likewise.
2822
6736e93b
UD
28232002-04-05 Jakub Jelinek <jakub@redhat.com>
2824
2825 * man/pthread_mutexattr_init.man (pthread_mutexattr_settype): Document
2826 instead of pthread_mutexattr_setkind_np.
2827 (pthread_mutexattr_gettype): Similarly.
2828 * man/pthread_mutexattr_setkind_np.man: New.
2829 * man/Makefile (SOURCES): Add pthread_mutexattr_setkind_np.man.
2830
62097690
UD
28312002-04-02 Ulrich Drepper <drepper@redhat.com>
2832
2833 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Define.
2834
fbaee91d
UD
28352002-03-22 Jakub Jelinek <jakub@redhat.com>
2836
2837 * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Remove.
2838
32fe4a93
UD
28392002-03-22 Ulrich Drepper <drepper@redhat.com>
2840
2841 * internals.h (MEMORY_BARRIER): Define as asm with memory as clobber.
2842
f68137c9
AJ
28432002-03-17 Andreas Jaeger <aj@suse.de>
2844
2845 * sysdeps/i386/pt-machine.h: Add testandset and __compare_and_swap
2846 prototpyes.
2847 * sysdeps/alpha/pt-machine.h: Likewise.
2848 * sysdeps/arm/pt-machine.h: Likewise.
2849 * sysdeps/cris/pt-machine.h: Likewise.
2850 * sysdeps/hppa/pt-machine.h: Likewise.
2851 * sysdeps/i386/i686/pt-machine.h: Likewise.
2852 * sysdeps/ia64/pt-machine.h: Likewise.
2853 * sysdeps/m68k/pt-machine.h: Likewise.
2854 * sysdeps/mips/pt-machine.h: Likewise.
2855 * sysdeps/powerpc/pt-machine.h: Likewise.
2856 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
2857 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
2858 * sysdeps/sh/pt-machine.h: Likewise.
2859 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
2860 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
2861 * sysdeps/x86_64/pt-machine.h: Likewise.
2862
2863 * internals.h: Move testandset and __compare_and_swap prototypes
2864 to pt-machine.h.
2865
1bd8ff7b
AJ
28662002-03-03 Andreas Jaeger <aj@suse.de>
2867
2868 * errno.c: Include resolv.h to avoid warning.
2869
b863ccd7
UD
28702002-02-27 Ulrich Drepper <drepper@redhat.com>
2871
2872 * pthread.c [USE_TLS] (thread_self_stack): Correct check for upper
2873 stack limit.
2874
557fab43
UD
28752002-02-23 Ulrich Drepper <drepper@redhat.com>
2876
b6a0a996
UD
2877 * attr.c (pthread_getattr_np): Don't take thread descriptor size
2878 into account if USE_TLS.
2879 * manager.c (pthread_handle_create): Free TLS data structures if call
2880 failed. Pass correct stack to clone if USE_TLS.
2881 * sysdeps/i386/pt-machine.h: Handle multiple inclusion.
2882 * sysdeps/i386/i686/pt-machine.h: Likewise.
2883 * sysdeps/i386/tls.h: Unconditionally include <pt-machine.h>.
2884
557fab43
UD
2885 * descr.h (struct _pthread_descr_struct): Update p_header for TLS.
2886 Add p_stackaddr element #if USE_TLS.
2887 * internals.c: Include <tls.h>.
2888 * manager.c: Integrate creating and handling of thread descriptor
2889 for TLS.
2890 * pthread.c: Likewise.
2891 * sysdeps/i386/tls.h (tcbhead_t): Add self pointer.
2892 Include <linuxthreads/descr.h> only if TLS is really used.
2893 (GET_DTV): New macro.
2894 (TLS_INIT_TP): Initialize self pointer.
2895
232bd771
UD
28962002-02-17 Andreas Schwab <schwab@suse.de>
2897
2898 * signals.c (sigwait): Check for old sighandler being SIG_ERR,
2899 not NULL.
2900
aed283dd
UD
29012002-02-12 Ulrich Drepper <drepper@redhat.com>
2902
2903 * sysdeps/i386/tls.c (INSTALL_NEW_DTV): Define.
2904 (INSTALL_DTV): Adjust for being passed pointer to element with length.
2905
974ac3d6
UD
29062002-02-08 Ulrich Drepper <drepper@redhat.com>
2907
2908 * sysdeps/i386/tls.h (TLS_INIT_TP): Also initialize %gs.
2909
aed283dd 29102002-02-08 Richard Henderson <rth@redhat.com>
2a535bf6
UD
2911
2912 * sysdeps/alpha/elf/pt-initfini.c: Use \n\ for multiline string.
2913
67eb7235
UD
29142002-02-08 Ulrich Drepper <drepper@redhat.com>
2915
2916 * sysdeps/i386/tls.h: TLS cannot be supported with FLOATING_STACKS
2917 after all.
2918
1a70fdb3
AJ
29192002-02-07 H.J. Lu <hjl@gnu.org>
2920
2921 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Silence the
2922 gcc warning.
2923 (__pthread_spin_lock): Remove ".set noreorder".
2924 * sysdeps/mips/pt-machine.h (__compare_and_swap): Liekwise.
2925
a6049f98
AJ
29262002-02-05 H.J. Lu <hjl@gnu.org>
2927
2928 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Not use
2929 branch likely.
2930 * sysdeps/mips/pt-machine.h (testandset): Likewise.
2931 (__compare_and_swap): Likewise.
2932
cd30b01e
UD
29332002-02-07 Ulrich Drepper <drepper@redhat.com>
2934
2935 * internals.h: Move declarations/definitions of
2936 __pthread_initial_thread_bos, __pthread_initial_thread,
2937 __pthread_manager_thread_bos, __pthread_manager_thread_tos,
2938 __pthread_manager_thread, __pthread_nonstandard_stacks, STACK_SIZE,
2939 CURRENT_STACK_FRAME, __pthread_find_self, and thread_self...
2940 * descr.h: ...here.
2941 * sysdeps/i386/tls.h: Add TLS definitions also for !FLOATING_STACKS.
2942 Define THREAD_GETMEM accordingly.
2943
3fb55878
UD
29442002-02-06 Ulrich Drepper <drepper@redhat.com>
2945
8d4b5a8a
UD
2946 * sysdeps/i386/tls.h: Include <stddef.h> for size_t.
2947
3fb55878
UD
2948 * sysdeps/i386/tls.h: Define THREAD_DTV.
2949
535b764d
UD
29502002-02-04 Ulrich Drepper <drepper@redhat.com>
2951
2952 * internals.h: Move thread descriptor definition...
2953 * descr.h.: ...here. New file.
2954 * sysdeps/i386/tls.h: New file.
2955
654a7a0c
UD
29562002-02-01 H.J. Lu <hjl@gnu.org>
2957
2958 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Use a
2959 different register in the delayed slot. Use branch likely.
2960
2961 * sysdeps/mips/pt-machine.h (testandset): Call _test_and_set.
2962 (__compare_and_swap): Return 0 only when failed to compare. Use
2963 branch likely.
2964
fb23eb25
UD
29652002-02-01 Jakub Jelinek <jakub@redhat.com>
2966
2967 * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set,
2968 __pthread_kill_other_threads_np): Move to GLIBC_PRIVATE.
2969 * sysdeps/i386/i586/Versions: Move all symbols to GLIBC_PRIVATE.
2970 * sysdeps/i386/i686/Versions: Move all symbols to GLIBC_PRIVATE.
2971 * sysdeps/sparc/sparc32/sparcv9/Versions: New file.
2972 * sysdeps/sparc/sparc64/Versions: New file.
2973 * sysdeps/ia64/Versions: Move all symbols to GLIBC_PRIVATE.
2974
5688da55
UD
29752002-01-31 Ulrich Drepper <drepper@redhat.com>
2976
2977 * pthread.c: _dl_cpuclock_offset is not any longer a global variable
2978 in SHARED code, use GL(dl_cpuclock_offset).
2979
dde762a2
AJ
29802002-01-28 Andreas Jaeger <aj@suse.de>
2981
2982 * sysdeps/mips/pspinlock.c (__pthread_spin_init): Clear *LOCK to
2983 0. Patch by Machida Hiroyuki <machida@sm.sony.co.jp>.
2984
956f8acd
UD
29852002-01-16 Martin Schwidefsky <schwidefsky@de.ibm.com>
2986
dde762a2
AJ
2987 * sysdeps/s390/s390-32/pt-machine.h (MEMORY_BARRIER): Define.
2988 (CURRENT_STACK_FRAME): Remove duplicate definition.
2989 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
956f8acd 2990
01d1a5b6
UD
29912002-01-14 Martin Schwidefsky <schwidefsky@de.ibm.com>
2992
ec562b3d
UD
2993 * Makefile (CFLAGS-tst-cancel.c): Add -fno-inline-functions to prevent
2994 automatic inline.
01d1a5b6 2995
de13e6e7
UD
29962002-01-12 Andreas Schwab <schwab@suse.de>
2997
2998 * Makefile (test-srcs): Add tst-signal.
2999 (tests): Run tst-signal.
3000 (distribute): Add tst-signal.sh.
3001 * tst-signal.c, tst-signal.sh: New files.
3002
037af25e
AJ
30032002-01-14 Andreas Jaeger <aj@suse.de>
3004
3005 * sysdeps/x86_64/pt-machine.h (INIT_THREAD_SELF): Avoid warning.
3006
6c69f24a
UD
30072002-01-11 Andreas Schwab <schwab@suse.de>
3008
3009 * signals.c (sighandler): Initialize all elements to SIG_ERR.
3010 (__sigaction): Don't use value from sighandler if it is SIG_ERR.
3011
abd33689
UD
30122002-01-06 Richard Henderson <rth@redhat.com>
3013
3014 * sysdeps/alpha/elf/pt-initfini.c: New file.
3015
9403ec5d
AJ
30162001-12-29 Andreas Jaeger <aj@suse.de>
3017
3018 * Examples/ex9.c: Add noreturn attribute for thread.
3019 * Examples/ex10.c: Likewise.
3020 * Examples/ex13.c (thread_start): Likewise.
3021 * Examples/ex15.c (worker): Likewise.
3022
3023 * Examples/ex18.c: Include unistd.h for prototype of sleep.
3024
638621af
UD
30252001-12-14 Ulrich Drepper <drepper@redhat.com>
3026
3027 * man/pthread_atfork.man: Adjust description of mutex handling
3028 after fork for current implementation.
3029 * linuxthreads.texi: Likewise [PR libc/2519].
3030
2e22fed2
UD
30312001-12-13 Andreas Schwab <schwab@suse.de>
3032
3033 * specific.c (pthread_key_delete): Don't contact the thread
3034 manager if no threads have been created yet.
3035
abd33689 30362001-12-12 NIIBE Yutaka <gniibe@m17n.org>
2bfe5fd1
UD
3037
3038 * sysdeps/sh/pt-machine.h (INIT_THREAD_SELF): Added __volatile__
3039 qualifier to be safe.
3040
c3317d1e
UD
30412001-11-30 Andreas Schwab <schwab@suse.de>
3042
3043 * pthread.c (pthread_handle_sigcancel) [THREAD_SELF]: Double check
3044 that self is the manager thread, and initialize the thread
3045 register if not.
3046 (thread_self_stack) [THREAD_SELF]: New function to find self via
3047 stack pointer.
3048 * manager.c (pthread_handle_create): Don't block cancel signal any
3049 more.
3050
64753027
AJ
30512001-11-29 Andreas Jaeger <aj@suse.de>
3052
2e22fed2 3053 * sysdeps/x86_64/pt-machine.h: Use %gs as thread specific register.
64753027
AJ
3054 (THREAD_SELF): New.
3055 (INIT_THREAD_SELF): New.
3056 (THREAD_GETMEM): New.
c3317d1e 3057 (THREAD_GETMEM_NC):
64753027
AJ
3058 (THREAD_SETMEM): New.
3059 (THREAD_SETMEM_NC): New.
3060 (FLOATING_STACKS): Define.
3061 (ARCH_STACK_MAX_SIZE): Define.
3062
03a2c647
UD
30632001-11-28 Kaz Kylheku <kaz@ashi.footprints.net>
3064
3065 Bugfix to pthread_key_delete. It was iterating over the thread
3066 manager's linked list of threads, behind the thread manager's
3067 back causing a race. The fix is to have the manager iterate over
3068 the threads instead, using a new request type for doing so.
3069 * internals.h (struct pthread_request): New manager request type
3070 REQ_FOR_EACH_THREAD.
3071 * manager.c (pthread_for_each_thread): New function.
3072 (__pthread_manager): Handle new REQ_FOR_EACH_THREAD request.
3073 * specific.c (struct pthread_key_delete_helper_args): New type.
3074 (pthread_key_delete_helper): New static function.
3075 (pthread_key_delete): Use the new thread manager
3076 REQ_FOR_EACH_THREAD function to iterate over the threads and set
3077 the delete key slot to a null value in each thread.
3078 * Examples/ex18.c: New test.
3079 * Makefile (tests): Add ex18.
3080
cf6a2367
UD
30812001-11-22 Wolfram Gloger <wg@malloc.de>
3082
3083 * pthread.c (pthread_onexit_process): Don't call free
3084 after threads have been asynchronously terminated.
3085
3086 * manager.c (pthread_handle_exit): Surround cancellation
3087 of threads with __flockfilelist()/__funlockfilelist().
3088
30f5deff
AS
30892001-11-26 Andreas Schwab <schwab@suse.de>
3090
3091 * manager.c (pthread_handle_create): Start the child thread with
3092 the cancel signal blocked, so that it does not handle it before
3093 the thread register is set up. Save errno from failed clone call.
3094
4acda75c
UD
30952001-11-15 Ulrich Drepper <drepper@redhat.com>
3096
3097 * sysdeps/i386/i686/Implies: Removed.
3098 * sysdeps/i386/i686/Versions: New file.
3099
76f93292
AJ
31002001-10-31 Andreas Jaeger <aj@suse.de>
3101
3102 * sysdeps/x86_64/Makefile: Remove, we do not need it anymore.
3103
b61345a1
UD
31042001-10-05 Kevin Buettner <kevinb@cygnus.com>
3105
3106 * pthread.c (__linuxthread_pthread_sizeof_descr): Change name
3107 to __linuxthreads_pthread_sizeof_descr to match name used by
3108 symbol_list_arr[LINUXTHREADS_PTHREAD_SIZEOF_DESCR] in
3109 linuxthreads_db/td_symbol_list.c.
3110
2be2ce5f
AJ
31112001-09-22 Andreas Jaeger <aj@suse.de>
3112
3113 * linuxthreads/tst-context.c: Avoid compile warning.
3114
d8d373c5
AJ
31152001-09-20 Andreas Jaeger <aj@suse.de>
3116
3117 * shlib-versions: Add x86-64.
3118
c9cf6dde
AJ
31192001-09-19 Andreas Jaeger <aj@suse.de>
3120
3121 * sysdeps/x86_64/Makefile: New file.
3122 * sysdeps/x86_64/pspinlock.c: New file.
3123 * sysdeps/x86_64/pt-machine.h: New file.
3124
7aba050d
UD
31252001-09-12 Jakub Jelinek <jakub@redhat.com>
3126
3127 * sysdeps/pthread/timer_delete.c (timer_delete): Thread may be NULL
3128 for SIGEV_NONE.
3129 * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
3130
57642a78 31312001-09-11 Ulrich Drepper <drepper@redhat.com>
7aba050d 3132 Wolfram Gloger <wg@malloc.de>
57642a78
UD
3133
3134 * join.c: Protect all communications from and to manager with
3135 TEMP_FAILURE_RETRY.
3136 * manager.c: Likewise.
3137 * pthread.c: Likewise.
3138 * smeaphore.c: Likewise.
3139
746802f2
UD
31402001-08-29 Ulrich Drepper <drepper@redhat.com>
3141
3142 * spinlock.c (__pthread_lock): Top max_count value with
3143 MAX_ADAPTIVE_SPIN_COUNT.
3144 * internals.h (MAX_ADAPTIVE_SPIN_COUNT): Define if not already done.
3145
3146 * sysdeps/i386/i686/pt-machine.h (BUSY_WAIT_NOP): New macro to
3147 help P4.
3148
c06a49c5
UD
31492001-08-27 Jakub Jelinek <jakub@redhat.com>
3150
3151 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_t): Only define to
3152 non-opaque type if __USE_UNIX98.
3153
82ad8034
UD
31542001-08-26 Jakub Jelinek <jakub@redhat.com>
3155
3156 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_t): Define
3157 non-opaque lock types also if _IO_MTSAFE_IO is defined.
3158
edb63884
RM
31592001-08-23 Roland McGrath <roland@frob.com>
3160
3161 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start): Take
3162 new first argument, skip the cleanup handler if it's zero.
3163 (_LIBC_LOCK_RECURSIVE_INITIALIZER): New macro.
3164 (__libc_lock_define_initialized_recursive): Use it.
3165 * sysdeps/pthread/bits/stdio-lock.h: File removed.
3166 The sysdeps/generic file from the main tree now suffices.
3167
c12aa801
RM
31682001-08-22 Roland McGrath <roland@frob.com>
3169
3170 * sysdeps/pthread/bits/stdio-lock.h: Include <bits/libc-lock.h>
3171 instead of <pthread.h>.
3172 (_IO_lock_t): Define this typedef using __libc_lock_define_recursive.
3173 (_IO_lock_initializer): Add braces.
3174 (_IO_lock_lock): Use __libc_lock_lock_recursive.
3175 (_IO_lock_unlock): Use __libc_lock_unlock_recursive.
3176
3177 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_recursive_t): New type.
3178 (__libc_lock_define_initialized_recursive): Use it.
3179 (__libc_lock_init_recursive): Likewise.
3180 (__libc_lock_fini_recursive): Likewise.
3181 (__libc_lock_lock_recursive): Likewise.
3182 (__libc_lock_trylock_recursive): Likewise.
3183 (__libc_lock_unlock_recursive): Likewise.
3184 (__libc_lock_define_recursive): New macro.
3185
5db91571
UD
31862001-08-14 Jakub Jelinek <jakub@redhat.com>
3187
3188 * lockfile.c (__pthread_provide_lockfile): New variable.
3189 * pthread.c (__pthread_require_lockfile): New variable.
3190 * cancel.c (__pthread_require_lockfile): New variable.
3191
ad71126b
UD
31922001-07-31 Ulrich Drepper <drepper@redhat.com>
3193
e14b1447
UD
3194 * tst-context.c (threadfct): Initialize context before calling
3195 makecontext.
3196
ad71126b
UD
3197 * Examples/ex17.c: Make sure test thread is around long enough.
3198
045fcd26
UD
31992001-07-26 kaz Kojima <kkojima@rr.iij4u.or.jp>
3200
3201 * sysdeps/sh/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF): Defined.
3202
f369623d
UD
32032001-07-24 Ulrich Drepper <drepper@redhat.com>
3204
3205 * tst-context.c (main): Print explanation before bailing out
3206 because context handling is not supported.
3207
3afd9491
UD
32082001-07-23 Ulrich Drepper <drepper@redhat.com>
3209
06b5289f
UD
3210 * Makefile (tests): Add tst-context.
3211 * tst-context.c: New file.
3212
3afd9491
UD
3213 * sysdeps/pthread/bits/stdio-lock.h: Define
3214 _IO_cleanup_region_start_noarg.
3215
4b9afc43
UD
32162001-07-23 Jakub Jelinek <jakub@redhat.com>
3217
3218 * sysdeps/alpha/pt-machine.h (FLOATING_STACKS): Define.
3219 (ARCH_STACK_MAX_SIZE): Define.
3220 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
3221 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
3222
8d42e2e5
UD
32232001-07-19 Jakub Jelinek <jakub@redhat.com>
3224
3225 * sysdeps/i386/useldt.h: Fix typo in ARCH_STACK_MAX_SIZE comment.
3226
3227 * sysdeps/ia64/pt-machine.h (FLOATING_STACKS): Define.
3228 (ARCH_STACK_MAX_SIZE): Define.
3229 * manager.c (pthread_allocate_stack): Handle FLOATING_STACKS with
3230 NEED_SEPARATE_REGISTER_STACK.
3231
774a8fe8
UD
32322001-07-16 Andreas Schwab <schwab@suse.de>
3233
3234 * Makefile (before-compile): Don't add $(objpfx)crti.o.
3235 (omit-deps): Add crti.
3236 ($(objpfx)libpthread.so): Depend on $(objpfx)crti.o, but make sure
3237 it is filtered out of the link command.
3238
778e0ef7
UD
32392001-07-16 Ulrich Drepper <drepper@redhat.com>
3240
774a8fe8 3241 * pthread.c (pthread_initialize): For FLOATING_STACKS don't bother
778e0ef7
UD
3242 to find the right value for __pthread_initial_thread_bos, it's not
3243 used. If not FLOATING_STACKS first run
3244 __pthread_init_max_stacksize.
3245
2879ae4a
UD
32462001-06-16 H.J. Lu <hjl@gnu.org>
3247
3248 * internals.h: Include <stackinfo.h>.
3249
3250 * attr.c: Don't include <stackinfo.h> here.
3251 * cancel.c: Likewise.
3252 * manager.c: Likewise.
3253 * pthread.c: Likewise.
3254 * ptlongjmp.c: Likewise.
3255
8fee1bb0
UD
32562001-03-23 Matthew Wilcox <willy@ldl.fc.hp.com>
3257
3258 * attr.c: Make _STACK_GROWS_UP work.
3259 * internals.h: Likewise.
3260 * manager.c: Likewise.
3261 * pthread.c: Likewise.
3262
2e92fd3c
UD
32632001-06-15 H.J. Lu <hjl@gnu.org>
3264
3265 * pthread.c (__pthread_reset_main_thread): Fix a typo.
3266
bad6065c
UD
32672001-02-02 John S. Marvin <jsm@udlkern.fc.hp.com>
3268
3269 * semaphore.h: Use struct _pthread_fastlock as an element of
3270 sem_t instead of an identical struct.
3271 * rwlock.c: Remove casts.
3272 * semaphore.c: Likewise.
3273
e856b72d
AJ
32742001-04-30 Alan Modra <amodra@one.net.au>
3275
3276 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: New.
3277
b912ca11
UD
32782001-05-25 Bruce Mitchener <bruce@cubik.org>
3279
3280 * linuxthreads.texi: Spelling corrections.
3281
17ffa498
UD
32822001-05-25 Ulrich Drepper <drepper@redhat.com>
3283
3284 * oldsemaphore.c (__old_sem_wait): Clear p_nextwaiting before
3285 returning successfully.
3286 Patch by Gene Cooperman <gene@ccs.neu.edu>.
3287
47e5d2a8
UD
32882001-05-24 Ulrich Drepper <drepper@redhat.com>
3289
3290 * spinlock.c (__pthread_lock) [HAS_COMPARE_AND_SWAP]: Before doing any
3291 serious work try once whether the lock is uncontested.
3292 Remove duplicate reading of __status before loop.
3293 Change suggested by Hans Boehm <hans_boehm@hp.com>.
3294
3295 * spinlock.h (__pthread_trylock): Remove need for oldstatus variable.
3296 (__pthread_alt_trylock): Likewise.
3297
9c4a5197
UD
32982001-05-01 Kaz Kylheku <kaz@ashi.footprints.net>
3299
3300 Memory barrier overhaul following line by line inspection.
3301 * mutex.c (pthread_once): Missing memory barriers added.
3302 * pthread.c (__pthread_wait_for_restart_signal,
3303 __pthread_timedsuspend_new, __pthread_restart_new): Added
3304 memory barriers ``just in case'' and for documentary value.
3305 * spinlock.c (__pthread_release): New inline function for releasing
3306 spinlock, to complement __pthread_acquire. Includes memory
3307 barrier prior to assignment to spinlock, and __asm __volatile
3308 dance to prevent reordering or optimization of the spinlock access.
3309 * spinlock.c (__pthread_unlock, __pthread_alt_lock,
3310 __pthread_alt_timedlock, __pthread_alt_unlock,
3311 __pthread_compare_and_swap): Updated to use new __pthread_release
3312 instead of updating spinlock directly.
3313 * spinlock.c (__pthread_lock, __pthread_unlock, wait_node_alloc,
3314 wait_node_free, wait_node_dequeue, __pthread_alt_lock,
3315 __pthread_alt_timedlock, __pthread_alt_unlock, __pthread_acquire):
3316 Memory barrier overhaul. Lots of missing memory barriers added,
3317 a couple needless ones removed.
3318 * spinlock.c (__pthread_compare_and_swap): testandset optimization
3319 removed, just calls __pthread_acquire, which has the new read
3320 barrier in it before its testandset.
3321
f1d71039
RM
33222001-05-20 Roland McGrath <roland@frob.com>
3323
3324 * Makeconfig: New file, variables used to be in main libc Makeconfig.
3325
0e47171f
GK
33262001-05-09 Geoff Keating <geoffk@redhat.com>
3327
f1d71039 3328 * sysdeps/powerpc/pt-machine.h
0e47171f
GK
3329 (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): Define.
3330 (__compare_and_swap): Remove memory barriers.
3331 (__compare_and_swap_with_release_semantics): New function.
3332
dcea709a
AJ
33332001-04-24 Andreas Jaeger <aj@suse.de>
3334
3335 * wrapsyscall.c: send* and recv* return ssize_t.
3336
3337 * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Unlock the
3338 mutex instead of double locking it.
3339 Reported by Pierre Artaud <partaud@sodatec.com>.
3340
3b5c1b57
UD
33412001-04-23 Ulrich Drepper <drepper@redhat.com>
3342
44c51e9a
UD
3343 * sysdeps/pthread/getcpuclockid.c: Make function generic, test
3344 using #ifdef whether the clock is available.
3345 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: Removed.
3346
295125c5
UD
3347 * sysdeps/ia64/Versions: New file.
3348
7e946302
UD
3349 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init): We don't
3350 have to call __gmon_start__ in the libpthread DSO.
3351 * sysdeps/pthread/pt-initfini.c (_init): Likewise.
b5edfe61 3352
3b5c1b57
UD
3353 * Makefile (libpthread-routines): Add ptclock_gettime and
3354 ptclock_settime.
3355 * internals.h: Don't use cpuclock-init.h definitions, use
3356 hp-timing.h definitions.
3357 * pthread.c: Likewise.
3358 * manager.c: Likewise.
3359 * ptclock_gettime.c: New file.
3360 * ptclock_settime.c: New file.
18ac1129
UD
3361 * internals.h: Fix parameter type for __pthread_clock_gettime and
3362 __pthread_clock_settime.
3b5c1b57
UD
3363
3364 * sysdeps/i386/i586/ptclock_gettime.c: Removed.
3365 * sysdeps/i386/i586/ptclock_settime.c: Removed.
3366 * sysdeps/i386/i586/Makefile: Removed.
3367
a3bbce5b
UD
33682001-04-22 Ulrich Drepper <drepper@redhat.com>
3369
3370 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_ASYNCH_IO.
3371 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3372
e6dcf352
AJ
33732001-04-21 Andreas Jaeger <aj@suse.de>
3374
f9e1d149
AJ
3375 * sysdeps/pthread/timer_routines.c (thread_func): Add noreturn
3376 attribute, remove statements that will never be executed.
d8a60a15 3377 (thread_func): Remove mutex_unlock call since it's never executed.
d6f86085 3378 (thread_func): Fix comment as suggested by Jakub Jelinek.
f9e1d149 3379
159a2e1a
AJ
3380 * manager.c (__pthread_manager): Add noreturn
3381 attribute.
3382 (pthread_start_thread): Likewise, remove return statement.
3383 (pthread_start_thread_event): Likewise.
3384 Add noreturn attribute for pthread_handle_exit.
3385 * weaks.c: Add noreturn attribute for pthread_exit.
3386
e6dcf352
AJ
3387 * internals.h: Add __pthread_clock_gettime and
3388 __pthread_clock_settime prototypes.
3389
5fc48cd7
UD
33902001-04-21 Ulrich Drepper <drepper@redhat.com>
3391
3392 * internals.h: Include <cpuclock-init.h>.
3393 (struct _pthread_descr_struct): Add p_cpuclock_offset field if
3394 CPUCLOCK_VARDEF is defined.
3395 * pthread.c (__pthread_initialize_minimal): Initialize
3396 p_cpuclock_offset field for main thread if CPUCLOCK_INIT is defined.
3397 * manager.c (pthread_start_thread): Set p_cpuclock_offset field
3398 for new thread to current CPU clock value.
3399
3400 * sysdeps/i386/useldt.h: Extend all the macros to handle 8-byte values.
3401
3402 * sysdeps/i386/i586/Makefile: New file.
3403 * sysdeps/i386/i586/Versions: New file.
3404 * sysdeps/i386/i586/ptclock_gettime.c: New file.
3405 * sysdeps/i386/i586/ptclock_settime.c: New file.
3406 * sysdeps/i386/i686/Implies: New file.
3407
9bab9806
UD
34082001-04-18 Jakub Jelinek <jakub@redhat.com>
3409
3410 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Put specs into
3411 $generated, not $postclean-generated.
3412
80ff3e34
AJ
34132001-04-18 Andreas Jaeger <aj@suse.de>
3414
3415 * Makefile (otherlibs): Added.
3416
ddad941e
UD
34172001-04-18 Jakub Jelinek <jakub@redhat.com>
3418
3419 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
3420
9b7ee67e
UD
34212001-04-16 Ulrich Drepper <drepper@redhat.com>
3422
3423 * signals.c (sigwait): NSIG is no signal number. Block all
3424 signals while in signal handler for signals in SET.
3425 Patch by Manfred Spraul <manfred@colorfullife.com>.
3426
b721a2c0
UD
34272001-04-12 Ulrich Drepper <drepper@redhat.com>
3428
a08877d0
UD
3429 * tst-cancel.c: Disable most tests. Add new test where all
3430 cleanup handlers must run.
3431 * Makefile (tests): Add tst-cancel again.
3432
3433 * cancel.c (__pthread_perform_cleanup): Correct condition for
3434 leaving cleanup loop early.
3435
b775be64
UD
3436 * sysdeps/i386/Makefile: Make sure gcc uses a frame pointer for
3437 all the files which use CURRENT_STACK_FRAME.
b721a2c0
UD
3438 * sysdeps/i386/pt-machine.h (CURRENT_STACK_FRAME): Define using
3439 __builtin_frame_address.
3440 * sysdeps/i386/i686/pt-machine.h: Likewise.
3441
7d4c3e67
UD
34422001-04-11 Ulrich Drepper <drepper@redhat.com>
3443
9dd7309c
UD
3444 * Makefile (tests): Comment out tst-cancel for now.
3445
7d4c3e67
UD
3446 * tst-cancel.c (main): Cleanup 4 is supposed to run. Create
3447 temporary file in object directory.
3448 * Makefile: Don't allow inlining when compiling tst-cancel.c.
3449 Pass $(objpfx) to tst-cancel.
3450
43df859b
UD
34512001-04-11 David S. Miller <davem@redhat.com>
3452
3453 * sysdeps/sparc/sparc32/pt-machine.h (stack_pointer): Advance
3454 up closer to user local variables so that new cleanup heuristics work.
3455 * sysdeps/sparc/sparc64/pt-machine.h (stack_pointer): Likewise.
3456
95fe9d95
UD
34572001-04-11 Ulrich Drepper <drepper@redhat.com>
3458
3459 * cancel.c (_pthread_cleanup_push): Catch invalid __prev buffer
3460 and remove it.
3461 (_pthread_cleanup_push_defer): Likewise.
3462
3463 * tst-cancel.c (main): Fix loop printing cleanup output.
3464
07bccb46
UD
34652001-04-10 kaz Kojima <kkojima@rr.iij4u.or.jp>
3466
3467 * sysdeps/sh/pspinlock.c (__pthread_spin_lock): Fix a reverse
3468 test.
3469 (__pthread_spin_trylock): Likewise.
3470 * sysdeps/sh/pt-machine.h (testandset): Likewise.
3471
58f46c79
UD
34722001-04-10 Ulrich Drepper <drepper@redhat.com>
3473
3474 * join.c (pthread_exit): Move code to new function __pthread_do_exit
3475 which takes an extra parameter with the current frame pointer.
3476 Call new function with CURRENT_STACK_FRAME.
3477 (__pthread_do_exit): New function. Call __pthread_perform_cleanup
3478 with the new parameter.
3479 (pthread_join): Call __pthread_do_exit instead of pthread_exit.
3480 * cancel.c (__pthread_perform_cleanup): Takes extra parameter. Use
3481 this parameter as the initial value the cleanup handler records are
3482 compared against. No active cleanup handler record must have an
3483 address lower than the previous one and the initial record must be
3484 above (below on PA) the frame address passed in.
3485 (pthread_setcancelstate): Call __pthread_do_exit instead of
3486 pthread_exit.
3487 (pthread_setcanceltype): Likewise.
3488 (pthread_testcancel): Likewise.
3489 (_pthread_cleanup_pop_restore): Likewise.
3490 * condvar.c (pthread_cond_wait): Likewise.
3491 (pthread_cond_timedwait_relative): Likewise.
3492 * manager.c (pthread_start_thread): Likewise.
3493 * oldsemaphore.c (__old_sem_wait): Likewise.
3494 * pthread.c (pthread_handle_sigcancel): Likewise.
3495 * semaphore.c (__new_sem_wait): Likewise.
3496 (sem_timedwait): Likewise.
3497 * ptlongjmp.c (pthread_cleanup_upto): Also use current stack frame
3498 to limit the cleanup handlers which get run.
3499 * internals.h: Add prototype for __pthread_do_exit. Adjust prototype
3500 for __pthread_perform_cleanup.
3501
3502 * Makefile (tests): Add tst-cancel.
3503 * tst-cancel.c: New file.
3504
eacde9d0
UD
35052001-04-08 Hans-Peter Nilsson <hp@axis.com>
3506
3507 * sysdeps/cris/pt-machine.h: New file.
3508 * sysdeps/cris/pspinlock.c: New file.
3509
35102001-04-09 Hans-Peter Nilsson <hp@axis.com>
3511
3512 * shlib-versions: Add case for Linux on CRIS.
3513
93a4b7ca
UD
35142001-03-26 Ulrich Drepper <drepper@redhat.com>
3515
3516 * attr.c (pthread_getattr_np): Correct computation of stack size
3517 for machiens with register stack.
3518
3519 * Examples/ex17.c (main): Correct detection of failed mmap call.
3520
844b79a6
UD
35212001-03-21 Jakub Jelinek <jakub@redhat.com>
3522
3523 * pthread.c (__pthread_initialize_manager): Fix a typo.
3524
cf4431ed
UD
35252001-03-21 Jakub Jelinek <jakub@redhat.com>
3526
3527 * attr.c (__pthread_attr_setstack): Fix alignment check.
3528 (pthread_getattr_np): __stackaddr is top of stack, not bottom.
3529 * Makefile (tests): Add ex17 test.
3530 * Examples/ex17.c: New test.
3531
373e6a51
UD
35322001-03-20 Ulrich Drepper <drepper@redhat.com>
3533
481b550f 3534 * Makefile: Define -D_RPC_THREAD_SAFE_ for cancel.c.
373e6a51 3535 * cancel.c (__pthread_perform_cleanup): Call __rpc_thread_destroy.
f1e4a4a4 3536 * sysdeps/pthread/bits/libc-tsd.h: Define _LIBC_TSD_KEY_VARS.
373e6a51 3537
639c3248
UD
35382001-03-18 Ulrich Drepper <drepper@redhat.com>
3539
3540 * Makefile: When generating DSO link with libc_nonshared.a.
3541
7c91639e
UD
35422001-02-26 Jakub Jelinek <jakub@redhat.com>
3543
3544 * signals.c (pthread_sighandler): Use CALL_SIGHANDLER.
3545
a66f0958
UD
35462001-02-23 Jakub Jelinek <jakub@redhat.com>
3547
3548 * internals.h (__pthread_init_max_stacksize): New prototype.
3549 * attr.c (__pthread_attr_setstacksize): Call
3550 __pthread_init_max_stacksize if not yet initialized.
3551 * pthread.c (__pthread_init_max_stacksize): New function.
3552 (__pthread_initialize_manager): Call it.
3553 Patch by <dtc@cmucl.cons.org>.
3554
aeba9785
UD
35552001-03-16 Ulrich Drepper <drepper@redhat.com>
3556
3557 * attr.c (pthread_getattr_np): Fix __stacksize computation for IA-64.
3558
136d4332
UD
35592001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
3560
3561 * shlib-versions: Add rule for Linux on 64 bit S/390.
3562 * sysdeps/s390/s390-64/pt-machine.h: New file.
3563 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
3564
35652001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
3566
3567 * sysdeps/s390/pt-machine.h: Move to...
3568 * sysdeps/s390/s390-32/pt-machine.h: ...here.
3569 Add defines for FLOATING_STACK and ARCH_STACK_MAX_SIZE.
3570
3bf927cb
UD
35712001-03-15 Ulrich Drepper <drepper@redhat.com>
3572
3573 * Versions [libpthread] (GLIBC_2.2.3): Add pthread_getattr_np.
3574 * attr.c: Implement pthread_getattr_np.
3575 * sysdeps/pthread/pthread.h: Add prototype for pthread_getattr_np.
3576 * internals.h (struct _pthread_descr_struct): Add p_inheritsched.
3577 * manager.c (pthread_handle_create): Initialize p_inheritsched.
3578
832c025e
AJ
35792001-03-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
3580
3bf927cb 3581 * sysdeps/unix/sysv/linux/s390/pt-initfini.c: Use 0x07 padding for
832c025e
AJ
3582 code alignment.
3583
08b3d7ad
UD
35842001-02-20 Hans Boehm <hans_boehm@hp.com>
3585
3586 * manager.c (manager_mask): Removed static vesion. Now always local
3587 to __pthread_manager().
3588 (manager_mask_all): Removed completely.
3589 (__pthread_manager): Remove manager_mask_all initialization.
3590 (pthread_handle_create): Remove code to set and reset signal mask
3591 around __clone2() calls.
3592
4c48dc93
UD
35932001-02-17 Jakub Jelinek <jakub@redhat.com>
3594
3595 * spinlock.c (__pthread_lock): Force lock->__status to be read from
3596 memory on every spin.
3597
596b2f0e
AJ
35982001-02-10 Andreas Jaeger <aj@suse.de>
3599
3600 * Makefile (extra-objs): New.
3601
257bdad0
UD
36022001-02-09 Jakub Jelinek <jakub@redhat.com>
3603
3604 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Add
3605 __pthread_initialize_minimal prototype.
3606
441f7d1e
UD
36072001-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
3608
3609 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
3610
d7fce7e0
UD
36112001-02-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
3612
3613 * sysdeps/unix/sysv/linux/s390/pt-initfini.c: New file.
3614
672fd41b
UD
36152001-02-06 Ulrich Drepper <drepper@redhat.com>
3616
3617 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: First attempt to fix the
3618 broken code. Patch by Jes Sorensen.
3619
eb8ea10a
AJ
36202001-02-06 Andreas Jaeger <aj@suse.de>
3621
3622 * sysdeps/pthread/pthread.h: Move __pthread_initialize from here
3623 to...
3624 * internals.h: ...here.
3625
5a35dfca
UD
36262001-02-05 Jes Sorensen <jes@linuxcare.com>
3627
3628 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
3629
e4c785c8
UD
36302001-02-02 Ulrich Drepper <drepper@redhat.com>
3631
3632 * Versions: Remove __pthread_initialize_minimal.
3633
b71e7ce8
UD
36342001-02-01 Ulrich Drepper <drepper@redhat.com>
3635
3636 * Makefile: Add rules to build crti.o and make it being used in
3637 building libpthread.so.
3638 * sysdeps/i386/Makefile: New file.
3639 * sysdeps/pthread/pt-initfini.c: New file.
3640
3641 * pthread.c: Cleanups.
3642
7dcc4ea0
AJ
36432001-01-28 Andreas Jaeger <aj@suse.de>
3644
3645 * oldsemaphore.c (__old_sem_init): Adjust for last change.
3646 * sysdeps/pthread/bits/libc-lock.h: Likewise.
3647 * spinlock.c: Likewise.
3648
48ba4bd2
UD
36492001-01-28 Ulrich Drepper <drepper@redhat.com>
3650
3651 * sysdeps/pthread/bits/initspin.h: Make all names namespace clean.
3652 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
3653 * manager.c: Adjust for namespace cleanup in bits/initspin.h.
3654 * pthread.c: Likewise.
3655 * spinlock.h: Likewise.
3656 * sysdeps/pthread/pthread.h: Likewise.
3657
edf9cc89
UD
36582001-01-26 Ulrich Drepper <drepper@redhat.com>
3659
61f9d0a3
UD
3660 * sysdeps/pthread/bits/pthreadtypes.h: Define pthread_attr_t also
3661 as struct __pthread_attr_s.
3662
edf9cc89
UD
3663 * semaphore.h (sem_t): Cleanup namespace, rename status and
3664 spinlock elements.
3665
3f738366
UD
36662001-01-13 Jakub Jelinek <jakub@redhat.com>
3667
3668 * pthread.c (pthread_onexit_process): Clear
3669 __pthread_manager_thread_bos after freeing it.
3670 * Makefile (tests): Add ex16.
3671 * Examples/ex16.c: New file.
3672
5ef50d00
UD
36732001-01-11 Jakub Jelinek <jakub@redhat.com>
3674
3675 * Makefile (CFLAGS-pthread.c): Pass -DHAVE_Z_NODELETE if ld supports
3676 -z nodelete.
3677 * pthread.c (pthread_exit_process): Rename to...
3678 (pthread_onexit_process): ...this.
3679 (pthread_atexit_process, pthread_atexit_retcode): New.
3680 (pthread_initialize): Call __cxa_atexit instead of __cxa_on_exit
3681 and only if HAVE_Z_NODELETE is not defined.
3682 (__pthread_initialize_manager): Register pthread_atexit_retcode
3683 with __cxa_atexit.
3684
7e36861e
UD
36852001-01-11 Ulrich Drepper <drepper@redhat.com>
3686
3687 * pthread.c (pthread_initialize): Use __cxs_on_exit not __cxa_atexit.
3688
36892001-01-11 Jakub Jelinek <jakub@redhat.com>
3690
3691 * Makefile (tests): Add ex15.
3692 * Examples/ex15.c: New test.
3693
1950ebc6
UD
36942001-01-08 Ulrich Drepper <drepper@redhat.com>
3695
3696 * pthread.c (pthread_exit_process): Free memory allocated for
3697 manager stack.
3698
af8240eb 36992000-12-31 Ulrich Drepper <drepper@redhat.com>
1c566118 3700
af8240eb
UD
3701 * manager.c (pthread_alloca_stack): Remove MAP_FIXED from mmap calls.
3702 (pthread_free): Always unmap the stack. It's safe now that we don't
3703 use MAP_FIXED to allocate stacks.
1c566118 3704
41b64fc4
UD
37052000-12-31 Ulrich Drepper <drepper@redhat.com>
3706
3707 * sysdeps/powerpc/pspinlock.c: Don't include pt-machine.h here.
3708
3709 * manager.c (pthread_allocate_stack): Prepare for removal of MAP_FIXED.
3710
09f5e163
UD
37112000-11-15 Wolfram Gloger <wg@malloc.de>
3712
3713 * manager.c (pthread_free): [!FLOATING_STACKS]: Only remap the
3714 stack to PROT_NONE, don't unmap it, avoiding collisions with malloc.
3715
27ee0a55
AJ
37162000-12-27 Andreas Jaeger <aj@suse.de>
3717
3718 * Examples/ex13.c: Make local functions static.
3719 * ecmutex.c: Likewise.
784d802e 3720 * joinrace.c: Likewise.
27ee0a55
AJ
3721 * Examples/ex14.c: Likewise.
3722
3723 * Examples/ex2.c: Make local functions static; reformat.
3724 * Examples/ex1.c: Likewise.
3725 * Examples/ex4.c: Likewise.
3726 * Examples/ex5.c: Likewise.
3727 * Examples/ex7.c: Likewise.
3728
3729 * oldsemaphore.c: Add prototypes to shut up GCC.
3730 * pt-machine.c: Likewise.
3731
3732 * weaks.c: Add prototype for pthread_exit.
3733
3734 * internals.h: Add some prototypes, format prototypes and add
3735 missing externs.
3736 Move __libc_waitpid prototype to include/sys/wait.h.
3737
3738 * rwlock.c: Include <bits/libc-lock.h> for prototypes.
3739 * mutex.c: Likewise.
3740 * specific.c: Likewise.
3741 * ptfork.c: Likewise.
3742
3743 * lockfile.c: Include internals.h to get prototypes.
3744 * events.c: Likewise.
3745 * sysdeps/alpha/pspinlock.c: Likewise.
3746 * sysdeps/arm/pspinlock.c: Likewise.
3747 * sysdeps/hppa/pspinlock.c: Likewise.
3748 * sysdeps/i386/pspinlock.c: Likewise.
3749 * sysdeps/ia64/pspinlock.c: Likewise.
3750 * sysdeps/m68k/pspinlock.c: Likewise.
3751 * sysdeps/mips/pspinlock.c: Likewise.
3752 * sysdeps/powerpc/pspinlock.c: Likewise.
3753 * sysdeps/s390/pspinlock.c: Likewise.
3754 * sysdeps/sh/pspinlock.c: Likewise.
3755 * sysdeps/sparc/sparc32/pspinlock.c: Likewise.
3756 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
3757 * sysdeps/sparc/sparc64/pspinlock.c: Likewise.
3758
33c80ad7
UD
37592000-12-27 Ulrich Drepper <drepper@redhat.com>
3760
21112857
UD
3761 * attr.c (__pthread_attr_setstack): Fix setting of __stackaddr element.
3762 (__pthread_attr_getstack): Return correct address.
3763 Add warnings for using pthread_attr_getstackaddr and
33c80ad7
UD
3764 pthread_attr_setstackaddr.
3765
a6d950b9
UD
37662000-12-26 Ulrich Drepper <drepper@redhat.com>
3767
3768 * Examples/ex6.c (test_thread): Make static.
3769 * Examples/ex12.c (test_thread): Make static and add noreturn
3770 attribute.
3771
ba908190
UD
37722000-12-18 Jes Sorensen <jes@linuxcare.com>
3773
3774 * linuxthreads/sysdeps/ia64/pt-machine.h: __compare_and_swap
3775 and compare_and_swap_with_release_semantics returns int not long.
3776
8cb019ed
AJ
37772000-12-17 Andreas Jaeger <aj@suse.de>
3778
3779 * sysdeps/s390/pt-machine.h (testandset): Use long int as return
3780 value.
3781 * sysdeps/arm/pt-machine.h (testandset): Likewise.
3782 * sysdeps/hppa/pt-machine.h (testandset): Likewise.
3783 * sysdeps/m68k/pt-machine.h (testandset): Likewise.
3784 * sysdeps/sh/pt-machine.h (testandset): Likewise.
3785 * sysdeps/sparc/sparc32/pt-machine.h (testandset): Likewise.
3786 * sysdeps/sparc/sparc64/pt-machine.h (testandset): Likewise.
3787
927a8431
UD
37882000-12-17 Ulrich Drepper <drepper@redhat.com>
3789
3790 * sysdeps/i386/pt-machine.h (testandset): Adjust for prototype change.
3791 * sysdeps/i386/i686/pt-machine.h (testandset): Likewise.
3792
b6e20712
AJ
37932000-12-17 Andreas Jaeger <aj@suse.de>
3794
3795 * internals.h: Add prototypes for testandset and
3796 __compare_and_swap to shut up gcc warnings.
3797
e3690263
UD
37982000-12-06 Wolfram Gloger <wg@malloc.de>
3799
3800 * join.c (pthread_detach): Allow case where the thread has already
3801 terminated.
3802
2e3b9976
AJ
38032000-12-05 Andreas Jaeger <aj@suse.de>
3804
3805 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Don't set mips2.
3806 * sysdeps/mips/pt-machine.h (testandset): Likewise.
3807 (__compare_and_swap): Likewise.
f172bca0 3808 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
2e3b9976 3809
59553897
UD
38102000-11-20 Jakub Jelinek <jakub@redhat.com>
3811
3812 * Examples/ex3.c (main): Cast int to long before casting to void *.
3813 (search): Cast void * to long, not int.
3814 * Examples/ex8.c (main, thread): Similarly.
3815 * Examples/ex11.c (main): Similarly.
3816 * Examples/ex14.c (worker, do_test): Similarly.
3817 * ecmutex.c (worker, do_test): Similarly.
3818 (nlocks): Cast to int.
3819
d3d99893
UD
38202000-11-08 Bruce Mitchener <bruce@cubik.org>
3821
3822 * linuxthreads.texi: Add documentation for pthreads attributes
3823 guardsize, stackaddr, stacksize, and stack. Fix typo in previous
3824 patch. Document pthread_[sg]etconcurrency(). Mark
3825 pthread_mutexattr_[sg]ettype() as POSIX rather than GNU.
3826
a1e88b9a
UD
38272000-11-07 Ulrich Drepper <drepper@redhat.com>
3828
3829 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
3830 Don't define it.
3831 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3832 Reported by Christopher Yeoh <cyeoh@linuxcare.com.au>.
3833
632b6761
UD
38342000-11-06 Ulrich Drepper <drepper@redhat.com>
3835
3836 * cancel.c (pthread_cancel): Always set p_canceled, even if we are
3837 not doing it right now.
3838 Reported by Kaz Kylheku <kaz@ashi.footprints.net>.
3839
02fb3d17
UD
38402000-10-30 Ulrich Drepper <drepper@redhat.com>
3841
3842 * Examples/ex4.c (main): Don't use exit() to avoid warning with
3843 broken compilers.
3844
c6042c73
UD
38452000-10-29 Ulrich Drepper <drepper@redhat.com>
3846
31879cd8 3847 * attr.c (__pthread_attr_setguardsize): Don't round guardsize
d3d99893 3848 here. Reported by Bruce Mitchener <bruce@cubik.org>.
31879cd8 3849
c6042c73
UD
3850 * linuxthreads.texi: Changes terminology to 'type' from 'kind' when
3851 discussing mutexes. (As per the Unix98 name for the API.)
3852 Changes documentation for pthread_mutexattr_setkind_np() and
3853 pthread_mutexattr_getkind_np() over to the Unix98 APIs for the
3854 same: pthread_mutexattr_settype() and pthread_mutexattr_gettype().
3855 Changes references to PTHREAD_MUTEXATTR_FAST_NP to
3856 PTHREAD_MUTEXATTR_ADAPTIVE_NP.
3857 Begins to introduce discussion of the ``timed'' mutex type. This
3858 discussion is currently incomplete.
d3d99893 3859 Patch by Bruce Mitchener <bruce@cubik.org>.
c6042c73 3860
1267f93e
UD
38612000-10-26 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
3862 Yutaka Niibe <gniibe@chroot.org>
3863
3864 * sysdeps/sh/pt-machine.h (testandset): Since the operand of TAS.B
3865 has restrictions, use register.
3866
fd665070
UD
38672000-10-23 Andreas Schwab <schwab@suse.de>
3868
3869 * Examples/ex14.c (TIMEOUT): Override default timeout.
3870
6a14016e
UD
38712000-10-16 Ulrich Drepper <drepper@redhat.com>
3872
3873 * specific.c: Protect tsd array modification in thread data
3874 structures by getting the thread lock in pthread_key_delete and
3875 __pthread_destroy_specifics.
3876 Patch by Wolfram Gloger <Wolfram.Gloger@dent.med.uni-muenchen.de>.
3877
b15cb495
UD
38782000-10-12 Alan Modra <alan@linuxcare.com.au>
3879
3880 * sysdeps/pthread/bits/initspin.h: New file.
3881 * spinlock.h: Move LOCK_INITIALIZER definition to <bits/initspin.h>.
3882 (__pthread_init_lock): Initialize lock with LT_SPINLOCK_INIT.
3883 (__pthread_alt_init_lock): Likewise.
3884 (__pthread_alt_trylock): Release lock with LT_SPINLOCK_INIT.
3885
38862000-10-12 David Huggins-Daines <dhd@linuxcare.com>
3887
3888 * oldsemaphore.c (__old_sem_init): Release lock with
3889 LT_SPINLOCK_INIT, not zero.
3890 * spinlock.c (__pthread_unlock): Likewise.
3891 (__pthread_alt_lock): Likewise.
3892 (__pthread_alt_timedlock): Likewise.
3893 (__pthread_alt_unlock): Likewise.
3894 * sysdeps/pthread/bits/libc-lock.h: Initialize locks with
3895 LT_SPINLOCK_INIT if it is non-zero. Likewise for init-once flags.
3896 * sysdeps/pthread/pthread.h: Include bits/initspin.h. Use
3897 LT_SPINLOCK_INIT do initialize spinlocks not 0.
3898
38992000-10-12 David Huggins-Daines <dhd@linuxcare.com>
3900
3901 * shlib-versions: Add version definitions for hppa-linux.
3902
39032000-10-12 Alan Modra <alan@linuxcare.com.au>
3904
3905 * sysdeps/hppa/pspinlock.c: New file.
3906 * sysdeps/hppa/pt-machine.h: New file.
3907 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: New file.
3908
172b90bb
UD
39092000-10-05 Jakub Jelinek <jakub@redhat.com>
3910
3911 * mutex.c (__pthread_mutex_destroy): Correct test of
3912 busy mutex for mutexes using alternate fastlocks.
3913 Patch by dtc@cmucl.cons.org.
3914
a0386a0d
UD
39152000-09-28 Martin Schwidefsksy <schwidefsky@de.ibm.com>
3916
3917 * sysdeps/s390/pt-machine.h: Make %a0 the thread register.
3918
8cab1d38
UD
39192000-09-28 Ulrich Drepper <drepper@redhat.com>
3920
c0ac34e4
UD
3921 * mutex.c (__pthread_mutex_unlock): For PTHREAD_MUTEX_RECURSIVE_NP
3922 test for owner first.
3923 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3924
8cab1d38
UD
3925 * cancel.c (pthread_cancel): Don't do anything if cancelation is
3926 disabled.
3927
7c3dac53
UD
39282000-09-26 Ulrich Drepper <drepper@redhat.com>
3929
75dbc100
UD
3930 * spinlock.h (__pthread_set_own_extricate_if): Optimize a bit.
3931 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3932
b0557314
UD
3933 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
3934 _POSIX_MONOTONIC_CLOCK.
3935
7c3dac53
UD
3936 * spinlock.h (__pthread_set_own_extricate_if): Add back locking
3937 and explain why.
3938
b025588a
AJ
39392000-09-20 Andreas Jaeger <aj@suse.de>
3940
3941 * pthread.c [!__ASSUME_REALTIME_SIGNALS]: Make inclusion of
3942 "testrtsig.h" conditional.
3943
b81c8961
UD
39442000-09-11 Ulrich Drepper <drepper@redhat.com>
3945
3946 * sysdeps/pthread/pthread.h: Declare pthread_attr_getstack and
3947 pthread_attr_setstack.
3948 * Versions [libpthread] (GLIBC_2.2): Export pthread_attr_getstack and
3949 pthread_attr_setstack.
3950 * attr.c (pthread_attr_getstack, pthread_attr_setstack): New functions.
3951
42437ed1
UD
39522000-09-05 Ulrich Drepper <drepper@redhat.com>
3953
f3d581b8
UD
3954 * Examples/ex14.c: New file.
3955 * Makefile (tests): Add ex14.
3956
42437ed1
UD
3957 * mutex.c (__pthread_mutex_unlock): Correct test for already unlocked
3958 mutex. Patch by dtc@cmucl.cons.org.
3959
3960 * ecmutex.c: New file.
f3d581b8 3961 * Makefile (tests): Add ecmutex.
42437ed1 3962
c743652a
UD
39632000-09-04 H.J. Lu <hjl@gnu.org>
3964
3965 * attr.c (__pthread_attr_setguardsize): Use page_roundup
3966 instead of roundup to round up to the page size.
3967
2e4581e4
UD
39682000-09-03 Mark Kettenis <kettenis@gnu.org>
3969
3970 * manager.c (pthread_exited): Correctly report event as TD_REAP
3971 instead of TD_DEATH. Fix comments.
3972
5afe6c02
UD
39732000-09-03 Ulrich Drepper <drepper@redhat.com>
3974
3975 * spinlock.h (testandset): Add cast to avoid warning.
3976 Patch by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
3977
5376629d
AJ
39782000-09-02 Andreas Jaeger <aj@suse.de>
3979
3980 * sysdeps/pthread/timer_routines.c: Include stdlib.h for abort
3981 prototype.
3982
a8e58aa9
UD
39832000-09-01 Ulrich Drepper <drepper@redhat.com>
3984
aebb1faa
UD
3985 * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start):
3986 Fix typo in last patch (_mode -> _flags).
3987
a8e58aa9
UD
3988 * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start):
3989 Provide definition which respects _IO_USER_LOCK flag.
3990
47cae281
UD
39912000-08-30 Ulrich Drepper <drepper@redhat.com>
3992
3993 * manager.c (pthread_allocate_stack): Clear descriptor only if not
3994 mmaped.
3995
b7fb789d
UD
39962000-08-25 Ulrich Drepper <drepper@redhat.com>
3997
ad7534c8
UD
3998 * Makefile: Add rules to build and run unload.
3999 * unload.c: New file.
4000
4001 * pthread.c (pthread_exit_process): Move thread_self use inside `if'.
7045878b 4002
b7fb789d
UD
4003 * sysdeps/pthread/pthread.h
4004 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Defined.
4005 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: Defined.
4006
7e98470d
AJ
40072000-08-24 Andreas Jaeger <aj@suse.de>
4008
c5ded983
AJ
4009 * Examples/ex13.c: Include <string.h> for strerror prototype and
4010 <stdlib.h> for abort prototype.
7e98470d
AJ
4011 (pthr_cond_signal_mutex): Rewrite to silence GCC.
4012 (thread_start): Remove unused variable err.
4013 (main): Silence GCC warnings.
4014
64f6b8f3
AJ
40152000-08-22 Andreas Jaeger <aj@suse.de>
4016
4017 * Examples/ex13.c: New test by Kurt Garloff <garloff@suse.de>.
4018
4019 * Makefile (tests): Add ex13.
4020
98cbe360
UD
40212000-08-20 Ulrich Drepper <drepper@redhat.com>
4022
4023 * semaphore.h: Add restrict where required by AGd4.
4024 * sysdeps/pthread/pthread.h: Likewise.
4025 * sysdeps/pthread/unix/sysv/linux/bits/sigthread.h: Likewise.
4026
9df76933
UD
40272000-08-15 Ulrich Drepper <drepper@redhat.com>
4028
4029 * Makefile (tests): Add ex12. Add rule to build it.
4030 * Examples/ex12.c: New file.
4031
91bc38d0
UD
40322000-08-13 Ulrich Drepper <drepper@redhat.com>
4033
4034 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_SEMAPHORES
4035 even though the implementation is not quite complete (but it reports
4036 it). Define _POSIX_MESSAGE_PASSING to -1.
4037 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
4038
facd11c2
AJ
40392000-08-12 Andreas Jaeger <aj@suse.de>
4040
4041 * sysdeps/mips/pt-machine.h (testandset): Add .set mips2 for
4042 assembler.
4043 (__compare_and_swap): Likewise.
4044 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Likewise.
4045
3459f702
UD
40462000-08-10 Ulrich Drepper <drepper@redhat.com>
4047
4048 * pthread.c (__pthread_initial_thread): Initialize p_errnop and
4049 p_h_errnop correctly and not to NULL.
4050
c9326ed5
UD
40512000-08-05 Ulrich Drepper <drepper@redhat.com>
4052
4053 * Banner: Bump version number to 0.9.
4054
0a8d9231
UD
40552000-08-04 Ulrich Drepper <drepper@redhat.com>
4056
fcd31f5a
UD
4057 * Makefile (tests): Add tststack. Add rule to build the program.
4058 * tststack.c: New file.
4059
234dd7a6
UD
4060 * internals.h: Declare __pthread_max_stacksize.
4061 * pthread.c (__pthread_max_stacksize): New variable.
4062 (__pthread_initialize_manager): Determine __pthread_initialize_manager
4063 value.
4064 * manager.c (thread_segment): Return always NULL if FLOATING_STACKS.
4065 (pthread_allocate_stack): Allow kernel to choose stack address if
4066 FLOATING_STACKS. This also handles variable-sized stacks.
c9326ed5 4067 Always allocate stack and guardpage together. Use mprotect to
234dd7a6
UD
4068 change guardpage access.
4069 * sysdeps/i386/useldt.h: Define FLOATING_STACKS and
4070 ARCH_STACK_MAX_SIZE.
4071
4072 * attr.c (__pthread_attr_setstacksize): Also test value against
4073 upper limit.
4074
0a8d9231
UD
4075 * manager.c (__pthread_nonstandard_stacks): Define only if
4076 THREAD_SELF is not defined.
4077 (pthread_allocate_stack): Always initialize gardaddr to a correct
4078 value.
4079 (pthread_handle_create): Unmap thread with one call.
4080 (pthread_free): Remove test for initial thread before removing stack.
4081 Unmap stack with one call.
4082
4083 * pthread.c (__pthread_initial_thread): Initialize p_userstack to
4084 1 to avoid removing the stack.
4085
0d019734
UD
40862000-07-27 Jes Sorensen <jes@linuxcare.com>
4087
d364e525 4088 * sysdeps/ia64/pspinlock.c (__pthread_spin_lock): Add
0d019734
UD
4089 load of spin lock to prime the cache before the atomic compare and
4090 exchange operation (cmpxchg4). This avoids the spinning on the
4091 cmpxchg4 instruction and reduces movement of the cache line back
4092 and forth between the processors (explanation by Asis K. Mallick
4093 from Intel). This basically makes the implementation operate the
4094 same as the Linux kernel implementation.
4095
d364e525
UD
4096 * shlib-versions: Use GLIBC_2_2 for Linux/ia64.
4097 * sysdeps/ia64/pspinlock.c: New file.
0d019734 4098
139a4d95
UD
40992000-08-03 Ulrich Drepper <drepper@redhat.com>
4100
4101 * pthread.c: Move definition of __pthread_set_own_extricate_if...
4102 * spinlock.h: ...here. Remove locking.
4103 * internals.h: Remove __pthread_set_own_extricate_if prototype.
4104
4105 * rwlock.c: Use THREAD_GETMEM And THREAD_SETMEM.
4106 (rwlock_rd_extricate_func): Don't determine self, let
4107 __pthread_lock do it.
4108 (rwlock_wr_extricate_func): Likewise.
4109 (rwlock_have_already): Optimize *pself handling a bit.
4110
4111 * mutex.c: Use __builtin_expect.
4112 * pthread.c: Likewise.
4113
9016e55c
AJ
41142000-08-02 Andreas Jaeger <aj@suse.de>
4115
d364e525
UD
4116 * sysdeps/s390/pspinlock.c: New file.
4117 * sysdeps/s390/pt-machine.h: New file.
9016e55c
AJ
4118 Patches by Martin Schwidefsky <schwidefsky@de.ibm.com>.
4119
fdfb2ecc
AJ
41202000-07-12 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
4121
4122 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Implement for
4123 R3K.
4124 * sysdeps/mips/pt-machine.h (testandset): Likewise.
4125
b98a450f
AJ
41262000-07-26 Andreas Jaeger <aj@suse.de>
4127
4128 * pthread.c: Initialize p_sem_avail.
4129
a956d045
UD
41302000-07-25 Ulrich Drepper <drepper@redhat.com>
4131
a99db924 4132 * internals.h (struct __pthread_descr_struct): Add p_sem_avail.
9ec9e34e
UD
4133 * semaphore.c: Handle spurious wakeups.
4134
4135 * sysdeps/pthread/pthread.h: Add back PTHREAD_MUTX_FAST_NP as an alias
4136 for PTHREAD_MUTEX_ADAPTIVE_NP for source code compatibility.
4137
4138 * pthread.c (__pthread_set_own_extricate): Use THREAD_GETMEM.
4139 (__pthread_wait_for_restart): Likewise.
4140
4141 * condvar.c (pthread_cond_wait): Also check whether thread is
4142 cancelable before aborting loop.
4143 (pthread_cond_timedwait): Likewise.
4144
a956d045
UD
4145 * signals.c (pthread_sighandler): Remove special code to restrore
4146 %gs on x86.
4147 (pthread_sighandler_t): Likewise.
4148
70e392a3
UD
41492000-07-25 Mark Kettenis <kettenis@gnu.org>
4150
4151 * internals.h (__RES_PTHREAD_INTERNAL): Remove define.
4152 * pthread.c: Include <resolv.h>.
4153 (_res): Undefine. Add extern declaration.
4154
5122880a
UD
41552000-07-24 Ulrich Drepper <drepper@redhat.com>
4156
f3d5834e
UD
4157 * pthread.c (__pthread_initial_thread): Update initializer.
4158 (__pthread_manager_thread): Likewise.
4159 (pthread_initialize): Move setrlimit call to...
4160 (__pthread_initialize_manager): ...here.
4161 (__pthread_reset_main_thread): Reset also soft limit on stack size.
4162
5122880a 4163 * condvar.c: Handle spurious wakeups. [PR libc/1749].
ad0c66a0 4164 * internals.h (struct _pthread_descr_struct): Add p_condvar_avail.
5122880a 4165
0c0c8bde
UD
41662000-07-21 Ulrich Drepper <drepper@redhat.com>
4167
5122880a 4168 * spinlock.h: If IMPLEMENT_TAS_WITH_CAS is defined use
0c0c8bde 4169 __compare_and_swap to define testandset.
d364e525 4170 * sysdeps/powerpc/pt-machine.h: Add volatile to asms.
0c0c8bde
UD
4171 Define IMPLEMENT_TAS_WITH_CAS.
4172
0fb7851f
UD
41732000-07-20 Ulrich Drepper <drepper@redhat.com>
4174
4175 * Makefile: Pass -z nodelete to linker for libpthread.so
4176 generation if it understand this option.
4177
4e8286ac
UD
41782000-07-18 Mark Kettenis <kettenis@gnu.org>
4179
4180 * manager.c (pthread_handle_create): Remove initialization of
4181 new_thread->p_res._sock.
4182
80ec4993
UD
41832000-07-19 Kaz Kylheku <kaz@ashi.footprints.net>
4184
4185 Bugfixes to the variant of the code for machines with no compare
4186 and swap.
4187
4188 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Wait
4189 node was not being properly enqueued, due to failing to update
4190 the lock->__status field.
4191
4192 * spinlock.c (__pthread_alt_timedlock): The oldstatus variable was
4193 being set inappropriately, causing the suspend function to be called
4194 with a null self pointer and crash.
4195
70c5b33d
UD
41962000-07-18 Ulrich Drepper <drepper@redhat.com>
4197
056f707c
UD
4198 * spinlock.h (__pthread_alt_trylock): Fix code used if no
4199 compare&swap is available.
4200
a48297fd
UD
4201 * spinlock.h (__pthread_trylock): Use __compare_and_swap, not
4202 compare_and_swap.
4203
89bc5366 4204 * pthread.c (pthread_initialize): Don't use sysconf to determine
247c8869
UD
4205 whether the machine has more than one processor.
4206
70c5b33d
UD
4207 * spinlock.c (__pthread_alt_timedlock): Add back one of the
4208 removed thread_self calls.
4209
83142e8f
UD
42102000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
4211
4212 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Changed
4213 __compare_and_swap to compare_and_swap in code which assumes
4214 compare swap is available.
4215
89bc5366 42162000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
e6574c9c
UD
4217
4218 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Fixed
4219 bug whereby thr field of waitnode structure would not be correctly
4220 set unless a null self pointer is passed to the functions.
4221 Eliminated redundant calls to thread_self().
4222
c6df09ad
UD
42232000-07-18 Jakub Jelinek <jakub@redhat.com>
4224
4225 * pthread.c (__pthread_initialize_manager): Lock
4226 __pthread_manager_thread.p_lock before calling clone.
4227
9aae19cd
UD
42282000-05-05 H.J. Lu <hjl@gnu.org>
4229
4230 * sysdeps/ia64/pt-machine.h (__compare_and_swap): Change it to
4231 have acquire semantics.
4232 (__compare_and_swap_with_release_semantics): New inline
4233 function.
4234 (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): New macro.
4235
42362000-01-28 Hans Boehm <hboehm@exch.hpl.hp.com>
4237
4238 * manager.c: Fix the problem with signals at startup.
4239 Change the way that thread stacks are allocated on IA64.
4240 Clean up some of the guard page allocation stuff.
4241
42421999-12-19 H.J. Lu <hjl@gnu.org>
4243
4244 * internals.h (page_roundup): New.
4245 * attr.c (__pthread_attr_setguardsize); Use page_roundup
4246 instead of roundup.
4247 * manager.c (pthread_allocate_stack): Make sure guardaddr is
4248 page aligned with page_roundup if NEED_SEPARATE_REGISTER_STACK
4249 is define.
4250
42511999-12-17 Hans Boehm <hboehm@exch.hpl.hp.com>
4252
4253 * manager.c (pthread_allocate_stack): Unmap the stack top
4254 if failed to map the stack bottom.
4255 Fix the guard page.
4256 (pthread_free): Fix the guard page.
4257
4258 * pthread.c (pthread_initialize): Set rlimit correctly for
4259 NEED_SEPARATE_REGISTER_STACK.
4260
42611999-12-16 H.J. Lu <hjl@gnu.org>
4262
4263 * pthread.c (__pthread_initialize_manager): Pass
4264 __pthread_manager_thread_bos instead of
4265 __pthread_manager_thread_tos to __clone2.
4266
42671999-12-16 H.J. Lu <hjl@gnu.org>
4268
4269 * manager.c (pthread_allocate_stack): Correct the calculation
4270 of "new_thread_bottom". Remove MAP_GROWSDOWN from mmap for
4271 stack bottom.
4272
42731999-12-13 H.J. Lu <hjl@gnu.org>
4274
4275 * sysdeps/ia64/pt-machine.h (__compare_and_swap): Added a stop
4276 bit after setting ar.ccv.
4277
42781999-12-12 H.J. Lu <hjl@gnu.org>
4279
4280 * manager.c (pthread_allocate_stack): Make the starting
4281 address of the stack bottom page aligned. FIXME: it may
4282 need changes in other places.
4283 (pthread_handle_create): Likewise.
4284
42851999-12-11 Hans Boehm <hboehm@exch.hpl.hp.com>
4286
4287 * manager.c (pthread_allocate_stack): Handle
4288 NEED_SEPARATE_REGISTER_STACK.
4289 (pthread_handle_create): Likewise.
4290 * pthread.c (__pthread_initialize_manager): Likewise.
4291
4292 * sysdeps/ia64/pt-machine.h: Use r13 for thread pointer.
4293
42941999-12-02 H.J. Lu <hjl@gnu.org>
4295
4296 * sysdeps/ia64/pt-machine.h: New.
4297
f218b5f5
UD
42982000-07-13 Ulrich Drepper <drepper@redhat.com>
4299
4300 * wrapsyscall.c: Mark non-__ protected names as weak.
4301 PR libc/1466.
4302
0d655550
UD
43032000-07-12 Bruno Haible <haible@clisp.cons.org>
4304
4305 * Examples/ex8.c: Include <sys/wait.h>, not <wait.h>.
4306
9f835f5f
UD
43072000-07-12 Ulrich Drepper <drepper@redhat.com>
4308
4309 * spinlock.c: Fix code for TEST_FOR_COMPARE_AND_SWAP being defined.
4310 Add tests also to new alternative spinlock implementation.
4311 * spinlock.h: Likewise.
4312 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
4313
a85d5c80
UD
43142000-07-06 Ulrich Drepper <drepper@redhat.com>
4315
c0f53cdd
UD
4316 * Version: Export __sigaction.
4317 * signals.c: Define __sigaction alias. Use __libc_sigaction instead
4318 of __sigaction.
4319 * pthread.c: Use __libc_sigaction instead of __sigaction.
4320
a85d5c80
UD
4321 * condvar.c: Implement pthread_condattr_getpshared and
4322 pthread_condattr_setpshared.
4323 * mutex.c: Implement pthread_mutexattr_getpshared and
4324 pthread_mutexattr_setpshared.
4325 * Versions: Export new functions.
4326 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
4327
4328 * rwlock.c (pthread_rwlockattr_init): Use PTHREAD_PROCESS_PRIVATE.
4329 (pthread_rwlockattr_setpshared): Fail if PTHREAD_PROCESS_PRIVATE
4330 is not selected.
4331
66c5b9aa
GM
43322000-07-04 Greg McGary <greg@mcgary.org>
4333
4334 * sysdeps/pthread/bits/libc-lock.h: Remove BP_SYM from
4335 pragmas. Include bp-sym.h only if _LIBC.
4336
83b1b6d8
UD
43372000-07-04 Ulrich Drepper <drepper@redhat.com>
4338
4339 * spinlock.c (__pthread_unlock): Properly place write barrier.
4340 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
4341
a88b96f4
UD
43422000-07-03 Ulrich Drepper <drepper@redhat.com>
4343
4344 * spinlock.c: Replace fast spinlocks by adaptive spinlocks which are
4345 faster on SMP systems. No more emulation of compare&swap for adaptive
4346 spinlocks.
4347 * spinlock.h: Likewise.
4348 * sysdeps/pthread/pthread.h: Shuffle PTHREAD_MUTEX_* values around.
4349 Replace fast with adaptive mutex.
4350 * mutex.c: Rewrite for replacement of fast by adaptive mutex.
4351 * condvar.c: Likewise.
4352 * pthread.c: Define and initialize __pthread_smp_kernel variable.
4353 * internals.h: Declare __pthread_smp_kernel.
4354 * sysdeps/pthread/bits/pthreadtypes.h: Update comment of
4355 _pthread_fastlock structure.
4356 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
4357
4358 * pthread.c: Remove initialization to zero from global variables.
4359
1a6d7967
UD
43602000-06-29 Jakub Jelinek <jakub@redhat.com>
4361
4362 * shlib-versions: Make sparc64 GLIBC_2.2+ only.
4363
1efd15e3
GM
43642000-06-28 Greg McGary <greg@mcgary.org>
4365
4366 * weaks.c: Wrap BP_SYM () around weak extern declarations of
4367 pthread functions that have pointers in their return+arg signatures.
4368
3210bef0
GM
43692000-06-27 Greg McGary <greg@mcgary.org>
4370
1efd15e3
GM
4371 * sysdeps/pthread/bits/libc-lock.h: Wrap BP_SYM () around weak
4372 extern declarations of pthread functions that have pointers in
4373 their return+arg signatures.
3210bef0 4374
c49ebf76
UD
43752000-06-26 Ulrich Drepper <drepper@redhat.com>
4376
4377 * Makefile (tests): Add ex11. Add rules to build it.
4378 * Examples/ex11.c: New file.
4379 * rwlock.c: Fix complete braindamaged previous try to implement
4380 timedout functions.
4381
4382 * spinlock.c: Pretty print.
4383
d82e4c7b
UD
43842000-06-25 Ulrich Drepper <drepper@redhat.com>
4385
4386 * Makefile (tests): Add ex10. Add rules to build it.
4387 * Versions [GLIBC_2.2] (libpthread): Add pthread_mutex_timedlock,
4388 pthread_rwlock_timedrdlock, and pthread_rwlock_timedwrlock.
4389 * condvar.c (pthread_cond_wait): Allow mutex of kind
4390 PTHREAD_MUTEX_TIMED_NP.
4391 (pthread_cond_timedwait_relative): Likewise.
4392 * mutex.c (__pthread_mutex_init): Default is PTHREAD_MUTEX_TIMED_NP.
4393 (__pthread_mutex_trylock): Use __pthread_alt_trylock for
4394 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
4395 (__pthread_mutex_lock): Use __pthread_alt_lock for
4396 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
4397 (__pthread_mutex_timedlock): New function.
4398 (__pthread_mutex_unlock): Use __pthread_alt_unlock for
4399 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
4400 (__pthread_mutexattr_init): Use PTHREAD_MUTEX_TIMED_NP.
4401 (__pthread_mutexattr_settype): Allow PTHREAD_MUTEX_TIMED_NP.
4402 * spinlock.c: Implement alternate fastlocks.
4403 * spinlock.h: Add prototypes.
4404 * Examples/ex10.c: New file.
4405 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
4406 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
4407
4408 * rwlock.c (__pthread_rwlock_rdlock): Optimize loop a bit.
4409 (__pthread_rwlock_timedrdlock): New function.
4410 (__pthread_rwlock_timedwrlock): New function.
4411 Use laternate fastlock function everywhere.
4412
3d8e9510
AJ
44132000-06-21 Andreas Jaeger <aj@suse.de>
4414
efa24b51 4415 * sysdeps/pthread/timer_routines.c: Include <string.h> for memset
3d8e9510
AJ
4416 prototype.
4417
4418 * join.c: Include <stdlib.h> for exit prototype.
4419
697568d1
UD
44202000-06-20 Ulrich Drepper <drepper@redhat.com>
4421
bdf09fab
UD
4422 * sysdeps/i386/useldt.h: Include <stdlib.h>.
4423
697568d1
UD
4424 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_BARRIERS.
4425 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
4426
4427 * Makefile (libpthread-routines): Add barrier.
4428 (tests): Add ex9. Add rule to build ex9.
4429 * Versions: Export barrier functions.
4430 * barrier.c: New file.
4431 * Examples/ex9.c: New file.
4432 * sysdeps/pthread/pthread.h: Add barrier data types and declarations.
4433 * sysdeps/pthread/bits/pthreadtypes.h: Likewise.
bdf09fab 4434 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
697568d1 4435
ba80a015
UD
44362000-06-19 H.J. Lu <hjl@gnu.org>
4437
4438 * spinlock.h (HAS_COMPARE_AND_SWAP): Defined if
4439 HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS is defined.
4440 (compare_and_swap_with_release_semantics): New. Default to
4441 compare_and_swap if HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS
4442 is not defined.
4443
4444 * spinlock.c (__pthread_unlock): Call
4445 compare_and_swap_with_release_semantics () instead of
4446 compare_and_swap ().
4447
d2dfc5de
UD
44482000-06-19 Ulrich Drepper <drepper@redhat.com>
4449
4450 * sysdeps/pthread/timer_create.c: Use _set_errno instead of assigning
4451 to errno directly.
4452 * sysdeps/pthread/timer_delete.c: Likewise.
4453 * sysdeps/pthread/timer_getoverr.c: Likewise.
4454 * sysdeps/pthread/timer_gettime.c: Likewise.
4455 * sysdeps/pthread/timer_settime.c: Likewise.
4456
44572000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
4458
4459 Timer nodes are now reference counted, and can be marked
4460 as deleted. This allows for the safe release of the global mutex
4461 in the middle without losing the timer being operated on.
4462
4463 * sysdeps/pthread/posix-timer.h (struct timer_node): The inuse
4464 member is now an enum with three values, so that an intermediate
4465 state can be represented (deleted but not free for reuse yet).
4466 New refcount member added.
4467 * sysdeps/pthread/timer_routines.c: Likewise.
4468
4469 * sysdeps/pthread/posix-timer.h (timer_addref, timer_delref,
4470 timer_valid): New inline functions added.
4471
4472 * sysdeps/pthread/timer_gettime.c (timer_gettime): Function
4473 restructured, recursive deadlock bug fixed.
4474
4475 * sysdeps/pthread/timer_gettime.c (timer_gettime): Uses new
4476 timer_addref to ensure that timer won't be deleted while mutex is not
4477 held. Also uses timer_invalid to perform validation of timer handle.
4478 * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
4479 * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Likewise.
4480
e26dd47f
UD
44812000-06-14 Ulrich Drepper <drepper@redhat.com>
4482
4483 * shlib-versions: Add entry for SH.
4484 Patch by Kaz Kojima <kkojima@rr.iij4u.or.jp>.
4485
38161ac7
UD
44862000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
4487
4488 A few optimizations. Got rid of unnecessary wakeups of timer threads,
4489 tightened up some critical regions and micro-optimized some list
4490 manipulation code.
4491
4492 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
4493 Returns int value now to indicate whether timer was queued at head.
4494 * sysdeps/pthread/posix-timer.h: Likewise.
4495 * sysdeps/pthread/timer_settime.c (timer_settime): Takes advantage of
4496 new return value from __timer_thread_queue_timer to avoid waking
4497 up timer thread unnecessarily.
4498
4499 * sysdeps/pthread/posix-timer.h (timer_id2ptr): No longer checks
4500 inuse flag, because this requires mutex to be held. Callers updated
4501 to do the check when they have the mutex.
4502 * sysdeps/pthread/timer_getoverr.c: Add check for inuse here.
4503
4504 * sysdeps/pthread/timer_settime.c (timer_settime): Tighter critical
4505 regions: avoids making system calls while holding timer mutex, and
4506 a few computations were moved outside of the mutex as well.
4507 * sysdeps/pthread/timer_gettime.c (timer_gettime): Likewise.
4508
4509 * sysdeps/pthread/posix-timer.h (list_unlink_ip): Function name changed
4510 to list_unlink_ip, meaning idempotent. Pointer manipulation
4511 changed to get better better code out of gcc.
4512 * sysdeps/pthread/timer_routines.c (list_unlink): Non-idempotent
4513 version of list_unlink added here.
4514 * sysdeps/pthread/timer_delete.c: Use appropriate list unlink
4515 function in all places: idempotent one for timers, non-idempotent
4516 one for thread nodes.
4517 * sysdeps/pthread/timer_settime: Likewise.
4518 * sysdeps/pthread/timer_routines.c: Likewise.
4519
7ae1fe4d
UD
45202000-06-13 Ulrich Drepper <drepper@redhat.com>
4521
490dc9aa
UD
4522 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_TIMERS): Define.
4523 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
4524
7ae1fe4d
UD
4525 * sysdeps/pthread/Makefile: Remove tests definition.
4526
3846ef75
UD
45272000-06-12 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
4528 Yutaka Niibe <gniibe@chroot.org>
4529
4530 * sysdeps/sh/pspinlock.c: New file.
4531 * sysdeps/sh/pt-machine.h: New file.
4532
a5b97402
UD
45332000-06-12 Ulrich Drepper <drepper@redhat.com>
4534
55985355
UD
4535 * Makefile (tests): Add joinrace.
4536
a5b97402
UD
4537 * Examples/ex6.c: Test return value of pthread_join.
4538
2b72ebac
GK
45392000-06-11 Geoff Keating <geoffk@cygnus.com>
4540
4541 * sysdeps/powerpc/pspinlock.c (__pthread_spin_lock): Implement.
4542 (__pthread_spin_trylock): Implement.
4543 (__pthread_spin_unlock): Implement.
4544 (__pthread_spin_init): Implement.
4545 (__pthread_spin_destroy): Implement.
4546
425638fb
UD
45472000-06-10 Ulrich Drepper <drepper@redhat.com>
4548
4549 * sysdeps/pthread/timer_routines.c (list_append): Little fix to
2b72ebac 4550 really append the entry.
425638fb 4551
6948d763
AJ
45522000-06-10 Andreas Jaeger <aj@suse.de>
4553
4554 * lockfile.c (__fresetlockfiles): Remove unused variable fp.
4555
45dc1187
UD
45562000-06-10 Kaz Kylheku <kaz@ashi.footprints.net>
4557
4558 * sysdeps/pthread/timer_create.c: Thread matching now done on
4559 clock type as well as thread attributes.
4560 There are individual global signal-delivering threads for
4561 different clock types.
4562 * sysdeps/pthread/posix-timer.h: Likewise.
4563 * sysdeps/pthread/timer_routines.c: Likewise.
4564
4565 * sysdeps/pthread/timer_routines.c: Thread allocation and
4566 deallocation function now remembers to put thread on active
425638fb 4567 list and remove from active list.
45dc1187
UD
4568 Thus now the feature of binding multiple timers
4569 to a single thread actually works.
4570
ee5d4855
UD
45712000-06-10 Ulrich Drepper <drepper@redhat.com>
4572
4573 * pthread.c (__pthread_create_2_1): Optimize a bit.
4574
4575 * internals.h (invalid_handle): Also test for p_terminated != 0.
4576 (nonexisting_handle): New function. Same as old invalid_handle.
4577 * join.c (pthread_join): Use nonexisting_handle instead of
4578 invalid_handle to test for acceptable thread handle.
41b37cb5 4579 * manager.c (pthread_handle_free): Likewise.
15109bd4 4580 * joinrace.c: New file.
ee5d4855
UD
4581 Reported by Permaine Cheung <pcheung@cygnus.com>.
4582
2715f28a
UD
45832000-06-08 Ulrich Drepper <drepper@redhat.com>
4584
8aa8fc7f
UD
4585 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
4586 Correct handling of matching variable.
4587
480a06df
UD
4588 * sysdeps/pthread/tst-timer.c (main): Rewrite initializers to
4589 avoid warnings.
4590
18e4e446
UD
4591 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
4592 Be prepared for empty timer list.
4593
165ab1d7
UD
4594 * sysdeps/pthread/timer_create.c (timer_create): Correct names of
4595 CPUTIME clock ID. Add support for thread clocks.
4596
f2a5974b
UD
4597 * sysdeps/pthread/posix-timer.h (timer_ptr2id): Operands in
4598 subtraction were switched.
4599
c0f79a04
UD
4600 * sysdeps/pthread/timer_routines.c (init_module): Use
4601 THREAD_MAXNODES threads.
4602
55938273
UD
4603 * sysdeps/pthread/posix-timer.h (struct timer_node): Add creator_pid.
4604 * sysdeps/pthread/timer_create.c: Fill in creator_pid.
4605 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Send signal
4606 with sigqueueinfo is this system call is available.
4607
4608 * sysdeps/pthread/timer_create.c (timer_create): Allow
4609 CLOCK_CPUTIME if _POSIX_CPUTIME is defined.
4610
2715f28a
UD
4611 * sysdeps/pthread/Makefile: New file. Add rules to build timer
4612 functionality.
4613 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add TIMER_MAX.
4614
46152000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
4616
4617 * sysdeps/pthread/posix-timer.h: New file.
4618 * sysdeps/pthread/timer_create.c: New file.
4619 * sysdeps/pthread/timer_delete.c: New file.
4620 * sysdeps/pthread/timer_getoverr.c: New file.
4621 * sysdeps/pthread/timer_gettime.c: New file.
4622 * sysdeps/pthread/timer_routines.c: New file.
4623 * sysdeps/pthread/timer_settime.c: New file.
4624 * sysdeps/pthread/tst-timer.c: New file.
4625
1b579f91
UD
46262000-06-08 Ulrich Drepper <drepper@redhat.com>
4627
4628 * sysdeps/unix/sysv/linux/bits/local_lim.h: Remove OPEN_MAX and
4629 LINK_MAX definitions if necessary.
4630
dc3b5786
UD
46312000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
4632
4633 Added missing fork time handling of global libio lock.
4634
4635 * lockfile.c (__fresetlockfiles): Now also resets the list lock,
4636 not just the individual stream locks. Rewritten to use new
4637 iterator interface provided by libio rather than accessing
4638 global variable.
4639
4640 * lockfile.c (__flockfilelist, _funlockfilelist): New functions
4641 which lock and unlock the stream list using the new interface
4642 provied by libio.
4643 * internals.h: Likewise.
4644
4645 * ptfork.c (__fork): Now calls __flockfilelist before fork,
4646 and __funlockfilelist in the parent after the fork.
4647 Child still calls __fresetlockfiles as before.
4648
4649 * linuxthreads.texi: Now explains what happens to streams at
4650 fork time. Also whole new section on forking and thread added.
4651 Definition of pthread_atfork moved out of Miscellaneous Functions
4652 to this new section.
4653
1dd54850
UD
46542000-06-04 Jakub Jelinek <jakub@redhat.com>
4655
4656 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c (__pthread_spin_lock):
4657 Add missing register.
4658 * sysdeps/sparc/sparc64/pspinlock.c (__pthread_spin_lock): Likewise.
4659
554eca5c
AJ
46602000-06-02 Jakub Jelinek <jakub@redhat.com>
4661
4662 * sysdeps/sparc/sparc32/pspinlock.c: Implement spinlocks.
4663 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: New.
4664 * sysdeps/sparc/sparc64/pspinlock.c: Implement spinlocks.
4665
a3a99e01
AJ
46662000-05-31 Andreas Jaeger <aj@suse.de>
4667
4668 * sysdeps/mips/pspinlock.c: Implement spinlocks.
4669
c0f3519d
UD
46702000-05-28 Ulrich Drepper <drepper@redhat.com>
4671
84838b8f
UD
4672 * spinlock.c (__pthread_lock): Remove ASSERT.
4673
c0f3519d
UD
4674 * Makefile (tests): Add ex8.
4675 * Examples/ex8.c: New file.
4676
46772000-05-12 Kaz Kylheku <kaz@ashi.footprints.net>
4678
4679 Bugfix: The pthread_atfork mechanism now takes care of its
4680 own internal mutex at fork time.
4681
4682 * ptfork.c (__fork): Revised so that the mutex is held across
4683 the fork operation and while the handlers are called, and so that
4684 the child resets the mutex.
c0f3519d
UD
4685
4686 * linuxthreads.texi: Updated pthread_atfork documentation to make
4687 it clear that fork and pthread_atfork can't be reentered from
4688 atfork handlers, that pthread_atfork and fork are mutually atomic,
4689 and that the handlers are inherited by the child process.
4690
378fbeb4
UD
46912000-05-24 Ulrich Drepper <drepper@redhat.com>
4692
4693 * Makefile (libpthread-routines): Add pspinlock.
4694 * cancel.c: Rename __pthread_spin_unlock back to __pthread_unlock.
4695 Use struct _pthread_fastlock instead of pthread_spinlock_t.
4696 * condvar.c: Likewise.
4697 * internals.h: Likewise.
4698 * join.c: Likewise.
4699 * manager.c: Likewise.
4700 * mutex.c: Likewise.
4701 * pthread.c: Likewise.
4702 * rwlock.c: Likewise.
4703 * semaphore.c: Likewise.
4704 * signals.c: Likewise.
4705 * spinlock.h: Likewise.
4706 * spinlock.c: Likewise. Remove pthread_spin_lock functions.
4707 * sysdeps/alpha/pspinlock.c: New file.
4708 * sysdeps/arm/pspinlock.c: New file.
4709 * sysdeps/i386/pspinlock.c: New file.
4710 * sysdeps/m68k/pspinlock.c: New file.
4711 * sysdeps/mips/pspinlock.c: New file.
4712 * sysdeps/powerpc/pspinlock.c: New file.
4713 * sysdeps/sparc/sparc32/pspinlock.c: New file.
4714 * sysdeps/sparc/sparc64/pspinlock.c: New file.
4715 * sysdeps/pthread/bits/pthreadtypes.h: Remove pthread_spinlock_t
4716 back to _pthread_fastlock. Define new pthread_spinlock_t.
4717
fff82885
AJ
47182000-05-24 Andreas Jaeger <aj@suse.de>
4719
4720 * sysdeps/i386/i686/pt-machine.h: Only use LDT on newer kernels.
4721
5d1fba6d
AJ
47222000-05-21 Jakub Jelinek <jakub@redhat.com>
4723
4724 * manager.c (pthread_handle_create): Initialize p_res._sock to -1.
4725
f14273c5
AJ
47262000-05-13 Jakub Jelinek <jakub@redhat.com>
4727
4728 * internals.h (__RES_PTHREAD_INTERNAL): Define.
4729
93414bb9
UD
47302000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
4731
4732 * mutex.c (pthread_once): IN_PROGRESS state of pthread_once_t
4733 object state is represented with additional bits which distinguish
4734 whether that state was set up in the current process, or
4735 in an ancestor process. If that state was set in an ancestor,
4736 it means that a fork happened while thread was executing the init
4737 function. In that case, the state is reset to NEVER.
4738 * mutex.c (__pthread_once_fork_prepare): New function.
4739 (__pthread_once_fork_child): Likewise
4740 (__pthread_once_fork_parent): Likewise
4741 (__pthread_reset_pthread_once): Removed.
4742 * ptfork.c (__fork): Call new handlers in mutex.c.
4743 * internals.h: Declarations of new mutex.c functions added.
4744 Declaration of removed function deleted.
4745 * linuxthreads.texi: Updated documentation about pthread_once
4746 to clarify what happens under cancellation and forking.
4747
fc08075d
UD
47482000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
4749
4750 * internals.h: New thread manager request type, REQ_KICK.
4751 * join.c (pthread_exit): main thread now calls exit() instead
4752 of _exit() in order to proper process cleanup.
4753 * manager.c (__pthread_manager): Do not terminate manager
4754 after unblocking main thread; wait for main thread's
4755 REQ_PROCESS_EXIT request instead.
4756 Also, added REQ_KICK case to handle new request; this just does
4757 nothing.
4758 * manager.c (pthread_exited): Do not terminate manager after
4759 unblocking main thread.
4760 * manager.c (__pthread_manager_sighandler): If the main thread
4761 is waiting for all other threads to die, send a REQ_KICK into
4762 the thread manager request pipe to get it to clean out the threads
4763 and unblock the main thread as soon as possible. This fixes
4764 the 2000 millisecond hang on shutdown bug.
4765 * Examples/ex7.c: New file, tests shutdown behavior when all threads
4766 including the main one call pthread_exit(), or implicitly do so.
4767 * Makefile (tests): Add ex7.
4768
b19b7383
AJ
47692000-05-05 Andreas Jaeger <aj@suse.de>
4770
4771 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
4772 (pthread_getcpuclockid): Correct test for ourselves.
4773
c77ec56d
UD
47742000-05-05 Ulrich Drepper <drepper@redhat.com>
4775
4776 * internals.h (struct _pthread_descr_struct): Reorganization.
4777 Allocate room for 16 pointers at head of the structure for future
4778 thread-local data handling. Move p_self member in this area.
4779 * manager.c (pthread_handle_create): Adjust use of p_self.
4780 * sysdeps/i386/useldt.h (THREAD_SELF): Likewise.
4781 * pthread.c (__pthread_initial_thread): Adjust initialization.
4782 (__pthread_manager_thread): Likewise.
4783
47842000-04-29 Bruno Haible <haible@clisp.cons.org>
160016c9
UD
4785
4786 * join.c (pthread_exit): Use THREAD_GETMEM_NC instead of THREAD_GETMEM
4787 for eventmask larger than 1 word.
4788
3300816c
UD
47892000-04-27 Ulrich Drepper <drepper@redhat.com>
4790
4791 * Versions [libpthread] (GLIBC_2.2): Add __pthread_initialize_minimal.
4792 * pthread.c (__pthread_initialize_minimal): New function. Perform
4793 minimal initialization.
4794 (pthread_initialize): Remove this code here.
4795 * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h" again. We
4796 are working around the problem in glibc.
4797
d472655c
UD
47982000-04-25 Ulrich Drepper <drepper@redhat.com>
4799
4800 * sysdeps/i386/i686/pt-machine.h: Do not use "../useldt.h" for
4801 now. First gcc must be fixed (more concrete: libgcc).
4802
9bf4d640
UD
48032000-04-24 Ulrich Drepper <drepper@redhat.com>
4804
e19ae111 4805 * pthread.c: Remove special treatement for interrupt handlers on x86.
9bf4d640
UD
4806 * manager.c (pthread_free): Use FREE_THREAD not FREE_THREAD_SELF.
4807 * sysdeps/i386/useldt.h: Use "q" constraint instead of "r" where
4808 necessary.
4809 * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h".
4810
9682a871
UD
48112000-04-24 Mark Kettenis <kettenis@gnu.org>
4812
4813 * join.c (pthread_exit): Set p_terminated after reporting the
4814 termination event instead of before.
4815
d879eb85
UD
48162000-04-20 Jakub Jelinek <jakub@redhat.com>
4817
4818 * sysdeps/pthread/bits/libc-lock.h: Only declare __pthread_rwlock_*
4819 if __USE_UNIX98.
4820
48212000-04-18 Andreas Jaeger <aj@suse.de>
4822
4823 * Versions: Use ld instead of ld.so.
4824
318c80d4
UD
48252000-04-18 Jakub Jelinek <jakub@redhat.com>
4826
4827 * sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h (struct sigcontext):
4828 Remove the typedef keyword.
4829
cd43f797
UD
48302000-04-18 Jakub Jelinek <jakub@redhat.com>
4831
4832 * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Use membar,
4833 not stbar.
4834 (READ_MEMORY_BARRIER): Define.
4835 * spinlock.c (__pthread_spin_unlock): Use READ_MEMORY_BARRIER, not
4836 MEMORY_BARRIER.
4837 * internals.h (READ_MEMORY_BARRIER): Define if not defined in sysdep
4838 headers.
4839
dbacafe5
UD
48402000-04-17 Ulrich Drepper <drepper@redhat.com>
4841
4842 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
4843 (pthread_getcpuclockid): Don't compare thread_id with thread_self,
4844 use thread_handle().
4845
e2947c42
UD
48462000-04-16 Ulrich Drepper <drepper@redhat.com>
4847
e3265f5b
UD
4848 * condvar.c (pthread_cond_timedwait_relative): Don't test for owner
4849 if fast mutex is used. Don't initialize `already_canceled' twice.
4850 Correctly test for return value of timedsuspend.
4851
e2947c42
UD
4852 * pthread.c: Correct long-time braino. We never set SA_SIGINFO and
4853 therefore don't need the _rt versions of the signal handlers.
4854
150f740a
UD
48552000-04-15 Ulrich Drepper <drepper@redhat.com>
4856
c269fdb4
UD
4857 * pthread.c (pthread_yield): New function.
4858 * sysdeps/pthread/pthread.h (pthread_yield): Add prototype.
4859 * Versions [libpthread] (GLIBC_2.2): Add pthread_yield.
e2947c42 4860 * internals.h: Declare __pthread_yield.
c269fdb4 4861
145b8413
UD
4862 * pthread.c (pthread_initialize): Avoid a bit more code if
4863 realtime signals are known to exist.
4864
150f740a
UD
4865 * pthread.c: Is __ASSUME_REALTIME_SIGNALS then avoid generating code
4866 to dynamically detect RT signals and avoid generating compatibility
4867 functions with old kernel.
4868 * restart.h (restart) [__ASSUME_REALTIME_SIGNALS]: Use
4869 __pthread_restart_new directly.
4870 (suspend) [__ASSUME_REALTIME_SIGNALS]: Use
4871 __pthread_wait_for_restart_signal directly.
4872 (timedsuspend) [__ASSUME_REALTIME_SIGNALS]: Use
4873 __pthread_timedsuspend_new directly.
4874
b2d4446f
UD
48752000-04-15 Ulrich Drepper <drepper@redhat.com>
4876
ef187474
UD
4877 * condvar.c: Remove all the special code to handle cond_timedwait.
4878 Use timedsuspend instead.
4879 * internals.h: Declare __pthread_timedsuspend_old,
4880 __pthread_timedsuspend_new, and __pthread_timedsuspend.
4881 Remove declaration of __pthread_init_condvar.
4882 * pthread.c: Define __pthread_timedsuspend variable.
4883 (__pthread_timedsuspend_old): New function. Timed suspension
4884 implementation for old Linux kernels.
4885 (__pthread_timedsuspend_new): New function. Timed suspension
4886 implementation for new Linux kernels.
4887 * restart.h (timedsuspend): New function. Call appropriate
4888 suspension function through __pthread_timedsuspend.
4889 * semaphore.c (sem_timedwait): Use timedsuspend, don't duplicate
4890 the code.
4891 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
4892
a5a6f926
UD
4893 * internals.h (WRITE_MEMORY_BARRIER): Define as MEMORY_BARRIER if
4894 undefined.
4895 * spinlock.c: Use WRITE_MEMORY_BARRIER instead of MEMORY_BARRIER
4896 where possible.
4897 * sysdeps/alpha/pt-machine.h: Define WRITE_MEMORY_BARRIER.
4898 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
4899
b2d4446f
UD
4900 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _POSIX_SPAWN.
4901 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
4902
b82f6af2
AJ
49032000-04-14 Andreas Jaeger <aj@suse.de>
4904
4905 * weaks.c: Fix typo.
4906
43c36f63
AJ
4907 * shlib-versions (mips.*-.*-linux.*): Support only GLIBC 2.0 and
4908 2.2 for linuxthreads.
4909
547ff462
UD
49102000-04-13 Ulrich Drepper <drepper@redhat.com>
4911
4912 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
4913 (pthread_getcpuclockid): Fix typo.
4914
b3ae0650
UD
49152000-04-12 Ulrich Drepper <drepper@redhat.com>
4916
3737ff12
UD
4917 * Makefile (libpthread-routines): Add getcpuclockid.
4918 * Versions [libpthread] (GLIBC_2.2): Add pthread_getcpuclockid.
4919 * sysdeps/pthread/getcpuclockid.c: New file.
4920 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: New file.
4921 * sysdeps/pthread/pthread.h: Add prototype for pthread_getcpuclockid.
4922
07d641eb
UD
4923 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_SPIN_LOCKS):
4924 Defined.
4925 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
4926
d8d914df
UD
4927 * sysdeps/pthread/pthread.h: Add prototypes for pthread_spin_init,
4928 pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
4929 and pthread_spin_unlock.
4930 * sysdeps/pthread/bits/pthreadtypes.h: Change struct _pthread_fastlock
4931 into pthread_spinlock_t. Change all uses.
4932 * spinlock.c: Implement pthread_spin_lock.
4933 Rename __pthread_unlock to __pthread_spin_unlock and define weak
4934 alias for real name.
4935 Define pthread_spin_trylock, pthread_spin_init, and
4936 pthread_spin_destroy.
4937 Change all uses of _pthread_fastlock to pthread_spinlock_t.
4938 * spinlock.h: Rename __pthread_unlock to __pthread_spin_unlock.
4939 Change all uses of _pthread_fastlock to pthread_spinlock_t.
4940 * Versions [libpthread] (GLIBC_2.2): Add pthread_spin_init,
4941 pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
4942 and pthread_spin_unlock.
4943 * cancel.c: Use __pthread_spin_unlock instead of __pthread_unlock.
4944 Change all uses of _pthread_fastlock to pthread_spinlock_t.
4945 * condvar.c: Likewise.
4946 * internals.h: Likewise.
4947 * join.c: Likewise.
4948 * manager.c: Likewise.
4949 * mutex.c: Likewise.
4950 * pthread.c: Likewise.
4951 * rwlock.c: Likewise.
4952 * semaphore.c: Likewise.
4953 * signals.c: Likewise.
4954
b3ae0650
UD
4955 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add various new POSIX
4956 macros.
4957 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
4958
8a31d742
UD
49592000-04-11 Ulrich Drepper <drepper@redhat.com>
4960
4961 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add
4962 _POSIX_SHARED_MEMORY_OBJECTS.
4963
2a086df9
AJ
49642000-04-11 Andreas Jaeger <aj@suse.de>
4965
4966 * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
4967 (__compare_and_swap): Mark as modifying memory.
4968
4a1a3c21
GK
49692000-04-11 Geoff Keating <geoffk@cygnus.com>
4970
4971 * sysdeps/powerpc/pt-machine.h (MEMORY_BARRIER): Don't be
4972 __volatile__.
4973 (__compare_and_swap): Replace other 'sync' with MEMORY_BARRIER.
4974 Don't have the 'asm' __volatile__.
4975
de262537
UD
49762000-04-11 Ulrich Drepper <drepper@redhat.com>
4977
4978 * internals.h: Define MEMORY_BARRIER as empty if not defined already.
4979 * spinlock.c (__pthread_lock): Add memory barriers.
4980 (__pthread_unlock): Likewise.
4981 * sysdeps/alpha/pt-machine.h (MEMORY_BARRIER): Define using mb
4982 instruction.
4983 (RELEASE): Not needed anymore.
4984 (__compare_and_swap): Mark asm as modifying memory.
4985 * sysdeps/powerpc/pt-machine.h (sync): Remove. Replace with definition
4986 of MEMORY_BARRIER.
4987 (__compare_and_swap): Use MEMORY_BARRIER instead of sync.
4988 * sysdeps/sparc/sparc32/pt-machine.h (RELEASE): Not needed anymore.
4989 (MEMORY_BARRIER): Define using stbar.
4990 * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Define using
4991 stbar.
4992 (__compare_and_swap): Use MEMORY_BARRIER to ensure ordering.
4993 Patch by Xavier Leroy <Xavier.Leroy@inria.fr> based on comments by
4994 Mike Burrows <m3b@pa.dec.com>.
4995
4186c9f4
UD
49962000-04-09 Ulrich Drepper <drepper@redhat.com>
4997
4998 * signals.c (sigaction): Fix return value for the case SIG is one
4999 of the signals the implementation uses.
5000 Patch by Xavier.Leroy@inria.fr.
5001
bd457114
UD
50022000-04-01 Andreas Jaeger <aj@suse.de>
5003
5004 * attr.c: Use shlib-compat macros.
5005 * oldsemaphore.c: Likewise.
5006 * pthread.c: Likewise.
5007 * weaks.c: Likewise.
5008
1edf26ff
UD
50092000-03-26 Ulrich Drepper <drepper@redhat.com>
5010
5011 * semaphore.c (sem_timedwait): New function.
5012 Patch by Carl Mailloux <carlm@oricom.ca>.
5013 * semaphore.h: Declare sem_timedwait.
8e605e78 5014 * Versions [libpthread] (GLIBC_2.2): Add sem_timedwait.
1edf26ff 5015
54f6cbb3
RM
50162000-03-26 Roland McGrath <roland@baalperazim.frob.com>
5017
5018 * sysdeps/pthread/Makefile: File removed.
5019
c0bc5f7b
UD
50202000-03-23 Ulrich Drepper <drepper@redhat.com>
5021
383052e9
UD
5022 * mutex.c (__pthread_reset_pthread_once): Reset once_masterlock.
5023 * internals.h (__pthread_reset_pthread_once): Add prototype.
5024 * ptfork.c (__fork): Call __pthread_reset_pthread_once.
5025
c0bc5f7b
UD
5026 * manager.c (pthread_handle_create): Store ID of new thread before
5027 clone call.
5028
0bf98029
UD
50292000-03-21 Ulrich Drepper <drepper@redhat.com>
5030
ef7dddd0
UD
5031 * attr.c: Use new macros from shlib-compat.h to define versions.
5032 * oldsemaphore.c: Likewise.
5033 * semaphore.c: Likewise.
5034 * weaks.c: Likewise.
5035
1ab1ea76
UD
5036 * pthread.c: Update for new SHLIB_COMPAT definition.
5037
101edd3f
UD
5038 * manager.c (__pthread_manager): Unmask debug signal.
5039
0bf98029
UD
5040 * pthread.c (pthread_initialize): Test for address of __dso_handle
5041 being NULL, not value. Use __on_exit, not on_exit.
e063cef8 5042 Patch by Andreas Jaeger <aj@suse.de>.
0bf98029 5043
75836bc8
UD
5044 * pthread.c: Use new macros from shlib-compat.h to define versions.
5045
a6a478e9
UD
50462000-03-19 Ulrich Drepper <drepper@redhat.com>
5047
5048 * pthread.c (pthread_initialize): Instead of on_exit use
5049 __cxa_atexit if __dso_label is available to allow unloading the
5050 libpthread shared library.
5051
13a83604
UD
50522000-03-16 Ulrich Drepper <drepper@redhat.com>
5053
5054 * condvar.c: Make tests for ownership of mutex less strict.
5055
30b416ea
UD
50562000-03-14 Ulrich Drepper <drepper@redhat.com>
5057
5d141597
UD
5058 * condvar.c (pthread_cond_wait): Check whether mutex is owned by
5059 current thread and return error if not.
04366d5f
UD
5060 (pthread_cond_timedwait_relative_old): Likewise.
5061 (pthread_cond_timedwait_relative_new): Likewise.
5d141597 5062
30b416ea
UD
5063 * mutex.c (__pthread_once): Handle cancelled init function correctly.
5064 (pthread_once_cancelhandler): New function.
5065 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
5066
56eea8d1
UD
50672000-03-14 Andreas Jaeger <aj@suse.de>
5068
5069 * pthread.c (pthread_handle_sigcancel_rt): GS has been renamed to
5070 REG_GS.
5071 (pthread_handle_sigrestart_rt): Likewise.
5072 * signals.c (pthread_sighandler_rt): Likewise.
5073
3d9ebedb
AJ
50742000-03-02 Andreas Jaeger <aj@suse.de>
5075
5076 * sysdeps/pthread/bits/libc-lock.h: Fix typo.
5077 Reported by Sean Chen <sean.chen@turbolinux.com>.
5078
b041ebc2
UD
50792000-02-28 Andreas Jaeger <aj@suse.de>
5080
5081 * rwlock.c: Fix typo.
5082
0ed99ce4
UD
50832000-02-27 Ulrich Drepper <drepper@redhat.com>
5084
5085 * rwlock.c: Define __* variants of the functions and make old names
5086 aliases.
5087 * Versions [GLIBC_2.2]: Export the __pthread_rwlock_* functions.
5088 * sysdeps/pthread/bits/libc-lock.h: Define __libc_rwlock_* macros.
5089
d66732e0
UD
50902000-02-25 Andreas Jaeger <aj@suse.de>
5091
5092 * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
0ed99ce4
UD
5093 pwrite64, lseek64, open64, and __open64 with version 2.2.
5094
93a19c64
UD
50952000-02-22 Ulrich Drepper <drepper@redhat.com>
5096
5097 * semaphore.h (SEM_FAILED): Use 0 not NULL.
5098
ec91ea7c
UD
50992000-02-14 Ulrich Drepper <drepper@redhat.com>
5100
5101 * condvar.c (pthread_cond_timedwait_relative_old): Tight loop with
5102 nanosleep does not work either. Get absolute time inside the
5103 loop.
5104 (pthread_cond_timedwait_relative_new): Likewise.
5105 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
5106
f5ff12d8
UD
51072000-02-13 Andreas Jaeger <aj@suse.de>
5108
5109 * condvar.c (pthread_cond_timedwait_relative_new): Fix last patch.
5110 (pthread_cond_timedwait_relative_old): Likewise.
5111
46661856
UD
51122000-02-13 Ulrich Drepper <drepper@redhat.com>
5113
5114 * condvar.c (pthread_cond_timedwait_relative_old): Undo last patch
5115 but keep the code around. A bug in the kernel prevent us from
5116 using the code.
5117 (pthread_cond_timedwait_relative_new): Likewise.
5118 (PR libc/1597 and libc/1598).
5119
b168cff2
UD
51202000-02-01 Kaz Kylheku <kaz@ashi.footprints.net>
5121
5122 * condvar.c (pthread_cond_timedwait_relative_old): Do tight
5123 loop around nanosleep calls instead of around most of the function
5124 (pthread_cond_timedwait_relative_new): Likewise.
5125 body. Got rid of backwards goto and one local.
5126
8a94dfe4
UD
51272000-01-31 Ulrich Drepper <drepper@redhat.com>
5128
5129 * condvar.c (pthread_cond_timedwait_relative_old): Recompute time
5130 before every nanosleep call to account for time spent in the rest
5131 of the function.
5132 (pthread_cond_timedwait_relative_new): Likewise.
5133 Patch by khendricks@ivey.uwo.ca (PR libc/1564).
5134
b6aa34eb
UD
51352000-01-29 Ulrich Drepper <drepper@redhat.com>
5136
5137 * condvar.c (pthread_cond_timedwait_relative_old): Get remaining time
5138 from nanosleep call so that in case we restart we only wait for the
5139 remaining time.
5140 (pthread_cond_timedwait_relative_new): Likewise.
5141 Patch by khendricks@ivey.uwo.ca (PR libc/1561).
5142
0af4c646
UD
51432000-01-18 Ulrich Drepper <drepper@cygnus.com>
5144
5145 * manager.c (pthread_allocate_stack): Compute guard page address
5146 correctly. Patch by HJ Lu.
5147
5148 * sysdeps/pthread/pthread.h: Define
5149 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP.
5150
2449110a
UD
51512000-01-16 Ulrich Drepper <drepper@cygnus.com>
5152
5153 * rwlock.c (pthread_rwlock_unlock): Correct one more problem with
5154 preference handling.
5155 (pthread_rwlockattr_setkind_np): Allow
5156 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
5157 Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
5158
03c0d6ef
UD
51592000-01-12 Ulrich Drepper <drepper@cygnus.com>
5160
5161 * internals.h (pthread_readlock_info): New structure.
5162 (_pthread_descr_struct): Add p_readlock_list, p_readlock_free, and
5163 p_untracked_readlock_count.
5164 * pthread.c (__pthread_initial_thread, pthread_manager_thread):
5165 Add initializers for new fields.
5166 * manager.c (pthread_free): Free read/write lock lists.
5167 * queue.h (queue_is_empty): New function.
5168 * rwlock.c: Implement requirements about when readers should get
5169 locks assigned.
5170 * sysdeps/pthread/pthread.h
5171 (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP): New definition.
5172 * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_rwlock_t):
5173 Define this name as well.
5174 Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
5175
d569d333
UD
51762000-01-05 Ulrich Drepper <drepper@cygnus.com>
5177
2ba3c836
UD
5178 * pthread.c (__pthread_initial_thread, pthread_manager_thread):
5179 Adjust initializers for struct _pthread_descr_struct change.
d569d333
UD
5180 * internals.h (struct _pthread_descr_struct): Move new elements to
5181 the end.
5182
1d2fc9b3
UD
51832000-01-03 Kaz Kylheku <kaz@ashi.footprints.net>
5184
5185 Redesigned how cancellation unblocks a thread from internal
5186 cancellation points (sem_wait, pthread_join,
5187 pthread_cond_{wait,timedwait}).
5188 Cancellation won't eat a signal in any of these functions
5189 (*required* by POSIX and Single Unix Spec!).
a3bfd999 5190 * condvar.c: Spontaneous wakeup on pthread_cond_timedwait won't eat a
1d2fc9b3
UD
5191 simultaneous condition variable signal (not required by POSIX
5192 or Single Unix Spec, but nice).
5193 * spinlock.c: __pthread_lock queues back any received restarts
5194 that don't belong to it instead of assuming ownership of lock
5195 upon any restart; fastlock can no longer be acquired by two threads
5196 simultaneously.
a3bfd999 5197 * restart.h: Restarts queue even on kernels that don't have
1d2fc9b3
UD
5198 queued real time signals (2.0, early 2.1), thanks to atomic counter,
5199 avoiding a rare race condition in pthread_cond_timedwait.
5200
1c5d4617
UD
52011999-12-31 Andreas Jaeger <aj@suse.de>
5202
5203 * internals.h: Remove duplicate prototype declarations.
5204
5205 * weaks.c: Remove __THROW from prototypes since the file is not
5206 compiled by a C++ compiler.
5207 * internals.h: Likewise.
5208
52091999-12-30 Andreas Jaeger <aj@suse.de>
5210
5211 * sysdeps/pthread/pthread.h: Move internal functions to...
5212 * sysdeps/pthread/bits/libc-lock.h: ...here.
5213
d876f532
UD
52141999-12-29 Andreas Jaeger <aj@suse.de>
5215
5216 * sysdeps/pthread/pthread.h: Fix typos, reformat comments.
5217
056e0358
UD
52181999-12-28 Ulrich Drepper <drepper@cygnus.com>
5219
5220 * sysdeps/alpha/pt-machine.h: Move stack_pointer definition to the
5221 beginning.
5222
5223 * manager.c (__pthread_start): Add one more cast to prevent
5224 warning on 64bit machines.
5225
46fd4f67
UD
52261999-12-21 Ulrich Drepper <drepper@cygnus.com>
5227
5228 * manager.c (pthread_handle_create): Set p_pid of new thread
5229 before calling the callback function to report a new thread.
5230
c63598bf
UD
52311999-12-20 Andreas Jaeger <aj@suse.de>
5232
5233 * pthread.c (pthread_initialize): Move getrlimit call after
5234 setting of errno.
5235
b85697f6
UD
52361999-12-18 Ulrich Drepper <drepper@cygnus.com>
5237
778c59c8
UD
5238 * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
5239 pwrite64, lseek64, open64, and __open64.
5240 * wrapsyscall.c: Define pread, __pread64, pread64, pwrite, __pwrite64,
5241 pwrite64, lseek64, open64, and __open64.
5242
b85697f6
UD
5243 * manager.c (pthread_allocate_stack): Correct computation of
5244 new_thread_bottom. Correct handling of stack size and when the
5245 rlimit method to guard for stack growth is used.
5246 * pthread.c (pthread_initialize): Stack limit must be STACK_SIZE
5247 minus one pagesize (not two).
5248
b43b13ac
UD
52491999-12-03 Andreas Jaeger <aj@suse.de>
5250
5251 * Versions: Add __res_state with version GLIBC_2.2.
5252
5253 * errno.c (__res_state): New function to return thread specific
5254 resolver state.
5255
5256 * pthread.c (pthread_initialize): Initialize p_resp.
5257 (__pthread_reset_main_thread): Also set p_resp.
5258
5259 * manager.c (pthread_handle_create): Initialize p_resp.
5260
5261 * internals.h: Add thread specific resolver state.
5262 Based on patches by Adam D. Bradley <artdodge@cs.bu.edu>.
5263
d7a4856e
UD
52641999-12-01 Ulrich Drepper <drepper@cygnus.com>
5265
5266 * sysdeps/i386/pt-machine.h: Move stack_pointer definition to the
5267 beginning.
5268 * sysdeps/i386/i686/pt-machine.h: Likewise.
5269 Patches by Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>.
5270
ffd35632
UD
52711999-11-23 Ulrich Drepper <drepper@cygnus.com>
5272
5273 * manager.c (pthread_start_thread_event): Initialize p_pid already
5274 here.
5275
20bdb31b
UD
52761999-11-22 Ulrich Drepper <drepper@cygnus.com>
5277
5278 * internals.h: Add prototype for __pthread_manager_event.
5279 * manager.c (__pthread_manager_event): New function.
5280 (pthread_start_thread_event): Correct computation of self.
5281 Use INIT_THREAD_SELF.
5282 * pthread.c (__pthread_manager_thread): Initialize p_lock.
5283 (__pthread_initialize_manager): Respect event flags also for creation
5284 of the manager thread.
5285
178a145a
UD
52861999-11-08 Ulrich Drepper <drepper@cygnus.com>
5287
5288 * pthread.c (__pthread_initialize_manager): Initialize
5289 __pthread_manager_thread.p_tid.
5290
a9cb398f
UD
52911999-11-02 Ulrich Drepper <drepper@cygnus.com>
5292
ab86fbb1
UD
5293 * internals.h: Declare __pthread_last_event.
5294 * manager.c: Define __pthread_last_event.
5295 (pthread_handle_create): Set __pthread_last_event.
5296 (pthread_exited): Likewise.
5297 * join.c (pthread_exit): Likewise.
5298
a9cb398f
UD
5299 * Makefile (libpthread-routines): Add events.
5300 * events.c: New file.
5301 * internals.h: Protect against multiple inclusion.
5302 Include thread_dbP.h header.
5303 (struct _pthread_descr_struct): Add new fields p_report_events and
5304 p_eventbuf.
5305 Declare event reporting functions.
5306 * join.c (pthread_exit): Signal event if this is wanted.
5307 * manager.c (__pthread_threads_events): New variable.
5308 (pthread_handle_create): Take new parameters with event information.
5309 Signal TD_CREATE event if wanted.
5310 (__pthread_manager): Adjust pthread_handle_create call.
5311 (pthread_start_thread_event): New function. Block until manager is
5312 finished and then call pthread_start_thread.
5313 (pthread_exited): Signal TD_REAP event if wanted.
5314
8dd1e494
UD
53151999-10-26 Ulrich Drepper <drepper@cygnus.com>
5316
5317 * restart.h (suspend_with_cancellation): Rewrite as a macro.
5318
5319 * condvar.c (pthread_cond_timedwait_relative): Don't mark as inline.
5320
86cfe82d
UD
53211999-10-25 Andreas Jaeger <aj@suse.de>
5322
5323 * internals.h: Remove K&R compatibility.
5324 * no-tsd.c: Likewise.
5325 * semaphore.h: Likewise.
5326 * signals.c: Likewise.
5327 * sysdeps/pthread/bits/libc-tsd.h: Likewise.
5328 * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
5329 * weaks.c: Likewise.
5330
15daa639
UD
53311999-10-21 Xavier Leroy <Xavier.Leroy@inria.fr>
5332
d364e525
UD
5333 * pthread.c: For i386, wrap pthread_handle_sigrestart and
5334 pthread_handle_sigcancel with functions that restore %gs from the
5335 signal context. For each signal handling function, two wrappers
5336 are required, one for a non-RT signal and one for a RT signal.
5337 * signal.c: For i386, add code to restore %gs from the signal
5338 context in pthread_sighandler and pthread_sighandler_rt.
15daa639 5339
ef5d6645
UD
53401999-10-17 Ulrich Drepper <drepper@cygnus.com>
5341
5342 * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add cast.
5343
f6367df2
UD
53441999-10-14 Ulrich Drepper <drepper@cygnus.com>
5345
4a379216
UD
5346 * pthread.c (__pthread_initial_thread): Pass argument to
5347 PTHREAD_START_ARGS_INITIALIZER.
5348 (__pthread_manager_thread): Likewise.
5349
5350 * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add parameter to
5351 initialize function.
5352
f6367df2
UD
5353 * manager.c (pthread_handle_create): Remove p_startfct initialization.
5354
5355 * internals.h (_pthread_descr_struct): We don't need p_startfct field.
5356
d4c5cf80
UD
53571999-10-12 Ulrich Drepper <drepper@cygnus.com>
5358
5359 * internals.h: Correct return types for __libc_read and __libc_write.
5360
883c331a
UD
53611999-10-09 Andreas Jaeger <aj@suse.de>
5362
5363 * internals.h: Add __new_sem_post to get prototype in
5364 manager.c; include semaphore.h for needed types.
5365
c813f986
UD
53661999-10-08 Ulrich Drepper <drepper@cygnus.com>
5367
5368 * manager.c (__pthread_manager) [REQ_POST]: Use __new_sem_post
5369 directly instead of calling sem_post which should not be necessary
5370 but is faster and might help in some case to work around problems.
c1422e5b 5371 Patch by khendricks@ivey.uwo.ca [libc/1382].
c813f986 5372
0f5219d4
UD
53731999-10-08 Andreas Schwab <schwab@suse.de>
5374
5375 * sysdeps/pthread/Subdirs: New file.
5376 * Implies: Removed.
5377
9640bbe1
UD
53781999-10-07 Ulrich Drepper <drepper@cygnus.com>
5379
5380 * Implies: New file.
5381 * internals.h (struct _pthread_descr_struct): Add p_startfct.
5382 * manager.c (pthread_handle_create): Initialize p_startfct.
5383 * pthread.c: Define __linuxthread_pthread_sizeof_descr variable.
5384
079c00e6
UD
53851999-09-25 Ulrich Drepper <drepper@cygnus.com>
5386
d790bc34
UD
5387 * manager.c (__linuxthreads_pthread_threads_max): New variable.
5388 * specific.c (__linuxthreads_pthread_keys_max): New variable.
6e42b0f1 5389 (__linuxthreads_pthread_key_2ndlevel_size): New variable.
d790bc34 5390
079c00e6
UD
5391 * condvar.c (pthread_cond_timedwait_relative): Never return with
5392 EINTR. Patch by Andreas Schwab.
5393
b5c69d99
UD
53941999-09-19 Ulrich Drepper <drepper@cygnus.com>
5395
5396 * signals.c (sigaction): Correct last patch. Don't select
5397 pthread_sighandler_rt based on the signal number but instead of
5398 the SA_SIGINFO flag.
5399
d790bc34
UD
54001999-09-23 Ulrich Drepper <drepper@cygnus.com>
5401
5402 * specific.c: Move definitions of struct pthread_key_struct and
5403 destr_function to ...
5404 * internals.h: ...here.
5405
9cf44e65
UD
54061999-09-18 Ulrich Drepper <drepper@cygnus.com>
5407
5408 * pthread.c (pthread_handle_sigrestart_rt): New function. Use
5409 this instead of pthread_handle_sigrestart if the signal is an RT
5410 signal.
5411
5412 * signals.c: Handle passing through of sighandler arguments also
5413 for real-time signals.
5414
4fe53b3a
UD
54151999-09-03 Andreas Schwab <schwab@suse.de>
5416
5417 * ptfork.c (__fork): Renamed from fork and use __libc_fork. Add
5418 fork as weak alias.
5419 (__vfork): New function, alias vfork.
5420 * Versions: Export __fork, vfork, and __vfork in libpthread.
5421
1d0b89a4
UD
54221999-08-23 Andreas Schwab <schwab@suse.de>
5423
5424 * signals.c (pthread_sighandler): Add SIGCONTEXT_EXTRA_ARGS to
5425 call to signal handler.
5426
6570e194
UD
54271999-08-20 Ulrich Drepper <drepper@cygnus.com>
5428
5429 * pthread.c (__pthread_reset_main_thread): Undo last change.
5430 (__pthread_kill_other_threads_np): Reset signal handlers for the
5431 signals we used in the thread implementation here.
5432
70aea399
UD
54331999-08-19 Ulrich Drepper <drepper@cygnus.com>
5434
2b638910 5435 * pthread.c (__pthread_reset_main_thread): Reset signal handlers
68ea6c18 5436 for the signals we used in the thread implementation [PR libc/1234].
2b638910 5437
264ec183
UD
5438 * Versions: Export __pthread_kill_other_threads_np from libpthread
5439 for GLIBC_2.1.2.
5440
70aea399
UD
5441 * signals.c: Pass sigcontext through wrapper to the user function.
5442
ff5fad16
UD
54431999-08-01 Ulrich Drepper <drepper@cygnus.com>
5444
5445 * Versions [ld.so] (GLIBC_2.0): Export __libc_internal_tsd_get and
5446 __libc_internal_tsd_set.
5447
6b798621
UD
54481999-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
5449
5450 * manager.c: Remove inclusion of <linux/tasks.h> since it's not
5451 needed anymore.
5452
76a16b8f
UD
54531999-07-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
5454
4bf307e3 5455 * internals.h: Align _pthread_descr_struct to 32 bytes.
76a16b8f
UD
5456 Reported by Tim Hockin <thockin@cobaltnet.com>, close PR
5457 libc/1206.
5458
5ef2d37b
UD
54591999-07-09 Ulrich Drepper <drepper@cygnus.com>
5460
5461 * oldsemaphore.c (sem_compare_and_swap): Fix use of compare and
5462 swap function.
5463
c2fa5b5a
UD
54641999-07-09 Cristian Gafton <gafton@redhat.com>
5465
5466 * Makefile (libpthread-routines): Add oldsemaphore routine.
ae3c1571
UD
5467 * Versions: Add sem_destroy, sem_getvalue, sem_init, sem_post,
5468 sem_trywait, and sem_wait to GLIBC_2.1.
c2fa5b5a
UD
5469 * oldsemaphore.c: New file.
5470 * semaphore.c: Add default_symbol_versions for the changed functions.
5471 (__new_sem_init): Rename from sem_init.
5472 (__new_sem_post): Rename from sem_post.
5473 (__new_sem_wait): Rename from sem_wait.
5474 (__new_sem_trywait): Rename from sem_trywait.
5475 (__new_sem_getvalue): Rename from sem_getvalue.
5476 (__new_sem_destroy): Rename from sem_destroy.
5477
6a1db4ff
UD
54781999-06-23 Robey Pointer <robey@netscape.com>
5479
5480 * internals.h: Added p_nextlock entry to separate queueing for a
5481 lock from queueing for a CV (sometimes a thread queues on a lock
5482 to serialize removing itself from a CV queue).
5483 * pthread.c: Added p_nextlock to initializers.
5484 * spinlock.c: Changed to use p_nextlock instead of p_nextwaiting.
5485
019e7a64
UD
54861999-07-09 Ulrich Drepper <drepper@cygnus.com>
5487
5488 * manager.c (pthread_handle_create): Free mmap region after stack
5489 if clone failed. Patch by Kaz Kylheku <kaz@ashi.FootPrints.net>.
5490
33d1a2c5
UD
54911999-05-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
5492
5493 * man/pthread_cond_init.man: Correct example.
5494 Reported by Tomas Berndtsson <tomas@nocrew.org>.
5495
5496 * linuxthreads.texi (Condition Variables): Likewise.
5497
407d26b7
UD
54981999-05-18 Jakub Jelinek <jj@ultra.linux.cz>
5499
5500 * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): Use
5501 casx not cas, also successful casx returns the old value in rd
5502 and not the new value.
5503
431c33c0
UD
55041999-05-16 Xavier Leroy <Xavier.Leroy@inria.fr>
5505
5506 * manager.c: If pthread_create() is given a NULL attribute
5507 and the thread manager runs with a realtime policy, set the
5508 scheduling policy of the newly created thread back to SCHED_OTHER.
5509 * manager.c: If the PTHREAD_INHERIT_SCHED attribute is given,
5510 initialize the schedpolicy field of new_thread->p_start_args
5511 to that of the calling thread.
5512
2c68584c
UD
55131999-04-29 Ulrich Drepper <drepper@cygnus.com>
5514
5515 * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): cas
5516 instruction does not allow memory element to use offset.
5517
390500b1
UD
55181999-04-28 Ulrich Drepper <drepper@cygnus.com>
5519
5520 * manager.c (pthread_allocate_stack): Optimize initialization of new
5521 thread descriptor.
5522
89afc233
UD
5523 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_define_initialized):
5524 Don't use initializer since it is all zeroes.
5525 (__libc_once_define): Likewise.
5526
1e76ce9c
UD
55271999-04-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
5528
5529 * sysdeps/arm/Implies: Removed since cmpxchg/no-cmpxchg
5530 doesn't exist anymore.
5531 * sysdeps/i386/Implies: Likewise.
5532 * sysdeps/m68k/Implies: Likewise.
5533 * sysdeps/mips/Implies: Likewise.
5534 * sysdeps/powerpc/Implies: Likewise.
5535 * sysdeps/sparc/sparc32/Implies: Likewise.
5536 * sysdeps/sparc/sparc64/Implies: Likewise.
5537
46a4682d
UD
55381999-04-15 Ulrich Drepper <drepper@cygnus.com>
5539
5540 * sysdeps/alpha/bits/semaphore.h: Removed.
5541 * sysdeps/powerpc/bits/semaphore.h: Removed.
5542 * sysdeps/pthread/cmpxchg/bits/semaphore.h: Removed.
5543 * sysdeps/pthread/no-cmpxchg/bits/semaphore.h: Removed.
5544 * Makefile (headers): Remove bits/semaphore.h.
5545
5546 * semaphore.h: Define _pthread_descr if necessary.
5547 Don't include limits.h. Define SEM_VALUE_MAX directly.
5548 Define SEM_FAILED.
5549 (sem_t): Protect element names with leading __.
5550 Add declarations for sem_close, sem_open, and sem_unlink.
5551 * semaphore.c: Adjust all functions for new element names.
5552 Define sem_close, sem_open, and sem_unlink.
5553 * Versions (libthread): Add sem_close, sem_open, and sem_unlink for
5554 GLIBC_2.1.1.
5555 * sysdeps/pthread/bits/pthreadtypes.h: Define _pthread_descr only if
5556 necessary.
5557
ea48e2c4
UD
55581999-03-16 H.J. Lu <hjl@gnu.org>
5559
5560 * specific.c (pthread_key_delete): Check th->p_terminated to see
5561 if the thread is running.
5562
670af0d9
UD
5563 * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set):
5564 Added to GLIBC_2.0 for libc.so.
5565
0543cd26
UD
55661999-02-12 H.J. Lu <hjl@gnu.org>
5567
5568 * Versions (__libc_current_sigrtmin, __libc_current_sigrtmax,
5569 __libc_allocate_rtsig): Added to GLIBC_2.1.
5570
5571 * internals.h (DEFAULT_SIG_RESTART): Removed.
5572 (DEFAULT_SIG_CANCEL): Removed.
5573
5574 * pthread.c (init_rtsigs, __libc_current_sigrtmin,
5575 __libc_current_sigrtmax, __libc_allocate_rtsig): New functions.
5576 (__pthread_sig_restart, __pthread_sig_cancel,
5577 __pthread_sig_debug): Initialized.
5578 (pthread_initialize): Call init_rtsigs () to initialize
5579 real-time signals.
5580
f5492334
UD
55811999-02-03 H.J. Lu <hjl@gnu.org>
5582
5583 * manager.c (__pthread_manager): Do block __pthread_sig_debug.
5584 Don't restart the thread which sent REQ_DEBUG.
5585 (pthread_start_thread): Check if __pthread_sig_debug > 0
5586 before debugging.
5587
5588 * pthread.c (__pthread_initialize_manager): Suspend ourself
5589 after sending __pthread_sig_debug to gdb instead of
5590 __pthread_sig_cancel.
5591
8f0302ee
UD
55921999-01-24 H.J. Lu <hjl@gnu.org>
5593
5594 * manager.c (__pthread_manager): Delete __pthread_sig_debug
5595 from mask if __pthread_sig_debug > 0.
5596 (pthread_handle_create): Increment __pthread_handles_num.
5597
5598 * manager.c (pthread_handle_create): Don't pass CLONE_PTRACE to clone.
5599 * pthread.c (__pthread_initialize_manager): Likewise.
5600
5601 * pthread.c (pthread_initialize): Use __libc_allocate_rtsig (1)
5602 instead of __libc_allocate_rtsig (2).
5603 (__pthread_initialize_manager): Send __pthread_sig_debug to gdb
5604 instead of __pthread_sig_cancel.
5605 (pthread_handle_sigdebug): Fix comments.
5606
82df2969
UD
56071999-01-21 Ulrich Drepper <drepper@cygnus.com>
5608
5609 * manager.c (pthread_allocate_stack): Set
5610 __pthread_nonstandard_stacks if user-specified stack is used.
5611
482eec0d
UD
56121999-01-16 Ulrich Drepper <drepper@cygnus.com>
5613
5614 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _LFS_ASYNCHRONOUS_IO,
5615 _LFS_LARGEFILE, _LFS64_LARGEFILE, and _LFS64_STDIO from Unix98.
5616
b92ad8d6
UD
56171999-01-07 Xavier Leroy <Xavier.Leroy@inria.fr>
5618
5619 * pthread.c: Use a third signal __pthread_sig_debug distinct
5620 from __pthread_sig_cancel to notify gdb when a thread is
5621 created
5622 * manager.c: Likewise.
5623 * internals.h: Likewise.
5624 * signals.c: The implementation of sigwait(s) assumed that
5625 all signals in s have signal handlers already attached.
5626 This is not required by the standard, so make it work
5627 also if some of the signals have no handlers.
5628
34992338
UD
56291999-01-05 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
5630
5631 * linuxthreads.texi: Remove pointers from first @node. Move old
5632 @node spec inside comment.
5633
118bad87
UD
56341998-12-31 Ulrich Drepper <drepper@cygnus.com>
5635
5636 * sysdeps/pthread/bits/stdio-lock.h: Define _IO_lock_lock and
5637 _IO_lock_unlock.
5638
c046e7a5
UD
56391998-12-29 Ulrich Drepper <drepper@cygnus.com>
5640
5641 * semaphore.c (sem_trywait): Don't forget to unlock the semaphore
5642 lock. Patch by Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>.
5643
361d49e6
UD
56441998-12-21 Ulrich Drepper <drepper@cygnus.com>
5645
5646 * manager.c: Threads now send __pthread_sig_cancel on termination.
5647 Change clone call and signal masks.
5648 * thread.c (pthread_handle_sigrestart): Remove special code for
5649 manager.
5650 (pthread_handle_sigcancel): In manager thread call
5651 __pthread_manager_sighandler.
5652 * sysdeps/i386/pt-machine.h (__compare_and_swap): Add memory clobber.
5653 * sysdeps/i386/i686/pt-machine.h: Likewise.
5654 Patches by Xavier Leroy.
5655
4260bc74
UD
56561998-12-14 Ulrich Drepper <drepper@cygnus.com>
5657
361d49e6 5658 * spinlock.c (__pthread_unlock): Don't crash if called for an
fbaf6e72
UD
5659 untaken mutex. Reported by Ruslan V. Brushkoff <rus@Snif.Te.Net.UA>.
5660
4260bc74
UD
5661 * Examples/ex6.c: Unbuffer stdout and reduce sleep time to reduce
5662 overall runtime.
5663
e3743e2f
UD
56641998-12-13 Ulrich Drepper <drepper@cygnus.com>
5665
5666 * Examples/ex3.c: Wait until all threads are started before
5667 searching for the number to avoid race condition on very fast
5668 systems.
5669
8632b240
UD
56701998-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
5671
5672 * sysdeps/pthread/pthread.h: Remove __pthread_setcanceltype
2eda5d9b 5673 declaration since it's not needed.
8632b240
UD
5674
5675 * sysdeps/pthread/pthread.h: Move internal functions to ...
5676 * internals.h: ...here.
5677
a6ff34d7
UD
56781998-12-02 H.J. Lu <hjl@gnu.org>
5679
5680 * pthread.c (__pthread_sig_restart): Initiliaze to 0 if
5681 SIGRTMIN is defined.
5682 (__pthread_sig_cancel): Likewise.
5683
628a0aa1
UD
56841998-12-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
5685
5686 * wrapsyscall.c: Include <sys/mman.h> for msync,
5687 <stdlib.h> for system and <termios.h> for tcdrain prototype.
5688 Correct msync declaration.
5689
348ed515
UD
56901998-11-29 Roland McGrath <roland@baalperazim.frob.com>
5691
5692 * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_define, __libc_tsd_get,
5693 __libc_tsd_set): New macros for new interface.
5694 * no-tsd.c: New file, provide uninitialized defns of
5695 __libc_internal_tsd_get and __libc_internal_tsd_set.
5696 * Makefile (routines): Add no-tsd.
5697
56981998-10-12 Roland McGrath <roland@baalperazim.frob.com>
5699
5700 * internals.h: Include <bits/libc-tsd.h>, not <bits/libc-lock.h>.
5701 * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
5702 __libc_internal_tsd_set): Move decls to ...
5703 * sysdeps/pthread/bits/libc-tsd.h: New file for __libc_internal_tsd_*
5704 declarations.
5705
5706 * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
5707 __libc_internal_tsd_set): Make these pointers to functions, not
5708 functions; remove #pragma weak decls for them.
5709 * specific.c (__libc_internal_tsd_get, __libc_internal_tsd_set):
5710 Define static functions and initialized pointers to them.
5711
97dac76c
UD
57121998-11-18 Ulrich Drepper <drepper@cygnus.com>
5713
5714 * Makefile (CFLAGS-mutex.c): Define as -D__NO_WEAK_PTHREAD_ALIASES.
5715 (CFLAGS-specific.c): Likewise.
5716 (CFLAGS-pthread.c): Likewise.
5717 (CFLAGS-ptfork.c): Likewise.
5718 (CFLAGS-cancel.c): Likewise.
5719 * sysdeps/pthread/bits/libc-lock.h: Don't mark __pthread_* functions
5720 as weak references if __NO_WEAK_PTHREAD_ALIASES is defined.
5721
5722 * mutex.c (pthread_mutex_init): Define as strong symbol.
5723 (pthread_mutex_destroy): Likewise.
5724 (pthread_mutex_trylock): Likewise.
5725 (pthread_mutex_lock): Likewise.
5726 (pthread_mutex_unlock): Likewise.
5727 (pthread_mutexattr_init): Likewise.
5728 (pthread_mutexattr_destroy): Likewise.
5729 (pthread_once): Likewise.
5730 * ptfork.c (pthread_atfork): Likewise.
5731 * specific.c (pthread_key_create): Likewise.
5732 (pthread_setspecific): Likewise.
5733 (pthread_getspecific): Likewise.
5734
8b7fb588
UD
57351998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
5736
5737 * linuxthreads.texi: Fix punctuation after xref.
5738
d2537a47
UD
57391998-11-10 H.J. Lu <hjl@gnu.org>
5740
5741 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine NR_OPEN
5742 if it is defined in <linux/limits.h>.
5743
d5cabaa4
UD
57441998-10-29 14:28 Ulrich Drepper <drepper@cygnus.com>
5745
5746 * spinlock.h (__pthread_trylock): Define inline.
5747 (__pthread_lock): Add extra parameter to declaration. Declare
5748 using internal_function.
5749 (__pthread_unlock): Declare using internal_function.
5750 * spinlock.c (__pthread_lock): Add new parameter. Use it instead
5751 of local variable self. Avoid recomputing self. Define using
5752 internal_function.
5753 (__pthread_trylock): Remove.
5754 (__pthread_unlock): Define using internal_function.
5755 * cancel.c: Adjust for __pthread_lock interface change. Use already
5756 computed self value is possible.
5757 * condvar.c: Likewise.
5758 * join.c: Likewise.
5759 * manager.c: Likewise.
5760 * mutex.c: Likewise.
5761 * pthread.c: Likewise.
5762 * rwlock.c: Likewise.
5763 * semaphore.c: Likewise.
5764 * signals.c: Likewise.
5765
c70ca1fa
UD
57661998-10-27 13:46 Ulrich Drepper <drepper@cygnus.com>
5767
5768 * sysdeps/pthread/pthread.h (struct _pthread_cleanup_buffer): Prepend
5769 __ to field names of the struct.
5770 * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_fastlock):
5771 Likewise.
5772 (pthread_attr_t): Likewise.
5773 (pthread_cond_t): Likewise.
5774 (pthread_condattr_t): Likewise.
5775 (pthread_mutex_t): Likewise.
5776 (pthread_mutexattr_t): Likewise.
5777 (pthread_rwlock_t): Likewise.
5778 (pthread_rwlockattr_t): Likewise.
5779 * attr.c: Adjust for pthread.h and pthreadtypes.h change.
5780 * cancel.c: Likewise.
5781 * condvar.c: Likewise.
5782 * manager.c: Likewise.
5783 * mutex.c: Likewise.
5784 * pthread.c: Likewise.
5785 * ptlongjmp.c: Likewise.
5786 * rwlock.c: Likewise.
5787 * spinlock.c: Likewise.
5788
a5d1d726
UD
57891998-10-09 Ulrich Drepper <drepper@cygnus.com>
5790
7ccc548b
UD
5791 * sysdeps/i386/pt-machine.h (get_eflags, set_eflags): Mark these
5792 also with PT_EI.
5793
a5d1d726
UD
5794 * sysdeps/i386/i686/pt-machine.h: Remove unused inline
5795 definitions.
5796
9a29bc37
UD
5797 * Makefile (libpthread-routines): Add pt-machine.
5798 * pt-machine.c: New file.
5799 * sysdeps/alpha/pt-machine.h: Define PT_EI as extern inline is not
5800 yet defined. Use PT_EI in extern inline definitions.
5801 * sysdeps/arm/pt-machine.h: Likewise.
5802 * sysdeps/i386/pt-machine.h: Likewise.
5803 * sysdeps/i386/i686/pt-machine.h: Likewise.
5804 * sysdeps/m68k/pt-machine.h: Likewise.
5805 * sysdeps/mips/pt-machine.h: Likewise.
5806 * sysdeps/powerpc/pt-machine.h: Likewise.
5807 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
5808 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
5809
c10bb795
UD
58101998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
5811
5812 * semaphore.h: Include <sys/types.h> so that _pthread_descr
5813 is declared.
5814
58151998-09-15 David S. Miller <davem@pierdol.cobaltmicro.com>
5816
5817 * sysdeps/sparc/sparc32/pt-machine.h (INIT_THREAD_SELF): Add nr
5818 argument.
5819 * sysdeps/sparc/sparc64/pt-machine.h (INIT_THREAD_SELF): Likewise.
5820
58211998-09-12 14:24 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
5822
d364e525
UD
5823 * sysdeps/unix/sysv/linux/bits/sigthread.h: Add multiple inclusion
5824 guard.
c10bb795 5825
5e0889da
UD
58261998-09-02 11:08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5827
5828 * signals.c (sigaction): Check that sig is less than NSIG to avoid
5829 array index overflow.
5830
6796bc80
UD
58311998-09-06 10:56 Ulrich Drepper <drepper@cygnus.com>
5832
5833 * sysdeps/pthread/semaphore.h: New file.
5834
be935610
UD
58351998-09-06 09:08 Ulrich Drepper <drepper@cygnus.com>
5836
5837 * sysdeps/pthread/bits/libc-lock.h (enum __libc_tsd_key_t): Add
5838 _LIBC_TSD_KEY_DL_ERROR.
5839
bfce746a
UD
58401998-08-31 Ulrich Drepper <drepper@cygnus.com>
5841
7afab53d 5842 * sysdeps/i386/i686/pt-machine.h (testandset): Add memory clobber.
6a805a0b 5843 * sysdeps/i386/pt-machine.h: Likewise.
bfce746a
UD
5844 Suggested by Roland McGrath.
5845
75311719
UD
58461998-08-28 13:58 Ulrich Drepper <drepper@cygnus.com>
5847
5848 * internals.h: Also define THREAD_GETMEM_NC and THREAD_SETMEM_NC to
5849 access thread data with non-constant offsets.
5850 * specific.c: Use THREAD_GETMEM_NC and THREAD_SETMEM_NC where
5851 necessary.
5852
5853 * sysdeps/i386/useldt.h: Fix typo. Add THREAD_GETMEM_NC and
5854 THREAD_SETMEM_NC definitions.
5855
5856 * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM_NC and
5857 THREAD_SETMEM_NC.
5858 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
5859
00a2f9aa
UD
58601998-08-26 15:46 Ulrich Drepper <drepper@cygnus.com>
5861
5862 * internals.h: Define THREAD_GETMEM and THREAD_SETMEM to default if
5863 not already defined.
5864 (struct _pthread_descr_struct): Add p_self and p_nr field.
5865 * manager.c (__pthread_handles): Define second element to point
5866 to manager thread.
5867 (__pthread_handles_num): Initialize to 2.
5868 (__pthread_manager): Use INIT_THREAD_SELF with two arguments.
5869 (pthread_start_thread): Likewise.
5870 (pthread_handle_create): Start search for free slot at entry 2.
5871 Initialize new fields p_self and p_nr.
5872 Call __clone with CLONE_PTRACE if available.
5873 (pthread_free): Call FREE_THREAD_SELF if available.
5874 * pthread.c (__pthread_initial_thread): Initialize new fields.
5875 (__pthread_manager_thread): Likewise.
5876 (__pthread_initialize_manager): Call __clone with CLONE_PTRACE.
5877
5878 * cancel.c: Use THREAD_GETMEM and THREAD_SETMEM to access the
5879 elements of the thread descriptor.
5880 * condvar.c: Likewise.
5881 * errno.c: Likewise.
5882 * join.c: Likewise.
5883 * manager.c: Likewise.
5884 * pthread.c: Likewise.
5885 * ptlongjmp.c: Likewise.
5886 * semaphore.c: Likewise.
5887 * signals.c: Likewise.
5888 * specific.c: Likewise.
5889 * spinlock.c: Likewise.
5890
5891 * sysdeps/alpha/pt-machine.h (INIT_THREAD_SELF): Add extra parameter.
5892
5893 * sysdeps/i386/useldt.h: New file.
5894 * sysdeps/i386/i686/pt-machine.h: Show how to use this file.
5895
5896 * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM and
5897 THREAD_SETMEM using __thread_self.
5898 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
5899
ed1ac6a2
UD
59001998-08-24 Geoff Keating <geoffk@ozemail.com.au>
5901
5902 * spinlock.c (__pthread_lock): Reset p_nextwaiting to NULL if it
5903 turned out that we didn't need to queue after all.
5904
59051998-08-22 Geoff Keating <geoffk@ozemail.com.au>
5906
5907 * sysdeps/powerpc/pt-machine.h: Remove testandset, it's not used
5908 and wastes space; correct types.
5909
cf0fd016
UD
59101998-08-08 11:18 H.J. Lu <hjl@gnu.org>
5911
5912 * signals.c (sigaction): Handle NULL argument.
5913
d358336f
UD
59141998-08-04 Ulrich Drepper <drepper@cygnus.com>
5915
5916 * sysdeps/unix/sysv/linux/bits/sigthread.h: Use __sigset_t instead
5917 of sigset_t.
5918
7cabd57c
UD
59191998-08-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5920
5921 * Makefile (linuxthreads-version): Extract correct number from
5922 Banner.
5923
ddbf7fef
UD
59241998-07-29 Xavier Leroy <Xavier.Leroy@inria.fr>
5925
5926 * Banner: Bump version number to 0.8
5927 * FAQ.html: Many updates, in particular w.r.t. debugging.
5928 * manager.c: Support for non-default stacksize for
5929 LinuxThreads-allocated stacks;
5930 don't use guard pages for stacks with default size, rely on
5931 rlimit(RLIMIT_STACK) instead (it's cheaper).
5932 * attr.c: Likewise.
5933 * cancel.c: Use __pthread_sig_cancel and __pthread_sig_restart
5934 everywhere instead of PTHREAD_SIG_CANCEL and PTHREAD_SIG_RESTART.
5935 * condvar.c: Likewise.
5936 * internals.h: Likewise.
5937 * restart.h: Likewise.
5938 * signals.c: Likewise.
5939 * pthread.c: Likewise; set rlimit(RLIMIT_STACK) as we need it.
5940
6c202c68
UD
59411998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5942
5943 * weaks.c: Define pthread_mutexattr_[sg]ettype instead of
5944 __pthread_mutexattr_[sg]ettype. Add more weak aliases.
5945 * Versions: Put __pthread_mutexattr_settype under version
5946 GLIBC_2.0. Don't export __pthread_mutexattr_setkind_np and
5947 __pthread_mutexattr_gettype.
5948
59491998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5950
5951 * sysdeps/pthread/bits/libc-lock.h: Make
5952 __pthread_mutexattr_settype weak. Don't make
5953 __pthread_mutexattr_setkind_np weak.
5954
50304ef0
UD
59551998-07-16 10:52 Ulrich Drepper <drepper@cygnus.com>
5956
5957 * manager.c (pthread_handle_create): Check whether sched_setscheduler
5958 call can succeed here.
5959
5960 * mutex.c: Define __pthread_mutexattr_settype and make
5961 __pthread_mutexattr_setkind_np an alias.
5962 Likewise for __pthread_mutexattr_gettype.
5963
59641998-07-15 11:00 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
5965
5966 * attr.c (pthread_attr_setschedpolicy): Don't check whether caller
5967 is root.
5968
c764b9a7
UD
59691998-07-14 19:38 Ulrich Drepper <drepper@cygnus.com>
5970
5971 * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_end.
5972
ceb27555
UD
59731998-07-11 Andreas Jaeger <aj@arthur.rhein-neckar.de>
5974
5975 * Examples/ex6.c: Include <unistd.h> for usleep.
5976
b1209f90
UD
59771998-06-13 11:04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5978
5979 * Examples/ex4.c (main): Use exit, not pthread_exit.
5980
6077fe6e
UD
59811998-07-09 13:39 Ulrich Drepper <drepper@cygnus.com>
5982
5983 * Versions: Add __pthread_mutexattr_gettype and
5984 __pthread_mutexattr_settype.
5985 * lockfile.c: Use __pthread_mutexattr_settype instead of
5986 __pthread_mutexattr_setkind_np.
5987 * mutex.c: Define __pthread_mutexattr_gettype and
5988 __pthread_mutexattr_settype.
5989 * weak.c: Likewise.
e918a7fe
UD
5990 * sysdeps/pthread/pthread.h: Declare __pthread_mutexattr_gettype and
5991 __pthread_mutexattr_settype.
5992 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init_recursive):
5993 Use __pthread_mutexattr_settype.
6077fe6e 5994
4bae5567
UD
59951998-07-08 22:26 Ulrich Drepper <drepper@cygnus.com>
5996
5997 * Versions: Add pthread_mutexattr_gettype, pthread_mutexattr_settype.
5998 * mutex.c: Define weak alias pthread_mutexattr_gettype and
5999 pthread_mutexattr_settype.
6000 * sysdeps/pthread/pthread.h: Declare these functions.
6001 Move pthread_sigmask and pthread_kill declaration in separate header.
6002 * sysdeps/unix/sysv/linux/bits/sigthread.h: New file.
6003
0302fece
UD
60041998-07-07 15:20 Ulrich Drepper <drepper@cygnus.com>
6005
6006 * Makefile: Add rules to compile and run tests.
6007 * Examples/ex1.c: Little changes to fix warnings.
6008 * Examples/ex2.c: Likewise.
6009 * Examples/ex3.c: Likewise.
6010 * Examples/ex4.c: Likewise.
6011 * Examples/ex5.c: Likewise.
6012 * Examples/ex6.c: New file.
6013
77ccaba1
UD
60141998-07-05 11:54 Ulrich Drepper <drepper@cygnus.com>
6015
6777b467 6016 * Versions: Add pthread_attr_init to GLIBC_2.1 version in libc.
77ccaba1 6017
ba9234d9
UD
60181998-07-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
6019
6020 * attr.c: Include <string.h>.
6021
d64fae6a
UD
60221998-06-30 11:47 Ulrich Drepper <drepper@cygnus.com>
6023
6024 * attr.c: Include errno.h. Use memcpy to copy sched_param.
6025 * internals.h: Include limits.h.
6026 * manager.c: Use memcpy to copy sched_param.
6027 * ptfork.c: Include errno.h.
6028 * pthread.c: Likewise.
6029 * semaphore.c: Likewise.
6030 * specific.c: Likewise.
6031 * spinlock.h: Likewise.
6032 * sysdeps/pthread/pthread.h: Include only allowed headers. Move
6033 type definition to ...
6034 * sysdeps/pthread/bits/pthreadtypes.h: ...here. New file.
6035
fdacb17d
UD
60361998-06-29 12:34 Ulrich Drepper <drepper@cygnus.com>
6037
6038 * sysdeps/pthread/pthread.h: Use __PMT not __P for function pointers.
6039
6040 * sysdeps/pthread/pthread.h: Define various PTHREAD_* symbols also
6041 as macros as demanded in POSIX.1, Annex C.
6042
60431998-06-29 12:29 Ulrich Drepper <drepper@cygnus.com>
6044
6045 * internals.h (struct pthread_request): For free use pthread_t
6046 instead of pthread_descr.
6047 * join.c (pthread_join): Pass thread_id, not th to manager.
6048 (pthread_detach): Likewise.
6049 * manager.c (__pthread_manager): Except thread ID in FREE_REQ case.
6050 (pthread_exited): Remove detached queue code.
6051 (pthread_handle_free): Expect thread ID parameter and use it to
6052 validate the thread decsriptor. Don't use detached queue.
6053 Patches by Xavier Leroy.
6054
60551998-06-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
6056
6057 * libpthread.map: Export accept, longjmp, sigaction, siglongjmp,
6058 _IO_flockfile, _IO_ftrylockfile, _IO_funlockfile,
6059 __pthread_atfork, __pthread_key_create, __pthread_once.
6060 * internals.h: Doc fix.
6061 * pthread.c (__pthread_initialize): Define again.
6062
e138a800
UD
60631998-06-26 Ulrich Drepper <drepper@cygnus.com>
6064
026d5011
UD
6065 * manager.c (pthread_exited): If thread is not detached put it on
6066 special list.
6067 (pthread_handle_free): If thread is not on list with living threads
6068 search on list with detached threads.
6069
b195f6bc
UD
6070 * sysdeps/pthread/pthread.h (PTHREAD_RWLOCK_INITIALIZER): Correct
6071 for new definition of pthread_rwlock_t.
6072
e138a800
UD
6073 * spinlock.c: Correct test whether to compile
6074 __pthread_compare_and_swap or not.
6075
3387a425
UD
60761998-06-25 19:27 Ulrich Drepper <drepper@cygnus.com>
6077
6078 * attr.c: Finish user stack support. Change locking code to be safe
6079 in situations with different priorities.
6080 * cancel.c: Likewise.
6081 * condvar.c: Likewise.
6082 * internals.h: Likewise.
6083 * join.c: Likewise.
6084 * manager.c: Likewise.
6085 * mutex.c: Likewise.
6086 * pthread.c: Likewise.
6087 * ptlongjmp.c: Likewise.
6088 * queue.h: Likewise.
6089 * rwlock.c: Likewise.
6090 * semaphore.c: Likewise.
6091 * semaphore.h: Likewise.
6092 * signals.c: Likewise.
6093 * spinlock.c: Likewise.
6094 * spinlock.h: Likewise.
75c3a84f 6095 * sysdeps/pthread/pthread.h: Likewise.
df4099e8 6096 Patches by Xavier Leroy.
3387a425 6097
0ca7e46e 6098 * sysdeps/i386/i686/pt-machine.h: New file.
75c3a84f 6099
3387a425
UD
61001998-06-25 Ulrich Drepper <drepper@cygnus.com>
6101
6102 * sysdeps/pthread/pthread.h: Make [sg]et_stacksize and
6103 [sg]et_stackaddr prototypes always available.
6104
6105 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
6106 _POSIX_THREAD_ATTR_STACKSIZE and _POSIX_THREAD_ATTR_STACKADDR.
6107
d47aac39
UD
61081998-06-24 Ulrich Drepper <drepper@cygnus.com>
6109
6110 * manager.c (pthread_free): Undo patch from 980430.
6111 Reported by David Wragg <dpw@doc.ic.ac.uk>.
6112
69f234e8
UD
61131998-06-09 15:07 Ulrich Drepper <drepper@cygnus.com>
6114
6115 * manager.c: Define __pthread_manager_adjust_prio and use it to
6116 increase priority when needed.
6117 * internals.h: Add prototype for __pthread_manager_adjust_prio.
6118 * mutex.c: Optimize mutexes to wake up only one thread.
768cbca8 6119 * pthread.c: Move PID of manager for global variable in structure
69f234e8
UD
6120 element.
6121 Patches by Xavier Leroy.
6122
c0fb8a56
UD
61231998-06-07 13:47 Ulrich Drepper <drepper@cygnus.com>
6124
6125 * sysdeps/pthread/bits/libc-lock.h: Optimize cleanup handlers a bit.
6126
c6bd526f
UD
61271998-06-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
6128
6129 * attr.c: Correct typo.
6130
f9119f49
UD
61311998-05-01 Ulrich Drepper <drepper@cygnus.com>
6132
6133 * manager.c (pthread_free): Unmap guard before the stack.
6134 Patch by Matthias Urlichs.
6135
3dd2c3e2
UD
61361998-04-30 Ulrich Drepper <drepper@cygnus.com>
6137
6138 * manager.c (pthread_free): Detect already free child.
6139 Patch by Xavier Leroy, reported by Matthias Urlichs.
6140
0111b224
UD
61411998-04-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
6142
6143 * Makefile (linuxthreads-version): Renamed back from
6144 libpthread-version.
6145
f12944ec
UD
61461998-04-21 Ulrich Drepper <drepper@cygnus.com>
6147
26e119f1 6148 * ptlongjmp.c: Add prototypes for __libc_siglongjmp and
f12944ec
UD
6149 __libc_longjmp.
6150
8619129f
UD
61511998-04-20 14:55 Ulrich Drepper <drepper@cygnus.com>
6152
6153 * Makefile (libpthread-routines): Add ptlongjmp and spinlock.
6154 * internals.h: Add definitions for new spinlock implementation.
6155 * ptlongjmp.c: New file.
6156 * spinlock.c: New file.
6157 * spinlock.h (acquire): Don't reschedule using __sched_yield, use
6158 new function __pthread_acquire to prevent deadlocks with thread
6159 with different priorities.
6160 Patches by Xavier Leroy <Xavier.Leroy@inria.fr>.
6161
52cda958
UD
61621998-03-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
6163
6164 * manager.c (__pthread_manager): Reduce first argument to select
6165 to include just the needed file descriptor.
6166
48fc3dd2
UD
61671998-03-17 00:06 Ulrich Drepper <drepper@cygnus.com>
6168
6169 * manager.c: Fix last patch which caused core dumps.
6170
6171 * pthread.c: Correctly handle missing SIGRTMIN.
6172
f649c201
UD
61731998-03-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
6174
6175 * libpthread.map: Add __libc_internal_tsd_get and
6176 __libc_internal_tsd_set. Add missing cancelable functions. Export
6177 libc internal versions of the cancelable functions.
6178
14c44e2e
UD
61791998-03-13 16:51 Ulrich Drepper <drepper@cygnus.com>
6180
6181 * weaks.c: Define pthread_attr_init as GLIBC_2.0 and GLIBC_2.1.
6182
5d409851
UD
61831998-03-13 00:46 Ulrich Drepper <drepper@cygnus.com>
6184
6185 * attr.c: Implement pthread_attr_[gs]etguardsize,
6186 pthread_attr_[gs]setstackaddr, pthread_attr_[gs]etstacksize.
6187 Change pthread_attr_init to have two interfaces.
6188 * internals.h (struct _pthread_descr_struct): Add new fields for
6189 above functions.
6190 * libpthread.map: Add names in GLIBC_2.1 section.
6191 * manager.c (pthread_handle_create): Implement guardsize and
6192 user stack.
6193 (pthread_free): Likewise.
6194 * pthread.c (pthread_create): Add new interface for changed
6195 pthread_attr_t.
6196 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
6197 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add definition of
6198 PTHREAD_STACK_MIN.
6199
5afdca00
UD
62001998-03-11 00:42 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
6201
5d409851
UD
6202 * manager.c: Enable resetting of the thread scheduling policy
6203 to SCHED_OTHER when the parent thread has a different one.
5afdca00
UD
6204
62051998-02-01 13:51 Ulrich Drepper <drepper@cygnus.com>
6206
6207 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
6208 _POSIX_ASYNCHRONOUS_IO.
6209
6210 * sysdeps/pthread/pthread.h: Define bits for Unix98 variants of
6211 mutexes.
6212 * mutex.c: Implement new mutex types.
6213
6214 * internals.h: Include <signal.h>.
6215
6216 * libpthread.map: Add __erno_location and __h_errno_location.
6217
6218 * errno.c: Return pointer to variable actually in use. This might
6219 not be the one in the thread structure.
6220 * internals.h (struct _pthread_descr_struct): Add new fields p_errnop
6221 and p_h_errnop.
6222 * manager.c (__pthread_manager): Set p_errnop and p_h_errnop member
6223 of manager thread structure.
6224 (pthread_handle_create): Set p_errnop and p_h_errnop members for new
6225 thread.
6226 * pthread.c: Adapt initializer for thread structures.
6227 (__pthread_initial_thread): Set p_errnop and p_h_errnop member.
6228 (__pthread_reset_main_thread): Reset p_errnop and p_h_errnop of
6229 current thread to global variables.
6230
62311998-01-31 17:27 Ulrich Drepper <drepper@cygnus.com>
6232
6233 * rwlock.c: New file.
6234 * Makefile (libpthread-routines): Add rwlock.
6235 * sysdeps/pthread/pthread.h: Define data structures and declare
6236 functions.
6237 * libpthread.map: Add new functions.
6238
62391997-12-18 13:50 Philip Blundell <pb@nexus.co.uk>
6240
6241 * sysdeps/arm/pt-machine.h: New file; add ARM support.
6242 * sysdeps/arm/Implies: likewise.
6243 * README: Document it.
6244
62451997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
6246
6247 * signals.c: Remove unneeded initializer for sigwaited, saving a
6248 warning.
6249
62501997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
6251
6252 * semaphore.c (sem_init): Set sem_spinlock only if available.
6253
62541997-12-04 01:48 Ulrich Drepper <drepper@cygnus.com>
6255
6256 * mutex.c: Implement PTHREAD_MUTEX_CHECKERROR.
6257 * sysdeps/pthread/pthread.h: Define PTHREAD_MUTEX_CHECKERROR.
6258
6259 * Makefile: Update from LinuxThreads 0.7.
6260 * internals.h. Likewise.
6261 * manager.c: Likewise.
6262 * mutex.c: Likewise.
6263 * pthread.c: Likewise.
6264 * signals.c: Likewise.
6265 * specific.c: Likewise.
6266 * Examples/ex3.c: Likewise.
6267
62681997-11-20 18:13 Ulrich Drepper <drepper@cygnus.com>
6269
6270 * pthread.c (__pthread_reset_main_thread): Close pipe only if still
6271 open.
6272
62731997-10-29 05:38 Ulrich Drepper <drepper@cygnus.com>
6274
6275 * wrapsyscall.c: Add socket functions which are also cancelation
6276 points.
6277
62781997-10-19 21:40 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
6279
6280 * specific.c (__libc_internal_tsd_set, __libc_internal_tsd_get):
6281 New functions for fast thread specific data within libc.
6282
6283 * internals.h: Add new array p_libc_specific to struct
6284 _pthread_descr_struct.
6285
6286 * sysdeps/pthread/bits/libc-lock.h: Declare new functions.
6287
62881997-10-13 05:39 Ulrich Drepper <drepper@cygnus.com>
6289
6290 * semaphore.h: Add __BEGIN_DECLS/__END_DECLS.
6291 Reported by Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
6292
62931997-08-29 03:05 Ulrich Drepper <drepper@cygnus.com>
6294
6295 * internals.h (struct _pthread_descr_struct): Add definitions for
6296 two-level specific key handling.
6297 * manager.c (pthread_handle_create): Initialize specific memory array.
6298 * specific.c: Implement two-level key handling.
6299 * weaks.c: Don't provide dummy key handling.
6300 * sysdeps/pthread/bits/libc-lock.h: Typedef __libc_lock_t (no #define).
6301 Add definition of __libc_key_t.
6302 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define PTHREAD_KEYS_MAX
6303 as 1024.
6304 Add definition of _POSIX_THREAD_DESTRUCTOR_ITERATIONS and
6305 PTHREAD_DESTRUCTOR_ITERATIONS.
6306
6307 * manager.c (pthread_handle_create): Compare mmap result with
6308 MAP_FAILED.
6309
6310 * ptfork.c: Rename to __pthread_atfork and make old name a weak alias.
6311 * sysdeps/pthread/bits/pthread.h: Add prototype for __pthread_atfork.
6312
63131997-08-22 19:04 Richard Henderson <rth@cygnus.com>
6314
6315 sysdeps/sparc -> sysdeps/sparc/sparc32
6316 sysdeps/sparc64 -> sysdeps/sparc/sparc64
6317
6318 * internals.h: Change definition of THREAD_SELF to be an expression,
6319 not a statement that did a return.
6320 * sysdeps/alpha/pt-machine.h (THREAD_SELF): Update accordingly.
6321 * sysdeps/sparc/sparc32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
6322 Follow Solaris and use a "system reserved" register (%g6) to hold
6323 the thread descriptor.
6324 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
6325
63261997-08-03 00:09 Ulrich Drepper <drepper@cygnus.com>
6327
6328 * mutex.c: Correct pthread_once. Patch by Xavier Leroy.
6329 * sysdeps/pthread/pthread.h: Add prototype for __pthread_once.
6330 * sysdeps/pthread/bits/pthread.h: Add macros for __libc_once.
6331
6332 * semaphore.c: Include spinlock.h only when needed.
6333
6334 * specific.c (__pthread_setsepcific, __pthread_getspecific): Reject
6335 keys for entries not in use.
6336
6337 * weaks.c: Implement key handling functions for real.
6338
63391997-06-29 01:04 Richard Henderson <richard@gnu.ai.mit.edu>
6340
6341 Initial sparc64-linux support:
d364e525
UD
6342 * sysdeps/sparc64/Implies: New file.
6343 * sysdeps/sparc64/pt-machine.h: Likewise.
5afdca00
UD
6344
63451997-06-29 00:48 Ulrich Drepper <drepper@cygnus.com>
6346
6347 * semaphore.c: Include spinlock.h at correct place.
6348 Patch by HJ Lu.
6349
63501997-06-13 10:06 Richard Henderson <rth@tamu.edu>
6351
6352 The Great Bit File Move:
6353 * sysdeps/alpha/semaphorebits.h: -> .../bits/semaphore.h.
6354 * sysdeps/powerpc/semaphorebits.h: Likewise.
6355 * sysdeps/pthread/cmpxchg/semaphorebits.h: Likewise.
6356 * sysdeps/pthread/no-cmpxchg/semaphorebits.h: Likewise.
6357 * sysdeps/pthread/libc-lock.h: -> bits/
6358 * sysdeps/pthread/stdio-lock.h: Likewise.
6359 * sysdeps/unix/sysv/linux/local_lim.h: Likewise.
6360 * sysdeps/unix/sysv/linux/posix_opt.h: Likewise.
6361 * semaphore.h: Likewise.
6362 * sysdeps/pthread/pthread.h: Likewise.
6363
6364 * lockfile.c: <foo.h> -> <bits/foo.h>.
6365 * semaphore.h: Likewise.
6366
6367 * Makefile: (headers): foo.h -> bits/foo.h.
6368 * sysdeps/pthread/Makefile: Likewise.
6369
63701997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
6371
6372 * semaphore.c (sem_init): Set sem_spinlock only if available.
6373
6374 * sysdeps/m68k/pt-machine.h (testandset, __compare_and_swap): Fix
6375 asm constraints.
6376
63771997-04-09 03:00 Ulrich Drepper <drepper@cygnus.com>
6378
6379 Update from LinuxThreads 0.6.
6380
6381 * attr.c (pthread_attr_getdetachstate): Use __sched_get_priority_max
6382 and __sched_get_priority_min instead of names without `__'.
6383
6384 * manager.c: Rewrite large parts to implement opaque pthread_t.
6385
6386 * cancel.c: Adapt for opaque pthread_t type.
6387 * condvar.c: Likewise.
6388 * errno.c: Likewise.
6389 * join.c: Likewise.
6390 * mutex.c: Likewise.
6391 * pthread.c: Likewise.
6392 * signals.c: Likewise.
6393 * specific.c: Likewise.
6394 * restart.h: Likewise.
6395 * queue.h: Likewise.
6396 * Examples/ex3.c: Likewise.
6397 * Examples/ex4.c: Likewise.
6398 * sysdeps/pthread/pthread.h: Likewise.
6399
6400 * pthread.c: Accumulate time for all threads in thread manager.
6401
6402 * semaphore.c: Implement fallback implementation for architectures
6403 sometimes missing compare-exchange operations.
6404
6405 * cancel.c (pthread_cancel): Validate handle argument.
6406 * join.c (pthread_join): Likewise.
6407 (pthread_detach): Likewise.
6408 * signals.c (pthread_kill): Likewise.
6409
6410 * spinlock.h (acquire): Use __sched_yield not sched_yield.
6411
6412 * queue.h (enqueue): Enqueue thread according to priority.
6413
6414 * internals.c (struct pthread_start_args): New struct for passing
6415 args to cloning function.
6416 (struct _pthread): Rename to _pthread_descr_struct and adapt for
6417 opaque pthread_t.
6418
6419 * Examples/Makefile (clean): Pass -f option to rm.
6420
6421 * sysdeps/i386/pt-machine.h: Add check for compare-exchange instruction
6422 and define TEST_FOR_COMPARE_AND_SWAP.
6423 * sysdeps/i386/i486/pt-machine.h: Removed.
6424
6425 * sysdeps/unix/sysv/linux/local_lim.h (PTHREAD_THREADS_MAX): Increase
6426 to 1024.
6427
64281997-04-04 16:38 Ulrich Drepper <drepper@cygnus.com>
6429
6430 * restart.h (suspend): Clear p_signal before suspending.
6431 (suspend_with_cancellation): Likewise.
6432 Patch by Xavier Leroy <Xavier.Leroy@inria.fr>.
6433
6434 * weaks.c: Make __pthread_key_create return 1.
6435 * sysdeps/pthread/libc-lock.h: Define __libc_key_create,
6436 __libc_getspecific, __libc_setspecific, and __libc_key_t.
6437 * sysdeps/pthread/stdio-lock.h: Don't care for implementation not
6438 using libio.
6439
64401997-03-19 15:13 Miguel de Icaza <miguel@nuclecu.unam.mx>
6441
6442 * sysdeps/sparc/pt-machine (RELEASE): Fix.
6443
64441997-03-01 07:55 Geoff Keating <geoffk@ozemail.com.au>
6445
6446 * sysdeps/powerpc/Implies: Added.
6447 * sysdeps/powerpc/pt-machine.h: Added.
6448 * sysdeps/powerpc/semaphorebits.h: Added.
6449
64501997-01-22 01:22 Ulrich Drepper <drepper@cygnus.com>
6451
d364e525 6452 * pthread.c (__pthread_initial_thread): Correct
5afdca00
UD
6453 initializer.
6454 (__pthread_manager_thread): Likewise.
6455 Reported by Andreas Jaeger.
6456
64571997-01-18 22:15 Richard Henderson <rth@tamu.edu>
6458
6459 Since sigset_t no longer fits in a register, we can't pass in the
6460 thread's initial mask so easily. Take this opportunity to simplify
6461 the clone implementation by only accepting a single void* argument.
6462
d364e525
UD
6463 * manager.c (__pthread_manager): Put thread vitals in the thread
6464 struct instead of as arguments through clone.
5afdca00 6465 (pthread_start_thread): Look for them there.
d364e525 6466 * internals.h (struct _pthread): Add p_initial_fn,
5afdca00 6467 p_initial_fn_arg, p_initial_mask. Fix __pthread_manager proto.
d364e525 6468 * pthread.c (pthread_initialize_manager): Revise clone invocation.