]> sourceware.org Git - glibc.git/blame - linuxthreads/ChangeLog
* Makerules: Filter $(install-lib-ldscripts) out of list of targets
[glibc.git] / linuxthreads / ChangeLog
CommitLineData
59fed0e2
RM
12003-02-21 Roland McGrath <roland@redhat.com>
2
3 * Makefile (install-lib-ldscripts): New variable.
4
05856976
UD
52003-02-20 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
6
7 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Avoid short
8 interprocedure branches.
9
ed22820f
UD
102003-02-19 Ulrich Drepper <drepper@redhat.com>
11
12 * specific.c (pthread_key_delete_helper): Don't use GETMEM, we
13 need the target thread's lock.
14
a5e34e04
UD
152003-02-17 Ulrich Drepper <drepper@redhat.com>
16
17 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
18 and LOGIN_NAME_MAX.
19
b2740a3b
UD
202003-02-17 Kevin B. Hendricks <kevin.hendricks@sympatico.ca>
21 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
22
23 * sysdeps/powerpc/Makefile: Handle tcb-offsets.sym.
24 * sysdeps/powerpc/tcb-offsets.sym: New file.
25 * sysdeps/powerpc/tls.h: New file.
26 * sysdeps/powerpc/powerpc32/pt-machine.h (FLOATING_STACKS): Define.
27 (ARCH_STACK_MAX_SIZE): Define.
28 (THREAD_SELF): Define.
29 (INIT_THREAD_SELF): Define.
30 (THREAD_GETMEM): Define.
31 (THREAD_GETMEM_NC): Define.
32 (THREAD_SETMEM): Define.
33 (THREAD_SETMEM_NC): Define.
34 (__thread_self): Declare.
35 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Adjust
36 for thread register.
37
7c6d00e6
UD
382003-02-14 Steven Munroe <sjmunroe@us.ibm.com>
39
40 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
41 Check pthread_create existance, not __pthread_fork.
42
2067577c
UD
432003-02-12 Ulrich Drepper <drepper@redhat.com>
44
45 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
46
e5ffa64a
UD
472003-02-10 Jakub Jelinek <jakub@redhat.com>
48
49 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Check
50 pthread_create existance, not __pthread_fork.
51 * sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise.
52 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise.
53 * sysdeps/unix/sysv/linux/m68k/vfork.S (__vfork): Likewise.
54 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
55 Likewise.
56 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
57 * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise.
58 * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Likewise.
59 Add .weak pthread_create.
60 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Fix a typo.
61 Check pthread_create existance, not __pthread_fork.
62 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
63 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Branch to
64 __fork whenever libpthread.so is loaded.
65
df037172
AJ
662003-02-09 Andreas Jaeger <aj@suse.de>
67
68 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h:
69 Rework: %r9 is destroyed by functions so don't use it as
70 temporary, align stack correctly, fix parameter for CDISABLE.
71
ae9ecd08
UD
722003-02-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
73
74 * sysdeps/sh/Makefile: New file.
75 * sysdeps/sh/tcb-offsets.sym: Likewise.
76 * sysdeps/sh/tls.h: Don't include sysdep.h. Move include
77 of linuxthreads/descr.h after the definition of THREAD_SELF.
78 (tcbhead_t): Use IA64 type tcbhead_t for TLS case.
79 (TLS_TCB_SIZE): Set size of tcbhead_t.
80 (TLS_PRE_TCB_SIZE): Define.
81 (INSTALL_NEW_DTV): Set dtv of tcbhead_t structure instead of
82 a member of thread structure.
83 (THREAD_DTV): Likewise.
84 (TLS_INIT_TP_EXPENSIVE): Remove.
85 (TLS_INIT_TP): Set gbr register only.
86 (THREAD_SELF): New.
87 (INIT_THREAD_SELF): Likewise.
88 (NONTLS_INIT_TP): New.
89 * sysdeps/unix/sysv/linux/sh/pt-initfini.c (__fpscr_values):
90 Remove.
91 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Add
92 SYSCALL_INST_PAD macro after DO_CALL.
93 (SINGLE_THREAD_P): Fix non-PIC and TLS case so to read the
94 correct variable.
95 * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Branch to __fork
96 whenever libpthread.so is loaded.
97
bd62e50b
AS
982003-02-08 Andreas Schwab <schwab@suse.de>
99
100 * sysdeps/unix/sysv/linux/m68k/vfork.S: Branch to __fork whenever
101 libpthread.so is loaded.
102
1f503475
UD
1032003-02-07 Ulrich Drepper <drepper@redhat.com>
104
105 * sysdeps/unix/sysv/linux/i386/vfork.S: Make sure
106 __ASSUME_VFORK_SYSCALL is not defined if the kernel headers have
107 no __NR_vfork definition.
108
65c68990
UD
1092003-02-07 Jakub Jelinek <jakub@redhat.com>
110
111 * tst-popen2.c: New test.
112 * Makefile (tests): Add tst-popen2.
113 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Branch to __fork
114 whenever libpthread.so is loaded.
115 * sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise.
116 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise.
117 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
1f503475
UD
118 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
119 Likewise.
65c68990
UD
120 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
121 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
122 * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise.
123
a88c9263
UD
1242003-02-05 Ulrich Drepper <drepper@redhat.com>
125
126 * sysdeps/pthread/bits/libc-lock.h (__libc_once): Set control
127 variable for non-libpthread case to the same value the
128 pthread_once function would use.
129
6900ded2
UD
1302003-02-03 Jakub Jelinek <jakub@redhat.com>
131
132 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): If
133 BROKEN_SPARC_WDISP22, handle SHARED the same way as non-SHARED.
134
85cb5803
AJ
1352003-02-04 Andreas Jaeger <aj@suse.de>
136
137 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: Do not use
138 multi-line strings.
139
886d5973
UD
1402003-01-30 Jakub Jelinek <jakub@redhat.com>
141
142 * sysdeps/s390/tls.h (TLS_INIT_TP): Return NULL, not 0.
143
567678b6
UD
1442003-01-30 Jakub Jelinek <jakub@redhat.com>
145
146 * sysdeps/alpha/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC,
147 THREAD_SETMEM, THREAD_SETMEM_NC): Avoid warnings about unused self
148 variable.
149 * sysdeps/ia64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
150 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
151 * sysdeps/s390/s390-32/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
152 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
153 * sysdeps/s390/s390-64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
154 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
155 * sysdeps/sh/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
156 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
157 * sysdeps/sparc/sparc32/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
158 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
159 * sysdeps/sparc/sparc64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
160 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
161
e6ebd2e4
UD
1622003-01-27 Martin Schwidefsky <schwidefsky@de.ibm.com>
163
164 * sysdeps/s390/s390-32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
165 Define TLS versions.
166 * sysdeps/s390/s390-64/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
167 Likewise.
168 * sysdeps/s390/tls.h [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE,
169 TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE, TLS_TCB_ALIGN, TLS_TCB_AT_TP,
170 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_DTV):
171 Define.
172 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Use
173 branch with 32 bit offset.
174 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise.
175
62f29da7
UD
1762003-01-24 Jakub Jelinek <jakub@redhat.com>
177
178 * sysdeps/sparc/sparc32/pt-machine.h (__thread_self): Change to %g7,
179 as required by TLS ABI.
180 * sysdeps/sparc/sparc64/pt-machine.h (__thread_self): Likewise.
181 * sysdeps/sparc/tls.h [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE,
182 TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE, TLS_TCB_ALIGN, TLS_TCB_AT_TP,
183 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_DTV):
184 Define.
185 [HAVE_TLS_SUPPORT]: Include descr.h and sysdep.h.
186 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Use %g7
187 instead of %g6 for thread pointer.
188 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
189 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
190 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
191
e4e9446b
UD
1922003-01-25 Guido Guenther <agx@sigxcpu.org>
193
194 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
195 * sysdeps/unix/sysv/linux/mips/Makefile: New file.
196
d5b6c817
UD
1972003-01-20 Martin Schwidefsky <schwidefsky@de.ibm.com>
198
199 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Avoid non pc relative
200 reference to __fork.
201
0f0b7994
UD
2022003-01-17 Richard Henderson <rth@redhat.com>
203
204 * sysdeps/alpha/tls.h (tcbhead_t): Clarify second member.
205 (TLS_TCB_SIZE, TLS_TCB_ALIGN): Set for tcbhead_t.
206 (TLS_PRE_TCB_SIZE): New.
207 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Update for
208 new ia64-style thread pointer layout.
209 (THREAD_GETMEM, THREAD_GETMEM_NC): New.
210 (THREAD_SETMEM, THREAD_SETMEM_NC): New.
211 * sysdeps/unix/sysv/linux/alpha/vfork.S: Don't tail-call to __fork
212 if !SHARED.
213
7b7b9e70
UD
2142003-01-15 Jakub Jelinek <jakub@redhat.com>
215
216 * sysdeps/ia64/tls.h (tcbhead_t): Use the TLS ABI required layout
217 if USE_TLS only.
218 (NONTLS_INIT_TP): Revert last change.
219 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define to
220 offsetof (tcbhead_t, multiple_threads) if USE_TLS not defined.
221
850dcfca
UD
2222003-01-16 Jakub Jelinek <jakub@redhat.com>
223
224 * pthread.c (_pthread_initialize_minimal): Use
225 GL(dl_tls_dtv_slotinfo_list) != NULL to check whether TLS has
226 been already initialized.
227
a1f8ec97
UD
2282003-01-16 Jakub Jelinek <jakub@redhat.com>
229
230 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize head->sysinfo even
231 if not SHARED.
232
574b892e
UD
2332003-01-15 Jakub Jelinek <jakub@redhat.com>
234
235 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init,
236 __libc_lock_init_recursive): Initialize fields directly.
237
2382003-01-15 Jakub Jelinek <jakub@redhat.com>
239
240 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Allow
241 __fork to be far away from __vfork ifndef SHARED.
242 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
243 Likewise.
244 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
245 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
246 Add a missing instruction.
247 * sysdeps/unix/sysv/linux/arm/vfork.S (__vfork): Conditionally
248 branch to __fork even if __NR_vfork is not defined.
249
2502003-01-14 Ulrich Drepper <drepper@redhat.com>
251
252 * tst-cancel-wrappers.sh: Allow .__*_asynccancel functions names
253 as well.
254
2552003-01-14 Steven Munroe <sjmunroe@us.ibm.com>
256
257 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
258
115bb61d
UD
2592003-01-14 Jakub Jelinek <jakub@redhat.com>
260
261 * sysdeps/unix/sysv/linux/ia64/vfork.S (JUMPTARGET): Remove.
262
db0a052c
UD
2632003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
264
265 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: Avoid
266 unterminated string literals.
267 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: Likewise.
268
2692003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
270
271 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
272 (PSEUDO): Code reordering. Move CENABLE and CDISABLE literals from
273 PSEUDO_END to PSEUDO.
274 (PSEUDO_END): Remove.
275 (SINGLE_THREAD_P): Save an instruction.
276 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add missing
277 parameter to SINGLE_THREAD_P call.
278 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
279 Code reordering.
280
bf8a2877
AS
2812003-01-10 Andreas Schwab <schwab@suse.de>
282
283 * sysdeps/unix/sysv/linux/m68k/vfork.S: New file.
284
40212ce0
UD
2852003-01-10 Martin Schwidefsky <schwidefsky@de.ibm.com>
286
287 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Setup
288 backchain in pseudo_cancel. Minor code improvements.
289 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
290 Likewise.
291
2922003-01-10 Martin Schwidefsky <schwidefsky@de.ibm.com>
293
294 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
295 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
296
b398ae3c
UD
2972002-01-12 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
298
299 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
300
addb5f31
UD
3012002-01-09 Richard Henderson <rth@redhat.com>
302
303 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Assume only
304 ret follows pseudo, and thus avoid branch-to-branch in cancel
305 case. Use SYSCALL_ERROR_LABEL.
306
aff4519d
UD
3072003-01-11 Philip Blundell <philb@gnu.org>
308
309 * sysdeps/unix/sysv/linux/arm/vfork.S: New file.
310 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (PSEUDO_RET):
311 Correctly unstack lr.
312 (UNDOARGS_5): Fix ordering of pushes and pops.
313 (SINGLE_THREAD_P_PIC): New.
314 (SINGLE_THREAD_P_INT): New.
315 (SINGLE_THREAD_P): Implement in terms of above. Restore lr if it
316 was stacked.
317 (PSEUDO): Use SINGLE_THREAD_P_INT.
318
3192003-01-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
320
321 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
322
3232003-01-11 Jakub Jelinek <jakub@redhat.com>
324
325 * sysdeps/ia64/tls.h (tcbhead_t): Change into dtv_t *, void *.
326 [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN,
327 TLS_TCB_SIZE, TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, TLS_DTV_AT_TP,
328 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_SELF,
329 INIT_THREAD_SELF): Define.
330 [HAVE_TLS_SUPPORT]: Include descr.h.
331 (NONTLS_INIT_TP): Point __thread_self at the end of dummy
332 struct _pthread_descr_struct.
333 * sysdeps/ia64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
334 THREAD_SETMEM, THREAD_SETMEM_NC): Define using THREAD_SELF,
335 not __thread_self.
336 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Adjust
337 computation.
338 * pthread.c (__pthread_initialize_minimal): Use tcbp, not self
339 for TCB pointer.
340 (__pthread_initialize_manager): Rename tcb to mgr.
341 Use tcbp for TCB pointer, if TLS_DTV_AT_TP set mgr to sizeof (struct
342 _pthread_descr) below tcbp, otherwise to tcbp.
343 * manager.c (pthread_handle_create): If TLS_DTV_AT_TP, set
344 new_thread to be below _dl_allocate_tls (). Adjust new_thread back
345 before freeing. Fix clone arguments if report_events and USE_TLS.
346 (pthread_free): Adjust th back before freeing.
347
3482003-01-10 Steven Munroe <sjmunroe@us.ibm.com>
349
350 * sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: Moved to ...
351 * sysdeps/unix/sysv/linux/powerpc/Makefile: ...here.
352 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New File.
353
29d9a17d
UD
3542003-01-09 Jakub Jelinek <jakub@redhat.com>
355
356 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
357 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
358 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
359 [__ASSEMBLER__] (SINGLE_THREAD_P): Remove trailing ;;.
360 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
361 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
362 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
363 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
364 * tst-popen.c: New test.
365 * Makefile (tests): Add tst-popen.
366
6aca81bb
UD
3672003-01-06 Jakub Jelinek <jakub@redhat.com>
368
369 * sysdeps/unix/sysv/linux/sigwait.c (do_sigwait): Add
370 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
371
bef1e42f
UD
3722003-01-06 Jakub Jelinek <jakub@redhat.com>
373
374 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use
375 PSEUDO_PREPARE_ARGS. Fix branch condition after SINGLE_THREAD_P.
376
52f3d213
UD
3772003-01-06 Philip Blundell <philb@gnu.org>
378
379 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: New file.
380
3812003-01-06 Jakub Jelinek <jakub@redhat.com>
382
383 * internals.h (LIBC_CANCEL_HANDLED): Define.
384 * sysdeps/unix/sysv/linux/sigwait.c (LIBC_CANCEL_HANDLED): Add.
385 * signals.c (LIBC_CANCEL_HANDLED): Add.
386 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
387 * tst-cancel-wrappers.sh: Remove all exceptions.
388
389 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
390
c52a5fb9
AS
3912003-01-05 Andreas Schwab <schwab@suse.de>
392
c711d9d2
AS
393 * sysdeps/m68k/Makefile: New file, use -fPIC for nonshared
394 objects.
395
c52a5fb9
AS
396 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (SINGLE_THREAD_P):
397 Fix for PIC.
398 (CENABLE): Likewise.
399 (CDISABLE): Likewise.
400
bbd17455
UD
4012003-01-05 Ulrich Drepper <drepper@redhat.com>
402
a73ab6df
UD
403 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
404 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
405
bbd17455
UD
406 * Makefile (libc.so-no-z-defs): Define to yes.
407
bdee30cf
UD
4082003-01-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
409
410 * sysdeps/sh/tls.h: Include dl-sysdep.h and stdint.h.
411 (tcbhead_t): Add multiple_threads member.
412 (TLS_INIT_TP_EXPENSIVE): Define.
413 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Don't use multi-line
414 strings. Remove unused code.
415 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
416
73e9ae88
UD
4172003-01-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
418
419 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
420 * sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: New file.
421
a7f7b879
UD
4222003-01-04 Jakub Jelinek <jakub@redhat.com>
423
424 * internals.h (LIBC_THREAD_GETMEM, LIBC_THREAD_SETMEM): Define
425 even if NOT_IN_libc is defined.
426
00e58701
UD
4272003-01-05 Jakub Jelinek <jakub@redhat.com>
428
429 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
430 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
431 * sysdeps/s390/Makefile: New file.
432 * sysdeps/s390/tcb-offsets.sym: New file.
433 * sysdeps/s390/tls.h: New file.
434
75c43017
UD
4352003-01-03 Richard Henderson <rth@redhat.com>
436
437 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
438
1cb990bc
UD
4392003-01-03 Andreas Jaeger <aj@suse.de>
440
441 * sysdeps/pthread/bits/libc-tsd.h: Declare weak_extern functions.
442
733f25e6
UD
4432003-01-03 Jakub Jelinek <jakub@redhat.com>
444
445 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
446
bf293afe
UD
4472003-01-02 Ulrich Drepper <drepper@redhat.com>
448
449 * tst-cancel-wrappers.sh: Exclude sigwait.c as well, it does not have
450 cancellation tests.
451
4522003-01-02 Jakub Jelinek <jakub@redhat.com>
453
454 * internals.h (struct pthread_functions): Rename
455 ptr_pthread_cond_* fields to ptr___pthread_cond_*.
456 * pthread.c (pthread_functions): Adjust.
457 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
458 pthread_cond_*@GLIBC_2.0 compatibility symbols.
459 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
460 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
461 and pthread_cond_wait.
462
463 * sysdeps/pthread/bits/pthreadtypes.h (__pthread_cond_align_t): New
464 type.
465 (pthread_cond_t): Add __align member, shorten __padding.
466 * sysdeps/pthread/pthread.h (PHTREAD_COND_INITIALIZER): Initialize
467 __padding and __align too.
468
469 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call2): Add
470 __builtin_expect.
471 * sysdeps/pthread/sigaction.c: New file.
472 * sysdeps/unix/sysv/linux/raise.c: New file.
473 * sysdeps/unix/sysv/linux/sigwait.c: New file.
474 * sysdeps/unix/sysv/linux/fork.c (__pthread_fork): Protect
475 weak_extern with #ifndef SHARED.
476 * sysdeps/unix/sysv/linux/jmp-unwind.c (__pthread_cleanup_upto):
477 Likewise.
478 * signals.c (__sigaction): Renamed to...
479 (__pthread_sigaction): ... this.
480 (__sigaction): New strong alias, #ifdef SHARED only.
481 (sigaction): Protect with #ifdef SHARED.
482 (sigwait): Renamed to...
483 (__pthread_sigwait): ... this.
484 (sigwait): New strong alias, #ifdef SHARED only.
485 (raise): Renamed to...
486 (__pthread_raise): ... this.
487 (raise): New strong alias, #ifdef SHARED only.
488 * internals.h (__pthread_sigaction, __pthread_sigwait,
489 __pthread_raise): New prototypes.
490 (struct pthread_functions): Add ptr_pthread_sigaction,
491 ptr_pthread_sigwait, ptr_pthread_raise.
492 * pthread.c (pthread_functions): Renamed to...
493 (__pthread_functions): ... this. No longer static, no longer
494 SHARED only. Initialize ptr_pthread_sigaction, ptr_pthread_sigwait
495 and ptr_pthread_raise.
496 [SHARED] (ptr_pthread_functions): Change to &__pthread_functions.
497 * libc-cancellation.c (__pthread_thread_self): Remove weak_extern.
498 * ptfork.c (__fork, __vfork): Protect with #ifdef SHARED.
499 * ptlongjmp.c (siglongjmp, longjmp): Protect with #ifdef SHARED.
500
501 * Makefile (tests, tests-static): Add tst-cancel-static.
502 * tst-cancel-static.c: New test.
503
5042003-01-02 Jakub Jelinek <jakub@redhat.com>
505
506 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
507
05df18c3
UD
5082003-01-02 Ulrich Drepper <drepper@redhat.com>
509
510 * sysdeps/pthread/bits/pthreadtypes.h (pthread_cond_t): Add padding.
511 * condvar.c: Add symbol versioning. The compatibility versions
512 are the same as the change in the interface does not effect this
513 implementation.
514 * Versions [libpthread]: Add definitions for new pthread_cond_*
515 interfaces for version GLIBC_2.3.2.
516
6d6ee629
UD
5172002-12-31 Ulrich Drepper <drepper@redhat.com>
518
519 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
520 __register_atfork.
521 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
522 for __register_atfork.
523
416d2de6
UD
5242002-12-31 Jakub Jelinek <jakub@redhat.com>
525
a4baf360
UD
526 * sysdeps/i386/i686/pt-machine.h: Use __ASSEMBLER__ instead of
527 ASSEMBLER test macro.
528 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Likewise.
529 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
530 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Likewise.
531 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
532 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
533 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
534
535 * sysdeps/pthread/errno-loc.c (__errno_location): Add
536 libc_hidden_def.
537 * sysdeps/pthread/herrno-loc.c (__h_errno_location): Likewise.
538 * sysdeps/pthread/res-state.c (__res_state): Likewise.
539 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
540 __libc_current_sigrtmax): Likewise.
541 * Versions [libc] (GLIBC_PRIVATE): Remove __libc_internal_tsd_get,
542 __libc_internal_tsd_set, __libc_internal_tsd_address,
543 __libc_alloca_cutoff.
544 [libpthread] (GLIBC_PRIVATE): Remove __libc_internal_tsd_get,
545 __libc_internal_tsd_set, __libc_internal_tsd_address.
546
547 * sysdeps/pthread/list.h: Remove assert.h include.
548 * sysdeps/unix/sysv/linux/fork.c: Include <fork.h>, not "fork.h".
549
416d2de6
UD
550 * sysdeps/pthread/list.h: New file.
551 * sysdeps/unix/sysv/linux/jmp-unwind.c: New file.
552 * sysdeps/unix/sysv/linux/fork.c: New file.
553 * sysdeps/unix/sysv/linux/fork.h: New file.
554 * sysdeps/unix/sysv/linux/ia64/fork.h: New file.
555 * sysdeps/unix/sysv/linux/sparc/fork.h: New file.
556 * sysdeps/unix/sysv/linux/register-atfork.c: New file.
557 * sysdeps/unix/sysv/linux/unregister-atfork.c: New file.
558 * sysdeps/unix/sysv/linux/Makefile: New file.
559 * sysdeps/unix/sysv/linux/Versions: New file.
560 * ptlongjmp.c (pthread_cleanup_upto): Rename to...
561 (__pthread_cleanup_upto): ...this. Add targetframe argument,
562 use it instead of currentframe. No longer static.
563 (siglongjmp, longjmp): Remove pthread_cleanup_upto calls.
564 * internals.h (__pthread_cleanup_upto, __pthread_fork): New prototypes.
565 (struct pthread_functions): Add ptr_pthread_fork,
566 ptr_pthread_cleanup_upto.
567 * pthread.c (pthread_functions): Initialize ptr_pthread_fork and
568 ptr_pthread_cleanup_upto.
569 * ptfork.c: Include fork.h.
570 (struct handler_list, struct handler_list_block): Remove.
571 (pthread_atfork_lock, pthread_atfork_prepare, pthread_atfork_parent,
572 pthread_atfork_child): Remove.
573 (pthread_insert_list, __pthread_atfork, pthread_call_handlers): Remove.
574 (__pthread_fork): New function.
575 (__fork, __vfork): Call __libc_fork.
576 * Makefile (libpthread-routines): Add old_pthread_atfork.
577 (libpthread-nonshared): Add pthread_atfork.
578 (others): Depend on $(objpfx)libpthread_nonshared.a.
579 ($(objpfx)libpthread_nonshared.a): New rule.
580 (install): Depend on $(inst_libdir)/libpthread.so.
581 ($(inst_libdir)/libpthread.so, $(inst_libdir)/libpthread_nonshared.a):
582 New rules.
583 (tests): Depend on libpthread_nonshared.a too.
584 * old_pthread_atfork.c: New file.
585 * pthread_atfork.c: New file.
586 * Makeconfig (shared-thread-library): Include libpthread_nonshared.a
587 too.
588
8cac677c
UD
5892002-12-30 Jakub Jelinek <jakub@redhat.com>
590
591 * forward.c: Make all functions available by default again. It
592 caused too much trouble.
593 * internals.h (struct pthread_functions): Rename ptr_pthread_exit
594 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
595 ptr___pthread_attr_init_2_*.
596 * pthread.c (pthread_functions): Adjust.
597
3b7ed871
UD
5982002-12-28 Jakub Jelinek <jakub@redhat.com>
599
600 * libc_pthread_init.c (__libc_pthread_init): Remove
601 MULTIPLE_THREADS_OFFSET check.
602 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
603 (SYSINFO_OFFSET): Remove.
604 * sysdeps/i386/Makefile [csu] (gen-as-const-headers): Add
605 tcb-offsets.sym.
606 * sysdeps/i386/tcb-offsets.sym: New file.
607 * sysdeps/pthread/tcb-offsets.h: New file.
608 * sysdeps/sparc/sparc32/tls.h: Removed.
609 * sysdeps/sparc/sparc64/tls.h: Move...
610 * sysdeps/sparc/tls.h: ...here. Include tcb-offsets.h in assembler.
611 * sysdeps/sparc/Makefile: New file.
612 * sysdeps/sparc/tcb-offsets.sym: New file.
613 * sysdeps/ia64/tls.h: Include tcb-offsets.h in assembler.
614 * sysdeps/ia64/Makefile: New file.
615 * sysdeps/ia64/tcb-offsets.sym: New file.
616 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
617 (MULTIPLE_THREADS_OFFSET): Remove.
618 Replace defined MULTIPLE_THREADS_OFFSET
619 with defined FLOATING_STACKS && USE___THREAD.
620 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
621 (MULTIPLE_THREADS_OFFSET): Remove.
622 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
623 (MULTIPLE_THREADS_OFFSET): Remove.
624 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
625 (MULTIPLE_THREADS_OFFSET): Remove.
626 * pthread.c (__pthread_initialize_manager): Remove
627 MULTIPLE_THREADS_OFFSET cbeck.
628
629 * tst-cancel-wrappers.sh: Add line continuations.
630
afb2e954
UD
6312002-12-27 Jakub Jelinek <jakub@redhat.com>
632
270d9d47
UD
633 * sysdeps/pthread/bits/libc-tsd.h: Include linuxthreads/descr.h
634 and bits/libc-lock.h.
635 (__libc_internal_tsd_get, __libc_internal_tsd_set,
636 __libc_internal_tsd_address): Remove.
637 (__pthread_internal_tsd_address, __pthread_internal_tsd_get,
638 __pthread_internal_tsd_set): New weak_externs.
639 (__libc_tsd_address, __libc_tsd_get, __libc_tsd_set): Define
640 using __libc_maybe_call2.
641 (__libc_tsd_key_t): Move to ...
642 * descr.h (__libc_tsd_key_t): ...here.
643 Remove bits/libc-tsd.h include.
644 * sysdeps/pthread/errno-loc.c: New file.
645 * sysdeps/pthread/herrno-loc.c: New file.
646 * sysdeps/pthread/res-state.c: New file.
647 * libc-cancellation.c (THREAD_GETMEM, THREAD_SETMEM): Remove.
648 (__libc_enable_asynccancel, __libc_disable_asynccancel): Use
649 thread_self unconditionally. Use LIBC_THREAD_[SG]ETMEM instead
650 of THREAD_[SG]ETMEM.
651 * specific.c (libc_internal_tsd_set): Renamed to...
652 __pthread_internal_tsd_set. Remove static.
653 (libc_internal_tsd_get): Renamed to...
654 __pthread_internal_tsd_get. Remove static.
655 (libc_internal_tsd_address): Renamed to...
656 __pthread_internal_tsd_address. Remove static.
657 (__libc_internal_tsd_set, __libc_internal_tsd_get,
658 __libc_internal_tsd_address, __libc_alloca_cutoff): Remove.
659 * internals.h [!NOT_IN_libc] (LIBC_THREAD_GETMEM, LIBC_THREAD_SETMEM):
660 Define.
661 (__pthread_internal_tsd_set, __pthread_internal_tsd_get,
662 __pthread_internal_tsd_address): New prototypes.
663 (struct pthread_functions): Add
664 ptr_pthread_internal_tsd_([sg]et|address) fields.
665 [!NOT_IN_libc && !FLOATING_STACKS] (thread_self): Define.
666 * pthread.c (pthread_functions) [!USE_TLS && !HAVE___THREAD]:
667 Initialize ptr_pthread_internal_tsd_([sg]et|address) fields.
668 * Versions (libpthread): Remove __libc_alloca_cutoff@GLIBC_PRIVATE.
669 * alloca_cutoff.c: New file.
670 * no-tsd.c: Removed.
671 * Makefile (routines): Remove no-tsd. Add alloca_cutoff.
672 * pt-system.c (system): Remove cancellation handling.
673 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
674 cancellation routines.
675
afb2e954
UD
676 * sysdeps/i386/tls.h: Include dl-sysdep.h and stdint.h.
677 (tcbhead_t): Add sysinfo field.
678 (SYSINFO_OFFSET, INIT_SYSINFO): Define.
679 (TLS_INIT_TP): Use INIT_SYSINFO.
680 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
681 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
682 (MULTIPLE_THREADS_OFFSET): Adjust.
683 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
684 (MULTIPLE_THREADS_OFFSET): Likewise.
685 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
686 (MULTIPLE_THREADS_OFFSET): Likewise.
687 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
688 (MULTIPLE_THREADS_OFFSET): Likewise.
689 * descr.h: Include stdint.h.
690 (struct _pthread_descr_struct): Add p_header.data.sysinfo field.
691
6922002-12-22 Jakub Jelinek <jakub@redhat.com>
693
694 * libc_pthread_init.c: Include stdlib.h.
695 * sysdeps/i386/tls.h (tcbhead_t): Add multiple_threads member.
696 (TLS_INIT_TP_EXPENSIVE): Define.
697 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call,
698 __libc_maybe_call2): In _LIBC check SHARED define.
699 * sysdeps/ia64/tls.h: New file.
700 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
701 * sysdeps/unix/sysv/linux/ia64/Makefile: New file.
702 * sysdeps/x86_64/tls.h (TLS_INIT_TP_EXPENSIVE): Define.
703 * sysdeps/sparc/sparc32/tls.h: New file.
704 * sysdeps/sparc/sparc64/tls.h: New file.
705 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
706 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
707 * Makefile (tests): Add tst-cancel[1-6].
708 (tests-reverse): Add tst-cancel5.
709 Link libc.so before libpthread.so for tests-reverse.
710 * tst-cancel1.c: New file.
711 * tst-cancel2.c: New file.
712 * tst-cancel3.c: New file.
713 * tst-cancel4.c: New file.
714 * tst-cancel5.c: New file.
715 * tst-cancel6.c: New file.
716
9f256765
AS
7172002-12-27 Andreas Schwab <schwab@suse.de>
718
719 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: New file.
720
5220f9ac
RM
7212002-12-22 Roland McGrath <roland@redhat.com>
722
723 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
724
2e4f58a4
UD
7252002-12-21 Ulrich Drepper <drepper@redhat.com>
726
727 * pthread.c (init_rtsigs): Remove incomplete __builtin_expect.
728 Reported by Art Hass <ahaas@airmail.net>.
729
3325198e
UD
7302002-12-19 Jakub Jelinek <jakub@redhat.com>
731
732 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
733 Use return 0 as 6th argument to FORWARD4.
734
5e289179
UD
7352002-12-18 Jakub Jelinek <jakub@redhat.com>
736
737 * sysdeps/i386/useldt.h (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Only
738 define if __ASSUME_LDT_WORKS > 0.
739 * libc-cancellation.c (THREAD_GETMEM, THREAD_SETMEM): Redefine to
740 struct member access if !FLOATING_STACKS.
741 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
742
82f81a90
UD
7432002-12-18 Jakub Jelinek <jakub@redhat.com>
744
745 * internals.h (__pthread_thread_self): New prototype.
746 (struct pthread_functions): Add ptr_pthread_thread_self field.
747 * pthread.c (pthread_functions): Initialize ptr_pthread_thread_self.
748 (__pthread_thread_self): New function.
749 * libc-cancellation.c (__pthread_thread_self): Add weak_extern.
750 (__libc_enable_asynccancel, __libc_disable_asynccancel): Don't
751 use thread_self() directly if not FLOATING_STACKS.
752
7532002-12-18 Jakub Jelinek <jakub@redhat.com>
754
755 * sysdeps/x86_64/pt-machine.h: Guard most of the header
756 with #ifndef __ASSEMBLER__.
757 * pthread.c (pthread_functions): Use SHLIB_COMPAT around
758 pthread_attr_init_2_0 use.
759
7602002-12-17 Jakub Jelinek <jakub@redhat.com>
761
762 * wrapsyscall.c: Removed.
763 * weaks.c: Removed.
764 * Makefile (distribute): Add tst-cancel-wrappers.sh.
765 (routines): Remove weaks. Add forward,
766 libc_pthread_init, libc-cancellation.
767 (shared-only-routines): Remove weaks. Add forward.
768 (libpthread-routines): Remove wrapsyscall.
769 Add ptw-write, ptw-read, ptw-close, ptw-fcntl, ptw-accept,
770 ptw-connect, ptw-recv, ptw-recvfrom, ptw-recvmsg, ptw-send,
771 ptw-sendmsg, ptw-sendto, ptw-fsync, ptw-lseek, ptw-lseek64,
772 ptw-llseek, ptw-msync, ptw-nanosleep, ptw-open, ptw-open64,
773 ptw-pause, ptw-pread, ptw-pread64, ptw-pwrite, ptw-pwrite64,
774 ptw-tcdrain, ptw-wait, ptw-waitpid, pt-system, pt-allocrtsig.
775 (libpthread-shared-only-routines): Add pt-allocrtsig.
776 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
777 ($(objpfx)tst-cancel-wrappers.out): New rule.
778 * sysdeps/pthread/bits/libc-lock.h: Include linuxthreads/internals.h
779 if in libc.
780 (__libc_maybe_call): In libpthread.* don't check for existance
781 of the function.
782 (__libc_maybe_call2): Define.
783 (__libc_lock_init, __libc_lock_fini, __libc_lock_lock,
784 __libc_lock_trylock, __libc_lock_unlock): Use it.
785 * sysdeps/pthread/flockfile.c: New file.
786 * sysdeps/pthread/ftrylockfile.c: New file.
787 * sysdeps/pthread/funlockfile.c: New file.
788 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
789 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
790 * sysdeps/unix/sysv/linux/allocrtsig.c: New file.
791 * libc-cancellation.c: New file.
792 * forward.c: New file.
793 * libc_pthread_init.c: New file.
794 * pt-system.c: New file.
795 * pthread.c: Remove locale.h.
796 (__pthread_manager_thread): Initialize multiple_threads.
797 (__pthread_multiple_threads): Declare.
798 (pthread_functions): New variable.
799 (__pthread_initialize_minimal): Remove __uselocale call.
800 Call __libc_pthread_init.
801 (__pthread_initialize_manager): Initialize __pthread_multiple_threads,
802 initial thread's multiple_threads and __libc_multiple_threads.
803 Check MULTIPLE_THREADS_OFFSET value. Initialize manager thread's
804 multiple_threads.
805 (pthread_setschedparam, pthread_getschedparam): Rename to __
806 prefixed variants. Add strong_alias.
807 (current_rtmin, current_rtmax, __libc_current_sigrtmin,
808 __libc_current_sigrtmax, __libc_allocate_rtsig): Remove.
809 (init_rtsigs): Use __libc_current_sigrtmin_private.
810 (pthread_initialize): Only call init_rtsigs if
811 !__ASSUME_REALTIME_SIGNALS.
812 (__pthread_require_wrappers, __pthread_require_lockfile): Remove.
813 * internals.h (__pthread_attr_destroy, __pthread_attr_setdetachstate,
814 __pthread_attr_getdetachstate, __pthread_attr_setschedparam,
815 __pthread_attr_getschedparam, __pthread_attr_setschedpolicy,
816 __pthread_attr_getschedpolicy, __pthread_attr_setinheritsched,
817 __pthread_attr_getinheritsched, __pthread_attr_setscope,
818 __pthread_attr_getscope, __pthread_cond_init,
819 __pthread_cond_destroy, __pthread_cond_wait,
820 __pthread_cond_signal, __pthread_cond_broadcast,
821 __pthread_condattr_init, __pthread_condattr_destroy,
822 __pthread_equal, __pthread_getschedparam,
823 __pthread_setschedparam, __pthread_setcancelstate,
824 __pthread_setcanceltype, __pthread_enable_asynccancel,
825 __libc_enable_asynccancel, __libc_pthread_init): New prototype.
826 (__pthread_mutex_init, __pthread_mutex_destroy,
827 __pthread_mutex_lock, __pthread_mutex_unlock,
828 __pthread_mutex_trylock): Likewise.
829 Add hidden_proto.
830 (struct pthread_functions): New type.
831 (__libc_pthread_functions): New variable.
832 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define.
833 * descr.h (struct _pthread_descr_struct): Add
834 p_header.data.multiple_threads field.
835 * manager.c (pthread_handle_create): Initialize multiple_threads.
836 * cancel.c (__pthread_enable_asynccancel,
837 __pthread_disable_asynccancel): New functions.
838 (__pthread_provide_wrappers): Remove.
839 (pthread_setcancelstate, pthread_setcanceltype): Rename to __
840 prefixed variants. Add strong_alias.
841 * condvar.c (pthread_cond_init, pthread_cond_destroy,
842 pthread_cond_wait, pthread_cond_signal, pthread_cond_broadcast,
843 pthread_condattr_init, pthread_condattr_destroy): Likewise.
844 * join.c (pthread_exit): Likewise.
845 * attr.c (pthread_attr_destroy, pthread_attr_setdetachstate,
846 pthread_attr_getdetachstate, pthread_attr_setschedparam,
847 pthread_attr_getschedparam, pthread_attr_setschedpolicy,
848 pthread_attr_getschedpolicy, pthread_attr_setinheritsched,
849 pthread_attr_getinheritsched, pthread_attr_setscope,
850 pthread_attr_getscope): Likewise.
851 * mutex.c (__pthread_mutex_init, __pthread_mutex_destroy,
852 __pthread_mutex_lock, __pthread_mutex_unlock,
853 __pthread_mutex_trylock): Add hidden_def.
854 * Versions (libc): Add __libc_pthread_init,
855 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
856 __libc_allocate_rtsig_private @@GLIBC_PRIVATE.
857 * lockfile.c: Remove some USE_IN_LIBIO guards.
858 (__pthread_provide_lockfile): Remove.
859 * pt-allocrtsig.c: New file.
860 * tst-cancel-wrappers.sh: New test.
861
f3015aa5
UD
8622002-12-15 Ulrich Drepper <drepper@redhat.com>
863
864 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
865 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
866 * wrapsyscall.c: Remove creat, poll, pselect, readv, select,
867 sigpause, sigsuspend, sigwaitinfo, waitid, and writev wrappers.
868
dce8f2b6
UD
8692002-12-10 Ulrich Drepper <drepper@redhat.com>
870
871 * wrapsyscall.c (CANCELABLE_SYSCALL): Don't define function as
872 weak. There is no reason for that.
873 (CANCELABLE_SYSCALL_VA): Likewise.
874
e5e45b53
UD
8752002-12-09 Ulrich Drepper <drepper@redhat.com>
876
877 * wrapsyscall.c: Add wrappers for creat, poll, pselect, readv, select,
878 sigpause, __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev.
879 * Versions: Export creat, poll, pselect, readv, select, sigpause,
880 __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev from
881 libpthread in version GLIBC_2.3.2.
882
d3c9f895
UD
8832002-12-06 Ulrich Drepper <drepper@redhat.com>
884
885 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
886
fde89ad0
RM
8872002-12-05 Roland McGrath <roland@redhat.com>
888
889 * pthread.c (__pthread_initialize_minimal)
890 [USE_TLS && SHARED && !USE___THREAD]: Initialize TLS and set up the
891 TCB if the dynamic linker didn't do it at startup.
892
893 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
894 string.
895 (TLS_DO_SET_THREAD_AREA, TLS_DO_MODIFY_LDT, TLS_SETUP_GS_SEGMENT):
896 Submacros updated.
897 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
898 * sysdeps/alpha/tls.h (TLS_INIT_TP): Likewise (always zero).
899
9002002-12-03 Roland McGrath <roland@redhat.com>
901
902 * pthread.c (pthread_initialize) [SHARED]: Copy dl_error_tsd value
903 from dynamic linker internal cell to new libc cell.
904
fa9a4ff0
RM
9052002-11-28 Roland McGrath <roland@redhat.com>
906
907 * tst-context.c: #define IS_IN_libpthread around #include <tls.h>
908 before other headers, so FLOATING_STACKS is not defined wrongly.
909
910 * sysdeps/i386/tls.h [!IS_IN_libpthread]: Enable TLS support
911 even if [! FLOATING_STACKS].
912 (TLS_DO_MODIFY_LDT_KERNEL_CHECK): New macro.
913 If not under [__ASSUME_LDT_WORKS > 0], then do a runtime check of
914 dl_osversion >= 2.3.99 and fatal if not.
915 (TLS_DO_MODIFY_LDT): Use it.
916
f9ad060c
UD
9172002-11-28 Ulrich Drepper <drepper@redhat.com>
918
919 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
920 require it to 200112L. Remove _POSIX_POLL and _POSIX_SELECT.
921 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
922
96bbfe3f
UD
9232002-11-19 Ulrich Drepper <drepper@redhat.com>
924
fa9a4ff0 925 * Versions (libc: GLIBC_2.0): Remove names of functions which are
96bbfe3f
UD
926 not defined in libc.
927 * Makefile (shared-only-routines): Add weaks.
928 * weaks.c: Remove functions which are not exported from libc.so.
929
53da80ab
RM
9302002-11-14 Roland McGrath <roland@redhat.com>
931
932 * libc-tsd.c: New file.
933 * Makefile (distribute): Add it.
934 (libc-link.so): New variable.
935 ($(objpfx)libpthread.so): Depend on that instead of libc.so file name.
936 (libc-ok-for-link): New variable.
937 [$(versioning) = yes]: Include $(common-objpfx)tls.make and define
938 libc-ok-for-link to $(use-thread).
939 [$(libc-ok-for-link) = no]
940 (libc-link.so): Set to $(objpfx)libc.so, not $(common-objpfx)libc.so.
941 ($(objpfx)libc_pic_lite.a,$(objpfx)libc_pic_lite.os, $(objpfx)libc.so):
942 New targets.
943 (generated): Append them.
944 (extra-objs): Append libc-tsd.os.
945
946 * libc-tls-loc.c: New file.
947 * Makefile (libpthread-routines): Add it.
948
29923dfd
AS
9492002-11-14 Andreas Schwab <schwab@suse.de>
950
951 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Fix unterminated
952 string.
953
cdedcc79
RM
9542002-11-13 Roland McGrath <roland@redhat.com>
955
956 * Examples/ex6.c (main): Improve error reporting.
957
8e96ae1a
UD
9582002-11-04 Ulrich Drepper <drepper@redhat.com>
959
226e9fda
UD
960 * sysdeps/i386/Makefile: Compile pthread.c and sighandler.c with
961 -fno-omit-frame-pointer. Patch by Andreas Steinmetz <ast@domdv.de>.
962
8e96ae1a
UD
963 * sysdeps/i386/useldt.h [PIC] (USETLS_LOAD_EBX): Use correct input
964 register number.
965 (DO_SET_THREAD_AREA): Mark asm output specifiers correctly.
966
bd6daf3b
RM
9672002-10-22 Jakub Jelinek <jakub@redhat.com>
968
969 * manager.c (pthread_start_thread): Call __uselocale even
970 if [! SHARED]. Patch by Leon Kanter <leon@geon.donetsk.ua>.
971
2430d57a
RM
9722002-10-17 Roland McGrath <roland@redhat.com>
973
974 * Makefile (unload): Don't link in libpthread.so.
975 ($(objpfx)unload.out): Do depend on it.
976 * unload.c (main): Improve error reporting.
977
3021e36d
RM
9782002-10-09 Roland McGrath <roland@redhat.com>
979
980 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
981 Under [__PIC__], call the function via the pointer fetched for
982 comparison rather than a call by name that uses the PLT.
983 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
984 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
985 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
986 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
987 (__libc_key_create, __libc_getspecific, __libc_setspecific)
988 (__libc_atfork): Use it.
989
990 * pthread.c [SHARED] (__libc_dl_error_tsd): New function.
991 (pthread_initialize) [SHARED]: Set _dl_error_catch_tsd to that.
992 * Versions (libc: GLIBC_PRIVATE): Add __libc_dl_error_tsd.
993 (ld: GLIBC_PRIVATE): Set removed.
994
ef43f9d4
UD
9952002-10-11 Ulrich Drepper <drepper@redhat.com>
996
997 * sysdeps/unix/sysv/linux/execve.c: New file.
998
65e6f476
UD
9992002-10-09 Jakub Jelinek <jakub@redhat.com>
1000
1001 * no-tsd.c: Include stdlib.h.
1002
d3c79d4a
UD
10032002-10-07 Jakub Jelinek <jakub@redhat.com>
1004
1005 * sysdeps/unix/sysv/linux/allocalim.h: New file.
1006 * descr.h (struct _pthread_descr_struct): Add p_alloca_cutoff
1007 field.
1008 * manager.c (__pthread_allocate_stack): Add out_stacksize argument.
1009 Pass stack size to caller.
1010 (pthread_handle_create): Set p_alloca_cutoff.
1011 * pthread.c (__pthread_initial_thread): Use C99 designated
1012 initializers. Set p_alloca_cutoff.
1013 (__pthread_manager_thread): Likewise.
1014 (__pthread_initialize_minimal) [USE_TLS]: Set p_alloca_cutoff
1015 for initial thread.
1016 (__pthread_init_max_stacksize): Possibly decrease p_alloca_cutoff
1017 for initial thread.
1018 (__pthread_initialize_manager) [USE_TLS]: Set p_alloca_cutoff
1019 for manager thread.
1020 * specific.c (__libc_alloca_cutoff): New function.
1021 * no-tsd.c (__libc_alloca_cutoff): New function.
1022 * Versions: Export __libc_alloca_cutoff@@GLIBC_PRIVATE from libc
1023 and libpthread.
1024
aa298c08
UD
10252002-10-02 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1026
1027 * sysdeps/sh/pt-machine.h: Make C code ifndef'ed with __ASSEMBLER__.
1028 * sysdeps/sh/tls.h: Likewise.
1029 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
1030
57449fa3
RM
10312002-09-29 Jakub Jelinek <jakub@redhat.com>
1032
1033 * sysdeps/pthread/tst-timer.c (main): Clear
1034 SIGEV2.sigev_notify_attributes.
1035
9a1c21c4
UD
10362002-09-29 Ulrich Drepper <drepper@redhat.com>
1037
1038 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Don't use
1039 INLINE_SYSCALL for set_thread_area syscall.
1040
3865b57f
RM
10412002-09-28 Roland McGrath <roland@redhat.com>
1042
1043 * pthread.c (__pthread_reset_main_thread) [FLOATING_STACKS]:
1044 Don't call setrlimit, since we did no prior bogon we need to undo.
1045
2c536abd
RM
10462002-09-27 Roland McGrath <roland@redhat.com>
1047
1048 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Don't include <pt-machine.h>.
1049
160bb409
RM
10502002-09-24 Roland McGrath <roland@redhat.com>
1051
1052 * sysdeps/x86_64/tls.h: New file.
1053
10542002-09-23 Roland McGrath <roland@redhat.com>
1055
1056 * Examples/ex13.c (dump_mut): int -> size_t for counter.
1057
9db6ee8d
RM
10582002-09-18 Bruno Haible <bruno@clisp.org>
1059
1060 * Examples/ex10.c (thread): Fail if pthread_mutex_timedlock() returns
1061 an unexpected error code.
1062
1063 * internals.h (__pthread_message): Add const to first parameter type.
1064 * pthread.c (__pthread_message): Likewise.
1065
1066 * sysdeps/unix/sysv/linux/configure: Moved to ../sysdeps/pthread.
1067
1d0ad773
RM
10682002-09-17 Roland McGrath <roland@redhat.com>
1069
1070 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT, TLS_DO_SET_THREAD_AREA):
1071 Set the descriptor limit to the full 4GB, so %gs:OFFSET works for any
1072 offset (positive or negative) relative to the thread struct.
1073 * sysdeps/i386/useldt.h (DO_MODIFY_LDT, DO_SET_THREAD_AREA): Likewise.
1074
54c1e6ca
RM
10752002-09-12 Jakub Jelinek <jakub@redhat.com>
1076
1077 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Move...
1078 * sysdeps/unix/sysv/linux/sparc/Makefile: ...here.
1079 Replace /usr/lib/crt[in].o with crt[in].o too.
1080
4730fc68
RM
10812002-09-11 Steven Munroe <sjmunroe@us.ibm.com>
1082
1083 * sysdeps/powerpc/powerpc64/pt-machine.h: New file.
1084
64ca3f32
RM
10852002-09-04 Bruno Haible <bruno@clisp.org>
1086
1087 * pthread.c: Include <sys/time.h>.
1088 (is_smp_system): Move to sysdeps/unix/sysv/linux/smp.h.
1089 * sysdeps/unix/sysv/linux/smp.h: New file, extracted from pthread.c.
1090 * Makefile (distribute): Add smp.h to the list.
1091
a1e56cd1
RM
10922002-09-04 Bruno Haible <bruno@clisp.org>
1093
5842a756
UD
1094 * sysdeps/alpha/pt-machine.h: Choose different include file location
1095 on non-Linux platforms.
4f58b7c6 1096
a1e56cd1
RM
1097 * wrapsyscall.c (PROMOTE_INTEGRAL_TYPE): New macro.
1098 (open, open64): Change va_arg argument type to the integral type to
1099 which mode_t promotes.
1100
1101 * sysdeps/pthread/tst-timer.c (main): Don't assume anything about
1102 the structure of 'struct sigevent'.
1103
1104 * errno.c (__errno_location, __h_errno_location, __res_state):
1105 Use prototype function definitions.
1106
92b27c74
UD
11072002-07-29 Steven Munroe <sjmunroe@us.ibm.com>
1108
1109 * shlib-versions: Set libpthread version to 2.3 for powerpc64.
1110 * sysdeps/powerpc/pt-machine.h: moved to...
1111 * sysdeps/powerpc/powerpc32/pt-machine.h: ...here
a1e56cd1 1112 * sysdeps/powerpc/powerpc64/pt-machine.h: New file.
92b27c74 1113
bcc565a0
UD
11142002-09-02 Roland McGrath <roland@redhat.com>
1115
1116 * sysdeps/powerpc/Makefile (CFLAGS-pt-initfini.s): New variable.
1117
cf684340
RM
11182002-09-01 Roland McGrath <roland@redhat.com>
1119
1120 * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t): Add new keys
1121 CTYPE_B, CTYPE_TOLOWER, CTYPE_TOUPPER.
1122
1123 * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_address): New macro.
1124 (__libc_internal_tsd_address): Declare it.
1125 * Versions (libc, ld, libpthread: GLIBC_PRIVATE): Add
1126 __libc_internal_tsd_address.
1127 * specific.c (libc_internal_tsd_address): New function.
1128 (__libc_internal_tsd_address): New variable.
1129 * no-tsd.c (__libc_internal_tsd_address): New variable.
1130
9649be24
UD
11312002-08-31 Ulrich Drepper <drepper@redhat.com>
1132
1133 * Makefile: Don't use rule for crt%.o, spell it out as rules for
1134 crti.o and crtn.o.
1135
cc6d371d
RM
11362002-08-30 Roland McGrath <roland@redhat.com>
1137
1138 * Makefile (extra-objs, omit-deps): Add crtn.
1139 ($(objpfx)libpthread.so): Depend on $(objpfx)crtn.o.
1140 ($(objpfx)libpthread.so: +postinit): Append $(objpfx)crtn.o.
1141 ($(objpfx)crtn.S): New target.
1142 ($(objpfx)crt%.o): Pattern rule replaces crti.o target.
1143 (generated): Add crtn.S.
1144
1145 * sysdeps/unix/sysv/linux/x86_64/Makefile ($(objpfx)specs): Massage
1146 crtn.o pathname too.
1147
95ed9d84
RM
11482002-08-30 Jakub Jelinek <jakub@redhat.com>
1149
9649be24
UD
1150 * pthread.c (__pthread_initialize_minimal): Call __uselocale even
1151 if [! SHARED].
95ed9d84
RM
1152
11532002-08-30 Roland McGrath <roland@redhat.com>
1154
1155 * tst-static-locale.c: New file.
1156 * Makefile (tests, tests-static): Add it.
1157
c98d82db
UD
11582002-04-24 Steven Munroe <sjmunroe@us.ibm.com>
1159
1160 * spinlock.c (__pthread_lock): Fix spurious wakeup
1161 handling. Don't clear lowest bit of list pointer as sign the thread
1162 is still on the wait list. Don't restart after spurious wakeup
1163 with spinning to get the lock.
1164 (__pthread_unlock): Take set lowest bit into account when handling
1165 pointer to list elements.
1166 Patch by Steve Munroe <sjmunroe@us.ibm.com>.
1167
963e3b58
RM
11682002-08-28 Roland McGrath <roland@redhat.com>
1169
1170 * sysdeps/pthread/timer_routines.c (thread_func): Fix type in cast.
1171
5fe14d96
UD
11722002-08-28 Jakub Jelinek <jakub@redhat.com>
1173
1174 * sysdeps/unix/sysv/linux/hppa/aio_cancel.c: New file.
1175 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
1176 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
1177
dd4f2115
UD
11782002-08-28 Ulrich Drepper <drepper@redhat.com>
1179
1180 * sysdeps/pthread/timer_routines.c (thread_func): Change return
963e3b58 1181 type to void and add casts in use to avoid warnings with all gcc
dd4f2115
UD
1182 versions.
1183
f0377954
UD
11842002-08-08 Jakub Jelinek <jakub@redhat.com>
1185
1186 * sysdeps/unix/sysv/linux/bits/local_lim.h (PTHREAD_THREADS_MAX):
1187 Bump to 16384.
1188 * manager.c (__pthread_handles): Remove.
1189 * pthandles.c: New file.
1190 * pthread.c (__pthread_initialize_minimal): Initialize
1191 __pthread_handles[0] and __pthread_handles[1].
1192 * Makefile (libpthread-routines): Add pthandles (must be last).
1193
5fe14d96 11942002-08-26 Brian Youmans <3diff@gnu.org>
8b269abc 1195
e0cffcf6
UD
1196 * Examples/ex10.c: Corrected version number in Lesser GPL copying
1197 permission notice from 2 to 2.1.
8b269abc
UD
1198 * Examples/ex11.c: Likewise.
1199 * Examples/ex13.c: Likewise.
1200 * Examples/ex8.c: Likewise.
1201 * Examples/ex9.c: Likewise.
1202 * barrier.c: Likewise.
1203 * events.c: Likewise.
1204 * lockfile.c: Likewise.
1205 * no-tsd.c: Likewise.
1206 * pt-machine.c: Likewise.
1207 * ptclock_gettime.c: Likewise.
1208 * ptclock_settime.c: Likewise.
1209 * rwlock.c: Likewise.
1210 * sysdeps/alpha/pspinlock.c: Likewise.
1211 * sysdeps/alpha/pt-machine.h: Likewise.
1212 * sysdeps/arm/pspinlock.c: Likewise.
1213 * sysdeps/arm/pt-machine.h: Likewise.
1214 * sysdeps/cris/pspinlock.c: Likewise.
1215 * sysdeps/cris/pt-machine.h: Likewise.
1216 * sysdeps/hppa/pspinlock.c: Likewise.
1217 * sysdeps/hppa/pt-machine.h: Likewise.
1218 * sysdeps/i386/i686/pt-machine.h: Likewise.
1219 * sysdeps/i386/pspinlock.c: Likewise.
1220 * sysdeps/i386/pt-machine.h: Likewise.
1221 * sysdeps/i386/useldt.h: Likewise.
1222 * sysdeps/ia64/pspinlock.c: Likewise.
1223 * sysdeps/ia64/pt-machine.h: Likewise.
1224 * sysdeps/m68k/pspinlock.c: Likewise.
1225 * sysdeps/m68k/pt-machine.h: Likewise.
1226 * sysdeps/mips/pspinlock.c: Likewise.
1227 * sysdeps/mips/pt-machine.h: Likewise.
1228 * sysdeps/powerpc/pspinlock.c: Likewise.
1229 * sysdeps/powerpc/pt-machine.h: Likewise.
1230 * sysdeps/pthread/bits/initspin.h: Likewise.
1231 * sysdeps/pthread/bits/libc-lock.h: Likewise.
1232 * sysdeps/pthread/bits/libc-tsd.h: Likewise.
1233 * sysdeps/pthread/getcpuclockid.c: Likewise.
1234 * sysdeps/pthread/posix-timer.h: Likewise.
1235 * sysdeps/pthread/timer_create.c: Likewise.
1236 * sysdeps/pthread/timer_delete.c: Likewise.
1237 * sysdeps/pthread/timer_getoverr.c: Likewise.
1238 * sysdeps/pthread/timer_gettime.c: Likewise.
1239 * sysdeps/pthread/timer_routines.c: Likewise.
1240 * sysdeps/pthread/timer_settime.c: Likewise.
1241 * sysdeps/pthread/tst-timer.c: Likewise.
1242 * sysdeps/s390/pspinlock.c: Likewise.
1243 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
1244 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
1245 * sysdeps/sh/pspinlock.c: Likewise.
1246 * sysdeps/sh/pt-machine.h: Likewise.
1247 * sysdeps/sparc/sparc32/pspinlock.c: Likewise.
1248 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
1249 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
1250 * sysdeps/sparc/sparc64/pspinlock.c: Likewise.
1251 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1252 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
1253 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
1254 * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
1255 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
1256 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1257 * tststack.c: Likewise.
1258 * unload.c: Likewise.
1259 * weaks.c: Likewise.
1260 * wrapsyscall.c: Likewise.
1261
1262 * sysdeps/pthread/pt-initfini.c: Changed copying
1263 permission notice to Lesser GPL from Library GPL, including the
1264 references in the special exception.
1265 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: Likewise.
1266 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Likewise.
1267 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c:
1268 Likewise.
1269 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c:
1270 Likewise.
1271 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Likewise.
1272
34816665
UD
12732002-08-26 Ulrich Drepper <drepper@redhat.com>
1274
1275 * Examples/ex10.c (thread): tv_nsec == 1000000000 is already
1276 overflow [PR libc/4244].
1277
6d497bbe
UD
12782002-08-25 Ulrich Drepper <drepper@redhat.com>
1279
fd77c361
UD
1280 * sysdeps/pthread/timer_routines.c (thread_func): Make the
1281 compiler happy by adding a return statement which will never be
1282 reached.
1283
9df89390
UD
1284 * tst-context.c (main): Cast to long before casting to pointer.
1285
1286 * Examples/ex17.c (main): Use correct format string.
1287
6d497bbe
UD
1288 * Examples/ex9.c (thread): Remove incorrect return statement.
1289
069125e5
UD
12902002-08-23 Ulrich Drepper <drepper@redhat.com>
1291
1292 * pthread.c (__linuxthreads_version): New global constant.
1293
fb2bdbba
AJ
12942002-08-23 Andreas Jaeger <aj@suse.de>
1295
1296 * sysdeps/x86_64/pt-machine.h: Use %fs instead of %gs
1297 as thread specific register.
1298 (testandset): Fix inline asm.
1299 (THREAD_GETMEM): Fix inline asm.
1300
8ddcb7da
RM
13012002-08-22 Roland McGrath <roland@redhat.com>
1302
1303 * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Remove [HAVE_TLS_SUPPORT]
1304 conditional.
1305 (INIT_THREAD_SELF): Pass second arg to DO_SET_THREAD_AREA.
1306 (DO_SET_THREAD_AREA): Take second arg, pass to DO_SET_THREAD_AREA_REUSE
1307 macro. That chooses whether to reuse %gs value or let kernel set it.
1308 [USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, always 1.
1309 [!USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, true if arg is
1310 not constant 0.
1311
0fe35439
UD
13122002-08-21 Ulrich Drepper <drepper@redhat.com>
1313
1314 * sysdeps/i386/tls.h (TLS_SETUP_GS_SEGMENT): Add new parameter
1315 also to the third definition of this macro.
1316
c70a0936
AJ
13172002-06-17 Andreas Jaeger <aj@suse.de>
1318
1319 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
1320 Set it.
1321
58d2d09b
UD
13222002-08-20 Ulrich Drepper <drepper@redhat.com>
1323
c761cdf5
UD
1324 * sysdeps/i386/useldt.h: Go back to using 16-bit instructions when
1325 loading/reading segment registers. Some old hardware doesn't
1326 handle the 32-bit instructions as expected.
1327 * sysdeps/i386/tls.h: Likewise.
1328
9d69bd24
UD
1329 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Second parameter is
1330 renamed to secondcall and use is negated.
1331 (TLS_SETUP_GS_SEGMENT): Likewise.
1332 (TLS_INIT_TP): Likewise.
1333 * sysdeps/sh/tls.h (TLS_INIT_TP): Second parameter is renamed to
1334 secondcall.
1335
69681bde
UD
1336 * sysdeps/i386/tls.h: Use 32-bit operations when handling segment
1337 registers. No need to mask upper 16 bits in this case.
1338 * sysdeps/i386/useldt.h: Likewise.
1339 (DO_SET_THREAD_AREA): We have to load %gs again even if the value
1340 is the same since the GDT content changed.
1341
d78ce054
UD
1342 * sysdeps/i386/tls.h (TLS_INIT_TP): Add new parameter and pass it on
1343 to TLS_SETUP_GS_SEGMENT.
1344 (TLS_SETUP_GS_SEGMENT): Add new parameter and pass it on to
1345 TLS_DO_SET_THREAD_AREA.
1346 (TLS_DO_SET_THREAD_AREA): If new parameter is zero determine
1347 entry number from %gs value.
1348 * sysdeps/sh/tls.h (TLS_INIT_TP): Add new parameter and simply
1349 ignore it.
1350
58d2d09b
UD
1351 * manager.c (pthread_handle_create): Pass NULL to _dl_allocate_tls.
1352 Pass true to _dl_deallocate_tls.
1353 (pthread_free): Likewise.
1354 * pthread.c (__pthread_initialize_manager): Likewise.
1355
46615777
UD
13562002-08-19 Ulrich Drepper <drepper@redhat.com>
1357
1358 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Use correct shift when
1359 computing index from %gs value.
1360
25cb6eb2
RM
13612002-08-16 Roland McGrath <roland@redhat.com>
1362
3ed35099
RM
1363 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Calculate segment
1364 register value from entry number properly.
1365
25cb6eb2
RM
1366 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Rewrite asm to use %ebx
1367 optimally conditional on [__PIC__].
1368 (TLS_DO_SET_THREAD_AREA): New macro, implement inline syscall
1369 without touching errno, and use latest modify_ldt-like interface.
1370 (TLS_SETUP_GS_SEGMENT): Use that instead of INLINE_SYSCALL.
1371 * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Set %gs in this macro.
1372 (DO_SET_THREAD_AREA): New macro, uses current syscall interface with
1373 existing %gs value as the segment to set.
1374 (INIT_THREAD_SELF): Rewritten using those. Use set_thread_area only
1375 under [HAVE_TLS_SUPPORT] so we can rely on the initialization done
1376 by the first thread's early TLS setup.
1377
c88b4759
RM
13782002-08-15 Roland McGrath <roland@redhat.com>
1379
1380 * sysdeps/i386/tls.h (TLS_INIT_TP): Use statement expression and
1381 return a value as callers now expect.
1382
e6f52680
RM
13832002-08-11 Roland McGrath <roland@redhat.com>
1384
1385 * pthread.c (__pthread_initialize_manager): Initialize
1386 p_header.data.tcb field of manager thread's descriptor.
1387 (__pthread_initialize_minimal): Don't initialize p_header.data.self
1388 field, already done by TLS_INIT_TP.
1389
1390 * manager.c (pthread_handle_create): Move p_header field initializers
1391 together.
1392
b7eb7b0f
UD
13932002-08-08 Ulrich Drepper <drepper@redhat.com>
1394
1395 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Removed.
1396
f70b0ea2
UD
13972002-08-07 Ulrich Drepper <drepper@redhat.com>
1398
1399 * pthread.c (__linuxthreads_initial_report_events): New variable.
1400 (__pthread_initialize_manager): Use it to initialize p_report_events
1401 of initial thread.
1402 [TLS]: Store pointer to descriptor of manager in __pthread_handles.
1403
e8e91498
RM
14042002-08-07 Roland McGrath <roland@redhat.com>
1405
1406 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Add an extra argument with
1407 an "m" constraint to the asm so the compiler knows LDT_ENTRY was used.
1408
26e73ab6
RM
14092002-08-02 Roland McGrath <roland@redhat.com>
1410
a14f26ef
RM
1411 * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t):
1412 Add _LIBC_TSD_KEY_LOCALE.
1413 * manager.c (pthread_start_thread) [!(USE_TLS && HAVE___THREAD)]:
1414 Call __uselocale to initialize our per-thread locale pointer to
1415 the global one.
1416 * pthread.c (__pthread_initialize_minimal): Likewise.
1417
26e73ab6
RM
1418 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Add missing \s.
1419
1f3f143e
UD
14202002-08-02 Ulrich Drepper <drepper@redhat.com>
1421
3c877a04
UD
1422 * pthread.c: Declare _errno, _h_errno, and _res unless we use TLS
1423 internally.
1424
1f3f143e
UD
1425 * cancel.c (__pthread_perform_cleanup) [USE_TLS && HAVE___THREAD]:
1426 Don't use p_libc_specific element in thread descriptor.
1427
c2afe833
RM
14282002-07-30 Roland McGrath <roland@redhat.com>
1429
1430 * sysdeps/pthread/bits/libc-tsd.h: Include <tls.h>.
1431 [USE_TLS && HAVE___THREAD]: Just include the sysdeps/generic file,
1432 which does the right thing when __thread support is available.
1433 * descr.h (struct _pthread_descr_struct) [USE_TLS && HAVE___THREAD]:
1434 Omit `p_libc_specific', `p_errnop', `p_errno', `p_h_errnop',
1435 `p_h_errno', `p_resp', and `p_res' members.
1436 * pthread.c (__pthread_initialize_minimal) [USE_TLS && HAVE___THREAD]:
1437 Don't initialize `p_errnop' and `p_h_errnop' members.
1438 (__pthread_reset_main_thread): Likewise.
1439 (__pthread_initialize_manager): Likewise.
1440 * manager.c (__pthread_manager, pthread_handle_create): Likewise.
1441 * pthread.c (pthread_initialize) [USE_TLS && HAVE___THREAD]:
1442 Don't initialize `p_resp' member.
1443 (__pthread_reset_main_thread): Likewise.
1444 * manager.c (pthread_handle_create): Likewise.
1445 * specific.c (libc_internal_tsd_set, libc_internal_tsd_get):
1446 Conditionalize these on [!(USE_TLS && HAVE___THREAD)].
fc10bc8d 1447 * no-tsd.c: Conditionalize contents on [!(USE_TLS && HAVE___THREAD)].
c2afe833
RM
1448 * errno.c [USE_TLS && HAVE___THREAD]
1449 (__h_errno_location, __res_state): Don't define these at all.
1450
1451 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens around arguments!
1452 (INSTALL_NEW_DTV, GET_DTV): Likewise.
1453 * sysdeps/sh/tls.h (INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV): Likewise.
1454
1455 * weaks.c: Don't include <errno.h> here.
1456
14572002-08-01 Roland McGrath <roland@redhat.com>
1458
1459 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): New macro, broken out of
1460 TLS_INIT_TP.
1461 (TLS_DO_SET_THREAD_AREA): New macro, uses thread_set_area syscall.
1462 (TLS_SETUP_GS_SEGMENT): New macro, try one or the other or both.
1463 (TLS_INIT_TP): Use that.
1464
06c2c536
UD
14652002-08-02 Jakub Jelinek <jakub@redhat.com>
1466
1467 * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Move from INIT_THREAD_SELF.
1468 (INIT_THREAD_SELF): Use sys_thread_area syscall instead if available.
1469 (FREE_THREAD): Avoid modify_ldt if using GDT.
1470 * sysdeps/i386/pspinlock.c (__have_no_set_thread_area): New variable.
1471
78ce5a3b
UD
14722002-07-25 Jakub Jelinek <jakub@redhat.com>
1473
1474 * sysdeps/i386/tls.h: Use __ASSEMBLER__ test macro not ASSEMBLER.
1475 * sysdeps/i386/pt-machine.h: Likewise.
1476 * sysdeps/i386/useldt.h: Likewise.
1477
67ee6db0
UD
14782002-07-22 Ulrich Drepper <drepper@redhat.com>
1479
8a30f00f
UD
1480 * pthread.c (__pthread_initialize_minimal): If !SHARED and TLS
1481 call __libc_setup_tls first.
1482 * Makefile: Actually create tst-signal.out file when running the test.
1483 (tests): Add tststatic.
1484 * Examples/tststatic.c: New file.
67ee6db0 1485
739d440d
UD
14862002-07-19 Ulrich Drepper <drepper@redhat.com>
1487
1488 * errno.c (__errno_location): Don't define unless !USE_TLS
1489 || !HAVE___THREAD.
1490 * sysdeps/i386/pt-machine.c: Protect C code with #ifndef ASSEMBLER.
1491 * sysdeps/i386/tls.h: Likewise.
1492 * sysdeps/i386/useldt.h: Likewise.
1493 * sysdeps/i386/i686/pt-machine.h: Likewise.
1494
a99bfa85
UD
14952002-07-02 H.J. Lu <hjl@gnu.org>
1496
1497 * sysdeps/mips/pspinlock.c: Don't include <sgidefs.h>. Always
1498 use ll/sc.
1499 * sysdeps/mips/pt-machine.h: Likewise.
1500
2acfe5d6
UD
15012002-07-14 Ulrich Drepper <drepper@redhat.com>
1502
1503 * manager.c (pthread_handle_create): Initialize self-reference in
1504 descriptor.
1505
b664d723
UD
15062002-07-01 Jakub Jelinek <jakub@redhat.com>
1507
1508 * Examples/ex9.c (main): Remove unused th variable.
1509
d880edc4
UD
15102002-07-10 Ulrich Drepper <drepper@redhat.com>
1511
1512 * wrapsyscall.c: Add __nanosleep alias.
1513 * Versions (GLIBC_2.2.6): Add __nanosleep.
f4741da2
UD
1514 * bug-sleep.c: New file.
1515 * Makefile (tests): Add bug-sleep.
d880edc4 1516
95fdc6a0
UD
15172002-06-19 Steven Munroe <sjmunroe@vnet.ibm.com>
1518
1519 * Examples/ex9.c (main): Use list of children and join them.
1520 (thread): Do not call exit.
1521
9b17bc94
UD
15222002-06-20 Ulrich Drepper <drepper@redhat.com>
1523
1524 * spinlock.c (wait_node_alloc): We cannot use compare-and-exchange.
1525 Unconditionally use the code using spinlock. Use __pthread_release
1526 to free a spinlock.
1527 (wait_node_free): Likewise.
1528 (__pthread_acquire, __pthread_release): Unconditionally define.
1529
a6cd9bf9
AJ
15302002-06-07 Jakub Jelinek <jakub@redhat.com>
1531
1532 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Fix typo.
1533
c0a0f9a3
UD
15342002-05-24 Ulrich Drepper <drepper@redhat.com>
1535
1536 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Use __sync_synchronize.
1537
12b7f470
UD
15382002-05-21 Ulrich Drepper <drepper@redhat.com>
1539
1540 * sysdeps/pthread/pthread.h (pthread_create): Rename first
1541 parameter.
1542 (pthread_cancel): Likewise.
1543 * internals.h (__pthread_create_2_1): Likewise.
1544 * sysdeps/unix/sysv/linux/bits/sigthread.h (pthread_kill): Likewise.
1545
4c393b68
UD
15462002-05-20 Ulrich Drepper <drepper@redhat.com>
1547
1548 * sysdeps/alpha/pt-machine.c (THREAD_SELF): Remove clobber.
1549 Patch by Glen Nakamura <gen@flex.com>.
1550
38a7d8ba
UD
15512002-05-03 Ulrich Drepper <drepper@redhat.com>
1552
1553 * signals.c: Move sighandler functions to...
1554 * sighandler.c: ...here. New file.
1555 * signals.c: Move signal handler related type definitions to...
1556 * internals.h: ...here. Add prototypes for signal handlers.
1557 * Makefile (libpthread-routines): Add sighandler.
1558 (CFLAGS-sighandler.c): Add $(exceptions).
1559
531bafd8
UD
15602002-04-30 Jakub Jelinek <jakub@redhat.com>
1561
1562 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
1563
14b2ede5
UD
15642002-04-08 Ulrich Drepper <drepper@redhat.com>
1565
1566 * sysdeps/pthread/timer_getoverr.c: Return real overrun.
1567 * sysdeps/pthread/posix-timer.h (struct timer_node): Add overrun_count.
1568 * sysdeps/pthread/timer_routines.c (thread_func): Schedule next timeout
1569 based on previous one and not on current time. Count overruns.
1570 Patch by Eric F. Sorton <eric@cctcorp.com>.
1571
1572 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add DELAYTIMER_MAX.
1573
776cc5d3
UD
15742002-04-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
1575
1576 * sysdeps/sh/pt-machine.h: Define _PT_MACHINE_H
1577 if it isn't defined yet.
14b2ede5 1578 (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Defined.
776cc5d3
UD
1579 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
1580 Likewise.
1581 * sysdeps/sh/tls.h: New file.
1582
3632a260
UD
15832002-04-08 Jakub Jelinek <jakub@redhat.com>
1584
1585 * manager.c (__pthread_manager_event): Use self instead of arg
1586 for INIT_THREAD_SELF.
1587 * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Use sizeof (struct
1588 _pthread_descr_struct) instead of sizeof (*descr).
1589
3fc2f6c8
UD
15902002-04-05 Ulrich Drepper <drepper@redhat.com>
1591
1592 * sysdeps/ia64/pt-machine.h: Protect against multiple inclusion.
1593 * sysdeps/alpha/pt-machine.h: Likewise.
1594 * sysdeps/arm/pt-machine.h: Likewise.
1595 * sysdeps/cris/pt-machine.h: Likewise.
1596 * sysdeps/hppa/pt-machine.h: Likewise.
1597 * sysdeps/m68k/pt-machine.h: Likewise.
1598 * sysdeps/mips/pt-machine.h: Likewise.
1599 * sysdeps/powerpc/pt-machine.h: Likewise.
1600 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
1601 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
1602 * sysdeps/sh/pt-machine.h: Likewise.
1603 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
1604 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1605 * sysdeps/x86_64/pt-machine.h: Likewise.
1606
6736e93b
UD
16072002-04-05 Jakub Jelinek <jakub@redhat.com>
1608
1609 * man/pthread_mutexattr_init.man (pthread_mutexattr_settype): Document
1610 instead of pthread_mutexattr_setkind_np.
1611 (pthread_mutexattr_gettype): Similarly.
1612 * man/pthread_mutexattr_setkind_np.man: New.
1613 * man/Makefile (SOURCES): Add pthread_mutexattr_setkind_np.man.
1614
62097690
UD
16152002-04-02 Ulrich Drepper <drepper@redhat.com>
1616
1617 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Define.
1618
fbaee91d
UD
16192002-03-22 Jakub Jelinek <jakub@redhat.com>
1620
1621 * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Remove.
1622
32fe4a93
UD
16232002-03-22 Ulrich Drepper <drepper@redhat.com>
1624
1625 * internals.h (MEMORY_BARRIER): Define as asm with memory as clobber.
1626
f68137c9
AJ
16272002-03-17 Andreas Jaeger <aj@suse.de>
1628
1629 * sysdeps/i386/pt-machine.h: Add testandset and __compare_and_swap
1630 prototpyes.
1631 * sysdeps/alpha/pt-machine.h: Likewise.
1632 * sysdeps/arm/pt-machine.h: Likewise.
1633 * sysdeps/cris/pt-machine.h: Likewise.
1634 * sysdeps/hppa/pt-machine.h: Likewise.
1635 * sysdeps/i386/i686/pt-machine.h: Likewise.
1636 * sysdeps/ia64/pt-machine.h: Likewise.
1637 * sysdeps/m68k/pt-machine.h: Likewise.
1638 * sysdeps/mips/pt-machine.h: Likewise.
1639 * sysdeps/powerpc/pt-machine.h: Likewise.
1640 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
1641 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
1642 * sysdeps/sh/pt-machine.h: Likewise.
1643 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
1644 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1645 * sysdeps/x86_64/pt-machine.h: Likewise.
1646
1647 * internals.h: Move testandset and __compare_and_swap prototypes
1648 to pt-machine.h.
1649
1bd8ff7b
AJ
16502002-03-03 Andreas Jaeger <aj@suse.de>
1651
1652 * errno.c: Include resolv.h to avoid warning.
1653
b863ccd7
UD
16542002-02-27 Ulrich Drepper <drepper@redhat.com>
1655
1656 * pthread.c [USE_TLS] (thread_self_stack): Correct check for upper
1657 stack limit.
1658
557fab43
UD
16592002-02-23 Ulrich Drepper <drepper@redhat.com>
1660
b6a0a996
UD
1661 * attr.c (pthread_getattr_np): Don't take thread descriptor size
1662 into account if USE_TLS.
1663 * manager.c (pthread_handle_create): Free TLS data structures if call
1664 failed. Pass correct stack to clone if USE_TLS.
1665 * sysdeps/i386/pt-machine.h: Handle multiple inclusion.
1666 * sysdeps/i386/i686/pt-machine.h: Likewise.
1667 * sysdeps/i386/tls.h: Unconditionally include <pt-machine.h>.
1668
557fab43
UD
1669 * descr.h (struct _pthread_descr_struct): Update p_header for TLS.
1670 Add p_stackaddr element #if USE_TLS.
1671 * internals.c: Include <tls.h>.
1672 * manager.c: Integrate creating and handling of thread descriptor
1673 for TLS.
1674 * pthread.c: Likewise.
1675 * sysdeps/i386/tls.h (tcbhead_t): Add self pointer.
1676 Include <linuxthreads/descr.h> only if TLS is really used.
1677 (GET_DTV): New macro.
1678 (TLS_INIT_TP): Initialize self pointer.
1679
232bd771
UD
16802002-02-17 Andreas Schwab <schwab@suse.de>
1681
1682 * signals.c (sigwait): Check for old sighandler being SIG_ERR,
1683 not NULL.
1684
aed283dd
UD
16852002-02-12 Ulrich Drepper <drepper@redhat.com>
1686
1687 * sysdeps/i386/tls.c (INSTALL_NEW_DTV): Define.
1688 (INSTALL_DTV): Adjust for being passed pointer to element with length.
1689
974ac3d6
UD
16902002-02-08 Ulrich Drepper <drepper@redhat.com>
1691
1692 * sysdeps/i386/tls.h (TLS_INIT_TP): Also initialize %gs.
1693
aed283dd 16942002-02-08 Richard Henderson <rth@redhat.com>
2a535bf6
UD
1695
1696 * sysdeps/alpha/elf/pt-initfini.c: Use \n\ for multiline string.
1697
67eb7235
UD
16982002-02-08 Ulrich Drepper <drepper@redhat.com>
1699
1700 * sysdeps/i386/tls.h: TLS cannot be supported with FLOATING_STACKS
1701 after all.
1702
1a70fdb3
AJ
17032002-02-07 H.J. Lu <hjl@gnu.org>
1704
1705 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Silence the
1706 gcc warning.
1707 (__pthread_spin_lock): Remove ".set noreorder".
1708 * sysdeps/mips/pt-machine.h (__compare_and_swap): Liekwise.
1709
a6049f98
AJ
17102002-02-05 H.J. Lu <hjl@gnu.org>
1711
1712 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Not use
1713 branch likely.
1714 * sysdeps/mips/pt-machine.h (testandset): Likewise.
1715 (__compare_and_swap): Likewise.
1716
cd30b01e
UD
17172002-02-07 Ulrich Drepper <drepper@redhat.com>
1718
1719 * internals.h: Move declarations/definitions of
1720 __pthread_initial_thread_bos, __pthread_initial_thread,
1721 __pthread_manager_thread_bos, __pthread_manager_thread_tos,
1722 __pthread_manager_thread, __pthread_nonstandard_stacks, STACK_SIZE,
1723 CURRENT_STACK_FRAME, __pthread_find_self, and thread_self...
1724 * descr.h: ...here.
1725 * sysdeps/i386/tls.h: Add TLS definitions also for !FLOATING_STACKS.
1726 Define THREAD_GETMEM accordingly.
1727
3fb55878
UD
17282002-02-06 Ulrich Drepper <drepper@redhat.com>
1729
8d4b5a8a
UD
1730 * sysdeps/i386/tls.h: Include <stddef.h> for size_t.
1731
3fb55878
UD
1732 * sysdeps/i386/tls.h: Define THREAD_DTV.
1733
535b764d
UD
17342002-02-04 Ulrich Drepper <drepper@redhat.com>
1735
1736 * internals.h: Move thread descriptor definition...
1737 * descr.h.: ...here. New file.
1738 * sysdeps/i386/tls.h: New file.
1739
654a7a0c
UD
17402002-02-01 H.J. Lu <hjl@gnu.org>
1741
1742 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Use a
1743 different register in the delayed slot. Use branch likely.
1744
1745 * sysdeps/mips/pt-machine.h (testandset): Call _test_and_set.
1746 (__compare_and_swap): Return 0 only when failed to compare. Use
1747 branch likely.
1748
fb23eb25
UD
17492002-02-01 Jakub Jelinek <jakub@redhat.com>
1750
1751 * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set,
1752 __pthread_kill_other_threads_np): Move to GLIBC_PRIVATE.
1753 * sysdeps/i386/i586/Versions: Move all symbols to GLIBC_PRIVATE.
1754 * sysdeps/i386/i686/Versions: Move all symbols to GLIBC_PRIVATE.
1755 * sysdeps/sparc/sparc32/sparcv9/Versions: New file.
1756 * sysdeps/sparc/sparc64/Versions: New file.
1757 * sysdeps/ia64/Versions: Move all symbols to GLIBC_PRIVATE.
1758
5688da55
UD
17592002-01-31 Ulrich Drepper <drepper@redhat.com>
1760
1761 * pthread.c: _dl_cpuclock_offset is not any longer a global variable
1762 in SHARED code, use GL(dl_cpuclock_offset).
1763
dde762a2
AJ
17642002-01-28 Andreas Jaeger <aj@suse.de>
1765
1766 * sysdeps/mips/pspinlock.c (__pthread_spin_init): Clear *LOCK to
1767 0. Patch by Machida Hiroyuki <machida@sm.sony.co.jp>.
1768
956f8acd
UD
17692002-01-16 Martin Schwidefsky <schwidefsky@de.ibm.com>
1770
dde762a2
AJ
1771 * sysdeps/s390/s390-32/pt-machine.h (MEMORY_BARRIER): Define.
1772 (CURRENT_STACK_FRAME): Remove duplicate definition.
1773 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
956f8acd 1774
01d1a5b6
UD
17752002-01-14 Martin Schwidefsky <schwidefsky@de.ibm.com>
1776
ec562b3d
UD
1777 * Makefile (CFLAGS-tst-cancel.c): Add -fno-inline-functions to prevent
1778 automatic inline.
01d1a5b6 1779
de13e6e7
UD
17802002-01-12 Andreas Schwab <schwab@suse.de>
1781
1782 * Makefile (test-srcs): Add tst-signal.
1783 (tests): Run tst-signal.
1784 (distribute): Add tst-signal.sh.
1785 * tst-signal.c, tst-signal.sh: New files.
1786
037af25e
AJ
17872002-01-14 Andreas Jaeger <aj@suse.de>
1788
1789 * sysdeps/x86_64/pt-machine.h (INIT_THREAD_SELF): Avoid warning.
1790
6c69f24a
UD
17912002-01-11 Andreas Schwab <schwab@suse.de>
1792
1793 * signals.c (sighandler): Initialize all elements to SIG_ERR.
1794 (__sigaction): Don't use value from sighandler if it is SIG_ERR.
1795
abd33689
UD
17962002-01-06 Richard Henderson <rth@redhat.com>
1797
1798 * sysdeps/alpha/elf/pt-initfini.c: New file.
1799
9403ec5d
AJ
18002001-12-29 Andreas Jaeger <aj@suse.de>
1801
1802 * Examples/ex9.c: Add noreturn attribute for thread.
1803 * Examples/ex10.c: Likewise.
1804 * Examples/ex13.c (thread_start): Likewise.
1805 * Examples/ex15.c (worker): Likewise.
1806
1807 * Examples/ex18.c: Include unistd.h for prototype of sleep.
1808
638621af
UD
18092001-12-14 Ulrich Drepper <drepper@redhat.com>
1810
1811 * man/pthread_atfork.man: Adjust description of mutex handling
1812 after fork for current implementation.
1813 * linuxthreads.texi: Likewise [PR libc/2519].
1814
2e22fed2
UD
18152001-12-13 Andreas Schwab <schwab@suse.de>
1816
1817 * specific.c (pthread_key_delete): Don't contact the thread
1818 manager if no threads have been created yet.
1819
abd33689 18202001-12-12 NIIBE Yutaka <gniibe@m17n.org>
2bfe5fd1
UD
1821
1822 * sysdeps/sh/pt-machine.h (INIT_THREAD_SELF): Added __volatile__
1823 qualifier to be safe.
1824
c3317d1e
UD
18252001-11-30 Andreas Schwab <schwab@suse.de>
1826
1827 * pthread.c (pthread_handle_sigcancel) [THREAD_SELF]: Double check
1828 that self is the manager thread, and initialize the thread
1829 register if not.
1830 (thread_self_stack) [THREAD_SELF]: New function to find self via
1831 stack pointer.
1832 * manager.c (pthread_handle_create): Don't block cancel signal any
1833 more.
1834
64753027
AJ
18352001-11-29 Andreas Jaeger <aj@suse.de>
1836
2e22fed2 1837 * sysdeps/x86_64/pt-machine.h: Use %gs as thread specific register.
64753027
AJ
1838 (THREAD_SELF): New.
1839 (INIT_THREAD_SELF): New.
1840 (THREAD_GETMEM): New.
c3317d1e 1841 (THREAD_GETMEM_NC):
64753027
AJ
1842 (THREAD_SETMEM): New.
1843 (THREAD_SETMEM_NC): New.
1844 (FLOATING_STACKS): Define.
1845 (ARCH_STACK_MAX_SIZE): Define.
1846
03a2c647
UD
18472001-11-28 Kaz Kylheku <kaz@ashi.footprints.net>
1848
1849 Bugfix to pthread_key_delete. It was iterating over the thread
1850 manager's linked list of threads, behind the thread manager's
1851 back causing a race. The fix is to have the manager iterate over
1852 the threads instead, using a new request type for doing so.
1853 * internals.h (struct pthread_request): New manager request type
1854 REQ_FOR_EACH_THREAD.
1855 * manager.c (pthread_for_each_thread): New function.
1856 (__pthread_manager): Handle new REQ_FOR_EACH_THREAD request.
1857 * specific.c (struct pthread_key_delete_helper_args): New type.
1858 (pthread_key_delete_helper): New static function.
1859 (pthread_key_delete): Use the new thread manager
1860 REQ_FOR_EACH_THREAD function to iterate over the threads and set
1861 the delete key slot to a null value in each thread.
1862 * Examples/ex18.c: New test.
1863 * Makefile (tests): Add ex18.
1864
cf6a2367
UD
18652001-11-22 Wolfram Gloger <wg@malloc.de>
1866
1867 * pthread.c (pthread_onexit_process): Don't call free
1868 after threads have been asynchronously terminated.
1869
1870 * manager.c (pthread_handle_exit): Surround cancellation
1871 of threads with __flockfilelist()/__funlockfilelist().
1872
30f5deff
AS
18732001-11-26 Andreas Schwab <schwab@suse.de>
1874
1875 * manager.c (pthread_handle_create): Start the child thread with
1876 the cancel signal blocked, so that it does not handle it before
1877 the thread register is set up. Save errno from failed clone call.
1878
4acda75c
UD
18792001-11-15 Ulrich Drepper <drepper@redhat.com>
1880
1881 * sysdeps/i386/i686/Implies: Removed.
1882 * sysdeps/i386/i686/Versions: New file.
1883
76f93292
AJ
18842001-10-31 Andreas Jaeger <aj@suse.de>
1885
1886 * sysdeps/x86_64/Makefile: Remove, we do not need it anymore.
1887
b61345a1
UD
18882001-10-05 Kevin Buettner <kevinb@cygnus.com>
1889
1890 * pthread.c (__linuxthread_pthread_sizeof_descr): Change name
1891 to __linuxthreads_pthread_sizeof_descr to match name used by
1892 symbol_list_arr[LINUXTHREADS_PTHREAD_SIZEOF_DESCR] in
1893 linuxthreads_db/td_symbol_list.c.
1894
2be2ce5f
AJ
18952001-09-22 Andreas Jaeger <aj@suse.de>
1896
1897 * linuxthreads/tst-context.c: Avoid compile warning.
1898
d8d373c5
AJ
18992001-09-20 Andreas Jaeger <aj@suse.de>
1900
1901 * shlib-versions: Add x86-64.
1902
c9cf6dde
AJ
19032001-09-19 Andreas Jaeger <aj@suse.de>
1904
1905 * sysdeps/x86_64/Makefile: New file.
1906 * sysdeps/x86_64/pspinlock.c: New file.
1907 * sysdeps/x86_64/pt-machine.h: New file.
1908
7aba050d
UD
19092001-09-12 Jakub Jelinek <jakub@redhat.com>
1910
1911 * sysdeps/pthread/timer_delete.c (timer_delete): Thread may be NULL
1912 for SIGEV_NONE.
1913 * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
1914
57642a78 19152001-09-11 Ulrich Drepper <drepper@redhat.com>
7aba050d 1916 Wolfram Gloger <wg@malloc.de>
57642a78
UD
1917
1918 * join.c: Protect all communications from and to manager with
1919 TEMP_FAILURE_RETRY.
1920 * manager.c: Likewise.
1921 * pthread.c: Likewise.
1922 * smeaphore.c: Likewise.
1923
746802f2
UD
19242001-08-29 Ulrich Drepper <drepper@redhat.com>
1925
1926 * spinlock.c (__pthread_lock): Top max_count value with
1927 MAX_ADAPTIVE_SPIN_COUNT.
1928 * internals.h (MAX_ADAPTIVE_SPIN_COUNT): Define if not already done.
1929
1930 * sysdeps/i386/i686/pt-machine.h (BUSY_WAIT_NOP): New macro to
1931 help P4.
1932
c06a49c5
UD
19332001-08-27 Jakub Jelinek <jakub@redhat.com>
1934
1935 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_t): Only define to
1936 non-opaque type if __USE_UNIX98.
1937
82ad8034
UD
19382001-08-26 Jakub Jelinek <jakub@redhat.com>
1939
1940 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_t): Define
1941 non-opaque lock types also if _IO_MTSAFE_IO is defined.
1942
edb63884
RM
19432001-08-23 Roland McGrath <roland@frob.com>
1944
1945 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start): Take
1946 new first argument, skip the cleanup handler if it's zero.
1947 (_LIBC_LOCK_RECURSIVE_INITIALIZER): New macro.
1948 (__libc_lock_define_initialized_recursive): Use it.
1949 * sysdeps/pthread/bits/stdio-lock.h: File removed.
1950 The sysdeps/generic file from the main tree now suffices.
1951
c12aa801
RM
19522001-08-22 Roland McGrath <roland@frob.com>
1953
1954 * sysdeps/pthread/bits/stdio-lock.h: Include <bits/libc-lock.h>
1955 instead of <pthread.h>.
1956 (_IO_lock_t): Define this typedef using __libc_lock_define_recursive.
1957 (_IO_lock_initializer): Add braces.
1958 (_IO_lock_lock): Use __libc_lock_lock_recursive.
1959 (_IO_lock_unlock): Use __libc_lock_unlock_recursive.
1960
1961 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_recursive_t): New type.
1962 (__libc_lock_define_initialized_recursive): Use it.
1963 (__libc_lock_init_recursive): Likewise.
1964 (__libc_lock_fini_recursive): Likewise.
1965 (__libc_lock_lock_recursive): Likewise.
1966 (__libc_lock_trylock_recursive): Likewise.
1967 (__libc_lock_unlock_recursive): Likewise.
1968 (__libc_lock_define_recursive): New macro.
1969
5db91571
UD
19702001-08-14 Jakub Jelinek <jakub@redhat.com>
1971
1972 * lockfile.c (__pthread_provide_lockfile): New variable.
1973 * pthread.c (__pthread_require_lockfile): New variable.
1974 * cancel.c (__pthread_require_lockfile): New variable.
1975
ad71126b
UD
19762001-07-31 Ulrich Drepper <drepper@redhat.com>
1977
e14b1447
UD
1978 * tst-context.c (threadfct): Initialize context before calling
1979 makecontext.
1980
ad71126b
UD
1981 * Examples/ex17.c: Make sure test thread is around long enough.
1982
045fcd26
UD
19832001-07-26 kaz Kojima <kkojima@rr.iij4u.or.jp>
1984
1985 * sysdeps/sh/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF): Defined.
1986
f369623d
UD
19872001-07-24 Ulrich Drepper <drepper@redhat.com>
1988
1989 * tst-context.c (main): Print explanation before bailing out
1990 because context handling is not supported.
1991
3afd9491
UD
19922001-07-23 Ulrich Drepper <drepper@redhat.com>
1993
06b5289f
UD
1994 * Makefile (tests): Add tst-context.
1995 * tst-context.c: New file.
1996
3afd9491
UD
1997 * sysdeps/pthread/bits/stdio-lock.h: Define
1998 _IO_cleanup_region_start_noarg.
1999
4b9afc43
UD
20002001-07-23 Jakub Jelinek <jakub@redhat.com>
2001
2002 * sysdeps/alpha/pt-machine.h (FLOATING_STACKS): Define.
2003 (ARCH_STACK_MAX_SIZE): Define.
2004 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
2005 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
2006
8d42e2e5
UD
20072001-07-19 Jakub Jelinek <jakub@redhat.com>
2008
2009 * sysdeps/i386/useldt.h: Fix typo in ARCH_STACK_MAX_SIZE comment.
2010
2011 * sysdeps/ia64/pt-machine.h (FLOATING_STACKS): Define.
2012 (ARCH_STACK_MAX_SIZE): Define.
2013 * manager.c (pthread_allocate_stack): Handle FLOATING_STACKS with
2014 NEED_SEPARATE_REGISTER_STACK.
2015
774a8fe8
UD
20162001-07-16 Andreas Schwab <schwab@suse.de>
2017
2018 * Makefile (before-compile): Don't add $(objpfx)crti.o.
2019 (omit-deps): Add crti.
2020 ($(objpfx)libpthread.so): Depend on $(objpfx)crti.o, but make sure
2021 it is filtered out of the link command.
2022
778e0ef7
UD
20232001-07-16 Ulrich Drepper <drepper@redhat.com>
2024
774a8fe8 2025 * pthread.c (pthread_initialize): For FLOATING_STACKS don't bother
778e0ef7
UD
2026 to find the right value for __pthread_initial_thread_bos, it's not
2027 used. If not FLOATING_STACKS first run
2028 __pthread_init_max_stacksize.
2029
2879ae4a
UD
20302001-06-16 H.J. Lu <hjl@gnu.org>
2031
2032 * internals.h: Include <stackinfo.h>.
2033
2034 * attr.c: Don't include <stackinfo.h> here.
2035 * cancel.c: Likewise.
2036 * manager.c: Likewise.
2037 * pthread.c: Likewise.
2038 * ptlongjmp.c: Likewise.
2039
8fee1bb0
UD
20402001-03-23 Matthew Wilcox <willy@ldl.fc.hp.com>
2041
2042 * attr.c: Make _STACK_GROWS_UP work.
2043 * internals.h: Likewise.
2044 * manager.c: Likewise.
2045 * pthread.c: Likewise.
2046
2e92fd3c
UD
20472001-06-15 H.J. Lu <hjl@gnu.org>
2048
2049 * pthread.c (__pthread_reset_main_thread): Fix a typo.
2050
bad6065c
UD
20512001-02-02 John S. Marvin <jsm@udlkern.fc.hp.com>
2052
2053 * semaphore.h: Use struct _pthread_fastlock as an element of
2054 sem_t instead of an identical struct.
2055 * rwlock.c: Remove casts.
2056 * semaphore.c: Likewise.
2057
e856b72d
AJ
20582001-04-30 Alan Modra <amodra@one.net.au>
2059
2060 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: New.
2061
b912ca11
UD
20622001-05-25 Bruce Mitchener <bruce@cubik.org>
2063
2064 * linuxthreads.texi: Spelling corrections.
2065
17ffa498
UD
20662001-05-25 Ulrich Drepper <drepper@redhat.com>
2067
2068 * oldsemaphore.c (__old_sem_wait): Clear p_nextwaiting before
2069 returning successfully.
2070 Patch by Gene Cooperman <gene@ccs.neu.edu>.
2071
47e5d2a8
UD
20722001-05-24 Ulrich Drepper <drepper@redhat.com>
2073
2074 * spinlock.c (__pthread_lock) [HAS_COMPARE_AND_SWAP]: Before doing any
2075 serious work try once whether the lock is uncontested.
2076 Remove duplicate reading of __status before loop.
2077 Change suggested by Hans Boehm <hans_boehm@hp.com>.
2078
2079 * spinlock.h (__pthread_trylock): Remove need for oldstatus variable.
2080 (__pthread_alt_trylock): Likewise.
2081
9c4a5197
UD
20822001-05-01 Kaz Kylheku <kaz@ashi.footprints.net>
2083
2084 Memory barrier overhaul following line by line inspection.
2085 * mutex.c (pthread_once): Missing memory barriers added.
2086 * pthread.c (__pthread_wait_for_restart_signal,
2087 __pthread_timedsuspend_new, __pthread_restart_new): Added
2088 memory barriers ``just in case'' and for documentary value.
2089 * spinlock.c (__pthread_release): New inline function for releasing
2090 spinlock, to complement __pthread_acquire. Includes memory
2091 barrier prior to assignment to spinlock, and __asm __volatile
2092 dance to prevent reordering or optimization of the spinlock access.
2093 * spinlock.c (__pthread_unlock, __pthread_alt_lock,
2094 __pthread_alt_timedlock, __pthread_alt_unlock,
2095 __pthread_compare_and_swap): Updated to use new __pthread_release
2096 instead of updating spinlock directly.
2097 * spinlock.c (__pthread_lock, __pthread_unlock, wait_node_alloc,
2098 wait_node_free, wait_node_dequeue, __pthread_alt_lock,
2099 __pthread_alt_timedlock, __pthread_alt_unlock, __pthread_acquire):
2100 Memory barrier overhaul. Lots of missing memory barriers added,
2101 a couple needless ones removed.
2102 * spinlock.c (__pthread_compare_and_swap): testandset optimization
2103 removed, just calls __pthread_acquire, which has the new read
2104 barrier in it before its testandset.
2105
f1d71039
RM
21062001-05-20 Roland McGrath <roland@frob.com>
2107
2108 * Makeconfig: New file, variables used to be in main libc Makeconfig.
2109
0e47171f
GK
21102001-05-09 Geoff Keating <geoffk@redhat.com>
2111
f1d71039 2112 * sysdeps/powerpc/pt-machine.h
0e47171f
GK
2113 (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): Define.
2114 (__compare_and_swap): Remove memory barriers.
2115 (__compare_and_swap_with_release_semantics): New function.
2116
dcea709a
AJ
21172001-04-24 Andreas Jaeger <aj@suse.de>
2118
2119 * wrapsyscall.c: send* and recv* return ssize_t.
2120
2121 * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Unlock the
2122 mutex instead of double locking it.
2123 Reported by Pierre Artaud <partaud@sodatec.com>.
2124
3b5c1b57
UD
21252001-04-23 Ulrich Drepper <drepper@redhat.com>
2126
44c51e9a
UD
2127 * sysdeps/pthread/getcpuclockid.c: Make function generic, test
2128 using #ifdef whether the clock is available.
2129 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: Removed.
2130
295125c5
UD
2131 * sysdeps/ia64/Versions: New file.
2132
7e946302
UD
2133 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init): We don't
2134 have to call __gmon_start__ in the libpthread DSO.
2135 * sysdeps/pthread/pt-initfini.c (_init): Likewise.
b5edfe61 2136
3b5c1b57
UD
2137 * Makefile (libpthread-routines): Add ptclock_gettime and
2138 ptclock_settime.
2139 * internals.h: Don't use cpuclock-init.h definitions, use
2140 hp-timing.h definitions.
2141 * pthread.c: Likewise.
2142 * manager.c: Likewise.
2143 * ptclock_gettime.c: New file.
2144 * ptclock_settime.c: New file.
18ac1129
UD
2145 * internals.h: Fix parameter type for __pthread_clock_gettime and
2146 __pthread_clock_settime.
3b5c1b57
UD
2147
2148 * sysdeps/i386/i586/ptclock_gettime.c: Removed.
2149 * sysdeps/i386/i586/ptclock_settime.c: Removed.
2150 * sysdeps/i386/i586/Makefile: Removed.
2151
a3bbce5b
UD
21522001-04-22 Ulrich Drepper <drepper@redhat.com>
2153
2154 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_ASYNCH_IO.
2155 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2156
e6dcf352
AJ
21572001-04-21 Andreas Jaeger <aj@suse.de>
2158
f9e1d149
AJ
2159 * sysdeps/pthread/timer_routines.c (thread_func): Add noreturn
2160 attribute, remove statements that will never be executed.
d8a60a15 2161 (thread_func): Remove mutex_unlock call since it's never executed.
d6f86085 2162 (thread_func): Fix comment as suggested by Jakub Jelinek.
f9e1d149 2163
159a2e1a
AJ
2164 * manager.c (__pthread_manager): Add noreturn
2165 attribute.
2166 (pthread_start_thread): Likewise, remove return statement.
2167 (pthread_start_thread_event): Likewise.
2168 Add noreturn attribute for pthread_handle_exit.
2169 * weaks.c: Add noreturn attribute for pthread_exit.
2170
e6dcf352
AJ
2171 * internals.h: Add __pthread_clock_gettime and
2172 __pthread_clock_settime prototypes.
2173
5fc48cd7
UD
21742001-04-21 Ulrich Drepper <drepper@redhat.com>
2175
2176 * internals.h: Include <cpuclock-init.h>.
2177 (struct _pthread_descr_struct): Add p_cpuclock_offset field if
2178 CPUCLOCK_VARDEF is defined.
2179 * pthread.c (__pthread_initialize_minimal): Initialize
2180 p_cpuclock_offset field for main thread if CPUCLOCK_INIT is defined.
2181 * manager.c (pthread_start_thread): Set p_cpuclock_offset field
2182 for new thread to current CPU clock value.
2183
2184 * sysdeps/i386/useldt.h: Extend all the macros to handle 8-byte values.
2185
2186 * sysdeps/i386/i586/Makefile: New file.
2187 * sysdeps/i386/i586/Versions: New file.
2188 * sysdeps/i386/i586/ptclock_gettime.c: New file.
2189 * sysdeps/i386/i586/ptclock_settime.c: New file.
2190 * sysdeps/i386/i686/Implies: New file.
2191
9bab9806
UD
21922001-04-18 Jakub Jelinek <jakub@redhat.com>
2193
2194 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Put specs into
2195 $generated, not $postclean-generated.
2196
80ff3e34
AJ
21972001-04-18 Andreas Jaeger <aj@suse.de>
2198
2199 * Makefile (otherlibs): Added.
2200
ddad941e
UD
22012001-04-18 Jakub Jelinek <jakub@redhat.com>
2202
2203 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
2204
9b7ee67e
UD
22052001-04-16 Ulrich Drepper <drepper@redhat.com>
2206
2207 * signals.c (sigwait): NSIG is no signal number. Block all
2208 signals while in signal handler for signals in SET.
2209 Patch by Manfred Spraul <manfred@colorfullife.com>.
2210
b721a2c0
UD
22112001-04-12 Ulrich Drepper <drepper@redhat.com>
2212
a08877d0
UD
2213 * tst-cancel.c: Disable most tests. Add new test where all
2214 cleanup handlers must run.
2215 * Makefile (tests): Add tst-cancel again.
2216
2217 * cancel.c (__pthread_perform_cleanup): Correct condition for
2218 leaving cleanup loop early.
2219
b775be64
UD
2220 * sysdeps/i386/Makefile: Make sure gcc uses a frame pointer for
2221 all the files which use CURRENT_STACK_FRAME.
b721a2c0
UD
2222 * sysdeps/i386/pt-machine.h (CURRENT_STACK_FRAME): Define using
2223 __builtin_frame_address.
2224 * sysdeps/i386/i686/pt-machine.h: Likewise.
2225
7d4c3e67
UD
22262001-04-11 Ulrich Drepper <drepper@redhat.com>
2227
9dd7309c
UD
2228 * Makefile (tests): Comment out tst-cancel for now.
2229
7d4c3e67
UD
2230 * tst-cancel.c (main): Cleanup 4 is supposed to run. Create
2231 temporary file in object directory.
2232 * Makefile: Don't allow inlining when compiling tst-cancel.c.
2233 Pass $(objpfx) to tst-cancel.
2234
43df859b
UD
22352001-04-11 David S. Miller <davem@redhat.com>
2236
2237 * sysdeps/sparc/sparc32/pt-machine.h (stack_pointer): Advance
2238 up closer to user local variables so that new cleanup heuristics work.
2239 * sysdeps/sparc/sparc64/pt-machine.h (stack_pointer): Likewise.
2240
95fe9d95
UD
22412001-04-11 Ulrich Drepper <drepper@redhat.com>
2242
2243 * cancel.c (_pthread_cleanup_push): Catch invalid __prev buffer
2244 and remove it.
2245 (_pthread_cleanup_push_defer): Likewise.
2246
2247 * tst-cancel.c (main): Fix loop printing cleanup output.
2248
07bccb46
UD
22492001-04-10 kaz Kojima <kkojima@rr.iij4u.or.jp>
2250
2251 * sysdeps/sh/pspinlock.c (__pthread_spin_lock): Fix a reverse
2252 test.
2253 (__pthread_spin_trylock): Likewise.
2254 * sysdeps/sh/pt-machine.h (testandset): Likewise.
2255
58f46c79
UD
22562001-04-10 Ulrich Drepper <drepper@redhat.com>
2257
2258 * join.c (pthread_exit): Move code to new function __pthread_do_exit
2259 which takes an extra parameter with the current frame pointer.
2260 Call new function with CURRENT_STACK_FRAME.
2261 (__pthread_do_exit): New function. Call __pthread_perform_cleanup
2262 with the new parameter.
2263 (pthread_join): Call __pthread_do_exit instead of pthread_exit.
2264 * cancel.c (__pthread_perform_cleanup): Takes extra parameter. Use
2265 this parameter as the initial value the cleanup handler records are
2266 compared against. No active cleanup handler record must have an
2267 address lower than the previous one and the initial record must be
2268 above (below on PA) the frame address passed in.
2269 (pthread_setcancelstate): Call __pthread_do_exit instead of
2270 pthread_exit.
2271 (pthread_setcanceltype): Likewise.
2272 (pthread_testcancel): Likewise.
2273 (_pthread_cleanup_pop_restore): Likewise.
2274 * condvar.c (pthread_cond_wait): Likewise.
2275 (pthread_cond_timedwait_relative): Likewise.
2276 * manager.c (pthread_start_thread): Likewise.
2277 * oldsemaphore.c (__old_sem_wait): Likewise.
2278 * pthread.c (pthread_handle_sigcancel): Likewise.
2279 * semaphore.c (__new_sem_wait): Likewise.
2280 (sem_timedwait): Likewise.
2281 * ptlongjmp.c (pthread_cleanup_upto): Also use current stack frame
2282 to limit the cleanup handlers which get run.
2283 * internals.h: Add prototype for __pthread_do_exit. Adjust prototype
2284 for __pthread_perform_cleanup.
2285
2286 * Makefile (tests): Add tst-cancel.
2287 * tst-cancel.c: New file.
2288
eacde9d0
UD
22892001-04-08 Hans-Peter Nilsson <hp@axis.com>
2290
2291 * sysdeps/cris/pt-machine.h: New file.
2292 * sysdeps/cris/pspinlock.c: New file.
2293
22942001-04-09 Hans-Peter Nilsson <hp@axis.com>
2295
2296 * shlib-versions: Add case for Linux on CRIS.
2297
93a4b7ca
UD
22982001-03-26 Ulrich Drepper <drepper@redhat.com>
2299
2300 * attr.c (pthread_getattr_np): Correct computation of stack size
2301 for machiens with register stack.
2302
2303 * Examples/ex17.c (main): Correct detection of failed mmap call.
2304
844b79a6
UD
23052001-03-21 Jakub Jelinek <jakub@redhat.com>
2306
2307 * pthread.c (__pthread_initialize_manager): Fix a typo.
2308
cf4431ed
UD
23092001-03-21 Jakub Jelinek <jakub@redhat.com>
2310
2311 * attr.c (__pthread_attr_setstack): Fix alignment check.
2312 (pthread_getattr_np): __stackaddr is top of stack, not bottom.
2313 * Makefile (tests): Add ex17 test.
2314 * Examples/ex17.c: New test.
2315
373e6a51
UD
23162001-03-20 Ulrich Drepper <drepper@redhat.com>
2317
481b550f 2318 * Makefile: Define -D_RPC_THREAD_SAFE_ for cancel.c.
373e6a51 2319 * cancel.c (__pthread_perform_cleanup): Call __rpc_thread_destroy.
f1e4a4a4 2320 * sysdeps/pthread/bits/libc-tsd.h: Define _LIBC_TSD_KEY_VARS.
373e6a51 2321
639c3248
UD
23222001-03-18 Ulrich Drepper <drepper@redhat.com>
2323
2324 * Makefile: When generating DSO link with libc_nonshared.a.
2325
7c91639e
UD
23262001-02-26 Jakub Jelinek <jakub@redhat.com>
2327
2328 * signals.c (pthread_sighandler): Use CALL_SIGHANDLER.
2329
a66f0958
UD
23302001-02-23 Jakub Jelinek <jakub@redhat.com>
2331
2332 * internals.h (__pthread_init_max_stacksize): New prototype.
2333 * attr.c (__pthread_attr_setstacksize): Call
2334 __pthread_init_max_stacksize if not yet initialized.
2335 * pthread.c (__pthread_init_max_stacksize): New function.
2336 (__pthread_initialize_manager): Call it.
2337 Patch by <dtc@cmucl.cons.org>.
2338
aeba9785
UD
23392001-03-16 Ulrich Drepper <drepper@redhat.com>
2340
2341 * attr.c (pthread_getattr_np): Fix __stacksize computation for IA-64.
2342
136d4332
UD
23432001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
2344
2345 * shlib-versions: Add rule for Linux on 64 bit S/390.
2346 * sysdeps/s390/s390-64/pt-machine.h: New file.
2347 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
2348
23492001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
2350
2351 * sysdeps/s390/pt-machine.h: Move to...
2352 * sysdeps/s390/s390-32/pt-machine.h: ...here.
2353 Add defines for FLOATING_STACK and ARCH_STACK_MAX_SIZE.
2354
3bf927cb
UD
23552001-03-15 Ulrich Drepper <drepper@redhat.com>
2356
2357 * Versions [libpthread] (GLIBC_2.2.3): Add pthread_getattr_np.
2358 * attr.c: Implement pthread_getattr_np.
2359 * sysdeps/pthread/pthread.h: Add prototype for pthread_getattr_np.
2360 * internals.h (struct _pthread_descr_struct): Add p_inheritsched.
2361 * manager.c (pthread_handle_create): Initialize p_inheritsched.
2362
832c025e
AJ
23632001-03-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
2364
3bf927cb 2365 * sysdeps/unix/sysv/linux/s390/pt-initfini.c: Use 0x07 padding for
832c025e
AJ
2366 code alignment.
2367
08b3d7ad
UD
23682001-02-20 Hans Boehm <hans_boehm@hp.com>
2369
2370 * manager.c (manager_mask): Removed static vesion. Now always local
2371 to __pthread_manager().
2372 (manager_mask_all): Removed completely.
2373 (__pthread_manager): Remove manager_mask_all initialization.
2374 (pthread_handle_create): Remove code to set and reset signal mask
2375 around __clone2() calls.
2376
4c48dc93
UD
23772001-02-17 Jakub Jelinek <jakub@redhat.com>
2378
2379 * spinlock.c (__pthread_lock): Force lock->__status to be read from
2380 memory on every spin.
2381
596b2f0e
AJ
23822001-02-10 Andreas Jaeger <aj@suse.de>
2383
2384 * Makefile (extra-objs): New.
2385
257bdad0
UD
23862001-02-09 Jakub Jelinek <jakub@redhat.com>
2387
2388 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Add
2389 __pthread_initialize_minimal prototype.
2390
441f7d1e
UD
23912001-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
2392
2393 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
2394
d7fce7e0
UD
23952001-02-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
2396
2397 * sysdeps/unix/sysv/linux/s390/pt-initfini.c: New file.
2398
672fd41b
UD
23992001-02-06 Ulrich Drepper <drepper@redhat.com>
2400
2401 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: First attempt to fix the
2402 broken code. Patch by Jes Sorensen.
2403
eb8ea10a
AJ
24042001-02-06 Andreas Jaeger <aj@suse.de>
2405
2406 * sysdeps/pthread/pthread.h: Move __pthread_initialize from here
2407 to...
2408 * internals.h: ...here.
2409
5a35dfca
UD
24102001-02-05 Jes Sorensen <jes@linuxcare.com>
2411
2412 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
2413
e4c785c8
UD
24142001-02-02 Ulrich Drepper <drepper@redhat.com>
2415
2416 * Versions: Remove __pthread_initialize_minimal.
2417
b71e7ce8
UD
24182001-02-01 Ulrich Drepper <drepper@redhat.com>
2419
2420 * Makefile: Add rules to build crti.o and make it being used in
2421 building libpthread.so.
2422 * sysdeps/i386/Makefile: New file.
2423 * sysdeps/pthread/pt-initfini.c: New file.
2424
2425 * pthread.c: Cleanups.
2426
7dcc4ea0
AJ
24272001-01-28 Andreas Jaeger <aj@suse.de>
2428
2429 * oldsemaphore.c (__old_sem_init): Adjust for last change.
2430 * sysdeps/pthread/bits/libc-lock.h: Likewise.
2431 * spinlock.c: Likewise.
2432
48ba4bd2
UD
24332001-01-28 Ulrich Drepper <drepper@redhat.com>
2434
2435 * sysdeps/pthread/bits/initspin.h: Make all names namespace clean.
2436 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
2437 * manager.c: Adjust for namespace cleanup in bits/initspin.h.
2438 * pthread.c: Likewise.
2439 * spinlock.h: Likewise.
2440 * sysdeps/pthread/pthread.h: Likewise.
2441
edf9cc89
UD
24422001-01-26 Ulrich Drepper <drepper@redhat.com>
2443
61f9d0a3
UD
2444 * sysdeps/pthread/bits/pthreadtypes.h: Define pthread_attr_t also
2445 as struct __pthread_attr_s.
2446
edf9cc89
UD
2447 * semaphore.h (sem_t): Cleanup namespace, rename status and
2448 spinlock elements.
2449
3f738366
UD
24502001-01-13 Jakub Jelinek <jakub@redhat.com>
2451
2452 * pthread.c (pthread_onexit_process): Clear
2453 __pthread_manager_thread_bos after freeing it.
2454 * Makefile (tests): Add ex16.
2455 * Examples/ex16.c: New file.
2456
5ef50d00
UD
24572001-01-11 Jakub Jelinek <jakub@redhat.com>
2458
2459 * Makefile (CFLAGS-pthread.c): Pass -DHAVE_Z_NODELETE if ld supports
2460 -z nodelete.
2461 * pthread.c (pthread_exit_process): Rename to...
2462 (pthread_onexit_process): ...this.
2463 (pthread_atexit_process, pthread_atexit_retcode): New.
2464 (pthread_initialize): Call __cxa_atexit instead of __cxa_on_exit
2465 and only if HAVE_Z_NODELETE is not defined.
2466 (__pthread_initialize_manager): Register pthread_atexit_retcode
2467 with __cxa_atexit.
2468
7e36861e
UD
24692001-01-11 Ulrich Drepper <drepper@redhat.com>
2470
2471 * pthread.c (pthread_initialize): Use __cxs_on_exit not __cxa_atexit.
2472
24732001-01-11 Jakub Jelinek <jakub@redhat.com>
2474
2475 * Makefile (tests): Add ex15.
2476 * Examples/ex15.c: New test.
2477
1950ebc6
UD
24782001-01-08 Ulrich Drepper <drepper@redhat.com>
2479
2480 * pthread.c (pthread_exit_process): Free memory allocated for
2481 manager stack.
2482
af8240eb 24832000-12-31 Ulrich Drepper <drepper@redhat.com>
1c566118 2484
af8240eb
UD
2485 * manager.c (pthread_alloca_stack): Remove MAP_FIXED from mmap calls.
2486 (pthread_free): Always unmap the stack. It's safe now that we don't
2487 use MAP_FIXED to allocate stacks.
1c566118 2488
41b64fc4
UD
24892000-12-31 Ulrich Drepper <drepper@redhat.com>
2490
2491 * sysdeps/powerpc/pspinlock.c: Don't include pt-machine.h here.
2492
2493 * manager.c (pthread_allocate_stack): Prepare for removal of MAP_FIXED.
2494
09f5e163
UD
24952000-11-15 Wolfram Gloger <wg@malloc.de>
2496
2497 * manager.c (pthread_free): [!FLOATING_STACKS]: Only remap the
2498 stack to PROT_NONE, don't unmap it, avoiding collisions with malloc.
2499
27ee0a55
AJ
25002000-12-27 Andreas Jaeger <aj@suse.de>
2501
2502 * Examples/ex13.c: Make local functions static.
2503 * ecmutex.c: Likewise.
784d802e 2504 * joinrace.c: Likewise.
27ee0a55
AJ
2505 * Examples/ex14.c: Likewise.
2506
2507 * Examples/ex2.c: Make local functions static; reformat.
2508 * Examples/ex1.c: Likewise.
2509 * Examples/ex4.c: Likewise.
2510 * Examples/ex5.c: Likewise.
2511 * Examples/ex7.c: Likewise.
2512
2513 * oldsemaphore.c: Add prototypes to shut up GCC.
2514 * pt-machine.c: Likewise.
2515
2516 * weaks.c: Add prototype for pthread_exit.
2517
2518 * internals.h: Add some prototypes, format prototypes and add
2519 missing externs.
2520 Move __libc_waitpid prototype to include/sys/wait.h.
2521
2522 * rwlock.c: Include <bits/libc-lock.h> for prototypes.
2523 * mutex.c: Likewise.
2524 * specific.c: Likewise.
2525 * ptfork.c: Likewise.
2526
2527 * lockfile.c: Include internals.h to get prototypes.
2528 * events.c: Likewise.
2529 * sysdeps/alpha/pspinlock.c: Likewise.
2530 * sysdeps/arm/pspinlock.c: Likewise.
2531 * sysdeps/hppa/pspinlock.c: Likewise.
2532 * sysdeps/i386/pspinlock.c: Likewise.
2533 * sysdeps/ia64/pspinlock.c: Likewise.
2534 * sysdeps/m68k/pspinlock.c: Likewise.
2535 * sysdeps/mips/pspinlock.c: Likewise.
2536 * sysdeps/powerpc/pspinlock.c: Likewise.
2537 * sysdeps/s390/pspinlock.c: Likewise.
2538 * sysdeps/sh/pspinlock.c: Likewise.
2539 * sysdeps/sparc/sparc32/pspinlock.c: Likewise.
2540 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
2541 * sysdeps/sparc/sparc64/pspinlock.c: Likewise.
2542
33c80ad7
UD
25432000-12-27 Ulrich Drepper <drepper@redhat.com>
2544
21112857
UD
2545 * attr.c (__pthread_attr_setstack): Fix setting of __stackaddr element.
2546 (__pthread_attr_getstack): Return correct address.
2547 Add warnings for using pthread_attr_getstackaddr and
33c80ad7
UD
2548 pthread_attr_setstackaddr.
2549
a6d950b9
UD
25502000-12-26 Ulrich Drepper <drepper@redhat.com>
2551
2552 * Examples/ex6.c (test_thread): Make static.
2553 * Examples/ex12.c (test_thread): Make static and add noreturn
2554 attribute.
2555
ba908190
UD
25562000-12-18 Jes Sorensen <jes@linuxcare.com>
2557
2558 * linuxthreads/sysdeps/ia64/pt-machine.h: __compare_and_swap
2559 and compare_and_swap_with_release_semantics returns int not long.
2560
8cb019ed
AJ
25612000-12-17 Andreas Jaeger <aj@suse.de>
2562
2563 * sysdeps/s390/pt-machine.h (testandset): Use long int as return
2564 value.
2565 * sysdeps/arm/pt-machine.h (testandset): Likewise.
2566 * sysdeps/hppa/pt-machine.h (testandset): Likewise.
2567 * sysdeps/m68k/pt-machine.h (testandset): Likewise.
2568 * sysdeps/sh/pt-machine.h (testandset): Likewise.
2569 * sysdeps/sparc/sparc32/pt-machine.h (testandset): Likewise.
2570 * sysdeps/sparc/sparc64/pt-machine.h (testandset): Likewise.
2571
927a8431
UD
25722000-12-17 Ulrich Drepper <drepper@redhat.com>
2573
2574 * sysdeps/i386/pt-machine.h (testandset): Adjust for prototype change.
2575 * sysdeps/i386/i686/pt-machine.h (testandset): Likewise.
2576
b6e20712
AJ
25772000-12-17 Andreas Jaeger <aj@suse.de>
2578
2579 * internals.h: Add prototypes for testandset and
2580 __compare_and_swap to shut up gcc warnings.
2581
e3690263
UD
25822000-12-06 Wolfram Gloger <wg@malloc.de>
2583
2584 * join.c (pthread_detach): Allow case where the thread has already
2585 terminated.
2586
2e3b9976
AJ
25872000-12-05 Andreas Jaeger <aj@suse.de>
2588
2589 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Don't set mips2.
2590 * sysdeps/mips/pt-machine.h (testandset): Likewise.
2591 (__compare_and_swap): Likewise.
f172bca0 2592 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
2e3b9976 2593
59553897
UD
25942000-11-20 Jakub Jelinek <jakub@redhat.com>
2595
2596 * Examples/ex3.c (main): Cast int to long before casting to void *.
2597 (search): Cast void * to long, not int.
2598 * Examples/ex8.c (main, thread): Similarly.
2599 * Examples/ex11.c (main): Similarly.
2600 * Examples/ex14.c (worker, do_test): Similarly.
2601 * ecmutex.c (worker, do_test): Similarly.
2602 (nlocks): Cast to int.
2603
d3d99893
UD
26042000-11-08 Bruce Mitchener <bruce@cubik.org>
2605
2606 * linuxthreads.texi: Add documentation for pthreads attributes
2607 guardsize, stackaddr, stacksize, and stack. Fix typo in previous
2608 patch. Document pthread_[sg]etconcurrency(). Mark
2609 pthread_mutexattr_[sg]ettype() as POSIX rather than GNU.
2610
a1e88b9a
UD
26112000-11-07 Ulrich Drepper <drepper@redhat.com>
2612
2613 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
2614 Don't define it.
2615 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2616 Reported by Christopher Yeoh <cyeoh@linuxcare.com.au>.
2617
632b6761
UD
26182000-11-06 Ulrich Drepper <drepper@redhat.com>
2619
2620 * cancel.c (pthread_cancel): Always set p_canceled, even if we are
2621 not doing it right now.
2622 Reported by Kaz Kylheku <kaz@ashi.footprints.net>.
2623
02fb3d17
UD
26242000-10-30 Ulrich Drepper <drepper@redhat.com>
2625
2626 * Examples/ex4.c (main): Don't use exit() to avoid warning with
2627 broken compilers.
2628
c6042c73
UD
26292000-10-29 Ulrich Drepper <drepper@redhat.com>
2630
31879cd8 2631 * attr.c (__pthread_attr_setguardsize): Don't round guardsize
d3d99893 2632 here. Reported by Bruce Mitchener <bruce@cubik.org>.
31879cd8 2633
c6042c73
UD
2634 * linuxthreads.texi: Changes terminology to 'type' from 'kind' when
2635 discussing mutexes. (As per the Unix98 name for the API.)
2636 Changes documentation for pthread_mutexattr_setkind_np() and
2637 pthread_mutexattr_getkind_np() over to the Unix98 APIs for the
2638 same: pthread_mutexattr_settype() and pthread_mutexattr_gettype().
2639 Changes references to PTHREAD_MUTEXATTR_FAST_NP to
2640 PTHREAD_MUTEXATTR_ADAPTIVE_NP.
2641 Begins to introduce discussion of the ``timed'' mutex type. This
2642 discussion is currently incomplete.
d3d99893 2643 Patch by Bruce Mitchener <bruce@cubik.org>.
c6042c73 2644
1267f93e
UD
26452000-10-26 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
2646 Yutaka Niibe <gniibe@chroot.org>
2647
2648 * sysdeps/sh/pt-machine.h (testandset): Since the operand of TAS.B
2649 has restrictions, use register.
2650
fd665070
UD
26512000-10-23 Andreas Schwab <schwab@suse.de>
2652
2653 * Examples/ex14.c (TIMEOUT): Override default timeout.
2654
6a14016e
UD
26552000-10-16 Ulrich Drepper <drepper@redhat.com>
2656
2657 * specific.c: Protect tsd array modification in thread data
2658 structures by getting the thread lock in pthread_key_delete and
2659 __pthread_destroy_specifics.
2660 Patch by Wolfram Gloger <Wolfram.Gloger@dent.med.uni-muenchen.de>.
2661
b15cb495
UD
26622000-10-12 Alan Modra <alan@linuxcare.com.au>
2663
2664 * sysdeps/pthread/bits/initspin.h: New file.
2665 * spinlock.h: Move LOCK_INITIALIZER definition to <bits/initspin.h>.
2666 (__pthread_init_lock): Initialize lock with LT_SPINLOCK_INIT.
2667 (__pthread_alt_init_lock): Likewise.
2668 (__pthread_alt_trylock): Release lock with LT_SPINLOCK_INIT.
2669
26702000-10-12 David Huggins-Daines <dhd@linuxcare.com>
2671
2672 * oldsemaphore.c (__old_sem_init): Release lock with
2673 LT_SPINLOCK_INIT, not zero.
2674 * spinlock.c (__pthread_unlock): Likewise.
2675 (__pthread_alt_lock): Likewise.
2676 (__pthread_alt_timedlock): Likewise.
2677 (__pthread_alt_unlock): Likewise.
2678 * sysdeps/pthread/bits/libc-lock.h: Initialize locks with
2679 LT_SPINLOCK_INIT if it is non-zero. Likewise for init-once flags.
2680 * sysdeps/pthread/pthread.h: Include bits/initspin.h. Use
2681 LT_SPINLOCK_INIT do initialize spinlocks not 0.
2682
26832000-10-12 David Huggins-Daines <dhd@linuxcare.com>
2684
2685 * shlib-versions: Add version definitions for hppa-linux.
2686
26872000-10-12 Alan Modra <alan@linuxcare.com.au>
2688
2689 * sysdeps/hppa/pspinlock.c: New file.
2690 * sysdeps/hppa/pt-machine.h: New file.
2691 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: New file.
2692
172b90bb
UD
26932000-10-05 Jakub Jelinek <jakub@redhat.com>
2694
2695 * mutex.c (__pthread_mutex_destroy): Correct test of
2696 busy mutex for mutexes using alternate fastlocks.
2697 Patch by dtc@cmucl.cons.org.
2698
a0386a0d
UD
26992000-09-28 Martin Schwidefsksy <schwidefsky@de.ibm.com>
2700
2701 * sysdeps/s390/pt-machine.h: Make %a0 the thread register.
2702
8cab1d38
UD
27032000-09-28 Ulrich Drepper <drepper@redhat.com>
2704
c0ac34e4
UD
2705 * mutex.c (__pthread_mutex_unlock): For PTHREAD_MUTEX_RECURSIVE_NP
2706 test for owner first.
2707 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2708
8cab1d38
UD
2709 * cancel.c (pthread_cancel): Don't do anything if cancelation is
2710 disabled.
2711
7c3dac53
UD
27122000-09-26 Ulrich Drepper <drepper@redhat.com>
2713
75dbc100
UD
2714 * spinlock.h (__pthread_set_own_extricate_if): Optimize a bit.
2715 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2716
b0557314
UD
2717 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
2718 _POSIX_MONOTONIC_CLOCK.
2719
7c3dac53
UD
2720 * spinlock.h (__pthread_set_own_extricate_if): Add back locking
2721 and explain why.
2722
b025588a
AJ
27232000-09-20 Andreas Jaeger <aj@suse.de>
2724
2725 * pthread.c [!__ASSUME_REALTIME_SIGNALS]: Make inclusion of
2726 "testrtsig.h" conditional.
2727
b81c8961
UD
27282000-09-11 Ulrich Drepper <drepper@redhat.com>
2729
2730 * sysdeps/pthread/pthread.h: Declare pthread_attr_getstack and
2731 pthread_attr_setstack.
2732 * Versions [libpthread] (GLIBC_2.2): Export pthread_attr_getstack and
2733 pthread_attr_setstack.
2734 * attr.c (pthread_attr_getstack, pthread_attr_setstack): New functions.
2735
42437ed1
UD
27362000-09-05 Ulrich Drepper <drepper@redhat.com>
2737
f3d581b8
UD
2738 * Examples/ex14.c: New file.
2739 * Makefile (tests): Add ex14.
2740
42437ed1
UD
2741 * mutex.c (__pthread_mutex_unlock): Correct test for already unlocked
2742 mutex. Patch by dtc@cmucl.cons.org.
2743
2744 * ecmutex.c: New file.
f3d581b8 2745 * Makefile (tests): Add ecmutex.
42437ed1 2746
c743652a
UD
27472000-09-04 H.J. Lu <hjl@gnu.org>
2748
2749 * attr.c (__pthread_attr_setguardsize): Use page_roundup
2750 instead of roundup to round up to the page size.
2751
2e4581e4
UD
27522000-09-03 Mark Kettenis <kettenis@gnu.org>
2753
2754 * manager.c (pthread_exited): Correctly report event as TD_REAP
2755 instead of TD_DEATH. Fix comments.
2756
5afe6c02
UD
27572000-09-03 Ulrich Drepper <drepper@redhat.com>
2758
2759 * spinlock.h (testandset): Add cast to avoid warning.
2760 Patch by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
2761
5376629d
AJ
27622000-09-02 Andreas Jaeger <aj@suse.de>
2763
2764 * sysdeps/pthread/timer_routines.c: Include stdlib.h for abort
2765 prototype.
2766
a8e58aa9
UD
27672000-09-01 Ulrich Drepper <drepper@redhat.com>
2768
aebb1faa
UD
2769 * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start):
2770 Fix typo in last patch (_mode -> _flags).
2771
a8e58aa9
UD
2772 * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start):
2773 Provide definition which respects _IO_USER_LOCK flag.
2774
47cae281
UD
27752000-08-30 Ulrich Drepper <drepper@redhat.com>
2776
2777 * manager.c (pthread_allocate_stack): Clear descriptor only if not
2778 mmaped.
2779
b7fb789d
UD
27802000-08-25 Ulrich Drepper <drepper@redhat.com>
2781
ad7534c8
UD
2782 * Makefile: Add rules to build and run unload.
2783 * unload.c: New file.
2784
2785 * pthread.c (pthread_exit_process): Move thread_self use inside `if'.
7045878b 2786
b7fb789d
UD
2787 * sysdeps/pthread/pthread.h
2788 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Defined.
2789 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: Defined.
2790
7e98470d
AJ
27912000-08-24 Andreas Jaeger <aj@suse.de>
2792
c5ded983
AJ
2793 * Examples/ex13.c: Include <string.h> for strerror prototype and
2794 <stdlib.h> for abort prototype.
7e98470d
AJ
2795 (pthr_cond_signal_mutex): Rewrite to silence GCC.
2796 (thread_start): Remove unused variable err.
2797 (main): Silence GCC warnings.
2798
64f6b8f3
AJ
27992000-08-22 Andreas Jaeger <aj@suse.de>
2800
2801 * Examples/ex13.c: New test by Kurt Garloff <garloff@suse.de>.
2802
2803 * Makefile (tests): Add ex13.
2804
98cbe360
UD
28052000-08-20 Ulrich Drepper <drepper@redhat.com>
2806
2807 * semaphore.h: Add restrict where required by AGd4.
2808 * sysdeps/pthread/pthread.h: Likewise.
2809 * sysdeps/pthread/unix/sysv/linux/bits/sigthread.h: Likewise.
2810
9df76933
UD
28112000-08-15 Ulrich Drepper <drepper@redhat.com>
2812
2813 * Makefile (tests): Add ex12. Add rule to build it.
2814 * Examples/ex12.c: New file.
2815
91bc38d0
UD
28162000-08-13 Ulrich Drepper <drepper@redhat.com>
2817
2818 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_SEMAPHORES
2819 even though the implementation is not quite complete (but it reports
2820 it). Define _POSIX_MESSAGE_PASSING to -1.
2821 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2822
facd11c2
AJ
28232000-08-12 Andreas Jaeger <aj@suse.de>
2824
2825 * sysdeps/mips/pt-machine.h (testandset): Add .set mips2 for
2826 assembler.
2827 (__compare_and_swap): Likewise.
2828 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Likewise.
2829
3459f702
UD
28302000-08-10 Ulrich Drepper <drepper@redhat.com>
2831
2832 * pthread.c (__pthread_initial_thread): Initialize p_errnop and
2833 p_h_errnop correctly and not to NULL.
2834
c9326ed5
UD
28352000-08-05 Ulrich Drepper <drepper@redhat.com>
2836
2837 * Banner: Bump version number to 0.9.
2838
0a8d9231
UD
28392000-08-04 Ulrich Drepper <drepper@redhat.com>
2840
fcd31f5a
UD
2841 * Makefile (tests): Add tststack. Add rule to build the program.
2842 * tststack.c: New file.
2843
234dd7a6
UD
2844 * internals.h: Declare __pthread_max_stacksize.
2845 * pthread.c (__pthread_max_stacksize): New variable.
2846 (__pthread_initialize_manager): Determine __pthread_initialize_manager
2847 value.
2848 * manager.c (thread_segment): Return always NULL if FLOATING_STACKS.
2849 (pthread_allocate_stack): Allow kernel to choose stack address if
2850 FLOATING_STACKS. This also handles variable-sized stacks.
c9326ed5 2851 Always allocate stack and guardpage together. Use mprotect to
234dd7a6
UD
2852 change guardpage access.
2853 * sysdeps/i386/useldt.h: Define FLOATING_STACKS and
2854 ARCH_STACK_MAX_SIZE.
2855
2856 * attr.c (__pthread_attr_setstacksize): Also test value against
2857 upper limit.
2858
0a8d9231
UD
2859 * manager.c (__pthread_nonstandard_stacks): Define only if
2860 THREAD_SELF is not defined.
2861 (pthread_allocate_stack): Always initialize gardaddr to a correct
2862 value.
2863 (pthread_handle_create): Unmap thread with one call.
2864 (pthread_free): Remove test for initial thread before removing stack.
2865 Unmap stack with one call.
2866
2867 * pthread.c (__pthread_initial_thread): Initialize p_userstack to
2868 1 to avoid removing the stack.
2869
0d019734
UD
28702000-07-27 Jes Sorensen <jes@linuxcare.com>
2871
d364e525 2872 * sysdeps/ia64/pspinlock.c (__pthread_spin_lock): Add
0d019734
UD
2873 load of spin lock to prime the cache before the atomic compare and
2874 exchange operation (cmpxchg4). This avoids the spinning on the
2875 cmpxchg4 instruction and reduces movement of the cache line back
2876 and forth between the processors (explanation by Asis K. Mallick
2877 from Intel). This basically makes the implementation operate the
2878 same as the Linux kernel implementation.
2879
d364e525
UD
2880 * shlib-versions: Use GLIBC_2_2 for Linux/ia64.
2881 * sysdeps/ia64/pspinlock.c: New file.
0d019734 2882
139a4d95
UD
28832000-08-03 Ulrich Drepper <drepper@redhat.com>
2884
2885 * pthread.c: Move definition of __pthread_set_own_extricate_if...
2886 * spinlock.h: ...here. Remove locking.
2887 * internals.h: Remove __pthread_set_own_extricate_if prototype.
2888
2889 * rwlock.c: Use THREAD_GETMEM And THREAD_SETMEM.
2890 (rwlock_rd_extricate_func): Don't determine self, let
2891 __pthread_lock do it.
2892 (rwlock_wr_extricate_func): Likewise.
2893 (rwlock_have_already): Optimize *pself handling a bit.
2894
2895 * mutex.c: Use __builtin_expect.
2896 * pthread.c: Likewise.
2897
9016e55c
AJ
28982000-08-02 Andreas Jaeger <aj@suse.de>
2899
d364e525
UD
2900 * sysdeps/s390/pspinlock.c: New file.
2901 * sysdeps/s390/pt-machine.h: New file.
9016e55c
AJ
2902 Patches by Martin Schwidefsky <schwidefsky@de.ibm.com>.
2903
fdfb2ecc
AJ
29042000-07-12 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
2905
2906 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Implement for
2907 R3K.
2908 * sysdeps/mips/pt-machine.h (testandset): Likewise.
2909
b98a450f
AJ
29102000-07-26 Andreas Jaeger <aj@suse.de>
2911
2912 * pthread.c: Initialize p_sem_avail.
2913
a956d045
UD
29142000-07-25 Ulrich Drepper <drepper@redhat.com>
2915
a99db924 2916 * internals.h (struct __pthread_descr_struct): Add p_sem_avail.
9ec9e34e
UD
2917 * semaphore.c: Handle spurious wakeups.
2918
2919 * sysdeps/pthread/pthread.h: Add back PTHREAD_MUTX_FAST_NP as an alias
2920 for PTHREAD_MUTEX_ADAPTIVE_NP for source code compatibility.
2921
2922 * pthread.c (__pthread_set_own_extricate): Use THREAD_GETMEM.
2923 (__pthread_wait_for_restart): Likewise.
2924
2925 * condvar.c (pthread_cond_wait): Also check whether thread is
2926 cancelable before aborting loop.
2927 (pthread_cond_timedwait): Likewise.
2928
a956d045
UD
2929 * signals.c (pthread_sighandler): Remove special code to restrore
2930 %gs on x86.
2931 (pthread_sighandler_t): Likewise.
2932
70e392a3
UD
29332000-07-25 Mark Kettenis <kettenis@gnu.org>
2934
2935 * internals.h (__RES_PTHREAD_INTERNAL): Remove define.
2936 * pthread.c: Include <resolv.h>.
2937 (_res): Undefine. Add extern declaration.
2938
5122880a
UD
29392000-07-24 Ulrich Drepper <drepper@redhat.com>
2940
f3d5834e
UD
2941 * pthread.c (__pthread_initial_thread): Update initializer.
2942 (__pthread_manager_thread): Likewise.
2943 (pthread_initialize): Move setrlimit call to...
2944 (__pthread_initialize_manager): ...here.
2945 (__pthread_reset_main_thread): Reset also soft limit on stack size.
2946
5122880a 2947 * condvar.c: Handle spurious wakeups. [PR libc/1749].
ad0c66a0 2948 * internals.h (struct _pthread_descr_struct): Add p_condvar_avail.
5122880a 2949
0c0c8bde
UD
29502000-07-21 Ulrich Drepper <drepper@redhat.com>
2951
5122880a 2952 * spinlock.h: If IMPLEMENT_TAS_WITH_CAS is defined use
0c0c8bde 2953 __compare_and_swap to define testandset.
d364e525 2954 * sysdeps/powerpc/pt-machine.h: Add volatile to asms.
0c0c8bde
UD
2955 Define IMPLEMENT_TAS_WITH_CAS.
2956
0fb7851f
UD
29572000-07-20 Ulrich Drepper <drepper@redhat.com>
2958
2959 * Makefile: Pass -z nodelete to linker for libpthread.so
2960 generation if it understand this option.
2961
4e8286ac
UD
29622000-07-18 Mark Kettenis <kettenis@gnu.org>
2963
2964 * manager.c (pthread_handle_create): Remove initialization of
2965 new_thread->p_res._sock.
2966
80ec4993
UD
29672000-07-19 Kaz Kylheku <kaz@ashi.footprints.net>
2968
2969 Bugfixes to the variant of the code for machines with no compare
2970 and swap.
2971
2972 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Wait
2973 node was not being properly enqueued, due to failing to update
2974 the lock->__status field.
2975
2976 * spinlock.c (__pthread_alt_timedlock): The oldstatus variable was
2977 being set inappropriately, causing the suspend function to be called
2978 with a null self pointer and crash.
2979
70c5b33d
UD
29802000-07-18 Ulrich Drepper <drepper@redhat.com>
2981
056f707c
UD
2982 * spinlock.h (__pthread_alt_trylock): Fix code used if no
2983 compare&swap is available.
2984
a48297fd
UD
2985 * spinlock.h (__pthread_trylock): Use __compare_and_swap, not
2986 compare_and_swap.
2987
89bc5366 2988 * pthread.c (pthread_initialize): Don't use sysconf to determine
247c8869
UD
2989 whether the machine has more than one processor.
2990
70c5b33d
UD
2991 * spinlock.c (__pthread_alt_timedlock): Add back one of the
2992 removed thread_self calls.
2993
83142e8f
UD
29942000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
2995
2996 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Changed
2997 __compare_and_swap to compare_and_swap in code which assumes
2998 compare swap is available.
2999
89bc5366 30002000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
e6574c9c
UD
3001
3002 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Fixed
3003 bug whereby thr field of waitnode structure would not be correctly
3004 set unless a null self pointer is passed to the functions.
3005 Eliminated redundant calls to thread_self().
3006
c6df09ad
UD
30072000-07-18 Jakub Jelinek <jakub@redhat.com>
3008
3009 * pthread.c (__pthread_initialize_manager): Lock
3010 __pthread_manager_thread.p_lock before calling clone.
3011
9aae19cd
UD
30122000-05-05 H.J. Lu <hjl@gnu.org>
3013
3014 * sysdeps/ia64/pt-machine.h (__compare_and_swap): Change it to
3015 have acquire semantics.
3016 (__compare_and_swap_with_release_semantics): New inline
3017 function.
3018 (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): New macro.
3019
30202000-01-28 Hans Boehm <hboehm@exch.hpl.hp.com>
3021
3022 * manager.c: Fix the problem with signals at startup.
3023 Change the way that thread stacks are allocated on IA64.
3024 Clean up some of the guard page allocation stuff.
3025
30261999-12-19 H.J. Lu <hjl@gnu.org>
3027
3028 * internals.h (page_roundup): New.
3029 * attr.c (__pthread_attr_setguardsize); Use page_roundup
3030 instead of roundup.
3031 * manager.c (pthread_allocate_stack): Make sure guardaddr is
3032 page aligned with page_roundup if NEED_SEPARATE_REGISTER_STACK
3033 is define.
3034
30351999-12-17 Hans Boehm <hboehm@exch.hpl.hp.com>
3036
3037 * manager.c (pthread_allocate_stack): Unmap the stack top
3038 if failed to map the stack bottom.
3039 Fix the guard page.
3040 (pthread_free): Fix the guard page.
3041
3042 * pthread.c (pthread_initialize): Set rlimit correctly for
3043 NEED_SEPARATE_REGISTER_STACK.
3044
30451999-12-16 H.J. Lu <hjl@gnu.org>
3046
3047 * pthread.c (__pthread_initialize_manager): Pass
3048 __pthread_manager_thread_bos instead of
3049 __pthread_manager_thread_tos to __clone2.
3050
30511999-12-16 H.J. Lu <hjl@gnu.org>
3052
3053 * manager.c (pthread_allocate_stack): Correct the calculation
3054 of "new_thread_bottom". Remove MAP_GROWSDOWN from mmap for
3055 stack bottom.
3056
30571999-12-13 H.J. Lu <hjl@gnu.org>
3058
3059 * sysdeps/ia64/pt-machine.h (__compare_and_swap): Added a stop
3060 bit after setting ar.ccv.
3061
30621999-12-12 H.J. Lu <hjl@gnu.org>
3063
3064 * manager.c (pthread_allocate_stack): Make the starting
3065 address of the stack bottom page aligned. FIXME: it may
3066 need changes in other places.
3067 (pthread_handle_create): Likewise.
3068
30691999-12-11 Hans Boehm <hboehm@exch.hpl.hp.com>
3070
3071 * manager.c (pthread_allocate_stack): Handle
3072 NEED_SEPARATE_REGISTER_STACK.
3073 (pthread_handle_create): Likewise.
3074 * pthread.c (__pthread_initialize_manager): Likewise.
3075
3076 * sysdeps/ia64/pt-machine.h: Use r13 for thread pointer.
3077
30781999-12-02 H.J. Lu <hjl@gnu.org>
3079
3080 * sysdeps/ia64/pt-machine.h: New.
3081
f218b5f5
UD
30822000-07-13 Ulrich Drepper <drepper@redhat.com>
3083
3084 * wrapsyscall.c: Mark non-__ protected names as weak.
3085 PR libc/1466.
3086
0d655550
UD
30872000-07-12 Bruno Haible <haible@clisp.cons.org>
3088
3089 * Examples/ex8.c: Include <sys/wait.h>, not <wait.h>.
3090
9f835f5f
UD
30912000-07-12 Ulrich Drepper <drepper@redhat.com>
3092
3093 * spinlock.c: Fix code for TEST_FOR_COMPARE_AND_SWAP being defined.
3094 Add tests also to new alternative spinlock implementation.
3095 * spinlock.h: Likewise.
3096 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3097
a85d5c80
UD
30982000-07-06 Ulrich Drepper <drepper@redhat.com>
3099
c0f53cdd
UD
3100 * Version: Export __sigaction.
3101 * signals.c: Define __sigaction alias. Use __libc_sigaction instead
3102 of __sigaction.
3103 * pthread.c: Use __libc_sigaction instead of __sigaction.
3104
a85d5c80
UD
3105 * condvar.c: Implement pthread_condattr_getpshared and
3106 pthread_condattr_setpshared.
3107 * mutex.c: Implement pthread_mutexattr_getpshared and
3108 pthread_mutexattr_setpshared.
3109 * Versions: Export new functions.
3110 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
3111
3112 * rwlock.c (pthread_rwlockattr_init): Use PTHREAD_PROCESS_PRIVATE.
3113 (pthread_rwlockattr_setpshared): Fail if PTHREAD_PROCESS_PRIVATE
3114 is not selected.
3115
66c5b9aa
GM
31162000-07-04 Greg McGary <greg@mcgary.org>
3117
3118 * sysdeps/pthread/bits/libc-lock.h: Remove BP_SYM from
3119 pragmas. Include bp-sym.h only if _LIBC.
3120
83b1b6d8
UD
31212000-07-04 Ulrich Drepper <drepper@redhat.com>
3122
3123 * spinlock.c (__pthread_unlock): Properly place write barrier.
3124 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3125
a88b96f4
UD
31262000-07-03 Ulrich Drepper <drepper@redhat.com>
3127
3128 * spinlock.c: Replace fast spinlocks by adaptive spinlocks which are
3129 faster on SMP systems. No more emulation of compare&swap for adaptive
3130 spinlocks.
3131 * spinlock.h: Likewise.
3132 * sysdeps/pthread/pthread.h: Shuffle PTHREAD_MUTEX_* values around.
3133 Replace fast with adaptive mutex.
3134 * mutex.c: Rewrite for replacement of fast by adaptive mutex.
3135 * condvar.c: Likewise.
3136 * pthread.c: Define and initialize __pthread_smp_kernel variable.
3137 * internals.h: Declare __pthread_smp_kernel.
3138 * sysdeps/pthread/bits/pthreadtypes.h: Update comment of
3139 _pthread_fastlock structure.
3140 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3141
3142 * pthread.c: Remove initialization to zero from global variables.
3143
1a6d7967
UD
31442000-06-29 Jakub Jelinek <jakub@redhat.com>
3145
3146 * shlib-versions: Make sparc64 GLIBC_2.2+ only.
3147
1efd15e3
GM
31482000-06-28 Greg McGary <greg@mcgary.org>
3149
3150 * weaks.c: Wrap BP_SYM () around weak extern declarations of
3151 pthread functions that have pointers in their return+arg signatures.
3152
3210bef0
GM
31532000-06-27 Greg McGary <greg@mcgary.org>
3154
1efd15e3
GM
3155 * sysdeps/pthread/bits/libc-lock.h: Wrap BP_SYM () around weak
3156 extern declarations of pthread functions that have pointers in
3157 their return+arg signatures.
3210bef0 3158
c49ebf76
UD
31592000-06-26 Ulrich Drepper <drepper@redhat.com>
3160
3161 * Makefile (tests): Add ex11. Add rules to build it.
3162 * Examples/ex11.c: New file.
3163 * rwlock.c: Fix complete braindamaged previous try to implement
3164 timedout functions.
3165
3166 * spinlock.c: Pretty print.
3167
d82e4c7b
UD
31682000-06-25 Ulrich Drepper <drepper@redhat.com>
3169
3170 * Makefile (tests): Add ex10. Add rules to build it.
3171 * Versions [GLIBC_2.2] (libpthread): Add pthread_mutex_timedlock,
3172 pthread_rwlock_timedrdlock, and pthread_rwlock_timedwrlock.
3173 * condvar.c (pthread_cond_wait): Allow mutex of kind
3174 PTHREAD_MUTEX_TIMED_NP.
3175 (pthread_cond_timedwait_relative): Likewise.
3176 * mutex.c (__pthread_mutex_init): Default is PTHREAD_MUTEX_TIMED_NP.
3177 (__pthread_mutex_trylock): Use __pthread_alt_trylock for
3178 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
3179 (__pthread_mutex_lock): Use __pthread_alt_lock for
3180 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
3181 (__pthread_mutex_timedlock): New function.
3182 (__pthread_mutex_unlock): Use __pthread_alt_unlock for
3183 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
3184 (__pthread_mutexattr_init): Use PTHREAD_MUTEX_TIMED_NP.
3185 (__pthread_mutexattr_settype): Allow PTHREAD_MUTEX_TIMED_NP.
3186 * spinlock.c: Implement alternate fastlocks.
3187 * spinlock.h: Add prototypes.
3188 * Examples/ex10.c: New file.
3189 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
3190 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3191
3192 * rwlock.c (__pthread_rwlock_rdlock): Optimize loop a bit.
3193 (__pthread_rwlock_timedrdlock): New function.
3194 (__pthread_rwlock_timedwrlock): New function.
3195 Use laternate fastlock function everywhere.
3196
3d8e9510
AJ
31972000-06-21 Andreas Jaeger <aj@suse.de>
3198
efa24b51 3199 * sysdeps/pthread/timer_routines.c: Include <string.h> for memset
3d8e9510
AJ
3200 prototype.
3201
3202 * join.c: Include <stdlib.h> for exit prototype.
3203
697568d1
UD
32042000-06-20 Ulrich Drepper <drepper@redhat.com>
3205
bdf09fab
UD
3206 * sysdeps/i386/useldt.h: Include <stdlib.h>.
3207
697568d1
UD
3208 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_BARRIERS.
3209 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3210
3211 * Makefile (libpthread-routines): Add barrier.
3212 (tests): Add ex9. Add rule to build ex9.
3213 * Versions: Export barrier functions.
3214 * barrier.c: New file.
3215 * Examples/ex9.c: New file.
3216 * sysdeps/pthread/pthread.h: Add barrier data types and declarations.
3217 * sysdeps/pthread/bits/pthreadtypes.h: Likewise.
bdf09fab 3218 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
697568d1 3219
ba80a015
UD
32202000-06-19 H.J. Lu <hjl@gnu.org>
3221
3222 * spinlock.h (HAS_COMPARE_AND_SWAP): Defined if
3223 HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS is defined.
3224 (compare_and_swap_with_release_semantics): New. Default to
3225 compare_and_swap if HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS
3226 is not defined.
3227
3228 * spinlock.c (__pthread_unlock): Call
3229 compare_and_swap_with_release_semantics () instead of
3230 compare_and_swap ().
3231
d2dfc5de
UD
32322000-06-19 Ulrich Drepper <drepper@redhat.com>
3233
3234 * sysdeps/pthread/timer_create.c: Use _set_errno instead of assigning
3235 to errno directly.
3236 * sysdeps/pthread/timer_delete.c: Likewise.
3237 * sysdeps/pthread/timer_getoverr.c: Likewise.
3238 * sysdeps/pthread/timer_gettime.c: Likewise.
3239 * sysdeps/pthread/timer_settime.c: Likewise.
3240
32412000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
3242
3243 Timer nodes are now reference counted, and can be marked
3244 as deleted. This allows for the safe release of the global mutex
3245 in the middle without losing the timer being operated on.
3246
3247 * sysdeps/pthread/posix-timer.h (struct timer_node): The inuse
3248 member is now an enum with three values, so that an intermediate
3249 state can be represented (deleted but not free for reuse yet).
3250 New refcount member added.
3251 * sysdeps/pthread/timer_routines.c: Likewise.
3252
3253 * sysdeps/pthread/posix-timer.h (timer_addref, timer_delref,
3254 timer_valid): New inline functions added.
3255
3256 * sysdeps/pthread/timer_gettime.c (timer_gettime): Function
3257 restructured, recursive deadlock bug fixed.
3258
3259 * sysdeps/pthread/timer_gettime.c (timer_gettime): Uses new
3260 timer_addref to ensure that timer won't be deleted while mutex is not
3261 held. Also uses timer_invalid to perform validation of timer handle.
3262 * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
3263 * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Likewise.
3264
e26dd47f
UD
32652000-06-14 Ulrich Drepper <drepper@redhat.com>
3266
3267 * shlib-versions: Add entry for SH.
3268 Patch by Kaz Kojima <kkojima@rr.iij4u.or.jp>.
3269
38161ac7
UD
32702000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
3271
3272 A few optimizations. Got rid of unnecessary wakeups of timer threads,
3273 tightened up some critical regions and micro-optimized some list
3274 manipulation code.
3275
3276 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
3277 Returns int value now to indicate whether timer was queued at head.
3278 * sysdeps/pthread/posix-timer.h: Likewise.
3279 * sysdeps/pthread/timer_settime.c (timer_settime): Takes advantage of
3280 new return value from __timer_thread_queue_timer to avoid waking
3281 up timer thread unnecessarily.
3282
3283 * sysdeps/pthread/posix-timer.h (timer_id2ptr): No longer checks
3284 inuse flag, because this requires mutex to be held. Callers updated
3285 to do the check when they have the mutex.
3286 * sysdeps/pthread/timer_getoverr.c: Add check for inuse here.
3287
3288 * sysdeps/pthread/timer_settime.c (timer_settime): Tighter critical
3289 regions: avoids making system calls while holding timer mutex, and
3290 a few computations were moved outside of the mutex as well.
3291 * sysdeps/pthread/timer_gettime.c (timer_gettime): Likewise.
3292
3293 * sysdeps/pthread/posix-timer.h (list_unlink_ip): Function name changed
3294 to list_unlink_ip, meaning idempotent. Pointer manipulation
3295 changed to get better better code out of gcc.
3296 * sysdeps/pthread/timer_routines.c (list_unlink): Non-idempotent
3297 version of list_unlink added here.
3298 * sysdeps/pthread/timer_delete.c: Use appropriate list unlink
3299 function in all places: idempotent one for timers, non-idempotent
3300 one for thread nodes.
3301 * sysdeps/pthread/timer_settime: Likewise.
3302 * sysdeps/pthread/timer_routines.c: Likewise.
3303
7ae1fe4d
UD
33042000-06-13 Ulrich Drepper <drepper@redhat.com>
3305
490dc9aa
UD
3306 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_TIMERS): Define.
3307 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3308
7ae1fe4d
UD
3309 * sysdeps/pthread/Makefile: Remove tests definition.
3310
3846ef75
UD
33112000-06-12 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
3312 Yutaka Niibe <gniibe@chroot.org>
3313
3314 * sysdeps/sh/pspinlock.c: New file.
3315 * sysdeps/sh/pt-machine.h: New file.
3316
a5b97402
UD
33172000-06-12 Ulrich Drepper <drepper@redhat.com>
3318
55985355
UD
3319 * Makefile (tests): Add joinrace.
3320
a5b97402
UD
3321 * Examples/ex6.c: Test return value of pthread_join.
3322
2b72ebac
GK
33232000-06-11 Geoff Keating <geoffk@cygnus.com>
3324
3325 * sysdeps/powerpc/pspinlock.c (__pthread_spin_lock): Implement.
3326 (__pthread_spin_trylock): Implement.
3327 (__pthread_spin_unlock): Implement.
3328 (__pthread_spin_init): Implement.
3329 (__pthread_spin_destroy): Implement.
3330
425638fb
UD
33312000-06-10 Ulrich Drepper <drepper@redhat.com>
3332
3333 * sysdeps/pthread/timer_routines.c (list_append): Little fix to
2b72ebac 3334 really append the entry.
425638fb 3335
6948d763
AJ
33362000-06-10 Andreas Jaeger <aj@suse.de>
3337
3338 * lockfile.c (__fresetlockfiles): Remove unused variable fp.
3339
45dc1187
UD
33402000-06-10 Kaz Kylheku <kaz@ashi.footprints.net>
3341
3342 * sysdeps/pthread/timer_create.c: Thread matching now done on
3343 clock type as well as thread attributes.
3344 There are individual global signal-delivering threads for
3345 different clock types.
3346 * sysdeps/pthread/posix-timer.h: Likewise.
3347 * sysdeps/pthread/timer_routines.c: Likewise.
3348
3349 * sysdeps/pthread/timer_routines.c: Thread allocation and
3350 deallocation function now remembers to put thread on active
425638fb 3351 list and remove from active list.
45dc1187
UD
3352 Thus now the feature of binding multiple timers
3353 to a single thread actually works.
3354
ee5d4855
UD
33552000-06-10 Ulrich Drepper <drepper@redhat.com>
3356
3357 * pthread.c (__pthread_create_2_1): Optimize a bit.
3358
3359 * internals.h (invalid_handle): Also test for p_terminated != 0.
3360 (nonexisting_handle): New function. Same as old invalid_handle.
3361 * join.c (pthread_join): Use nonexisting_handle instead of
3362 invalid_handle to test for acceptable thread handle.
41b37cb5 3363 * manager.c (pthread_handle_free): Likewise.
15109bd4 3364 * joinrace.c: New file.
ee5d4855
UD
3365 Reported by Permaine Cheung <pcheung@cygnus.com>.
3366
2715f28a
UD
33672000-06-08 Ulrich Drepper <drepper@redhat.com>
3368
8aa8fc7f
UD
3369 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
3370 Correct handling of matching variable.
3371
480a06df
UD
3372 * sysdeps/pthread/tst-timer.c (main): Rewrite initializers to
3373 avoid warnings.
3374
18e4e446
UD
3375 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
3376 Be prepared for empty timer list.
3377
165ab1d7
UD
3378 * sysdeps/pthread/timer_create.c (timer_create): Correct names of
3379 CPUTIME clock ID. Add support for thread clocks.
3380
f2a5974b
UD
3381 * sysdeps/pthread/posix-timer.h (timer_ptr2id): Operands in
3382 subtraction were switched.
3383
c0f79a04
UD
3384 * sysdeps/pthread/timer_routines.c (init_module): Use
3385 THREAD_MAXNODES threads.
3386
55938273
UD
3387 * sysdeps/pthread/posix-timer.h (struct timer_node): Add creator_pid.
3388 * sysdeps/pthread/timer_create.c: Fill in creator_pid.
3389 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Send signal
3390 with sigqueueinfo is this system call is available.
3391
3392 * sysdeps/pthread/timer_create.c (timer_create): Allow
3393 CLOCK_CPUTIME if _POSIX_CPUTIME is defined.
3394
2715f28a
UD
3395 * sysdeps/pthread/Makefile: New file. Add rules to build timer
3396 functionality.
3397 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add TIMER_MAX.
3398
33992000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
3400
3401 * sysdeps/pthread/posix-timer.h: New file.
3402 * sysdeps/pthread/timer_create.c: New file.
3403 * sysdeps/pthread/timer_delete.c: New file.
3404 * sysdeps/pthread/timer_getoverr.c: New file.
3405 * sysdeps/pthread/timer_gettime.c: New file.
3406 * sysdeps/pthread/timer_routines.c: New file.
3407 * sysdeps/pthread/timer_settime.c: New file.
3408 * sysdeps/pthread/tst-timer.c: New file.
3409
1b579f91
UD
34102000-06-08 Ulrich Drepper <drepper@redhat.com>
3411
3412 * sysdeps/unix/sysv/linux/bits/local_lim.h: Remove OPEN_MAX and
3413 LINK_MAX definitions if necessary.
3414
dc3b5786
UD
34152000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
3416
3417 Added missing fork time handling of global libio lock.
3418
3419 * lockfile.c (__fresetlockfiles): Now also resets the list lock,
3420 not just the individual stream locks. Rewritten to use new
3421 iterator interface provided by libio rather than accessing
3422 global variable.
3423
3424 * lockfile.c (__flockfilelist, _funlockfilelist): New functions
3425 which lock and unlock the stream list using the new interface
3426 provied by libio.
3427 * internals.h: Likewise.
3428
3429 * ptfork.c (__fork): Now calls __flockfilelist before fork,
3430 and __funlockfilelist in the parent after the fork.
3431 Child still calls __fresetlockfiles as before.
3432
3433 * linuxthreads.texi: Now explains what happens to streams at
3434 fork time. Also whole new section on forking and thread added.
3435 Definition of pthread_atfork moved out of Miscellaneous Functions
3436 to this new section.
3437
1dd54850
UD
34382000-06-04 Jakub Jelinek <jakub@redhat.com>
3439
3440 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c (__pthread_spin_lock):
3441 Add missing register.
3442 * sysdeps/sparc/sparc64/pspinlock.c (__pthread_spin_lock): Likewise.
3443
554eca5c
AJ
34442000-06-02 Jakub Jelinek <jakub@redhat.com>
3445
3446 * sysdeps/sparc/sparc32/pspinlock.c: Implement spinlocks.
3447 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: New.
3448 * sysdeps/sparc/sparc64/pspinlock.c: Implement spinlocks.
3449
a3a99e01
AJ
34502000-05-31 Andreas Jaeger <aj@suse.de>
3451
3452 * sysdeps/mips/pspinlock.c: Implement spinlocks.
3453
c0f3519d
UD
34542000-05-28 Ulrich Drepper <drepper@redhat.com>
3455
84838b8f
UD
3456 * spinlock.c (__pthread_lock): Remove ASSERT.
3457
c0f3519d
UD
3458 * Makefile (tests): Add ex8.
3459 * Examples/ex8.c: New file.
3460
34612000-05-12 Kaz Kylheku <kaz@ashi.footprints.net>
3462
3463 Bugfix: The pthread_atfork mechanism now takes care of its
3464 own internal mutex at fork time.
3465
3466 * ptfork.c (__fork): Revised so that the mutex is held across
3467 the fork operation and while the handlers are called, and so that
3468 the child resets the mutex.
c0f3519d
UD
3469
3470 * linuxthreads.texi: Updated pthread_atfork documentation to make
3471 it clear that fork and pthread_atfork can't be reentered from
3472 atfork handlers, that pthread_atfork and fork are mutually atomic,
3473 and that the handlers are inherited by the child process.
3474
378fbeb4
UD
34752000-05-24 Ulrich Drepper <drepper@redhat.com>
3476
3477 * Makefile (libpthread-routines): Add pspinlock.
3478 * cancel.c: Rename __pthread_spin_unlock back to __pthread_unlock.
3479 Use struct _pthread_fastlock instead of pthread_spinlock_t.
3480 * condvar.c: Likewise.
3481 * internals.h: Likewise.
3482 * join.c: Likewise.
3483 * manager.c: Likewise.
3484 * mutex.c: Likewise.
3485 * pthread.c: Likewise.
3486 * rwlock.c: Likewise.
3487 * semaphore.c: Likewise.
3488 * signals.c: Likewise.
3489 * spinlock.h: Likewise.
3490 * spinlock.c: Likewise. Remove pthread_spin_lock functions.
3491 * sysdeps/alpha/pspinlock.c: New file.
3492 * sysdeps/arm/pspinlock.c: New file.
3493 * sysdeps/i386/pspinlock.c: New file.
3494 * sysdeps/m68k/pspinlock.c: New file.
3495 * sysdeps/mips/pspinlock.c: New file.
3496 * sysdeps/powerpc/pspinlock.c: New file.
3497 * sysdeps/sparc/sparc32/pspinlock.c: New file.
3498 * sysdeps/sparc/sparc64/pspinlock.c: New file.
3499 * sysdeps/pthread/bits/pthreadtypes.h: Remove pthread_spinlock_t
3500 back to _pthread_fastlock. Define new pthread_spinlock_t.
3501
fff82885
AJ
35022000-05-24 Andreas Jaeger <aj@suse.de>
3503
3504 * sysdeps/i386/i686/pt-machine.h: Only use LDT on newer kernels.
3505
5d1fba6d
AJ
35062000-05-21 Jakub Jelinek <jakub@redhat.com>
3507
3508 * manager.c (pthread_handle_create): Initialize p_res._sock to -1.
3509
f14273c5
AJ
35102000-05-13 Jakub Jelinek <jakub@redhat.com>
3511
3512 * internals.h (__RES_PTHREAD_INTERNAL): Define.
3513
93414bb9
UD
35142000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
3515
3516 * mutex.c (pthread_once): IN_PROGRESS state of pthread_once_t
3517 object state is represented with additional bits which distinguish
3518 whether that state was set up in the current process, or
3519 in an ancestor process. If that state was set in an ancestor,
3520 it means that a fork happened while thread was executing the init
3521 function. In that case, the state is reset to NEVER.
3522 * mutex.c (__pthread_once_fork_prepare): New function.
3523 (__pthread_once_fork_child): Likewise
3524 (__pthread_once_fork_parent): Likewise
3525 (__pthread_reset_pthread_once): Removed.
3526 * ptfork.c (__fork): Call new handlers in mutex.c.
3527 * internals.h: Declarations of new mutex.c functions added.
3528 Declaration of removed function deleted.
3529 * linuxthreads.texi: Updated documentation about pthread_once
3530 to clarify what happens under cancellation and forking.
3531
fc08075d
UD
35322000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
3533
3534 * internals.h: New thread manager request type, REQ_KICK.
3535 * join.c (pthread_exit): main thread now calls exit() instead
3536 of _exit() in order to proper process cleanup.
3537 * manager.c (__pthread_manager): Do not terminate manager
3538 after unblocking main thread; wait for main thread's
3539 REQ_PROCESS_EXIT request instead.
3540 Also, added REQ_KICK case to handle new request; this just does
3541 nothing.
3542 * manager.c (pthread_exited): Do not terminate manager after
3543 unblocking main thread.
3544 * manager.c (__pthread_manager_sighandler): If the main thread
3545 is waiting for all other threads to die, send a REQ_KICK into
3546 the thread manager request pipe to get it to clean out the threads
3547 and unblock the main thread as soon as possible. This fixes
3548 the 2000 millisecond hang on shutdown bug.
3549 * Examples/ex7.c: New file, tests shutdown behavior when all threads
3550 including the main one call pthread_exit(), or implicitly do so.
3551 * Makefile (tests): Add ex7.
3552
b19b7383
AJ
35532000-05-05 Andreas Jaeger <aj@suse.de>
3554
3555 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
3556 (pthread_getcpuclockid): Correct test for ourselves.
3557
c77ec56d
UD
35582000-05-05 Ulrich Drepper <drepper@redhat.com>
3559
3560 * internals.h (struct _pthread_descr_struct): Reorganization.
3561 Allocate room for 16 pointers at head of the structure for future
3562 thread-local data handling. Move p_self member in this area.
3563 * manager.c (pthread_handle_create): Adjust use of p_self.
3564 * sysdeps/i386/useldt.h (THREAD_SELF): Likewise.
3565 * pthread.c (__pthread_initial_thread): Adjust initialization.
3566 (__pthread_manager_thread): Likewise.
3567
35682000-04-29 Bruno Haible <haible@clisp.cons.org>
160016c9
UD
3569
3570 * join.c (pthread_exit): Use THREAD_GETMEM_NC instead of THREAD_GETMEM
3571 for eventmask larger than 1 word.
3572
3300816c
UD
35732000-04-27 Ulrich Drepper <drepper@redhat.com>
3574
3575 * Versions [libpthread] (GLIBC_2.2): Add __pthread_initialize_minimal.
3576 * pthread.c (__pthread_initialize_minimal): New function. Perform
3577 minimal initialization.
3578 (pthread_initialize): Remove this code here.
3579 * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h" again. We
3580 are working around the problem in glibc.
3581
d472655c
UD
35822000-04-25 Ulrich Drepper <drepper@redhat.com>
3583
3584 * sysdeps/i386/i686/pt-machine.h: Do not use "../useldt.h" for
3585 now. First gcc must be fixed (more concrete: libgcc).
3586
9bf4d640
UD
35872000-04-24 Ulrich Drepper <drepper@redhat.com>
3588
e19ae111 3589 * pthread.c: Remove special treatement for interrupt handlers on x86.
9bf4d640
UD
3590 * manager.c (pthread_free): Use FREE_THREAD not FREE_THREAD_SELF.
3591 * sysdeps/i386/useldt.h: Use "q" constraint instead of "r" where
3592 necessary.
3593 * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h".
3594
9682a871
UD
35952000-04-24 Mark Kettenis <kettenis@gnu.org>
3596
3597 * join.c (pthread_exit): Set p_terminated after reporting the
3598 termination event instead of before.
3599
d879eb85
UD
36002000-04-20 Jakub Jelinek <jakub@redhat.com>
3601
3602 * sysdeps/pthread/bits/libc-lock.h: Only declare __pthread_rwlock_*
3603 if __USE_UNIX98.
3604
36052000-04-18 Andreas Jaeger <aj@suse.de>
3606
3607 * Versions: Use ld instead of ld.so.
3608
318c80d4
UD
36092000-04-18 Jakub Jelinek <jakub@redhat.com>
3610
3611 * sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h (struct sigcontext):
3612 Remove the typedef keyword.
3613
cd43f797
UD
36142000-04-18 Jakub Jelinek <jakub@redhat.com>
3615
3616 * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Use membar,
3617 not stbar.
3618 (READ_MEMORY_BARRIER): Define.
3619 * spinlock.c (__pthread_spin_unlock): Use READ_MEMORY_BARRIER, not
3620 MEMORY_BARRIER.
3621 * internals.h (READ_MEMORY_BARRIER): Define if not defined in sysdep
3622 headers.
3623
dbacafe5
UD
36242000-04-17 Ulrich Drepper <drepper@redhat.com>
3625
3626 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
3627 (pthread_getcpuclockid): Don't compare thread_id with thread_self,
3628 use thread_handle().
3629
e2947c42
UD
36302000-04-16 Ulrich Drepper <drepper@redhat.com>
3631
e3265f5b
UD
3632 * condvar.c (pthread_cond_timedwait_relative): Don't test for owner
3633 if fast mutex is used. Don't initialize `already_canceled' twice.
3634 Correctly test for return value of timedsuspend.
3635
e2947c42
UD
3636 * pthread.c: Correct long-time braino. We never set SA_SIGINFO and
3637 therefore don't need the _rt versions of the signal handlers.
3638
150f740a
UD
36392000-04-15 Ulrich Drepper <drepper@redhat.com>
3640
c269fdb4
UD
3641 * pthread.c (pthread_yield): New function.
3642 * sysdeps/pthread/pthread.h (pthread_yield): Add prototype.
3643 * Versions [libpthread] (GLIBC_2.2): Add pthread_yield.
e2947c42 3644 * internals.h: Declare __pthread_yield.
c269fdb4 3645
145b8413
UD
3646 * pthread.c (pthread_initialize): Avoid a bit more code if
3647 realtime signals are known to exist.
3648
150f740a
UD
3649 * pthread.c: Is __ASSUME_REALTIME_SIGNALS then avoid generating code
3650 to dynamically detect RT signals and avoid generating compatibility
3651 functions with old kernel.
3652 * restart.h (restart) [__ASSUME_REALTIME_SIGNALS]: Use
3653 __pthread_restart_new directly.
3654 (suspend) [__ASSUME_REALTIME_SIGNALS]: Use
3655 __pthread_wait_for_restart_signal directly.
3656 (timedsuspend) [__ASSUME_REALTIME_SIGNALS]: Use
3657 __pthread_timedsuspend_new directly.
3658
b2d4446f
UD
36592000-04-15 Ulrich Drepper <drepper@redhat.com>
3660
ef187474
UD
3661 * condvar.c: Remove all the special code to handle cond_timedwait.
3662 Use timedsuspend instead.
3663 * internals.h: Declare __pthread_timedsuspend_old,
3664 __pthread_timedsuspend_new, and __pthread_timedsuspend.
3665 Remove declaration of __pthread_init_condvar.
3666 * pthread.c: Define __pthread_timedsuspend variable.
3667 (__pthread_timedsuspend_old): New function. Timed suspension
3668 implementation for old Linux kernels.
3669 (__pthread_timedsuspend_new): New function. Timed suspension
3670 implementation for new Linux kernels.
3671 * restart.h (timedsuspend): New function. Call appropriate
3672 suspension function through __pthread_timedsuspend.
3673 * semaphore.c (sem_timedwait): Use timedsuspend, don't duplicate
3674 the code.
3675 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3676
a5a6f926
UD
3677 * internals.h (WRITE_MEMORY_BARRIER): Define as MEMORY_BARRIER if
3678 undefined.
3679 * spinlock.c: Use WRITE_MEMORY_BARRIER instead of MEMORY_BARRIER
3680 where possible.
3681 * sysdeps/alpha/pt-machine.h: Define WRITE_MEMORY_BARRIER.
3682 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
3683
b2d4446f
UD
3684 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _POSIX_SPAWN.
3685 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3686
b82f6af2
AJ
36872000-04-14 Andreas Jaeger <aj@suse.de>
3688
3689 * weaks.c: Fix typo.
3690
43c36f63
AJ
3691 * shlib-versions (mips.*-.*-linux.*): Support only GLIBC 2.0 and
3692 2.2 for linuxthreads.
3693
547ff462
UD
36942000-04-13 Ulrich Drepper <drepper@redhat.com>
3695
3696 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
3697 (pthread_getcpuclockid): Fix typo.
3698
b3ae0650
UD
36992000-04-12 Ulrich Drepper <drepper@redhat.com>
3700
3737ff12
UD
3701 * Makefile (libpthread-routines): Add getcpuclockid.
3702 * Versions [libpthread] (GLIBC_2.2): Add pthread_getcpuclockid.
3703 * sysdeps/pthread/getcpuclockid.c: New file.
3704 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: New file.
3705 * sysdeps/pthread/pthread.h: Add prototype for pthread_getcpuclockid.
3706
07d641eb
UD
3707 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_SPIN_LOCKS):
3708 Defined.
3709 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3710
d8d914df
UD
3711 * sysdeps/pthread/pthread.h: Add prototypes for pthread_spin_init,
3712 pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
3713 and pthread_spin_unlock.
3714 * sysdeps/pthread/bits/pthreadtypes.h: Change struct _pthread_fastlock
3715 into pthread_spinlock_t. Change all uses.
3716 * spinlock.c: Implement pthread_spin_lock.
3717 Rename __pthread_unlock to __pthread_spin_unlock and define weak
3718 alias for real name.
3719 Define pthread_spin_trylock, pthread_spin_init, and
3720 pthread_spin_destroy.
3721 Change all uses of _pthread_fastlock to pthread_spinlock_t.
3722 * spinlock.h: Rename __pthread_unlock to __pthread_spin_unlock.
3723 Change all uses of _pthread_fastlock to pthread_spinlock_t.
3724 * Versions [libpthread] (GLIBC_2.2): Add pthread_spin_init,
3725 pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
3726 and pthread_spin_unlock.
3727 * cancel.c: Use __pthread_spin_unlock instead of __pthread_unlock.
3728 Change all uses of _pthread_fastlock to pthread_spinlock_t.
3729 * condvar.c: Likewise.
3730 * internals.h: Likewise.
3731 * join.c: Likewise.
3732 * manager.c: Likewise.
3733 * mutex.c: Likewise.
3734 * pthread.c: Likewise.
3735 * rwlock.c: Likewise.
3736 * semaphore.c: Likewise.
3737 * signals.c: Likewise.
3738
b3ae0650
UD
3739 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add various new POSIX
3740 macros.
3741 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
3742
8a31d742
UD
37432000-04-11 Ulrich Drepper <drepper@redhat.com>
3744
3745 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add
3746 _POSIX_SHARED_MEMORY_OBJECTS.
3747
2a086df9
AJ
37482000-04-11 Andreas Jaeger <aj@suse.de>
3749
3750 * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
3751 (__compare_and_swap): Mark as modifying memory.
3752
4a1a3c21
GK
37532000-04-11 Geoff Keating <geoffk@cygnus.com>
3754
3755 * sysdeps/powerpc/pt-machine.h (MEMORY_BARRIER): Don't be
3756 __volatile__.
3757 (__compare_and_swap): Replace other 'sync' with MEMORY_BARRIER.
3758 Don't have the 'asm' __volatile__.
3759
de262537
UD
37602000-04-11 Ulrich Drepper <drepper@redhat.com>
3761
3762 * internals.h: Define MEMORY_BARRIER as empty if not defined already.
3763 * spinlock.c (__pthread_lock): Add memory barriers.
3764 (__pthread_unlock): Likewise.
3765 * sysdeps/alpha/pt-machine.h (MEMORY_BARRIER): Define using mb
3766 instruction.
3767 (RELEASE): Not needed anymore.
3768 (__compare_and_swap): Mark asm as modifying memory.
3769 * sysdeps/powerpc/pt-machine.h (sync): Remove. Replace with definition
3770 of MEMORY_BARRIER.
3771 (__compare_and_swap): Use MEMORY_BARRIER instead of sync.
3772 * sysdeps/sparc/sparc32/pt-machine.h (RELEASE): Not needed anymore.
3773 (MEMORY_BARRIER): Define using stbar.
3774 * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Define using
3775 stbar.
3776 (__compare_and_swap): Use MEMORY_BARRIER to ensure ordering.
3777 Patch by Xavier Leroy <Xavier.Leroy@inria.fr> based on comments by
3778 Mike Burrows <m3b@pa.dec.com>.
3779
4186c9f4
UD
37802000-04-09 Ulrich Drepper <drepper@redhat.com>
3781
3782 * signals.c (sigaction): Fix return value for the case SIG is one
3783 of the signals the implementation uses.
3784 Patch by Xavier.Leroy@inria.fr.
3785
bd457114
UD
37862000-04-01 Andreas Jaeger <aj@suse.de>
3787
3788 * attr.c: Use shlib-compat macros.
3789 * oldsemaphore.c: Likewise.
3790 * pthread.c: Likewise.
3791 * weaks.c: Likewise.
3792
1edf26ff
UD
37932000-03-26 Ulrich Drepper <drepper@redhat.com>
3794
3795 * semaphore.c (sem_timedwait): New function.
3796 Patch by Carl Mailloux <carlm@oricom.ca>.
3797 * semaphore.h: Declare sem_timedwait.
8e605e78 3798 * Versions [libpthread] (GLIBC_2.2): Add sem_timedwait.
1edf26ff 3799
54f6cbb3
RM
38002000-03-26 Roland McGrath <roland@baalperazim.frob.com>
3801
3802 * sysdeps/pthread/Makefile: File removed.
3803
c0bc5f7b
UD
38042000-03-23 Ulrich Drepper <drepper@redhat.com>
3805
383052e9
UD
3806 * mutex.c (__pthread_reset_pthread_once): Reset once_masterlock.
3807 * internals.h (__pthread_reset_pthread_once): Add prototype.
3808 * ptfork.c (__fork): Call __pthread_reset_pthread_once.
3809
c0bc5f7b
UD
3810 * manager.c (pthread_handle_create): Store ID of new thread before
3811 clone call.
3812
0bf98029
UD
38132000-03-21 Ulrich Drepper <drepper@redhat.com>
3814
ef7dddd0
UD
3815 * attr.c: Use new macros from shlib-compat.h to define versions.
3816 * oldsemaphore.c: Likewise.
3817 * semaphore.c: Likewise.
3818 * weaks.c: Likewise.
3819
1ab1ea76
UD
3820 * pthread.c: Update for new SHLIB_COMPAT definition.
3821
101edd3f
UD
3822 * manager.c (__pthread_manager): Unmask debug signal.
3823
0bf98029
UD
3824 * pthread.c (pthread_initialize): Test for address of __dso_handle
3825 being NULL, not value. Use __on_exit, not on_exit.
e063cef8 3826 Patch by Andreas Jaeger <aj@suse.de>.
0bf98029 3827
75836bc8
UD
3828 * pthread.c: Use new macros from shlib-compat.h to define versions.
3829
a6a478e9
UD
38302000-03-19 Ulrich Drepper <drepper@redhat.com>
3831
3832 * pthread.c (pthread_initialize): Instead of on_exit use
3833 __cxa_atexit if __dso_label is available to allow unloading the
3834 libpthread shared library.
3835
13a83604
UD
38362000-03-16 Ulrich Drepper <drepper@redhat.com>
3837
3838 * condvar.c: Make tests for ownership of mutex less strict.
3839
30b416ea
UD
38402000-03-14 Ulrich Drepper <drepper@redhat.com>
3841
5d141597
UD
3842 * condvar.c (pthread_cond_wait): Check whether mutex is owned by
3843 current thread and return error if not.
04366d5f
UD
3844 (pthread_cond_timedwait_relative_old): Likewise.
3845 (pthread_cond_timedwait_relative_new): Likewise.
5d141597 3846
30b416ea
UD
3847 * mutex.c (__pthread_once): Handle cancelled init function correctly.
3848 (pthread_once_cancelhandler): New function.
3849 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3850
56eea8d1
UD
38512000-03-14 Andreas Jaeger <aj@suse.de>
3852
3853 * pthread.c (pthread_handle_sigcancel_rt): GS has been renamed to
3854 REG_GS.
3855 (pthread_handle_sigrestart_rt): Likewise.
3856 * signals.c (pthread_sighandler_rt): Likewise.
3857
3d9ebedb
AJ
38582000-03-02 Andreas Jaeger <aj@suse.de>
3859
3860 * sysdeps/pthread/bits/libc-lock.h: Fix typo.
3861 Reported by Sean Chen <sean.chen@turbolinux.com>.
3862
b041ebc2
UD
38632000-02-28 Andreas Jaeger <aj@suse.de>
3864
3865 * rwlock.c: Fix typo.
3866
0ed99ce4
UD
38672000-02-27 Ulrich Drepper <drepper@redhat.com>
3868
3869 * rwlock.c: Define __* variants of the functions and make old names
3870 aliases.
3871 * Versions [GLIBC_2.2]: Export the __pthread_rwlock_* functions.
3872 * sysdeps/pthread/bits/libc-lock.h: Define __libc_rwlock_* macros.
3873
d66732e0
UD
38742000-02-25 Andreas Jaeger <aj@suse.de>
3875
3876 * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
0ed99ce4
UD
3877 pwrite64, lseek64, open64, and __open64 with version 2.2.
3878
93a19c64
UD
38792000-02-22 Ulrich Drepper <drepper@redhat.com>
3880
3881 * semaphore.h (SEM_FAILED): Use 0 not NULL.
3882
ec91ea7c
UD
38832000-02-14 Ulrich Drepper <drepper@redhat.com>
3884
3885 * condvar.c (pthread_cond_timedwait_relative_old): Tight loop with
3886 nanosleep does not work either. Get absolute time inside the
3887 loop.
3888 (pthread_cond_timedwait_relative_new): Likewise.
3889 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3890
f5ff12d8
UD
38912000-02-13 Andreas Jaeger <aj@suse.de>
3892
3893 * condvar.c (pthread_cond_timedwait_relative_new): Fix last patch.
3894 (pthread_cond_timedwait_relative_old): Likewise.
3895
46661856
UD
38962000-02-13 Ulrich Drepper <drepper@redhat.com>
3897
3898 * condvar.c (pthread_cond_timedwait_relative_old): Undo last patch
3899 but keep the code around. A bug in the kernel prevent us from
3900 using the code.
3901 (pthread_cond_timedwait_relative_new): Likewise.
3902 (PR libc/1597 and libc/1598).
3903
b168cff2
UD
39042000-02-01 Kaz Kylheku <kaz@ashi.footprints.net>
3905
3906 * condvar.c (pthread_cond_timedwait_relative_old): Do tight
3907 loop around nanosleep calls instead of around most of the function
3908 (pthread_cond_timedwait_relative_new): Likewise.
3909 body. Got rid of backwards goto and one local.
3910
8a94dfe4
UD
39112000-01-31 Ulrich Drepper <drepper@redhat.com>
3912
3913 * condvar.c (pthread_cond_timedwait_relative_old): Recompute time
3914 before every nanosleep call to account for time spent in the rest
3915 of the function.
3916 (pthread_cond_timedwait_relative_new): Likewise.
3917 Patch by khendricks@ivey.uwo.ca (PR libc/1564).
3918
b6aa34eb
UD
39192000-01-29 Ulrich Drepper <drepper@redhat.com>
3920
3921 * condvar.c (pthread_cond_timedwait_relative_old): Get remaining time
3922 from nanosleep call so that in case we restart we only wait for the
3923 remaining time.
3924 (pthread_cond_timedwait_relative_new): Likewise.
3925 Patch by khendricks@ivey.uwo.ca (PR libc/1561).
3926
0af4c646
UD
39272000-01-18 Ulrich Drepper <drepper@cygnus.com>
3928
3929 * manager.c (pthread_allocate_stack): Compute guard page address
3930 correctly. Patch by HJ Lu.
3931
3932 * sysdeps/pthread/pthread.h: Define
3933 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP.
3934
2449110a
UD
39352000-01-16 Ulrich Drepper <drepper@cygnus.com>
3936
3937 * rwlock.c (pthread_rwlock_unlock): Correct one more problem with
3938 preference handling.
3939 (pthread_rwlockattr_setkind_np): Allow
3940 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
3941 Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
3942
03c0d6ef
UD
39432000-01-12 Ulrich Drepper <drepper@cygnus.com>
3944
3945 * internals.h (pthread_readlock_info): New structure.
3946 (_pthread_descr_struct): Add p_readlock_list, p_readlock_free, and
3947 p_untracked_readlock_count.
3948 * pthread.c (__pthread_initial_thread, pthread_manager_thread):
3949 Add initializers for new fields.
3950 * manager.c (pthread_free): Free read/write lock lists.
3951 * queue.h (queue_is_empty): New function.
3952 * rwlock.c: Implement requirements about when readers should get
3953 locks assigned.
3954 * sysdeps/pthread/pthread.h
3955 (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP): New definition.
3956 * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_rwlock_t):
3957 Define this name as well.
3958 Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
3959
d569d333
UD
39602000-01-05 Ulrich Drepper <drepper@cygnus.com>
3961
2ba3c836
UD
3962 * pthread.c (__pthread_initial_thread, pthread_manager_thread):
3963 Adjust initializers for struct _pthread_descr_struct change.
d569d333
UD
3964 * internals.h (struct _pthread_descr_struct): Move new elements to
3965 the end.
3966
1d2fc9b3
UD
39672000-01-03 Kaz Kylheku <kaz@ashi.footprints.net>
3968
3969 Redesigned how cancellation unblocks a thread from internal
3970 cancellation points (sem_wait, pthread_join,
3971 pthread_cond_{wait,timedwait}).
3972 Cancellation won't eat a signal in any of these functions
3973 (*required* by POSIX and Single Unix Spec!).
a3bfd999 3974 * condvar.c: Spontaneous wakeup on pthread_cond_timedwait won't eat a
1d2fc9b3
UD
3975 simultaneous condition variable signal (not required by POSIX
3976 or Single Unix Spec, but nice).
3977 * spinlock.c: __pthread_lock queues back any received restarts
3978 that don't belong to it instead of assuming ownership of lock
3979 upon any restart; fastlock can no longer be acquired by two threads
3980 simultaneously.
a3bfd999 3981 * restart.h: Restarts queue even on kernels that don't have
1d2fc9b3
UD
3982 queued real time signals (2.0, early 2.1), thanks to atomic counter,
3983 avoiding a rare race condition in pthread_cond_timedwait.
3984
1c5d4617
UD
39851999-12-31 Andreas Jaeger <aj@suse.de>
3986
3987 * internals.h: Remove duplicate prototype declarations.
3988
3989 * weaks.c: Remove __THROW from prototypes since the file is not
3990 compiled by a C++ compiler.
3991 * internals.h: Likewise.
3992
39931999-12-30 Andreas Jaeger <aj@suse.de>
3994
3995 * sysdeps/pthread/pthread.h: Move internal functions to...
3996 * sysdeps/pthread/bits/libc-lock.h: ...here.
3997
d876f532
UD
39981999-12-29 Andreas Jaeger <aj@suse.de>
3999
4000 * sysdeps/pthread/pthread.h: Fix typos, reformat comments.
4001
056e0358
UD
40021999-12-28 Ulrich Drepper <drepper@cygnus.com>
4003
4004 * sysdeps/alpha/pt-machine.h: Move stack_pointer definition to the
4005 beginning.
4006
4007 * manager.c (__pthread_start): Add one more cast to prevent
4008 warning on 64bit machines.
4009
46fd4f67
UD
40101999-12-21 Ulrich Drepper <drepper@cygnus.com>
4011
4012 * manager.c (pthread_handle_create): Set p_pid of new thread
4013 before calling the callback function to report a new thread.
4014
c63598bf
UD
40151999-12-20 Andreas Jaeger <aj@suse.de>
4016
4017 * pthread.c (pthread_initialize): Move getrlimit call after
4018 setting of errno.
4019
b85697f6
UD
40201999-12-18 Ulrich Drepper <drepper@cygnus.com>
4021
778c59c8
UD
4022 * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
4023 pwrite64, lseek64, open64, and __open64.
4024 * wrapsyscall.c: Define pread, __pread64, pread64, pwrite, __pwrite64,
4025 pwrite64, lseek64, open64, and __open64.
4026
b85697f6
UD
4027 * manager.c (pthread_allocate_stack): Correct computation of
4028 new_thread_bottom. Correct handling of stack size and when the
4029 rlimit method to guard for stack growth is used.
4030 * pthread.c (pthread_initialize): Stack limit must be STACK_SIZE
4031 minus one pagesize (not two).
4032
b43b13ac
UD
40331999-12-03 Andreas Jaeger <aj@suse.de>
4034
4035 * Versions: Add __res_state with version GLIBC_2.2.
4036
4037 * errno.c (__res_state): New function to return thread specific
4038 resolver state.
4039
4040 * pthread.c (pthread_initialize): Initialize p_resp.
4041 (__pthread_reset_main_thread): Also set p_resp.
4042
4043 * manager.c (pthread_handle_create): Initialize p_resp.
4044
4045 * internals.h: Add thread specific resolver state.
4046 Based on patches by Adam D. Bradley <artdodge@cs.bu.edu>.
4047
d7a4856e
UD
40481999-12-01 Ulrich Drepper <drepper@cygnus.com>
4049
4050 * sysdeps/i386/pt-machine.h: Move stack_pointer definition to the
4051 beginning.
4052 * sysdeps/i386/i686/pt-machine.h: Likewise.
4053 Patches by Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>.
4054
ffd35632
UD
40551999-11-23 Ulrich Drepper <drepper@cygnus.com>
4056
4057 * manager.c (pthread_start_thread_event): Initialize p_pid already
4058 here.
4059
20bdb31b
UD
40601999-11-22 Ulrich Drepper <drepper@cygnus.com>
4061
4062 * internals.h: Add prototype for __pthread_manager_event.
4063 * manager.c (__pthread_manager_event): New function.
4064 (pthread_start_thread_event): Correct computation of self.
4065 Use INIT_THREAD_SELF.
4066 * pthread.c (__pthread_manager_thread): Initialize p_lock.
4067 (__pthread_initialize_manager): Respect event flags also for creation
4068 of the manager thread.
4069
178a145a
UD
40701999-11-08 Ulrich Drepper <drepper@cygnus.com>
4071
4072 * pthread.c (__pthread_initialize_manager): Initialize
4073 __pthread_manager_thread.p_tid.
4074
a9cb398f
UD
40751999-11-02 Ulrich Drepper <drepper@cygnus.com>
4076
ab86fbb1
UD
4077 * internals.h: Declare __pthread_last_event.
4078 * manager.c: Define __pthread_last_event.
4079 (pthread_handle_create): Set __pthread_last_event.
4080 (pthread_exited): Likewise.
4081 * join.c (pthread_exit): Likewise.
4082
a9cb398f
UD
4083 * Makefile (libpthread-routines): Add events.
4084 * events.c: New file.
4085 * internals.h: Protect against multiple inclusion.
4086 Include thread_dbP.h header.
4087 (struct _pthread_descr_struct): Add new fields p_report_events and
4088 p_eventbuf.
4089 Declare event reporting functions.
4090 * join.c (pthread_exit): Signal event if this is wanted.
4091 * manager.c (__pthread_threads_events): New variable.
4092 (pthread_handle_create): Take new parameters with event information.
4093 Signal TD_CREATE event if wanted.
4094 (__pthread_manager): Adjust pthread_handle_create call.
4095 (pthread_start_thread_event): New function. Block until manager is
4096 finished and then call pthread_start_thread.
4097 (pthread_exited): Signal TD_REAP event if wanted.
4098
8dd1e494
UD
40991999-10-26 Ulrich Drepper <drepper@cygnus.com>
4100
4101 * restart.h (suspend_with_cancellation): Rewrite as a macro.
4102
4103 * condvar.c (pthread_cond_timedwait_relative): Don't mark as inline.
4104
86cfe82d
UD
41051999-10-25 Andreas Jaeger <aj@suse.de>
4106
4107 * internals.h: Remove K&R compatibility.
4108 * no-tsd.c: Likewise.
4109 * semaphore.h: Likewise.
4110 * signals.c: Likewise.
4111 * sysdeps/pthread/bits/libc-tsd.h: Likewise.
4112 * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
4113 * weaks.c: Likewise.
4114
15daa639
UD
41151999-10-21 Xavier Leroy <Xavier.Leroy@inria.fr>
4116
d364e525
UD
4117 * pthread.c: For i386, wrap pthread_handle_sigrestart and
4118 pthread_handle_sigcancel with functions that restore %gs from the
4119 signal context. For each signal handling function, two wrappers
4120 are required, one for a non-RT signal and one for a RT signal.
4121 * signal.c: For i386, add code to restore %gs from the signal
4122 context in pthread_sighandler and pthread_sighandler_rt.
15daa639 4123
ef5d6645
UD
41241999-10-17 Ulrich Drepper <drepper@cygnus.com>
4125
4126 * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add cast.
4127
f6367df2
UD
41281999-10-14 Ulrich Drepper <drepper@cygnus.com>
4129
4a379216
UD
4130 * pthread.c (__pthread_initial_thread): Pass argument to
4131 PTHREAD_START_ARGS_INITIALIZER.
4132 (__pthread_manager_thread): Likewise.
4133
4134 * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add parameter to
4135 initialize function.
4136
f6367df2
UD
4137 * manager.c (pthread_handle_create): Remove p_startfct initialization.
4138
4139 * internals.h (_pthread_descr_struct): We don't need p_startfct field.
4140
d4c5cf80
UD
41411999-10-12 Ulrich Drepper <drepper@cygnus.com>
4142
4143 * internals.h: Correct return types for __libc_read and __libc_write.
4144
883c331a
UD
41451999-10-09 Andreas Jaeger <aj@suse.de>
4146
4147 * internals.h: Add __new_sem_post to get prototype in
4148 manager.c; include semaphore.h for needed types.
4149
c813f986
UD
41501999-10-08 Ulrich Drepper <drepper@cygnus.com>
4151
4152 * manager.c (__pthread_manager) [REQ_POST]: Use __new_sem_post
4153 directly instead of calling sem_post which should not be necessary
4154 but is faster and might help in some case to work around problems.
c1422e5b 4155 Patch by khendricks@ivey.uwo.ca [libc/1382].
c813f986 4156
0f5219d4
UD
41571999-10-08 Andreas Schwab <schwab@suse.de>
4158
4159 * sysdeps/pthread/Subdirs: New file.
4160 * Implies: Removed.
4161
9640bbe1
UD
41621999-10-07 Ulrich Drepper <drepper@cygnus.com>
4163
4164 * Implies: New file.
4165 * internals.h (struct _pthread_descr_struct): Add p_startfct.
4166 * manager.c (pthread_handle_create): Initialize p_startfct.
4167 * pthread.c: Define __linuxthread_pthread_sizeof_descr variable.
4168
079c00e6
UD
41691999-09-25 Ulrich Drepper <drepper@cygnus.com>
4170
d790bc34
UD
4171 * manager.c (__linuxthreads_pthread_threads_max): New variable.
4172 * specific.c (__linuxthreads_pthread_keys_max): New variable.
6e42b0f1 4173 (__linuxthreads_pthread_key_2ndlevel_size): New variable.
d790bc34 4174
079c00e6
UD
4175 * condvar.c (pthread_cond_timedwait_relative): Never return with
4176 EINTR. Patch by Andreas Schwab.
4177
b5c69d99
UD
41781999-09-19 Ulrich Drepper <drepper@cygnus.com>
4179
4180 * signals.c (sigaction): Correct last patch. Don't select
4181 pthread_sighandler_rt based on the signal number but instead of
4182 the SA_SIGINFO flag.
4183
d790bc34
UD
41841999-09-23 Ulrich Drepper <drepper@cygnus.com>
4185
4186 * specific.c: Move definitions of struct pthread_key_struct and
4187 destr_function to ...
4188 * internals.h: ...here.
4189
9cf44e65
UD
41901999-09-18 Ulrich Drepper <drepper@cygnus.com>
4191
4192 * pthread.c (pthread_handle_sigrestart_rt): New function. Use
4193 this instead of pthread_handle_sigrestart if the signal is an RT
4194 signal.
4195
4196 * signals.c: Handle passing through of sighandler arguments also
4197 for real-time signals.
4198
4fe53b3a
UD
41991999-09-03 Andreas Schwab <schwab@suse.de>
4200
4201 * ptfork.c (__fork): Renamed from fork and use __libc_fork. Add
4202 fork as weak alias.
4203 (__vfork): New function, alias vfork.
4204 * Versions: Export __fork, vfork, and __vfork in libpthread.
4205
1d0b89a4
UD
42061999-08-23 Andreas Schwab <schwab@suse.de>
4207
4208 * signals.c (pthread_sighandler): Add SIGCONTEXT_EXTRA_ARGS to
4209 call to signal handler.
4210
6570e194
UD
42111999-08-20 Ulrich Drepper <drepper@cygnus.com>
4212
4213 * pthread.c (__pthread_reset_main_thread): Undo last change.
4214 (__pthread_kill_other_threads_np): Reset signal handlers for the
4215 signals we used in the thread implementation here.
4216
70aea399
UD
42171999-08-19 Ulrich Drepper <drepper@cygnus.com>
4218
2b638910 4219 * pthread.c (__pthread_reset_main_thread): Reset signal handlers
68ea6c18 4220 for the signals we used in the thread implementation [PR libc/1234].
2b638910 4221
264ec183
UD
4222 * Versions: Export __pthread_kill_other_threads_np from libpthread
4223 for GLIBC_2.1.2.
4224
70aea399
UD
4225 * signals.c: Pass sigcontext through wrapper to the user function.
4226
ff5fad16
UD
42271999-08-01 Ulrich Drepper <drepper@cygnus.com>
4228
4229 * Versions [ld.so] (GLIBC_2.0): Export __libc_internal_tsd_get and
4230 __libc_internal_tsd_set.
4231
6b798621
UD
42321999-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4233
4234 * manager.c: Remove inclusion of <linux/tasks.h> since it's not
4235 needed anymore.
4236
76a16b8f
UD
42371999-07-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4238
4bf307e3 4239 * internals.h: Align _pthread_descr_struct to 32 bytes.
76a16b8f
UD
4240 Reported by Tim Hockin <thockin@cobaltnet.com>, close PR
4241 libc/1206.
4242
5ef2d37b
UD
42431999-07-09 Ulrich Drepper <drepper@cygnus.com>
4244
4245 * oldsemaphore.c (sem_compare_and_swap): Fix use of compare and
4246 swap function.
4247
c2fa5b5a
UD
42481999-07-09 Cristian Gafton <gafton@redhat.com>
4249
4250 * Makefile (libpthread-routines): Add oldsemaphore routine.
ae3c1571
UD
4251 * Versions: Add sem_destroy, sem_getvalue, sem_init, sem_post,
4252 sem_trywait, and sem_wait to GLIBC_2.1.
c2fa5b5a
UD
4253 * oldsemaphore.c: New file.
4254 * semaphore.c: Add default_symbol_versions for the changed functions.
4255 (__new_sem_init): Rename from sem_init.
4256 (__new_sem_post): Rename from sem_post.
4257 (__new_sem_wait): Rename from sem_wait.
4258 (__new_sem_trywait): Rename from sem_trywait.
4259 (__new_sem_getvalue): Rename from sem_getvalue.
4260 (__new_sem_destroy): Rename from sem_destroy.
4261
6a1db4ff
UD
42621999-06-23 Robey Pointer <robey@netscape.com>
4263
4264 * internals.h: Added p_nextlock entry to separate queueing for a
4265 lock from queueing for a CV (sometimes a thread queues on a lock
4266 to serialize removing itself from a CV queue).
4267 * pthread.c: Added p_nextlock to initializers.
4268 * spinlock.c: Changed to use p_nextlock instead of p_nextwaiting.
4269
019e7a64
UD
42701999-07-09 Ulrich Drepper <drepper@cygnus.com>
4271
4272 * manager.c (pthread_handle_create): Free mmap region after stack
4273 if clone failed. Patch by Kaz Kylheku <kaz@ashi.FootPrints.net>.
4274
33d1a2c5
UD
42751999-05-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4276
4277 * man/pthread_cond_init.man: Correct example.
4278 Reported by Tomas Berndtsson <tomas@nocrew.org>.
4279
4280 * linuxthreads.texi (Condition Variables): Likewise.
4281
407d26b7
UD
42821999-05-18 Jakub Jelinek <jj@ultra.linux.cz>
4283
4284 * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): Use
4285 casx not cas, also successful casx returns the old value in rd
4286 and not the new value.
4287
431c33c0
UD
42881999-05-16 Xavier Leroy <Xavier.Leroy@inria.fr>
4289
4290 * manager.c: If pthread_create() is given a NULL attribute
4291 and the thread manager runs with a realtime policy, set the
4292 scheduling policy of the newly created thread back to SCHED_OTHER.
4293 * manager.c: If the PTHREAD_INHERIT_SCHED attribute is given,
4294 initialize the schedpolicy field of new_thread->p_start_args
4295 to that of the calling thread.
4296
2c68584c
UD
42971999-04-29 Ulrich Drepper <drepper@cygnus.com>
4298
4299 * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): cas
4300 instruction does not allow memory element to use offset.
4301
390500b1
UD
43021999-04-28 Ulrich Drepper <drepper@cygnus.com>
4303
4304 * manager.c (pthread_allocate_stack): Optimize initialization of new
4305 thread descriptor.
4306
89afc233
UD
4307 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_define_initialized):
4308 Don't use initializer since it is all zeroes.
4309 (__libc_once_define): Likewise.
4310
1e76ce9c
UD
43111999-04-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4312
4313 * sysdeps/arm/Implies: Removed since cmpxchg/no-cmpxchg
4314 doesn't exist anymore.
4315 * sysdeps/i386/Implies: Likewise.
4316 * sysdeps/m68k/Implies: Likewise.
4317 * sysdeps/mips/Implies: Likewise.
4318 * sysdeps/powerpc/Implies: Likewise.
4319 * sysdeps/sparc/sparc32/Implies: Likewise.
4320 * sysdeps/sparc/sparc64/Implies: Likewise.
4321
46a4682d
UD
43221999-04-15 Ulrich Drepper <drepper@cygnus.com>
4323
4324 * sysdeps/alpha/bits/semaphore.h: Removed.
4325 * sysdeps/powerpc/bits/semaphore.h: Removed.
4326 * sysdeps/pthread/cmpxchg/bits/semaphore.h: Removed.
4327 * sysdeps/pthread/no-cmpxchg/bits/semaphore.h: Removed.
4328 * Makefile (headers): Remove bits/semaphore.h.
4329
4330 * semaphore.h: Define _pthread_descr if necessary.
4331 Don't include limits.h. Define SEM_VALUE_MAX directly.
4332 Define SEM_FAILED.
4333 (sem_t): Protect element names with leading __.
4334 Add declarations for sem_close, sem_open, and sem_unlink.
4335 * semaphore.c: Adjust all functions for new element names.
4336 Define sem_close, sem_open, and sem_unlink.
4337 * Versions (libthread): Add sem_close, sem_open, and sem_unlink for
4338 GLIBC_2.1.1.
4339 * sysdeps/pthread/bits/pthreadtypes.h: Define _pthread_descr only if
4340 necessary.
4341
ea48e2c4
UD
43421999-03-16 H.J. Lu <hjl@gnu.org>
4343
4344 * specific.c (pthread_key_delete): Check th->p_terminated to see
4345 if the thread is running.
4346
670af0d9
UD
4347 * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set):
4348 Added to GLIBC_2.0 for libc.so.
4349
0543cd26
UD
43501999-02-12 H.J. Lu <hjl@gnu.org>
4351
4352 * Versions (__libc_current_sigrtmin, __libc_current_sigrtmax,
4353 __libc_allocate_rtsig): Added to GLIBC_2.1.
4354
4355 * internals.h (DEFAULT_SIG_RESTART): Removed.
4356 (DEFAULT_SIG_CANCEL): Removed.
4357
4358 * pthread.c (init_rtsigs, __libc_current_sigrtmin,
4359 __libc_current_sigrtmax, __libc_allocate_rtsig): New functions.
4360 (__pthread_sig_restart, __pthread_sig_cancel,
4361 __pthread_sig_debug): Initialized.
4362 (pthread_initialize): Call init_rtsigs () to initialize
4363 real-time signals.
4364
f5492334
UD
43651999-02-03 H.J. Lu <hjl@gnu.org>
4366
4367 * manager.c (__pthread_manager): Do block __pthread_sig_debug.
4368 Don't restart the thread which sent REQ_DEBUG.
4369 (pthread_start_thread): Check if __pthread_sig_debug > 0
4370 before debugging.
4371
4372 * pthread.c (__pthread_initialize_manager): Suspend ourself
4373 after sending __pthread_sig_debug to gdb instead of
4374 __pthread_sig_cancel.
4375
8f0302ee
UD
43761999-01-24 H.J. Lu <hjl@gnu.org>
4377
4378 * manager.c (__pthread_manager): Delete __pthread_sig_debug
4379 from mask if __pthread_sig_debug > 0.
4380 (pthread_handle_create): Increment __pthread_handles_num.
4381
4382 * manager.c (pthread_handle_create): Don't pass CLONE_PTRACE to clone.
4383 * pthread.c (__pthread_initialize_manager): Likewise.
4384
4385 * pthread.c (pthread_initialize): Use __libc_allocate_rtsig (1)
4386 instead of __libc_allocate_rtsig (2).
4387 (__pthread_initialize_manager): Send __pthread_sig_debug to gdb
4388 instead of __pthread_sig_cancel.
4389 (pthread_handle_sigdebug): Fix comments.
4390
82df2969
UD
43911999-01-21 Ulrich Drepper <drepper@cygnus.com>
4392
4393 * manager.c (pthread_allocate_stack): Set
4394 __pthread_nonstandard_stacks if user-specified stack is used.
4395
482eec0d
UD
43961999-01-16 Ulrich Drepper <drepper@cygnus.com>
4397
4398 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _LFS_ASYNCHRONOUS_IO,
4399 _LFS_LARGEFILE, _LFS64_LARGEFILE, and _LFS64_STDIO from Unix98.
4400
b92ad8d6
UD
44011999-01-07 Xavier Leroy <Xavier.Leroy@inria.fr>
4402
4403 * pthread.c: Use a third signal __pthread_sig_debug distinct
4404 from __pthread_sig_cancel to notify gdb when a thread is
4405 created
4406 * manager.c: Likewise.
4407 * internals.h: Likewise.
4408 * signals.c: The implementation of sigwait(s) assumed that
4409 all signals in s have signal handlers already attached.
4410 This is not required by the standard, so make it work
4411 also if some of the signals have no handlers.
4412
34992338
UD
44131999-01-05 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
4414
4415 * linuxthreads.texi: Remove pointers from first @node. Move old
4416 @node spec inside comment.
4417
118bad87
UD
44181998-12-31 Ulrich Drepper <drepper@cygnus.com>
4419
4420 * sysdeps/pthread/bits/stdio-lock.h: Define _IO_lock_lock and
4421 _IO_lock_unlock.
4422
c046e7a5
UD
44231998-12-29 Ulrich Drepper <drepper@cygnus.com>
4424
4425 * semaphore.c (sem_trywait): Don't forget to unlock the semaphore
4426 lock. Patch by Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>.
4427
361d49e6
UD
44281998-12-21 Ulrich Drepper <drepper@cygnus.com>
4429
4430 * manager.c: Threads now send __pthread_sig_cancel on termination.
4431 Change clone call and signal masks.
4432 * thread.c (pthread_handle_sigrestart): Remove special code for
4433 manager.
4434 (pthread_handle_sigcancel): In manager thread call
4435 __pthread_manager_sighandler.
4436 * sysdeps/i386/pt-machine.h (__compare_and_swap): Add memory clobber.
4437 * sysdeps/i386/i686/pt-machine.h: Likewise.
4438 Patches by Xavier Leroy.
4439
4260bc74
UD
44401998-12-14 Ulrich Drepper <drepper@cygnus.com>
4441
361d49e6 4442 * spinlock.c (__pthread_unlock): Don't crash if called for an
fbaf6e72
UD
4443 untaken mutex. Reported by Ruslan V. Brushkoff <rus@Snif.Te.Net.UA>.
4444
4260bc74
UD
4445 * Examples/ex6.c: Unbuffer stdout and reduce sleep time to reduce
4446 overall runtime.
4447
e3743e2f
UD
44481998-12-13 Ulrich Drepper <drepper@cygnus.com>
4449
4450 * Examples/ex3.c: Wait until all threads are started before
4451 searching for the number to avoid race condition on very fast
4452 systems.
4453
8632b240
UD
44541998-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4455
4456 * sysdeps/pthread/pthread.h: Remove __pthread_setcanceltype
2eda5d9b 4457 declaration since it's not needed.
8632b240
UD
4458
4459 * sysdeps/pthread/pthread.h: Move internal functions to ...
4460 * internals.h: ...here.
4461
a6ff34d7
UD
44621998-12-02 H.J. Lu <hjl@gnu.org>
4463
4464 * pthread.c (__pthread_sig_restart): Initiliaze to 0 if
4465 SIGRTMIN is defined.
4466 (__pthread_sig_cancel): Likewise.
4467
628a0aa1
UD
44681998-12-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4469
4470 * wrapsyscall.c: Include <sys/mman.h> for msync,
4471 <stdlib.h> for system and <termios.h> for tcdrain prototype.
4472 Correct msync declaration.
4473
348ed515
UD
44741998-11-29 Roland McGrath <roland@baalperazim.frob.com>
4475
4476 * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_define, __libc_tsd_get,
4477 __libc_tsd_set): New macros for new interface.
4478 * no-tsd.c: New file, provide uninitialized defns of
4479 __libc_internal_tsd_get and __libc_internal_tsd_set.
4480 * Makefile (routines): Add no-tsd.
4481
44821998-10-12 Roland McGrath <roland@baalperazim.frob.com>
4483
4484 * internals.h: Include <bits/libc-tsd.h>, not <bits/libc-lock.h>.
4485 * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
4486 __libc_internal_tsd_set): Move decls to ...
4487 * sysdeps/pthread/bits/libc-tsd.h: New file for __libc_internal_tsd_*
4488 declarations.
4489
4490 * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
4491 __libc_internal_tsd_set): Make these pointers to functions, not
4492 functions; remove #pragma weak decls for them.
4493 * specific.c (__libc_internal_tsd_get, __libc_internal_tsd_set):
4494 Define static functions and initialized pointers to them.
4495
97dac76c
UD
44961998-11-18 Ulrich Drepper <drepper@cygnus.com>
4497
4498 * Makefile (CFLAGS-mutex.c): Define as -D__NO_WEAK_PTHREAD_ALIASES.
4499 (CFLAGS-specific.c): Likewise.
4500 (CFLAGS-pthread.c): Likewise.
4501 (CFLAGS-ptfork.c): Likewise.
4502 (CFLAGS-cancel.c): Likewise.
4503 * sysdeps/pthread/bits/libc-lock.h: Don't mark __pthread_* functions
4504 as weak references if __NO_WEAK_PTHREAD_ALIASES is defined.
4505
4506 * mutex.c (pthread_mutex_init): Define as strong symbol.
4507 (pthread_mutex_destroy): Likewise.
4508 (pthread_mutex_trylock): Likewise.
4509 (pthread_mutex_lock): Likewise.
4510 (pthread_mutex_unlock): Likewise.
4511 (pthread_mutexattr_init): Likewise.
4512 (pthread_mutexattr_destroy): Likewise.
4513 (pthread_once): Likewise.
4514 * ptfork.c (pthread_atfork): Likewise.
4515 * specific.c (pthread_key_create): Likewise.
4516 (pthread_setspecific): Likewise.
4517 (pthread_getspecific): Likewise.
4518
8b7fb588
UD
45191998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
4520
4521 * linuxthreads.texi: Fix punctuation after xref.
4522
d2537a47
UD
45231998-11-10 H.J. Lu <hjl@gnu.org>
4524
4525 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine NR_OPEN
4526 if it is defined in <linux/limits.h>.
4527
d5cabaa4
UD
45281998-10-29 14:28 Ulrich Drepper <drepper@cygnus.com>
4529
4530 * spinlock.h (__pthread_trylock): Define inline.
4531 (__pthread_lock): Add extra parameter to declaration. Declare
4532 using internal_function.
4533 (__pthread_unlock): Declare using internal_function.
4534 * spinlock.c (__pthread_lock): Add new parameter. Use it instead
4535 of local variable self. Avoid recomputing self. Define using
4536 internal_function.
4537 (__pthread_trylock): Remove.
4538 (__pthread_unlock): Define using internal_function.
4539 * cancel.c: Adjust for __pthread_lock interface change. Use already
4540 computed self value is possible.
4541 * condvar.c: Likewise.
4542 * join.c: Likewise.
4543 * manager.c: Likewise.
4544 * mutex.c: Likewise.
4545 * pthread.c: Likewise.
4546 * rwlock.c: Likewise.
4547 * semaphore.c: Likewise.
4548 * signals.c: Likewise.
4549
c70ca1fa
UD
45501998-10-27 13:46 Ulrich Drepper <drepper@cygnus.com>
4551
4552 * sysdeps/pthread/pthread.h (struct _pthread_cleanup_buffer): Prepend
4553 __ to field names of the struct.
4554 * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_fastlock):
4555 Likewise.
4556 (pthread_attr_t): Likewise.
4557 (pthread_cond_t): Likewise.
4558 (pthread_condattr_t): Likewise.
4559 (pthread_mutex_t): Likewise.
4560 (pthread_mutexattr_t): Likewise.
4561 (pthread_rwlock_t): Likewise.
4562 (pthread_rwlockattr_t): Likewise.
4563 * attr.c: Adjust for pthread.h and pthreadtypes.h change.
4564 * cancel.c: Likewise.
4565 * condvar.c: Likewise.
4566 * manager.c: Likewise.
4567 * mutex.c: Likewise.
4568 * pthread.c: Likewise.
4569 * ptlongjmp.c: Likewise.
4570 * rwlock.c: Likewise.
4571 * spinlock.c: Likewise.
4572
a5d1d726
UD
45731998-10-09 Ulrich Drepper <drepper@cygnus.com>
4574
7ccc548b
UD
4575 * sysdeps/i386/pt-machine.h (get_eflags, set_eflags): Mark these
4576 also with PT_EI.
4577
a5d1d726
UD
4578 * sysdeps/i386/i686/pt-machine.h: Remove unused inline
4579 definitions.
4580
9a29bc37
UD
4581 * Makefile (libpthread-routines): Add pt-machine.
4582 * pt-machine.c: New file.
4583 * sysdeps/alpha/pt-machine.h: Define PT_EI as extern inline is not
4584 yet defined. Use PT_EI in extern inline definitions.
4585 * sysdeps/arm/pt-machine.h: Likewise.
4586 * sysdeps/i386/pt-machine.h: Likewise.
4587 * sysdeps/i386/i686/pt-machine.h: Likewise.
4588 * sysdeps/m68k/pt-machine.h: Likewise.
4589 * sysdeps/mips/pt-machine.h: Likewise.
4590 * sysdeps/powerpc/pt-machine.h: Likewise.
4591 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
4592 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
4593
c10bb795
UD
45941998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4595
4596 * semaphore.h: Include <sys/types.h> so that _pthread_descr
4597 is declared.
4598
45991998-09-15 David S. Miller <davem@pierdol.cobaltmicro.com>
4600
4601 * sysdeps/sparc/sparc32/pt-machine.h (INIT_THREAD_SELF): Add nr
4602 argument.
4603 * sysdeps/sparc/sparc64/pt-machine.h (INIT_THREAD_SELF): Likewise.
4604
46051998-09-12 14:24 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
4606
d364e525
UD
4607 * sysdeps/unix/sysv/linux/bits/sigthread.h: Add multiple inclusion
4608 guard.
c10bb795 4609
5e0889da
UD
46101998-09-02 11:08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4611
4612 * signals.c (sigaction): Check that sig is less than NSIG to avoid
4613 array index overflow.
4614
6796bc80
UD
46151998-09-06 10:56 Ulrich Drepper <drepper@cygnus.com>
4616
4617 * sysdeps/pthread/semaphore.h: New file.
4618
be935610
UD
46191998-09-06 09:08 Ulrich Drepper <drepper@cygnus.com>
4620
4621 * sysdeps/pthread/bits/libc-lock.h (enum __libc_tsd_key_t): Add
4622 _LIBC_TSD_KEY_DL_ERROR.
4623
bfce746a
UD
46241998-08-31 Ulrich Drepper <drepper@cygnus.com>
4625
7afab53d 4626 * sysdeps/i386/i686/pt-machine.h (testandset): Add memory clobber.
6a805a0b 4627 * sysdeps/i386/pt-machine.h: Likewise.
bfce746a
UD
4628 Suggested by Roland McGrath.
4629
75311719
UD
46301998-08-28 13:58 Ulrich Drepper <drepper@cygnus.com>
4631
4632 * internals.h: Also define THREAD_GETMEM_NC and THREAD_SETMEM_NC to
4633 access thread data with non-constant offsets.
4634 * specific.c: Use THREAD_GETMEM_NC and THREAD_SETMEM_NC where
4635 necessary.
4636
4637 * sysdeps/i386/useldt.h: Fix typo. Add THREAD_GETMEM_NC and
4638 THREAD_SETMEM_NC definitions.
4639
4640 * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM_NC and
4641 THREAD_SETMEM_NC.
4642 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
4643
00a2f9aa
UD
46441998-08-26 15:46 Ulrich Drepper <drepper@cygnus.com>
4645
4646 * internals.h: Define THREAD_GETMEM and THREAD_SETMEM to default if
4647 not already defined.
4648 (struct _pthread_descr_struct): Add p_self and p_nr field.
4649 * manager.c (__pthread_handles): Define second element to point
4650 to manager thread.
4651 (__pthread_handles_num): Initialize to 2.
4652 (__pthread_manager): Use INIT_THREAD_SELF with two arguments.
4653 (pthread_start_thread): Likewise.
4654 (pthread_handle_create): Start search for free slot at entry 2.
4655 Initialize new fields p_self and p_nr.
4656 Call __clone with CLONE_PTRACE if available.
4657 (pthread_free): Call FREE_THREAD_SELF if available.
4658 * pthread.c (__pthread_initial_thread): Initialize new fields.
4659 (__pthread_manager_thread): Likewise.
4660 (__pthread_initialize_manager): Call __clone with CLONE_PTRACE.
4661
4662 * cancel.c: Use THREAD_GETMEM and THREAD_SETMEM to access the
4663 elements of the thread descriptor.
4664 * condvar.c: Likewise.
4665 * errno.c: Likewise.
4666 * join.c: Likewise.
4667 * manager.c: Likewise.
4668 * pthread.c: Likewise.
4669 * ptlongjmp.c: Likewise.
4670 * semaphore.c: Likewise.
4671 * signals.c: Likewise.
4672 * specific.c: Likewise.
4673 * spinlock.c: Likewise.
4674
4675 * sysdeps/alpha/pt-machine.h (INIT_THREAD_SELF): Add extra parameter.
4676
4677 * sysdeps/i386/useldt.h: New file.
4678 * sysdeps/i386/i686/pt-machine.h: Show how to use this file.
4679
4680 * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM and
4681 THREAD_SETMEM using __thread_self.
4682 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
4683
ed1ac6a2
UD
46841998-08-24 Geoff Keating <geoffk@ozemail.com.au>
4685
4686 * spinlock.c (__pthread_lock): Reset p_nextwaiting to NULL if it
4687 turned out that we didn't need to queue after all.
4688
46891998-08-22 Geoff Keating <geoffk@ozemail.com.au>
4690
4691 * sysdeps/powerpc/pt-machine.h: Remove testandset, it's not used
4692 and wastes space; correct types.
4693
cf0fd016
UD
46941998-08-08 11:18 H.J. Lu <hjl@gnu.org>
4695
4696 * signals.c (sigaction): Handle NULL argument.
4697
d358336f
UD
46981998-08-04 Ulrich Drepper <drepper@cygnus.com>
4699
4700 * sysdeps/unix/sysv/linux/bits/sigthread.h: Use __sigset_t instead
4701 of sigset_t.
4702
7cabd57c
UD
47031998-08-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4704
4705 * Makefile (linuxthreads-version): Extract correct number from
4706 Banner.
4707
ddbf7fef
UD
47081998-07-29 Xavier Leroy <Xavier.Leroy@inria.fr>
4709
4710 * Banner: Bump version number to 0.8
4711 * FAQ.html: Many updates, in particular w.r.t. debugging.
4712 * manager.c: Support for non-default stacksize for
4713 LinuxThreads-allocated stacks;
4714 don't use guard pages for stacks with default size, rely on
4715 rlimit(RLIMIT_STACK) instead (it's cheaper).
4716 * attr.c: Likewise.
4717 * cancel.c: Use __pthread_sig_cancel and __pthread_sig_restart
4718 everywhere instead of PTHREAD_SIG_CANCEL and PTHREAD_SIG_RESTART.
4719 * condvar.c: Likewise.
4720 * internals.h: Likewise.
4721 * restart.h: Likewise.
4722 * signals.c: Likewise.
4723 * pthread.c: Likewise; set rlimit(RLIMIT_STACK) as we need it.
4724
6c202c68
UD
47251998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4726
4727 * weaks.c: Define pthread_mutexattr_[sg]ettype instead of
4728 __pthread_mutexattr_[sg]ettype. Add more weak aliases.
4729 * Versions: Put __pthread_mutexattr_settype under version
4730 GLIBC_2.0. Don't export __pthread_mutexattr_setkind_np and
4731 __pthread_mutexattr_gettype.
4732
47331998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4734
4735 * sysdeps/pthread/bits/libc-lock.h: Make
4736 __pthread_mutexattr_settype weak. Don't make
4737 __pthread_mutexattr_setkind_np weak.
4738
50304ef0
UD
47391998-07-16 10:52 Ulrich Drepper <drepper@cygnus.com>
4740
4741 * manager.c (pthread_handle_create): Check whether sched_setscheduler
4742 call can succeed here.
4743
4744 * mutex.c: Define __pthread_mutexattr_settype and make
4745 __pthread_mutexattr_setkind_np an alias.
4746 Likewise for __pthread_mutexattr_gettype.
4747
47481998-07-15 11:00 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
4749
4750 * attr.c (pthread_attr_setschedpolicy): Don't check whether caller
4751 is root.
4752
c764b9a7
UD
47531998-07-14 19:38 Ulrich Drepper <drepper@cygnus.com>
4754
4755 * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_end.
4756
ceb27555
UD
47571998-07-11 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4758
4759 * Examples/ex6.c: Include <unistd.h> for usleep.
4760
b1209f90
UD
47611998-06-13 11:04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4762
4763 * Examples/ex4.c (main): Use exit, not pthread_exit.
4764
6077fe6e
UD
47651998-07-09 13:39 Ulrich Drepper <drepper@cygnus.com>
4766
4767 * Versions: Add __pthread_mutexattr_gettype and
4768 __pthread_mutexattr_settype.
4769 * lockfile.c: Use __pthread_mutexattr_settype instead of
4770 __pthread_mutexattr_setkind_np.
4771 * mutex.c: Define __pthread_mutexattr_gettype and
4772 __pthread_mutexattr_settype.
4773 * weak.c: Likewise.
e918a7fe
UD
4774 * sysdeps/pthread/pthread.h: Declare __pthread_mutexattr_gettype and
4775 __pthread_mutexattr_settype.
4776 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init_recursive):
4777 Use __pthread_mutexattr_settype.
6077fe6e 4778
4bae5567
UD
47791998-07-08 22:26 Ulrich Drepper <drepper@cygnus.com>
4780
4781 * Versions: Add pthread_mutexattr_gettype, pthread_mutexattr_settype.
4782 * mutex.c: Define weak alias pthread_mutexattr_gettype and
4783 pthread_mutexattr_settype.
4784 * sysdeps/pthread/pthread.h: Declare these functions.
4785 Move pthread_sigmask and pthread_kill declaration in separate header.
4786 * sysdeps/unix/sysv/linux/bits/sigthread.h: New file.
4787
0302fece
UD
47881998-07-07 15:20 Ulrich Drepper <drepper@cygnus.com>
4789
4790 * Makefile: Add rules to compile and run tests.
4791 * Examples/ex1.c: Little changes to fix warnings.
4792 * Examples/ex2.c: Likewise.
4793 * Examples/ex3.c: Likewise.
4794 * Examples/ex4.c: Likewise.
4795 * Examples/ex5.c: Likewise.
4796 * Examples/ex6.c: New file.
4797
77ccaba1
UD
47981998-07-05 11:54 Ulrich Drepper <drepper@cygnus.com>
4799
6777b467 4800 * Versions: Add pthread_attr_init to GLIBC_2.1 version in libc.
77ccaba1 4801
ba9234d9
UD
48021998-07-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4803
4804 * attr.c: Include <string.h>.
4805
d64fae6a
UD
48061998-06-30 11:47 Ulrich Drepper <drepper@cygnus.com>
4807
4808 * attr.c: Include errno.h. Use memcpy to copy sched_param.
4809 * internals.h: Include limits.h.
4810 * manager.c: Use memcpy to copy sched_param.
4811 * ptfork.c: Include errno.h.
4812 * pthread.c: Likewise.
4813 * semaphore.c: Likewise.
4814 * specific.c: Likewise.
4815 * spinlock.h: Likewise.
4816 * sysdeps/pthread/pthread.h: Include only allowed headers. Move
4817 type definition to ...
4818 * sysdeps/pthread/bits/pthreadtypes.h: ...here. New file.
4819
fdacb17d
UD
48201998-06-29 12:34 Ulrich Drepper <drepper@cygnus.com>
4821
4822 * sysdeps/pthread/pthread.h: Use __PMT not __P for function pointers.
4823
4824 * sysdeps/pthread/pthread.h: Define various PTHREAD_* symbols also
4825 as macros as demanded in POSIX.1, Annex C.
4826
48271998-06-29 12:29 Ulrich Drepper <drepper@cygnus.com>
4828
4829 * internals.h (struct pthread_request): For free use pthread_t
4830 instead of pthread_descr.
4831 * join.c (pthread_join): Pass thread_id, not th to manager.
4832 (pthread_detach): Likewise.
4833 * manager.c (__pthread_manager): Except thread ID in FREE_REQ case.
4834 (pthread_exited): Remove detached queue code.
4835 (pthread_handle_free): Expect thread ID parameter and use it to
4836 validate the thread decsriptor. Don't use detached queue.
4837 Patches by Xavier Leroy.
4838
48391998-06-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4840
4841 * libpthread.map: Export accept, longjmp, sigaction, siglongjmp,
4842 _IO_flockfile, _IO_ftrylockfile, _IO_funlockfile,
4843 __pthread_atfork, __pthread_key_create, __pthread_once.
4844 * internals.h: Doc fix.
4845 * pthread.c (__pthread_initialize): Define again.
4846
e138a800
UD
48471998-06-26 Ulrich Drepper <drepper@cygnus.com>
4848
026d5011
UD
4849 * manager.c (pthread_exited): If thread is not detached put it on
4850 special list.
4851 (pthread_handle_free): If thread is not on list with living threads
4852 search on list with detached threads.
4853
b195f6bc
UD
4854 * sysdeps/pthread/pthread.h (PTHREAD_RWLOCK_INITIALIZER): Correct
4855 for new definition of pthread_rwlock_t.
4856
e138a800
UD
4857 * spinlock.c: Correct test whether to compile
4858 __pthread_compare_and_swap or not.
4859
3387a425
UD
48601998-06-25 19:27 Ulrich Drepper <drepper@cygnus.com>
4861
4862 * attr.c: Finish user stack support. Change locking code to be safe
4863 in situations with different priorities.
4864 * cancel.c: Likewise.
4865 * condvar.c: Likewise.
4866 * internals.h: Likewise.
4867 * join.c: Likewise.
4868 * manager.c: Likewise.
4869 * mutex.c: Likewise.
4870 * pthread.c: Likewise.
4871 * ptlongjmp.c: Likewise.
4872 * queue.h: Likewise.
4873 * rwlock.c: Likewise.
4874 * semaphore.c: Likewise.
4875 * semaphore.h: Likewise.
4876 * signals.c: Likewise.
4877 * spinlock.c: Likewise.
4878 * spinlock.h: Likewise.
75c3a84f 4879 * sysdeps/pthread/pthread.h: Likewise.
df4099e8 4880 Patches by Xavier Leroy.
3387a425 4881
0ca7e46e 4882 * sysdeps/i386/i686/pt-machine.h: New file.
75c3a84f 4883
3387a425
UD
48841998-06-25 Ulrich Drepper <drepper@cygnus.com>
4885
4886 * sysdeps/pthread/pthread.h: Make [sg]et_stacksize and
4887 [sg]et_stackaddr prototypes always available.
4888
4889 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
4890 _POSIX_THREAD_ATTR_STACKSIZE and _POSIX_THREAD_ATTR_STACKADDR.
4891
d47aac39
UD
48921998-06-24 Ulrich Drepper <drepper@cygnus.com>
4893
4894 * manager.c (pthread_free): Undo patch from 980430.
4895 Reported by David Wragg <dpw@doc.ic.ac.uk>.
4896
69f234e8
UD
48971998-06-09 15:07 Ulrich Drepper <drepper@cygnus.com>
4898
4899 * manager.c: Define __pthread_manager_adjust_prio and use it to
4900 increase priority when needed.
4901 * internals.h: Add prototype for __pthread_manager_adjust_prio.
4902 * mutex.c: Optimize mutexes to wake up only one thread.
768cbca8 4903 * pthread.c: Move PID of manager for global variable in structure
69f234e8
UD
4904 element.
4905 Patches by Xavier Leroy.
4906
c0fb8a56
UD
49071998-06-07 13:47 Ulrich Drepper <drepper@cygnus.com>
4908
4909 * sysdeps/pthread/bits/libc-lock.h: Optimize cleanup handlers a bit.
4910
c6bd526f
UD
49111998-06-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4912
4913 * attr.c: Correct typo.
4914
f9119f49
UD
49151998-05-01 Ulrich Drepper <drepper@cygnus.com>
4916
4917 * manager.c (pthread_free): Unmap guard before the stack.
4918 Patch by Matthias Urlichs.
4919
3dd2c3e2
UD
49201998-04-30 Ulrich Drepper <drepper@cygnus.com>
4921
4922 * manager.c (pthread_free): Detect already free child.
4923 Patch by Xavier Leroy, reported by Matthias Urlichs.
4924
0111b224
UD
49251998-04-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4926
4927 * Makefile (linuxthreads-version): Renamed back from
4928 libpthread-version.
4929
f12944ec
UD
49301998-04-21 Ulrich Drepper <drepper@cygnus.com>
4931
26e119f1 4932 * ptlongjmp.c: Add prototypes for __libc_siglongjmp and
f12944ec
UD
4933 __libc_longjmp.
4934
8619129f
UD
49351998-04-20 14:55 Ulrich Drepper <drepper@cygnus.com>
4936
4937 * Makefile (libpthread-routines): Add ptlongjmp and spinlock.
4938 * internals.h: Add definitions for new spinlock implementation.
4939 * ptlongjmp.c: New file.
4940 * spinlock.c: New file.
4941 * spinlock.h (acquire): Don't reschedule using __sched_yield, use
4942 new function __pthread_acquire to prevent deadlocks with thread
4943 with different priorities.
4944 Patches by Xavier Leroy <Xavier.Leroy@inria.fr>.
4945
52cda958
UD
49461998-03-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4947
4948 * manager.c (__pthread_manager): Reduce first argument to select
4949 to include just the needed file descriptor.
4950
48fc3dd2
UD
49511998-03-17 00:06 Ulrich Drepper <drepper@cygnus.com>
4952
4953 * manager.c: Fix last patch which caused core dumps.
4954
4955 * pthread.c: Correctly handle missing SIGRTMIN.
4956
f649c201
UD
49571998-03-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4958
4959 * libpthread.map: Add __libc_internal_tsd_get and
4960 __libc_internal_tsd_set. Add missing cancelable functions. Export
4961 libc internal versions of the cancelable functions.
4962
14c44e2e
UD
49631998-03-13 16:51 Ulrich Drepper <drepper@cygnus.com>
4964
4965 * weaks.c: Define pthread_attr_init as GLIBC_2.0 and GLIBC_2.1.
4966
5d409851
UD
49671998-03-13 00:46 Ulrich Drepper <drepper@cygnus.com>
4968
4969 * attr.c: Implement pthread_attr_[gs]etguardsize,
4970 pthread_attr_[gs]setstackaddr, pthread_attr_[gs]etstacksize.
4971 Change pthread_attr_init to have two interfaces.
4972 * internals.h (struct _pthread_descr_struct): Add new fields for
4973 above functions.
4974 * libpthread.map: Add names in GLIBC_2.1 section.
4975 * manager.c (pthread_handle_create): Implement guardsize and
4976 user stack.
4977 (pthread_free): Likewise.
4978 * pthread.c (pthread_create): Add new interface for changed
4979 pthread_attr_t.
4980 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
4981 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add definition of
4982 PTHREAD_STACK_MIN.
4983
5afdca00
UD
49841998-03-11 00:42 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
4985
5d409851
UD
4986 * manager.c: Enable resetting of the thread scheduling policy
4987 to SCHED_OTHER when the parent thread has a different one.
5afdca00
UD
4988
49891998-02-01 13:51 Ulrich Drepper <drepper@cygnus.com>
4990
4991 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
4992 _POSIX_ASYNCHRONOUS_IO.
4993
4994 * sysdeps/pthread/pthread.h: Define bits for Unix98 variants of
4995 mutexes.
4996 * mutex.c: Implement new mutex types.
4997
4998 * internals.h: Include <signal.h>.
4999
5000 * libpthread.map: Add __erno_location and __h_errno_location.
5001
5002 * errno.c: Return pointer to variable actually in use. This might
5003 not be the one in the thread structure.
5004 * internals.h (struct _pthread_descr_struct): Add new fields p_errnop
5005 and p_h_errnop.
5006 * manager.c (__pthread_manager): Set p_errnop and p_h_errnop member
5007 of manager thread structure.
5008 (pthread_handle_create): Set p_errnop and p_h_errnop members for new
5009 thread.
5010 * pthread.c: Adapt initializer for thread structures.
5011 (__pthread_initial_thread): Set p_errnop and p_h_errnop member.
5012 (__pthread_reset_main_thread): Reset p_errnop and p_h_errnop of
5013 current thread to global variables.
5014
50151998-01-31 17:27 Ulrich Drepper <drepper@cygnus.com>
5016
5017 * rwlock.c: New file.
5018 * Makefile (libpthread-routines): Add rwlock.
5019 * sysdeps/pthread/pthread.h: Define data structures and declare
5020 functions.
5021 * libpthread.map: Add new functions.
5022
50231997-12-18 13:50 Philip Blundell <pb@nexus.co.uk>
5024
5025 * sysdeps/arm/pt-machine.h: New file; add ARM support.
5026 * sysdeps/arm/Implies: likewise.
5027 * README: Document it.
5028
50291997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5030
5031 * signals.c: Remove unneeded initializer for sigwaited, saving a
5032 warning.
5033
50341997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5035
5036 * semaphore.c (sem_init): Set sem_spinlock only if available.
5037
50381997-12-04 01:48 Ulrich Drepper <drepper@cygnus.com>
5039
5040 * mutex.c: Implement PTHREAD_MUTEX_CHECKERROR.
5041 * sysdeps/pthread/pthread.h: Define PTHREAD_MUTEX_CHECKERROR.
5042
5043 * Makefile: Update from LinuxThreads 0.7.
5044 * internals.h. Likewise.
5045 * manager.c: Likewise.
5046 * mutex.c: Likewise.
5047 * pthread.c: Likewise.
5048 * signals.c: Likewise.
5049 * specific.c: Likewise.
5050 * Examples/ex3.c: Likewise.
5051
50521997-11-20 18:13 Ulrich Drepper <drepper@cygnus.com>
5053
5054 * pthread.c (__pthread_reset_main_thread): Close pipe only if still
5055 open.
5056
50571997-10-29 05:38 Ulrich Drepper <drepper@cygnus.com>
5058
5059 * wrapsyscall.c: Add socket functions which are also cancelation
5060 points.
5061
50621997-10-19 21:40 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
5063
5064 * specific.c (__libc_internal_tsd_set, __libc_internal_tsd_get):
5065 New functions for fast thread specific data within libc.
5066
5067 * internals.h: Add new array p_libc_specific to struct
5068 _pthread_descr_struct.
5069
5070 * sysdeps/pthread/bits/libc-lock.h: Declare new functions.
5071
50721997-10-13 05:39 Ulrich Drepper <drepper@cygnus.com>
5073
5074 * semaphore.h: Add __BEGIN_DECLS/__END_DECLS.
5075 Reported by Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
5076
50771997-08-29 03:05 Ulrich Drepper <drepper@cygnus.com>
5078
5079 * internals.h (struct _pthread_descr_struct): Add definitions for
5080 two-level specific key handling.
5081 * manager.c (pthread_handle_create): Initialize specific memory array.
5082 * specific.c: Implement two-level key handling.
5083 * weaks.c: Don't provide dummy key handling.
5084 * sysdeps/pthread/bits/libc-lock.h: Typedef __libc_lock_t (no #define).
5085 Add definition of __libc_key_t.
5086 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define PTHREAD_KEYS_MAX
5087 as 1024.
5088 Add definition of _POSIX_THREAD_DESTRUCTOR_ITERATIONS and
5089 PTHREAD_DESTRUCTOR_ITERATIONS.
5090
5091 * manager.c (pthread_handle_create): Compare mmap result with
5092 MAP_FAILED.
5093
5094 * ptfork.c: Rename to __pthread_atfork and make old name a weak alias.
5095 * sysdeps/pthread/bits/pthread.h: Add prototype for __pthread_atfork.
5096
50971997-08-22 19:04 Richard Henderson <rth@cygnus.com>
5098
5099 sysdeps/sparc -> sysdeps/sparc/sparc32
5100 sysdeps/sparc64 -> sysdeps/sparc/sparc64
5101
5102 * internals.h: Change definition of THREAD_SELF to be an expression,
5103 not a statement that did a return.
5104 * sysdeps/alpha/pt-machine.h (THREAD_SELF): Update accordingly.
5105 * sysdeps/sparc/sparc32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
5106 Follow Solaris and use a "system reserved" register (%g6) to hold
5107 the thread descriptor.
5108 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
5109
51101997-08-03 00:09 Ulrich Drepper <drepper@cygnus.com>
5111
5112 * mutex.c: Correct pthread_once. Patch by Xavier Leroy.
5113 * sysdeps/pthread/pthread.h: Add prototype for __pthread_once.
5114 * sysdeps/pthread/bits/pthread.h: Add macros for __libc_once.
5115
5116 * semaphore.c: Include spinlock.h only when needed.
5117
5118 * specific.c (__pthread_setsepcific, __pthread_getspecific): Reject
5119 keys for entries not in use.
5120
5121 * weaks.c: Implement key handling functions for real.
5122
51231997-06-29 01:04 Richard Henderson <richard@gnu.ai.mit.edu>
5124
5125 Initial sparc64-linux support:
d364e525
UD
5126 * sysdeps/sparc64/Implies: New file.
5127 * sysdeps/sparc64/pt-machine.h: Likewise.
5afdca00
UD
5128
51291997-06-29 00:48 Ulrich Drepper <drepper@cygnus.com>
5130
5131 * semaphore.c: Include spinlock.h at correct place.
5132 Patch by HJ Lu.
5133
51341997-06-13 10:06 Richard Henderson <rth@tamu.edu>
5135
5136 The Great Bit File Move:
5137 * sysdeps/alpha/semaphorebits.h: -> .../bits/semaphore.h.
5138 * sysdeps/powerpc/semaphorebits.h: Likewise.
5139 * sysdeps/pthread/cmpxchg/semaphorebits.h: Likewise.
5140 * sysdeps/pthread/no-cmpxchg/semaphorebits.h: Likewise.
5141 * sysdeps/pthread/libc-lock.h: -> bits/
5142 * sysdeps/pthread/stdio-lock.h: Likewise.
5143 * sysdeps/unix/sysv/linux/local_lim.h: Likewise.
5144 * sysdeps/unix/sysv/linux/posix_opt.h: Likewise.
5145 * semaphore.h: Likewise.
5146 * sysdeps/pthread/pthread.h: Likewise.
5147
5148 * lockfile.c: <foo.h> -> <bits/foo.h>.
5149 * semaphore.h: Likewise.
5150
5151 * Makefile: (headers): foo.h -> bits/foo.h.
5152 * sysdeps/pthread/Makefile: Likewise.
5153
51541997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5155
5156 * semaphore.c (sem_init): Set sem_spinlock only if available.
5157
5158 * sysdeps/m68k/pt-machine.h (testandset, __compare_and_swap): Fix
5159 asm constraints.
5160
51611997-04-09 03:00 Ulrich Drepper <drepper@cygnus.com>
5162
5163 Update from LinuxThreads 0.6.
5164
5165 * attr.c (pthread_attr_getdetachstate): Use __sched_get_priority_max
5166 and __sched_get_priority_min instead of names without `__'.
5167
5168 * manager.c: Rewrite large parts to implement opaque pthread_t.
5169
5170 * cancel.c: Adapt for opaque pthread_t type.
5171 * condvar.c: Likewise.
5172 * errno.c: Likewise.
5173 * join.c: Likewise.
5174 * mutex.c: Likewise.
5175 * pthread.c: Likewise.
5176 * signals.c: Likewise.
5177 * specific.c: Likewise.
5178 * restart.h: Likewise.
5179 * queue.h: Likewise.
5180 * Examples/ex3.c: Likewise.
5181 * Examples/ex4.c: Likewise.
5182 * sysdeps/pthread/pthread.h: Likewise.
5183
5184 * pthread.c: Accumulate time for all threads in thread manager.
5185
5186 * semaphore.c: Implement fallback implementation for architectures
5187 sometimes missing compare-exchange operations.
5188
5189 * cancel.c (pthread_cancel): Validate handle argument.
5190 * join.c (pthread_join): Likewise.
5191 (pthread_detach): Likewise.
5192 * signals.c (pthread_kill): Likewise.
5193
5194 * spinlock.h (acquire): Use __sched_yield not sched_yield.
5195
5196 * queue.h (enqueue): Enqueue thread according to priority.
5197
5198 * internals.c (struct pthread_start_args): New struct for passing
5199 args to cloning function.
5200 (struct _pthread): Rename to _pthread_descr_struct and adapt for
5201 opaque pthread_t.
5202
5203 * Examples/Makefile (clean): Pass -f option to rm.
5204
5205 * sysdeps/i386/pt-machine.h: Add check for compare-exchange instruction
5206 and define TEST_FOR_COMPARE_AND_SWAP.
5207 * sysdeps/i386/i486/pt-machine.h: Removed.
5208
5209 * sysdeps/unix/sysv/linux/local_lim.h (PTHREAD_THREADS_MAX): Increase
5210 to 1024.
5211
52121997-04-04 16:38 Ulrich Drepper <drepper@cygnus.com>
5213
5214 * restart.h (suspend): Clear p_signal before suspending.
5215 (suspend_with_cancellation): Likewise.
5216 Patch by Xavier Leroy <Xavier.Leroy@inria.fr>.
5217
5218 * weaks.c: Make __pthread_key_create return 1.
5219 * sysdeps/pthread/libc-lock.h: Define __libc_key_create,
5220 __libc_getspecific, __libc_setspecific, and __libc_key_t.
5221 * sysdeps/pthread/stdio-lock.h: Don't care for implementation not
5222 using libio.
5223
52241997-03-19 15:13 Miguel de Icaza <miguel@nuclecu.unam.mx>
5225
5226 * sysdeps/sparc/pt-machine (RELEASE): Fix.
5227
52281997-03-01 07:55 Geoff Keating <geoffk@ozemail.com.au>
5229
5230 * sysdeps/powerpc/Implies: Added.
5231 * sysdeps/powerpc/pt-machine.h: Added.
5232 * sysdeps/powerpc/semaphorebits.h: Added.
5233
52341997-01-22 01:22 Ulrich Drepper <drepper@cygnus.com>
5235
d364e525 5236 * pthread.c (__pthread_initial_thread): Correct
5afdca00
UD
5237 initializer.
5238 (__pthread_manager_thread): Likewise.
5239 Reported by Andreas Jaeger.
5240
52411997-01-18 22:15 Richard Henderson <rth@tamu.edu>
5242
5243 Since sigset_t no longer fits in a register, we can't pass in the
5244 thread's initial mask so easily. Take this opportunity to simplify
5245 the clone implementation by only accepting a single void* argument.
5246
d364e525
UD
5247 * manager.c (__pthread_manager): Put thread vitals in the thread
5248 struct instead of as arguments through clone.
5afdca00 5249 (pthread_start_thread): Look for them there.
d364e525 5250 * internals.h (struct _pthread): Add p_initial_fn,
5afdca00 5251 p_initial_fn_arg, p_initial_mask. Fix __pthread_manager proto.
d364e525 5252 * pthread.c (pthread_initialize_manager): Revise clone invocation.
This page took 0.718559 seconds and 5 git commands to generate.