]> git.ipfire.org Git - thirdparty/glibc.git/blame - linuxthreads/ChangeLog
Update.
[thirdparty/glibc.git] / linuxthreads / ChangeLog
CommitLineData
62f29da7
UD
12003-01-24 Jakub Jelinek <jakub@redhat.com>
2
3 * sysdeps/sparc/sparc32/pt-machine.h (__thread_self): Change to %g7,
4 as required by TLS ABI.
5 * sysdeps/sparc/sparc64/pt-machine.h (__thread_self): Likewise.
6 * sysdeps/sparc/tls.h [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE,
7 TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE, TLS_TCB_ALIGN, TLS_TCB_AT_TP,
8 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_DTV):
9 Define.
10 [HAVE_TLS_SUPPORT]: Include descr.h and sysdep.h.
11 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Use %g7
12 instead of %g6 for thread pointer.
13 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
14 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
15 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
16
e4e9446b
UD
172003-01-25 Guido Guenther <agx@sigxcpu.org>
18
19 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
20 * sysdeps/unix/sysv/linux/mips/Makefile: New file.
21
d5b6c817
UD
222003-01-20 Martin Schwidefsky <schwidefsky@de.ibm.com>
23
24 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Avoid non pc relative
25 reference to __fork.
26
0f0b7994
UD
272003-01-17 Richard Henderson <rth@redhat.com>
28
29 * sysdeps/alpha/tls.h (tcbhead_t): Clarify second member.
30 (TLS_TCB_SIZE, TLS_TCB_ALIGN): Set for tcbhead_t.
31 (TLS_PRE_TCB_SIZE): New.
32 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Update for
33 new ia64-style thread pointer layout.
34 (THREAD_GETMEM, THREAD_GETMEM_NC): New.
35 (THREAD_SETMEM, THREAD_SETMEM_NC): New.
36 * sysdeps/unix/sysv/linux/alpha/vfork.S: Don't tail-call to __fork
37 if !SHARED.
38
7b7b9e70
UD
392003-01-15 Jakub Jelinek <jakub@redhat.com>
40
41 * sysdeps/ia64/tls.h (tcbhead_t): Use the TLS ABI required layout
42 if USE_TLS only.
43 (NONTLS_INIT_TP): Revert last change.
44 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define to
45 offsetof (tcbhead_t, multiple_threads) if USE_TLS not defined.
46
850dcfca
UD
472003-01-16 Jakub Jelinek <jakub@redhat.com>
48
49 * pthread.c (_pthread_initialize_minimal): Use
50 GL(dl_tls_dtv_slotinfo_list) != NULL to check whether TLS has
51 been already initialized.
52
a1f8ec97
UD
532003-01-16 Jakub Jelinek <jakub@redhat.com>
54
55 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize head->sysinfo even
56 if not SHARED.
57
574b892e
UD
582003-01-15 Jakub Jelinek <jakub@redhat.com>
59
60 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init,
61 __libc_lock_init_recursive): Initialize fields directly.
62
632003-01-15 Jakub Jelinek <jakub@redhat.com>
64
65 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Allow
66 __fork to be far away from __vfork ifndef SHARED.
67 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
68 Likewise.
69 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
70 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
71 Add a missing instruction.
72 * sysdeps/unix/sysv/linux/arm/vfork.S (__vfork): Conditionally
73 branch to __fork even if __NR_vfork is not defined.
74
752003-01-14 Ulrich Drepper <drepper@redhat.com>
76
77 * tst-cancel-wrappers.sh: Allow .__*_asynccancel functions names
78 as well.
79
802003-01-14 Steven Munroe <sjmunroe@us.ibm.com>
81
82 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
83
115bb61d
UD
842003-01-14 Jakub Jelinek <jakub@redhat.com>
85
86 * sysdeps/unix/sysv/linux/ia64/vfork.S (JUMPTARGET): Remove.
87
db0a052c
UD
882003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
89
90 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: Avoid
91 unterminated string literals.
92 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: Likewise.
93
942003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
95
96 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
97 (PSEUDO): Code reordering. Move CENABLE and CDISABLE literals from
98 PSEUDO_END to PSEUDO.
99 (PSEUDO_END): Remove.
100 (SINGLE_THREAD_P): Save an instruction.
101 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add missing
102 parameter to SINGLE_THREAD_P call.
103 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
104 Code reordering.
105
bf8a2877
AS
1062003-01-10 Andreas Schwab <schwab@suse.de>
107
108 * sysdeps/unix/sysv/linux/m68k/vfork.S: New file.
109
40212ce0
UD
1102003-01-10 Martin Schwidefsky <schwidefsky@de.ibm.com>
111
112 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Setup
113 backchain in pseudo_cancel. Minor code improvements.
114 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
115 Likewise.
116
1172003-01-10 Martin Schwidefsky <schwidefsky@de.ibm.com>
118
119 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
120 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
121
b398ae3c
UD
1222002-01-12 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
123
124 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
125
addb5f31
UD
1262002-01-09 Richard Henderson <rth@redhat.com>
127
128 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Assume only
129 ret follows pseudo, and thus avoid branch-to-branch in cancel
130 case. Use SYSCALL_ERROR_LABEL.
131
aff4519d
UD
1322003-01-11 Philip Blundell <philb@gnu.org>
133
134 * sysdeps/unix/sysv/linux/arm/vfork.S: New file.
135 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (PSEUDO_RET):
136 Correctly unstack lr.
137 (UNDOARGS_5): Fix ordering of pushes and pops.
138 (SINGLE_THREAD_P_PIC): New.
139 (SINGLE_THREAD_P_INT): New.
140 (SINGLE_THREAD_P): Implement in terms of above. Restore lr if it
141 was stacked.
142 (PSEUDO): Use SINGLE_THREAD_P_INT.
143
1442003-01-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
145
146 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
147
1482003-01-11 Jakub Jelinek <jakub@redhat.com>
149
150 * sysdeps/ia64/tls.h (tcbhead_t): Change into dtv_t *, void *.
151 [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN,
152 TLS_TCB_SIZE, TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, TLS_DTV_AT_TP,
153 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_SELF,
154 INIT_THREAD_SELF): Define.
155 [HAVE_TLS_SUPPORT]: Include descr.h.
156 (NONTLS_INIT_TP): Point __thread_self at the end of dummy
157 struct _pthread_descr_struct.
158 * sysdeps/ia64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
159 THREAD_SETMEM, THREAD_SETMEM_NC): Define using THREAD_SELF,
160 not __thread_self.
161 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Adjust
162 computation.
163 * pthread.c (__pthread_initialize_minimal): Use tcbp, not self
164 for TCB pointer.
165 (__pthread_initialize_manager): Rename tcb to mgr.
166 Use tcbp for TCB pointer, if TLS_DTV_AT_TP set mgr to sizeof (struct
167 _pthread_descr) below tcbp, otherwise to tcbp.
168 * manager.c (pthread_handle_create): If TLS_DTV_AT_TP, set
169 new_thread to be below _dl_allocate_tls (). Adjust new_thread back
170 before freeing. Fix clone arguments if report_events and USE_TLS.
171 (pthread_free): Adjust th back before freeing.
172
1732003-01-10 Steven Munroe <sjmunroe@us.ibm.com>
174
175 * sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: Moved to ...
176 * sysdeps/unix/sysv/linux/powerpc/Makefile: ...here.
177 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New File.
178
29d9a17d
UD
1792003-01-09 Jakub Jelinek <jakub@redhat.com>
180
181 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
182 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
183 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
184 [__ASSEMBLER__] (SINGLE_THREAD_P): Remove trailing ;;.
185 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
186 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
187 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
188 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
189 * tst-popen.c: New test.
190 * Makefile (tests): Add tst-popen.
191
6aca81bb
UD
1922003-01-06 Jakub Jelinek <jakub@redhat.com>
193
194 * sysdeps/unix/sysv/linux/sigwait.c (do_sigwait): Add
195 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
196
bef1e42f
UD
1972003-01-06 Jakub Jelinek <jakub@redhat.com>
198
199 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use
200 PSEUDO_PREPARE_ARGS. Fix branch condition after SINGLE_THREAD_P.
201
52f3d213
UD
2022003-01-06 Philip Blundell <philb@gnu.org>
203
204 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: New file.
205
2062003-01-06 Jakub Jelinek <jakub@redhat.com>
207
208 * internals.h (LIBC_CANCEL_HANDLED): Define.
209 * sysdeps/unix/sysv/linux/sigwait.c (LIBC_CANCEL_HANDLED): Add.
210 * signals.c (LIBC_CANCEL_HANDLED): Add.
211 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
212 * tst-cancel-wrappers.sh: Remove all exceptions.
213
214 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
215
c52a5fb9
AS
2162003-01-05 Andreas Schwab <schwab@suse.de>
217
c711d9d2
AS
218 * sysdeps/m68k/Makefile: New file, use -fPIC for nonshared
219 objects.
220
c52a5fb9
AS
221 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (SINGLE_THREAD_P):
222 Fix for PIC.
223 (CENABLE): Likewise.
224 (CDISABLE): Likewise.
225
bbd17455
UD
2262003-01-05 Ulrich Drepper <drepper@redhat.com>
227
a73ab6df
UD
228 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
229 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
230
bbd17455
UD
231 * Makefile (libc.so-no-z-defs): Define to yes.
232
bdee30cf
UD
2332003-01-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
234
235 * sysdeps/sh/tls.h: Include dl-sysdep.h and stdint.h.
236 (tcbhead_t): Add multiple_threads member.
237 (TLS_INIT_TP_EXPENSIVE): Define.
238 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Don't use multi-line
239 strings. Remove unused code.
240 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
241
73e9ae88
UD
2422003-01-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
243
244 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
245 * sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: New file.
246
a7f7b879
UD
2472003-01-04 Jakub Jelinek <jakub@redhat.com>
248
249 * internals.h (LIBC_THREAD_GETMEM, LIBC_THREAD_SETMEM): Define
250 even if NOT_IN_libc is defined.
251
00e58701
UD
2522003-01-05 Jakub Jelinek <jakub@redhat.com>
253
254 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
255 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
256 * sysdeps/s390/Makefile: New file.
257 * sysdeps/s390/tcb-offsets.sym: New file.
258 * sysdeps/s390/tls.h: New file.
259
75c43017
UD
2602003-01-03 Richard Henderson <rth@redhat.com>
261
262 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
263
1cb990bc
UD
2642003-01-03 Andreas Jaeger <aj@suse.de>
265
266 * sysdeps/pthread/bits/libc-tsd.h: Declare weak_extern functions.
267
733f25e6
UD
2682003-01-03 Jakub Jelinek <jakub@redhat.com>
269
270 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
271
bf293afe
UD
2722003-01-02 Ulrich Drepper <drepper@redhat.com>
273
274 * tst-cancel-wrappers.sh: Exclude sigwait.c as well, it does not have
275 cancellation tests.
276
2772003-01-02 Jakub Jelinek <jakub@redhat.com>
278
279 * internals.h (struct pthread_functions): Rename
280 ptr_pthread_cond_* fields to ptr___pthread_cond_*.
281 * pthread.c (pthread_functions): Adjust.
282 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
283 pthread_cond_*@GLIBC_2.0 compatibility symbols.
284 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
285 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
286 and pthread_cond_wait.
287
288 * sysdeps/pthread/bits/pthreadtypes.h (__pthread_cond_align_t): New
289 type.
290 (pthread_cond_t): Add __align member, shorten __padding.
291 * sysdeps/pthread/pthread.h (PHTREAD_COND_INITIALIZER): Initialize
292 __padding and __align too.
293
294 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call2): Add
295 __builtin_expect.
296 * sysdeps/pthread/sigaction.c: New file.
297 * sysdeps/unix/sysv/linux/raise.c: New file.
298 * sysdeps/unix/sysv/linux/sigwait.c: New file.
299 * sysdeps/unix/sysv/linux/fork.c (__pthread_fork): Protect
300 weak_extern with #ifndef SHARED.
301 * sysdeps/unix/sysv/linux/jmp-unwind.c (__pthread_cleanup_upto):
302 Likewise.
303 * signals.c (__sigaction): Renamed to...
304 (__pthread_sigaction): ... this.
305 (__sigaction): New strong alias, #ifdef SHARED only.
306 (sigaction): Protect with #ifdef SHARED.
307 (sigwait): Renamed to...
308 (__pthread_sigwait): ... this.
309 (sigwait): New strong alias, #ifdef SHARED only.
310 (raise): Renamed to...
311 (__pthread_raise): ... this.
312 (raise): New strong alias, #ifdef SHARED only.
313 * internals.h (__pthread_sigaction, __pthread_sigwait,
314 __pthread_raise): New prototypes.
315 (struct pthread_functions): Add ptr_pthread_sigaction,
316 ptr_pthread_sigwait, ptr_pthread_raise.
317 * pthread.c (pthread_functions): Renamed to...
318 (__pthread_functions): ... this. No longer static, no longer
319 SHARED only. Initialize ptr_pthread_sigaction, ptr_pthread_sigwait
320 and ptr_pthread_raise.
321 [SHARED] (ptr_pthread_functions): Change to &__pthread_functions.
322 * libc-cancellation.c (__pthread_thread_self): Remove weak_extern.
323 * ptfork.c (__fork, __vfork): Protect with #ifdef SHARED.
324 * ptlongjmp.c (siglongjmp, longjmp): Protect with #ifdef SHARED.
325
326 * Makefile (tests, tests-static): Add tst-cancel-static.
327 * tst-cancel-static.c: New test.
328
3292003-01-02 Jakub Jelinek <jakub@redhat.com>
330
331 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
332
05df18c3
UD
3332003-01-02 Ulrich Drepper <drepper@redhat.com>
334
335 * sysdeps/pthread/bits/pthreadtypes.h (pthread_cond_t): Add padding.
336 * condvar.c: Add symbol versioning. The compatibility versions
337 are the same as the change in the interface does not effect this
338 implementation.
339 * Versions [libpthread]: Add definitions for new pthread_cond_*
340 interfaces for version GLIBC_2.3.2.
341
6d6ee629
UD
3422002-12-31 Ulrich Drepper <drepper@redhat.com>
343
344 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
345 __register_atfork.
346 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
347 for __register_atfork.
348
416d2de6
UD
3492002-12-31 Jakub Jelinek <jakub@redhat.com>
350
a4baf360
UD
351 * sysdeps/i386/i686/pt-machine.h: Use __ASSEMBLER__ instead of
352 ASSEMBLER test macro.
353 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Likewise.
354 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
355 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Likewise.
356 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
357 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
358 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
359
360 * sysdeps/pthread/errno-loc.c (__errno_location): Add
361 libc_hidden_def.
362 * sysdeps/pthread/herrno-loc.c (__h_errno_location): Likewise.
363 * sysdeps/pthread/res-state.c (__res_state): Likewise.
364 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
365 __libc_current_sigrtmax): Likewise.
366 * Versions [libc] (GLIBC_PRIVATE): Remove __libc_internal_tsd_get,
367 __libc_internal_tsd_set, __libc_internal_tsd_address,
368 __libc_alloca_cutoff.
369 [libpthread] (GLIBC_PRIVATE): Remove __libc_internal_tsd_get,
370 __libc_internal_tsd_set, __libc_internal_tsd_address.
371
372 * sysdeps/pthread/list.h: Remove assert.h include.
373 * sysdeps/unix/sysv/linux/fork.c: Include <fork.h>, not "fork.h".
374
416d2de6
UD
375 * sysdeps/pthread/list.h: New file.
376 * sysdeps/unix/sysv/linux/jmp-unwind.c: New file.
377 * sysdeps/unix/sysv/linux/fork.c: New file.
378 * sysdeps/unix/sysv/linux/fork.h: New file.
379 * sysdeps/unix/sysv/linux/ia64/fork.h: New file.
380 * sysdeps/unix/sysv/linux/sparc/fork.h: New file.
381 * sysdeps/unix/sysv/linux/register-atfork.c: New file.
382 * sysdeps/unix/sysv/linux/unregister-atfork.c: New file.
383 * sysdeps/unix/sysv/linux/Makefile: New file.
384 * sysdeps/unix/sysv/linux/Versions: New file.
385 * ptlongjmp.c (pthread_cleanup_upto): Rename to...
386 (__pthread_cleanup_upto): ...this. Add targetframe argument,
387 use it instead of currentframe. No longer static.
388 (siglongjmp, longjmp): Remove pthread_cleanup_upto calls.
389 * internals.h (__pthread_cleanup_upto, __pthread_fork): New prototypes.
390 (struct pthread_functions): Add ptr_pthread_fork,
391 ptr_pthread_cleanup_upto.
392 * pthread.c (pthread_functions): Initialize ptr_pthread_fork and
393 ptr_pthread_cleanup_upto.
394 * ptfork.c: Include fork.h.
395 (struct handler_list, struct handler_list_block): Remove.
396 (pthread_atfork_lock, pthread_atfork_prepare, pthread_atfork_parent,
397 pthread_atfork_child): Remove.
398 (pthread_insert_list, __pthread_atfork, pthread_call_handlers): Remove.
399 (__pthread_fork): New function.
400 (__fork, __vfork): Call __libc_fork.
401 * Makefile (libpthread-routines): Add old_pthread_atfork.
402 (libpthread-nonshared): Add pthread_atfork.
403 (others): Depend on $(objpfx)libpthread_nonshared.a.
404 ($(objpfx)libpthread_nonshared.a): New rule.
405 (install): Depend on $(inst_libdir)/libpthread.so.
406 ($(inst_libdir)/libpthread.so, $(inst_libdir)/libpthread_nonshared.a):
407 New rules.
408 (tests): Depend on libpthread_nonshared.a too.
409 * old_pthread_atfork.c: New file.
410 * pthread_atfork.c: New file.
411 * Makeconfig (shared-thread-library): Include libpthread_nonshared.a
412 too.
413
8cac677c
UD
4142002-12-30 Jakub Jelinek <jakub@redhat.com>
415
416 * forward.c: Make all functions available by default again. It
417 caused too much trouble.
418 * internals.h (struct pthread_functions): Rename ptr_pthread_exit
419 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
420 ptr___pthread_attr_init_2_*.
421 * pthread.c (pthread_functions): Adjust.
422
3b7ed871
UD
4232002-12-28 Jakub Jelinek <jakub@redhat.com>
424
425 * libc_pthread_init.c (__libc_pthread_init): Remove
426 MULTIPLE_THREADS_OFFSET check.
427 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
428 (SYSINFO_OFFSET): Remove.
429 * sysdeps/i386/Makefile [csu] (gen-as-const-headers): Add
430 tcb-offsets.sym.
431 * sysdeps/i386/tcb-offsets.sym: New file.
432 * sysdeps/pthread/tcb-offsets.h: New file.
433 * sysdeps/sparc/sparc32/tls.h: Removed.
434 * sysdeps/sparc/sparc64/tls.h: Move...
435 * sysdeps/sparc/tls.h: ...here. Include tcb-offsets.h in assembler.
436 * sysdeps/sparc/Makefile: New file.
437 * sysdeps/sparc/tcb-offsets.sym: New file.
438 * sysdeps/ia64/tls.h: Include tcb-offsets.h in assembler.
439 * sysdeps/ia64/Makefile: New file.
440 * sysdeps/ia64/tcb-offsets.sym: New file.
441 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
442 (MULTIPLE_THREADS_OFFSET): Remove.
443 Replace defined MULTIPLE_THREADS_OFFSET
444 with defined FLOATING_STACKS && USE___THREAD.
445 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
446 (MULTIPLE_THREADS_OFFSET): Remove.
447 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
448 (MULTIPLE_THREADS_OFFSET): Remove.
449 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
450 (MULTIPLE_THREADS_OFFSET): Remove.
451 * pthread.c (__pthread_initialize_manager): Remove
452 MULTIPLE_THREADS_OFFSET cbeck.
453
454 * tst-cancel-wrappers.sh: Add line continuations.
455
afb2e954
UD
4562002-12-27 Jakub Jelinek <jakub@redhat.com>
457
270d9d47
UD
458 * sysdeps/pthread/bits/libc-tsd.h: Include linuxthreads/descr.h
459 and bits/libc-lock.h.
460 (__libc_internal_tsd_get, __libc_internal_tsd_set,
461 __libc_internal_tsd_address): Remove.
462 (__pthread_internal_tsd_address, __pthread_internal_tsd_get,
463 __pthread_internal_tsd_set): New weak_externs.
464 (__libc_tsd_address, __libc_tsd_get, __libc_tsd_set): Define
465 using __libc_maybe_call2.
466 (__libc_tsd_key_t): Move to ...
467 * descr.h (__libc_tsd_key_t): ...here.
468 Remove bits/libc-tsd.h include.
469 * sysdeps/pthread/errno-loc.c: New file.
470 * sysdeps/pthread/herrno-loc.c: New file.
471 * sysdeps/pthread/res-state.c: New file.
472 * libc-cancellation.c (THREAD_GETMEM, THREAD_SETMEM): Remove.
473 (__libc_enable_asynccancel, __libc_disable_asynccancel): Use
474 thread_self unconditionally. Use LIBC_THREAD_[SG]ETMEM instead
475 of THREAD_[SG]ETMEM.
476 * specific.c (libc_internal_tsd_set): Renamed to...
477 __pthread_internal_tsd_set. Remove static.
478 (libc_internal_tsd_get): Renamed to...
479 __pthread_internal_tsd_get. Remove static.
480 (libc_internal_tsd_address): Renamed to...
481 __pthread_internal_tsd_address. Remove static.
482 (__libc_internal_tsd_set, __libc_internal_tsd_get,
483 __libc_internal_tsd_address, __libc_alloca_cutoff): Remove.
484 * internals.h [!NOT_IN_libc] (LIBC_THREAD_GETMEM, LIBC_THREAD_SETMEM):
485 Define.
486 (__pthread_internal_tsd_set, __pthread_internal_tsd_get,
487 __pthread_internal_tsd_address): New prototypes.
488 (struct pthread_functions): Add
489 ptr_pthread_internal_tsd_([sg]et|address) fields.
490 [!NOT_IN_libc && !FLOATING_STACKS] (thread_self): Define.
491 * pthread.c (pthread_functions) [!USE_TLS && !HAVE___THREAD]:
492 Initialize ptr_pthread_internal_tsd_([sg]et|address) fields.
493 * Versions (libpthread): Remove __libc_alloca_cutoff@GLIBC_PRIVATE.
494 * alloca_cutoff.c: New file.
495 * no-tsd.c: Removed.
496 * Makefile (routines): Remove no-tsd. Add alloca_cutoff.
497 * pt-system.c (system): Remove cancellation handling.
498 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
499 cancellation routines.
500
afb2e954
UD
501 * sysdeps/i386/tls.h: Include dl-sysdep.h and stdint.h.
502 (tcbhead_t): Add sysinfo field.
503 (SYSINFO_OFFSET, INIT_SYSINFO): Define.
504 (TLS_INIT_TP): Use INIT_SYSINFO.
505 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
506 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
507 (MULTIPLE_THREADS_OFFSET): Adjust.
508 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
509 (MULTIPLE_THREADS_OFFSET): Likewise.
510 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
511 (MULTIPLE_THREADS_OFFSET): Likewise.
512 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
513 (MULTIPLE_THREADS_OFFSET): Likewise.
514 * descr.h: Include stdint.h.
515 (struct _pthread_descr_struct): Add p_header.data.sysinfo field.
516
5172002-12-22 Jakub Jelinek <jakub@redhat.com>
518
519 * libc_pthread_init.c: Include stdlib.h.
520 * sysdeps/i386/tls.h (tcbhead_t): Add multiple_threads member.
521 (TLS_INIT_TP_EXPENSIVE): Define.
522 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call,
523 __libc_maybe_call2): In _LIBC check SHARED define.
524 * sysdeps/ia64/tls.h: New file.
525 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
526 * sysdeps/unix/sysv/linux/ia64/Makefile: New file.
527 * sysdeps/x86_64/tls.h (TLS_INIT_TP_EXPENSIVE): Define.
528 * sysdeps/sparc/sparc32/tls.h: New file.
529 * sysdeps/sparc/sparc64/tls.h: New file.
530 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
531 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
532 * Makefile (tests): Add tst-cancel[1-6].
533 (tests-reverse): Add tst-cancel5.
534 Link libc.so before libpthread.so for tests-reverse.
535 * tst-cancel1.c: New file.
536 * tst-cancel2.c: New file.
537 * tst-cancel3.c: New file.
538 * tst-cancel4.c: New file.
539 * tst-cancel5.c: New file.
540 * tst-cancel6.c: New file.
541
9f256765
AS
5422002-12-27 Andreas Schwab <schwab@suse.de>
543
544 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: New file.
545
5220f9ac
RM
5462002-12-22 Roland McGrath <roland@redhat.com>
547
548 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
549
2e4f58a4
UD
5502002-12-21 Ulrich Drepper <drepper@redhat.com>
551
552 * pthread.c (init_rtsigs): Remove incomplete __builtin_expect.
553 Reported by Art Hass <ahaas@airmail.net>.
554
3325198e
UD
5552002-12-19 Jakub Jelinek <jakub@redhat.com>
556
557 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
558 Use return 0 as 6th argument to FORWARD4.
559
5e289179
UD
5602002-12-18 Jakub Jelinek <jakub@redhat.com>
561
562 * sysdeps/i386/useldt.h (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Only
563 define if __ASSUME_LDT_WORKS > 0.
564 * libc-cancellation.c (THREAD_GETMEM, THREAD_SETMEM): Redefine to
565 struct member access if !FLOATING_STACKS.
566 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
567
82f81a90
UD
5682002-12-18 Jakub Jelinek <jakub@redhat.com>
569
570 * internals.h (__pthread_thread_self): New prototype.
571 (struct pthread_functions): Add ptr_pthread_thread_self field.
572 * pthread.c (pthread_functions): Initialize ptr_pthread_thread_self.
573 (__pthread_thread_self): New function.
574 * libc-cancellation.c (__pthread_thread_self): Add weak_extern.
575 (__libc_enable_asynccancel, __libc_disable_asynccancel): Don't
576 use thread_self() directly if not FLOATING_STACKS.
577
5782002-12-18 Jakub Jelinek <jakub@redhat.com>
579
580 * sysdeps/x86_64/pt-machine.h: Guard most of the header
581 with #ifndef __ASSEMBLER__.
582 * pthread.c (pthread_functions): Use SHLIB_COMPAT around
583 pthread_attr_init_2_0 use.
584
5852002-12-17 Jakub Jelinek <jakub@redhat.com>
586
587 * wrapsyscall.c: Removed.
588 * weaks.c: Removed.
589 * Makefile (distribute): Add tst-cancel-wrappers.sh.
590 (routines): Remove weaks. Add forward,
591 libc_pthread_init, libc-cancellation.
592 (shared-only-routines): Remove weaks. Add forward.
593 (libpthread-routines): Remove wrapsyscall.
594 Add ptw-write, ptw-read, ptw-close, ptw-fcntl, ptw-accept,
595 ptw-connect, ptw-recv, ptw-recvfrom, ptw-recvmsg, ptw-send,
596 ptw-sendmsg, ptw-sendto, ptw-fsync, ptw-lseek, ptw-lseek64,
597 ptw-llseek, ptw-msync, ptw-nanosleep, ptw-open, ptw-open64,
598 ptw-pause, ptw-pread, ptw-pread64, ptw-pwrite, ptw-pwrite64,
599 ptw-tcdrain, ptw-wait, ptw-waitpid, pt-system, pt-allocrtsig.
600 (libpthread-shared-only-routines): Add pt-allocrtsig.
601 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
602 ($(objpfx)tst-cancel-wrappers.out): New rule.
603 * sysdeps/pthread/bits/libc-lock.h: Include linuxthreads/internals.h
604 if in libc.
605 (__libc_maybe_call): In libpthread.* don't check for existance
606 of the function.
607 (__libc_maybe_call2): Define.
608 (__libc_lock_init, __libc_lock_fini, __libc_lock_lock,
609 __libc_lock_trylock, __libc_lock_unlock): Use it.
610 * sysdeps/pthread/flockfile.c: New file.
611 * sysdeps/pthread/ftrylockfile.c: New file.
612 * sysdeps/pthread/funlockfile.c: New file.
613 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
614 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
615 * sysdeps/unix/sysv/linux/allocrtsig.c: New file.
616 * libc-cancellation.c: New file.
617 * forward.c: New file.
618 * libc_pthread_init.c: New file.
619 * pt-system.c: New file.
620 * pthread.c: Remove locale.h.
621 (__pthread_manager_thread): Initialize multiple_threads.
622 (__pthread_multiple_threads): Declare.
623 (pthread_functions): New variable.
624 (__pthread_initialize_minimal): Remove __uselocale call.
625 Call __libc_pthread_init.
626 (__pthread_initialize_manager): Initialize __pthread_multiple_threads,
627 initial thread's multiple_threads and __libc_multiple_threads.
628 Check MULTIPLE_THREADS_OFFSET value. Initialize manager thread's
629 multiple_threads.
630 (pthread_setschedparam, pthread_getschedparam): Rename to __
631 prefixed variants. Add strong_alias.
632 (current_rtmin, current_rtmax, __libc_current_sigrtmin,
633 __libc_current_sigrtmax, __libc_allocate_rtsig): Remove.
634 (init_rtsigs): Use __libc_current_sigrtmin_private.
635 (pthread_initialize): Only call init_rtsigs if
636 !__ASSUME_REALTIME_SIGNALS.
637 (__pthread_require_wrappers, __pthread_require_lockfile): Remove.
638 * internals.h (__pthread_attr_destroy, __pthread_attr_setdetachstate,
639 __pthread_attr_getdetachstate, __pthread_attr_setschedparam,
640 __pthread_attr_getschedparam, __pthread_attr_setschedpolicy,
641 __pthread_attr_getschedpolicy, __pthread_attr_setinheritsched,
642 __pthread_attr_getinheritsched, __pthread_attr_setscope,
643 __pthread_attr_getscope, __pthread_cond_init,
644 __pthread_cond_destroy, __pthread_cond_wait,
645 __pthread_cond_signal, __pthread_cond_broadcast,
646 __pthread_condattr_init, __pthread_condattr_destroy,
647 __pthread_equal, __pthread_getschedparam,
648 __pthread_setschedparam, __pthread_setcancelstate,
649 __pthread_setcanceltype, __pthread_enable_asynccancel,
650 __libc_enable_asynccancel, __libc_pthread_init): New prototype.
651 (__pthread_mutex_init, __pthread_mutex_destroy,
652 __pthread_mutex_lock, __pthread_mutex_unlock,
653 __pthread_mutex_trylock): Likewise.
654 Add hidden_proto.
655 (struct pthread_functions): New type.
656 (__libc_pthread_functions): New variable.
657 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define.
658 * descr.h (struct _pthread_descr_struct): Add
659 p_header.data.multiple_threads field.
660 * manager.c (pthread_handle_create): Initialize multiple_threads.
661 * cancel.c (__pthread_enable_asynccancel,
662 __pthread_disable_asynccancel): New functions.
663 (__pthread_provide_wrappers): Remove.
664 (pthread_setcancelstate, pthread_setcanceltype): Rename to __
665 prefixed variants. Add strong_alias.
666 * condvar.c (pthread_cond_init, pthread_cond_destroy,
667 pthread_cond_wait, pthread_cond_signal, pthread_cond_broadcast,
668 pthread_condattr_init, pthread_condattr_destroy): Likewise.
669 * join.c (pthread_exit): Likewise.
670 * attr.c (pthread_attr_destroy, pthread_attr_setdetachstate,
671 pthread_attr_getdetachstate, pthread_attr_setschedparam,
672 pthread_attr_getschedparam, pthread_attr_setschedpolicy,
673 pthread_attr_getschedpolicy, pthread_attr_setinheritsched,
674 pthread_attr_getinheritsched, pthread_attr_setscope,
675 pthread_attr_getscope): Likewise.
676 * mutex.c (__pthread_mutex_init, __pthread_mutex_destroy,
677 __pthread_mutex_lock, __pthread_mutex_unlock,
678 __pthread_mutex_trylock): Add hidden_def.
679 * Versions (libc): Add __libc_pthread_init,
680 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
681 __libc_allocate_rtsig_private @@GLIBC_PRIVATE.
682 * lockfile.c: Remove some USE_IN_LIBIO guards.
683 (__pthread_provide_lockfile): Remove.
684 * pt-allocrtsig.c: New file.
685 * tst-cancel-wrappers.sh: New test.
686
f3015aa5
UD
6872002-12-15 Ulrich Drepper <drepper@redhat.com>
688
689 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
690 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
691 * wrapsyscall.c: Remove creat, poll, pselect, readv, select,
692 sigpause, sigsuspend, sigwaitinfo, waitid, and writev wrappers.
693
dce8f2b6
UD
6942002-12-10 Ulrich Drepper <drepper@redhat.com>
695
696 * wrapsyscall.c (CANCELABLE_SYSCALL): Don't define function as
697 weak. There is no reason for that.
698 (CANCELABLE_SYSCALL_VA): Likewise.
699
e5e45b53
UD
7002002-12-09 Ulrich Drepper <drepper@redhat.com>
701
702 * wrapsyscall.c: Add wrappers for creat, poll, pselect, readv, select,
703 sigpause, __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev.
704 * Versions: Export creat, poll, pselect, readv, select, sigpause,
705 __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev from
706 libpthread in version GLIBC_2.3.2.
707
d3c9f895
UD
7082002-12-06 Ulrich Drepper <drepper@redhat.com>
709
710 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
711
fde89ad0
RM
7122002-12-05 Roland McGrath <roland@redhat.com>
713
714 * pthread.c (__pthread_initialize_minimal)
715 [USE_TLS && SHARED && !USE___THREAD]: Initialize TLS and set up the
716 TCB if the dynamic linker didn't do it at startup.
717
718 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
719 string.
720 (TLS_DO_SET_THREAD_AREA, TLS_DO_MODIFY_LDT, TLS_SETUP_GS_SEGMENT):
721 Submacros updated.
722 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
723 * sysdeps/alpha/tls.h (TLS_INIT_TP): Likewise (always zero).
724
7252002-12-03 Roland McGrath <roland@redhat.com>
726
727 * pthread.c (pthread_initialize) [SHARED]: Copy dl_error_tsd value
728 from dynamic linker internal cell to new libc cell.
729
fa9a4ff0
RM
7302002-11-28 Roland McGrath <roland@redhat.com>
731
732 * tst-context.c: #define IS_IN_libpthread around #include <tls.h>
733 before other headers, so FLOATING_STACKS is not defined wrongly.
734
735 * sysdeps/i386/tls.h [!IS_IN_libpthread]: Enable TLS support
736 even if [! FLOATING_STACKS].
737 (TLS_DO_MODIFY_LDT_KERNEL_CHECK): New macro.
738 If not under [__ASSUME_LDT_WORKS > 0], then do a runtime check of
739 dl_osversion >= 2.3.99 and fatal if not.
740 (TLS_DO_MODIFY_LDT): Use it.
741
f9ad060c
UD
7422002-11-28 Ulrich Drepper <drepper@redhat.com>
743
744 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
745 require it to 200112L. Remove _POSIX_POLL and _POSIX_SELECT.
746 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
747
96bbfe3f
UD
7482002-11-19 Ulrich Drepper <drepper@redhat.com>
749
fa9a4ff0 750 * Versions (libc: GLIBC_2.0): Remove names of functions which are
96bbfe3f
UD
751 not defined in libc.
752 * Makefile (shared-only-routines): Add weaks.
753 * weaks.c: Remove functions which are not exported from libc.so.
754
53da80ab
RM
7552002-11-14 Roland McGrath <roland@redhat.com>
756
757 * libc-tsd.c: New file.
758 * Makefile (distribute): Add it.
759 (libc-link.so): New variable.
760 ($(objpfx)libpthread.so): Depend on that instead of libc.so file name.
761 (libc-ok-for-link): New variable.
762 [$(versioning) = yes]: Include $(common-objpfx)tls.make and define
763 libc-ok-for-link to $(use-thread).
764 [$(libc-ok-for-link) = no]
765 (libc-link.so): Set to $(objpfx)libc.so, not $(common-objpfx)libc.so.
766 ($(objpfx)libc_pic_lite.a,$(objpfx)libc_pic_lite.os, $(objpfx)libc.so):
767 New targets.
768 (generated): Append them.
769 (extra-objs): Append libc-tsd.os.
770
771 * libc-tls-loc.c: New file.
772 * Makefile (libpthread-routines): Add it.
773
29923dfd
AS
7742002-11-14 Andreas Schwab <schwab@suse.de>
775
776 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Fix unterminated
777 string.
778
cdedcc79
RM
7792002-11-13 Roland McGrath <roland@redhat.com>
780
781 * Examples/ex6.c (main): Improve error reporting.
782
8e96ae1a
UD
7832002-11-04 Ulrich Drepper <drepper@redhat.com>
784
226e9fda
UD
785 * sysdeps/i386/Makefile: Compile pthread.c and sighandler.c with
786 -fno-omit-frame-pointer. Patch by Andreas Steinmetz <ast@domdv.de>.
787
8e96ae1a
UD
788 * sysdeps/i386/useldt.h [PIC] (USETLS_LOAD_EBX): Use correct input
789 register number.
790 (DO_SET_THREAD_AREA): Mark asm output specifiers correctly.
791
bd6daf3b
RM
7922002-10-22 Jakub Jelinek <jakub@redhat.com>
793
794 * manager.c (pthread_start_thread): Call __uselocale even
795 if [! SHARED]. Patch by Leon Kanter <leon@geon.donetsk.ua>.
796
2430d57a
RM
7972002-10-17 Roland McGrath <roland@redhat.com>
798
799 * Makefile (unload): Don't link in libpthread.so.
800 ($(objpfx)unload.out): Do depend on it.
801 * unload.c (main): Improve error reporting.
802
3021e36d
RM
8032002-10-09 Roland McGrath <roland@redhat.com>
804
805 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
806 Under [__PIC__], call the function via the pointer fetched for
807 comparison rather than a call by name that uses the PLT.
808 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
809 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
810 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
811 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
812 (__libc_key_create, __libc_getspecific, __libc_setspecific)
813 (__libc_atfork): Use it.
814
815 * pthread.c [SHARED] (__libc_dl_error_tsd): New function.
816 (pthread_initialize) [SHARED]: Set _dl_error_catch_tsd to that.
817 * Versions (libc: GLIBC_PRIVATE): Add __libc_dl_error_tsd.
818 (ld: GLIBC_PRIVATE): Set removed.
819
ef43f9d4
UD
8202002-10-11 Ulrich Drepper <drepper@redhat.com>
821
822 * sysdeps/unix/sysv/linux/execve.c: New file.
823
65e6f476
UD
8242002-10-09 Jakub Jelinek <jakub@redhat.com>
825
826 * no-tsd.c: Include stdlib.h.
827
d3c79d4a
UD
8282002-10-07 Jakub Jelinek <jakub@redhat.com>
829
830 * sysdeps/unix/sysv/linux/allocalim.h: New file.
831 * descr.h (struct _pthread_descr_struct): Add p_alloca_cutoff
832 field.
833 * manager.c (__pthread_allocate_stack): Add out_stacksize argument.
834 Pass stack size to caller.
835 (pthread_handle_create): Set p_alloca_cutoff.
836 * pthread.c (__pthread_initial_thread): Use C99 designated
837 initializers. Set p_alloca_cutoff.
838 (__pthread_manager_thread): Likewise.
839 (__pthread_initialize_minimal) [USE_TLS]: Set p_alloca_cutoff
840 for initial thread.
841 (__pthread_init_max_stacksize): Possibly decrease p_alloca_cutoff
842 for initial thread.
843 (__pthread_initialize_manager) [USE_TLS]: Set p_alloca_cutoff
844 for manager thread.
845 * specific.c (__libc_alloca_cutoff): New function.
846 * no-tsd.c (__libc_alloca_cutoff): New function.
847 * Versions: Export __libc_alloca_cutoff@@GLIBC_PRIVATE from libc
848 and libpthread.
849
aa298c08
UD
8502002-10-02 Kaz Kojima <kkojima@rr.iij4u.or.jp>
851
852 * sysdeps/sh/pt-machine.h: Make C code ifndef'ed with __ASSEMBLER__.
853 * sysdeps/sh/tls.h: Likewise.
854 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
855
57449fa3
RM
8562002-09-29 Jakub Jelinek <jakub@redhat.com>
857
858 * sysdeps/pthread/tst-timer.c (main): Clear
859 SIGEV2.sigev_notify_attributes.
860
9a1c21c4
UD
8612002-09-29 Ulrich Drepper <drepper@redhat.com>
862
863 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Don't use
864 INLINE_SYSCALL for set_thread_area syscall.
865
3865b57f
RM
8662002-09-28 Roland McGrath <roland@redhat.com>
867
868 * pthread.c (__pthread_reset_main_thread) [FLOATING_STACKS]:
869 Don't call setrlimit, since we did no prior bogon we need to undo.
870
2c536abd
RM
8712002-09-27 Roland McGrath <roland@redhat.com>
872
873 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Don't include <pt-machine.h>.
874
160bb409
RM
8752002-09-24 Roland McGrath <roland@redhat.com>
876
877 * sysdeps/x86_64/tls.h: New file.
878
8792002-09-23 Roland McGrath <roland@redhat.com>
880
881 * Examples/ex13.c (dump_mut): int -> size_t for counter.
882
9db6ee8d
RM
8832002-09-18 Bruno Haible <bruno@clisp.org>
884
885 * Examples/ex10.c (thread): Fail if pthread_mutex_timedlock() returns
886 an unexpected error code.
887
888 * internals.h (__pthread_message): Add const to first parameter type.
889 * pthread.c (__pthread_message): Likewise.
890
891 * sysdeps/unix/sysv/linux/configure: Moved to ../sysdeps/pthread.
892
1d0ad773
RM
8932002-09-17 Roland McGrath <roland@redhat.com>
894
895 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT, TLS_DO_SET_THREAD_AREA):
896 Set the descriptor limit to the full 4GB, so %gs:OFFSET works for any
897 offset (positive or negative) relative to the thread struct.
898 * sysdeps/i386/useldt.h (DO_MODIFY_LDT, DO_SET_THREAD_AREA): Likewise.
899
54c1e6ca
RM
9002002-09-12 Jakub Jelinek <jakub@redhat.com>
901
902 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Move...
903 * sysdeps/unix/sysv/linux/sparc/Makefile: ...here.
904 Replace /usr/lib/crt[in].o with crt[in].o too.
905
4730fc68
RM
9062002-09-11 Steven Munroe <sjmunroe@us.ibm.com>
907
908 * sysdeps/powerpc/powerpc64/pt-machine.h: New file.
909
64ca3f32
RM
9102002-09-04 Bruno Haible <bruno@clisp.org>
911
912 * pthread.c: Include <sys/time.h>.
913 (is_smp_system): Move to sysdeps/unix/sysv/linux/smp.h.
914 * sysdeps/unix/sysv/linux/smp.h: New file, extracted from pthread.c.
915 * Makefile (distribute): Add smp.h to the list.
916
a1e56cd1
RM
9172002-09-04 Bruno Haible <bruno@clisp.org>
918
5842a756
UD
919 * sysdeps/alpha/pt-machine.h: Choose different include file location
920 on non-Linux platforms.
4f58b7c6 921
a1e56cd1
RM
922 * wrapsyscall.c (PROMOTE_INTEGRAL_TYPE): New macro.
923 (open, open64): Change va_arg argument type to the integral type to
924 which mode_t promotes.
925
926 * sysdeps/pthread/tst-timer.c (main): Don't assume anything about
927 the structure of 'struct sigevent'.
928
929 * errno.c (__errno_location, __h_errno_location, __res_state):
930 Use prototype function definitions.
931
92b27c74
UD
9322002-07-29 Steven Munroe <sjmunroe@us.ibm.com>
933
934 * shlib-versions: Set libpthread version to 2.3 for powerpc64.
935 * sysdeps/powerpc/pt-machine.h: moved to...
936 * sysdeps/powerpc/powerpc32/pt-machine.h: ...here
a1e56cd1 937 * sysdeps/powerpc/powerpc64/pt-machine.h: New file.
92b27c74 938
bcc565a0
UD
9392002-09-02 Roland McGrath <roland@redhat.com>
940
941 * sysdeps/powerpc/Makefile (CFLAGS-pt-initfini.s): New variable.
942
cf684340
RM
9432002-09-01 Roland McGrath <roland@redhat.com>
944
945 * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t): Add new keys
946 CTYPE_B, CTYPE_TOLOWER, CTYPE_TOUPPER.
947
948 * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_address): New macro.
949 (__libc_internal_tsd_address): Declare it.
950 * Versions (libc, ld, libpthread: GLIBC_PRIVATE): Add
951 __libc_internal_tsd_address.
952 * specific.c (libc_internal_tsd_address): New function.
953 (__libc_internal_tsd_address): New variable.
954 * no-tsd.c (__libc_internal_tsd_address): New variable.
955
9649be24
UD
9562002-08-31 Ulrich Drepper <drepper@redhat.com>
957
958 * Makefile: Don't use rule for crt%.o, spell it out as rules for
959 crti.o and crtn.o.
960
cc6d371d
RM
9612002-08-30 Roland McGrath <roland@redhat.com>
962
963 * Makefile (extra-objs, omit-deps): Add crtn.
964 ($(objpfx)libpthread.so): Depend on $(objpfx)crtn.o.
965 ($(objpfx)libpthread.so: +postinit): Append $(objpfx)crtn.o.
966 ($(objpfx)crtn.S): New target.
967 ($(objpfx)crt%.o): Pattern rule replaces crti.o target.
968 (generated): Add crtn.S.
969
970 * sysdeps/unix/sysv/linux/x86_64/Makefile ($(objpfx)specs): Massage
971 crtn.o pathname too.
972
95ed9d84
RM
9732002-08-30 Jakub Jelinek <jakub@redhat.com>
974
9649be24
UD
975 * pthread.c (__pthread_initialize_minimal): Call __uselocale even
976 if [! SHARED].
95ed9d84
RM
977
9782002-08-30 Roland McGrath <roland@redhat.com>
979
980 * tst-static-locale.c: New file.
981 * Makefile (tests, tests-static): Add it.
982
c98d82db
UD
9832002-04-24 Steven Munroe <sjmunroe@us.ibm.com>
984
985 * spinlock.c (__pthread_lock): Fix spurious wakeup
986 handling. Don't clear lowest bit of list pointer as sign the thread
987 is still on the wait list. Don't restart after spurious wakeup
988 with spinning to get the lock.
989 (__pthread_unlock): Take set lowest bit into account when handling
990 pointer to list elements.
991 Patch by Steve Munroe <sjmunroe@us.ibm.com>.
992
963e3b58
RM
9932002-08-28 Roland McGrath <roland@redhat.com>
994
995 * sysdeps/pthread/timer_routines.c (thread_func): Fix type in cast.
996
5fe14d96
UD
9972002-08-28 Jakub Jelinek <jakub@redhat.com>
998
999 * sysdeps/unix/sysv/linux/hppa/aio_cancel.c: New file.
1000 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
1001 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
1002
dd4f2115
UD
10032002-08-28 Ulrich Drepper <drepper@redhat.com>
1004
1005 * sysdeps/pthread/timer_routines.c (thread_func): Change return
963e3b58 1006 type to void and add casts in use to avoid warnings with all gcc
dd4f2115
UD
1007 versions.
1008
f0377954
UD
10092002-08-08 Jakub Jelinek <jakub@redhat.com>
1010
1011 * sysdeps/unix/sysv/linux/bits/local_lim.h (PTHREAD_THREADS_MAX):
1012 Bump to 16384.
1013 * manager.c (__pthread_handles): Remove.
1014 * pthandles.c: New file.
1015 * pthread.c (__pthread_initialize_minimal): Initialize
1016 __pthread_handles[0] and __pthread_handles[1].
1017 * Makefile (libpthread-routines): Add pthandles (must be last).
1018
5fe14d96 10192002-08-26 Brian Youmans <3diff@gnu.org>
8b269abc 1020
e0cffcf6
UD
1021 * Examples/ex10.c: Corrected version number in Lesser GPL copying
1022 permission notice from 2 to 2.1.
8b269abc
UD
1023 * Examples/ex11.c: Likewise.
1024 * Examples/ex13.c: Likewise.
1025 * Examples/ex8.c: Likewise.
1026 * Examples/ex9.c: Likewise.
1027 * barrier.c: Likewise.
1028 * events.c: Likewise.
1029 * lockfile.c: Likewise.
1030 * no-tsd.c: Likewise.
1031 * pt-machine.c: Likewise.
1032 * ptclock_gettime.c: Likewise.
1033 * ptclock_settime.c: Likewise.
1034 * rwlock.c: Likewise.
1035 * sysdeps/alpha/pspinlock.c: Likewise.
1036 * sysdeps/alpha/pt-machine.h: Likewise.
1037 * sysdeps/arm/pspinlock.c: Likewise.
1038 * sysdeps/arm/pt-machine.h: Likewise.
1039 * sysdeps/cris/pspinlock.c: Likewise.
1040 * sysdeps/cris/pt-machine.h: Likewise.
1041 * sysdeps/hppa/pspinlock.c: Likewise.
1042 * sysdeps/hppa/pt-machine.h: Likewise.
1043 * sysdeps/i386/i686/pt-machine.h: Likewise.
1044 * sysdeps/i386/pspinlock.c: Likewise.
1045 * sysdeps/i386/pt-machine.h: Likewise.
1046 * sysdeps/i386/useldt.h: Likewise.
1047 * sysdeps/ia64/pspinlock.c: Likewise.
1048 * sysdeps/ia64/pt-machine.h: Likewise.
1049 * sysdeps/m68k/pspinlock.c: Likewise.
1050 * sysdeps/m68k/pt-machine.h: Likewise.
1051 * sysdeps/mips/pspinlock.c: Likewise.
1052 * sysdeps/mips/pt-machine.h: Likewise.
1053 * sysdeps/powerpc/pspinlock.c: Likewise.
1054 * sysdeps/powerpc/pt-machine.h: Likewise.
1055 * sysdeps/pthread/bits/initspin.h: Likewise.
1056 * sysdeps/pthread/bits/libc-lock.h: Likewise.
1057 * sysdeps/pthread/bits/libc-tsd.h: Likewise.
1058 * sysdeps/pthread/getcpuclockid.c: Likewise.
1059 * sysdeps/pthread/posix-timer.h: Likewise.
1060 * sysdeps/pthread/timer_create.c: Likewise.
1061 * sysdeps/pthread/timer_delete.c: Likewise.
1062 * sysdeps/pthread/timer_getoverr.c: Likewise.
1063 * sysdeps/pthread/timer_gettime.c: Likewise.
1064 * sysdeps/pthread/timer_routines.c: Likewise.
1065 * sysdeps/pthread/timer_settime.c: Likewise.
1066 * sysdeps/pthread/tst-timer.c: Likewise.
1067 * sysdeps/s390/pspinlock.c: Likewise.
1068 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
1069 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
1070 * sysdeps/sh/pspinlock.c: Likewise.
1071 * sysdeps/sh/pt-machine.h: Likewise.
1072 * sysdeps/sparc/sparc32/pspinlock.c: Likewise.
1073 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
1074 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
1075 * sysdeps/sparc/sparc64/pspinlock.c: Likewise.
1076 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1077 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
1078 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
1079 * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
1080 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
1081 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1082 * tststack.c: Likewise.
1083 * unload.c: Likewise.
1084 * weaks.c: Likewise.
1085 * wrapsyscall.c: Likewise.
1086
1087 * sysdeps/pthread/pt-initfini.c: Changed copying
1088 permission notice to Lesser GPL from Library GPL, including the
1089 references in the special exception.
1090 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: Likewise.
1091 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Likewise.
1092 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c:
1093 Likewise.
1094 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c:
1095 Likewise.
1096 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Likewise.
1097
34816665
UD
10982002-08-26 Ulrich Drepper <drepper@redhat.com>
1099
1100 * Examples/ex10.c (thread): tv_nsec == 1000000000 is already
1101 overflow [PR libc/4244].
1102
6d497bbe
UD
11032002-08-25 Ulrich Drepper <drepper@redhat.com>
1104
fd77c361
UD
1105 * sysdeps/pthread/timer_routines.c (thread_func): Make the
1106 compiler happy by adding a return statement which will never be
1107 reached.
1108
9df89390
UD
1109 * tst-context.c (main): Cast to long before casting to pointer.
1110
1111 * Examples/ex17.c (main): Use correct format string.
1112
6d497bbe
UD
1113 * Examples/ex9.c (thread): Remove incorrect return statement.
1114
069125e5
UD
11152002-08-23 Ulrich Drepper <drepper@redhat.com>
1116
1117 * pthread.c (__linuxthreads_version): New global constant.
1118
fb2bdbba
AJ
11192002-08-23 Andreas Jaeger <aj@suse.de>
1120
1121 * sysdeps/x86_64/pt-machine.h: Use %fs instead of %gs
1122 as thread specific register.
1123 (testandset): Fix inline asm.
1124 (THREAD_GETMEM): Fix inline asm.
1125
8ddcb7da
RM
11262002-08-22 Roland McGrath <roland@redhat.com>
1127
1128 * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Remove [HAVE_TLS_SUPPORT]
1129 conditional.
1130 (INIT_THREAD_SELF): Pass second arg to DO_SET_THREAD_AREA.
1131 (DO_SET_THREAD_AREA): Take second arg, pass to DO_SET_THREAD_AREA_REUSE
1132 macro. That chooses whether to reuse %gs value or let kernel set it.
1133 [USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, always 1.
1134 [!USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, true if arg is
1135 not constant 0.
1136
0fe35439
UD
11372002-08-21 Ulrich Drepper <drepper@redhat.com>
1138
1139 * sysdeps/i386/tls.h (TLS_SETUP_GS_SEGMENT): Add new parameter
1140 also to the third definition of this macro.
1141
c70a0936
AJ
11422002-06-17 Andreas Jaeger <aj@suse.de>
1143
1144 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
1145 Set it.
1146
58d2d09b
UD
11472002-08-20 Ulrich Drepper <drepper@redhat.com>
1148
c761cdf5
UD
1149 * sysdeps/i386/useldt.h: Go back to using 16-bit instructions when
1150 loading/reading segment registers. Some old hardware doesn't
1151 handle the 32-bit instructions as expected.
1152 * sysdeps/i386/tls.h: Likewise.
1153
9d69bd24
UD
1154 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Second parameter is
1155 renamed to secondcall and use is negated.
1156 (TLS_SETUP_GS_SEGMENT): Likewise.
1157 (TLS_INIT_TP): Likewise.
1158 * sysdeps/sh/tls.h (TLS_INIT_TP): Second parameter is renamed to
1159 secondcall.
1160
69681bde
UD
1161 * sysdeps/i386/tls.h: Use 32-bit operations when handling segment
1162 registers. No need to mask upper 16 bits in this case.
1163 * sysdeps/i386/useldt.h: Likewise.
1164 (DO_SET_THREAD_AREA): We have to load %gs again even if the value
1165 is the same since the GDT content changed.
1166
d78ce054
UD
1167 * sysdeps/i386/tls.h (TLS_INIT_TP): Add new parameter and pass it on
1168 to TLS_SETUP_GS_SEGMENT.
1169 (TLS_SETUP_GS_SEGMENT): Add new parameter and pass it on to
1170 TLS_DO_SET_THREAD_AREA.
1171 (TLS_DO_SET_THREAD_AREA): If new parameter is zero determine
1172 entry number from %gs value.
1173 * sysdeps/sh/tls.h (TLS_INIT_TP): Add new parameter and simply
1174 ignore it.
1175
58d2d09b
UD
1176 * manager.c (pthread_handle_create): Pass NULL to _dl_allocate_tls.
1177 Pass true to _dl_deallocate_tls.
1178 (pthread_free): Likewise.
1179 * pthread.c (__pthread_initialize_manager): Likewise.
1180
46615777
UD
11812002-08-19 Ulrich Drepper <drepper@redhat.com>
1182
1183 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Use correct shift when
1184 computing index from %gs value.
1185
25cb6eb2
RM
11862002-08-16 Roland McGrath <roland@redhat.com>
1187
3ed35099
RM
1188 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Calculate segment
1189 register value from entry number properly.
1190
25cb6eb2
RM
1191 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Rewrite asm to use %ebx
1192 optimally conditional on [__PIC__].
1193 (TLS_DO_SET_THREAD_AREA): New macro, implement inline syscall
1194 without touching errno, and use latest modify_ldt-like interface.
1195 (TLS_SETUP_GS_SEGMENT): Use that instead of INLINE_SYSCALL.
1196 * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Set %gs in this macro.
1197 (DO_SET_THREAD_AREA): New macro, uses current syscall interface with
1198 existing %gs value as the segment to set.
1199 (INIT_THREAD_SELF): Rewritten using those. Use set_thread_area only
1200 under [HAVE_TLS_SUPPORT] so we can rely on the initialization done
1201 by the first thread's early TLS setup.
1202
c88b4759
RM
12032002-08-15 Roland McGrath <roland@redhat.com>
1204
1205 * sysdeps/i386/tls.h (TLS_INIT_TP): Use statement expression and
1206 return a value as callers now expect.
1207
e6f52680
RM
12082002-08-11 Roland McGrath <roland@redhat.com>
1209
1210 * pthread.c (__pthread_initialize_manager): Initialize
1211 p_header.data.tcb field of manager thread's descriptor.
1212 (__pthread_initialize_minimal): Don't initialize p_header.data.self
1213 field, already done by TLS_INIT_TP.
1214
1215 * manager.c (pthread_handle_create): Move p_header field initializers
1216 together.
1217
b7eb7b0f
UD
12182002-08-08 Ulrich Drepper <drepper@redhat.com>
1219
1220 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Removed.
1221
f70b0ea2
UD
12222002-08-07 Ulrich Drepper <drepper@redhat.com>
1223
1224 * pthread.c (__linuxthreads_initial_report_events): New variable.
1225 (__pthread_initialize_manager): Use it to initialize p_report_events
1226 of initial thread.
1227 [TLS]: Store pointer to descriptor of manager in __pthread_handles.
1228
e8e91498
RM
12292002-08-07 Roland McGrath <roland@redhat.com>
1230
1231 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Add an extra argument with
1232 an "m" constraint to the asm so the compiler knows LDT_ENTRY was used.
1233
26e73ab6
RM
12342002-08-02 Roland McGrath <roland@redhat.com>
1235
a14f26ef
RM
1236 * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t):
1237 Add _LIBC_TSD_KEY_LOCALE.
1238 * manager.c (pthread_start_thread) [!(USE_TLS && HAVE___THREAD)]:
1239 Call __uselocale to initialize our per-thread locale pointer to
1240 the global one.
1241 * pthread.c (__pthread_initialize_minimal): Likewise.
1242
26e73ab6
RM
1243 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Add missing \s.
1244
1f3f143e
UD
12452002-08-02 Ulrich Drepper <drepper@redhat.com>
1246
3c877a04
UD
1247 * pthread.c: Declare _errno, _h_errno, and _res unless we use TLS
1248 internally.
1249
1f3f143e
UD
1250 * cancel.c (__pthread_perform_cleanup) [USE_TLS && HAVE___THREAD]:
1251 Don't use p_libc_specific element in thread descriptor.
1252
c2afe833
RM
12532002-07-30 Roland McGrath <roland@redhat.com>
1254
1255 * sysdeps/pthread/bits/libc-tsd.h: Include <tls.h>.
1256 [USE_TLS && HAVE___THREAD]: Just include the sysdeps/generic file,
1257 which does the right thing when __thread support is available.
1258 * descr.h (struct _pthread_descr_struct) [USE_TLS && HAVE___THREAD]:
1259 Omit `p_libc_specific', `p_errnop', `p_errno', `p_h_errnop',
1260 `p_h_errno', `p_resp', and `p_res' members.
1261 * pthread.c (__pthread_initialize_minimal) [USE_TLS && HAVE___THREAD]:
1262 Don't initialize `p_errnop' and `p_h_errnop' members.
1263 (__pthread_reset_main_thread): Likewise.
1264 (__pthread_initialize_manager): Likewise.
1265 * manager.c (__pthread_manager, pthread_handle_create): Likewise.
1266 * pthread.c (pthread_initialize) [USE_TLS && HAVE___THREAD]:
1267 Don't initialize `p_resp' member.
1268 (__pthread_reset_main_thread): Likewise.
1269 * manager.c (pthread_handle_create): Likewise.
1270 * specific.c (libc_internal_tsd_set, libc_internal_tsd_get):
1271 Conditionalize these on [!(USE_TLS && HAVE___THREAD)].
fc10bc8d 1272 * no-tsd.c: Conditionalize contents on [!(USE_TLS && HAVE___THREAD)].
c2afe833
RM
1273 * errno.c [USE_TLS && HAVE___THREAD]
1274 (__h_errno_location, __res_state): Don't define these at all.
1275
1276 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens around arguments!
1277 (INSTALL_NEW_DTV, GET_DTV): Likewise.
1278 * sysdeps/sh/tls.h (INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV): Likewise.
1279
1280 * weaks.c: Don't include <errno.h> here.
1281
12822002-08-01 Roland McGrath <roland@redhat.com>
1283
1284 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): New macro, broken out of
1285 TLS_INIT_TP.
1286 (TLS_DO_SET_THREAD_AREA): New macro, uses thread_set_area syscall.
1287 (TLS_SETUP_GS_SEGMENT): New macro, try one or the other or both.
1288 (TLS_INIT_TP): Use that.
1289
06c2c536
UD
12902002-08-02 Jakub Jelinek <jakub@redhat.com>
1291
1292 * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Move from INIT_THREAD_SELF.
1293 (INIT_THREAD_SELF): Use sys_thread_area syscall instead if available.
1294 (FREE_THREAD): Avoid modify_ldt if using GDT.
1295 * sysdeps/i386/pspinlock.c (__have_no_set_thread_area): New variable.
1296
78ce5a3b
UD
12972002-07-25 Jakub Jelinek <jakub@redhat.com>
1298
1299 * sysdeps/i386/tls.h: Use __ASSEMBLER__ test macro not ASSEMBLER.
1300 * sysdeps/i386/pt-machine.h: Likewise.
1301 * sysdeps/i386/useldt.h: Likewise.
1302
67ee6db0
UD
13032002-07-22 Ulrich Drepper <drepper@redhat.com>
1304
8a30f00f
UD
1305 * pthread.c (__pthread_initialize_minimal): If !SHARED and TLS
1306 call __libc_setup_tls first.
1307 * Makefile: Actually create tst-signal.out file when running the test.
1308 (tests): Add tststatic.
1309 * Examples/tststatic.c: New file.
67ee6db0 1310
739d440d
UD
13112002-07-19 Ulrich Drepper <drepper@redhat.com>
1312
1313 * errno.c (__errno_location): Don't define unless !USE_TLS
1314 || !HAVE___THREAD.
1315 * sysdeps/i386/pt-machine.c: Protect C code with #ifndef ASSEMBLER.
1316 * sysdeps/i386/tls.h: Likewise.
1317 * sysdeps/i386/useldt.h: Likewise.
1318 * sysdeps/i386/i686/pt-machine.h: Likewise.
1319
a99bfa85
UD
13202002-07-02 H.J. Lu <hjl@gnu.org>
1321
1322 * sysdeps/mips/pspinlock.c: Don't include <sgidefs.h>. Always
1323 use ll/sc.
1324 * sysdeps/mips/pt-machine.h: Likewise.
1325
2acfe5d6
UD
13262002-07-14 Ulrich Drepper <drepper@redhat.com>
1327
1328 * manager.c (pthread_handle_create): Initialize self-reference in
1329 descriptor.
1330
b664d723
UD
13312002-07-01 Jakub Jelinek <jakub@redhat.com>
1332
1333 * Examples/ex9.c (main): Remove unused th variable.
1334
d880edc4
UD
13352002-07-10 Ulrich Drepper <drepper@redhat.com>
1336
1337 * wrapsyscall.c: Add __nanosleep alias.
1338 * Versions (GLIBC_2.2.6): Add __nanosleep.
f4741da2
UD
1339 * bug-sleep.c: New file.
1340 * Makefile (tests): Add bug-sleep.
d880edc4 1341
95fdc6a0
UD
13422002-06-19 Steven Munroe <sjmunroe@vnet.ibm.com>
1343
1344 * Examples/ex9.c (main): Use list of children and join them.
1345 (thread): Do not call exit.
1346
9b17bc94
UD
13472002-06-20 Ulrich Drepper <drepper@redhat.com>
1348
1349 * spinlock.c (wait_node_alloc): We cannot use compare-and-exchange.
1350 Unconditionally use the code using spinlock. Use __pthread_release
1351 to free a spinlock.
1352 (wait_node_free): Likewise.
1353 (__pthread_acquire, __pthread_release): Unconditionally define.
1354
a6cd9bf9
AJ
13552002-06-07 Jakub Jelinek <jakub@redhat.com>
1356
1357 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Fix typo.
1358
c0a0f9a3
UD
13592002-05-24 Ulrich Drepper <drepper@redhat.com>
1360
1361 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Use __sync_synchronize.
1362
12b7f470
UD
13632002-05-21 Ulrich Drepper <drepper@redhat.com>
1364
1365 * sysdeps/pthread/pthread.h (pthread_create): Rename first
1366 parameter.
1367 (pthread_cancel): Likewise.
1368 * internals.h (__pthread_create_2_1): Likewise.
1369 * sysdeps/unix/sysv/linux/bits/sigthread.h (pthread_kill): Likewise.
1370
4c393b68
UD
13712002-05-20 Ulrich Drepper <drepper@redhat.com>
1372
1373 * sysdeps/alpha/pt-machine.c (THREAD_SELF): Remove clobber.
1374 Patch by Glen Nakamura <gen@flex.com>.
1375
38a7d8ba
UD
13762002-05-03 Ulrich Drepper <drepper@redhat.com>
1377
1378 * signals.c: Move sighandler functions to...
1379 * sighandler.c: ...here. New file.
1380 * signals.c: Move signal handler related type definitions to...
1381 * internals.h: ...here. Add prototypes for signal handlers.
1382 * Makefile (libpthread-routines): Add sighandler.
1383 (CFLAGS-sighandler.c): Add $(exceptions).
1384
531bafd8
UD
13852002-04-30 Jakub Jelinek <jakub@redhat.com>
1386
1387 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
1388
14b2ede5
UD
13892002-04-08 Ulrich Drepper <drepper@redhat.com>
1390
1391 * sysdeps/pthread/timer_getoverr.c: Return real overrun.
1392 * sysdeps/pthread/posix-timer.h (struct timer_node): Add overrun_count.
1393 * sysdeps/pthread/timer_routines.c (thread_func): Schedule next timeout
1394 based on previous one and not on current time. Count overruns.
1395 Patch by Eric F. Sorton <eric@cctcorp.com>.
1396
1397 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add DELAYTIMER_MAX.
1398
776cc5d3
UD
13992002-04-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
1400
1401 * sysdeps/sh/pt-machine.h: Define _PT_MACHINE_H
1402 if it isn't defined yet.
14b2ede5 1403 (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Defined.
776cc5d3
UD
1404 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
1405 Likewise.
1406 * sysdeps/sh/tls.h: New file.
1407
3632a260
UD
14082002-04-08 Jakub Jelinek <jakub@redhat.com>
1409
1410 * manager.c (__pthread_manager_event): Use self instead of arg
1411 for INIT_THREAD_SELF.
1412 * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Use sizeof (struct
1413 _pthread_descr_struct) instead of sizeof (*descr).
1414
3fc2f6c8
UD
14152002-04-05 Ulrich Drepper <drepper@redhat.com>
1416
1417 * sysdeps/ia64/pt-machine.h: Protect against multiple inclusion.
1418 * sysdeps/alpha/pt-machine.h: Likewise.
1419 * sysdeps/arm/pt-machine.h: Likewise.
1420 * sysdeps/cris/pt-machine.h: Likewise.
1421 * sysdeps/hppa/pt-machine.h: Likewise.
1422 * sysdeps/m68k/pt-machine.h: Likewise.
1423 * sysdeps/mips/pt-machine.h: Likewise.
1424 * sysdeps/powerpc/pt-machine.h: Likewise.
1425 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
1426 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
1427 * sysdeps/sh/pt-machine.h: Likewise.
1428 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
1429 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1430 * sysdeps/x86_64/pt-machine.h: Likewise.
1431
6736e93b
UD
14322002-04-05 Jakub Jelinek <jakub@redhat.com>
1433
1434 * man/pthread_mutexattr_init.man (pthread_mutexattr_settype): Document
1435 instead of pthread_mutexattr_setkind_np.
1436 (pthread_mutexattr_gettype): Similarly.
1437 * man/pthread_mutexattr_setkind_np.man: New.
1438 * man/Makefile (SOURCES): Add pthread_mutexattr_setkind_np.man.
1439
62097690
UD
14402002-04-02 Ulrich Drepper <drepper@redhat.com>
1441
1442 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Define.
1443
fbaee91d
UD
14442002-03-22 Jakub Jelinek <jakub@redhat.com>
1445
1446 * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Remove.
1447
32fe4a93
UD
14482002-03-22 Ulrich Drepper <drepper@redhat.com>
1449
1450 * internals.h (MEMORY_BARRIER): Define as asm with memory as clobber.
1451
f68137c9
AJ
14522002-03-17 Andreas Jaeger <aj@suse.de>
1453
1454 * sysdeps/i386/pt-machine.h: Add testandset and __compare_and_swap
1455 prototpyes.
1456 * sysdeps/alpha/pt-machine.h: Likewise.
1457 * sysdeps/arm/pt-machine.h: Likewise.
1458 * sysdeps/cris/pt-machine.h: Likewise.
1459 * sysdeps/hppa/pt-machine.h: Likewise.
1460 * sysdeps/i386/i686/pt-machine.h: Likewise.
1461 * sysdeps/ia64/pt-machine.h: Likewise.
1462 * sysdeps/m68k/pt-machine.h: Likewise.
1463 * sysdeps/mips/pt-machine.h: Likewise.
1464 * sysdeps/powerpc/pt-machine.h: Likewise.
1465 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
1466 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
1467 * sysdeps/sh/pt-machine.h: Likewise.
1468 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
1469 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1470 * sysdeps/x86_64/pt-machine.h: Likewise.
1471
1472 * internals.h: Move testandset and __compare_and_swap prototypes
1473 to pt-machine.h.
1474
1bd8ff7b
AJ
14752002-03-03 Andreas Jaeger <aj@suse.de>
1476
1477 * errno.c: Include resolv.h to avoid warning.
1478
b863ccd7
UD
14792002-02-27 Ulrich Drepper <drepper@redhat.com>
1480
1481 * pthread.c [USE_TLS] (thread_self_stack): Correct check for upper
1482 stack limit.
1483
557fab43
UD
14842002-02-23 Ulrich Drepper <drepper@redhat.com>
1485
b6a0a996
UD
1486 * attr.c (pthread_getattr_np): Don't take thread descriptor size
1487 into account if USE_TLS.
1488 * manager.c (pthread_handle_create): Free TLS data structures if call
1489 failed. Pass correct stack to clone if USE_TLS.
1490 * sysdeps/i386/pt-machine.h: Handle multiple inclusion.
1491 * sysdeps/i386/i686/pt-machine.h: Likewise.
1492 * sysdeps/i386/tls.h: Unconditionally include <pt-machine.h>.
1493
557fab43
UD
1494 * descr.h (struct _pthread_descr_struct): Update p_header for TLS.
1495 Add p_stackaddr element #if USE_TLS.
1496 * internals.c: Include <tls.h>.
1497 * manager.c: Integrate creating and handling of thread descriptor
1498 for TLS.
1499 * pthread.c: Likewise.
1500 * sysdeps/i386/tls.h (tcbhead_t): Add self pointer.
1501 Include <linuxthreads/descr.h> only if TLS is really used.
1502 (GET_DTV): New macro.
1503 (TLS_INIT_TP): Initialize self pointer.
1504
232bd771
UD
15052002-02-17 Andreas Schwab <schwab@suse.de>
1506
1507 * signals.c (sigwait): Check for old sighandler being SIG_ERR,
1508 not NULL.
1509
aed283dd
UD
15102002-02-12 Ulrich Drepper <drepper@redhat.com>
1511
1512 * sysdeps/i386/tls.c (INSTALL_NEW_DTV): Define.
1513 (INSTALL_DTV): Adjust for being passed pointer to element with length.
1514
974ac3d6
UD
15152002-02-08 Ulrich Drepper <drepper@redhat.com>
1516
1517 * sysdeps/i386/tls.h (TLS_INIT_TP): Also initialize %gs.
1518
aed283dd 15192002-02-08 Richard Henderson <rth@redhat.com>
2a535bf6
UD
1520
1521 * sysdeps/alpha/elf/pt-initfini.c: Use \n\ for multiline string.
1522
67eb7235
UD
15232002-02-08 Ulrich Drepper <drepper@redhat.com>
1524
1525 * sysdeps/i386/tls.h: TLS cannot be supported with FLOATING_STACKS
1526 after all.
1527
1a70fdb3
AJ
15282002-02-07 H.J. Lu <hjl@gnu.org>
1529
1530 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Silence the
1531 gcc warning.
1532 (__pthread_spin_lock): Remove ".set noreorder".
1533 * sysdeps/mips/pt-machine.h (__compare_and_swap): Liekwise.
1534
a6049f98
AJ
15352002-02-05 H.J. Lu <hjl@gnu.org>
1536
1537 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Not use
1538 branch likely.
1539 * sysdeps/mips/pt-machine.h (testandset): Likewise.
1540 (__compare_and_swap): Likewise.
1541
cd30b01e
UD
15422002-02-07 Ulrich Drepper <drepper@redhat.com>
1543
1544 * internals.h: Move declarations/definitions of
1545 __pthread_initial_thread_bos, __pthread_initial_thread,
1546 __pthread_manager_thread_bos, __pthread_manager_thread_tos,
1547 __pthread_manager_thread, __pthread_nonstandard_stacks, STACK_SIZE,
1548 CURRENT_STACK_FRAME, __pthread_find_self, and thread_self...
1549 * descr.h: ...here.
1550 * sysdeps/i386/tls.h: Add TLS definitions also for !FLOATING_STACKS.
1551 Define THREAD_GETMEM accordingly.
1552
3fb55878
UD
15532002-02-06 Ulrich Drepper <drepper@redhat.com>
1554
8d4b5a8a
UD
1555 * sysdeps/i386/tls.h: Include <stddef.h> for size_t.
1556
3fb55878
UD
1557 * sysdeps/i386/tls.h: Define THREAD_DTV.
1558
535b764d
UD
15592002-02-04 Ulrich Drepper <drepper@redhat.com>
1560
1561 * internals.h: Move thread descriptor definition...
1562 * descr.h.: ...here. New file.
1563 * sysdeps/i386/tls.h: New file.
1564
654a7a0c
UD
15652002-02-01 H.J. Lu <hjl@gnu.org>
1566
1567 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Use a
1568 different register in the delayed slot. Use branch likely.
1569
1570 * sysdeps/mips/pt-machine.h (testandset): Call _test_and_set.
1571 (__compare_and_swap): Return 0 only when failed to compare. Use
1572 branch likely.
1573
fb23eb25
UD
15742002-02-01 Jakub Jelinek <jakub@redhat.com>
1575
1576 * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set,
1577 __pthread_kill_other_threads_np): Move to GLIBC_PRIVATE.
1578 * sysdeps/i386/i586/Versions: Move all symbols to GLIBC_PRIVATE.
1579 * sysdeps/i386/i686/Versions: Move all symbols to GLIBC_PRIVATE.
1580 * sysdeps/sparc/sparc32/sparcv9/Versions: New file.
1581 * sysdeps/sparc/sparc64/Versions: New file.
1582 * sysdeps/ia64/Versions: Move all symbols to GLIBC_PRIVATE.
1583
5688da55
UD
15842002-01-31 Ulrich Drepper <drepper@redhat.com>
1585
1586 * pthread.c: _dl_cpuclock_offset is not any longer a global variable
1587 in SHARED code, use GL(dl_cpuclock_offset).
1588
dde762a2
AJ
15892002-01-28 Andreas Jaeger <aj@suse.de>
1590
1591 * sysdeps/mips/pspinlock.c (__pthread_spin_init): Clear *LOCK to
1592 0. Patch by Machida Hiroyuki <machida@sm.sony.co.jp>.
1593
956f8acd
UD
15942002-01-16 Martin Schwidefsky <schwidefsky@de.ibm.com>
1595
dde762a2
AJ
1596 * sysdeps/s390/s390-32/pt-machine.h (MEMORY_BARRIER): Define.
1597 (CURRENT_STACK_FRAME): Remove duplicate definition.
1598 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
956f8acd 1599
01d1a5b6
UD
16002002-01-14 Martin Schwidefsky <schwidefsky@de.ibm.com>
1601
ec562b3d
UD
1602 * Makefile (CFLAGS-tst-cancel.c): Add -fno-inline-functions to prevent
1603 automatic inline.
01d1a5b6 1604
de13e6e7
UD
16052002-01-12 Andreas Schwab <schwab@suse.de>
1606
1607 * Makefile (test-srcs): Add tst-signal.
1608 (tests): Run tst-signal.
1609 (distribute): Add tst-signal.sh.
1610 * tst-signal.c, tst-signal.sh: New files.
1611
037af25e
AJ
16122002-01-14 Andreas Jaeger <aj@suse.de>
1613
1614 * sysdeps/x86_64/pt-machine.h (INIT_THREAD_SELF): Avoid warning.
1615
6c69f24a
UD
16162002-01-11 Andreas Schwab <schwab@suse.de>
1617
1618 * signals.c (sighandler): Initialize all elements to SIG_ERR.
1619 (__sigaction): Don't use value from sighandler if it is SIG_ERR.
1620
abd33689
UD
16212002-01-06 Richard Henderson <rth@redhat.com>
1622
1623 * sysdeps/alpha/elf/pt-initfini.c: New file.
1624
9403ec5d
AJ
16252001-12-29 Andreas Jaeger <aj@suse.de>
1626
1627 * Examples/ex9.c: Add noreturn attribute for thread.
1628 * Examples/ex10.c: Likewise.
1629 * Examples/ex13.c (thread_start): Likewise.
1630 * Examples/ex15.c (worker): Likewise.
1631
1632 * Examples/ex18.c: Include unistd.h for prototype of sleep.
1633
638621af
UD
16342001-12-14 Ulrich Drepper <drepper@redhat.com>
1635
1636 * man/pthread_atfork.man: Adjust description of mutex handling
1637 after fork for current implementation.
1638 * linuxthreads.texi: Likewise [PR libc/2519].
1639
2e22fed2
UD
16402001-12-13 Andreas Schwab <schwab@suse.de>
1641
1642 * specific.c (pthread_key_delete): Don't contact the thread
1643 manager if no threads have been created yet.
1644
abd33689 16452001-12-12 NIIBE Yutaka <gniibe@m17n.org>
2bfe5fd1
UD
1646
1647 * sysdeps/sh/pt-machine.h (INIT_THREAD_SELF): Added __volatile__
1648 qualifier to be safe.
1649
c3317d1e
UD
16502001-11-30 Andreas Schwab <schwab@suse.de>
1651
1652 * pthread.c (pthread_handle_sigcancel) [THREAD_SELF]: Double check
1653 that self is the manager thread, and initialize the thread
1654 register if not.
1655 (thread_self_stack) [THREAD_SELF]: New function to find self via
1656 stack pointer.
1657 * manager.c (pthread_handle_create): Don't block cancel signal any
1658 more.
1659
64753027
AJ
16602001-11-29 Andreas Jaeger <aj@suse.de>
1661
2e22fed2 1662 * sysdeps/x86_64/pt-machine.h: Use %gs as thread specific register.
64753027
AJ
1663 (THREAD_SELF): New.
1664 (INIT_THREAD_SELF): New.
1665 (THREAD_GETMEM): New.
c3317d1e 1666 (THREAD_GETMEM_NC):
64753027
AJ
1667 (THREAD_SETMEM): New.
1668 (THREAD_SETMEM_NC): New.
1669 (FLOATING_STACKS): Define.
1670 (ARCH_STACK_MAX_SIZE): Define.
1671
03a2c647
UD
16722001-11-28 Kaz Kylheku <kaz@ashi.footprints.net>
1673
1674 Bugfix to pthread_key_delete. It was iterating over the thread
1675 manager's linked list of threads, behind the thread manager's
1676 back causing a race. The fix is to have the manager iterate over
1677 the threads instead, using a new request type for doing so.
1678 * internals.h (struct pthread_request): New manager request type
1679 REQ_FOR_EACH_THREAD.
1680 * manager.c (pthread_for_each_thread): New function.
1681 (__pthread_manager): Handle new REQ_FOR_EACH_THREAD request.
1682 * specific.c (struct pthread_key_delete_helper_args): New type.
1683 (pthread_key_delete_helper): New static function.
1684 (pthread_key_delete): Use the new thread manager
1685 REQ_FOR_EACH_THREAD function to iterate over the threads and set
1686 the delete key slot to a null value in each thread.
1687 * Examples/ex18.c: New test.
1688 * Makefile (tests): Add ex18.
1689
cf6a2367
UD
16902001-11-22 Wolfram Gloger <wg@malloc.de>
1691
1692 * pthread.c (pthread_onexit_process): Don't call free
1693 after threads have been asynchronously terminated.
1694
1695 * manager.c (pthread_handle_exit): Surround cancellation
1696 of threads with __flockfilelist()/__funlockfilelist().
1697
30f5deff
AS
16982001-11-26 Andreas Schwab <schwab@suse.de>
1699
1700 * manager.c (pthread_handle_create): Start the child thread with
1701 the cancel signal blocked, so that it does not handle it before
1702 the thread register is set up. Save errno from failed clone call.
1703
4acda75c
UD
17042001-11-15 Ulrich Drepper <drepper@redhat.com>
1705
1706 * sysdeps/i386/i686/Implies: Removed.
1707 * sysdeps/i386/i686/Versions: New file.
1708
76f93292
AJ
17092001-10-31 Andreas Jaeger <aj@suse.de>
1710
1711 * sysdeps/x86_64/Makefile: Remove, we do not need it anymore.
1712
b61345a1
UD
17132001-10-05 Kevin Buettner <kevinb@cygnus.com>
1714
1715 * pthread.c (__linuxthread_pthread_sizeof_descr): Change name
1716 to __linuxthreads_pthread_sizeof_descr to match name used by
1717 symbol_list_arr[LINUXTHREADS_PTHREAD_SIZEOF_DESCR] in
1718 linuxthreads_db/td_symbol_list.c.
1719
2be2ce5f
AJ
17202001-09-22 Andreas Jaeger <aj@suse.de>
1721
1722 * linuxthreads/tst-context.c: Avoid compile warning.
1723
d8d373c5
AJ
17242001-09-20 Andreas Jaeger <aj@suse.de>
1725
1726 * shlib-versions: Add x86-64.
1727
c9cf6dde
AJ
17282001-09-19 Andreas Jaeger <aj@suse.de>
1729
1730 * sysdeps/x86_64/Makefile: New file.
1731 * sysdeps/x86_64/pspinlock.c: New file.
1732 * sysdeps/x86_64/pt-machine.h: New file.
1733
7aba050d
UD
17342001-09-12 Jakub Jelinek <jakub@redhat.com>
1735
1736 * sysdeps/pthread/timer_delete.c (timer_delete): Thread may be NULL
1737 for SIGEV_NONE.
1738 * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
1739
57642a78 17402001-09-11 Ulrich Drepper <drepper@redhat.com>
7aba050d 1741 Wolfram Gloger <wg@malloc.de>
57642a78
UD
1742
1743 * join.c: Protect all communications from and to manager with
1744 TEMP_FAILURE_RETRY.
1745 * manager.c: Likewise.
1746 * pthread.c: Likewise.
1747 * smeaphore.c: Likewise.
1748
746802f2
UD
17492001-08-29 Ulrich Drepper <drepper@redhat.com>
1750
1751 * spinlock.c (__pthread_lock): Top max_count value with
1752 MAX_ADAPTIVE_SPIN_COUNT.
1753 * internals.h (MAX_ADAPTIVE_SPIN_COUNT): Define if not already done.
1754
1755 * sysdeps/i386/i686/pt-machine.h (BUSY_WAIT_NOP): New macro to
1756 help P4.
1757
c06a49c5
UD
17582001-08-27 Jakub Jelinek <jakub@redhat.com>
1759
1760 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_t): Only define to
1761 non-opaque type if __USE_UNIX98.
1762
82ad8034
UD
17632001-08-26 Jakub Jelinek <jakub@redhat.com>
1764
1765 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_t): Define
1766 non-opaque lock types also if _IO_MTSAFE_IO is defined.
1767
edb63884
RM
17682001-08-23 Roland McGrath <roland@frob.com>
1769
1770 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start): Take
1771 new first argument, skip the cleanup handler if it's zero.
1772 (_LIBC_LOCK_RECURSIVE_INITIALIZER): New macro.
1773 (__libc_lock_define_initialized_recursive): Use it.
1774 * sysdeps/pthread/bits/stdio-lock.h: File removed.
1775 The sysdeps/generic file from the main tree now suffices.
1776
c12aa801
RM
17772001-08-22 Roland McGrath <roland@frob.com>
1778
1779 * sysdeps/pthread/bits/stdio-lock.h: Include <bits/libc-lock.h>
1780 instead of <pthread.h>.
1781 (_IO_lock_t): Define this typedef using __libc_lock_define_recursive.
1782 (_IO_lock_initializer): Add braces.
1783 (_IO_lock_lock): Use __libc_lock_lock_recursive.
1784 (_IO_lock_unlock): Use __libc_lock_unlock_recursive.
1785
1786 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_recursive_t): New type.
1787 (__libc_lock_define_initialized_recursive): Use it.
1788 (__libc_lock_init_recursive): Likewise.
1789 (__libc_lock_fini_recursive): Likewise.
1790 (__libc_lock_lock_recursive): Likewise.
1791 (__libc_lock_trylock_recursive): Likewise.
1792 (__libc_lock_unlock_recursive): Likewise.
1793 (__libc_lock_define_recursive): New macro.
1794
5db91571
UD
17952001-08-14 Jakub Jelinek <jakub@redhat.com>
1796
1797 * lockfile.c (__pthread_provide_lockfile): New variable.
1798 * pthread.c (__pthread_require_lockfile): New variable.
1799 * cancel.c (__pthread_require_lockfile): New variable.
1800
ad71126b
UD
18012001-07-31 Ulrich Drepper <drepper@redhat.com>
1802
e14b1447
UD
1803 * tst-context.c (threadfct): Initialize context before calling
1804 makecontext.
1805
ad71126b
UD
1806 * Examples/ex17.c: Make sure test thread is around long enough.
1807
045fcd26
UD
18082001-07-26 kaz Kojima <kkojima@rr.iij4u.or.jp>
1809
1810 * sysdeps/sh/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF): Defined.
1811
f369623d
UD
18122001-07-24 Ulrich Drepper <drepper@redhat.com>
1813
1814 * tst-context.c (main): Print explanation before bailing out
1815 because context handling is not supported.
1816
3afd9491
UD
18172001-07-23 Ulrich Drepper <drepper@redhat.com>
1818
06b5289f
UD
1819 * Makefile (tests): Add tst-context.
1820 * tst-context.c: New file.
1821
3afd9491
UD
1822 * sysdeps/pthread/bits/stdio-lock.h: Define
1823 _IO_cleanup_region_start_noarg.
1824
4b9afc43
UD
18252001-07-23 Jakub Jelinek <jakub@redhat.com>
1826
1827 * sysdeps/alpha/pt-machine.h (FLOATING_STACKS): Define.
1828 (ARCH_STACK_MAX_SIZE): Define.
1829 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
1830 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1831
8d42e2e5
UD
18322001-07-19 Jakub Jelinek <jakub@redhat.com>
1833
1834 * sysdeps/i386/useldt.h: Fix typo in ARCH_STACK_MAX_SIZE comment.
1835
1836 * sysdeps/ia64/pt-machine.h (FLOATING_STACKS): Define.
1837 (ARCH_STACK_MAX_SIZE): Define.
1838 * manager.c (pthread_allocate_stack): Handle FLOATING_STACKS with
1839 NEED_SEPARATE_REGISTER_STACK.
1840
774a8fe8
UD
18412001-07-16 Andreas Schwab <schwab@suse.de>
1842
1843 * Makefile (before-compile): Don't add $(objpfx)crti.o.
1844 (omit-deps): Add crti.
1845 ($(objpfx)libpthread.so): Depend on $(objpfx)crti.o, but make sure
1846 it is filtered out of the link command.
1847
778e0ef7
UD
18482001-07-16 Ulrich Drepper <drepper@redhat.com>
1849
774a8fe8 1850 * pthread.c (pthread_initialize): For FLOATING_STACKS don't bother
778e0ef7
UD
1851 to find the right value for __pthread_initial_thread_bos, it's not
1852 used. If not FLOATING_STACKS first run
1853 __pthread_init_max_stacksize.
1854
2879ae4a
UD
18552001-06-16 H.J. Lu <hjl@gnu.org>
1856
1857 * internals.h: Include <stackinfo.h>.
1858
1859 * attr.c: Don't include <stackinfo.h> here.
1860 * cancel.c: Likewise.
1861 * manager.c: Likewise.
1862 * pthread.c: Likewise.
1863 * ptlongjmp.c: Likewise.
1864
8fee1bb0
UD
18652001-03-23 Matthew Wilcox <willy@ldl.fc.hp.com>
1866
1867 * attr.c: Make _STACK_GROWS_UP work.
1868 * internals.h: Likewise.
1869 * manager.c: Likewise.
1870 * pthread.c: Likewise.
1871
2e92fd3c
UD
18722001-06-15 H.J. Lu <hjl@gnu.org>
1873
1874 * pthread.c (__pthread_reset_main_thread): Fix a typo.
1875
bad6065c
UD
18762001-02-02 John S. Marvin <jsm@udlkern.fc.hp.com>
1877
1878 * semaphore.h: Use struct _pthread_fastlock as an element of
1879 sem_t instead of an identical struct.
1880 * rwlock.c: Remove casts.
1881 * semaphore.c: Likewise.
1882
e856b72d
AJ
18832001-04-30 Alan Modra <amodra@one.net.au>
1884
1885 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: New.
1886
b912ca11
UD
18872001-05-25 Bruce Mitchener <bruce@cubik.org>
1888
1889 * linuxthreads.texi: Spelling corrections.
1890
17ffa498
UD
18912001-05-25 Ulrich Drepper <drepper@redhat.com>
1892
1893 * oldsemaphore.c (__old_sem_wait): Clear p_nextwaiting before
1894 returning successfully.
1895 Patch by Gene Cooperman <gene@ccs.neu.edu>.
1896
47e5d2a8
UD
18972001-05-24 Ulrich Drepper <drepper@redhat.com>
1898
1899 * spinlock.c (__pthread_lock) [HAS_COMPARE_AND_SWAP]: Before doing any
1900 serious work try once whether the lock is uncontested.
1901 Remove duplicate reading of __status before loop.
1902 Change suggested by Hans Boehm <hans_boehm@hp.com>.
1903
1904 * spinlock.h (__pthread_trylock): Remove need for oldstatus variable.
1905 (__pthread_alt_trylock): Likewise.
1906
9c4a5197
UD
19072001-05-01 Kaz Kylheku <kaz@ashi.footprints.net>
1908
1909 Memory barrier overhaul following line by line inspection.
1910 * mutex.c (pthread_once): Missing memory barriers added.
1911 * pthread.c (__pthread_wait_for_restart_signal,
1912 __pthread_timedsuspend_new, __pthread_restart_new): Added
1913 memory barriers ``just in case'' and for documentary value.
1914 * spinlock.c (__pthread_release): New inline function for releasing
1915 spinlock, to complement __pthread_acquire. Includes memory
1916 barrier prior to assignment to spinlock, and __asm __volatile
1917 dance to prevent reordering or optimization of the spinlock access.
1918 * spinlock.c (__pthread_unlock, __pthread_alt_lock,
1919 __pthread_alt_timedlock, __pthread_alt_unlock,
1920 __pthread_compare_and_swap): Updated to use new __pthread_release
1921 instead of updating spinlock directly.
1922 * spinlock.c (__pthread_lock, __pthread_unlock, wait_node_alloc,
1923 wait_node_free, wait_node_dequeue, __pthread_alt_lock,
1924 __pthread_alt_timedlock, __pthread_alt_unlock, __pthread_acquire):
1925 Memory barrier overhaul. Lots of missing memory barriers added,
1926 a couple needless ones removed.
1927 * spinlock.c (__pthread_compare_and_swap): testandset optimization
1928 removed, just calls __pthread_acquire, which has the new read
1929 barrier in it before its testandset.
1930
f1d71039
RM
19312001-05-20 Roland McGrath <roland@frob.com>
1932
1933 * Makeconfig: New file, variables used to be in main libc Makeconfig.
1934
0e47171f
GK
19352001-05-09 Geoff Keating <geoffk@redhat.com>
1936
f1d71039 1937 * sysdeps/powerpc/pt-machine.h
0e47171f
GK
1938 (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): Define.
1939 (__compare_and_swap): Remove memory barriers.
1940 (__compare_and_swap_with_release_semantics): New function.
1941
dcea709a
AJ
19422001-04-24 Andreas Jaeger <aj@suse.de>
1943
1944 * wrapsyscall.c: send* and recv* return ssize_t.
1945
1946 * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Unlock the
1947 mutex instead of double locking it.
1948 Reported by Pierre Artaud <partaud@sodatec.com>.
1949
3b5c1b57
UD
19502001-04-23 Ulrich Drepper <drepper@redhat.com>
1951
44c51e9a
UD
1952 * sysdeps/pthread/getcpuclockid.c: Make function generic, test
1953 using #ifdef whether the clock is available.
1954 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: Removed.
1955
295125c5
UD
1956 * sysdeps/ia64/Versions: New file.
1957
7e946302
UD
1958 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init): We don't
1959 have to call __gmon_start__ in the libpthread DSO.
1960 * sysdeps/pthread/pt-initfini.c (_init): Likewise.
b5edfe61 1961
3b5c1b57
UD
1962 * Makefile (libpthread-routines): Add ptclock_gettime and
1963 ptclock_settime.
1964 * internals.h: Don't use cpuclock-init.h definitions, use
1965 hp-timing.h definitions.
1966 * pthread.c: Likewise.
1967 * manager.c: Likewise.
1968 * ptclock_gettime.c: New file.
1969 * ptclock_settime.c: New file.
18ac1129
UD
1970 * internals.h: Fix parameter type for __pthread_clock_gettime and
1971 __pthread_clock_settime.
3b5c1b57
UD
1972
1973 * sysdeps/i386/i586/ptclock_gettime.c: Removed.
1974 * sysdeps/i386/i586/ptclock_settime.c: Removed.
1975 * sysdeps/i386/i586/Makefile: Removed.
1976
a3bbce5b
UD
19772001-04-22 Ulrich Drepper <drepper@redhat.com>
1978
1979 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_ASYNCH_IO.
1980 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1981
e6dcf352
AJ
19822001-04-21 Andreas Jaeger <aj@suse.de>
1983
f9e1d149
AJ
1984 * sysdeps/pthread/timer_routines.c (thread_func): Add noreturn
1985 attribute, remove statements that will never be executed.
d8a60a15 1986 (thread_func): Remove mutex_unlock call since it's never executed.
d6f86085 1987 (thread_func): Fix comment as suggested by Jakub Jelinek.
f9e1d149 1988
159a2e1a
AJ
1989 * manager.c (__pthread_manager): Add noreturn
1990 attribute.
1991 (pthread_start_thread): Likewise, remove return statement.
1992 (pthread_start_thread_event): Likewise.
1993 Add noreturn attribute for pthread_handle_exit.
1994 * weaks.c: Add noreturn attribute for pthread_exit.
1995
e6dcf352
AJ
1996 * internals.h: Add __pthread_clock_gettime and
1997 __pthread_clock_settime prototypes.
1998
5fc48cd7
UD
19992001-04-21 Ulrich Drepper <drepper@redhat.com>
2000
2001 * internals.h: Include <cpuclock-init.h>.
2002 (struct _pthread_descr_struct): Add p_cpuclock_offset field if
2003 CPUCLOCK_VARDEF is defined.
2004 * pthread.c (__pthread_initialize_minimal): Initialize
2005 p_cpuclock_offset field for main thread if CPUCLOCK_INIT is defined.
2006 * manager.c (pthread_start_thread): Set p_cpuclock_offset field
2007 for new thread to current CPU clock value.
2008
2009 * sysdeps/i386/useldt.h: Extend all the macros to handle 8-byte values.
2010
2011 * sysdeps/i386/i586/Makefile: New file.
2012 * sysdeps/i386/i586/Versions: New file.
2013 * sysdeps/i386/i586/ptclock_gettime.c: New file.
2014 * sysdeps/i386/i586/ptclock_settime.c: New file.
2015 * sysdeps/i386/i686/Implies: New file.
2016
9bab9806
UD
20172001-04-18 Jakub Jelinek <jakub@redhat.com>
2018
2019 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Put specs into
2020 $generated, not $postclean-generated.
2021
80ff3e34
AJ
20222001-04-18 Andreas Jaeger <aj@suse.de>
2023
2024 * Makefile (otherlibs): Added.
2025
ddad941e
UD
20262001-04-18 Jakub Jelinek <jakub@redhat.com>
2027
2028 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
2029
9b7ee67e
UD
20302001-04-16 Ulrich Drepper <drepper@redhat.com>
2031
2032 * signals.c (sigwait): NSIG is no signal number. Block all
2033 signals while in signal handler for signals in SET.
2034 Patch by Manfred Spraul <manfred@colorfullife.com>.
2035
b721a2c0
UD
20362001-04-12 Ulrich Drepper <drepper@redhat.com>
2037
a08877d0
UD
2038 * tst-cancel.c: Disable most tests. Add new test where all
2039 cleanup handlers must run.
2040 * Makefile (tests): Add tst-cancel again.
2041
2042 * cancel.c (__pthread_perform_cleanup): Correct condition for
2043 leaving cleanup loop early.
2044
b775be64
UD
2045 * sysdeps/i386/Makefile: Make sure gcc uses a frame pointer for
2046 all the files which use CURRENT_STACK_FRAME.
b721a2c0
UD
2047 * sysdeps/i386/pt-machine.h (CURRENT_STACK_FRAME): Define using
2048 __builtin_frame_address.
2049 * sysdeps/i386/i686/pt-machine.h: Likewise.
2050
7d4c3e67
UD
20512001-04-11 Ulrich Drepper <drepper@redhat.com>
2052
9dd7309c
UD
2053 * Makefile (tests): Comment out tst-cancel for now.
2054
7d4c3e67
UD
2055 * tst-cancel.c (main): Cleanup 4 is supposed to run. Create
2056 temporary file in object directory.
2057 * Makefile: Don't allow inlining when compiling tst-cancel.c.
2058 Pass $(objpfx) to tst-cancel.
2059
43df859b
UD
20602001-04-11 David S. Miller <davem@redhat.com>
2061
2062 * sysdeps/sparc/sparc32/pt-machine.h (stack_pointer): Advance
2063 up closer to user local variables so that new cleanup heuristics work.
2064 * sysdeps/sparc/sparc64/pt-machine.h (stack_pointer): Likewise.
2065
95fe9d95
UD
20662001-04-11 Ulrich Drepper <drepper@redhat.com>
2067
2068 * cancel.c (_pthread_cleanup_push): Catch invalid __prev buffer
2069 and remove it.
2070 (_pthread_cleanup_push_defer): Likewise.
2071
2072 * tst-cancel.c (main): Fix loop printing cleanup output.
2073
07bccb46
UD
20742001-04-10 kaz Kojima <kkojima@rr.iij4u.or.jp>
2075
2076 * sysdeps/sh/pspinlock.c (__pthread_spin_lock): Fix a reverse
2077 test.
2078 (__pthread_spin_trylock): Likewise.
2079 * sysdeps/sh/pt-machine.h (testandset): Likewise.
2080
58f46c79
UD
20812001-04-10 Ulrich Drepper <drepper@redhat.com>
2082
2083 * join.c (pthread_exit): Move code to new function __pthread_do_exit
2084 which takes an extra parameter with the current frame pointer.
2085 Call new function with CURRENT_STACK_FRAME.
2086 (__pthread_do_exit): New function. Call __pthread_perform_cleanup
2087 with the new parameter.
2088 (pthread_join): Call __pthread_do_exit instead of pthread_exit.
2089 * cancel.c (__pthread_perform_cleanup): Takes extra parameter. Use
2090 this parameter as the initial value the cleanup handler records are
2091 compared against. No active cleanup handler record must have an
2092 address lower than the previous one and the initial record must be
2093 above (below on PA) the frame address passed in.
2094 (pthread_setcancelstate): Call __pthread_do_exit instead of
2095 pthread_exit.
2096 (pthread_setcanceltype): Likewise.
2097 (pthread_testcancel): Likewise.
2098 (_pthread_cleanup_pop_restore): Likewise.
2099 * condvar.c (pthread_cond_wait): Likewise.
2100 (pthread_cond_timedwait_relative): Likewise.
2101 * manager.c (pthread_start_thread): Likewise.
2102 * oldsemaphore.c (__old_sem_wait): Likewise.
2103 * pthread.c (pthread_handle_sigcancel): Likewise.
2104 * semaphore.c (__new_sem_wait): Likewise.
2105 (sem_timedwait): Likewise.
2106 * ptlongjmp.c (pthread_cleanup_upto): Also use current stack frame
2107 to limit the cleanup handlers which get run.
2108 * internals.h: Add prototype for __pthread_do_exit. Adjust prototype
2109 for __pthread_perform_cleanup.
2110
2111 * Makefile (tests): Add tst-cancel.
2112 * tst-cancel.c: New file.
2113
eacde9d0
UD
21142001-04-08 Hans-Peter Nilsson <hp@axis.com>
2115
2116 * sysdeps/cris/pt-machine.h: New file.
2117 * sysdeps/cris/pspinlock.c: New file.
2118
21192001-04-09 Hans-Peter Nilsson <hp@axis.com>
2120
2121 * shlib-versions: Add case for Linux on CRIS.
2122
93a4b7ca
UD
21232001-03-26 Ulrich Drepper <drepper@redhat.com>
2124
2125 * attr.c (pthread_getattr_np): Correct computation of stack size
2126 for machiens with register stack.
2127
2128 * Examples/ex17.c (main): Correct detection of failed mmap call.
2129
844b79a6
UD
21302001-03-21 Jakub Jelinek <jakub@redhat.com>
2131
2132 * pthread.c (__pthread_initialize_manager): Fix a typo.
2133
cf4431ed
UD
21342001-03-21 Jakub Jelinek <jakub@redhat.com>
2135
2136 * attr.c (__pthread_attr_setstack): Fix alignment check.
2137 (pthread_getattr_np): __stackaddr is top of stack, not bottom.
2138 * Makefile (tests): Add ex17 test.
2139 * Examples/ex17.c: New test.
2140
373e6a51
UD
21412001-03-20 Ulrich Drepper <drepper@redhat.com>
2142
481b550f 2143 * Makefile: Define -D_RPC_THREAD_SAFE_ for cancel.c.
373e6a51 2144 * cancel.c (__pthread_perform_cleanup): Call __rpc_thread_destroy.
f1e4a4a4 2145 * sysdeps/pthread/bits/libc-tsd.h: Define _LIBC_TSD_KEY_VARS.
373e6a51 2146
639c3248
UD
21472001-03-18 Ulrich Drepper <drepper@redhat.com>
2148
2149 * Makefile: When generating DSO link with libc_nonshared.a.
2150
7c91639e
UD
21512001-02-26 Jakub Jelinek <jakub@redhat.com>
2152
2153 * signals.c (pthread_sighandler): Use CALL_SIGHANDLER.
2154
a66f0958
UD
21552001-02-23 Jakub Jelinek <jakub@redhat.com>
2156
2157 * internals.h (__pthread_init_max_stacksize): New prototype.
2158 * attr.c (__pthread_attr_setstacksize): Call
2159 __pthread_init_max_stacksize if not yet initialized.
2160 * pthread.c (__pthread_init_max_stacksize): New function.
2161 (__pthread_initialize_manager): Call it.
2162 Patch by <dtc@cmucl.cons.org>.
2163
aeba9785
UD
21642001-03-16 Ulrich Drepper <drepper@redhat.com>
2165
2166 * attr.c (pthread_getattr_np): Fix __stacksize computation for IA-64.
2167
136d4332
UD
21682001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
2169
2170 * shlib-versions: Add rule for Linux on 64 bit S/390.
2171 * sysdeps/s390/s390-64/pt-machine.h: New file.
2172 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
2173
21742001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
2175
2176 * sysdeps/s390/pt-machine.h: Move to...
2177 * sysdeps/s390/s390-32/pt-machine.h: ...here.
2178 Add defines for FLOATING_STACK and ARCH_STACK_MAX_SIZE.
2179
3bf927cb
UD
21802001-03-15 Ulrich Drepper <drepper@redhat.com>
2181
2182 * Versions [libpthread] (GLIBC_2.2.3): Add pthread_getattr_np.
2183 * attr.c: Implement pthread_getattr_np.
2184 * sysdeps/pthread/pthread.h: Add prototype for pthread_getattr_np.
2185 * internals.h (struct _pthread_descr_struct): Add p_inheritsched.
2186 * manager.c (pthread_handle_create): Initialize p_inheritsched.
2187
832c025e
AJ
21882001-03-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
2189
3bf927cb 2190 * sysdeps/unix/sysv/linux/s390/pt-initfini.c: Use 0x07 padding for
832c025e
AJ
2191 code alignment.
2192
08b3d7ad
UD
21932001-02-20 Hans Boehm <hans_boehm@hp.com>
2194
2195 * manager.c (manager_mask): Removed static vesion. Now always local
2196 to __pthread_manager().
2197 (manager_mask_all): Removed completely.
2198 (__pthread_manager): Remove manager_mask_all initialization.
2199 (pthread_handle_create): Remove code to set and reset signal mask
2200 around __clone2() calls.
2201
4c48dc93
UD
22022001-02-17 Jakub Jelinek <jakub@redhat.com>
2203
2204 * spinlock.c (__pthread_lock): Force lock->__status to be read from
2205 memory on every spin.
2206
596b2f0e
AJ
22072001-02-10 Andreas Jaeger <aj@suse.de>
2208
2209 * Makefile (extra-objs): New.
2210
257bdad0
UD
22112001-02-09 Jakub Jelinek <jakub@redhat.com>
2212
2213 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Add
2214 __pthread_initialize_minimal prototype.
2215
441f7d1e
UD
22162001-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
2217
2218 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
2219
d7fce7e0
UD
22202001-02-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
2221
2222 * sysdeps/unix/sysv/linux/s390/pt-initfini.c: New file.
2223
672fd41b
UD
22242001-02-06 Ulrich Drepper <drepper@redhat.com>
2225
2226 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: First attempt to fix the
2227 broken code. Patch by Jes Sorensen.
2228
eb8ea10a
AJ
22292001-02-06 Andreas Jaeger <aj@suse.de>
2230
2231 * sysdeps/pthread/pthread.h: Move __pthread_initialize from here
2232 to...
2233 * internals.h: ...here.
2234
5a35dfca
UD
22352001-02-05 Jes Sorensen <jes@linuxcare.com>
2236
2237 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
2238
e4c785c8
UD
22392001-02-02 Ulrich Drepper <drepper@redhat.com>
2240
2241 * Versions: Remove __pthread_initialize_minimal.
2242
b71e7ce8
UD
22432001-02-01 Ulrich Drepper <drepper@redhat.com>
2244
2245 * Makefile: Add rules to build crti.o and make it being used in
2246 building libpthread.so.
2247 * sysdeps/i386/Makefile: New file.
2248 * sysdeps/pthread/pt-initfini.c: New file.
2249
2250 * pthread.c: Cleanups.
2251
7dcc4ea0
AJ
22522001-01-28 Andreas Jaeger <aj@suse.de>
2253
2254 * oldsemaphore.c (__old_sem_init): Adjust for last change.
2255 * sysdeps/pthread/bits/libc-lock.h: Likewise.
2256 * spinlock.c: Likewise.
2257
48ba4bd2
UD
22582001-01-28 Ulrich Drepper <drepper@redhat.com>
2259
2260 * sysdeps/pthread/bits/initspin.h: Make all names namespace clean.
2261 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
2262 * manager.c: Adjust for namespace cleanup in bits/initspin.h.
2263 * pthread.c: Likewise.
2264 * spinlock.h: Likewise.
2265 * sysdeps/pthread/pthread.h: Likewise.
2266
edf9cc89
UD
22672001-01-26 Ulrich Drepper <drepper@redhat.com>
2268
61f9d0a3
UD
2269 * sysdeps/pthread/bits/pthreadtypes.h: Define pthread_attr_t also
2270 as struct __pthread_attr_s.
2271
edf9cc89
UD
2272 * semaphore.h (sem_t): Cleanup namespace, rename status and
2273 spinlock elements.
2274
3f738366
UD
22752001-01-13 Jakub Jelinek <jakub@redhat.com>
2276
2277 * pthread.c (pthread_onexit_process): Clear
2278 __pthread_manager_thread_bos after freeing it.
2279 * Makefile (tests): Add ex16.
2280 * Examples/ex16.c: New file.
2281
5ef50d00
UD
22822001-01-11 Jakub Jelinek <jakub@redhat.com>
2283
2284 * Makefile (CFLAGS-pthread.c): Pass -DHAVE_Z_NODELETE if ld supports
2285 -z nodelete.
2286 * pthread.c (pthread_exit_process): Rename to...
2287 (pthread_onexit_process): ...this.
2288 (pthread_atexit_process, pthread_atexit_retcode): New.
2289 (pthread_initialize): Call __cxa_atexit instead of __cxa_on_exit
2290 and only if HAVE_Z_NODELETE is not defined.
2291 (__pthread_initialize_manager): Register pthread_atexit_retcode
2292 with __cxa_atexit.
2293
7e36861e
UD
22942001-01-11 Ulrich Drepper <drepper@redhat.com>
2295
2296 * pthread.c (pthread_initialize): Use __cxs_on_exit not __cxa_atexit.
2297
22982001-01-11 Jakub Jelinek <jakub@redhat.com>
2299
2300 * Makefile (tests): Add ex15.
2301 * Examples/ex15.c: New test.
2302
1950ebc6
UD
23032001-01-08 Ulrich Drepper <drepper@redhat.com>
2304
2305 * pthread.c (pthread_exit_process): Free memory allocated for
2306 manager stack.
2307
af8240eb 23082000-12-31 Ulrich Drepper <drepper@redhat.com>
1c566118 2309
af8240eb
UD
2310 * manager.c (pthread_alloca_stack): Remove MAP_FIXED from mmap calls.
2311 (pthread_free): Always unmap the stack. It's safe now that we don't
2312 use MAP_FIXED to allocate stacks.
1c566118 2313
41b64fc4
UD
23142000-12-31 Ulrich Drepper <drepper@redhat.com>
2315
2316 * sysdeps/powerpc/pspinlock.c: Don't include pt-machine.h here.
2317
2318 * manager.c (pthread_allocate_stack): Prepare for removal of MAP_FIXED.
2319
09f5e163
UD
23202000-11-15 Wolfram Gloger <wg@malloc.de>
2321
2322 * manager.c (pthread_free): [!FLOATING_STACKS]: Only remap the
2323 stack to PROT_NONE, don't unmap it, avoiding collisions with malloc.
2324
27ee0a55
AJ
23252000-12-27 Andreas Jaeger <aj@suse.de>
2326
2327 * Examples/ex13.c: Make local functions static.
2328 * ecmutex.c: Likewise.
784d802e 2329 * joinrace.c: Likewise.
27ee0a55
AJ
2330 * Examples/ex14.c: Likewise.
2331
2332 * Examples/ex2.c: Make local functions static; reformat.
2333 * Examples/ex1.c: Likewise.
2334 * Examples/ex4.c: Likewise.
2335 * Examples/ex5.c: Likewise.
2336 * Examples/ex7.c: Likewise.
2337
2338 * oldsemaphore.c: Add prototypes to shut up GCC.
2339 * pt-machine.c: Likewise.
2340
2341 * weaks.c: Add prototype for pthread_exit.
2342
2343 * internals.h: Add some prototypes, format prototypes and add
2344 missing externs.
2345 Move __libc_waitpid prototype to include/sys/wait.h.
2346
2347 * rwlock.c: Include <bits/libc-lock.h> for prototypes.
2348 * mutex.c: Likewise.
2349 * specific.c: Likewise.
2350 * ptfork.c: Likewise.
2351
2352 * lockfile.c: Include internals.h to get prototypes.
2353 * events.c: Likewise.
2354 * sysdeps/alpha/pspinlock.c: Likewise.
2355 * sysdeps/arm/pspinlock.c: Likewise.
2356 * sysdeps/hppa/pspinlock.c: Likewise.
2357 * sysdeps/i386/pspinlock.c: Likewise.
2358 * sysdeps/ia64/pspinlock.c: Likewise.
2359 * sysdeps/m68k/pspinlock.c: Likewise.
2360 * sysdeps/mips/pspinlock.c: Likewise.
2361 * sysdeps/powerpc/pspinlock.c: Likewise.
2362 * sysdeps/s390/pspinlock.c: Likewise.
2363 * sysdeps/sh/pspinlock.c: Likewise.
2364 * sysdeps/sparc/sparc32/pspinlock.c: Likewise.
2365 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
2366 * sysdeps/sparc/sparc64/pspinlock.c: Likewise.
2367
33c80ad7
UD
23682000-12-27 Ulrich Drepper <drepper@redhat.com>
2369
21112857
UD
2370 * attr.c (__pthread_attr_setstack): Fix setting of __stackaddr element.
2371 (__pthread_attr_getstack): Return correct address.
2372 Add warnings for using pthread_attr_getstackaddr and
33c80ad7
UD
2373 pthread_attr_setstackaddr.
2374
a6d950b9
UD
23752000-12-26 Ulrich Drepper <drepper@redhat.com>
2376
2377 * Examples/ex6.c (test_thread): Make static.
2378 * Examples/ex12.c (test_thread): Make static and add noreturn
2379 attribute.
2380
ba908190
UD
23812000-12-18 Jes Sorensen <jes@linuxcare.com>
2382
2383 * linuxthreads/sysdeps/ia64/pt-machine.h: __compare_and_swap
2384 and compare_and_swap_with_release_semantics returns int not long.
2385
8cb019ed
AJ
23862000-12-17 Andreas Jaeger <aj@suse.de>
2387
2388 * sysdeps/s390/pt-machine.h (testandset): Use long int as return
2389 value.
2390 * sysdeps/arm/pt-machine.h (testandset): Likewise.
2391 * sysdeps/hppa/pt-machine.h (testandset): Likewise.
2392 * sysdeps/m68k/pt-machine.h (testandset): Likewise.
2393 * sysdeps/sh/pt-machine.h (testandset): Likewise.
2394 * sysdeps/sparc/sparc32/pt-machine.h (testandset): Likewise.
2395 * sysdeps/sparc/sparc64/pt-machine.h (testandset): Likewise.
2396
927a8431
UD
23972000-12-17 Ulrich Drepper <drepper@redhat.com>
2398
2399 * sysdeps/i386/pt-machine.h (testandset): Adjust for prototype change.
2400 * sysdeps/i386/i686/pt-machine.h (testandset): Likewise.
2401
b6e20712
AJ
24022000-12-17 Andreas Jaeger <aj@suse.de>
2403
2404 * internals.h: Add prototypes for testandset and
2405 __compare_and_swap to shut up gcc warnings.
2406
e3690263
UD
24072000-12-06 Wolfram Gloger <wg@malloc.de>
2408
2409 * join.c (pthread_detach): Allow case where the thread has already
2410 terminated.
2411
2e3b9976
AJ
24122000-12-05 Andreas Jaeger <aj@suse.de>
2413
2414 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Don't set mips2.
2415 * sysdeps/mips/pt-machine.h (testandset): Likewise.
2416 (__compare_and_swap): Likewise.
f172bca0 2417 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
2e3b9976 2418
59553897
UD
24192000-11-20 Jakub Jelinek <jakub@redhat.com>
2420
2421 * Examples/ex3.c (main): Cast int to long before casting to void *.
2422 (search): Cast void * to long, not int.
2423 * Examples/ex8.c (main, thread): Similarly.
2424 * Examples/ex11.c (main): Similarly.
2425 * Examples/ex14.c (worker, do_test): Similarly.
2426 * ecmutex.c (worker, do_test): Similarly.
2427 (nlocks): Cast to int.
2428
d3d99893
UD
24292000-11-08 Bruce Mitchener <bruce@cubik.org>
2430
2431 * linuxthreads.texi: Add documentation for pthreads attributes
2432 guardsize, stackaddr, stacksize, and stack. Fix typo in previous
2433 patch. Document pthread_[sg]etconcurrency(). Mark
2434 pthread_mutexattr_[sg]ettype() as POSIX rather than GNU.
2435
a1e88b9a
UD
24362000-11-07 Ulrich Drepper <drepper@redhat.com>
2437
2438 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
2439 Don't define it.
2440 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2441 Reported by Christopher Yeoh <cyeoh@linuxcare.com.au>.
2442
632b6761
UD
24432000-11-06 Ulrich Drepper <drepper@redhat.com>
2444
2445 * cancel.c (pthread_cancel): Always set p_canceled, even if we are
2446 not doing it right now.
2447 Reported by Kaz Kylheku <kaz@ashi.footprints.net>.
2448
02fb3d17
UD
24492000-10-30 Ulrich Drepper <drepper@redhat.com>
2450
2451 * Examples/ex4.c (main): Don't use exit() to avoid warning with
2452 broken compilers.
2453
c6042c73
UD
24542000-10-29 Ulrich Drepper <drepper@redhat.com>
2455
31879cd8 2456 * attr.c (__pthread_attr_setguardsize): Don't round guardsize
d3d99893 2457 here. Reported by Bruce Mitchener <bruce@cubik.org>.
31879cd8 2458
c6042c73
UD
2459 * linuxthreads.texi: Changes terminology to 'type' from 'kind' when
2460 discussing mutexes. (As per the Unix98 name for the API.)
2461 Changes documentation for pthread_mutexattr_setkind_np() and
2462 pthread_mutexattr_getkind_np() over to the Unix98 APIs for the
2463 same: pthread_mutexattr_settype() and pthread_mutexattr_gettype().
2464 Changes references to PTHREAD_MUTEXATTR_FAST_NP to
2465 PTHREAD_MUTEXATTR_ADAPTIVE_NP.
2466 Begins to introduce discussion of the ``timed'' mutex type. This
2467 discussion is currently incomplete.
d3d99893 2468 Patch by Bruce Mitchener <bruce@cubik.org>.
c6042c73 2469
1267f93e
UD
24702000-10-26 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
2471 Yutaka Niibe <gniibe@chroot.org>
2472
2473 * sysdeps/sh/pt-machine.h (testandset): Since the operand of TAS.B
2474 has restrictions, use register.
2475
fd665070
UD
24762000-10-23 Andreas Schwab <schwab@suse.de>
2477
2478 * Examples/ex14.c (TIMEOUT): Override default timeout.
2479
6a14016e
UD
24802000-10-16 Ulrich Drepper <drepper@redhat.com>
2481
2482 * specific.c: Protect tsd array modification in thread data
2483 structures by getting the thread lock in pthread_key_delete and
2484 __pthread_destroy_specifics.
2485 Patch by Wolfram Gloger <Wolfram.Gloger@dent.med.uni-muenchen.de>.
2486
b15cb495
UD
24872000-10-12 Alan Modra <alan@linuxcare.com.au>
2488
2489 * sysdeps/pthread/bits/initspin.h: New file.
2490 * spinlock.h: Move LOCK_INITIALIZER definition to <bits/initspin.h>.
2491 (__pthread_init_lock): Initialize lock with LT_SPINLOCK_INIT.
2492 (__pthread_alt_init_lock): Likewise.
2493 (__pthread_alt_trylock): Release lock with LT_SPINLOCK_INIT.
2494
24952000-10-12 David Huggins-Daines <dhd@linuxcare.com>
2496
2497 * oldsemaphore.c (__old_sem_init): Release lock with
2498 LT_SPINLOCK_INIT, not zero.
2499 * spinlock.c (__pthread_unlock): Likewise.
2500 (__pthread_alt_lock): Likewise.
2501 (__pthread_alt_timedlock): Likewise.
2502 (__pthread_alt_unlock): Likewise.
2503 * sysdeps/pthread/bits/libc-lock.h: Initialize locks with
2504 LT_SPINLOCK_INIT if it is non-zero. Likewise for init-once flags.
2505 * sysdeps/pthread/pthread.h: Include bits/initspin.h. Use
2506 LT_SPINLOCK_INIT do initialize spinlocks not 0.
2507
25082000-10-12 David Huggins-Daines <dhd@linuxcare.com>
2509
2510 * shlib-versions: Add version definitions for hppa-linux.
2511
25122000-10-12 Alan Modra <alan@linuxcare.com.au>
2513
2514 * sysdeps/hppa/pspinlock.c: New file.
2515 * sysdeps/hppa/pt-machine.h: New file.
2516 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: New file.
2517
172b90bb
UD
25182000-10-05 Jakub Jelinek <jakub@redhat.com>
2519
2520 * mutex.c (__pthread_mutex_destroy): Correct test of
2521 busy mutex for mutexes using alternate fastlocks.
2522 Patch by dtc@cmucl.cons.org.
2523
a0386a0d
UD
25242000-09-28 Martin Schwidefsksy <schwidefsky@de.ibm.com>
2525
2526 * sysdeps/s390/pt-machine.h: Make %a0 the thread register.
2527
8cab1d38
UD
25282000-09-28 Ulrich Drepper <drepper@redhat.com>
2529
c0ac34e4
UD
2530 * mutex.c (__pthread_mutex_unlock): For PTHREAD_MUTEX_RECURSIVE_NP
2531 test for owner first.
2532 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2533
8cab1d38
UD
2534 * cancel.c (pthread_cancel): Don't do anything if cancelation is
2535 disabled.
2536
7c3dac53
UD
25372000-09-26 Ulrich Drepper <drepper@redhat.com>
2538
75dbc100
UD
2539 * spinlock.h (__pthread_set_own_extricate_if): Optimize a bit.
2540 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2541
b0557314
UD
2542 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
2543 _POSIX_MONOTONIC_CLOCK.
2544
7c3dac53
UD
2545 * spinlock.h (__pthread_set_own_extricate_if): Add back locking
2546 and explain why.
2547
b025588a
AJ
25482000-09-20 Andreas Jaeger <aj@suse.de>
2549
2550 * pthread.c [!__ASSUME_REALTIME_SIGNALS]: Make inclusion of
2551 "testrtsig.h" conditional.
2552
b81c8961
UD
25532000-09-11 Ulrich Drepper <drepper@redhat.com>
2554
2555 * sysdeps/pthread/pthread.h: Declare pthread_attr_getstack and
2556 pthread_attr_setstack.
2557 * Versions [libpthread] (GLIBC_2.2): Export pthread_attr_getstack and
2558 pthread_attr_setstack.
2559 * attr.c (pthread_attr_getstack, pthread_attr_setstack): New functions.
2560
42437ed1
UD
25612000-09-05 Ulrich Drepper <drepper@redhat.com>
2562
f3d581b8
UD
2563 * Examples/ex14.c: New file.
2564 * Makefile (tests): Add ex14.
2565
42437ed1
UD
2566 * mutex.c (__pthread_mutex_unlock): Correct test for already unlocked
2567 mutex. Patch by dtc@cmucl.cons.org.
2568
2569 * ecmutex.c: New file.
f3d581b8 2570 * Makefile (tests): Add ecmutex.
42437ed1 2571
c743652a
UD
25722000-09-04 H.J. Lu <hjl@gnu.org>
2573
2574 * attr.c (__pthread_attr_setguardsize): Use page_roundup
2575 instead of roundup to round up to the page size.
2576
2e4581e4
UD
25772000-09-03 Mark Kettenis <kettenis@gnu.org>
2578
2579 * manager.c (pthread_exited): Correctly report event as TD_REAP
2580 instead of TD_DEATH. Fix comments.
2581
5afe6c02
UD
25822000-09-03 Ulrich Drepper <drepper@redhat.com>
2583
2584 * spinlock.h (testandset): Add cast to avoid warning.
2585 Patch by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
2586
5376629d
AJ
25872000-09-02 Andreas Jaeger <aj@suse.de>
2588
2589 * sysdeps/pthread/timer_routines.c: Include stdlib.h for abort
2590 prototype.
2591
a8e58aa9
UD
25922000-09-01 Ulrich Drepper <drepper@redhat.com>
2593
aebb1faa
UD
2594 * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start):
2595 Fix typo in last patch (_mode -> _flags).
2596
a8e58aa9
UD
2597 * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start):
2598 Provide definition which respects _IO_USER_LOCK flag.
2599
47cae281
UD
26002000-08-30 Ulrich Drepper <drepper@redhat.com>
2601
2602 * manager.c (pthread_allocate_stack): Clear descriptor only if not
2603 mmaped.
2604
b7fb789d
UD
26052000-08-25 Ulrich Drepper <drepper@redhat.com>
2606
ad7534c8
UD
2607 * Makefile: Add rules to build and run unload.
2608 * unload.c: New file.
2609
2610 * pthread.c (pthread_exit_process): Move thread_self use inside `if'.
7045878b 2611
b7fb789d
UD
2612 * sysdeps/pthread/pthread.h
2613 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Defined.
2614 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: Defined.
2615
7e98470d
AJ
26162000-08-24 Andreas Jaeger <aj@suse.de>
2617
c5ded983
AJ
2618 * Examples/ex13.c: Include <string.h> for strerror prototype and
2619 <stdlib.h> for abort prototype.
7e98470d
AJ
2620 (pthr_cond_signal_mutex): Rewrite to silence GCC.
2621 (thread_start): Remove unused variable err.
2622 (main): Silence GCC warnings.
2623
64f6b8f3
AJ
26242000-08-22 Andreas Jaeger <aj@suse.de>
2625
2626 * Examples/ex13.c: New test by Kurt Garloff <garloff@suse.de>.
2627
2628 * Makefile (tests): Add ex13.
2629
98cbe360
UD
26302000-08-20 Ulrich Drepper <drepper@redhat.com>
2631
2632 * semaphore.h: Add restrict where required by AGd4.
2633 * sysdeps/pthread/pthread.h: Likewise.
2634 * sysdeps/pthread/unix/sysv/linux/bits/sigthread.h: Likewise.
2635
9df76933
UD
26362000-08-15 Ulrich Drepper <drepper@redhat.com>
2637
2638 * Makefile (tests): Add ex12. Add rule to build it.
2639 * Examples/ex12.c: New file.
2640
91bc38d0
UD
26412000-08-13 Ulrich Drepper <drepper@redhat.com>
2642
2643 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_SEMAPHORES
2644 even though the implementation is not quite complete (but it reports
2645 it). Define _POSIX_MESSAGE_PASSING to -1.
2646 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2647
facd11c2
AJ
26482000-08-12 Andreas Jaeger <aj@suse.de>
2649
2650 * sysdeps/mips/pt-machine.h (testandset): Add .set mips2 for
2651 assembler.
2652 (__compare_and_swap): Likewise.
2653 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Likewise.
2654
3459f702
UD
26552000-08-10 Ulrich Drepper <drepper@redhat.com>
2656
2657 * pthread.c (__pthread_initial_thread): Initialize p_errnop and
2658 p_h_errnop correctly and not to NULL.
2659
c9326ed5
UD
26602000-08-05 Ulrich Drepper <drepper@redhat.com>
2661
2662 * Banner: Bump version number to 0.9.
2663
0a8d9231
UD
26642000-08-04 Ulrich Drepper <drepper@redhat.com>
2665
fcd31f5a
UD
2666 * Makefile (tests): Add tststack. Add rule to build the program.
2667 * tststack.c: New file.
2668
234dd7a6
UD
2669 * internals.h: Declare __pthread_max_stacksize.
2670 * pthread.c (__pthread_max_stacksize): New variable.
2671 (__pthread_initialize_manager): Determine __pthread_initialize_manager
2672 value.
2673 * manager.c (thread_segment): Return always NULL if FLOATING_STACKS.
2674 (pthread_allocate_stack): Allow kernel to choose stack address if
2675 FLOATING_STACKS. This also handles variable-sized stacks.
c9326ed5 2676 Always allocate stack and guardpage together. Use mprotect to
234dd7a6
UD
2677 change guardpage access.
2678 * sysdeps/i386/useldt.h: Define FLOATING_STACKS and
2679 ARCH_STACK_MAX_SIZE.
2680
2681 * attr.c (__pthread_attr_setstacksize): Also test value against
2682 upper limit.
2683
0a8d9231
UD
2684 * manager.c (__pthread_nonstandard_stacks): Define only if
2685 THREAD_SELF is not defined.
2686 (pthread_allocate_stack): Always initialize gardaddr to a correct
2687 value.
2688 (pthread_handle_create): Unmap thread with one call.
2689 (pthread_free): Remove test for initial thread before removing stack.
2690 Unmap stack with one call.
2691
2692 * pthread.c (__pthread_initial_thread): Initialize p_userstack to
2693 1 to avoid removing the stack.
2694
0d019734
UD
26952000-07-27 Jes Sorensen <jes@linuxcare.com>
2696
d364e525 2697 * sysdeps/ia64/pspinlock.c (__pthread_spin_lock): Add
0d019734
UD
2698 load of spin lock to prime the cache before the atomic compare and
2699 exchange operation (cmpxchg4). This avoids the spinning on the
2700 cmpxchg4 instruction and reduces movement of the cache line back
2701 and forth between the processors (explanation by Asis K. Mallick
2702 from Intel). This basically makes the implementation operate the
2703 same as the Linux kernel implementation.
2704
d364e525
UD
2705 * shlib-versions: Use GLIBC_2_2 for Linux/ia64.
2706 * sysdeps/ia64/pspinlock.c: New file.
0d019734 2707
139a4d95
UD
27082000-08-03 Ulrich Drepper <drepper@redhat.com>
2709
2710 * pthread.c: Move definition of __pthread_set_own_extricate_if...
2711 * spinlock.h: ...here. Remove locking.
2712 * internals.h: Remove __pthread_set_own_extricate_if prototype.
2713
2714 * rwlock.c: Use THREAD_GETMEM And THREAD_SETMEM.
2715 (rwlock_rd_extricate_func): Don't determine self, let
2716 __pthread_lock do it.
2717 (rwlock_wr_extricate_func): Likewise.
2718 (rwlock_have_already): Optimize *pself handling a bit.
2719
2720 * mutex.c: Use __builtin_expect.
2721 * pthread.c: Likewise.
2722
9016e55c
AJ
27232000-08-02 Andreas Jaeger <aj@suse.de>
2724
d364e525
UD
2725 * sysdeps/s390/pspinlock.c: New file.
2726 * sysdeps/s390/pt-machine.h: New file.
9016e55c
AJ
2727 Patches by Martin Schwidefsky <schwidefsky@de.ibm.com>.
2728
fdfb2ecc
AJ
27292000-07-12 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
2730
2731 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Implement for
2732 R3K.
2733 * sysdeps/mips/pt-machine.h (testandset): Likewise.
2734
b98a450f
AJ
27352000-07-26 Andreas Jaeger <aj@suse.de>
2736
2737 * pthread.c: Initialize p_sem_avail.
2738
a956d045
UD
27392000-07-25 Ulrich Drepper <drepper@redhat.com>
2740
a99db924 2741 * internals.h (struct __pthread_descr_struct): Add p_sem_avail.
9ec9e34e
UD
2742 * semaphore.c: Handle spurious wakeups.
2743
2744 * sysdeps/pthread/pthread.h: Add back PTHREAD_MUTX_FAST_NP as an alias
2745 for PTHREAD_MUTEX_ADAPTIVE_NP for source code compatibility.
2746
2747 * pthread.c (__pthread_set_own_extricate): Use THREAD_GETMEM.
2748 (__pthread_wait_for_restart): Likewise.
2749
2750 * condvar.c (pthread_cond_wait): Also check whether thread is
2751 cancelable before aborting loop.
2752 (pthread_cond_timedwait): Likewise.
2753
a956d045
UD
2754 * signals.c (pthread_sighandler): Remove special code to restrore
2755 %gs on x86.
2756 (pthread_sighandler_t): Likewise.
2757
70e392a3
UD
27582000-07-25 Mark Kettenis <kettenis@gnu.org>
2759
2760 * internals.h (__RES_PTHREAD_INTERNAL): Remove define.
2761 * pthread.c: Include <resolv.h>.
2762 (_res): Undefine. Add extern declaration.
2763
5122880a
UD
27642000-07-24 Ulrich Drepper <drepper@redhat.com>
2765
f3d5834e
UD
2766 * pthread.c (__pthread_initial_thread): Update initializer.
2767 (__pthread_manager_thread): Likewise.
2768 (pthread_initialize): Move setrlimit call to...
2769 (__pthread_initialize_manager): ...here.
2770 (__pthread_reset_main_thread): Reset also soft limit on stack size.
2771
5122880a 2772 * condvar.c: Handle spurious wakeups. [PR libc/1749].
ad0c66a0 2773 * internals.h (struct _pthread_descr_struct): Add p_condvar_avail.
5122880a 2774
0c0c8bde
UD
27752000-07-21 Ulrich Drepper <drepper@redhat.com>
2776
5122880a 2777 * spinlock.h: If IMPLEMENT_TAS_WITH_CAS is defined use
0c0c8bde 2778 __compare_and_swap to define testandset.
d364e525 2779 * sysdeps/powerpc/pt-machine.h: Add volatile to asms.
0c0c8bde
UD
2780 Define IMPLEMENT_TAS_WITH_CAS.
2781
0fb7851f
UD
27822000-07-20 Ulrich Drepper <drepper@redhat.com>
2783
2784 * Makefile: Pass -z nodelete to linker for libpthread.so
2785 generation if it understand this option.
2786
4e8286ac
UD
27872000-07-18 Mark Kettenis <kettenis@gnu.org>
2788
2789 * manager.c (pthread_handle_create): Remove initialization of
2790 new_thread->p_res._sock.
2791
80ec4993
UD
27922000-07-19 Kaz Kylheku <kaz@ashi.footprints.net>
2793
2794 Bugfixes to the variant of the code for machines with no compare
2795 and swap.
2796
2797 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Wait
2798 node was not being properly enqueued, due to failing to update
2799 the lock->__status field.
2800
2801 * spinlock.c (__pthread_alt_timedlock): The oldstatus variable was
2802 being set inappropriately, causing the suspend function to be called
2803 with a null self pointer and crash.
2804
70c5b33d
UD
28052000-07-18 Ulrich Drepper <drepper@redhat.com>
2806
056f707c
UD
2807 * spinlock.h (__pthread_alt_trylock): Fix code used if no
2808 compare&swap is available.
2809
a48297fd
UD
2810 * spinlock.h (__pthread_trylock): Use __compare_and_swap, not
2811 compare_and_swap.
2812
89bc5366 2813 * pthread.c (pthread_initialize): Don't use sysconf to determine
247c8869
UD
2814 whether the machine has more than one processor.
2815
70c5b33d
UD
2816 * spinlock.c (__pthread_alt_timedlock): Add back one of the
2817 removed thread_self calls.
2818
83142e8f
UD
28192000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
2820
2821 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Changed
2822 __compare_and_swap to compare_and_swap in code which assumes
2823 compare swap is available.
2824
89bc5366 28252000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
e6574c9c
UD
2826
2827 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Fixed
2828 bug whereby thr field of waitnode structure would not be correctly
2829 set unless a null self pointer is passed to the functions.
2830 Eliminated redundant calls to thread_self().
2831
c6df09ad
UD
28322000-07-18 Jakub Jelinek <jakub@redhat.com>
2833
2834 * pthread.c (__pthread_initialize_manager): Lock
2835 __pthread_manager_thread.p_lock before calling clone.
2836
9aae19cd
UD
28372000-05-05 H.J. Lu <hjl@gnu.org>
2838
2839 * sysdeps/ia64/pt-machine.h (__compare_and_swap): Change it to
2840 have acquire semantics.
2841 (__compare_and_swap_with_release_semantics): New inline
2842 function.
2843 (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): New macro.
2844
28452000-01-28 Hans Boehm <hboehm@exch.hpl.hp.com>
2846
2847 * manager.c: Fix the problem with signals at startup.
2848 Change the way that thread stacks are allocated on IA64.
2849 Clean up some of the guard page allocation stuff.
2850
28511999-12-19 H.J. Lu <hjl@gnu.org>
2852
2853 * internals.h (page_roundup): New.
2854 * attr.c (__pthread_attr_setguardsize); Use page_roundup
2855 instead of roundup.
2856 * manager.c (pthread_allocate_stack): Make sure guardaddr is
2857 page aligned with page_roundup if NEED_SEPARATE_REGISTER_STACK
2858 is define.
2859
28601999-12-17 Hans Boehm <hboehm@exch.hpl.hp.com>
2861
2862 * manager.c (pthread_allocate_stack): Unmap the stack top
2863 if failed to map the stack bottom.
2864 Fix the guard page.
2865 (pthread_free): Fix the guard page.
2866
2867 * pthread.c (pthread_initialize): Set rlimit correctly for
2868 NEED_SEPARATE_REGISTER_STACK.
2869
28701999-12-16 H.J. Lu <hjl@gnu.org>
2871
2872 * pthread.c (__pthread_initialize_manager): Pass
2873 __pthread_manager_thread_bos instead of
2874 __pthread_manager_thread_tos to __clone2.
2875
28761999-12-16 H.J. Lu <hjl@gnu.org>
2877
2878 * manager.c (pthread_allocate_stack): Correct the calculation
2879 of "new_thread_bottom". Remove MAP_GROWSDOWN from mmap for
2880 stack bottom.
2881
28821999-12-13 H.J. Lu <hjl@gnu.org>
2883
2884 * sysdeps/ia64/pt-machine.h (__compare_and_swap): Added a stop
2885 bit after setting ar.ccv.
2886
28871999-12-12 H.J. Lu <hjl@gnu.org>
2888
2889 * manager.c (pthread_allocate_stack): Make the starting
2890 address of the stack bottom page aligned. FIXME: it may
2891 need changes in other places.
2892 (pthread_handle_create): Likewise.
2893
28941999-12-11 Hans Boehm <hboehm@exch.hpl.hp.com>
2895
2896 * manager.c (pthread_allocate_stack): Handle
2897 NEED_SEPARATE_REGISTER_STACK.
2898 (pthread_handle_create): Likewise.
2899 * pthread.c (__pthread_initialize_manager): Likewise.
2900
2901 * sysdeps/ia64/pt-machine.h: Use r13 for thread pointer.
2902
29031999-12-02 H.J. Lu <hjl@gnu.org>
2904
2905 * sysdeps/ia64/pt-machine.h: New.
2906
f218b5f5
UD
29072000-07-13 Ulrich Drepper <drepper@redhat.com>
2908
2909 * wrapsyscall.c: Mark non-__ protected names as weak.
2910 PR libc/1466.
2911
0d655550
UD
29122000-07-12 Bruno Haible <haible@clisp.cons.org>
2913
2914 * Examples/ex8.c: Include <sys/wait.h>, not <wait.h>.
2915
9f835f5f
UD
29162000-07-12 Ulrich Drepper <drepper@redhat.com>
2917
2918 * spinlock.c: Fix code for TEST_FOR_COMPARE_AND_SWAP being defined.
2919 Add tests also to new alternative spinlock implementation.
2920 * spinlock.h: Likewise.
2921 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2922
a85d5c80
UD
29232000-07-06 Ulrich Drepper <drepper@redhat.com>
2924
c0f53cdd
UD
2925 * Version: Export __sigaction.
2926 * signals.c: Define __sigaction alias. Use __libc_sigaction instead
2927 of __sigaction.
2928 * pthread.c: Use __libc_sigaction instead of __sigaction.
2929
a85d5c80
UD
2930 * condvar.c: Implement pthread_condattr_getpshared and
2931 pthread_condattr_setpshared.
2932 * mutex.c: Implement pthread_mutexattr_getpshared and
2933 pthread_mutexattr_setpshared.
2934 * Versions: Export new functions.
2935 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
2936
2937 * rwlock.c (pthread_rwlockattr_init): Use PTHREAD_PROCESS_PRIVATE.
2938 (pthread_rwlockattr_setpshared): Fail if PTHREAD_PROCESS_PRIVATE
2939 is not selected.
2940
66c5b9aa
GM
29412000-07-04 Greg McGary <greg@mcgary.org>
2942
2943 * sysdeps/pthread/bits/libc-lock.h: Remove BP_SYM from
2944 pragmas. Include bp-sym.h only if _LIBC.
2945
83b1b6d8
UD
29462000-07-04 Ulrich Drepper <drepper@redhat.com>
2947
2948 * spinlock.c (__pthread_unlock): Properly place write barrier.
2949 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2950
a88b96f4
UD
29512000-07-03 Ulrich Drepper <drepper@redhat.com>
2952
2953 * spinlock.c: Replace fast spinlocks by adaptive spinlocks which are
2954 faster on SMP systems. No more emulation of compare&swap for adaptive
2955 spinlocks.
2956 * spinlock.h: Likewise.
2957 * sysdeps/pthread/pthread.h: Shuffle PTHREAD_MUTEX_* values around.
2958 Replace fast with adaptive mutex.
2959 * mutex.c: Rewrite for replacement of fast by adaptive mutex.
2960 * condvar.c: Likewise.
2961 * pthread.c: Define and initialize __pthread_smp_kernel variable.
2962 * internals.h: Declare __pthread_smp_kernel.
2963 * sysdeps/pthread/bits/pthreadtypes.h: Update comment of
2964 _pthread_fastlock structure.
2965 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2966
2967 * pthread.c: Remove initialization to zero from global variables.
2968
1a6d7967
UD
29692000-06-29 Jakub Jelinek <jakub@redhat.com>
2970
2971 * shlib-versions: Make sparc64 GLIBC_2.2+ only.
2972
1efd15e3
GM
29732000-06-28 Greg McGary <greg@mcgary.org>
2974
2975 * weaks.c: Wrap BP_SYM () around weak extern declarations of
2976 pthread functions that have pointers in their return+arg signatures.
2977
3210bef0
GM
29782000-06-27 Greg McGary <greg@mcgary.org>
2979
1efd15e3
GM
2980 * sysdeps/pthread/bits/libc-lock.h: Wrap BP_SYM () around weak
2981 extern declarations of pthread functions that have pointers in
2982 their return+arg signatures.
3210bef0 2983
c49ebf76
UD
29842000-06-26 Ulrich Drepper <drepper@redhat.com>
2985
2986 * Makefile (tests): Add ex11. Add rules to build it.
2987 * Examples/ex11.c: New file.
2988 * rwlock.c: Fix complete braindamaged previous try to implement
2989 timedout functions.
2990
2991 * spinlock.c: Pretty print.
2992
d82e4c7b
UD
29932000-06-25 Ulrich Drepper <drepper@redhat.com>
2994
2995 * Makefile (tests): Add ex10. Add rules to build it.
2996 * Versions [GLIBC_2.2] (libpthread): Add pthread_mutex_timedlock,
2997 pthread_rwlock_timedrdlock, and pthread_rwlock_timedwrlock.
2998 * condvar.c (pthread_cond_wait): Allow mutex of kind
2999 PTHREAD_MUTEX_TIMED_NP.
3000 (pthread_cond_timedwait_relative): Likewise.
3001 * mutex.c (__pthread_mutex_init): Default is PTHREAD_MUTEX_TIMED_NP.
3002 (__pthread_mutex_trylock): Use __pthread_alt_trylock for
3003 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
3004 (__pthread_mutex_lock): Use __pthread_alt_lock for
3005 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
3006 (__pthread_mutex_timedlock): New function.
3007 (__pthread_mutex_unlock): Use __pthread_alt_unlock for
3008 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
3009 (__pthread_mutexattr_init): Use PTHREAD_MUTEX_TIMED_NP.
3010 (__pthread_mutexattr_settype): Allow PTHREAD_MUTEX_TIMED_NP.
3011 * spinlock.c: Implement alternate fastlocks.
3012 * spinlock.h: Add prototypes.
3013 * Examples/ex10.c: New file.
3014 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
3015 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3016
3017 * rwlock.c (__pthread_rwlock_rdlock): Optimize loop a bit.
3018 (__pthread_rwlock_timedrdlock): New function.
3019 (__pthread_rwlock_timedwrlock): New function.
3020 Use laternate fastlock function everywhere.
3021
3d8e9510
AJ
30222000-06-21 Andreas Jaeger <aj@suse.de>
3023
efa24b51 3024 * sysdeps/pthread/timer_routines.c: Include <string.h> for memset
3d8e9510
AJ
3025 prototype.
3026
3027 * join.c: Include <stdlib.h> for exit prototype.
3028
697568d1
UD
30292000-06-20 Ulrich Drepper <drepper@redhat.com>
3030
bdf09fab
UD
3031 * sysdeps/i386/useldt.h: Include <stdlib.h>.
3032
697568d1
UD
3033 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_BARRIERS.
3034 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3035
3036 * Makefile (libpthread-routines): Add barrier.
3037 (tests): Add ex9. Add rule to build ex9.
3038 * Versions: Export barrier functions.
3039 * barrier.c: New file.
3040 * Examples/ex9.c: New file.
3041 * sysdeps/pthread/pthread.h: Add barrier data types and declarations.
3042 * sysdeps/pthread/bits/pthreadtypes.h: Likewise.
bdf09fab 3043 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
697568d1 3044
ba80a015
UD
30452000-06-19 H.J. Lu <hjl@gnu.org>
3046
3047 * spinlock.h (HAS_COMPARE_AND_SWAP): Defined if
3048 HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS is defined.
3049 (compare_and_swap_with_release_semantics): New. Default to
3050 compare_and_swap if HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS
3051 is not defined.
3052
3053 * spinlock.c (__pthread_unlock): Call
3054 compare_and_swap_with_release_semantics () instead of
3055 compare_and_swap ().
3056
d2dfc5de
UD
30572000-06-19 Ulrich Drepper <drepper@redhat.com>
3058
3059 * sysdeps/pthread/timer_create.c: Use _set_errno instead of assigning
3060 to errno directly.
3061 * sysdeps/pthread/timer_delete.c: Likewise.
3062 * sysdeps/pthread/timer_getoverr.c: Likewise.
3063 * sysdeps/pthread/timer_gettime.c: Likewise.
3064 * sysdeps/pthread/timer_settime.c: Likewise.
3065
30662000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
3067
3068 Timer nodes are now reference counted, and can be marked
3069 as deleted. This allows for the safe release of the global mutex
3070 in the middle without losing the timer being operated on.
3071
3072 * sysdeps/pthread/posix-timer.h (struct timer_node): The inuse
3073 member is now an enum with three values, so that an intermediate
3074 state can be represented (deleted but not free for reuse yet).
3075 New refcount member added.
3076 * sysdeps/pthread/timer_routines.c: Likewise.
3077
3078 * sysdeps/pthread/posix-timer.h (timer_addref, timer_delref,
3079 timer_valid): New inline functions added.
3080
3081 * sysdeps/pthread/timer_gettime.c (timer_gettime): Function
3082 restructured, recursive deadlock bug fixed.
3083
3084 * sysdeps/pthread/timer_gettime.c (timer_gettime): Uses new
3085 timer_addref to ensure that timer won't be deleted while mutex is not
3086 held. Also uses timer_invalid to perform validation of timer handle.
3087 * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
3088 * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Likewise.
3089
e26dd47f
UD
30902000-06-14 Ulrich Drepper <drepper@redhat.com>
3091
3092 * shlib-versions: Add entry for SH.
3093 Patch by Kaz Kojima <kkojima@rr.iij4u.or.jp>.
3094
38161ac7
UD
30952000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
3096
3097 A few optimizations. Got rid of unnecessary wakeups of timer threads,
3098 tightened up some critical regions and micro-optimized some list
3099 manipulation code.
3100
3101 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
3102 Returns int value now to indicate whether timer was queued at head.
3103 * sysdeps/pthread/posix-timer.h: Likewise.
3104 * sysdeps/pthread/timer_settime.c (timer_settime): Takes advantage of
3105 new return value from __timer_thread_queue_timer to avoid waking
3106 up timer thread unnecessarily.
3107
3108 * sysdeps/pthread/posix-timer.h (timer_id2ptr): No longer checks
3109 inuse flag, because this requires mutex to be held. Callers updated
3110 to do the check when they have the mutex.
3111 * sysdeps/pthread/timer_getoverr.c: Add check for inuse here.
3112
3113 * sysdeps/pthread/timer_settime.c (timer_settime): Tighter critical
3114 regions: avoids making system calls while holding timer mutex, and
3115 a few computations were moved outside of the mutex as well.
3116 * sysdeps/pthread/timer_gettime.c (timer_gettime): Likewise.
3117
3118 * sysdeps/pthread/posix-timer.h (list_unlink_ip): Function name changed
3119 to list_unlink_ip, meaning idempotent. Pointer manipulation
3120 changed to get better better code out of gcc.
3121 * sysdeps/pthread/timer_routines.c (list_unlink): Non-idempotent
3122 version of list_unlink added here.
3123 * sysdeps/pthread/timer_delete.c: Use appropriate list unlink
3124 function in all places: idempotent one for timers, non-idempotent
3125 one for thread nodes.
3126 * sysdeps/pthread/timer_settime: Likewise.
3127 * sysdeps/pthread/timer_routines.c: Likewise.
3128
7ae1fe4d
UD
31292000-06-13 Ulrich Drepper <drepper@redhat.com>
3130
490dc9aa
UD
3131 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_TIMERS): Define.
3132 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3133
7ae1fe4d
UD
3134 * sysdeps/pthread/Makefile: Remove tests definition.
3135
3846ef75
UD
31362000-06-12 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
3137 Yutaka Niibe <gniibe@chroot.org>
3138
3139 * sysdeps/sh/pspinlock.c: New file.
3140 * sysdeps/sh/pt-machine.h: New file.
3141
a5b97402
UD
31422000-06-12 Ulrich Drepper <drepper@redhat.com>
3143
55985355
UD
3144 * Makefile (tests): Add joinrace.
3145
a5b97402
UD
3146 * Examples/ex6.c: Test return value of pthread_join.
3147
2b72ebac
GK
31482000-06-11 Geoff Keating <geoffk@cygnus.com>
3149
3150 * sysdeps/powerpc/pspinlock.c (__pthread_spin_lock): Implement.
3151 (__pthread_spin_trylock): Implement.
3152 (__pthread_spin_unlock): Implement.
3153 (__pthread_spin_init): Implement.
3154 (__pthread_spin_destroy): Implement.
3155
425638fb
UD
31562000-06-10 Ulrich Drepper <drepper@redhat.com>
3157
3158 * sysdeps/pthread/timer_routines.c (list_append): Little fix to
2b72ebac 3159 really append the entry.
425638fb 3160
6948d763
AJ
31612000-06-10 Andreas Jaeger <aj@suse.de>
3162
3163 * lockfile.c (__fresetlockfiles): Remove unused variable fp.
3164
45dc1187
UD
31652000-06-10 Kaz Kylheku <kaz@ashi.footprints.net>
3166
3167 * sysdeps/pthread/timer_create.c: Thread matching now done on
3168 clock type as well as thread attributes.
3169 There are individual global signal-delivering threads for
3170 different clock types.
3171 * sysdeps/pthread/posix-timer.h: Likewise.
3172 * sysdeps/pthread/timer_routines.c: Likewise.
3173
3174 * sysdeps/pthread/timer_routines.c: Thread allocation and
3175 deallocation function now remembers to put thread on active
425638fb 3176 list and remove from active list.
45dc1187
UD
3177 Thus now the feature of binding multiple timers
3178 to a single thread actually works.
3179
ee5d4855
UD
31802000-06-10 Ulrich Drepper <drepper@redhat.com>
3181
3182 * pthread.c (__pthread_create_2_1): Optimize a bit.
3183
3184 * internals.h (invalid_handle): Also test for p_terminated != 0.
3185 (nonexisting_handle): New function. Same as old invalid_handle.
3186 * join.c (pthread_join): Use nonexisting_handle instead of
3187 invalid_handle to test for acceptable thread handle.
41b37cb5 3188 * manager.c (pthread_handle_free): Likewise.
15109bd4 3189 * joinrace.c: New file.
ee5d4855
UD
3190 Reported by Permaine Cheung <pcheung@cygnus.com>.
3191
2715f28a
UD
31922000-06-08 Ulrich Drepper <drepper@redhat.com>
3193
8aa8fc7f
UD
3194 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
3195 Correct handling of matching variable.
3196
480a06df
UD
3197 * sysdeps/pthread/tst-timer.c (main): Rewrite initializers to
3198 avoid warnings.
3199
18e4e446
UD
3200 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
3201 Be prepared for empty timer list.
3202
165ab1d7
UD
3203 * sysdeps/pthread/timer_create.c (timer_create): Correct names of
3204 CPUTIME clock ID. Add support for thread clocks.
3205
f2a5974b
UD
3206 * sysdeps/pthread/posix-timer.h (timer_ptr2id): Operands in
3207 subtraction were switched.
3208
c0f79a04
UD
3209 * sysdeps/pthread/timer_routines.c (init_module): Use
3210 THREAD_MAXNODES threads.
3211
55938273
UD
3212 * sysdeps/pthread/posix-timer.h (struct timer_node): Add creator_pid.
3213 * sysdeps/pthread/timer_create.c: Fill in creator_pid.
3214 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Send signal
3215 with sigqueueinfo is this system call is available.
3216
3217 * sysdeps/pthread/timer_create.c (timer_create): Allow
3218 CLOCK_CPUTIME if _POSIX_CPUTIME is defined.
3219
2715f28a
UD
3220 * sysdeps/pthread/Makefile: New file. Add rules to build timer
3221 functionality.
3222 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add TIMER_MAX.
3223
32242000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
3225
3226 * sysdeps/pthread/posix-timer.h: New file.
3227 * sysdeps/pthread/timer_create.c: New file.
3228 * sysdeps/pthread/timer_delete.c: New file.
3229 * sysdeps/pthread/timer_getoverr.c: New file.
3230 * sysdeps/pthread/timer_gettime.c: New file.
3231 * sysdeps/pthread/timer_routines.c: New file.
3232 * sysdeps/pthread/timer_settime.c: New file.
3233 * sysdeps/pthread/tst-timer.c: New file.
3234
1b579f91
UD
32352000-06-08 Ulrich Drepper <drepper@redhat.com>
3236
3237 * sysdeps/unix/sysv/linux/bits/local_lim.h: Remove OPEN_MAX and
3238 LINK_MAX definitions if necessary.
3239
dc3b5786
UD
32402000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
3241
3242 Added missing fork time handling of global libio lock.
3243
3244 * lockfile.c (__fresetlockfiles): Now also resets the list lock,
3245 not just the individual stream locks. Rewritten to use new
3246 iterator interface provided by libio rather than accessing
3247 global variable.
3248
3249 * lockfile.c (__flockfilelist, _funlockfilelist): New functions
3250 which lock and unlock the stream list using the new interface
3251 provied by libio.
3252 * internals.h: Likewise.
3253
3254 * ptfork.c (__fork): Now calls __flockfilelist before fork,
3255 and __funlockfilelist in the parent after the fork.
3256 Child still calls __fresetlockfiles as before.
3257
3258 * linuxthreads.texi: Now explains what happens to streams at
3259 fork time. Also whole new section on forking and thread added.
3260 Definition of pthread_atfork moved out of Miscellaneous Functions
3261 to this new section.
3262
1dd54850
UD
32632000-06-04 Jakub Jelinek <jakub@redhat.com>
3264
3265 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c (__pthread_spin_lock):
3266 Add missing register.
3267 * sysdeps/sparc/sparc64/pspinlock.c (__pthread_spin_lock): Likewise.
3268
554eca5c
AJ
32692000-06-02 Jakub Jelinek <jakub@redhat.com>
3270
3271 * sysdeps/sparc/sparc32/pspinlock.c: Implement spinlocks.
3272 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: New.
3273 * sysdeps/sparc/sparc64/pspinlock.c: Implement spinlocks.
3274
a3a99e01
AJ
32752000-05-31 Andreas Jaeger <aj@suse.de>
3276
3277 * sysdeps/mips/pspinlock.c: Implement spinlocks.
3278
c0f3519d
UD
32792000-05-28 Ulrich Drepper <drepper@redhat.com>
3280
84838b8f
UD
3281 * spinlock.c (__pthread_lock): Remove ASSERT.
3282
c0f3519d
UD
3283 * Makefile (tests): Add ex8.
3284 * Examples/ex8.c: New file.
3285
32862000-05-12 Kaz Kylheku <kaz@ashi.footprints.net>
3287
3288 Bugfix: The pthread_atfork mechanism now takes care of its
3289 own internal mutex at fork time.
3290
3291 * ptfork.c (__fork): Revised so that the mutex is held across
3292 the fork operation and while the handlers are called, and so that
3293 the child resets the mutex.
c0f3519d
UD
3294
3295 * linuxthreads.texi: Updated pthread_atfork documentation to make
3296 it clear that fork and pthread_atfork can't be reentered from
3297 atfork handlers, that pthread_atfork and fork are mutually atomic,
3298 and that the handlers are inherited by the child process.
3299
378fbeb4
UD
33002000-05-24 Ulrich Drepper <drepper@redhat.com>
3301
3302 * Makefile (libpthread-routines): Add pspinlock.
3303 * cancel.c: Rename __pthread_spin_unlock back to __pthread_unlock.
3304 Use struct _pthread_fastlock instead of pthread_spinlock_t.
3305 * condvar.c: Likewise.
3306 * internals.h: Likewise.
3307 * join.c: Likewise.
3308 * manager.c: Likewise.
3309 * mutex.c: Likewise.
3310 * pthread.c: Likewise.
3311 * rwlock.c: Likewise.
3312 * semaphore.c: Likewise.
3313 * signals.c: Likewise.
3314 * spinlock.h: Likewise.
3315 * spinlock.c: Likewise. Remove pthread_spin_lock functions.
3316 * sysdeps/alpha/pspinlock.c: New file.
3317 * sysdeps/arm/pspinlock.c: New file.
3318 * sysdeps/i386/pspinlock.c: New file.
3319 * sysdeps/m68k/pspinlock.c: New file.
3320 * sysdeps/mips/pspinlock.c: New file.
3321 * sysdeps/powerpc/pspinlock.c: New file.
3322 * sysdeps/sparc/sparc32/pspinlock.c: New file.
3323 * sysdeps/sparc/sparc64/pspinlock.c: New file.
3324 * sysdeps/pthread/bits/pthreadtypes.h: Remove pthread_spinlock_t
3325 back to _pthread_fastlock. Define new pthread_spinlock_t.
3326
fff82885
AJ
33272000-05-24 Andreas Jaeger <aj@suse.de>
3328
3329 * sysdeps/i386/i686/pt-machine.h: Only use LDT on newer kernels.
3330
5d1fba6d
AJ
33312000-05-21 Jakub Jelinek <jakub@redhat.com>
3332
3333 * manager.c (pthread_handle_create): Initialize p_res._sock to -1.
3334
f14273c5
AJ
33352000-05-13 Jakub Jelinek <jakub@redhat.com>
3336
3337 * internals.h (__RES_PTHREAD_INTERNAL): Define.
3338
93414bb9
UD
33392000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
3340
3341 * mutex.c (pthread_once): IN_PROGRESS state of pthread_once_t
3342 object state is represented with additional bits which distinguish
3343 whether that state was set up in the current process, or
3344 in an ancestor process. If that state was set in an ancestor,
3345 it means that a fork happened while thread was executing the init
3346 function. In that case, the state is reset to NEVER.
3347 * mutex.c (__pthread_once_fork_prepare): New function.
3348 (__pthread_once_fork_child): Likewise
3349 (__pthread_once_fork_parent): Likewise
3350 (__pthread_reset_pthread_once): Removed.
3351 * ptfork.c (__fork): Call new handlers in mutex.c.
3352 * internals.h: Declarations of new mutex.c functions added.
3353 Declaration of removed function deleted.
3354 * linuxthreads.texi: Updated documentation about pthread_once
3355 to clarify what happens under cancellation and forking.
3356
fc08075d
UD
33572000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
3358
3359 * internals.h: New thread manager request type, REQ_KICK.
3360 * join.c (pthread_exit): main thread now calls exit() instead
3361 of _exit() in order to proper process cleanup.
3362 * manager.c (__pthread_manager): Do not terminate manager
3363 after unblocking main thread; wait for main thread's
3364 REQ_PROCESS_EXIT request instead.
3365 Also, added REQ_KICK case to handle new request; this just does
3366 nothing.
3367 * manager.c (pthread_exited): Do not terminate manager after
3368 unblocking main thread.
3369 * manager.c (__pthread_manager_sighandler): If the main thread
3370 is waiting for all other threads to die, send a REQ_KICK into
3371 the thread manager request pipe to get it to clean out the threads
3372 and unblock the main thread as soon as possible. This fixes
3373 the 2000 millisecond hang on shutdown bug.
3374 * Examples/ex7.c: New file, tests shutdown behavior when all threads
3375 including the main one call pthread_exit(), or implicitly do so.
3376 * Makefile (tests): Add ex7.
3377
b19b7383
AJ
33782000-05-05 Andreas Jaeger <aj@suse.de>
3379
3380 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
3381 (pthread_getcpuclockid): Correct test for ourselves.
3382
c77ec56d
UD
33832000-05-05 Ulrich Drepper <drepper@redhat.com>
3384
3385 * internals.h (struct _pthread_descr_struct): Reorganization.
3386 Allocate room for 16 pointers at head of the structure for future
3387 thread-local data handling. Move p_self member in this area.
3388 * manager.c (pthread_handle_create): Adjust use of p_self.
3389 * sysdeps/i386/useldt.h (THREAD_SELF): Likewise.
3390 * pthread.c (__pthread_initial_thread): Adjust initialization.
3391 (__pthread_manager_thread): Likewise.
3392
33932000-04-29 Bruno Haible <haible@clisp.cons.org>
160016c9
UD
3394
3395 * join.c (pthread_exit): Use THREAD_GETMEM_NC instead of THREAD_GETMEM
3396 for eventmask larger than 1 word.
3397
3300816c
UD
33982000-04-27 Ulrich Drepper <drepper@redhat.com>
3399
3400 * Versions [libpthread] (GLIBC_2.2): Add __pthread_initialize_minimal.
3401 * pthread.c (__pthread_initialize_minimal): New function. Perform
3402 minimal initialization.
3403 (pthread_initialize): Remove this code here.
3404 * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h" again. We
3405 are working around the problem in glibc.
3406
d472655c
UD
34072000-04-25 Ulrich Drepper <drepper@redhat.com>
3408
3409 * sysdeps/i386/i686/pt-machine.h: Do not use "../useldt.h" for
3410 now. First gcc must be fixed (more concrete: libgcc).
3411
9bf4d640
UD
34122000-04-24 Ulrich Drepper <drepper@redhat.com>
3413
e19ae111 3414 * pthread.c: Remove special treatement for interrupt handlers on x86.
9bf4d640
UD
3415 * manager.c (pthread_free): Use FREE_THREAD not FREE_THREAD_SELF.
3416 * sysdeps/i386/useldt.h: Use "q" constraint instead of "r" where
3417 necessary.
3418 * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h".
3419
9682a871
UD
34202000-04-24 Mark Kettenis <kettenis@gnu.org>
3421
3422 * join.c (pthread_exit): Set p_terminated after reporting the
3423 termination event instead of before.
3424
d879eb85
UD
34252000-04-20 Jakub Jelinek <jakub@redhat.com>
3426
3427 * sysdeps/pthread/bits/libc-lock.h: Only declare __pthread_rwlock_*
3428 if __USE_UNIX98.
3429
34302000-04-18 Andreas Jaeger <aj@suse.de>
3431
3432 * Versions: Use ld instead of ld.so.
3433
318c80d4
UD
34342000-04-18 Jakub Jelinek <jakub@redhat.com>
3435
3436 * sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h (struct sigcontext):
3437 Remove the typedef keyword.
3438
cd43f797
UD
34392000-04-18 Jakub Jelinek <jakub@redhat.com>
3440
3441 * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Use membar,
3442 not stbar.
3443 (READ_MEMORY_BARRIER): Define.
3444 * spinlock.c (__pthread_spin_unlock): Use READ_MEMORY_BARRIER, not
3445 MEMORY_BARRIER.
3446 * internals.h (READ_MEMORY_BARRIER): Define if not defined in sysdep
3447 headers.
3448
dbacafe5
UD
34492000-04-17 Ulrich Drepper <drepper@redhat.com>
3450
3451 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
3452 (pthread_getcpuclockid): Don't compare thread_id with thread_self,
3453 use thread_handle().
3454
e2947c42
UD
34552000-04-16 Ulrich Drepper <drepper@redhat.com>
3456
e3265f5b
UD
3457 * condvar.c (pthread_cond_timedwait_relative): Don't test for owner
3458 if fast mutex is used. Don't initialize `already_canceled' twice.
3459 Correctly test for return value of timedsuspend.
3460
e2947c42
UD
3461 * pthread.c: Correct long-time braino. We never set SA_SIGINFO and
3462 therefore don't need the _rt versions of the signal handlers.
3463
150f740a
UD
34642000-04-15 Ulrich Drepper <drepper@redhat.com>
3465
c269fdb4
UD
3466 * pthread.c (pthread_yield): New function.
3467 * sysdeps/pthread/pthread.h (pthread_yield): Add prototype.
3468 * Versions [libpthread] (GLIBC_2.2): Add pthread_yield.
e2947c42 3469 * internals.h: Declare __pthread_yield.
c269fdb4 3470
145b8413
UD
3471 * pthread.c (pthread_initialize): Avoid a bit more code if
3472 realtime signals are known to exist.
3473
150f740a
UD
3474 * pthread.c: Is __ASSUME_REALTIME_SIGNALS then avoid generating code
3475 to dynamically detect RT signals and avoid generating compatibility
3476 functions with old kernel.
3477 * restart.h (restart) [__ASSUME_REALTIME_SIGNALS]: Use
3478 __pthread_restart_new directly.
3479 (suspend) [__ASSUME_REALTIME_SIGNALS]: Use
3480 __pthread_wait_for_restart_signal directly.
3481 (timedsuspend) [__ASSUME_REALTIME_SIGNALS]: Use
3482 __pthread_timedsuspend_new directly.
3483
b2d4446f
UD
34842000-04-15 Ulrich Drepper <drepper@redhat.com>
3485
ef187474
UD
3486 * condvar.c: Remove all the special code to handle cond_timedwait.
3487 Use timedsuspend instead.
3488 * internals.h: Declare __pthread_timedsuspend_old,
3489 __pthread_timedsuspend_new, and __pthread_timedsuspend.
3490 Remove declaration of __pthread_init_condvar.
3491 * pthread.c: Define __pthread_timedsuspend variable.
3492 (__pthread_timedsuspend_old): New function. Timed suspension
3493 implementation for old Linux kernels.
3494 (__pthread_timedsuspend_new): New function. Timed suspension
3495 implementation for new Linux kernels.
3496 * restart.h (timedsuspend): New function. Call appropriate
3497 suspension function through __pthread_timedsuspend.
3498 * semaphore.c (sem_timedwait): Use timedsuspend, don't duplicate
3499 the code.
3500 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3501
a5a6f926
UD
3502 * internals.h (WRITE_MEMORY_BARRIER): Define as MEMORY_BARRIER if
3503 undefined.
3504 * spinlock.c: Use WRITE_MEMORY_BARRIER instead of MEMORY_BARRIER
3505 where possible.
3506 * sysdeps/alpha/pt-machine.h: Define WRITE_MEMORY_BARRIER.
3507 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
3508
b2d4446f
UD
3509 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _POSIX_SPAWN.
3510 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3511
b82f6af2
AJ
35122000-04-14 Andreas Jaeger <aj@suse.de>
3513
3514 * weaks.c: Fix typo.
3515
43c36f63
AJ
3516 * shlib-versions (mips.*-.*-linux.*): Support only GLIBC 2.0 and
3517 2.2 for linuxthreads.
3518
547ff462
UD
35192000-04-13 Ulrich Drepper <drepper@redhat.com>
3520
3521 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
3522 (pthread_getcpuclockid): Fix typo.
3523
b3ae0650
UD
35242000-04-12 Ulrich Drepper <drepper@redhat.com>
3525
3737ff12
UD
3526 * Makefile (libpthread-routines): Add getcpuclockid.
3527 * Versions [libpthread] (GLIBC_2.2): Add pthread_getcpuclockid.
3528 * sysdeps/pthread/getcpuclockid.c: New file.
3529 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: New file.
3530 * sysdeps/pthread/pthread.h: Add prototype for pthread_getcpuclockid.
3531
07d641eb
UD
3532 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_SPIN_LOCKS):
3533 Defined.
3534 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3535
d8d914df
UD
3536 * sysdeps/pthread/pthread.h: Add prototypes for pthread_spin_init,
3537 pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
3538 and pthread_spin_unlock.
3539 * sysdeps/pthread/bits/pthreadtypes.h: Change struct _pthread_fastlock
3540 into pthread_spinlock_t. Change all uses.
3541 * spinlock.c: Implement pthread_spin_lock.
3542 Rename __pthread_unlock to __pthread_spin_unlock and define weak
3543 alias for real name.
3544 Define pthread_spin_trylock, pthread_spin_init, and
3545 pthread_spin_destroy.
3546 Change all uses of _pthread_fastlock to pthread_spinlock_t.
3547 * spinlock.h: Rename __pthread_unlock to __pthread_spin_unlock.
3548 Change all uses of _pthread_fastlock to pthread_spinlock_t.
3549 * Versions [libpthread] (GLIBC_2.2): Add pthread_spin_init,
3550 pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
3551 and pthread_spin_unlock.
3552 * cancel.c: Use __pthread_spin_unlock instead of __pthread_unlock.
3553 Change all uses of _pthread_fastlock to pthread_spinlock_t.
3554 * condvar.c: Likewise.
3555 * internals.h: Likewise.
3556 * join.c: Likewise.
3557 * manager.c: Likewise.
3558 * mutex.c: Likewise.
3559 * pthread.c: Likewise.
3560 * rwlock.c: Likewise.
3561 * semaphore.c: Likewise.
3562 * signals.c: Likewise.
3563
b3ae0650
UD
3564 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add various new POSIX
3565 macros.
3566 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
3567
8a31d742
UD
35682000-04-11 Ulrich Drepper <drepper@redhat.com>
3569
3570 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add
3571 _POSIX_SHARED_MEMORY_OBJECTS.
3572
2a086df9
AJ
35732000-04-11 Andreas Jaeger <aj@suse.de>
3574
3575 * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
3576 (__compare_and_swap): Mark as modifying memory.
3577
4a1a3c21
GK
35782000-04-11 Geoff Keating <geoffk@cygnus.com>
3579
3580 * sysdeps/powerpc/pt-machine.h (MEMORY_BARRIER): Don't be
3581 __volatile__.
3582 (__compare_and_swap): Replace other 'sync' with MEMORY_BARRIER.
3583 Don't have the 'asm' __volatile__.
3584
de262537
UD
35852000-04-11 Ulrich Drepper <drepper@redhat.com>
3586
3587 * internals.h: Define MEMORY_BARRIER as empty if not defined already.
3588 * spinlock.c (__pthread_lock): Add memory barriers.
3589 (__pthread_unlock): Likewise.
3590 * sysdeps/alpha/pt-machine.h (MEMORY_BARRIER): Define using mb
3591 instruction.
3592 (RELEASE): Not needed anymore.
3593 (__compare_and_swap): Mark asm as modifying memory.
3594 * sysdeps/powerpc/pt-machine.h (sync): Remove. Replace with definition
3595 of MEMORY_BARRIER.
3596 (__compare_and_swap): Use MEMORY_BARRIER instead of sync.
3597 * sysdeps/sparc/sparc32/pt-machine.h (RELEASE): Not needed anymore.
3598 (MEMORY_BARRIER): Define using stbar.
3599 * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Define using
3600 stbar.
3601 (__compare_and_swap): Use MEMORY_BARRIER to ensure ordering.
3602 Patch by Xavier Leroy <Xavier.Leroy@inria.fr> based on comments by
3603 Mike Burrows <m3b@pa.dec.com>.
3604
4186c9f4
UD
36052000-04-09 Ulrich Drepper <drepper@redhat.com>
3606
3607 * signals.c (sigaction): Fix return value for the case SIG is one
3608 of the signals the implementation uses.
3609 Patch by Xavier.Leroy@inria.fr.
3610
bd457114
UD
36112000-04-01 Andreas Jaeger <aj@suse.de>
3612
3613 * attr.c: Use shlib-compat macros.
3614 * oldsemaphore.c: Likewise.
3615 * pthread.c: Likewise.
3616 * weaks.c: Likewise.
3617
1edf26ff
UD
36182000-03-26 Ulrich Drepper <drepper@redhat.com>
3619
3620 * semaphore.c (sem_timedwait): New function.
3621 Patch by Carl Mailloux <carlm@oricom.ca>.
3622 * semaphore.h: Declare sem_timedwait.
8e605e78 3623 * Versions [libpthread] (GLIBC_2.2): Add sem_timedwait.
1edf26ff 3624
54f6cbb3
RM
36252000-03-26 Roland McGrath <roland@baalperazim.frob.com>
3626
3627 * sysdeps/pthread/Makefile: File removed.
3628
c0bc5f7b
UD
36292000-03-23 Ulrich Drepper <drepper@redhat.com>
3630
383052e9
UD
3631 * mutex.c (__pthread_reset_pthread_once): Reset once_masterlock.
3632 * internals.h (__pthread_reset_pthread_once): Add prototype.
3633 * ptfork.c (__fork): Call __pthread_reset_pthread_once.
3634
c0bc5f7b
UD
3635 * manager.c (pthread_handle_create): Store ID of new thread before
3636 clone call.
3637
0bf98029
UD
36382000-03-21 Ulrich Drepper <drepper@redhat.com>
3639
ef7dddd0
UD
3640 * attr.c: Use new macros from shlib-compat.h to define versions.
3641 * oldsemaphore.c: Likewise.
3642 * semaphore.c: Likewise.
3643 * weaks.c: Likewise.
3644
1ab1ea76
UD
3645 * pthread.c: Update for new SHLIB_COMPAT definition.
3646
101edd3f
UD
3647 * manager.c (__pthread_manager): Unmask debug signal.
3648
0bf98029
UD
3649 * pthread.c (pthread_initialize): Test for address of __dso_handle
3650 being NULL, not value. Use __on_exit, not on_exit.
e063cef8 3651 Patch by Andreas Jaeger <aj@suse.de>.
0bf98029 3652
75836bc8
UD
3653 * pthread.c: Use new macros from shlib-compat.h to define versions.
3654
a6a478e9
UD
36552000-03-19 Ulrich Drepper <drepper@redhat.com>
3656
3657 * pthread.c (pthread_initialize): Instead of on_exit use
3658 __cxa_atexit if __dso_label is available to allow unloading the
3659 libpthread shared library.
3660
13a83604
UD
36612000-03-16 Ulrich Drepper <drepper@redhat.com>
3662
3663 * condvar.c: Make tests for ownership of mutex less strict.
3664
30b416ea
UD
36652000-03-14 Ulrich Drepper <drepper@redhat.com>
3666
5d141597
UD
3667 * condvar.c (pthread_cond_wait): Check whether mutex is owned by
3668 current thread and return error if not.
04366d5f
UD
3669 (pthread_cond_timedwait_relative_old): Likewise.
3670 (pthread_cond_timedwait_relative_new): Likewise.
5d141597 3671
30b416ea
UD
3672 * mutex.c (__pthread_once): Handle cancelled init function correctly.
3673 (pthread_once_cancelhandler): New function.
3674 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3675
56eea8d1
UD
36762000-03-14 Andreas Jaeger <aj@suse.de>
3677
3678 * pthread.c (pthread_handle_sigcancel_rt): GS has been renamed to
3679 REG_GS.
3680 (pthread_handle_sigrestart_rt): Likewise.
3681 * signals.c (pthread_sighandler_rt): Likewise.
3682
3d9ebedb
AJ
36832000-03-02 Andreas Jaeger <aj@suse.de>
3684
3685 * sysdeps/pthread/bits/libc-lock.h: Fix typo.
3686 Reported by Sean Chen <sean.chen@turbolinux.com>.
3687
b041ebc2
UD
36882000-02-28 Andreas Jaeger <aj@suse.de>
3689
3690 * rwlock.c: Fix typo.
3691
0ed99ce4
UD
36922000-02-27 Ulrich Drepper <drepper@redhat.com>
3693
3694 * rwlock.c: Define __* variants of the functions and make old names
3695 aliases.
3696 * Versions [GLIBC_2.2]: Export the __pthread_rwlock_* functions.
3697 * sysdeps/pthread/bits/libc-lock.h: Define __libc_rwlock_* macros.
3698
d66732e0
UD
36992000-02-25 Andreas Jaeger <aj@suse.de>
3700
3701 * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
0ed99ce4
UD
3702 pwrite64, lseek64, open64, and __open64 with version 2.2.
3703
93a19c64
UD
37042000-02-22 Ulrich Drepper <drepper@redhat.com>
3705
3706 * semaphore.h (SEM_FAILED): Use 0 not NULL.
3707
ec91ea7c
UD
37082000-02-14 Ulrich Drepper <drepper@redhat.com>
3709
3710 * condvar.c (pthread_cond_timedwait_relative_old): Tight loop with
3711 nanosleep does not work either. Get absolute time inside the
3712 loop.
3713 (pthread_cond_timedwait_relative_new): Likewise.
3714 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3715
f5ff12d8
UD
37162000-02-13 Andreas Jaeger <aj@suse.de>
3717
3718 * condvar.c (pthread_cond_timedwait_relative_new): Fix last patch.
3719 (pthread_cond_timedwait_relative_old): Likewise.
3720
46661856
UD
37212000-02-13 Ulrich Drepper <drepper@redhat.com>
3722
3723 * condvar.c (pthread_cond_timedwait_relative_old): Undo last patch
3724 but keep the code around. A bug in the kernel prevent us from
3725 using the code.
3726 (pthread_cond_timedwait_relative_new): Likewise.
3727 (PR libc/1597 and libc/1598).
3728
b168cff2
UD
37292000-02-01 Kaz Kylheku <kaz@ashi.footprints.net>
3730
3731 * condvar.c (pthread_cond_timedwait_relative_old): Do tight
3732 loop around nanosleep calls instead of around most of the function
3733 (pthread_cond_timedwait_relative_new): Likewise.
3734 body. Got rid of backwards goto and one local.
3735
8a94dfe4
UD
37362000-01-31 Ulrich Drepper <drepper@redhat.com>
3737
3738 * condvar.c (pthread_cond_timedwait_relative_old): Recompute time
3739 before every nanosleep call to account for time spent in the rest
3740 of the function.
3741 (pthread_cond_timedwait_relative_new): Likewise.
3742 Patch by khendricks@ivey.uwo.ca (PR libc/1564).
3743
b6aa34eb
UD
37442000-01-29 Ulrich Drepper <drepper@redhat.com>
3745
3746 * condvar.c (pthread_cond_timedwait_relative_old): Get remaining time
3747 from nanosleep call so that in case we restart we only wait for the
3748 remaining time.
3749 (pthread_cond_timedwait_relative_new): Likewise.
3750 Patch by khendricks@ivey.uwo.ca (PR libc/1561).
3751
0af4c646
UD
37522000-01-18 Ulrich Drepper <drepper@cygnus.com>
3753
3754 * manager.c (pthread_allocate_stack): Compute guard page address
3755 correctly. Patch by HJ Lu.
3756
3757 * sysdeps/pthread/pthread.h: Define
3758 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP.
3759
2449110a
UD
37602000-01-16 Ulrich Drepper <drepper@cygnus.com>
3761
3762 * rwlock.c (pthread_rwlock_unlock): Correct one more problem with
3763 preference handling.
3764 (pthread_rwlockattr_setkind_np): Allow
3765 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
3766 Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
3767
03c0d6ef
UD
37682000-01-12 Ulrich Drepper <drepper@cygnus.com>
3769
3770 * internals.h (pthread_readlock_info): New structure.
3771 (_pthread_descr_struct): Add p_readlock_list, p_readlock_free, and
3772 p_untracked_readlock_count.
3773 * pthread.c (__pthread_initial_thread, pthread_manager_thread):
3774 Add initializers for new fields.
3775 * manager.c (pthread_free): Free read/write lock lists.
3776 * queue.h (queue_is_empty): New function.
3777 * rwlock.c: Implement requirements about when readers should get
3778 locks assigned.
3779 * sysdeps/pthread/pthread.h
3780 (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP): New definition.
3781 * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_rwlock_t):
3782 Define this name as well.
3783 Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
3784
d569d333
UD
37852000-01-05 Ulrich Drepper <drepper@cygnus.com>
3786
2ba3c836
UD
3787 * pthread.c (__pthread_initial_thread, pthread_manager_thread):
3788 Adjust initializers for struct _pthread_descr_struct change.
d569d333
UD
3789 * internals.h (struct _pthread_descr_struct): Move new elements to
3790 the end.
3791
1d2fc9b3
UD
37922000-01-03 Kaz Kylheku <kaz@ashi.footprints.net>
3793
3794 Redesigned how cancellation unblocks a thread from internal
3795 cancellation points (sem_wait, pthread_join,
3796 pthread_cond_{wait,timedwait}).
3797 Cancellation won't eat a signal in any of these functions
3798 (*required* by POSIX and Single Unix Spec!).
a3bfd999 3799 * condvar.c: Spontaneous wakeup on pthread_cond_timedwait won't eat a
1d2fc9b3
UD
3800 simultaneous condition variable signal (not required by POSIX
3801 or Single Unix Spec, but nice).
3802 * spinlock.c: __pthread_lock queues back any received restarts
3803 that don't belong to it instead of assuming ownership of lock
3804 upon any restart; fastlock can no longer be acquired by two threads
3805 simultaneously.
a3bfd999 3806 * restart.h: Restarts queue even on kernels that don't have
1d2fc9b3
UD
3807 queued real time signals (2.0, early 2.1), thanks to atomic counter,
3808 avoiding a rare race condition in pthread_cond_timedwait.
3809
1c5d4617
UD
38101999-12-31 Andreas Jaeger <aj@suse.de>
3811
3812 * internals.h: Remove duplicate prototype declarations.
3813
3814 * weaks.c: Remove __THROW from prototypes since the file is not
3815 compiled by a C++ compiler.
3816 * internals.h: Likewise.
3817
38181999-12-30 Andreas Jaeger <aj@suse.de>
3819
3820 * sysdeps/pthread/pthread.h: Move internal functions to...
3821 * sysdeps/pthread/bits/libc-lock.h: ...here.
3822
d876f532
UD
38231999-12-29 Andreas Jaeger <aj@suse.de>
3824
3825 * sysdeps/pthread/pthread.h: Fix typos, reformat comments.
3826
056e0358
UD
38271999-12-28 Ulrich Drepper <drepper@cygnus.com>
3828
3829 * sysdeps/alpha/pt-machine.h: Move stack_pointer definition to the
3830 beginning.
3831
3832 * manager.c (__pthread_start): Add one more cast to prevent
3833 warning on 64bit machines.
3834
46fd4f67
UD
38351999-12-21 Ulrich Drepper <drepper@cygnus.com>
3836
3837 * manager.c (pthread_handle_create): Set p_pid of new thread
3838 before calling the callback function to report a new thread.
3839
c63598bf
UD
38401999-12-20 Andreas Jaeger <aj@suse.de>
3841
3842 * pthread.c (pthread_initialize): Move getrlimit call after
3843 setting of errno.
3844
b85697f6
UD
38451999-12-18 Ulrich Drepper <drepper@cygnus.com>
3846
778c59c8
UD
3847 * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
3848 pwrite64, lseek64, open64, and __open64.
3849 * wrapsyscall.c: Define pread, __pread64, pread64, pwrite, __pwrite64,
3850 pwrite64, lseek64, open64, and __open64.
3851
b85697f6
UD
3852 * manager.c (pthread_allocate_stack): Correct computation of
3853 new_thread_bottom. Correct handling of stack size and when the
3854 rlimit method to guard for stack growth is used.
3855 * pthread.c (pthread_initialize): Stack limit must be STACK_SIZE
3856 minus one pagesize (not two).
3857
b43b13ac
UD
38581999-12-03 Andreas Jaeger <aj@suse.de>
3859
3860 * Versions: Add __res_state with version GLIBC_2.2.
3861
3862 * errno.c (__res_state): New function to return thread specific
3863 resolver state.
3864
3865 * pthread.c (pthread_initialize): Initialize p_resp.
3866 (__pthread_reset_main_thread): Also set p_resp.
3867
3868 * manager.c (pthread_handle_create): Initialize p_resp.
3869
3870 * internals.h: Add thread specific resolver state.
3871 Based on patches by Adam D. Bradley <artdodge@cs.bu.edu>.
3872
d7a4856e
UD
38731999-12-01 Ulrich Drepper <drepper@cygnus.com>
3874
3875 * sysdeps/i386/pt-machine.h: Move stack_pointer definition to the
3876 beginning.
3877 * sysdeps/i386/i686/pt-machine.h: Likewise.
3878 Patches by Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>.
3879
ffd35632
UD
38801999-11-23 Ulrich Drepper <drepper@cygnus.com>
3881
3882 * manager.c (pthread_start_thread_event): Initialize p_pid already
3883 here.
3884
20bdb31b
UD
38851999-11-22 Ulrich Drepper <drepper@cygnus.com>
3886
3887 * internals.h: Add prototype for __pthread_manager_event.
3888 * manager.c (__pthread_manager_event): New function.
3889 (pthread_start_thread_event): Correct computation of self.
3890 Use INIT_THREAD_SELF.
3891 * pthread.c (__pthread_manager_thread): Initialize p_lock.
3892 (__pthread_initialize_manager): Respect event flags also for creation
3893 of the manager thread.
3894
178a145a
UD
38951999-11-08 Ulrich Drepper <drepper@cygnus.com>
3896
3897 * pthread.c (__pthread_initialize_manager): Initialize
3898 __pthread_manager_thread.p_tid.
3899
a9cb398f
UD
39001999-11-02 Ulrich Drepper <drepper@cygnus.com>
3901
ab86fbb1
UD
3902 * internals.h: Declare __pthread_last_event.
3903 * manager.c: Define __pthread_last_event.
3904 (pthread_handle_create): Set __pthread_last_event.
3905 (pthread_exited): Likewise.
3906 * join.c (pthread_exit): Likewise.
3907
a9cb398f
UD
3908 * Makefile (libpthread-routines): Add events.
3909 * events.c: New file.
3910 * internals.h: Protect against multiple inclusion.
3911 Include thread_dbP.h header.
3912 (struct _pthread_descr_struct): Add new fields p_report_events and
3913 p_eventbuf.
3914 Declare event reporting functions.
3915 * join.c (pthread_exit): Signal event if this is wanted.
3916 * manager.c (__pthread_threads_events): New variable.
3917 (pthread_handle_create): Take new parameters with event information.
3918 Signal TD_CREATE event if wanted.
3919 (__pthread_manager): Adjust pthread_handle_create call.
3920 (pthread_start_thread_event): New function. Block until manager is
3921 finished and then call pthread_start_thread.
3922 (pthread_exited): Signal TD_REAP event if wanted.
3923
8dd1e494
UD
39241999-10-26 Ulrich Drepper <drepper@cygnus.com>
3925
3926 * restart.h (suspend_with_cancellation): Rewrite as a macro.
3927
3928 * condvar.c (pthread_cond_timedwait_relative): Don't mark as inline.
3929
86cfe82d
UD
39301999-10-25 Andreas Jaeger <aj@suse.de>
3931
3932 * internals.h: Remove K&R compatibility.
3933 * no-tsd.c: Likewise.
3934 * semaphore.h: Likewise.
3935 * signals.c: Likewise.
3936 * sysdeps/pthread/bits/libc-tsd.h: Likewise.
3937 * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
3938 * weaks.c: Likewise.
3939
15daa639
UD
39401999-10-21 Xavier Leroy <Xavier.Leroy@inria.fr>
3941
d364e525
UD
3942 * pthread.c: For i386, wrap pthread_handle_sigrestart and
3943 pthread_handle_sigcancel with functions that restore %gs from the
3944 signal context. For each signal handling function, two wrappers
3945 are required, one for a non-RT signal and one for a RT signal.
3946 * signal.c: For i386, add code to restore %gs from the signal
3947 context in pthread_sighandler and pthread_sighandler_rt.
15daa639 3948
ef5d6645
UD
39491999-10-17 Ulrich Drepper <drepper@cygnus.com>
3950
3951 * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add cast.
3952
f6367df2
UD
39531999-10-14 Ulrich Drepper <drepper@cygnus.com>
3954
4a379216
UD
3955 * pthread.c (__pthread_initial_thread): Pass argument to
3956 PTHREAD_START_ARGS_INITIALIZER.
3957 (__pthread_manager_thread): Likewise.
3958
3959 * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add parameter to
3960 initialize function.
3961
f6367df2
UD
3962 * manager.c (pthread_handle_create): Remove p_startfct initialization.
3963
3964 * internals.h (_pthread_descr_struct): We don't need p_startfct field.
3965
d4c5cf80
UD
39661999-10-12 Ulrich Drepper <drepper@cygnus.com>
3967
3968 * internals.h: Correct return types for __libc_read and __libc_write.
3969
883c331a
UD
39701999-10-09 Andreas Jaeger <aj@suse.de>
3971
3972 * internals.h: Add __new_sem_post to get prototype in
3973 manager.c; include semaphore.h for needed types.
3974
c813f986
UD
39751999-10-08 Ulrich Drepper <drepper@cygnus.com>
3976
3977 * manager.c (__pthread_manager) [REQ_POST]: Use __new_sem_post
3978 directly instead of calling sem_post which should not be necessary
3979 but is faster and might help in some case to work around problems.
c1422e5b 3980 Patch by khendricks@ivey.uwo.ca [libc/1382].
c813f986 3981
0f5219d4
UD
39821999-10-08 Andreas Schwab <schwab@suse.de>
3983
3984 * sysdeps/pthread/Subdirs: New file.
3985 * Implies: Removed.
3986
9640bbe1
UD
39871999-10-07 Ulrich Drepper <drepper@cygnus.com>
3988
3989 * Implies: New file.
3990 * internals.h (struct _pthread_descr_struct): Add p_startfct.
3991 * manager.c (pthread_handle_create): Initialize p_startfct.
3992 * pthread.c: Define __linuxthread_pthread_sizeof_descr variable.
3993
079c00e6
UD
39941999-09-25 Ulrich Drepper <drepper@cygnus.com>
3995
d790bc34
UD
3996 * manager.c (__linuxthreads_pthread_threads_max): New variable.
3997 * specific.c (__linuxthreads_pthread_keys_max): New variable.
6e42b0f1 3998 (__linuxthreads_pthread_key_2ndlevel_size): New variable.
d790bc34 3999
079c00e6
UD
4000 * condvar.c (pthread_cond_timedwait_relative): Never return with
4001 EINTR. Patch by Andreas Schwab.
4002
b5c69d99
UD
40031999-09-19 Ulrich Drepper <drepper@cygnus.com>
4004
4005 * signals.c (sigaction): Correct last patch. Don't select
4006 pthread_sighandler_rt based on the signal number but instead of
4007 the SA_SIGINFO flag.
4008
d790bc34
UD
40091999-09-23 Ulrich Drepper <drepper@cygnus.com>
4010
4011 * specific.c: Move definitions of struct pthread_key_struct and
4012 destr_function to ...
4013 * internals.h: ...here.
4014
9cf44e65
UD
40151999-09-18 Ulrich Drepper <drepper@cygnus.com>
4016
4017 * pthread.c (pthread_handle_sigrestart_rt): New function. Use
4018 this instead of pthread_handle_sigrestart if the signal is an RT
4019 signal.
4020
4021 * signals.c: Handle passing through of sighandler arguments also
4022 for real-time signals.
4023
4fe53b3a
UD
40241999-09-03 Andreas Schwab <schwab@suse.de>
4025
4026 * ptfork.c (__fork): Renamed from fork and use __libc_fork. Add
4027 fork as weak alias.
4028 (__vfork): New function, alias vfork.
4029 * Versions: Export __fork, vfork, and __vfork in libpthread.
4030
1d0b89a4
UD
40311999-08-23 Andreas Schwab <schwab@suse.de>
4032
4033 * signals.c (pthread_sighandler): Add SIGCONTEXT_EXTRA_ARGS to
4034 call to signal handler.
4035
6570e194
UD
40361999-08-20 Ulrich Drepper <drepper@cygnus.com>
4037
4038 * pthread.c (__pthread_reset_main_thread): Undo last change.
4039 (__pthread_kill_other_threads_np): Reset signal handlers for the
4040 signals we used in the thread implementation here.
4041
70aea399
UD
40421999-08-19 Ulrich Drepper <drepper@cygnus.com>
4043
2b638910 4044 * pthread.c (__pthread_reset_main_thread): Reset signal handlers
68ea6c18 4045 for the signals we used in the thread implementation [PR libc/1234].
2b638910 4046
264ec183
UD
4047 * Versions: Export __pthread_kill_other_threads_np from libpthread
4048 for GLIBC_2.1.2.
4049
70aea399
UD
4050 * signals.c: Pass sigcontext through wrapper to the user function.
4051
ff5fad16
UD
40521999-08-01 Ulrich Drepper <drepper@cygnus.com>
4053
4054 * Versions [ld.so] (GLIBC_2.0): Export __libc_internal_tsd_get and
4055 __libc_internal_tsd_set.
4056
6b798621
UD
40571999-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4058
4059 * manager.c: Remove inclusion of <linux/tasks.h> since it's not
4060 needed anymore.
4061
76a16b8f
UD
40621999-07-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4063
4bf307e3 4064 * internals.h: Align _pthread_descr_struct to 32 bytes.
76a16b8f
UD
4065 Reported by Tim Hockin <thockin@cobaltnet.com>, close PR
4066 libc/1206.
4067
5ef2d37b
UD
40681999-07-09 Ulrich Drepper <drepper@cygnus.com>
4069
4070 * oldsemaphore.c (sem_compare_and_swap): Fix use of compare and
4071 swap function.
4072
c2fa5b5a
UD
40731999-07-09 Cristian Gafton <gafton@redhat.com>
4074
4075 * Makefile (libpthread-routines): Add oldsemaphore routine.
ae3c1571
UD
4076 * Versions: Add sem_destroy, sem_getvalue, sem_init, sem_post,
4077 sem_trywait, and sem_wait to GLIBC_2.1.
c2fa5b5a
UD
4078 * oldsemaphore.c: New file.
4079 * semaphore.c: Add default_symbol_versions for the changed functions.
4080 (__new_sem_init): Rename from sem_init.
4081 (__new_sem_post): Rename from sem_post.
4082 (__new_sem_wait): Rename from sem_wait.
4083 (__new_sem_trywait): Rename from sem_trywait.
4084 (__new_sem_getvalue): Rename from sem_getvalue.
4085 (__new_sem_destroy): Rename from sem_destroy.
4086
6a1db4ff
UD
40871999-06-23 Robey Pointer <robey@netscape.com>
4088
4089 * internals.h: Added p_nextlock entry to separate queueing for a
4090 lock from queueing for a CV (sometimes a thread queues on a lock
4091 to serialize removing itself from a CV queue).
4092 * pthread.c: Added p_nextlock to initializers.
4093 * spinlock.c: Changed to use p_nextlock instead of p_nextwaiting.
4094
019e7a64
UD
40951999-07-09 Ulrich Drepper <drepper@cygnus.com>
4096
4097 * manager.c (pthread_handle_create): Free mmap region after stack
4098 if clone failed. Patch by Kaz Kylheku <kaz@ashi.FootPrints.net>.
4099
33d1a2c5
UD
41001999-05-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4101
4102 * man/pthread_cond_init.man: Correct example.
4103 Reported by Tomas Berndtsson <tomas@nocrew.org>.
4104
4105 * linuxthreads.texi (Condition Variables): Likewise.
4106
407d26b7
UD
41071999-05-18 Jakub Jelinek <jj@ultra.linux.cz>
4108
4109 * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): Use
4110 casx not cas, also successful casx returns the old value in rd
4111 and not the new value.
4112
431c33c0
UD
41131999-05-16 Xavier Leroy <Xavier.Leroy@inria.fr>
4114
4115 * manager.c: If pthread_create() is given a NULL attribute
4116 and the thread manager runs with a realtime policy, set the
4117 scheduling policy of the newly created thread back to SCHED_OTHER.
4118 * manager.c: If the PTHREAD_INHERIT_SCHED attribute is given,
4119 initialize the schedpolicy field of new_thread->p_start_args
4120 to that of the calling thread.
4121
2c68584c
UD
41221999-04-29 Ulrich Drepper <drepper@cygnus.com>
4123
4124 * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): cas
4125 instruction does not allow memory element to use offset.
4126
390500b1
UD
41271999-04-28 Ulrich Drepper <drepper@cygnus.com>
4128
4129 * manager.c (pthread_allocate_stack): Optimize initialization of new
4130 thread descriptor.
4131
89afc233
UD
4132 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_define_initialized):
4133 Don't use initializer since it is all zeroes.
4134 (__libc_once_define): Likewise.
4135
1e76ce9c
UD
41361999-04-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4137
4138 * sysdeps/arm/Implies: Removed since cmpxchg/no-cmpxchg
4139 doesn't exist anymore.
4140 * sysdeps/i386/Implies: Likewise.
4141 * sysdeps/m68k/Implies: Likewise.
4142 * sysdeps/mips/Implies: Likewise.
4143 * sysdeps/powerpc/Implies: Likewise.
4144 * sysdeps/sparc/sparc32/Implies: Likewise.
4145 * sysdeps/sparc/sparc64/Implies: Likewise.
4146
46a4682d
UD
41471999-04-15 Ulrich Drepper <drepper@cygnus.com>
4148
4149 * sysdeps/alpha/bits/semaphore.h: Removed.
4150 * sysdeps/powerpc/bits/semaphore.h: Removed.
4151 * sysdeps/pthread/cmpxchg/bits/semaphore.h: Removed.
4152 * sysdeps/pthread/no-cmpxchg/bits/semaphore.h: Removed.
4153 * Makefile (headers): Remove bits/semaphore.h.
4154
4155 * semaphore.h: Define _pthread_descr if necessary.
4156 Don't include limits.h. Define SEM_VALUE_MAX directly.
4157 Define SEM_FAILED.
4158 (sem_t): Protect element names with leading __.
4159 Add declarations for sem_close, sem_open, and sem_unlink.
4160 * semaphore.c: Adjust all functions for new element names.
4161 Define sem_close, sem_open, and sem_unlink.
4162 * Versions (libthread): Add sem_close, sem_open, and sem_unlink for
4163 GLIBC_2.1.1.
4164 * sysdeps/pthread/bits/pthreadtypes.h: Define _pthread_descr only if
4165 necessary.
4166
ea48e2c4
UD
41671999-03-16 H.J. Lu <hjl@gnu.org>
4168
4169 * specific.c (pthread_key_delete): Check th->p_terminated to see
4170 if the thread is running.
4171
670af0d9
UD
4172 * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set):
4173 Added to GLIBC_2.0 for libc.so.
4174
0543cd26
UD
41751999-02-12 H.J. Lu <hjl@gnu.org>
4176
4177 * Versions (__libc_current_sigrtmin, __libc_current_sigrtmax,
4178 __libc_allocate_rtsig): Added to GLIBC_2.1.
4179
4180 * internals.h (DEFAULT_SIG_RESTART): Removed.
4181 (DEFAULT_SIG_CANCEL): Removed.
4182
4183 * pthread.c (init_rtsigs, __libc_current_sigrtmin,
4184 __libc_current_sigrtmax, __libc_allocate_rtsig): New functions.
4185 (__pthread_sig_restart, __pthread_sig_cancel,
4186 __pthread_sig_debug): Initialized.
4187 (pthread_initialize): Call init_rtsigs () to initialize
4188 real-time signals.
4189
f5492334
UD
41901999-02-03 H.J. Lu <hjl@gnu.org>
4191
4192 * manager.c (__pthread_manager): Do block __pthread_sig_debug.
4193 Don't restart the thread which sent REQ_DEBUG.
4194 (pthread_start_thread): Check if __pthread_sig_debug > 0
4195 before debugging.
4196
4197 * pthread.c (__pthread_initialize_manager): Suspend ourself
4198 after sending __pthread_sig_debug to gdb instead of
4199 __pthread_sig_cancel.
4200
8f0302ee
UD
42011999-01-24 H.J. Lu <hjl@gnu.org>
4202
4203 * manager.c (__pthread_manager): Delete __pthread_sig_debug
4204 from mask if __pthread_sig_debug > 0.
4205 (pthread_handle_create): Increment __pthread_handles_num.
4206
4207 * manager.c (pthread_handle_create): Don't pass CLONE_PTRACE to clone.
4208 * pthread.c (__pthread_initialize_manager): Likewise.
4209
4210 * pthread.c (pthread_initialize): Use __libc_allocate_rtsig (1)
4211 instead of __libc_allocate_rtsig (2).
4212 (__pthread_initialize_manager): Send __pthread_sig_debug to gdb
4213 instead of __pthread_sig_cancel.
4214 (pthread_handle_sigdebug): Fix comments.
4215
82df2969
UD
42161999-01-21 Ulrich Drepper <drepper@cygnus.com>
4217
4218 * manager.c (pthread_allocate_stack): Set
4219 __pthread_nonstandard_stacks if user-specified stack is used.
4220
482eec0d
UD
42211999-01-16 Ulrich Drepper <drepper@cygnus.com>
4222
4223 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _LFS_ASYNCHRONOUS_IO,
4224 _LFS_LARGEFILE, _LFS64_LARGEFILE, and _LFS64_STDIO from Unix98.
4225
b92ad8d6
UD
42261999-01-07 Xavier Leroy <Xavier.Leroy@inria.fr>
4227
4228 * pthread.c: Use a third signal __pthread_sig_debug distinct
4229 from __pthread_sig_cancel to notify gdb when a thread is
4230 created
4231 * manager.c: Likewise.
4232 * internals.h: Likewise.
4233 * signals.c: The implementation of sigwait(s) assumed that
4234 all signals in s have signal handlers already attached.
4235 This is not required by the standard, so make it work
4236 also if some of the signals have no handlers.
4237
34992338
UD
42381999-01-05 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
4239
4240 * linuxthreads.texi: Remove pointers from first @node. Move old
4241 @node spec inside comment.
4242
118bad87
UD
42431998-12-31 Ulrich Drepper <drepper@cygnus.com>
4244
4245 * sysdeps/pthread/bits/stdio-lock.h: Define _IO_lock_lock and
4246 _IO_lock_unlock.
4247
c046e7a5
UD
42481998-12-29 Ulrich Drepper <drepper@cygnus.com>
4249
4250 * semaphore.c (sem_trywait): Don't forget to unlock the semaphore
4251 lock. Patch by Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>.
4252
361d49e6
UD
42531998-12-21 Ulrich Drepper <drepper@cygnus.com>
4254
4255 * manager.c: Threads now send __pthread_sig_cancel on termination.
4256 Change clone call and signal masks.
4257 * thread.c (pthread_handle_sigrestart): Remove special code for
4258 manager.
4259 (pthread_handle_sigcancel): In manager thread call
4260 __pthread_manager_sighandler.
4261 * sysdeps/i386/pt-machine.h (__compare_and_swap): Add memory clobber.
4262 * sysdeps/i386/i686/pt-machine.h: Likewise.
4263 Patches by Xavier Leroy.
4264
4260bc74
UD
42651998-12-14 Ulrich Drepper <drepper@cygnus.com>
4266
361d49e6 4267 * spinlock.c (__pthread_unlock): Don't crash if called for an
fbaf6e72
UD
4268 untaken mutex. Reported by Ruslan V. Brushkoff <rus@Snif.Te.Net.UA>.
4269
4260bc74
UD
4270 * Examples/ex6.c: Unbuffer stdout and reduce sleep time to reduce
4271 overall runtime.
4272
e3743e2f
UD
42731998-12-13 Ulrich Drepper <drepper@cygnus.com>
4274
4275 * Examples/ex3.c: Wait until all threads are started before
4276 searching for the number to avoid race condition on very fast
4277 systems.
4278
8632b240
UD
42791998-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4280
4281 * sysdeps/pthread/pthread.h: Remove __pthread_setcanceltype
2eda5d9b 4282 declaration since it's not needed.
8632b240
UD
4283
4284 * sysdeps/pthread/pthread.h: Move internal functions to ...
4285 * internals.h: ...here.
4286
a6ff34d7
UD
42871998-12-02 H.J. Lu <hjl@gnu.org>
4288
4289 * pthread.c (__pthread_sig_restart): Initiliaze to 0 if
4290 SIGRTMIN is defined.
4291 (__pthread_sig_cancel): Likewise.
4292
628a0aa1
UD
42931998-12-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4294
4295 * wrapsyscall.c: Include <sys/mman.h> for msync,
4296 <stdlib.h> for system and <termios.h> for tcdrain prototype.
4297 Correct msync declaration.
4298
348ed515
UD
42991998-11-29 Roland McGrath <roland@baalperazim.frob.com>
4300
4301 * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_define, __libc_tsd_get,
4302 __libc_tsd_set): New macros for new interface.
4303 * no-tsd.c: New file, provide uninitialized defns of
4304 __libc_internal_tsd_get and __libc_internal_tsd_set.
4305 * Makefile (routines): Add no-tsd.
4306
43071998-10-12 Roland McGrath <roland@baalperazim.frob.com>
4308
4309 * internals.h: Include <bits/libc-tsd.h>, not <bits/libc-lock.h>.
4310 * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
4311 __libc_internal_tsd_set): Move decls to ...
4312 * sysdeps/pthread/bits/libc-tsd.h: New file for __libc_internal_tsd_*
4313 declarations.
4314
4315 * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
4316 __libc_internal_tsd_set): Make these pointers to functions, not
4317 functions; remove #pragma weak decls for them.
4318 * specific.c (__libc_internal_tsd_get, __libc_internal_tsd_set):
4319 Define static functions and initialized pointers to them.
4320
97dac76c
UD
43211998-11-18 Ulrich Drepper <drepper@cygnus.com>
4322
4323 * Makefile (CFLAGS-mutex.c): Define as -D__NO_WEAK_PTHREAD_ALIASES.
4324 (CFLAGS-specific.c): Likewise.
4325 (CFLAGS-pthread.c): Likewise.
4326 (CFLAGS-ptfork.c): Likewise.
4327 (CFLAGS-cancel.c): Likewise.
4328 * sysdeps/pthread/bits/libc-lock.h: Don't mark __pthread_* functions
4329 as weak references if __NO_WEAK_PTHREAD_ALIASES is defined.
4330
4331 * mutex.c (pthread_mutex_init): Define as strong symbol.
4332 (pthread_mutex_destroy): Likewise.
4333 (pthread_mutex_trylock): Likewise.
4334 (pthread_mutex_lock): Likewise.
4335 (pthread_mutex_unlock): Likewise.
4336 (pthread_mutexattr_init): Likewise.
4337 (pthread_mutexattr_destroy): Likewise.
4338 (pthread_once): Likewise.
4339 * ptfork.c (pthread_atfork): Likewise.
4340 * specific.c (pthread_key_create): Likewise.
4341 (pthread_setspecific): Likewise.
4342 (pthread_getspecific): Likewise.
4343
8b7fb588
UD
43441998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
4345
4346 * linuxthreads.texi: Fix punctuation after xref.
4347
d2537a47
UD
43481998-11-10 H.J. Lu <hjl@gnu.org>
4349
4350 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine NR_OPEN
4351 if it is defined in <linux/limits.h>.
4352
d5cabaa4
UD
43531998-10-29 14:28 Ulrich Drepper <drepper@cygnus.com>
4354
4355 * spinlock.h (__pthread_trylock): Define inline.
4356 (__pthread_lock): Add extra parameter to declaration. Declare
4357 using internal_function.
4358 (__pthread_unlock): Declare using internal_function.
4359 * spinlock.c (__pthread_lock): Add new parameter. Use it instead
4360 of local variable self. Avoid recomputing self. Define using
4361 internal_function.
4362 (__pthread_trylock): Remove.
4363 (__pthread_unlock): Define using internal_function.
4364 * cancel.c: Adjust for __pthread_lock interface change. Use already
4365 computed self value is possible.
4366 * condvar.c: Likewise.
4367 * join.c: Likewise.
4368 * manager.c: Likewise.
4369 * mutex.c: Likewise.
4370 * pthread.c: Likewise.
4371 * rwlock.c: Likewise.
4372 * semaphore.c: Likewise.
4373 * signals.c: Likewise.
4374
c70ca1fa
UD
43751998-10-27 13:46 Ulrich Drepper <drepper@cygnus.com>
4376
4377 * sysdeps/pthread/pthread.h (struct _pthread_cleanup_buffer): Prepend
4378 __ to field names of the struct.
4379 * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_fastlock):
4380 Likewise.
4381 (pthread_attr_t): Likewise.
4382 (pthread_cond_t): Likewise.
4383 (pthread_condattr_t): Likewise.
4384 (pthread_mutex_t): Likewise.
4385 (pthread_mutexattr_t): Likewise.
4386 (pthread_rwlock_t): Likewise.
4387 (pthread_rwlockattr_t): Likewise.
4388 * attr.c: Adjust for pthread.h and pthreadtypes.h change.
4389 * cancel.c: Likewise.
4390 * condvar.c: Likewise.
4391 * manager.c: Likewise.
4392 * mutex.c: Likewise.
4393 * pthread.c: Likewise.
4394 * ptlongjmp.c: Likewise.
4395 * rwlock.c: Likewise.
4396 * spinlock.c: Likewise.
4397
a5d1d726
UD
43981998-10-09 Ulrich Drepper <drepper@cygnus.com>
4399
7ccc548b
UD
4400 * sysdeps/i386/pt-machine.h (get_eflags, set_eflags): Mark these
4401 also with PT_EI.
4402
a5d1d726
UD
4403 * sysdeps/i386/i686/pt-machine.h: Remove unused inline
4404 definitions.
4405
9a29bc37
UD
4406 * Makefile (libpthread-routines): Add pt-machine.
4407 * pt-machine.c: New file.
4408 * sysdeps/alpha/pt-machine.h: Define PT_EI as extern inline is not
4409 yet defined. Use PT_EI in extern inline definitions.
4410 * sysdeps/arm/pt-machine.h: Likewise.
4411 * sysdeps/i386/pt-machine.h: Likewise.
4412 * sysdeps/i386/i686/pt-machine.h: Likewise.
4413 * sysdeps/m68k/pt-machine.h: Likewise.
4414 * sysdeps/mips/pt-machine.h: Likewise.
4415 * sysdeps/powerpc/pt-machine.h: Likewise.
4416 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
4417 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
4418
c10bb795
UD
44191998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4420
4421 * semaphore.h: Include <sys/types.h> so that _pthread_descr
4422 is declared.
4423
44241998-09-15 David S. Miller <davem@pierdol.cobaltmicro.com>
4425
4426 * sysdeps/sparc/sparc32/pt-machine.h (INIT_THREAD_SELF): Add nr
4427 argument.
4428 * sysdeps/sparc/sparc64/pt-machine.h (INIT_THREAD_SELF): Likewise.
4429
44301998-09-12 14:24 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
4431
d364e525
UD
4432 * sysdeps/unix/sysv/linux/bits/sigthread.h: Add multiple inclusion
4433 guard.
c10bb795 4434
5e0889da
UD
44351998-09-02 11:08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4436
4437 * signals.c (sigaction): Check that sig is less than NSIG to avoid
4438 array index overflow.
4439
6796bc80
UD
44401998-09-06 10:56 Ulrich Drepper <drepper@cygnus.com>
4441
4442 * sysdeps/pthread/semaphore.h: New file.
4443
be935610
UD
44441998-09-06 09:08 Ulrich Drepper <drepper@cygnus.com>
4445
4446 * sysdeps/pthread/bits/libc-lock.h (enum __libc_tsd_key_t): Add
4447 _LIBC_TSD_KEY_DL_ERROR.
4448
bfce746a
UD
44491998-08-31 Ulrich Drepper <drepper@cygnus.com>
4450
7afab53d 4451 * sysdeps/i386/i686/pt-machine.h (testandset): Add memory clobber.
6a805a0b 4452 * sysdeps/i386/pt-machine.h: Likewise.
bfce746a
UD
4453 Suggested by Roland McGrath.
4454
75311719
UD
44551998-08-28 13:58 Ulrich Drepper <drepper@cygnus.com>
4456
4457 * internals.h: Also define THREAD_GETMEM_NC and THREAD_SETMEM_NC to
4458 access thread data with non-constant offsets.
4459 * specific.c: Use THREAD_GETMEM_NC and THREAD_SETMEM_NC where
4460 necessary.
4461
4462 * sysdeps/i386/useldt.h: Fix typo. Add THREAD_GETMEM_NC and
4463 THREAD_SETMEM_NC definitions.
4464
4465 * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM_NC and
4466 THREAD_SETMEM_NC.
4467 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
4468
00a2f9aa
UD
44691998-08-26 15:46 Ulrich Drepper <drepper@cygnus.com>
4470
4471 * internals.h: Define THREAD_GETMEM and THREAD_SETMEM to default if
4472 not already defined.
4473 (struct _pthread_descr_struct): Add p_self and p_nr field.
4474 * manager.c (__pthread_handles): Define second element to point
4475 to manager thread.
4476 (__pthread_handles_num): Initialize to 2.
4477 (__pthread_manager): Use INIT_THREAD_SELF with two arguments.
4478 (pthread_start_thread): Likewise.
4479 (pthread_handle_create): Start search for free slot at entry 2.
4480 Initialize new fields p_self and p_nr.
4481 Call __clone with CLONE_PTRACE if available.
4482 (pthread_free): Call FREE_THREAD_SELF if available.
4483 * pthread.c (__pthread_initial_thread): Initialize new fields.
4484 (__pthread_manager_thread): Likewise.
4485 (__pthread_initialize_manager): Call __clone with CLONE_PTRACE.
4486
4487 * cancel.c: Use THREAD_GETMEM and THREAD_SETMEM to access the
4488 elements of the thread descriptor.
4489 * condvar.c: Likewise.
4490 * errno.c: Likewise.
4491 * join.c: Likewise.
4492 * manager.c: Likewise.
4493 * pthread.c: Likewise.
4494 * ptlongjmp.c: Likewise.
4495 * semaphore.c: Likewise.
4496 * signals.c: Likewise.
4497 * specific.c: Likewise.
4498 * spinlock.c: Likewise.
4499
4500 * sysdeps/alpha/pt-machine.h (INIT_THREAD_SELF): Add extra parameter.
4501
4502 * sysdeps/i386/useldt.h: New file.
4503 * sysdeps/i386/i686/pt-machine.h: Show how to use this file.
4504
4505 * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM and
4506 THREAD_SETMEM using __thread_self.
4507 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
4508
ed1ac6a2
UD
45091998-08-24 Geoff Keating <geoffk@ozemail.com.au>
4510
4511 * spinlock.c (__pthread_lock): Reset p_nextwaiting to NULL if it
4512 turned out that we didn't need to queue after all.
4513
45141998-08-22 Geoff Keating <geoffk@ozemail.com.au>
4515
4516 * sysdeps/powerpc/pt-machine.h: Remove testandset, it's not used
4517 and wastes space; correct types.
4518
cf0fd016
UD
45191998-08-08 11:18 H.J. Lu <hjl@gnu.org>
4520
4521 * signals.c (sigaction): Handle NULL argument.
4522
d358336f
UD
45231998-08-04 Ulrich Drepper <drepper@cygnus.com>
4524
4525 * sysdeps/unix/sysv/linux/bits/sigthread.h: Use __sigset_t instead
4526 of sigset_t.
4527
7cabd57c
UD
45281998-08-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4529
4530 * Makefile (linuxthreads-version): Extract correct number from
4531 Banner.
4532
ddbf7fef
UD
45331998-07-29 Xavier Leroy <Xavier.Leroy@inria.fr>
4534
4535 * Banner: Bump version number to 0.8
4536 * FAQ.html: Many updates, in particular w.r.t. debugging.
4537 * manager.c: Support for non-default stacksize for
4538 LinuxThreads-allocated stacks;
4539 don't use guard pages for stacks with default size, rely on
4540 rlimit(RLIMIT_STACK) instead (it's cheaper).
4541 * attr.c: Likewise.
4542 * cancel.c: Use __pthread_sig_cancel and __pthread_sig_restart
4543 everywhere instead of PTHREAD_SIG_CANCEL and PTHREAD_SIG_RESTART.
4544 * condvar.c: Likewise.
4545 * internals.h: Likewise.
4546 * restart.h: Likewise.
4547 * signals.c: Likewise.
4548 * pthread.c: Likewise; set rlimit(RLIMIT_STACK) as we need it.
4549
6c202c68
UD
45501998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4551
4552 * weaks.c: Define pthread_mutexattr_[sg]ettype instead of
4553 __pthread_mutexattr_[sg]ettype. Add more weak aliases.
4554 * Versions: Put __pthread_mutexattr_settype under version
4555 GLIBC_2.0. Don't export __pthread_mutexattr_setkind_np and
4556 __pthread_mutexattr_gettype.
4557
45581998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4559
4560 * sysdeps/pthread/bits/libc-lock.h: Make
4561 __pthread_mutexattr_settype weak. Don't make
4562 __pthread_mutexattr_setkind_np weak.
4563
50304ef0
UD
45641998-07-16 10:52 Ulrich Drepper <drepper@cygnus.com>
4565
4566 * manager.c (pthread_handle_create): Check whether sched_setscheduler
4567 call can succeed here.
4568
4569 * mutex.c: Define __pthread_mutexattr_settype and make
4570 __pthread_mutexattr_setkind_np an alias.
4571 Likewise for __pthread_mutexattr_gettype.
4572
45731998-07-15 11:00 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
4574
4575 * attr.c (pthread_attr_setschedpolicy): Don't check whether caller
4576 is root.
4577
c764b9a7
UD
45781998-07-14 19:38 Ulrich Drepper <drepper@cygnus.com>
4579
4580 * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_end.
4581
ceb27555
UD
45821998-07-11 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4583
4584 * Examples/ex6.c: Include <unistd.h> for usleep.
4585
b1209f90
UD
45861998-06-13 11:04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4587
4588 * Examples/ex4.c (main): Use exit, not pthread_exit.
4589
6077fe6e
UD
45901998-07-09 13:39 Ulrich Drepper <drepper@cygnus.com>
4591
4592 * Versions: Add __pthread_mutexattr_gettype and
4593 __pthread_mutexattr_settype.
4594 * lockfile.c: Use __pthread_mutexattr_settype instead of
4595 __pthread_mutexattr_setkind_np.
4596 * mutex.c: Define __pthread_mutexattr_gettype and
4597 __pthread_mutexattr_settype.
4598 * weak.c: Likewise.
e918a7fe
UD
4599 * sysdeps/pthread/pthread.h: Declare __pthread_mutexattr_gettype and
4600 __pthread_mutexattr_settype.
4601 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init_recursive):
4602 Use __pthread_mutexattr_settype.
6077fe6e 4603
4bae5567
UD
46041998-07-08 22:26 Ulrich Drepper <drepper@cygnus.com>
4605
4606 * Versions: Add pthread_mutexattr_gettype, pthread_mutexattr_settype.
4607 * mutex.c: Define weak alias pthread_mutexattr_gettype and
4608 pthread_mutexattr_settype.
4609 * sysdeps/pthread/pthread.h: Declare these functions.
4610 Move pthread_sigmask and pthread_kill declaration in separate header.
4611 * sysdeps/unix/sysv/linux/bits/sigthread.h: New file.
4612
0302fece
UD
46131998-07-07 15:20 Ulrich Drepper <drepper@cygnus.com>
4614
4615 * Makefile: Add rules to compile and run tests.
4616 * Examples/ex1.c: Little changes to fix warnings.
4617 * Examples/ex2.c: Likewise.
4618 * Examples/ex3.c: Likewise.
4619 * Examples/ex4.c: Likewise.
4620 * Examples/ex5.c: Likewise.
4621 * Examples/ex6.c: New file.
4622
77ccaba1
UD
46231998-07-05 11:54 Ulrich Drepper <drepper@cygnus.com>
4624
6777b467 4625 * Versions: Add pthread_attr_init to GLIBC_2.1 version in libc.
77ccaba1 4626
ba9234d9
UD
46271998-07-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4628
4629 * attr.c: Include <string.h>.
4630
d64fae6a
UD
46311998-06-30 11:47 Ulrich Drepper <drepper@cygnus.com>
4632
4633 * attr.c: Include errno.h. Use memcpy to copy sched_param.
4634 * internals.h: Include limits.h.
4635 * manager.c: Use memcpy to copy sched_param.
4636 * ptfork.c: Include errno.h.
4637 * pthread.c: Likewise.
4638 * semaphore.c: Likewise.
4639 * specific.c: Likewise.
4640 * spinlock.h: Likewise.
4641 * sysdeps/pthread/pthread.h: Include only allowed headers. Move
4642 type definition to ...
4643 * sysdeps/pthread/bits/pthreadtypes.h: ...here. New file.
4644
fdacb17d
UD
46451998-06-29 12:34 Ulrich Drepper <drepper@cygnus.com>
4646
4647 * sysdeps/pthread/pthread.h: Use __PMT not __P for function pointers.
4648
4649 * sysdeps/pthread/pthread.h: Define various PTHREAD_* symbols also
4650 as macros as demanded in POSIX.1, Annex C.
4651
46521998-06-29 12:29 Ulrich Drepper <drepper@cygnus.com>
4653
4654 * internals.h (struct pthread_request): For free use pthread_t
4655 instead of pthread_descr.
4656 * join.c (pthread_join): Pass thread_id, not th to manager.
4657 (pthread_detach): Likewise.
4658 * manager.c (__pthread_manager): Except thread ID in FREE_REQ case.
4659 (pthread_exited): Remove detached queue code.
4660 (pthread_handle_free): Expect thread ID parameter and use it to
4661 validate the thread decsriptor. Don't use detached queue.
4662 Patches by Xavier Leroy.
4663
46641998-06-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4665
4666 * libpthread.map: Export accept, longjmp, sigaction, siglongjmp,
4667 _IO_flockfile, _IO_ftrylockfile, _IO_funlockfile,
4668 __pthread_atfork, __pthread_key_create, __pthread_once.
4669 * internals.h: Doc fix.
4670 * pthread.c (__pthread_initialize): Define again.
4671
e138a800
UD
46721998-06-26 Ulrich Drepper <drepper@cygnus.com>
4673
026d5011
UD
4674 * manager.c (pthread_exited): If thread is not detached put it on
4675 special list.
4676 (pthread_handle_free): If thread is not on list with living threads
4677 search on list with detached threads.
4678
b195f6bc
UD
4679 * sysdeps/pthread/pthread.h (PTHREAD_RWLOCK_INITIALIZER): Correct
4680 for new definition of pthread_rwlock_t.
4681
e138a800
UD
4682 * spinlock.c: Correct test whether to compile
4683 __pthread_compare_and_swap or not.
4684
3387a425
UD
46851998-06-25 19:27 Ulrich Drepper <drepper@cygnus.com>
4686
4687 * attr.c: Finish user stack support. Change locking code to be safe
4688 in situations with different priorities.
4689 * cancel.c: Likewise.
4690 * condvar.c: Likewise.
4691 * internals.h: Likewise.
4692 * join.c: Likewise.
4693 * manager.c: Likewise.
4694 * mutex.c: Likewise.
4695 * pthread.c: Likewise.
4696 * ptlongjmp.c: Likewise.
4697 * queue.h: Likewise.
4698 * rwlock.c: Likewise.
4699 * semaphore.c: Likewise.
4700 * semaphore.h: Likewise.
4701 * signals.c: Likewise.
4702 * spinlock.c: Likewise.
4703 * spinlock.h: Likewise.
75c3a84f 4704 * sysdeps/pthread/pthread.h: Likewise.
df4099e8 4705 Patches by Xavier Leroy.
3387a425 4706
0ca7e46e 4707 * sysdeps/i386/i686/pt-machine.h: New file.
75c3a84f 4708
3387a425
UD
47091998-06-25 Ulrich Drepper <drepper@cygnus.com>
4710
4711 * sysdeps/pthread/pthread.h: Make [sg]et_stacksize and
4712 [sg]et_stackaddr prototypes always available.
4713
4714 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
4715 _POSIX_THREAD_ATTR_STACKSIZE and _POSIX_THREAD_ATTR_STACKADDR.
4716
d47aac39
UD
47171998-06-24 Ulrich Drepper <drepper@cygnus.com>
4718
4719 * manager.c (pthread_free): Undo patch from 980430.
4720 Reported by David Wragg <dpw@doc.ic.ac.uk>.
4721
69f234e8
UD
47221998-06-09 15:07 Ulrich Drepper <drepper@cygnus.com>
4723
4724 * manager.c: Define __pthread_manager_adjust_prio and use it to
4725 increase priority when needed.
4726 * internals.h: Add prototype for __pthread_manager_adjust_prio.
4727 * mutex.c: Optimize mutexes to wake up only one thread.
768cbca8 4728 * pthread.c: Move PID of manager for global variable in structure
69f234e8
UD
4729 element.
4730 Patches by Xavier Leroy.
4731
c0fb8a56
UD
47321998-06-07 13:47 Ulrich Drepper <drepper@cygnus.com>
4733
4734 * sysdeps/pthread/bits/libc-lock.h: Optimize cleanup handlers a bit.
4735
c6bd526f
UD
47361998-06-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4737
4738 * attr.c: Correct typo.
4739
f9119f49
UD
47401998-05-01 Ulrich Drepper <drepper@cygnus.com>
4741
4742 * manager.c (pthread_free): Unmap guard before the stack.
4743 Patch by Matthias Urlichs.
4744
3dd2c3e2
UD
47451998-04-30 Ulrich Drepper <drepper@cygnus.com>
4746
4747 * manager.c (pthread_free): Detect already free child.
4748 Patch by Xavier Leroy, reported by Matthias Urlichs.
4749
0111b224
UD
47501998-04-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4751
4752 * Makefile (linuxthreads-version): Renamed back from
4753 libpthread-version.
4754
f12944ec
UD
47551998-04-21 Ulrich Drepper <drepper@cygnus.com>
4756
26e119f1 4757 * ptlongjmp.c: Add prototypes for __libc_siglongjmp and
f12944ec
UD
4758 __libc_longjmp.
4759
8619129f
UD
47601998-04-20 14:55 Ulrich Drepper <drepper@cygnus.com>
4761
4762 * Makefile (libpthread-routines): Add ptlongjmp and spinlock.
4763 * internals.h: Add definitions for new spinlock implementation.
4764 * ptlongjmp.c: New file.
4765 * spinlock.c: New file.
4766 * spinlock.h (acquire): Don't reschedule using __sched_yield, use
4767 new function __pthread_acquire to prevent deadlocks with thread
4768 with different priorities.
4769 Patches by Xavier Leroy <Xavier.Leroy@inria.fr>.
4770
52cda958
UD
47711998-03-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4772
4773 * manager.c (__pthread_manager): Reduce first argument to select
4774 to include just the needed file descriptor.
4775
48fc3dd2
UD
47761998-03-17 00:06 Ulrich Drepper <drepper@cygnus.com>
4777
4778 * manager.c: Fix last patch which caused core dumps.
4779
4780 * pthread.c: Correctly handle missing SIGRTMIN.
4781
f649c201
UD
47821998-03-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4783
4784 * libpthread.map: Add __libc_internal_tsd_get and
4785 __libc_internal_tsd_set. Add missing cancelable functions. Export
4786 libc internal versions of the cancelable functions.
4787
14c44e2e
UD
47881998-03-13 16:51 Ulrich Drepper <drepper@cygnus.com>
4789
4790 * weaks.c: Define pthread_attr_init as GLIBC_2.0 and GLIBC_2.1.
4791
5d409851
UD
47921998-03-13 00:46 Ulrich Drepper <drepper@cygnus.com>
4793
4794 * attr.c: Implement pthread_attr_[gs]etguardsize,
4795 pthread_attr_[gs]setstackaddr, pthread_attr_[gs]etstacksize.
4796 Change pthread_attr_init to have two interfaces.
4797 * internals.h (struct _pthread_descr_struct): Add new fields for
4798 above functions.
4799 * libpthread.map: Add names in GLIBC_2.1 section.
4800 * manager.c (pthread_handle_create): Implement guardsize and
4801 user stack.
4802 (pthread_free): Likewise.
4803 * pthread.c (pthread_create): Add new interface for changed
4804 pthread_attr_t.
4805 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
4806 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add definition of
4807 PTHREAD_STACK_MIN.
4808
5afdca00
UD
48091998-03-11 00:42 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
4810
5d409851
UD
4811 * manager.c: Enable resetting of the thread scheduling policy
4812 to SCHED_OTHER when the parent thread has a different one.
5afdca00
UD
4813
48141998-02-01 13:51 Ulrich Drepper <drepper@cygnus.com>
4815
4816 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
4817 _POSIX_ASYNCHRONOUS_IO.
4818
4819 * sysdeps/pthread/pthread.h: Define bits for Unix98 variants of
4820 mutexes.
4821 * mutex.c: Implement new mutex types.
4822
4823 * internals.h: Include <signal.h>.
4824
4825 * libpthread.map: Add __erno_location and __h_errno_location.
4826
4827 * errno.c: Return pointer to variable actually in use. This might
4828 not be the one in the thread structure.
4829 * internals.h (struct _pthread_descr_struct): Add new fields p_errnop
4830 and p_h_errnop.
4831 * manager.c (__pthread_manager): Set p_errnop and p_h_errnop member
4832 of manager thread structure.
4833 (pthread_handle_create): Set p_errnop and p_h_errnop members for new
4834 thread.
4835 * pthread.c: Adapt initializer for thread structures.
4836 (__pthread_initial_thread): Set p_errnop and p_h_errnop member.
4837 (__pthread_reset_main_thread): Reset p_errnop and p_h_errnop of
4838 current thread to global variables.
4839
48401998-01-31 17:27 Ulrich Drepper <drepper@cygnus.com>
4841
4842 * rwlock.c: New file.
4843 * Makefile (libpthread-routines): Add rwlock.
4844 * sysdeps/pthread/pthread.h: Define data structures and declare
4845 functions.
4846 * libpthread.map: Add new functions.
4847
48481997-12-18 13:50 Philip Blundell <pb@nexus.co.uk>
4849
4850 * sysdeps/arm/pt-machine.h: New file; add ARM support.
4851 * sysdeps/arm/Implies: likewise.
4852 * README: Document it.
4853
48541997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4855
4856 * signals.c: Remove unneeded initializer for sigwaited, saving a
4857 warning.
4858
48591997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4860
4861 * semaphore.c (sem_init): Set sem_spinlock only if available.
4862
48631997-12-04 01:48 Ulrich Drepper <drepper@cygnus.com>
4864
4865 * mutex.c: Implement PTHREAD_MUTEX_CHECKERROR.
4866 * sysdeps/pthread/pthread.h: Define PTHREAD_MUTEX_CHECKERROR.
4867
4868 * Makefile: Update from LinuxThreads 0.7.
4869 * internals.h. Likewise.
4870 * manager.c: Likewise.
4871 * mutex.c: Likewise.
4872 * pthread.c: Likewise.
4873 * signals.c: Likewise.
4874 * specific.c: Likewise.
4875 * Examples/ex3.c: Likewise.
4876
48771997-11-20 18:13 Ulrich Drepper <drepper@cygnus.com>
4878
4879 * pthread.c (__pthread_reset_main_thread): Close pipe only if still
4880 open.
4881
48821997-10-29 05:38 Ulrich Drepper <drepper@cygnus.com>
4883
4884 * wrapsyscall.c: Add socket functions which are also cancelation
4885 points.
4886
48871997-10-19 21:40 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
4888
4889 * specific.c (__libc_internal_tsd_set, __libc_internal_tsd_get):
4890 New functions for fast thread specific data within libc.
4891
4892 * internals.h: Add new array p_libc_specific to struct
4893 _pthread_descr_struct.
4894
4895 * sysdeps/pthread/bits/libc-lock.h: Declare new functions.
4896
48971997-10-13 05:39 Ulrich Drepper <drepper@cygnus.com>
4898
4899 * semaphore.h: Add __BEGIN_DECLS/__END_DECLS.
4900 Reported by Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
4901
49021997-08-29 03:05 Ulrich Drepper <drepper@cygnus.com>
4903
4904 * internals.h (struct _pthread_descr_struct): Add definitions for
4905 two-level specific key handling.
4906 * manager.c (pthread_handle_create): Initialize specific memory array.
4907 * specific.c: Implement two-level key handling.
4908 * weaks.c: Don't provide dummy key handling.
4909 * sysdeps/pthread/bits/libc-lock.h: Typedef __libc_lock_t (no #define).
4910 Add definition of __libc_key_t.
4911 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define PTHREAD_KEYS_MAX
4912 as 1024.
4913 Add definition of _POSIX_THREAD_DESTRUCTOR_ITERATIONS and
4914 PTHREAD_DESTRUCTOR_ITERATIONS.
4915
4916 * manager.c (pthread_handle_create): Compare mmap result with
4917 MAP_FAILED.
4918
4919 * ptfork.c: Rename to __pthread_atfork and make old name a weak alias.
4920 * sysdeps/pthread/bits/pthread.h: Add prototype for __pthread_atfork.
4921
49221997-08-22 19:04 Richard Henderson <rth@cygnus.com>
4923
4924 sysdeps/sparc -> sysdeps/sparc/sparc32
4925 sysdeps/sparc64 -> sysdeps/sparc/sparc64
4926
4927 * internals.h: Change definition of THREAD_SELF to be an expression,
4928 not a statement that did a return.
4929 * sysdeps/alpha/pt-machine.h (THREAD_SELF): Update accordingly.
4930 * sysdeps/sparc/sparc32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
4931 Follow Solaris and use a "system reserved" register (%g6) to hold
4932 the thread descriptor.
4933 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
4934
49351997-08-03 00:09 Ulrich Drepper <drepper@cygnus.com>
4936
4937 * mutex.c: Correct pthread_once. Patch by Xavier Leroy.
4938 * sysdeps/pthread/pthread.h: Add prototype for __pthread_once.
4939 * sysdeps/pthread/bits/pthread.h: Add macros for __libc_once.
4940
4941 * semaphore.c: Include spinlock.h only when needed.
4942
4943 * specific.c (__pthread_setsepcific, __pthread_getspecific): Reject
4944 keys for entries not in use.
4945
4946 * weaks.c: Implement key handling functions for real.
4947
49481997-06-29 01:04 Richard Henderson <richard@gnu.ai.mit.edu>
4949
4950 Initial sparc64-linux support:
d364e525
UD
4951 * sysdeps/sparc64/Implies: New file.
4952 * sysdeps/sparc64/pt-machine.h: Likewise.
5afdca00
UD
4953
49541997-06-29 00:48 Ulrich Drepper <drepper@cygnus.com>
4955
4956 * semaphore.c: Include spinlock.h at correct place.
4957 Patch by HJ Lu.
4958
49591997-06-13 10:06 Richard Henderson <rth@tamu.edu>
4960
4961 The Great Bit File Move:
4962 * sysdeps/alpha/semaphorebits.h: -> .../bits/semaphore.h.
4963 * sysdeps/powerpc/semaphorebits.h: Likewise.
4964 * sysdeps/pthread/cmpxchg/semaphorebits.h: Likewise.
4965 * sysdeps/pthread/no-cmpxchg/semaphorebits.h: Likewise.
4966 * sysdeps/pthread/libc-lock.h: -> bits/
4967 * sysdeps/pthread/stdio-lock.h: Likewise.
4968 * sysdeps/unix/sysv/linux/local_lim.h: Likewise.
4969 * sysdeps/unix/sysv/linux/posix_opt.h: Likewise.
4970 * semaphore.h: Likewise.
4971 * sysdeps/pthread/pthread.h: Likewise.
4972
4973 * lockfile.c: <foo.h> -> <bits/foo.h>.
4974 * semaphore.h: Likewise.
4975
4976 * Makefile: (headers): foo.h -> bits/foo.h.
4977 * sysdeps/pthread/Makefile: Likewise.
4978
49791997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4980
4981 * semaphore.c (sem_init): Set sem_spinlock only if available.
4982
4983 * sysdeps/m68k/pt-machine.h (testandset, __compare_and_swap): Fix
4984 asm constraints.
4985
49861997-04-09 03:00 Ulrich Drepper <drepper@cygnus.com>
4987
4988 Update from LinuxThreads 0.6.
4989
4990 * attr.c (pthread_attr_getdetachstate): Use __sched_get_priority_max
4991 and __sched_get_priority_min instead of names without `__'.
4992
4993 * manager.c: Rewrite large parts to implement opaque pthread_t.
4994
4995 * cancel.c: Adapt for opaque pthread_t type.
4996 * condvar.c: Likewise.
4997 * errno.c: Likewise.
4998 * join.c: Likewise.
4999 * mutex.c: Likewise.
5000 * pthread.c: Likewise.
5001 * signals.c: Likewise.
5002 * specific.c: Likewise.
5003 * restart.h: Likewise.
5004 * queue.h: Likewise.
5005 * Examples/ex3.c: Likewise.
5006 * Examples/ex4.c: Likewise.
5007 * sysdeps/pthread/pthread.h: Likewise.
5008
5009 * pthread.c: Accumulate time for all threads in thread manager.
5010
5011 * semaphore.c: Implement fallback implementation for architectures
5012 sometimes missing compare-exchange operations.
5013
5014 * cancel.c (pthread_cancel): Validate handle argument.
5015 * join.c (pthread_join): Likewise.
5016 (pthread_detach): Likewise.
5017 * signals.c (pthread_kill): Likewise.
5018
5019 * spinlock.h (acquire): Use __sched_yield not sched_yield.
5020
5021 * queue.h (enqueue): Enqueue thread according to priority.
5022
5023 * internals.c (struct pthread_start_args): New struct for passing
5024 args to cloning function.
5025 (struct _pthread): Rename to _pthread_descr_struct and adapt for
5026 opaque pthread_t.
5027
5028 * Examples/Makefile (clean): Pass -f option to rm.
5029
5030 * sysdeps/i386/pt-machine.h: Add check for compare-exchange instruction
5031 and define TEST_FOR_COMPARE_AND_SWAP.
5032 * sysdeps/i386/i486/pt-machine.h: Removed.
5033
5034 * sysdeps/unix/sysv/linux/local_lim.h (PTHREAD_THREADS_MAX): Increase
5035 to 1024.
5036
50371997-04-04 16:38 Ulrich Drepper <drepper@cygnus.com>
5038
5039 * restart.h (suspend): Clear p_signal before suspending.
5040 (suspend_with_cancellation): Likewise.
5041 Patch by Xavier Leroy <Xavier.Leroy@inria.fr>.
5042
5043 * weaks.c: Make __pthread_key_create return 1.
5044 * sysdeps/pthread/libc-lock.h: Define __libc_key_create,
5045 __libc_getspecific, __libc_setspecific, and __libc_key_t.
5046 * sysdeps/pthread/stdio-lock.h: Don't care for implementation not
5047 using libio.
5048
50491997-03-19 15:13 Miguel de Icaza <miguel@nuclecu.unam.mx>
5050
5051 * sysdeps/sparc/pt-machine (RELEASE): Fix.
5052
50531997-03-01 07:55 Geoff Keating <geoffk@ozemail.com.au>
5054
5055 * sysdeps/powerpc/Implies: Added.
5056 * sysdeps/powerpc/pt-machine.h: Added.
5057 * sysdeps/powerpc/semaphorebits.h: Added.
5058
50591997-01-22 01:22 Ulrich Drepper <drepper@cygnus.com>
5060
d364e525 5061 * pthread.c (__pthread_initial_thread): Correct
5afdca00
UD
5062 initializer.
5063 (__pthread_manager_thread): Likewise.
5064 Reported by Andreas Jaeger.
5065
50661997-01-18 22:15 Richard Henderson <rth@tamu.edu>
5067
5068 Since sigset_t no longer fits in a register, we can't pass in the
5069 thread's initial mask so easily. Take this opportunity to simplify
5070 the clone implementation by only accepting a single void* argument.
5071
d364e525
UD
5072 * manager.c (__pthread_manager): Put thread vitals in the thread
5073 struct instead of as arguments through clone.
5afdca00 5074 (pthread_start_thread): Look for them there.
d364e525 5075 * internals.h (struct _pthread): Add p_initial_fn,
5afdca00 5076 p_initial_fn_arg, p_initial_mask. Fix __pthread_manager proto.
d364e525 5077 * pthread.c (pthread_initialize_manager): Revise clone invocation.