]> sourceware.org Git - glibc.git/blame - linuxthreads/ChangeLog
Update.
[glibc.git] / linuxthreads / ChangeLog
CommitLineData
30e4b3f4
UD
12003-03-06 Ulrich Drepper <drepper@redhat.com>
2
3 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
4 recent kernels.
5
ad0e8eb0
UD
62003-03-02 Ulrich Drepper <drepper@redhat.com>
7
885bafa1
UD
8 * sysdeps/pthread/timer_create.c (timer_create): Return correct
9 error for CPU clocks.
10
ad0e8eb0
UD
11 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
12 _POSIX_MONOTONIC_CLOCK.
e5497892 13 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
ad0e8eb0 14
bb0ddc2f
RM
152003-03-01 Roland McGrath <roland@redhat.com>
16
17 * sysdeps/powerpc/powerpc64/pt-machine.h
18 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
19 New macros.
20 * sysdeps/powerpc/tls.h: Don't define those here.
21
22 * sysdeps/powerpc/tls.h [! USE_TLS && !__powerpc64__]: Define
23 tcbhead_t with multiple_threads member.
24 [USE_TLS] (tcbhead_t): Define minimal one-word version.
25 [USE_TLS && !__powerpc64__] (TLS_MULTIPLE_THREADS_IN_TCB): Define.
26 * sysdeps/powerpc/tcb-offsets.sym [USE_TLS]: Use tls.h macros to
27 derive thread register offset of p_multiple_threads member.
28
29 * descr.h (struct _pthread_descr_struct) [!USE_TLS || !TLS_DTV_AT_TP]:
30 Conditionalize p_header member on this.
31 [TLS_MULTIPLE_THREADS_IN_TCB]: Add p_multiple_threads alternatively.
32 * sysdeps/ia64/tls.h [USE_TLS] (TLS_MULTIPLE_THREADS_IN_TCB): Define.
33 * sysdeps/sh/tls.h: Likewise.
34 * sysdeps/ia64/tcb-offsets.sym [USE_TLS]: Use p_multiple_threads.
35 * sysdeps/sh/tcb-offsets.sym: Likewise.
36 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
37 (SINGLE_THREAD_P): Likewise.
38 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
39 (SINGLE_THREAD_P): Likewise.
40 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
41 (SINGLE_THREAD_P): Likewise.
42 * pthread.c (__pthread_initialize_manager): Likewise.
43 * manager.c (pthread_handle_create): Likewise.
73a061bb
RM
44
45 * sysdeps/powerpc/tls.h [HAVE_TLS_SUPPORT]: Define USE_TLS and all
46 related macros.
47
afafddab
RM
482003-01-31 Steven Munroe <sjmunroe@us.ibm.com>
49
e42e757e 50 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S [SHARED]:
afafddab
RM
51 Conditionalize .toc section magic on this.
52
e8783fd5
RM
532003-02-21 Roland McGrath <roland@redhat.com>
54
55 * cancel.c (__pthread_perform_cleanup): Call __libc_thread_freeres
56 instead of __rpc_thread_destroy.
57
6f50cb00
UD
582003-02-21 Jakub Jelinek <jakub@redhat.com>
59
60 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Call
61 __fork instead of branching to it if BROKEN_SPARC_WDISP22.
62 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
63 Fix typo.
64 * sysdeps/unix/sysv/linux/sparc/Makefile (specs): Add ./ prefix
65 to crti.o and crtn.o.
66 * sysdeps/unix/sysv/linux/x86_64/Makefile (specs): Likewise.
67
59fed0e2
RM
682003-02-21 Roland McGrath <roland@redhat.com>
69
70 * Makefile (install-lib-ldscripts): New variable.
71
05856976
UD
722003-02-20 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
73
74 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Avoid short
75 interprocedure branches.
76
ed22820f
UD
772003-02-19 Ulrich Drepper <drepper@redhat.com>
78
79 * specific.c (pthread_key_delete_helper): Don't use GETMEM, we
80 need the target thread's lock.
81
a5e34e04
UD
822003-02-17 Ulrich Drepper <drepper@redhat.com>
83
84 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
85 and LOGIN_NAME_MAX.
86
b2740a3b
UD
872003-02-17 Kevin B. Hendricks <kevin.hendricks@sympatico.ca>
88 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
89
90 * sysdeps/powerpc/Makefile: Handle tcb-offsets.sym.
91 * sysdeps/powerpc/tcb-offsets.sym: New file.
92 * sysdeps/powerpc/tls.h: New file.
93 * sysdeps/powerpc/powerpc32/pt-machine.h (FLOATING_STACKS): Define.
94 (ARCH_STACK_MAX_SIZE): Define.
95 (THREAD_SELF): Define.
96 (INIT_THREAD_SELF): Define.
97 (THREAD_GETMEM): Define.
98 (THREAD_GETMEM_NC): Define.
99 (THREAD_SETMEM): Define.
100 (THREAD_SETMEM_NC): Define.
101 (__thread_self): Declare.
102 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Adjust
103 for thread register.
104
7c6d00e6
UD
1052003-02-14 Steven Munroe <sjmunroe@us.ibm.com>
106
107 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
108 Check pthread_create existance, not __pthread_fork.
109
2067577c
UD
1102003-02-12 Ulrich Drepper <drepper@redhat.com>
111
112 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
113
e5ffa64a
UD
1142003-02-10 Jakub Jelinek <jakub@redhat.com>
115
116 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Check
117 pthread_create existance, not __pthread_fork.
118 * sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise.
119 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise.
120 * sysdeps/unix/sysv/linux/m68k/vfork.S (__vfork): Likewise.
121 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
122 Likewise.
123 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
124 * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise.
125 * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Likewise.
126 Add .weak pthread_create.
127 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Fix a typo.
128 Check pthread_create existance, not __pthread_fork.
129 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
130 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Branch to
131 __fork whenever libpthread.so is loaded.
132
df037172
AJ
1332003-02-09 Andreas Jaeger <aj@suse.de>
134
135 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h:
136 Rework: %r9 is destroyed by functions so don't use it as
137 temporary, align stack correctly, fix parameter for CDISABLE.
138
ae9ecd08
UD
1392003-02-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
140
141 * sysdeps/sh/Makefile: New file.
142 * sysdeps/sh/tcb-offsets.sym: Likewise.
143 * sysdeps/sh/tls.h: Don't include sysdep.h. Move include
144 of linuxthreads/descr.h after the definition of THREAD_SELF.
145 (tcbhead_t): Use IA64 type tcbhead_t for TLS case.
146 (TLS_TCB_SIZE): Set size of tcbhead_t.
147 (TLS_PRE_TCB_SIZE): Define.
148 (INSTALL_NEW_DTV): Set dtv of tcbhead_t structure instead of
149 a member of thread structure.
150 (THREAD_DTV): Likewise.
151 (TLS_INIT_TP_EXPENSIVE): Remove.
152 (TLS_INIT_TP): Set gbr register only.
153 (THREAD_SELF): New.
154 (INIT_THREAD_SELF): Likewise.
155 (NONTLS_INIT_TP): New.
156 * sysdeps/unix/sysv/linux/sh/pt-initfini.c (__fpscr_values):
157 Remove.
158 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Add
159 SYSCALL_INST_PAD macro after DO_CALL.
160 (SINGLE_THREAD_P): Fix non-PIC and TLS case so to read the
161 correct variable.
162 * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Branch to __fork
163 whenever libpthread.so is loaded.
164
bd62e50b
AS
1652003-02-08 Andreas Schwab <schwab@suse.de>
166
167 * sysdeps/unix/sysv/linux/m68k/vfork.S: Branch to __fork whenever
168 libpthread.so is loaded.
169
1f503475
UD
1702003-02-07 Ulrich Drepper <drepper@redhat.com>
171
172 * sysdeps/unix/sysv/linux/i386/vfork.S: Make sure
173 __ASSUME_VFORK_SYSCALL is not defined if the kernel headers have
174 no __NR_vfork definition.
175
65c68990
UD
1762003-02-07 Jakub Jelinek <jakub@redhat.com>
177
178 * tst-popen2.c: New test.
179 * Makefile (tests): Add tst-popen2.
180 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Branch to __fork
181 whenever libpthread.so is loaded.
182 * sysdeps/unix/sysv/linux/i386/vfork.S (__vfork): Likewise.
183 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Likewise.
184 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
1f503475
UD
185 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
186 Likewise.
65c68990
UD
187 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
188 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
189 * sysdeps/unix/sysv/linux/x86_64/vfork.S (__vfork): Likewise.
190
a88c9263
UD
1912003-02-05 Ulrich Drepper <drepper@redhat.com>
192
193 * sysdeps/pthread/bits/libc-lock.h (__libc_once): Set control
194 variable for non-libpthread case to the same value the
195 pthread_once function would use.
196
6900ded2
UD
1972003-02-03 Jakub Jelinek <jakub@redhat.com>
198
199 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): If
200 BROKEN_SPARC_WDISP22, handle SHARED the same way as non-SHARED.
201
85cb5803
AJ
2022003-02-04 Andreas Jaeger <aj@suse.de>
203
204 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: Do not use
205 multi-line strings.
206
886d5973
UD
2072003-01-30 Jakub Jelinek <jakub@redhat.com>
208
209 * sysdeps/s390/tls.h (TLS_INIT_TP): Return NULL, not 0.
210
567678b6
UD
2112003-01-30 Jakub Jelinek <jakub@redhat.com>
212
213 * sysdeps/alpha/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC,
214 THREAD_SETMEM, THREAD_SETMEM_NC): Avoid warnings about unused self
215 variable.
216 * sysdeps/ia64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
217 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
218 * sysdeps/s390/s390-32/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
219 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
220 * sysdeps/s390/s390-64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
221 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
222 * sysdeps/sh/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
223 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
224 * sysdeps/sparc/sparc32/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
225 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
226 * sysdeps/sparc/sparc64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
227 THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
228
e6ebd2e4
UD
2292003-01-27 Martin Schwidefsky <schwidefsky@de.ibm.com>
230
231 * sysdeps/s390/s390-32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
232 Define TLS versions.
233 * sysdeps/s390/s390-64/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
234 Likewise.
235 * sysdeps/s390/tls.h [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE,
236 TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE, TLS_TCB_ALIGN, TLS_TCB_AT_TP,
237 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_DTV):
238 Define.
239 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Use
240 branch with 32 bit offset.
241 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise.
242
62f29da7
UD
2432003-01-24 Jakub Jelinek <jakub@redhat.com>
244
245 * sysdeps/sparc/sparc32/pt-machine.h (__thread_self): Change to %g7,
246 as required by TLS ABI.
247 * sysdeps/sparc/sparc64/pt-machine.h (__thread_self): Likewise.
248 * sysdeps/sparc/tls.h [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE,
249 TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE, TLS_TCB_ALIGN, TLS_TCB_AT_TP,
250 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_DTV):
251 Define.
252 [HAVE_TLS_SUPPORT]: Include descr.h and sysdep.h.
253 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Use %g7
254 instead of %g6 for thread pointer.
255 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
256 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
257 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
258
e4e9446b
UD
2592003-01-25 Guido Guenther <agx@sigxcpu.org>
260
261 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
262 * sysdeps/unix/sysv/linux/mips/Makefile: New file.
263
d5b6c817
UD
2642003-01-20 Martin Schwidefsky <schwidefsky@de.ibm.com>
265
266 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Avoid non pc relative
267 reference to __fork.
268
0f0b7994
UD
2692003-01-17 Richard Henderson <rth@redhat.com>
270
271 * sysdeps/alpha/tls.h (tcbhead_t): Clarify second member.
272 (TLS_TCB_SIZE, TLS_TCB_ALIGN): Set for tcbhead_t.
273 (TLS_PRE_TCB_SIZE): New.
274 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Update for
275 new ia64-style thread pointer layout.
276 (THREAD_GETMEM, THREAD_GETMEM_NC): New.
277 (THREAD_SETMEM, THREAD_SETMEM_NC): New.
278 * sysdeps/unix/sysv/linux/alpha/vfork.S: Don't tail-call to __fork
279 if !SHARED.
280
7b7b9e70
UD
2812003-01-15 Jakub Jelinek <jakub@redhat.com>
282
283 * sysdeps/ia64/tls.h (tcbhead_t): Use the TLS ABI required layout
284 if USE_TLS only.
285 (NONTLS_INIT_TP): Revert last change.
286 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define to
287 offsetof (tcbhead_t, multiple_threads) if USE_TLS not defined.
288
850dcfca
UD
2892003-01-16 Jakub Jelinek <jakub@redhat.com>
290
291 * pthread.c (_pthread_initialize_minimal): Use
292 GL(dl_tls_dtv_slotinfo_list) != NULL to check whether TLS has
293 been already initialized.
294
a1f8ec97
UD
2952003-01-16 Jakub Jelinek <jakub@redhat.com>
296
297 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize head->sysinfo even
298 if not SHARED.
299
574b892e
UD
3002003-01-15 Jakub Jelinek <jakub@redhat.com>
301
302 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init,
303 __libc_lock_init_recursive): Initialize fields directly.
304
3052003-01-15 Jakub Jelinek <jakub@redhat.com>
306
307 * sysdeps/unix/sysv/linux/alpha/vfork.S (__vfork): Allow
308 __fork to be far away from __vfork ifndef SHARED.
309 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
310 Likewise.
311 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
312 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
313 Add a missing instruction.
314 * sysdeps/unix/sysv/linux/arm/vfork.S (__vfork): Conditionally
315 branch to __fork even if __NR_vfork is not defined.
316
3172003-01-14 Ulrich Drepper <drepper@redhat.com>
318
319 * tst-cancel-wrappers.sh: Allow .__*_asynccancel functions names
320 as well.
321
3222003-01-14 Steven Munroe <sjmunroe@us.ibm.com>
323
324 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
325
115bb61d
UD
3262003-01-14 Jakub Jelinek <jakub@redhat.com>
327
328 * sysdeps/unix/sysv/linux/ia64/vfork.S (JUMPTARGET): Remove.
329
db0a052c
UD
3302003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
331
332 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: Avoid
333 unterminated string literals.
334 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: Likewise.
335
3362003-01-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
337
338 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
339 (PSEUDO): Code reordering. Move CENABLE and CDISABLE literals from
340 PSEUDO_END to PSEUDO.
341 (PSEUDO_END): Remove.
342 (SINGLE_THREAD_P): Save an instruction.
343 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add missing
344 parameter to SINGLE_THREAD_P call.
345 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
346 Code reordering.
347
bf8a2877
AS
3482003-01-10 Andreas Schwab <schwab@suse.de>
349
350 * sysdeps/unix/sysv/linux/m68k/vfork.S: New file.
351
40212ce0
UD
3522003-01-10 Martin Schwidefsky <schwidefsky@de.ibm.com>
353
354 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Setup
355 backchain in pseudo_cancel. Minor code improvements.
356 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
357 Likewise.
358
3592003-01-10 Martin Schwidefsky <schwidefsky@de.ibm.com>
360
361 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
362 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
363
b398ae3c
UD
3642002-01-12 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
365
366 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
367
addb5f31
UD
3682002-01-09 Richard Henderson <rth@redhat.com>
369
370 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Assume only
371 ret follows pseudo, and thus avoid branch-to-branch in cancel
372 case. Use SYSCALL_ERROR_LABEL.
373
aff4519d
UD
3742003-01-11 Philip Blundell <philb@gnu.org>
375
376 * sysdeps/unix/sysv/linux/arm/vfork.S: New file.
377 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h (PSEUDO_RET):
378 Correctly unstack lr.
379 (UNDOARGS_5): Fix ordering of pushes and pops.
380 (SINGLE_THREAD_P_PIC): New.
381 (SINGLE_THREAD_P_INT): New.
382 (SINGLE_THREAD_P): Implement in terms of above. Restore lr if it
383 was stacked.
384 (PSEUDO): Use SINGLE_THREAD_P_INT.
385
3862003-01-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
387
388 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
389
3902003-01-11 Jakub Jelinek <jakub@redhat.com>
391
392 * sysdeps/ia64/tls.h (tcbhead_t): Change into dtv_t *, void *.
393 [HAVE_TLS_SUPPORT] (USE_TLS, TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN,
394 TLS_TCB_SIZE, TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, TLS_DTV_AT_TP,
395 INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV, TLS_INIT_TP, THREAD_SELF,
396 INIT_THREAD_SELF): Define.
397 [HAVE_TLS_SUPPORT]: Include descr.h.
398 (NONTLS_INIT_TP): Point __thread_self at the end of dummy
399 struct _pthread_descr_struct.
400 * sysdeps/ia64/pt-machine.h (THREAD_GETMEM, THREAD_GETMEM_NC,
401 THREAD_SETMEM, THREAD_SETMEM_NC): Define using THREAD_SELF,
402 not __thread_self.
403 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Adjust
404 computation.
405 * pthread.c (__pthread_initialize_minimal): Use tcbp, not self
406 for TCB pointer.
407 (__pthread_initialize_manager): Rename tcb to mgr.
408 Use tcbp for TCB pointer, if TLS_DTV_AT_TP set mgr to sizeof (struct
409 _pthread_descr) below tcbp, otherwise to tcbp.
410 * manager.c (pthread_handle_create): If TLS_DTV_AT_TP, set
411 new_thread to be below _dl_allocate_tls (). Adjust new_thread back
412 before freeing. Fix clone arguments if report_events and USE_TLS.
413 (pthread_free): Adjust th back before freeing.
414
4152003-01-10 Steven Munroe <sjmunroe@us.ibm.com>
416
417 * sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: Moved to ...
418 * sysdeps/unix/sysv/linux/powerpc/Makefile: ...here.
419 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New File.
420
29d9a17d
UD
4212003-01-09 Jakub Jelinek <jakub@redhat.com>
422
423 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
424 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
425 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
426 [__ASSEMBLER__] (SINGLE_THREAD_P): Remove trailing ;;.
427 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
428 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
429 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
430 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
431 * tst-popen.c: New test.
432 * Makefile (tests): Add tst-popen.
433
6aca81bb
UD
4342003-01-06 Jakub Jelinek <jakub@redhat.com>
435
436 * sysdeps/unix/sysv/linux/sigwait.c (do_sigwait): Add
437 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
438
bef1e42f
UD
4392003-01-06 Jakub Jelinek <jakub@redhat.com>
440
441 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use
442 PSEUDO_PREPARE_ARGS. Fix branch condition after SINGLE_THREAD_P.
443
52f3d213
UD
4442003-01-06 Philip Blundell <philb@gnu.org>
445
446 * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: New file.
447
4482003-01-06 Jakub Jelinek <jakub@redhat.com>
449
450 * internals.h (LIBC_CANCEL_HANDLED): Define.
451 * sysdeps/unix/sysv/linux/sigwait.c (LIBC_CANCEL_HANDLED): Add.
452 * signals.c (LIBC_CANCEL_HANDLED): Add.
453 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
454 * tst-cancel-wrappers.sh: Remove all exceptions.
455
456 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
457
c52a5fb9
AS
4582003-01-05 Andreas Schwab <schwab@suse.de>
459
c711d9d2
AS
460 * sysdeps/m68k/Makefile: New file, use -fPIC for nonshared
461 objects.
462
c52a5fb9
AS
463 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h (SINGLE_THREAD_P):
464 Fix for PIC.
465 (CENABLE): Likewise.
466 (CDISABLE): Likewise.
467
bbd17455
UD
4682003-01-05 Ulrich Drepper <drepper@redhat.com>
469
a73ab6df
UD
470 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
471 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
472
bbd17455
UD
473 * Makefile (libc.so-no-z-defs): Define to yes.
474
bdee30cf
UD
4752003-01-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
476
477 * sysdeps/sh/tls.h: Include dl-sysdep.h and stdint.h.
478 (tcbhead_t): Add multiple_threads member.
479 (TLS_INIT_TP_EXPENSIVE): Define.
480 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Don't use multi-line
481 strings. Remove unused code.
482 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
483
73e9ae88
UD
4842003-01-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
485
486 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
487 * sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile: New file.
488
a7f7b879
UD
4892003-01-04 Jakub Jelinek <jakub@redhat.com>
490
491 * internals.h (LIBC_THREAD_GETMEM, LIBC_THREAD_SETMEM): Define
492 even if NOT_IN_libc is defined.
493
00e58701
UD
4942003-01-05 Jakub Jelinek <jakub@redhat.com>
495
496 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
497 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
498 * sysdeps/s390/Makefile: New file.
499 * sysdeps/s390/tcb-offsets.sym: New file.
500 * sysdeps/s390/tls.h: New file.
501
75c43017
UD
5022003-01-03 Richard Henderson <rth@redhat.com>
503
504 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
505
1cb990bc
UD
5062003-01-03 Andreas Jaeger <aj@suse.de>
507
508 * sysdeps/pthread/bits/libc-tsd.h: Declare weak_extern functions.
509
733f25e6
UD
5102003-01-03 Jakub Jelinek <jakub@redhat.com>
511
512 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
513
bf293afe
UD
5142003-01-02 Ulrich Drepper <drepper@redhat.com>
515
516 * tst-cancel-wrappers.sh: Exclude sigwait.c as well, it does not have
517 cancellation tests.
518
5192003-01-02 Jakub Jelinek <jakub@redhat.com>
520
521 * internals.h (struct pthread_functions): Rename
522 ptr_pthread_cond_* fields to ptr___pthread_cond_*.
523 * pthread.c (pthread_functions): Adjust.
524 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
525 pthread_cond_*@GLIBC_2.0 compatibility symbols.
526 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
527 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
528 and pthread_cond_wait.
529
530 * sysdeps/pthread/bits/pthreadtypes.h (__pthread_cond_align_t): New
531 type.
532 (pthread_cond_t): Add __align member, shorten __padding.
533 * sysdeps/pthread/pthread.h (PHTREAD_COND_INITIALIZER): Initialize
534 __padding and __align too.
535
536 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call2): Add
537 __builtin_expect.
538 * sysdeps/pthread/sigaction.c: New file.
539 * sysdeps/unix/sysv/linux/raise.c: New file.
540 * sysdeps/unix/sysv/linux/sigwait.c: New file.
541 * sysdeps/unix/sysv/linux/fork.c (__pthread_fork): Protect
542 weak_extern with #ifndef SHARED.
543 * sysdeps/unix/sysv/linux/jmp-unwind.c (__pthread_cleanup_upto):
544 Likewise.
545 * signals.c (__sigaction): Renamed to...
546 (__pthread_sigaction): ... this.
547 (__sigaction): New strong alias, #ifdef SHARED only.
548 (sigaction): Protect with #ifdef SHARED.
549 (sigwait): Renamed to...
550 (__pthread_sigwait): ... this.
551 (sigwait): New strong alias, #ifdef SHARED only.
552 (raise): Renamed to...
553 (__pthread_raise): ... this.
554 (raise): New strong alias, #ifdef SHARED only.
555 * internals.h (__pthread_sigaction, __pthread_sigwait,
556 __pthread_raise): New prototypes.
557 (struct pthread_functions): Add ptr_pthread_sigaction,
558 ptr_pthread_sigwait, ptr_pthread_raise.
559 * pthread.c (pthread_functions): Renamed to...
560 (__pthread_functions): ... this. No longer static, no longer
561 SHARED only. Initialize ptr_pthread_sigaction, ptr_pthread_sigwait
562 and ptr_pthread_raise.
563 [SHARED] (ptr_pthread_functions): Change to &__pthread_functions.
564 * libc-cancellation.c (__pthread_thread_self): Remove weak_extern.
565 * ptfork.c (__fork, __vfork): Protect with #ifdef SHARED.
566 * ptlongjmp.c (siglongjmp, longjmp): Protect with #ifdef SHARED.
567
568 * Makefile (tests, tests-static): Add tst-cancel-static.
569 * tst-cancel-static.c: New test.
570
5712003-01-02 Jakub Jelinek <jakub@redhat.com>
572
573 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
574
05df18c3
UD
5752003-01-02 Ulrich Drepper <drepper@redhat.com>
576
577 * sysdeps/pthread/bits/pthreadtypes.h (pthread_cond_t): Add padding.
578 * condvar.c: Add symbol versioning. The compatibility versions
579 are the same as the change in the interface does not effect this
580 implementation.
581 * Versions [libpthread]: Add definitions for new pthread_cond_*
582 interfaces for version GLIBC_2.3.2.
583
6d6ee629
UD
5842002-12-31 Ulrich Drepper <drepper@redhat.com>
585
586 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
587 __register_atfork.
588 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
589 for __register_atfork.
590
416d2de6
UD
5912002-12-31 Jakub Jelinek <jakub@redhat.com>
592
a4baf360
UD
593 * sysdeps/i386/i686/pt-machine.h: Use __ASSEMBLER__ instead of
594 ASSEMBLER test macro.
595 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Likewise.
596 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
597 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Likewise.
598 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
599 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
600 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
601
602 * sysdeps/pthread/errno-loc.c (__errno_location): Add
603 libc_hidden_def.
604 * sysdeps/pthread/herrno-loc.c (__h_errno_location): Likewise.
605 * sysdeps/pthread/res-state.c (__res_state): Likewise.
606 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
607 __libc_current_sigrtmax): Likewise.
608 * Versions [libc] (GLIBC_PRIVATE): Remove __libc_internal_tsd_get,
609 __libc_internal_tsd_set, __libc_internal_tsd_address,
610 __libc_alloca_cutoff.
611 [libpthread] (GLIBC_PRIVATE): Remove __libc_internal_tsd_get,
612 __libc_internal_tsd_set, __libc_internal_tsd_address.
613
614 * sysdeps/pthread/list.h: Remove assert.h include.
615 * sysdeps/unix/sysv/linux/fork.c: Include <fork.h>, not "fork.h".
616
416d2de6
UD
617 * sysdeps/pthread/list.h: New file.
618 * sysdeps/unix/sysv/linux/jmp-unwind.c: New file.
619 * sysdeps/unix/sysv/linux/fork.c: New file.
620 * sysdeps/unix/sysv/linux/fork.h: New file.
621 * sysdeps/unix/sysv/linux/ia64/fork.h: New file.
622 * sysdeps/unix/sysv/linux/sparc/fork.h: New file.
623 * sysdeps/unix/sysv/linux/register-atfork.c: New file.
624 * sysdeps/unix/sysv/linux/unregister-atfork.c: New file.
625 * sysdeps/unix/sysv/linux/Makefile: New file.
626 * sysdeps/unix/sysv/linux/Versions: New file.
627 * ptlongjmp.c (pthread_cleanup_upto): Rename to...
628 (__pthread_cleanup_upto): ...this. Add targetframe argument,
629 use it instead of currentframe. No longer static.
630 (siglongjmp, longjmp): Remove pthread_cleanup_upto calls.
631 * internals.h (__pthread_cleanup_upto, __pthread_fork): New prototypes.
632 (struct pthread_functions): Add ptr_pthread_fork,
633 ptr_pthread_cleanup_upto.
634 * pthread.c (pthread_functions): Initialize ptr_pthread_fork and
635 ptr_pthread_cleanup_upto.
636 * ptfork.c: Include fork.h.
637 (struct handler_list, struct handler_list_block): Remove.
638 (pthread_atfork_lock, pthread_atfork_prepare, pthread_atfork_parent,
639 pthread_atfork_child): Remove.
640 (pthread_insert_list, __pthread_atfork, pthread_call_handlers): Remove.
641 (__pthread_fork): New function.
642 (__fork, __vfork): Call __libc_fork.
643 * Makefile (libpthread-routines): Add old_pthread_atfork.
644 (libpthread-nonshared): Add pthread_atfork.
645 (others): Depend on $(objpfx)libpthread_nonshared.a.
646 ($(objpfx)libpthread_nonshared.a): New rule.
647 (install): Depend on $(inst_libdir)/libpthread.so.
648 ($(inst_libdir)/libpthread.so, $(inst_libdir)/libpthread_nonshared.a):
649 New rules.
650 (tests): Depend on libpthread_nonshared.a too.
651 * old_pthread_atfork.c: New file.
652 * pthread_atfork.c: New file.
653 * Makeconfig (shared-thread-library): Include libpthread_nonshared.a
654 too.
655
8cac677c
UD
6562002-12-30 Jakub Jelinek <jakub@redhat.com>
657
658 * forward.c: Make all functions available by default again. It
659 caused too much trouble.
660 * internals.h (struct pthread_functions): Rename ptr_pthread_exit
661 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
662 ptr___pthread_attr_init_2_*.
663 * pthread.c (pthread_functions): Adjust.
664
3b7ed871
UD
6652002-12-28 Jakub Jelinek <jakub@redhat.com>
666
667 * libc_pthread_init.c (__libc_pthread_init): Remove
668 MULTIPLE_THREADS_OFFSET check.
669 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
670 (SYSINFO_OFFSET): Remove.
671 * sysdeps/i386/Makefile [csu] (gen-as-const-headers): Add
672 tcb-offsets.sym.
673 * sysdeps/i386/tcb-offsets.sym: New file.
674 * sysdeps/pthread/tcb-offsets.h: New file.
675 * sysdeps/sparc/sparc32/tls.h: Removed.
676 * sysdeps/sparc/sparc64/tls.h: Move...
677 * sysdeps/sparc/tls.h: ...here. Include tcb-offsets.h in assembler.
678 * sysdeps/sparc/Makefile: New file.
679 * sysdeps/sparc/tcb-offsets.sym: New file.
680 * sysdeps/ia64/tls.h: Include tcb-offsets.h in assembler.
681 * sysdeps/ia64/Makefile: New file.
682 * sysdeps/ia64/tcb-offsets.sym: New file.
683 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
684 (MULTIPLE_THREADS_OFFSET): Remove.
685 Replace defined MULTIPLE_THREADS_OFFSET
686 with defined FLOATING_STACKS && USE___THREAD.
687 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
688 (MULTIPLE_THREADS_OFFSET): Remove.
689 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
690 (MULTIPLE_THREADS_OFFSET): Remove.
691 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
692 (MULTIPLE_THREADS_OFFSET): Remove.
693 * pthread.c (__pthread_initialize_manager): Remove
694 MULTIPLE_THREADS_OFFSET cbeck.
695
696 * tst-cancel-wrappers.sh: Add line continuations.
697
afb2e954
UD
6982002-12-27 Jakub Jelinek <jakub@redhat.com>
699
270d9d47
UD
700 * sysdeps/pthread/bits/libc-tsd.h: Include linuxthreads/descr.h
701 and bits/libc-lock.h.
702 (__libc_internal_tsd_get, __libc_internal_tsd_set,
703 __libc_internal_tsd_address): Remove.
704 (__pthread_internal_tsd_address, __pthread_internal_tsd_get,
705 __pthread_internal_tsd_set): New weak_externs.
706 (__libc_tsd_address, __libc_tsd_get, __libc_tsd_set): Define
707 using __libc_maybe_call2.
708 (__libc_tsd_key_t): Move to ...
709 * descr.h (__libc_tsd_key_t): ...here.
710 Remove bits/libc-tsd.h include.
711 * sysdeps/pthread/errno-loc.c: New file.
712 * sysdeps/pthread/herrno-loc.c: New file.
713 * sysdeps/pthread/res-state.c: New file.
714 * libc-cancellation.c (THREAD_GETMEM, THREAD_SETMEM): Remove.
715 (__libc_enable_asynccancel, __libc_disable_asynccancel): Use
716 thread_self unconditionally. Use LIBC_THREAD_[SG]ETMEM instead
717 of THREAD_[SG]ETMEM.
718 * specific.c (libc_internal_tsd_set): Renamed to...
719 __pthread_internal_tsd_set. Remove static.
720 (libc_internal_tsd_get): Renamed to...
721 __pthread_internal_tsd_get. Remove static.
722 (libc_internal_tsd_address): Renamed to...
723 __pthread_internal_tsd_address. Remove static.
724 (__libc_internal_tsd_set, __libc_internal_tsd_get,
725 __libc_internal_tsd_address, __libc_alloca_cutoff): Remove.
726 * internals.h [!NOT_IN_libc] (LIBC_THREAD_GETMEM, LIBC_THREAD_SETMEM):
727 Define.
728 (__pthread_internal_tsd_set, __pthread_internal_tsd_get,
729 __pthread_internal_tsd_address): New prototypes.
730 (struct pthread_functions): Add
731 ptr_pthread_internal_tsd_([sg]et|address) fields.
732 [!NOT_IN_libc && !FLOATING_STACKS] (thread_self): Define.
733 * pthread.c (pthread_functions) [!USE_TLS && !HAVE___THREAD]:
734 Initialize ptr_pthread_internal_tsd_([sg]et|address) fields.
735 * Versions (libpthread): Remove __libc_alloca_cutoff@GLIBC_PRIVATE.
736 * alloca_cutoff.c: New file.
737 * no-tsd.c: Removed.
738 * Makefile (routines): Remove no-tsd. Add alloca_cutoff.
739 * pt-system.c (system): Remove cancellation handling.
740 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
741 cancellation routines.
742
afb2e954
UD
743 * sysdeps/i386/tls.h: Include dl-sysdep.h and stdint.h.
744 (tcbhead_t): Add sysinfo field.
745 (SYSINFO_OFFSET, INIT_SYSINFO): Define.
746 (TLS_INIT_TP): Use INIT_SYSINFO.
747 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
748 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
749 (MULTIPLE_THREADS_OFFSET): Adjust.
750 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
751 (MULTIPLE_THREADS_OFFSET): Likewise.
752 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
753 (MULTIPLE_THREADS_OFFSET): Likewise.
754 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
755 (MULTIPLE_THREADS_OFFSET): Likewise.
756 * descr.h: Include stdint.h.
757 (struct _pthread_descr_struct): Add p_header.data.sysinfo field.
758
7592002-12-22 Jakub Jelinek <jakub@redhat.com>
760
761 * libc_pthread_init.c: Include stdlib.h.
762 * sysdeps/i386/tls.h (tcbhead_t): Add multiple_threads member.
763 (TLS_INIT_TP_EXPENSIVE): Define.
764 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call,
765 __libc_maybe_call2): In _LIBC check SHARED define.
766 * sysdeps/ia64/tls.h: New file.
767 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
768 * sysdeps/unix/sysv/linux/ia64/Makefile: New file.
769 * sysdeps/x86_64/tls.h (TLS_INIT_TP_EXPENSIVE): Define.
770 * sysdeps/sparc/sparc32/tls.h: New file.
771 * sysdeps/sparc/sparc64/tls.h: New file.
772 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
773 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
774 * Makefile (tests): Add tst-cancel[1-6].
775 (tests-reverse): Add tst-cancel5.
776 Link libc.so before libpthread.so for tests-reverse.
777 * tst-cancel1.c: New file.
778 * tst-cancel2.c: New file.
779 * tst-cancel3.c: New file.
780 * tst-cancel4.c: New file.
781 * tst-cancel5.c: New file.
782 * tst-cancel6.c: New file.
783
9f256765
AS
7842002-12-27 Andreas Schwab <schwab@suse.de>
785
786 * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: New file.
787
5220f9ac
RM
7882002-12-22 Roland McGrath <roland@redhat.com>
789
790 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
791
2e4f58a4
UD
7922002-12-21 Ulrich Drepper <drepper@redhat.com>
793
794 * pthread.c (init_rtsigs): Remove incomplete __builtin_expect.
795 Reported by Art Hass <ahaas@airmail.net>.
796
3325198e
UD
7972002-12-19 Jakub Jelinek <jakub@redhat.com>
798
799 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
800 Use return 0 as 6th argument to FORWARD4.
801
5e289179
UD
8022002-12-18 Jakub Jelinek <jakub@redhat.com>
803
804 * sysdeps/i386/useldt.h (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Only
805 define if __ASSUME_LDT_WORKS > 0.
806 * libc-cancellation.c (THREAD_GETMEM, THREAD_SETMEM): Redefine to
807 struct member access if !FLOATING_STACKS.
808 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
809
82f81a90
UD
8102002-12-18 Jakub Jelinek <jakub@redhat.com>
811
812 * internals.h (__pthread_thread_self): New prototype.
813 (struct pthread_functions): Add ptr_pthread_thread_self field.
814 * pthread.c (pthread_functions): Initialize ptr_pthread_thread_self.
815 (__pthread_thread_self): New function.
816 * libc-cancellation.c (__pthread_thread_self): Add weak_extern.
817 (__libc_enable_asynccancel, __libc_disable_asynccancel): Don't
818 use thread_self() directly if not FLOATING_STACKS.
819
8202002-12-18 Jakub Jelinek <jakub@redhat.com>
821
822 * sysdeps/x86_64/pt-machine.h: Guard most of the header
823 with #ifndef __ASSEMBLER__.
824 * pthread.c (pthread_functions): Use SHLIB_COMPAT around
825 pthread_attr_init_2_0 use.
826
8272002-12-17 Jakub Jelinek <jakub@redhat.com>
828
829 * wrapsyscall.c: Removed.
830 * weaks.c: Removed.
831 * Makefile (distribute): Add tst-cancel-wrappers.sh.
832 (routines): Remove weaks. Add forward,
833 libc_pthread_init, libc-cancellation.
834 (shared-only-routines): Remove weaks. Add forward.
835 (libpthread-routines): Remove wrapsyscall.
836 Add ptw-write, ptw-read, ptw-close, ptw-fcntl, ptw-accept,
837 ptw-connect, ptw-recv, ptw-recvfrom, ptw-recvmsg, ptw-send,
838 ptw-sendmsg, ptw-sendto, ptw-fsync, ptw-lseek, ptw-lseek64,
839 ptw-llseek, ptw-msync, ptw-nanosleep, ptw-open, ptw-open64,
840 ptw-pause, ptw-pread, ptw-pread64, ptw-pwrite, ptw-pwrite64,
841 ptw-tcdrain, ptw-wait, ptw-waitpid, pt-system, pt-allocrtsig.
842 (libpthread-shared-only-routines): Add pt-allocrtsig.
843 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
844 ($(objpfx)tst-cancel-wrappers.out): New rule.
845 * sysdeps/pthread/bits/libc-lock.h: Include linuxthreads/internals.h
846 if in libc.
847 (__libc_maybe_call): In libpthread.* don't check for existance
848 of the function.
849 (__libc_maybe_call2): Define.
850 (__libc_lock_init, __libc_lock_fini, __libc_lock_lock,
851 __libc_lock_trylock, __libc_lock_unlock): Use it.
852 * sysdeps/pthread/flockfile.c: New file.
853 * sysdeps/pthread/ftrylockfile.c: New file.
854 * sysdeps/pthread/funlockfile.c: New file.
855 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
856 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
857 * sysdeps/unix/sysv/linux/allocrtsig.c: New file.
858 * libc-cancellation.c: New file.
859 * forward.c: New file.
860 * libc_pthread_init.c: New file.
861 * pt-system.c: New file.
862 * pthread.c: Remove locale.h.
863 (__pthread_manager_thread): Initialize multiple_threads.
864 (__pthread_multiple_threads): Declare.
865 (pthread_functions): New variable.
866 (__pthread_initialize_minimal): Remove __uselocale call.
867 Call __libc_pthread_init.
868 (__pthread_initialize_manager): Initialize __pthread_multiple_threads,
869 initial thread's multiple_threads and __libc_multiple_threads.
870 Check MULTIPLE_THREADS_OFFSET value. Initialize manager thread's
871 multiple_threads.
872 (pthread_setschedparam, pthread_getschedparam): Rename to __
873 prefixed variants. Add strong_alias.
874 (current_rtmin, current_rtmax, __libc_current_sigrtmin,
875 __libc_current_sigrtmax, __libc_allocate_rtsig): Remove.
876 (init_rtsigs): Use __libc_current_sigrtmin_private.
877 (pthread_initialize): Only call init_rtsigs if
878 !__ASSUME_REALTIME_SIGNALS.
879 (__pthread_require_wrappers, __pthread_require_lockfile): Remove.
880 * internals.h (__pthread_attr_destroy, __pthread_attr_setdetachstate,
881 __pthread_attr_getdetachstate, __pthread_attr_setschedparam,
882 __pthread_attr_getschedparam, __pthread_attr_setschedpolicy,
883 __pthread_attr_getschedpolicy, __pthread_attr_setinheritsched,
884 __pthread_attr_getinheritsched, __pthread_attr_setscope,
885 __pthread_attr_getscope, __pthread_cond_init,
886 __pthread_cond_destroy, __pthread_cond_wait,
887 __pthread_cond_signal, __pthread_cond_broadcast,
888 __pthread_condattr_init, __pthread_condattr_destroy,
889 __pthread_equal, __pthread_getschedparam,
890 __pthread_setschedparam, __pthread_setcancelstate,
891 __pthread_setcanceltype, __pthread_enable_asynccancel,
892 __libc_enable_asynccancel, __libc_pthread_init): New prototype.
893 (__pthread_mutex_init, __pthread_mutex_destroy,
894 __pthread_mutex_lock, __pthread_mutex_unlock,
895 __pthread_mutex_trylock): Likewise.
896 Add hidden_proto.
897 (struct pthread_functions): New type.
898 (__libc_pthread_functions): New variable.
899 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define.
900 * descr.h (struct _pthread_descr_struct): Add
901 p_header.data.multiple_threads field.
902 * manager.c (pthread_handle_create): Initialize multiple_threads.
903 * cancel.c (__pthread_enable_asynccancel,
904 __pthread_disable_asynccancel): New functions.
905 (__pthread_provide_wrappers): Remove.
906 (pthread_setcancelstate, pthread_setcanceltype): Rename to __
907 prefixed variants. Add strong_alias.
908 * condvar.c (pthread_cond_init, pthread_cond_destroy,
909 pthread_cond_wait, pthread_cond_signal, pthread_cond_broadcast,
910 pthread_condattr_init, pthread_condattr_destroy): Likewise.
911 * join.c (pthread_exit): Likewise.
912 * attr.c (pthread_attr_destroy, pthread_attr_setdetachstate,
913 pthread_attr_getdetachstate, pthread_attr_setschedparam,
914 pthread_attr_getschedparam, pthread_attr_setschedpolicy,
915 pthread_attr_getschedpolicy, pthread_attr_setinheritsched,
916 pthread_attr_getinheritsched, pthread_attr_setscope,
917 pthread_attr_getscope): Likewise.
918 * mutex.c (__pthread_mutex_init, __pthread_mutex_destroy,
919 __pthread_mutex_lock, __pthread_mutex_unlock,
920 __pthread_mutex_trylock): Add hidden_def.
921 * Versions (libc): Add __libc_pthread_init,
922 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
923 __libc_allocate_rtsig_private @@GLIBC_PRIVATE.
924 * lockfile.c: Remove some USE_IN_LIBIO guards.
925 (__pthread_provide_lockfile): Remove.
926 * pt-allocrtsig.c: New file.
927 * tst-cancel-wrappers.sh: New test.
928
f3015aa5
UD
9292002-12-15 Ulrich Drepper <drepper@redhat.com>
930
931 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
932 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
933 * wrapsyscall.c: Remove creat, poll, pselect, readv, select,
934 sigpause, sigsuspend, sigwaitinfo, waitid, and writev wrappers.
935
dce8f2b6
UD
9362002-12-10 Ulrich Drepper <drepper@redhat.com>
937
938 * wrapsyscall.c (CANCELABLE_SYSCALL): Don't define function as
939 weak. There is no reason for that.
940 (CANCELABLE_SYSCALL_VA): Likewise.
941
e5e45b53
UD
9422002-12-09 Ulrich Drepper <drepper@redhat.com>
943
944 * wrapsyscall.c: Add wrappers for creat, poll, pselect, readv, select,
945 sigpause, __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev.
946 * Versions: Export creat, poll, pselect, readv, select, sigpause,
947 __xpg_sigpause, sigsuspend, sigwaitinfo, waitid, and writev from
948 libpthread in version GLIBC_2.3.2.
949
d3c9f895
UD
9502002-12-06 Ulrich Drepper <drepper@redhat.com>
951
952 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
953
fde89ad0
RM
9542002-12-05 Roland McGrath <roland@redhat.com>
955
956 * pthread.c (__pthread_initialize_minimal)
957 [USE_TLS && SHARED && !USE___THREAD]: Initialize TLS and set up the
958 TCB if the dynamic linker didn't do it at startup.
959
960 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
961 string.
962 (TLS_DO_SET_THREAD_AREA, TLS_DO_MODIFY_LDT, TLS_SETUP_GS_SEGMENT):
963 Submacros updated.
964 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
965 * sysdeps/alpha/tls.h (TLS_INIT_TP): Likewise (always zero).
966
9672002-12-03 Roland McGrath <roland@redhat.com>
968
969 * pthread.c (pthread_initialize) [SHARED]: Copy dl_error_tsd value
970 from dynamic linker internal cell to new libc cell.
971
fa9a4ff0
RM
9722002-11-28 Roland McGrath <roland@redhat.com>
973
974 * tst-context.c: #define IS_IN_libpthread around #include <tls.h>
975 before other headers, so FLOATING_STACKS is not defined wrongly.
976
977 * sysdeps/i386/tls.h [!IS_IN_libpthread]: Enable TLS support
978 even if [! FLOATING_STACKS].
979 (TLS_DO_MODIFY_LDT_KERNEL_CHECK): New macro.
980 If not under [__ASSUME_LDT_WORKS > 0], then do a runtime check of
981 dl_osversion >= 2.3.99 and fatal if not.
982 (TLS_DO_MODIFY_LDT): Use it.
983
f9ad060c
UD
9842002-11-28 Ulrich Drepper <drepper@redhat.com>
985
986 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
987 require it to 200112L. Remove _POSIX_POLL and _POSIX_SELECT.
988 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
989
96bbfe3f
UD
9902002-11-19 Ulrich Drepper <drepper@redhat.com>
991
fa9a4ff0 992 * Versions (libc: GLIBC_2.0): Remove names of functions which are
96bbfe3f
UD
993 not defined in libc.
994 * Makefile (shared-only-routines): Add weaks.
995 * weaks.c: Remove functions which are not exported from libc.so.
996
53da80ab
RM
9972002-11-14 Roland McGrath <roland@redhat.com>
998
999 * libc-tsd.c: New file.
1000 * Makefile (distribute): Add it.
1001 (libc-link.so): New variable.
1002 ($(objpfx)libpthread.so): Depend on that instead of libc.so file name.
1003 (libc-ok-for-link): New variable.
1004 [$(versioning) = yes]: Include $(common-objpfx)tls.make and define
1005 libc-ok-for-link to $(use-thread).
1006 [$(libc-ok-for-link) = no]
1007 (libc-link.so): Set to $(objpfx)libc.so, not $(common-objpfx)libc.so.
1008 ($(objpfx)libc_pic_lite.a,$(objpfx)libc_pic_lite.os, $(objpfx)libc.so):
1009 New targets.
1010 (generated): Append them.
1011 (extra-objs): Append libc-tsd.os.
1012
1013 * libc-tls-loc.c: New file.
1014 * Makefile (libpthread-routines): Add it.
1015
29923dfd
AS
10162002-11-14 Andreas Schwab <schwab@suse.de>
1017
1018 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Fix unterminated
1019 string.
1020
cdedcc79
RM
10212002-11-13 Roland McGrath <roland@redhat.com>
1022
1023 * Examples/ex6.c (main): Improve error reporting.
1024
8e96ae1a
UD
10252002-11-04 Ulrich Drepper <drepper@redhat.com>
1026
226e9fda
UD
1027 * sysdeps/i386/Makefile: Compile pthread.c and sighandler.c with
1028 -fno-omit-frame-pointer. Patch by Andreas Steinmetz <ast@domdv.de>.
1029
8e96ae1a
UD
1030 * sysdeps/i386/useldt.h [PIC] (USETLS_LOAD_EBX): Use correct input
1031 register number.
1032 (DO_SET_THREAD_AREA): Mark asm output specifiers correctly.
1033
bd6daf3b
RM
10342002-10-22 Jakub Jelinek <jakub@redhat.com>
1035
1036 * manager.c (pthread_start_thread): Call __uselocale even
1037 if [! SHARED]. Patch by Leon Kanter <leon@geon.donetsk.ua>.
1038
2430d57a
RM
10392002-10-17 Roland McGrath <roland@redhat.com>
1040
1041 * Makefile (unload): Don't link in libpthread.so.
1042 ($(objpfx)unload.out): Do depend on it.
1043 * unload.c (main): Improve error reporting.
1044
3021e36d
RM
10452002-10-09 Roland McGrath <roland@redhat.com>
1046
1047 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
1048 Under [__PIC__], call the function via the pointer fetched for
1049 comparison rather than a call by name that uses the PLT.
1050 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
1051 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
1052 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
1053 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
1054 (__libc_key_create, __libc_getspecific, __libc_setspecific)
1055 (__libc_atfork): Use it.
1056
1057 * pthread.c [SHARED] (__libc_dl_error_tsd): New function.
1058 (pthread_initialize) [SHARED]: Set _dl_error_catch_tsd to that.
1059 * Versions (libc: GLIBC_PRIVATE): Add __libc_dl_error_tsd.
1060 (ld: GLIBC_PRIVATE): Set removed.
1061
ef43f9d4
UD
10622002-10-11 Ulrich Drepper <drepper@redhat.com>
1063
1064 * sysdeps/unix/sysv/linux/execve.c: New file.
1065
65e6f476
UD
10662002-10-09 Jakub Jelinek <jakub@redhat.com>
1067
1068 * no-tsd.c: Include stdlib.h.
1069
d3c79d4a
UD
10702002-10-07 Jakub Jelinek <jakub@redhat.com>
1071
1072 * sysdeps/unix/sysv/linux/allocalim.h: New file.
1073 * descr.h (struct _pthread_descr_struct): Add p_alloca_cutoff
1074 field.
1075 * manager.c (__pthread_allocate_stack): Add out_stacksize argument.
1076 Pass stack size to caller.
1077 (pthread_handle_create): Set p_alloca_cutoff.
1078 * pthread.c (__pthread_initial_thread): Use C99 designated
1079 initializers. Set p_alloca_cutoff.
1080 (__pthread_manager_thread): Likewise.
1081 (__pthread_initialize_minimal) [USE_TLS]: Set p_alloca_cutoff
1082 for initial thread.
1083 (__pthread_init_max_stacksize): Possibly decrease p_alloca_cutoff
1084 for initial thread.
1085 (__pthread_initialize_manager) [USE_TLS]: Set p_alloca_cutoff
1086 for manager thread.
1087 * specific.c (__libc_alloca_cutoff): New function.
1088 * no-tsd.c (__libc_alloca_cutoff): New function.
1089 * Versions: Export __libc_alloca_cutoff@@GLIBC_PRIVATE from libc
1090 and libpthread.
1091
aa298c08
UD
10922002-10-02 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1093
1094 * sysdeps/sh/pt-machine.h: Make C code ifndef'ed with __ASSEMBLER__.
1095 * sysdeps/sh/tls.h: Likewise.
1096 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
1097
57449fa3
RM
10982002-09-29 Jakub Jelinek <jakub@redhat.com>
1099
1100 * sysdeps/pthread/tst-timer.c (main): Clear
1101 SIGEV2.sigev_notify_attributes.
1102
9a1c21c4
UD
11032002-09-29 Ulrich Drepper <drepper@redhat.com>
1104
1105 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Don't use
1106 INLINE_SYSCALL for set_thread_area syscall.
1107
3865b57f
RM
11082002-09-28 Roland McGrath <roland@redhat.com>
1109
1110 * pthread.c (__pthread_reset_main_thread) [FLOATING_STACKS]:
1111 Don't call setrlimit, since we did no prior bogon we need to undo.
1112
2c536abd
RM
11132002-09-27 Roland McGrath <roland@redhat.com>
1114
1115 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Don't include <pt-machine.h>.
1116
160bb409
RM
11172002-09-24 Roland McGrath <roland@redhat.com>
1118
1119 * sysdeps/x86_64/tls.h: New file.
1120
11212002-09-23 Roland McGrath <roland@redhat.com>
1122
1123 * Examples/ex13.c (dump_mut): int -> size_t for counter.
1124
9db6ee8d
RM
11252002-09-18 Bruno Haible <bruno@clisp.org>
1126
1127 * Examples/ex10.c (thread): Fail if pthread_mutex_timedlock() returns
1128 an unexpected error code.
1129
1130 * internals.h (__pthread_message): Add const to first parameter type.
1131 * pthread.c (__pthread_message): Likewise.
1132
1133 * sysdeps/unix/sysv/linux/configure: Moved to ../sysdeps/pthread.
1134
1d0ad773
RM
11352002-09-17 Roland McGrath <roland@redhat.com>
1136
1137 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT, TLS_DO_SET_THREAD_AREA):
1138 Set the descriptor limit to the full 4GB, so %gs:OFFSET works for any
1139 offset (positive or negative) relative to the thread struct.
1140 * sysdeps/i386/useldt.h (DO_MODIFY_LDT, DO_SET_THREAD_AREA): Likewise.
1141
54c1e6ca
RM
11422002-09-12 Jakub Jelinek <jakub@redhat.com>
1143
1144 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Move...
1145 * sysdeps/unix/sysv/linux/sparc/Makefile: ...here.
1146 Replace /usr/lib/crt[in].o with crt[in].o too.
1147
4730fc68
RM
11482002-09-11 Steven Munroe <sjmunroe@us.ibm.com>
1149
1150 * sysdeps/powerpc/powerpc64/pt-machine.h: New file.
1151
64ca3f32
RM
11522002-09-04 Bruno Haible <bruno@clisp.org>
1153
1154 * pthread.c: Include <sys/time.h>.
1155 (is_smp_system): Move to sysdeps/unix/sysv/linux/smp.h.
1156 * sysdeps/unix/sysv/linux/smp.h: New file, extracted from pthread.c.
1157 * Makefile (distribute): Add smp.h to the list.
1158
a1e56cd1
RM
11592002-09-04 Bruno Haible <bruno@clisp.org>
1160
5842a756
UD
1161 * sysdeps/alpha/pt-machine.h: Choose different include file location
1162 on non-Linux platforms.
4f58b7c6 1163
a1e56cd1
RM
1164 * wrapsyscall.c (PROMOTE_INTEGRAL_TYPE): New macro.
1165 (open, open64): Change va_arg argument type to the integral type to
1166 which mode_t promotes.
1167
1168 * sysdeps/pthread/tst-timer.c (main): Don't assume anything about
1169 the structure of 'struct sigevent'.
1170
1171 * errno.c (__errno_location, __h_errno_location, __res_state):
1172 Use prototype function definitions.
1173
92b27c74
UD
11742002-07-29 Steven Munroe <sjmunroe@us.ibm.com>
1175
1176 * shlib-versions: Set libpthread version to 2.3 for powerpc64.
1177 * sysdeps/powerpc/pt-machine.h: moved to...
1178 * sysdeps/powerpc/powerpc32/pt-machine.h: ...here
a1e56cd1 1179 * sysdeps/powerpc/powerpc64/pt-machine.h: New file.
92b27c74 1180
bcc565a0
UD
11812002-09-02 Roland McGrath <roland@redhat.com>
1182
1183 * sysdeps/powerpc/Makefile (CFLAGS-pt-initfini.s): New variable.
1184
cf684340
RM
11852002-09-01 Roland McGrath <roland@redhat.com>
1186
1187 * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t): Add new keys
1188 CTYPE_B, CTYPE_TOLOWER, CTYPE_TOUPPER.
1189
1190 * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_address): New macro.
1191 (__libc_internal_tsd_address): Declare it.
1192 * Versions (libc, ld, libpthread: GLIBC_PRIVATE): Add
1193 __libc_internal_tsd_address.
1194 * specific.c (libc_internal_tsd_address): New function.
1195 (__libc_internal_tsd_address): New variable.
1196 * no-tsd.c (__libc_internal_tsd_address): New variable.
1197
9649be24
UD
11982002-08-31 Ulrich Drepper <drepper@redhat.com>
1199
1200 * Makefile: Don't use rule for crt%.o, spell it out as rules for
1201 crti.o and crtn.o.
1202
cc6d371d
RM
12032002-08-30 Roland McGrath <roland@redhat.com>
1204
1205 * Makefile (extra-objs, omit-deps): Add crtn.
1206 ($(objpfx)libpthread.so): Depend on $(objpfx)crtn.o.
1207 ($(objpfx)libpthread.so: +postinit): Append $(objpfx)crtn.o.
1208 ($(objpfx)crtn.S): New target.
1209 ($(objpfx)crt%.o): Pattern rule replaces crti.o target.
1210 (generated): Add crtn.S.
1211
1212 * sysdeps/unix/sysv/linux/x86_64/Makefile ($(objpfx)specs): Massage
1213 crtn.o pathname too.
1214
95ed9d84
RM
12152002-08-30 Jakub Jelinek <jakub@redhat.com>
1216
9649be24
UD
1217 * pthread.c (__pthread_initialize_minimal): Call __uselocale even
1218 if [! SHARED].
95ed9d84
RM
1219
12202002-08-30 Roland McGrath <roland@redhat.com>
1221
1222 * tst-static-locale.c: New file.
1223 * Makefile (tests, tests-static): Add it.
1224
c98d82db
UD
12252002-04-24 Steven Munroe <sjmunroe@us.ibm.com>
1226
1227 * spinlock.c (__pthread_lock): Fix spurious wakeup
1228 handling. Don't clear lowest bit of list pointer as sign the thread
1229 is still on the wait list. Don't restart after spurious wakeup
1230 with spinning to get the lock.
1231 (__pthread_unlock): Take set lowest bit into account when handling
1232 pointer to list elements.
1233 Patch by Steve Munroe <sjmunroe@us.ibm.com>.
1234
963e3b58
RM
12352002-08-28 Roland McGrath <roland@redhat.com>
1236
1237 * sysdeps/pthread/timer_routines.c (thread_func): Fix type in cast.
1238
5fe14d96
UD
12392002-08-28 Jakub Jelinek <jakub@redhat.com>
1240
1241 * sysdeps/unix/sysv/linux/hppa/aio_cancel.c: New file.
1242 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
1243 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
1244
dd4f2115
UD
12452002-08-28 Ulrich Drepper <drepper@redhat.com>
1246
1247 * sysdeps/pthread/timer_routines.c (thread_func): Change return
963e3b58 1248 type to void and add casts in use to avoid warnings with all gcc
dd4f2115
UD
1249 versions.
1250
f0377954
UD
12512002-08-08 Jakub Jelinek <jakub@redhat.com>
1252
1253 * sysdeps/unix/sysv/linux/bits/local_lim.h (PTHREAD_THREADS_MAX):
1254 Bump to 16384.
1255 * manager.c (__pthread_handles): Remove.
1256 * pthandles.c: New file.
1257 * pthread.c (__pthread_initialize_minimal): Initialize
1258 __pthread_handles[0] and __pthread_handles[1].
1259 * Makefile (libpthread-routines): Add pthandles (must be last).
1260
5fe14d96 12612002-08-26 Brian Youmans <3diff@gnu.org>
8b269abc 1262
e0cffcf6
UD
1263 * Examples/ex10.c: Corrected version number in Lesser GPL copying
1264 permission notice from 2 to 2.1.
8b269abc
UD
1265 * Examples/ex11.c: Likewise.
1266 * Examples/ex13.c: Likewise.
1267 * Examples/ex8.c: Likewise.
1268 * Examples/ex9.c: Likewise.
1269 * barrier.c: Likewise.
1270 * events.c: Likewise.
1271 * lockfile.c: Likewise.
1272 * no-tsd.c: Likewise.
1273 * pt-machine.c: Likewise.
1274 * ptclock_gettime.c: Likewise.
1275 * ptclock_settime.c: Likewise.
1276 * rwlock.c: Likewise.
1277 * sysdeps/alpha/pspinlock.c: Likewise.
1278 * sysdeps/alpha/pt-machine.h: Likewise.
1279 * sysdeps/arm/pspinlock.c: Likewise.
1280 * sysdeps/arm/pt-machine.h: Likewise.
1281 * sysdeps/cris/pspinlock.c: Likewise.
1282 * sysdeps/cris/pt-machine.h: Likewise.
1283 * sysdeps/hppa/pspinlock.c: Likewise.
1284 * sysdeps/hppa/pt-machine.h: Likewise.
1285 * sysdeps/i386/i686/pt-machine.h: Likewise.
1286 * sysdeps/i386/pspinlock.c: Likewise.
1287 * sysdeps/i386/pt-machine.h: Likewise.
1288 * sysdeps/i386/useldt.h: Likewise.
1289 * sysdeps/ia64/pspinlock.c: Likewise.
1290 * sysdeps/ia64/pt-machine.h: Likewise.
1291 * sysdeps/m68k/pspinlock.c: Likewise.
1292 * sysdeps/m68k/pt-machine.h: Likewise.
1293 * sysdeps/mips/pspinlock.c: Likewise.
1294 * sysdeps/mips/pt-machine.h: Likewise.
1295 * sysdeps/powerpc/pspinlock.c: Likewise.
1296 * sysdeps/powerpc/pt-machine.h: Likewise.
1297 * sysdeps/pthread/bits/initspin.h: Likewise.
1298 * sysdeps/pthread/bits/libc-lock.h: Likewise.
1299 * sysdeps/pthread/bits/libc-tsd.h: Likewise.
1300 * sysdeps/pthread/getcpuclockid.c: Likewise.
1301 * sysdeps/pthread/posix-timer.h: Likewise.
1302 * sysdeps/pthread/timer_create.c: Likewise.
1303 * sysdeps/pthread/timer_delete.c: Likewise.
1304 * sysdeps/pthread/timer_getoverr.c: Likewise.
1305 * sysdeps/pthread/timer_gettime.c: Likewise.
1306 * sysdeps/pthread/timer_routines.c: Likewise.
1307 * sysdeps/pthread/timer_settime.c: Likewise.
1308 * sysdeps/pthread/tst-timer.c: Likewise.
1309 * sysdeps/s390/pspinlock.c: Likewise.
1310 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
1311 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
1312 * sysdeps/sh/pspinlock.c: Likewise.
1313 * sysdeps/sh/pt-machine.h: Likewise.
1314 * sysdeps/sparc/sparc32/pspinlock.c: Likewise.
1315 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
1316 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
1317 * sysdeps/sparc/sparc64/pspinlock.c: Likewise.
1318 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1319 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
1320 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
1321 * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
1322 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
1323 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1324 * tststack.c: Likewise.
1325 * unload.c: Likewise.
1326 * weaks.c: Likewise.
1327 * wrapsyscall.c: Likewise.
1328
1329 * sysdeps/pthread/pt-initfini.c: Changed copying
1330 permission notice to Lesser GPL from Library GPL, including the
1331 references in the special exception.
1332 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: Likewise.
1333 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Likewise.
1334 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c:
1335 Likewise.
1336 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c:
1337 Likewise.
1338 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Likewise.
1339
34816665
UD
13402002-08-26 Ulrich Drepper <drepper@redhat.com>
1341
1342 * Examples/ex10.c (thread): tv_nsec == 1000000000 is already
1343 overflow [PR libc/4244].
1344
6d497bbe
UD
13452002-08-25 Ulrich Drepper <drepper@redhat.com>
1346
fd77c361
UD
1347 * sysdeps/pthread/timer_routines.c (thread_func): Make the
1348 compiler happy by adding a return statement which will never be
1349 reached.
1350
9df89390
UD
1351 * tst-context.c (main): Cast to long before casting to pointer.
1352
1353 * Examples/ex17.c (main): Use correct format string.
1354
6d497bbe
UD
1355 * Examples/ex9.c (thread): Remove incorrect return statement.
1356
069125e5
UD
13572002-08-23 Ulrich Drepper <drepper@redhat.com>
1358
1359 * pthread.c (__linuxthreads_version): New global constant.
1360
fb2bdbba
AJ
13612002-08-23 Andreas Jaeger <aj@suse.de>
1362
1363 * sysdeps/x86_64/pt-machine.h: Use %fs instead of %gs
1364 as thread specific register.
1365 (testandset): Fix inline asm.
1366 (THREAD_GETMEM): Fix inline asm.
1367
8ddcb7da
RM
13682002-08-22 Roland McGrath <roland@redhat.com>
1369
1370 * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Remove [HAVE_TLS_SUPPORT]
1371 conditional.
1372 (INIT_THREAD_SELF): Pass second arg to DO_SET_THREAD_AREA.
1373 (DO_SET_THREAD_AREA): Take second arg, pass to DO_SET_THREAD_AREA_REUSE
1374 macro. That chooses whether to reuse %gs value or let kernel set it.
1375 [USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, always 1.
1376 [!USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, true if arg is
1377 not constant 0.
1378
0fe35439
UD
13792002-08-21 Ulrich Drepper <drepper@redhat.com>
1380
1381 * sysdeps/i386/tls.h (TLS_SETUP_GS_SEGMENT): Add new parameter
1382 also to the third definition of this macro.
1383
c70a0936
AJ
13842002-06-17 Andreas Jaeger <aj@suse.de>
1385
1386 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
1387 Set it.
1388
58d2d09b
UD
13892002-08-20 Ulrich Drepper <drepper@redhat.com>
1390
c761cdf5
UD
1391 * sysdeps/i386/useldt.h: Go back to using 16-bit instructions when
1392 loading/reading segment registers. Some old hardware doesn't
1393 handle the 32-bit instructions as expected.
1394 * sysdeps/i386/tls.h: Likewise.
1395
9d69bd24
UD
1396 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Second parameter is
1397 renamed to secondcall and use is negated.
1398 (TLS_SETUP_GS_SEGMENT): Likewise.
1399 (TLS_INIT_TP): Likewise.
1400 * sysdeps/sh/tls.h (TLS_INIT_TP): Second parameter is renamed to
1401 secondcall.
1402
69681bde
UD
1403 * sysdeps/i386/tls.h: Use 32-bit operations when handling segment
1404 registers. No need to mask upper 16 bits in this case.
1405 * sysdeps/i386/useldt.h: Likewise.
1406 (DO_SET_THREAD_AREA): We have to load %gs again even if the value
1407 is the same since the GDT content changed.
1408
d78ce054
UD
1409 * sysdeps/i386/tls.h (TLS_INIT_TP): Add new parameter and pass it on
1410 to TLS_SETUP_GS_SEGMENT.
1411 (TLS_SETUP_GS_SEGMENT): Add new parameter and pass it on to
1412 TLS_DO_SET_THREAD_AREA.
1413 (TLS_DO_SET_THREAD_AREA): If new parameter is zero determine
1414 entry number from %gs value.
1415 * sysdeps/sh/tls.h (TLS_INIT_TP): Add new parameter and simply
1416 ignore it.
1417
58d2d09b
UD
1418 * manager.c (pthread_handle_create): Pass NULL to _dl_allocate_tls.
1419 Pass true to _dl_deallocate_tls.
1420 (pthread_free): Likewise.
1421 * pthread.c (__pthread_initialize_manager): Likewise.
1422
46615777
UD
14232002-08-19 Ulrich Drepper <drepper@redhat.com>
1424
1425 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Use correct shift when
1426 computing index from %gs value.
1427
25cb6eb2
RM
14282002-08-16 Roland McGrath <roland@redhat.com>
1429
3ed35099
RM
1430 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Calculate segment
1431 register value from entry number properly.
1432
25cb6eb2
RM
1433 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Rewrite asm to use %ebx
1434 optimally conditional on [__PIC__].
1435 (TLS_DO_SET_THREAD_AREA): New macro, implement inline syscall
1436 without touching errno, and use latest modify_ldt-like interface.
1437 (TLS_SETUP_GS_SEGMENT): Use that instead of INLINE_SYSCALL.
1438 * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Set %gs in this macro.
1439 (DO_SET_THREAD_AREA): New macro, uses current syscall interface with
1440 existing %gs value as the segment to set.
1441 (INIT_THREAD_SELF): Rewritten using those. Use set_thread_area only
1442 under [HAVE_TLS_SUPPORT] so we can rely on the initialization done
1443 by the first thread's early TLS setup.
1444
c88b4759
RM
14452002-08-15 Roland McGrath <roland@redhat.com>
1446
1447 * sysdeps/i386/tls.h (TLS_INIT_TP): Use statement expression and
1448 return a value as callers now expect.
1449
e6f52680
RM
14502002-08-11 Roland McGrath <roland@redhat.com>
1451
1452 * pthread.c (__pthread_initialize_manager): Initialize
1453 p_header.data.tcb field of manager thread's descriptor.
1454 (__pthread_initialize_minimal): Don't initialize p_header.data.self
1455 field, already done by TLS_INIT_TP.
1456
1457 * manager.c (pthread_handle_create): Move p_header field initializers
1458 together.
1459
b7eb7b0f
UD
14602002-08-08 Ulrich Drepper <drepper@redhat.com>
1461
1462 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Removed.
1463
f70b0ea2
UD
14642002-08-07 Ulrich Drepper <drepper@redhat.com>
1465
1466 * pthread.c (__linuxthreads_initial_report_events): New variable.
1467 (__pthread_initialize_manager): Use it to initialize p_report_events
1468 of initial thread.
1469 [TLS]: Store pointer to descriptor of manager in __pthread_handles.
1470
e8e91498
RM
14712002-08-07 Roland McGrath <roland@redhat.com>
1472
1473 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Add an extra argument with
1474 an "m" constraint to the asm so the compiler knows LDT_ENTRY was used.
1475
26e73ab6
RM
14762002-08-02 Roland McGrath <roland@redhat.com>
1477
a14f26ef
RM
1478 * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t):
1479 Add _LIBC_TSD_KEY_LOCALE.
1480 * manager.c (pthread_start_thread) [!(USE_TLS && HAVE___THREAD)]:
1481 Call __uselocale to initialize our per-thread locale pointer to
1482 the global one.
1483 * pthread.c (__pthread_initialize_minimal): Likewise.
1484
26e73ab6
RM
1485 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Add missing \s.
1486
1f3f143e
UD
14872002-08-02 Ulrich Drepper <drepper@redhat.com>
1488
3c877a04
UD
1489 * pthread.c: Declare _errno, _h_errno, and _res unless we use TLS
1490 internally.
1491
1f3f143e
UD
1492 * cancel.c (__pthread_perform_cleanup) [USE_TLS && HAVE___THREAD]:
1493 Don't use p_libc_specific element in thread descriptor.
1494
c2afe833
RM
14952002-07-30 Roland McGrath <roland@redhat.com>
1496
1497 * sysdeps/pthread/bits/libc-tsd.h: Include <tls.h>.
1498 [USE_TLS && HAVE___THREAD]: Just include the sysdeps/generic file,
1499 which does the right thing when __thread support is available.
1500 * descr.h (struct _pthread_descr_struct) [USE_TLS && HAVE___THREAD]:
1501 Omit `p_libc_specific', `p_errnop', `p_errno', `p_h_errnop',
1502 `p_h_errno', `p_resp', and `p_res' members.
1503 * pthread.c (__pthread_initialize_minimal) [USE_TLS && HAVE___THREAD]:
1504 Don't initialize `p_errnop' and `p_h_errnop' members.
1505 (__pthread_reset_main_thread): Likewise.
1506 (__pthread_initialize_manager): Likewise.
1507 * manager.c (__pthread_manager, pthread_handle_create): Likewise.
1508 * pthread.c (pthread_initialize) [USE_TLS && HAVE___THREAD]:
1509 Don't initialize `p_resp' member.
1510 (__pthread_reset_main_thread): Likewise.
1511 * manager.c (pthread_handle_create): Likewise.
1512 * specific.c (libc_internal_tsd_set, libc_internal_tsd_get):
1513 Conditionalize these on [!(USE_TLS && HAVE___THREAD)].
fc10bc8d 1514 * no-tsd.c: Conditionalize contents on [!(USE_TLS && HAVE___THREAD)].
c2afe833
RM
1515 * errno.c [USE_TLS && HAVE___THREAD]
1516 (__h_errno_location, __res_state): Don't define these at all.
1517
1518 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens around arguments!
1519 (INSTALL_NEW_DTV, GET_DTV): Likewise.
1520 * sysdeps/sh/tls.h (INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV): Likewise.
1521
1522 * weaks.c: Don't include <errno.h> here.
1523
15242002-08-01 Roland McGrath <roland@redhat.com>
1525
1526 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): New macro, broken out of
1527 TLS_INIT_TP.
1528 (TLS_DO_SET_THREAD_AREA): New macro, uses thread_set_area syscall.
1529 (TLS_SETUP_GS_SEGMENT): New macro, try one or the other or both.
1530 (TLS_INIT_TP): Use that.
1531
06c2c536
UD
15322002-08-02 Jakub Jelinek <jakub@redhat.com>
1533
1534 * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Move from INIT_THREAD_SELF.
1535 (INIT_THREAD_SELF): Use sys_thread_area syscall instead if available.
1536 (FREE_THREAD): Avoid modify_ldt if using GDT.
1537 * sysdeps/i386/pspinlock.c (__have_no_set_thread_area): New variable.
1538
78ce5a3b
UD
15392002-07-25 Jakub Jelinek <jakub@redhat.com>
1540
1541 * sysdeps/i386/tls.h: Use __ASSEMBLER__ test macro not ASSEMBLER.
1542 * sysdeps/i386/pt-machine.h: Likewise.
1543 * sysdeps/i386/useldt.h: Likewise.
1544
67ee6db0
UD
15452002-07-22 Ulrich Drepper <drepper@redhat.com>
1546
8a30f00f
UD
1547 * pthread.c (__pthread_initialize_minimal): If !SHARED and TLS
1548 call __libc_setup_tls first.
1549 * Makefile: Actually create tst-signal.out file when running the test.
1550 (tests): Add tststatic.
1551 * Examples/tststatic.c: New file.
67ee6db0 1552
739d440d
UD
15532002-07-19 Ulrich Drepper <drepper@redhat.com>
1554
1555 * errno.c (__errno_location): Don't define unless !USE_TLS
1556 || !HAVE___THREAD.
1557 * sysdeps/i386/pt-machine.c: Protect C code with #ifndef ASSEMBLER.
1558 * sysdeps/i386/tls.h: Likewise.
1559 * sysdeps/i386/useldt.h: Likewise.
1560 * sysdeps/i386/i686/pt-machine.h: Likewise.
1561
a99bfa85
UD
15622002-07-02 H.J. Lu <hjl@gnu.org>
1563
1564 * sysdeps/mips/pspinlock.c: Don't include <sgidefs.h>. Always
1565 use ll/sc.
1566 * sysdeps/mips/pt-machine.h: Likewise.
1567
2acfe5d6
UD
15682002-07-14 Ulrich Drepper <drepper@redhat.com>
1569
1570 * manager.c (pthread_handle_create): Initialize self-reference in
1571 descriptor.
1572
b664d723
UD
15732002-07-01 Jakub Jelinek <jakub@redhat.com>
1574
1575 * Examples/ex9.c (main): Remove unused th variable.
1576
d880edc4
UD
15772002-07-10 Ulrich Drepper <drepper@redhat.com>
1578
1579 * wrapsyscall.c: Add __nanosleep alias.
1580 * Versions (GLIBC_2.2.6): Add __nanosleep.
f4741da2
UD
1581 * bug-sleep.c: New file.
1582 * Makefile (tests): Add bug-sleep.
d880edc4 1583
95fdc6a0
UD
15842002-06-19 Steven Munroe <sjmunroe@vnet.ibm.com>
1585
1586 * Examples/ex9.c (main): Use list of children and join them.
1587 (thread): Do not call exit.
1588
9b17bc94
UD
15892002-06-20 Ulrich Drepper <drepper@redhat.com>
1590
1591 * spinlock.c (wait_node_alloc): We cannot use compare-and-exchange.
1592 Unconditionally use the code using spinlock. Use __pthread_release
1593 to free a spinlock.
1594 (wait_node_free): Likewise.
1595 (__pthread_acquire, __pthread_release): Unconditionally define.
1596
a6cd9bf9
AJ
15972002-06-07 Jakub Jelinek <jakub@redhat.com>
1598
1599 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Fix typo.
1600
c0a0f9a3
UD
16012002-05-24 Ulrich Drepper <drepper@redhat.com>
1602
1603 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Use __sync_synchronize.
1604
12b7f470
UD
16052002-05-21 Ulrich Drepper <drepper@redhat.com>
1606
1607 * sysdeps/pthread/pthread.h (pthread_create): Rename first
1608 parameter.
1609 (pthread_cancel): Likewise.
1610 * internals.h (__pthread_create_2_1): Likewise.
1611 * sysdeps/unix/sysv/linux/bits/sigthread.h (pthread_kill): Likewise.
1612
4c393b68
UD
16132002-05-20 Ulrich Drepper <drepper@redhat.com>
1614
1615 * sysdeps/alpha/pt-machine.c (THREAD_SELF): Remove clobber.
1616 Patch by Glen Nakamura <gen@flex.com>.
1617
38a7d8ba
UD
16182002-05-03 Ulrich Drepper <drepper@redhat.com>
1619
1620 * signals.c: Move sighandler functions to...
1621 * sighandler.c: ...here. New file.
1622 * signals.c: Move signal handler related type definitions to...
1623 * internals.h: ...here. Add prototypes for signal handlers.
1624 * Makefile (libpthread-routines): Add sighandler.
1625 (CFLAGS-sighandler.c): Add $(exceptions).
1626
531bafd8
UD
16272002-04-30 Jakub Jelinek <jakub@redhat.com>
1628
1629 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
1630
14b2ede5
UD
16312002-04-08 Ulrich Drepper <drepper@redhat.com>
1632
1633 * sysdeps/pthread/timer_getoverr.c: Return real overrun.
1634 * sysdeps/pthread/posix-timer.h (struct timer_node): Add overrun_count.
1635 * sysdeps/pthread/timer_routines.c (thread_func): Schedule next timeout
1636 based on previous one and not on current time. Count overruns.
1637 Patch by Eric F. Sorton <eric@cctcorp.com>.
1638
1639 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add DELAYTIMER_MAX.
1640
776cc5d3
UD
16412002-04-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
1642
1643 * sysdeps/sh/pt-machine.h: Define _PT_MACHINE_H
1644 if it isn't defined yet.
14b2ede5 1645 (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Defined.
776cc5d3
UD
1646 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
1647 Likewise.
1648 * sysdeps/sh/tls.h: New file.
1649
3632a260
UD
16502002-04-08 Jakub Jelinek <jakub@redhat.com>
1651
1652 * manager.c (__pthread_manager_event): Use self instead of arg
1653 for INIT_THREAD_SELF.
1654 * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Use sizeof (struct
1655 _pthread_descr_struct) instead of sizeof (*descr).
1656
3fc2f6c8
UD
16572002-04-05 Ulrich Drepper <drepper@redhat.com>
1658
1659 * sysdeps/ia64/pt-machine.h: Protect against multiple inclusion.
1660 * sysdeps/alpha/pt-machine.h: Likewise.
1661 * sysdeps/arm/pt-machine.h: Likewise.
1662 * sysdeps/cris/pt-machine.h: Likewise.
1663 * sysdeps/hppa/pt-machine.h: Likewise.
1664 * sysdeps/m68k/pt-machine.h: Likewise.
1665 * sysdeps/mips/pt-machine.h: Likewise.
1666 * sysdeps/powerpc/pt-machine.h: Likewise.
1667 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
1668 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
1669 * sysdeps/sh/pt-machine.h: Likewise.
1670 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
1671 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1672 * sysdeps/x86_64/pt-machine.h: Likewise.
1673
6736e93b
UD
16742002-04-05 Jakub Jelinek <jakub@redhat.com>
1675
1676 * man/pthread_mutexattr_init.man (pthread_mutexattr_settype): Document
1677 instead of pthread_mutexattr_setkind_np.
1678 (pthread_mutexattr_gettype): Similarly.
1679 * man/pthread_mutexattr_setkind_np.man: New.
1680 * man/Makefile (SOURCES): Add pthread_mutexattr_setkind_np.man.
1681
62097690
UD
16822002-04-02 Ulrich Drepper <drepper@redhat.com>
1683
1684 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Define.
1685
fbaee91d
UD
16862002-03-22 Jakub Jelinek <jakub@redhat.com>
1687
1688 * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Remove.
1689
32fe4a93
UD
16902002-03-22 Ulrich Drepper <drepper@redhat.com>
1691
1692 * internals.h (MEMORY_BARRIER): Define as asm with memory as clobber.
1693
f68137c9
AJ
16942002-03-17 Andreas Jaeger <aj@suse.de>
1695
1696 * sysdeps/i386/pt-machine.h: Add testandset and __compare_and_swap
1697 prototpyes.
1698 * sysdeps/alpha/pt-machine.h: Likewise.
1699 * sysdeps/arm/pt-machine.h: Likewise.
1700 * sysdeps/cris/pt-machine.h: Likewise.
1701 * sysdeps/hppa/pt-machine.h: Likewise.
1702 * sysdeps/i386/i686/pt-machine.h: Likewise.
1703 * sysdeps/ia64/pt-machine.h: Likewise.
1704 * sysdeps/m68k/pt-machine.h: Likewise.
1705 * sysdeps/mips/pt-machine.h: Likewise.
1706 * sysdeps/powerpc/pt-machine.h: Likewise.
1707 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
1708 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
1709 * sysdeps/sh/pt-machine.h: Likewise.
1710 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
1711 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1712 * sysdeps/x86_64/pt-machine.h: Likewise.
1713
1714 * internals.h: Move testandset and __compare_and_swap prototypes
1715 to pt-machine.h.
1716
1bd8ff7b
AJ
17172002-03-03 Andreas Jaeger <aj@suse.de>
1718
1719 * errno.c: Include resolv.h to avoid warning.
1720
b863ccd7
UD
17212002-02-27 Ulrich Drepper <drepper@redhat.com>
1722
1723 * pthread.c [USE_TLS] (thread_self_stack): Correct check for upper
1724 stack limit.
1725
557fab43
UD
17262002-02-23 Ulrich Drepper <drepper@redhat.com>
1727
b6a0a996
UD
1728 * attr.c (pthread_getattr_np): Don't take thread descriptor size
1729 into account if USE_TLS.
1730 * manager.c (pthread_handle_create): Free TLS data structures if call
1731 failed. Pass correct stack to clone if USE_TLS.
1732 * sysdeps/i386/pt-machine.h: Handle multiple inclusion.
1733 * sysdeps/i386/i686/pt-machine.h: Likewise.
1734 * sysdeps/i386/tls.h: Unconditionally include <pt-machine.h>.
1735
557fab43
UD
1736 * descr.h (struct _pthread_descr_struct): Update p_header for TLS.
1737 Add p_stackaddr element #if USE_TLS.
1738 * internals.c: Include <tls.h>.
1739 * manager.c: Integrate creating and handling of thread descriptor
1740 for TLS.
1741 * pthread.c: Likewise.
1742 * sysdeps/i386/tls.h (tcbhead_t): Add self pointer.
1743 Include <linuxthreads/descr.h> only if TLS is really used.
1744 (GET_DTV): New macro.
1745 (TLS_INIT_TP): Initialize self pointer.
1746
232bd771
UD
17472002-02-17 Andreas Schwab <schwab@suse.de>
1748
1749 * signals.c (sigwait): Check for old sighandler being SIG_ERR,
1750 not NULL.
1751
aed283dd
UD
17522002-02-12 Ulrich Drepper <drepper@redhat.com>
1753
1754 * sysdeps/i386/tls.c (INSTALL_NEW_DTV): Define.
1755 (INSTALL_DTV): Adjust for being passed pointer to element with length.
1756
974ac3d6
UD
17572002-02-08 Ulrich Drepper <drepper@redhat.com>
1758
1759 * sysdeps/i386/tls.h (TLS_INIT_TP): Also initialize %gs.
1760
aed283dd 17612002-02-08 Richard Henderson <rth@redhat.com>
2a535bf6
UD
1762
1763 * sysdeps/alpha/elf/pt-initfini.c: Use \n\ for multiline string.
1764
67eb7235
UD
17652002-02-08 Ulrich Drepper <drepper@redhat.com>
1766
1767 * sysdeps/i386/tls.h: TLS cannot be supported with FLOATING_STACKS
1768 after all.
1769
1a70fdb3
AJ
17702002-02-07 H.J. Lu <hjl@gnu.org>
1771
1772 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Silence the
1773 gcc warning.
1774 (__pthread_spin_lock): Remove ".set noreorder".
1775 * sysdeps/mips/pt-machine.h (__compare_and_swap): Liekwise.
1776
a6049f98
AJ
17772002-02-05 H.J. Lu <hjl@gnu.org>
1778
1779 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Not use
1780 branch likely.
1781 * sysdeps/mips/pt-machine.h (testandset): Likewise.
1782 (__compare_and_swap): Likewise.
1783
cd30b01e
UD
17842002-02-07 Ulrich Drepper <drepper@redhat.com>
1785
1786 * internals.h: Move declarations/definitions of
1787 __pthread_initial_thread_bos, __pthread_initial_thread,
1788 __pthread_manager_thread_bos, __pthread_manager_thread_tos,
1789 __pthread_manager_thread, __pthread_nonstandard_stacks, STACK_SIZE,
1790 CURRENT_STACK_FRAME, __pthread_find_self, and thread_self...
1791 * descr.h: ...here.
1792 * sysdeps/i386/tls.h: Add TLS definitions also for !FLOATING_STACKS.
1793 Define THREAD_GETMEM accordingly.
1794
3fb55878
UD
17952002-02-06 Ulrich Drepper <drepper@redhat.com>
1796
8d4b5a8a
UD
1797 * sysdeps/i386/tls.h: Include <stddef.h> for size_t.
1798
3fb55878
UD
1799 * sysdeps/i386/tls.h: Define THREAD_DTV.
1800
535b764d
UD
18012002-02-04 Ulrich Drepper <drepper@redhat.com>
1802
1803 * internals.h: Move thread descriptor definition...
1804 * descr.h.: ...here. New file.
1805 * sysdeps/i386/tls.h: New file.
1806
654a7a0c
UD
18072002-02-01 H.J. Lu <hjl@gnu.org>
1808
1809 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Use a
1810 different register in the delayed slot. Use branch likely.
1811
1812 * sysdeps/mips/pt-machine.h (testandset): Call _test_and_set.
1813 (__compare_and_swap): Return 0 only when failed to compare. Use
1814 branch likely.
1815
fb23eb25
UD
18162002-02-01 Jakub Jelinek <jakub@redhat.com>
1817
1818 * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set,
1819 __pthread_kill_other_threads_np): Move to GLIBC_PRIVATE.
1820 * sysdeps/i386/i586/Versions: Move all symbols to GLIBC_PRIVATE.
1821 * sysdeps/i386/i686/Versions: Move all symbols to GLIBC_PRIVATE.
1822 * sysdeps/sparc/sparc32/sparcv9/Versions: New file.
1823 * sysdeps/sparc/sparc64/Versions: New file.
1824 * sysdeps/ia64/Versions: Move all symbols to GLIBC_PRIVATE.
1825
5688da55
UD
18262002-01-31 Ulrich Drepper <drepper@redhat.com>
1827
1828 * pthread.c: _dl_cpuclock_offset is not any longer a global variable
1829 in SHARED code, use GL(dl_cpuclock_offset).
1830
dde762a2
AJ
18312002-01-28 Andreas Jaeger <aj@suse.de>
1832
1833 * sysdeps/mips/pspinlock.c (__pthread_spin_init): Clear *LOCK to
1834 0. Patch by Machida Hiroyuki <machida@sm.sony.co.jp>.
1835
956f8acd
UD
18362002-01-16 Martin Schwidefsky <schwidefsky@de.ibm.com>
1837
dde762a2
AJ
1838 * sysdeps/s390/s390-32/pt-machine.h (MEMORY_BARRIER): Define.
1839 (CURRENT_STACK_FRAME): Remove duplicate definition.
1840 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
956f8acd 1841
01d1a5b6
UD
18422002-01-14 Martin Schwidefsky <schwidefsky@de.ibm.com>
1843
ec562b3d
UD
1844 * Makefile (CFLAGS-tst-cancel.c): Add -fno-inline-functions to prevent
1845 automatic inline.
01d1a5b6 1846
de13e6e7
UD
18472002-01-12 Andreas Schwab <schwab@suse.de>
1848
1849 * Makefile (test-srcs): Add tst-signal.
1850 (tests): Run tst-signal.
1851 (distribute): Add tst-signal.sh.
1852 * tst-signal.c, tst-signal.sh: New files.
1853
037af25e
AJ
18542002-01-14 Andreas Jaeger <aj@suse.de>
1855
1856 * sysdeps/x86_64/pt-machine.h (INIT_THREAD_SELF): Avoid warning.
1857
6c69f24a
UD
18582002-01-11 Andreas Schwab <schwab@suse.de>
1859
1860 * signals.c (sighandler): Initialize all elements to SIG_ERR.
1861 (__sigaction): Don't use value from sighandler if it is SIG_ERR.
1862
abd33689
UD
18632002-01-06 Richard Henderson <rth@redhat.com>
1864
1865 * sysdeps/alpha/elf/pt-initfini.c: New file.
1866
9403ec5d
AJ
18672001-12-29 Andreas Jaeger <aj@suse.de>
1868
1869 * Examples/ex9.c: Add noreturn attribute for thread.
1870 * Examples/ex10.c: Likewise.
1871 * Examples/ex13.c (thread_start): Likewise.
1872 * Examples/ex15.c (worker): Likewise.
1873
1874 * Examples/ex18.c: Include unistd.h for prototype of sleep.
1875
638621af
UD
18762001-12-14 Ulrich Drepper <drepper@redhat.com>
1877
1878 * man/pthread_atfork.man: Adjust description of mutex handling
1879 after fork for current implementation.
1880 * linuxthreads.texi: Likewise [PR libc/2519].
1881
2e22fed2
UD
18822001-12-13 Andreas Schwab <schwab@suse.de>
1883
1884 * specific.c (pthread_key_delete): Don't contact the thread
1885 manager if no threads have been created yet.
1886
abd33689 18872001-12-12 NIIBE Yutaka <gniibe@m17n.org>
2bfe5fd1
UD
1888
1889 * sysdeps/sh/pt-machine.h (INIT_THREAD_SELF): Added __volatile__
1890 qualifier to be safe.
1891
c3317d1e
UD
18922001-11-30 Andreas Schwab <schwab@suse.de>
1893
1894 * pthread.c (pthread_handle_sigcancel) [THREAD_SELF]: Double check
1895 that self is the manager thread, and initialize the thread
1896 register if not.
1897 (thread_self_stack) [THREAD_SELF]: New function to find self via
1898 stack pointer.
1899 * manager.c (pthread_handle_create): Don't block cancel signal any
1900 more.
1901
64753027
AJ
19022001-11-29 Andreas Jaeger <aj@suse.de>
1903
2e22fed2 1904 * sysdeps/x86_64/pt-machine.h: Use %gs as thread specific register.
64753027
AJ
1905 (THREAD_SELF): New.
1906 (INIT_THREAD_SELF): New.
1907 (THREAD_GETMEM): New.
c3317d1e 1908 (THREAD_GETMEM_NC):
64753027
AJ
1909 (THREAD_SETMEM): New.
1910 (THREAD_SETMEM_NC): New.
1911 (FLOATING_STACKS): Define.
1912 (ARCH_STACK_MAX_SIZE): Define.
1913
03a2c647
UD
19142001-11-28 Kaz Kylheku <kaz@ashi.footprints.net>
1915
1916 Bugfix to pthread_key_delete. It was iterating over the thread
1917 manager's linked list of threads, behind the thread manager's
1918 back causing a race. The fix is to have the manager iterate over
1919 the threads instead, using a new request type for doing so.
1920 * internals.h (struct pthread_request): New manager request type
1921 REQ_FOR_EACH_THREAD.
1922 * manager.c (pthread_for_each_thread): New function.
1923 (__pthread_manager): Handle new REQ_FOR_EACH_THREAD request.
1924 * specific.c (struct pthread_key_delete_helper_args): New type.
1925 (pthread_key_delete_helper): New static function.
1926 (pthread_key_delete): Use the new thread manager
1927 REQ_FOR_EACH_THREAD function to iterate over the threads and set
1928 the delete key slot to a null value in each thread.
1929 * Examples/ex18.c: New test.
1930 * Makefile (tests): Add ex18.
1931
cf6a2367
UD
19322001-11-22 Wolfram Gloger <wg@malloc.de>
1933
1934 * pthread.c (pthread_onexit_process): Don't call free
1935 after threads have been asynchronously terminated.
1936
1937 * manager.c (pthread_handle_exit): Surround cancellation
1938 of threads with __flockfilelist()/__funlockfilelist().
1939
30f5deff
AS
19402001-11-26 Andreas Schwab <schwab@suse.de>
1941
1942 * manager.c (pthread_handle_create): Start the child thread with
1943 the cancel signal blocked, so that it does not handle it before
1944 the thread register is set up. Save errno from failed clone call.
1945
4acda75c
UD
19462001-11-15 Ulrich Drepper <drepper@redhat.com>
1947
1948 * sysdeps/i386/i686/Implies: Removed.
1949 * sysdeps/i386/i686/Versions: New file.
1950
76f93292
AJ
19512001-10-31 Andreas Jaeger <aj@suse.de>
1952
1953 * sysdeps/x86_64/Makefile: Remove, we do not need it anymore.
1954
b61345a1
UD
19552001-10-05 Kevin Buettner <kevinb@cygnus.com>
1956
1957 * pthread.c (__linuxthread_pthread_sizeof_descr): Change name
1958 to __linuxthreads_pthread_sizeof_descr to match name used by
1959 symbol_list_arr[LINUXTHREADS_PTHREAD_SIZEOF_DESCR] in
1960 linuxthreads_db/td_symbol_list.c.
1961
2be2ce5f
AJ
19622001-09-22 Andreas Jaeger <aj@suse.de>
1963
1964 * linuxthreads/tst-context.c: Avoid compile warning.
1965
d8d373c5
AJ
19662001-09-20 Andreas Jaeger <aj@suse.de>
1967
1968 * shlib-versions: Add x86-64.
1969
c9cf6dde
AJ
19702001-09-19 Andreas Jaeger <aj@suse.de>
1971
1972 * sysdeps/x86_64/Makefile: New file.
1973 * sysdeps/x86_64/pspinlock.c: New file.
1974 * sysdeps/x86_64/pt-machine.h: New file.
1975
7aba050d
UD
19762001-09-12 Jakub Jelinek <jakub@redhat.com>
1977
1978 * sysdeps/pthread/timer_delete.c (timer_delete): Thread may be NULL
1979 for SIGEV_NONE.
1980 * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
1981
57642a78 19822001-09-11 Ulrich Drepper <drepper@redhat.com>
7aba050d 1983 Wolfram Gloger <wg@malloc.de>
57642a78
UD
1984
1985 * join.c: Protect all communications from and to manager with
1986 TEMP_FAILURE_RETRY.
1987 * manager.c: Likewise.
1988 * pthread.c: Likewise.
1989 * smeaphore.c: Likewise.
1990
746802f2
UD
19912001-08-29 Ulrich Drepper <drepper@redhat.com>
1992
1993 * spinlock.c (__pthread_lock): Top max_count value with
1994 MAX_ADAPTIVE_SPIN_COUNT.
1995 * internals.h (MAX_ADAPTIVE_SPIN_COUNT): Define if not already done.
1996
1997 * sysdeps/i386/i686/pt-machine.h (BUSY_WAIT_NOP): New macro to
1998 help P4.
1999
c06a49c5
UD
20002001-08-27 Jakub Jelinek <jakub@redhat.com>
2001
2002 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_t): Only define to
2003 non-opaque type if __USE_UNIX98.
2004
82ad8034
UD
20052001-08-26 Jakub Jelinek <jakub@redhat.com>
2006
2007 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_t): Define
2008 non-opaque lock types also if _IO_MTSAFE_IO is defined.
2009
edb63884
RM
20102001-08-23 Roland McGrath <roland@frob.com>
2011
2012 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start): Take
2013 new first argument, skip the cleanup handler if it's zero.
2014 (_LIBC_LOCK_RECURSIVE_INITIALIZER): New macro.
2015 (__libc_lock_define_initialized_recursive): Use it.
2016 * sysdeps/pthread/bits/stdio-lock.h: File removed.
2017 The sysdeps/generic file from the main tree now suffices.
2018
c12aa801
RM
20192001-08-22 Roland McGrath <roland@frob.com>
2020
2021 * sysdeps/pthread/bits/stdio-lock.h: Include <bits/libc-lock.h>
2022 instead of <pthread.h>.
2023 (_IO_lock_t): Define this typedef using __libc_lock_define_recursive.
2024 (_IO_lock_initializer): Add braces.
2025 (_IO_lock_lock): Use __libc_lock_lock_recursive.
2026 (_IO_lock_unlock): Use __libc_lock_unlock_recursive.
2027
2028 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_recursive_t): New type.
2029 (__libc_lock_define_initialized_recursive): Use it.
2030 (__libc_lock_init_recursive): Likewise.
2031 (__libc_lock_fini_recursive): Likewise.
2032 (__libc_lock_lock_recursive): Likewise.
2033 (__libc_lock_trylock_recursive): Likewise.
2034 (__libc_lock_unlock_recursive): Likewise.
2035 (__libc_lock_define_recursive): New macro.
2036
5db91571
UD
20372001-08-14 Jakub Jelinek <jakub@redhat.com>
2038
2039 * lockfile.c (__pthread_provide_lockfile): New variable.
2040 * pthread.c (__pthread_require_lockfile): New variable.
2041 * cancel.c (__pthread_require_lockfile): New variable.
2042
ad71126b
UD
20432001-07-31 Ulrich Drepper <drepper@redhat.com>
2044
e14b1447
UD
2045 * tst-context.c (threadfct): Initialize context before calling
2046 makecontext.
2047
ad71126b
UD
2048 * Examples/ex17.c: Make sure test thread is around long enough.
2049
045fcd26
UD
20502001-07-26 kaz Kojima <kkojima@rr.iij4u.or.jp>
2051
2052 * sysdeps/sh/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF): Defined.
2053
f369623d
UD
20542001-07-24 Ulrich Drepper <drepper@redhat.com>
2055
2056 * tst-context.c (main): Print explanation before bailing out
2057 because context handling is not supported.
2058
3afd9491
UD
20592001-07-23 Ulrich Drepper <drepper@redhat.com>
2060
06b5289f
UD
2061 * Makefile (tests): Add tst-context.
2062 * tst-context.c: New file.
2063
3afd9491
UD
2064 * sysdeps/pthread/bits/stdio-lock.h: Define
2065 _IO_cleanup_region_start_noarg.
2066
4b9afc43
UD
20672001-07-23 Jakub Jelinek <jakub@redhat.com>
2068
2069 * sysdeps/alpha/pt-machine.h (FLOATING_STACKS): Define.
2070 (ARCH_STACK_MAX_SIZE): Define.
2071 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
2072 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
2073
8d42e2e5
UD
20742001-07-19 Jakub Jelinek <jakub@redhat.com>
2075
2076 * sysdeps/i386/useldt.h: Fix typo in ARCH_STACK_MAX_SIZE comment.
2077
2078 * sysdeps/ia64/pt-machine.h (FLOATING_STACKS): Define.
2079 (ARCH_STACK_MAX_SIZE): Define.
2080 * manager.c (pthread_allocate_stack): Handle FLOATING_STACKS with
2081 NEED_SEPARATE_REGISTER_STACK.
2082
774a8fe8
UD
20832001-07-16 Andreas Schwab <schwab@suse.de>
2084
2085 * Makefile (before-compile): Don't add $(objpfx)crti.o.
2086 (omit-deps): Add crti.
2087 ($(objpfx)libpthread.so): Depend on $(objpfx)crti.o, but make sure
2088 it is filtered out of the link command.
2089
778e0ef7
UD
20902001-07-16 Ulrich Drepper <drepper@redhat.com>
2091
774a8fe8 2092 * pthread.c (pthread_initialize): For FLOATING_STACKS don't bother
778e0ef7
UD
2093 to find the right value for __pthread_initial_thread_bos, it's not
2094 used. If not FLOATING_STACKS first run
2095 __pthread_init_max_stacksize.
2096
2879ae4a
UD
20972001-06-16 H.J. Lu <hjl@gnu.org>
2098
2099 * internals.h: Include <stackinfo.h>.
2100
2101 * attr.c: Don't include <stackinfo.h> here.
2102 * cancel.c: Likewise.
2103 * manager.c: Likewise.
2104 * pthread.c: Likewise.
2105 * ptlongjmp.c: Likewise.
2106
8fee1bb0
UD
21072001-03-23 Matthew Wilcox <willy@ldl.fc.hp.com>
2108
2109 * attr.c: Make _STACK_GROWS_UP work.
2110 * internals.h: Likewise.
2111 * manager.c: Likewise.
2112 * pthread.c: Likewise.
2113
2e92fd3c
UD
21142001-06-15 H.J. Lu <hjl@gnu.org>
2115
2116 * pthread.c (__pthread_reset_main_thread): Fix a typo.
2117
bad6065c
UD
21182001-02-02 John S. Marvin <jsm@udlkern.fc.hp.com>
2119
2120 * semaphore.h: Use struct _pthread_fastlock as an element of
2121 sem_t instead of an identical struct.
2122 * rwlock.c: Remove casts.
2123 * semaphore.c: Likewise.
2124
e856b72d
AJ
21252001-04-30 Alan Modra <amodra@one.net.au>
2126
2127 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: New.
2128
b912ca11
UD
21292001-05-25 Bruce Mitchener <bruce@cubik.org>
2130
2131 * linuxthreads.texi: Spelling corrections.
2132
17ffa498
UD
21332001-05-25 Ulrich Drepper <drepper@redhat.com>
2134
2135 * oldsemaphore.c (__old_sem_wait): Clear p_nextwaiting before
2136 returning successfully.
2137 Patch by Gene Cooperman <gene@ccs.neu.edu>.
2138
47e5d2a8
UD
21392001-05-24 Ulrich Drepper <drepper@redhat.com>
2140
2141 * spinlock.c (__pthread_lock) [HAS_COMPARE_AND_SWAP]: Before doing any
2142 serious work try once whether the lock is uncontested.
2143 Remove duplicate reading of __status before loop.
2144 Change suggested by Hans Boehm <hans_boehm@hp.com>.
2145
2146 * spinlock.h (__pthread_trylock): Remove need for oldstatus variable.
2147 (__pthread_alt_trylock): Likewise.
2148
9c4a5197
UD
21492001-05-01 Kaz Kylheku <kaz@ashi.footprints.net>
2150
2151 Memory barrier overhaul following line by line inspection.
2152 * mutex.c (pthread_once): Missing memory barriers added.
2153 * pthread.c (__pthread_wait_for_restart_signal,
2154 __pthread_timedsuspend_new, __pthread_restart_new): Added
2155 memory barriers ``just in case'' and for documentary value.
2156 * spinlock.c (__pthread_release): New inline function for releasing
2157 spinlock, to complement __pthread_acquire. Includes memory
2158 barrier prior to assignment to spinlock, and __asm __volatile
2159 dance to prevent reordering or optimization of the spinlock access.
2160 * spinlock.c (__pthread_unlock, __pthread_alt_lock,
2161 __pthread_alt_timedlock, __pthread_alt_unlock,
2162 __pthread_compare_and_swap): Updated to use new __pthread_release
2163 instead of updating spinlock directly.
2164 * spinlock.c (__pthread_lock, __pthread_unlock, wait_node_alloc,
2165 wait_node_free, wait_node_dequeue, __pthread_alt_lock,
2166 __pthread_alt_timedlock, __pthread_alt_unlock, __pthread_acquire):
2167 Memory barrier overhaul. Lots of missing memory barriers added,
2168 a couple needless ones removed.
2169 * spinlock.c (__pthread_compare_and_swap): testandset optimization
2170 removed, just calls __pthread_acquire, which has the new read
2171 barrier in it before its testandset.
2172
f1d71039
RM
21732001-05-20 Roland McGrath <roland@frob.com>
2174
2175 * Makeconfig: New file, variables used to be in main libc Makeconfig.
2176
0e47171f
GK
21772001-05-09 Geoff Keating <geoffk@redhat.com>
2178
f1d71039 2179 * sysdeps/powerpc/pt-machine.h
0e47171f
GK
2180 (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): Define.
2181 (__compare_and_swap): Remove memory barriers.
2182 (__compare_and_swap_with_release_semantics): New function.
2183
dcea709a
AJ
21842001-04-24 Andreas Jaeger <aj@suse.de>
2185
2186 * wrapsyscall.c: send* and recv* return ssize_t.
2187
2188 * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Unlock the
2189 mutex instead of double locking it.
2190 Reported by Pierre Artaud <partaud@sodatec.com>.
2191
3b5c1b57
UD
21922001-04-23 Ulrich Drepper <drepper@redhat.com>
2193
44c51e9a
UD
2194 * sysdeps/pthread/getcpuclockid.c: Make function generic, test
2195 using #ifdef whether the clock is available.
2196 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: Removed.
2197
295125c5
UD
2198 * sysdeps/ia64/Versions: New file.
2199
7e946302
UD
2200 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init): We don't
2201 have to call __gmon_start__ in the libpthread DSO.
2202 * sysdeps/pthread/pt-initfini.c (_init): Likewise.
b5edfe61 2203
3b5c1b57
UD
2204 * Makefile (libpthread-routines): Add ptclock_gettime and
2205 ptclock_settime.
2206 * internals.h: Don't use cpuclock-init.h definitions, use
2207 hp-timing.h definitions.
2208 * pthread.c: Likewise.
2209 * manager.c: Likewise.
2210 * ptclock_gettime.c: New file.
2211 * ptclock_settime.c: New file.
18ac1129
UD
2212 * internals.h: Fix parameter type for __pthread_clock_gettime and
2213 __pthread_clock_settime.
3b5c1b57
UD
2214
2215 * sysdeps/i386/i586/ptclock_gettime.c: Removed.
2216 * sysdeps/i386/i586/ptclock_settime.c: Removed.
2217 * sysdeps/i386/i586/Makefile: Removed.
2218
a3bbce5b
UD
22192001-04-22 Ulrich Drepper <drepper@redhat.com>
2220
2221 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_ASYNCH_IO.
2222 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2223
e6dcf352
AJ
22242001-04-21 Andreas Jaeger <aj@suse.de>
2225
f9e1d149
AJ
2226 * sysdeps/pthread/timer_routines.c (thread_func): Add noreturn
2227 attribute, remove statements that will never be executed.
d8a60a15 2228 (thread_func): Remove mutex_unlock call since it's never executed.
d6f86085 2229 (thread_func): Fix comment as suggested by Jakub Jelinek.
f9e1d149 2230
159a2e1a
AJ
2231 * manager.c (__pthread_manager): Add noreturn
2232 attribute.
2233 (pthread_start_thread): Likewise, remove return statement.
2234 (pthread_start_thread_event): Likewise.
2235 Add noreturn attribute for pthread_handle_exit.
2236 * weaks.c: Add noreturn attribute for pthread_exit.
2237
e6dcf352
AJ
2238 * internals.h: Add __pthread_clock_gettime and
2239 __pthread_clock_settime prototypes.
2240
5fc48cd7
UD
22412001-04-21 Ulrich Drepper <drepper@redhat.com>
2242
2243 * internals.h: Include <cpuclock-init.h>.
2244 (struct _pthread_descr_struct): Add p_cpuclock_offset field if
2245 CPUCLOCK_VARDEF is defined.
2246 * pthread.c (__pthread_initialize_minimal): Initialize
2247 p_cpuclock_offset field for main thread if CPUCLOCK_INIT is defined.
2248 * manager.c (pthread_start_thread): Set p_cpuclock_offset field
2249 for new thread to current CPU clock value.
2250
2251 * sysdeps/i386/useldt.h: Extend all the macros to handle 8-byte values.
2252
2253 * sysdeps/i386/i586/Makefile: New file.
2254 * sysdeps/i386/i586/Versions: New file.
2255 * sysdeps/i386/i586/ptclock_gettime.c: New file.
2256 * sysdeps/i386/i586/ptclock_settime.c: New file.
2257 * sysdeps/i386/i686/Implies: New file.
2258
9bab9806
UD
22592001-04-18 Jakub Jelinek <jakub@redhat.com>
2260
2261 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Put specs into
2262 $generated, not $postclean-generated.
2263
80ff3e34
AJ
22642001-04-18 Andreas Jaeger <aj@suse.de>
2265
2266 * Makefile (otherlibs): Added.
2267
ddad941e
UD
22682001-04-18 Jakub Jelinek <jakub@redhat.com>
2269
2270 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
2271
9b7ee67e
UD
22722001-04-16 Ulrich Drepper <drepper@redhat.com>
2273
2274 * signals.c (sigwait): NSIG is no signal number. Block all
2275 signals while in signal handler for signals in SET.
2276 Patch by Manfred Spraul <manfred@colorfullife.com>.
2277
b721a2c0
UD
22782001-04-12 Ulrich Drepper <drepper@redhat.com>
2279
a08877d0
UD
2280 * tst-cancel.c: Disable most tests. Add new test where all
2281 cleanup handlers must run.
2282 * Makefile (tests): Add tst-cancel again.
2283
2284 * cancel.c (__pthread_perform_cleanup): Correct condition for
2285 leaving cleanup loop early.
2286
b775be64
UD
2287 * sysdeps/i386/Makefile: Make sure gcc uses a frame pointer for
2288 all the files which use CURRENT_STACK_FRAME.
b721a2c0
UD
2289 * sysdeps/i386/pt-machine.h (CURRENT_STACK_FRAME): Define using
2290 __builtin_frame_address.
2291 * sysdeps/i386/i686/pt-machine.h: Likewise.
2292
7d4c3e67
UD
22932001-04-11 Ulrich Drepper <drepper@redhat.com>
2294
9dd7309c
UD
2295 * Makefile (tests): Comment out tst-cancel for now.
2296
7d4c3e67
UD
2297 * tst-cancel.c (main): Cleanup 4 is supposed to run. Create
2298 temporary file in object directory.
2299 * Makefile: Don't allow inlining when compiling tst-cancel.c.
2300 Pass $(objpfx) to tst-cancel.
2301
43df859b
UD
23022001-04-11 David S. Miller <davem@redhat.com>
2303
2304 * sysdeps/sparc/sparc32/pt-machine.h (stack_pointer): Advance
2305 up closer to user local variables so that new cleanup heuristics work.
2306 * sysdeps/sparc/sparc64/pt-machine.h (stack_pointer): Likewise.
2307
95fe9d95
UD
23082001-04-11 Ulrich Drepper <drepper@redhat.com>
2309
2310 * cancel.c (_pthread_cleanup_push): Catch invalid __prev buffer
2311 and remove it.
2312 (_pthread_cleanup_push_defer): Likewise.
2313
2314 * tst-cancel.c (main): Fix loop printing cleanup output.
2315
07bccb46
UD
23162001-04-10 kaz Kojima <kkojima@rr.iij4u.or.jp>
2317
2318 * sysdeps/sh/pspinlock.c (__pthread_spin_lock): Fix a reverse
2319 test.
2320 (__pthread_spin_trylock): Likewise.
2321 * sysdeps/sh/pt-machine.h (testandset): Likewise.
2322
58f46c79
UD
23232001-04-10 Ulrich Drepper <drepper@redhat.com>
2324
2325 * join.c (pthread_exit): Move code to new function __pthread_do_exit
2326 which takes an extra parameter with the current frame pointer.
2327 Call new function with CURRENT_STACK_FRAME.
2328 (__pthread_do_exit): New function. Call __pthread_perform_cleanup
2329 with the new parameter.
2330 (pthread_join): Call __pthread_do_exit instead of pthread_exit.
2331 * cancel.c (__pthread_perform_cleanup): Takes extra parameter. Use
2332 this parameter as the initial value the cleanup handler records are
2333 compared against. No active cleanup handler record must have an
2334 address lower than the previous one and the initial record must be
2335 above (below on PA) the frame address passed in.
2336 (pthread_setcancelstate): Call __pthread_do_exit instead of
2337 pthread_exit.
2338 (pthread_setcanceltype): Likewise.
2339 (pthread_testcancel): Likewise.
2340 (_pthread_cleanup_pop_restore): Likewise.
2341 * condvar.c (pthread_cond_wait): Likewise.
2342 (pthread_cond_timedwait_relative): Likewise.
2343 * manager.c (pthread_start_thread): Likewise.
2344 * oldsemaphore.c (__old_sem_wait): Likewise.
2345 * pthread.c (pthread_handle_sigcancel): Likewise.
2346 * semaphore.c (__new_sem_wait): Likewise.
2347 (sem_timedwait): Likewise.
2348 * ptlongjmp.c (pthread_cleanup_upto): Also use current stack frame
2349 to limit the cleanup handlers which get run.
2350 * internals.h: Add prototype for __pthread_do_exit. Adjust prototype
2351 for __pthread_perform_cleanup.
2352
2353 * Makefile (tests): Add tst-cancel.
2354 * tst-cancel.c: New file.
2355
eacde9d0
UD
23562001-04-08 Hans-Peter Nilsson <hp@axis.com>
2357
2358 * sysdeps/cris/pt-machine.h: New file.
2359 * sysdeps/cris/pspinlock.c: New file.
2360
23612001-04-09 Hans-Peter Nilsson <hp@axis.com>
2362
2363 * shlib-versions: Add case for Linux on CRIS.
2364
93a4b7ca
UD
23652001-03-26 Ulrich Drepper <drepper@redhat.com>
2366
2367 * attr.c (pthread_getattr_np): Correct computation of stack size
2368 for machiens with register stack.
2369
2370 * Examples/ex17.c (main): Correct detection of failed mmap call.
2371
844b79a6
UD
23722001-03-21 Jakub Jelinek <jakub@redhat.com>
2373
2374 * pthread.c (__pthread_initialize_manager): Fix a typo.
2375
cf4431ed
UD
23762001-03-21 Jakub Jelinek <jakub@redhat.com>
2377
2378 * attr.c (__pthread_attr_setstack): Fix alignment check.
2379 (pthread_getattr_np): __stackaddr is top of stack, not bottom.
2380 * Makefile (tests): Add ex17 test.
2381 * Examples/ex17.c: New test.
2382
373e6a51
UD
23832001-03-20 Ulrich Drepper <drepper@redhat.com>
2384
481b550f 2385 * Makefile: Define -D_RPC_THREAD_SAFE_ for cancel.c.
373e6a51 2386 * cancel.c (__pthread_perform_cleanup): Call __rpc_thread_destroy.
f1e4a4a4 2387 * sysdeps/pthread/bits/libc-tsd.h: Define _LIBC_TSD_KEY_VARS.
373e6a51 2388
639c3248
UD
23892001-03-18 Ulrich Drepper <drepper@redhat.com>
2390
2391 * Makefile: When generating DSO link with libc_nonshared.a.
2392
7c91639e
UD
23932001-02-26 Jakub Jelinek <jakub@redhat.com>
2394
2395 * signals.c (pthread_sighandler): Use CALL_SIGHANDLER.
2396
a66f0958
UD
23972001-02-23 Jakub Jelinek <jakub@redhat.com>
2398
2399 * internals.h (__pthread_init_max_stacksize): New prototype.
2400 * attr.c (__pthread_attr_setstacksize): Call
2401 __pthread_init_max_stacksize if not yet initialized.
2402 * pthread.c (__pthread_init_max_stacksize): New function.
2403 (__pthread_initialize_manager): Call it.
2404 Patch by <dtc@cmucl.cons.org>.
2405
aeba9785
UD
24062001-03-16 Ulrich Drepper <drepper@redhat.com>
2407
2408 * attr.c (pthread_getattr_np): Fix __stacksize computation for IA-64.
2409
136d4332
UD
24102001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
2411
2412 * shlib-versions: Add rule for Linux on 64 bit S/390.
2413 * sysdeps/s390/s390-64/pt-machine.h: New file.
2414 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
2415
24162001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
2417
2418 * sysdeps/s390/pt-machine.h: Move to...
2419 * sysdeps/s390/s390-32/pt-machine.h: ...here.
2420 Add defines for FLOATING_STACK and ARCH_STACK_MAX_SIZE.
2421
3bf927cb
UD
24222001-03-15 Ulrich Drepper <drepper@redhat.com>
2423
2424 * Versions [libpthread] (GLIBC_2.2.3): Add pthread_getattr_np.
2425 * attr.c: Implement pthread_getattr_np.
2426 * sysdeps/pthread/pthread.h: Add prototype for pthread_getattr_np.
2427 * internals.h (struct _pthread_descr_struct): Add p_inheritsched.
2428 * manager.c (pthread_handle_create): Initialize p_inheritsched.
2429
832c025e
AJ
24302001-03-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
2431
3bf927cb 2432 * sysdeps/unix/sysv/linux/s390/pt-initfini.c: Use 0x07 padding for
832c025e
AJ
2433 code alignment.
2434
08b3d7ad
UD
24352001-02-20 Hans Boehm <hans_boehm@hp.com>
2436
2437 * manager.c (manager_mask): Removed static vesion. Now always local
2438 to __pthread_manager().
2439 (manager_mask_all): Removed completely.
2440 (__pthread_manager): Remove manager_mask_all initialization.
2441 (pthread_handle_create): Remove code to set and reset signal mask
2442 around __clone2() calls.
2443
4c48dc93
UD
24442001-02-17 Jakub Jelinek <jakub@redhat.com>
2445
2446 * spinlock.c (__pthread_lock): Force lock->__status to be read from
2447 memory on every spin.
2448
596b2f0e
AJ
24492001-02-10 Andreas Jaeger <aj@suse.de>
2450
2451 * Makefile (extra-objs): New.
2452
257bdad0
UD
24532001-02-09 Jakub Jelinek <jakub@redhat.com>
2454
2455 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Add
2456 __pthread_initialize_minimal prototype.
2457
441f7d1e
UD
24582001-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
2459
2460 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
2461
d7fce7e0
UD
24622001-02-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
2463
2464 * sysdeps/unix/sysv/linux/s390/pt-initfini.c: New file.
2465
672fd41b
UD
24662001-02-06 Ulrich Drepper <drepper@redhat.com>
2467
2468 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: First attempt to fix the
2469 broken code. Patch by Jes Sorensen.
2470
eb8ea10a
AJ
24712001-02-06 Andreas Jaeger <aj@suse.de>
2472
2473 * sysdeps/pthread/pthread.h: Move __pthread_initialize from here
2474 to...
2475 * internals.h: ...here.
2476
5a35dfca
UD
24772001-02-05 Jes Sorensen <jes@linuxcare.com>
2478
2479 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
2480
e4c785c8
UD
24812001-02-02 Ulrich Drepper <drepper@redhat.com>
2482
2483 * Versions: Remove __pthread_initialize_minimal.
2484
b71e7ce8
UD
24852001-02-01 Ulrich Drepper <drepper@redhat.com>
2486
2487 * Makefile: Add rules to build crti.o and make it being used in
2488 building libpthread.so.
2489 * sysdeps/i386/Makefile: New file.
2490 * sysdeps/pthread/pt-initfini.c: New file.
2491
2492 * pthread.c: Cleanups.
2493
7dcc4ea0
AJ
24942001-01-28 Andreas Jaeger <aj@suse.de>
2495
2496 * oldsemaphore.c (__old_sem_init): Adjust for last change.
2497 * sysdeps/pthread/bits/libc-lock.h: Likewise.
2498 * spinlock.c: Likewise.
2499
48ba4bd2
UD
25002001-01-28 Ulrich Drepper <drepper@redhat.com>
2501
2502 * sysdeps/pthread/bits/initspin.h: Make all names namespace clean.
2503 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
2504 * manager.c: Adjust for namespace cleanup in bits/initspin.h.
2505 * pthread.c: Likewise.
2506 * spinlock.h: Likewise.
2507 * sysdeps/pthread/pthread.h: Likewise.
2508
edf9cc89
UD
25092001-01-26 Ulrich Drepper <drepper@redhat.com>
2510
61f9d0a3
UD
2511 * sysdeps/pthread/bits/pthreadtypes.h: Define pthread_attr_t also
2512 as struct __pthread_attr_s.
2513
edf9cc89
UD
2514 * semaphore.h (sem_t): Cleanup namespace, rename status and
2515 spinlock elements.
2516
3f738366
UD
25172001-01-13 Jakub Jelinek <jakub@redhat.com>
2518
2519 * pthread.c (pthread_onexit_process): Clear
2520 __pthread_manager_thread_bos after freeing it.
2521 * Makefile (tests): Add ex16.
2522 * Examples/ex16.c: New file.
2523
5ef50d00
UD
25242001-01-11 Jakub Jelinek <jakub@redhat.com>
2525
2526 * Makefile (CFLAGS-pthread.c): Pass -DHAVE_Z_NODELETE if ld supports
2527 -z nodelete.
2528 * pthread.c (pthread_exit_process): Rename to...
2529 (pthread_onexit_process): ...this.
2530 (pthread_atexit_process, pthread_atexit_retcode): New.
2531 (pthread_initialize): Call __cxa_atexit instead of __cxa_on_exit
2532 and only if HAVE_Z_NODELETE is not defined.
2533 (__pthread_initialize_manager): Register pthread_atexit_retcode
2534 with __cxa_atexit.
2535
7e36861e
UD
25362001-01-11 Ulrich Drepper <drepper@redhat.com>
2537
2538 * pthread.c (pthread_initialize): Use __cxs_on_exit not __cxa_atexit.
2539
25402001-01-11 Jakub Jelinek <jakub@redhat.com>
2541
2542 * Makefile (tests): Add ex15.
2543 * Examples/ex15.c: New test.
2544
1950ebc6
UD
25452001-01-08 Ulrich Drepper <drepper@redhat.com>
2546
2547 * pthread.c (pthread_exit_process): Free memory allocated for
2548 manager stack.
2549
af8240eb 25502000-12-31 Ulrich Drepper <drepper@redhat.com>
1c566118 2551
af8240eb
UD
2552 * manager.c (pthread_alloca_stack): Remove MAP_FIXED from mmap calls.
2553 (pthread_free): Always unmap the stack. It's safe now that we don't
2554 use MAP_FIXED to allocate stacks.
1c566118 2555
41b64fc4
UD
25562000-12-31 Ulrich Drepper <drepper@redhat.com>
2557
2558 * sysdeps/powerpc/pspinlock.c: Don't include pt-machine.h here.
2559
2560 * manager.c (pthread_allocate_stack): Prepare for removal of MAP_FIXED.
2561
09f5e163
UD
25622000-11-15 Wolfram Gloger <wg@malloc.de>
2563
2564 * manager.c (pthread_free): [!FLOATING_STACKS]: Only remap the
2565 stack to PROT_NONE, don't unmap it, avoiding collisions with malloc.
2566
27ee0a55
AJ
25672000-12-27 Andreas Jaeger <aj@suse.de>
2568
2569 * Examples/ex13.c: Make local functions static.
2570 * ecmutex.c: Likewise.
784d802e 2571 * joinrace.c: Likewise.
27ee0a55
AJ
2572 * Examples/ex14.c: Likewise.
2573
2574 * Examples/ex2.c: Make local functions static; reformat.
2575 * Examples/ex1.c: Likewise.
2576 * Examples/ex4.c: Likewise.
2577 * Examples/ex5.c: Likewise.
2578 * Examples/ex7.c: Likewise.
2579
2580 * oldsemaphore.c: Add prototypes to shut up GCC.
2581 * pt-machine.c: Likewise.
2582
2583 * weaks.c: Add prototype for pthread_exit.
2584
2585 * internals.h: Add some prototypes, format prototypes and add
2586 missing externs.
2587 Move __libc_waitpid prototype to include/sys/wait.h.
2588
2589 * rwlock.c: Include <bits/libc-lock.h> for prototypes.
2590 * mutex.c: Likewise.
2591 * specific.c: Likewise.
2592 * ptfork.c: Likewise.
2593
2594 * lockfile.c: Include internals.h to get prototypes.
2595 * events.c: Likewise.
2596 * sysdeps/alpha/pspinlock.c: Likewise.
2597 * sysdeps/arm/pspinlock.c: Likewise.
2598 * sysdeps/hppa/pspinlock.c: Likewise.
2599 * sysdeps/i386/pspinlock.c: Likewise.
2600 * sysdeps/ia64/pspinlock.c: Likewise.
2601 * sysdeps/m68k/pspinlock.c: Likewise.
2602 * sysdeps/mips/pspinlock.c: Likewise.
2603 * sysdeps/powerpc/pspinlock.c: Likewise.
2604 * sysdeps/s390/pspinlock.c: Likewise.
2605 * sysdeps/sh/pspinlock.c: Likewise.
2606 * sysdeps/sparc/sparc32/pspinlock.c: Likewise.
2607 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
2608 * sysdeps/sparc/sparc64/pspinlock.c: Likewise.
2609
33c80ad7
UD
26102000-12-27 Ulrich Drepper <drepper@redhat.com>
2611
21112857
UD
2612 * attr.c (__pthread_attr_setstack): Fix setting of __stackaddr element.
2613 (__pthread_attr_getstack): Return correct address.
2614 Add warnings for using pthread_attr_getstackaddr and
33c80ad7
UD
2615 pthread_attr_setstackaddr.
2616
a6d950b9
UD
26172000-12-26 Ulrich Drepper <drepper@redhat.com>
2618
2619 * Examples/ex6.c (test_thread): Make static.
2620 * Examples/ex12.c (test_thread): Make static and add noreturn
2621 attribute.
2622
ba908190
UD
26232000-12-18 Jes Sorensen <jes@linuxcare.com>
2624
2625 * linuxthreads/sysdeps/ia64/pt-machine.h: __compare_and_swap
2626 and compare_and_swap_with_release_semantics returns int not long.
2627
8cb019ed
AJ
26282000-12-17 Andreas Jaeger <aj@suse.de>
2629
2630 * sysdeps/s390/pt-machine.h (testandset): Use long int as return
2631 value.
2632 * sysdeps/arm/pt-machine.h (testandset): Likewise.
2633 * sysdeps/hppa/pt-machine.h (testandset): Likewise.
2634 * sysdeps/m68k/pt-machine.h (testandset): Likewise.
2635 * sysdeps/sh/pt-machine.h (testandset): Likewise.
2636 * sysdeps/sparc/sparc32/pt-machine.h (testandset): Likewise.
2637 * sysdeps/sparc/sparc64/pt-machine.h (testandset): Likewise.
2638
927a8431
UD
26392000-12-17 Ulrich Drepper <drepper@redhat.com>
2640
2641 * sysdeps/i386/pt-machine.h (testandset): Adjust for prototype change.
2642 * sysdeps/i386/i686/pt-machine.h (testandset): Likewise.
2643
b6e20712
AJ
26442000-12-17 Andreas Jaeger <aj@suse.de>
2645
2646 * internals.h: Add prototypes for testandset and
2647 __compare_and_swap to shut up gcc warnings.
2648
e3690263
UD
26492000-12-06 Wolfram Gloger <wg@malloc.de>
2650
2651 * join.c (pthread_detach): Allow case where the thread has already
2652 terminated.
2653
2e3b9976
AJ
26542000-12-05 Andreas Jaeger <aj@suse.de>
2655
2656 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Don't set mips2.
2657 * sysdeps/mips/pt-machine.h (testandset): Likewise.
2658 (__compare_and_swap): Likewise.
f172bca0 2659 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
2e3b9976 2660
59553897
UD
26612000-11-20 Jakub Jelinek <jakub@redhat.com>
2662
2663 * Examples/ex3.c (main): Cast int to long before casting to void *.
2664 (search): Cast void * to long, not int.
2665 * Examples/ex8.c (main, thread): Similarly.
2666 * Examples/ex11.c (main): Similarly.
2667 * Examples/ex14.c (worker, do_test): Similarly.
2668 * ecmutex.c (worker, do_test): Similarly.
2669 (nlocks): Cast to int.
2670
d3d99893
UD
26712000-11-08 Bruce Mitchener <bruce@cubik.org>
2672
2673 * linuxthreads.texi: Add documentation for pthreads attributes
2674 guardsize, stackaddr, stacksize, and stack. Fix typo in previous
2675 patch. Document pthread_[sg]etconcurrency(). Mark
2676 pthread_mutexattr_[sg]ettype() as POSIX rather than GNU.
2677
a1e88b9a
UD
26782000-11-07 Ulrich Drepper <drepper@redhat.com>
2679
2680 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
2681 Don't define it.
2682 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2683 Reported by Christopher Yeoh <cyeoh@linuxcare.com.au>.
2684
632b6761
UD
26852000-11-06 Ulrich Drepper <drepper@redhat.com>
2686
2687 * cancel.c (pthread_cancel): Always set p_canceled, even if we are
2688 not doing it right now.
2689 Reported by Kaz Kylheku <kaz@ashi.footprints.net>.
2690
02fb3d17
UD
26912000-10-30 Ulrich Drepper <drepper@redhat.com>
2692
2693 * Examples/ex4.c (main): Don't use exit() to avoid warning with
2694 broken compilers.
2695
c6042c73
UD
26962000-10-29 Ulrich Drepper <drepper@redhat.com>
2697
31879cd8 2698 * attr.c (__pthread_attr_setguardsize): Don't round guardsize
d3d99893 2699 here. Reported by Bruce Mitchener <bruce@cubik.org>.
31879cd8 2700
c6042c73
UD
2701 * linuxthreads.texi: Changes terminology to 'type' from 'kind' when
2702 discussing mutexes. (As per the Unix98 name for the API.)
2703 Changes documentation for pthread_mutexattr_setkind_np() and
2704 pthread_mutexattr_getkind_np() over to the Unix98 APIs for the
2705 same: pthread_mutexattr_settype() and pthread_mutexattr_gettype().
2706 Changes references to PTHREAD_MUTEXATTR_FAST_NP to
2707 PTHREAD_MUTEXATTR_ADAPTIVE_NP.
2708 Begins to introduce discussion of the ``timed'' mutex type. This
2709 discussion is currently incomplete.
d3d99893 2710 Patch by Bruce Mitchener <bruce@cubik.org>.
c6042c73 2711
1267f93e
UD
27122000-10-26 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
2713 Yutaka Niibe <gniibe@chroot.org>
2714
2715 * sysdeps/sh/pt-machine.h (testandset): Since the operand of TAS.B
2716 has restrictions, use register.
2717
fd665070
UD
27182000-10-23 Andreas Schwab <schwab@suse.de>
2719
2720 * Examples/ex14.c (TIMEOUT): Override default timeout.
2721
6a14016e
UD
27222000-10-16 Ulrich Drepper <drepper@redhat.com>
2723
2724 * specific.c: Protect tsd array modification in thread data
2725 structures by getting the thread lock in pthread_key_delete and
2726 __pthread_destroy_specifics.
2727 Patch by Wolfram Gloger <Wolfram.Gloger@dent.med.uni-muenchen.de>.
2728
b15cb495
UD
27292000-10-12 Alan Modra <alan@linuxcare.com.au>
2730
2731 * sysdeps/pthread/bits/initspin.h: New file.
2732 * spinlock.h: Move LOCK_INITIALIZER definition to <bits/initspin.h>.
2733 (__pthread_init_lock): Initialize lock with LT_SPINLOCK_INIT.
2734 (__pthread_alt_init_lock): Likewise.
2735 (__pthread_alt_trylock): Release lock with LT_SPINLOCK_INIT.
2736
27372000-10-12 David Huggins-Daines <dhd@linuxcare.com>
2738
2739 * oldsemaphore.c (__old_sem_init): Release lock with
2740 LT_SPINLOCK_INIT, not zero.
2741 * spinlock.c (__pthread_unlock): Likewise.
2742 (__pthread_alt_lock): Likewise.
2743 (__pthread_alt_timedlock): Likewise.
2744 (__pthread_alt_unlock): Likewise.
2745 * sysdeps/pthread/bits/libc-lock.h: Initialize locks with
2746 LT_SPINLOCK_INIT if it is non-zero. Likewise for init-once flags.
2747 * sysdeps/pthread/pthread.h: Include bits/initspin.h. Use
2748 LT_SPINLOCK_INIT do initialize spinlocks not 0.
2749
27502000-10-12 David Huggins-Daines <dhd@linuxcare.com>
2751
2752 * shlib-versions: Add version definitions for hppa-linux.
2753
27542000-10-12 Alan Modra <alan@linuxcare.com.au>
2755
2756 * sysdeps/hppa/pspinlock.c: New file.
2757 * sysdeps/hppa/pt-machine.h: New file.
2758 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: New file.
2759
172b90bb
UD
27602000-10-05 Jakub Jelinek <jakub@redhat.com>
2761
2762 * mutex.c (__pthread_mutex_destroy): Correct test of
2763 busy mutex for mutexes using alternate fastlocks.
2764 Patch by dtc@cmucl.cons.org.
2765
a0386a0d
UD
27662000-09-28 Martin Schwidefsksy <schwidefsky@de.ibm.com>
2767
2768 * sysdeps/s390/pt-machine.h: Make %a0 the thread register.
2769
8cab1d38
UD
27702000-09-28 Ulrich Drepper <drepper@redhat.com>
2771
c0ac34e4
UD
2772 * mutex.c (__pthread_mutex_unlock): For PTHREAD_MUTEX_RECURSIVE_NP
2773 test for owner first.
2774 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2775
8cab1d38
UD
2776 * cancel.c (pthread_cancel): Don't do anything if cancelation is
2777 disabled.
2778
7c3dac53
UD
27792000-09-26 Ulrich Drepper <drepper@redhat.com>
2780
75dbc100
UD
2781 * spinlock.h (__pthread_set_own_extricate_if): Optimize a bit.
2782 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2783
b0557314
UD
2784 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
2785 _POSIX_MONOTONIC_CLOCK.
2786
7c3dac53
UD
2787 * spinlock.h (__pthread_set_own_extricate_if): Add back locking
2788 and explain why.
2789
b025588a
AJ
27902000-09-20 Andreas Jaeger <aj@suse.de>
2791
2792 * pthread.c [!__ASSUME_REALTIME_SIGNALS]: Make inclusion of
2793 "testrtsig.h" conditional.
2794
b81c8961
UD
27952000-09-11 Ulrich Drepper <drepper@redhat.com>
2796
2797 * sysdeps/pthread/pthread.h: Declare pthread_attr_getstack and
2798 pthread_attr_setstack.
2799 * Versions [libpthread] (GLIBC_2.2): Export pthread_attr_getstack and
2800 pthread_attr_setstack.
2801 * attr.c (pthread_attr_getstack, pthread_attr_setstack): New functions.
2802
42437ed1
UD
28032000-09-05 Ulrich Drepper <drepper@redhat.com>
2804
f3d581b8
UD
2805 * Examples/ex14.c: New file.
2806 * Makefile (tests): Add ex14.
2807
42437ed1
UD
2808 * mutex.c (__pthread_mutex_unlock): Correct test for already unlocked
2809 mutex. Patch by dtc@cmucl.cons.org.
2810
2811 * ecmutex.c: New file.
f3d581b8 2812 * Makefile (tests): Add ecmutex.
42437ed1 2813
c743652a
UD
28142000-09-04 H.J. Lu <hjl@gnu.org>
2815
2816 * attr.c (__pthread_attr_setguardsize): Use page_roundup
2817 instead of roundup to round up to the page size.
2818
2e4581e4
UD
28192000-09-03 Mark Kettenis <kettenis@gnu.org>
2820
2821 * manager.c (pthread_exited): Correctly report event as TD_REAP
2822 instead of TD_DEATH. Fix comments.
2823
5afe6c02
UD
28242000-09-03 Ulrich Drepper <drepper@redhat.com>
2825
2826 * spinlock.h (testandset): Add cast to avoid warning.
2827 Patch by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
2828
5376629d
AJ
28292000-09-02 Andreas Jaeger <aj@suse.de>
2830
2831 * sysdeps/pthread/timer_routines.c: Include stdlib.h for abort
2832 prototype.
2833
a8e58aa9
UD
28342000-09-01 Ulrich Drepper <drepper@redhat.com>
2835
aebb1faa
UD
2836 * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start):
2837 Fix typo in last patch (_mode -> _flags).
2838
a8e58aa9
UD
2839 * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start):
2840 Provide definition which respects _IO_USER_LOCK flag.
2841
47cae281
UD
28422000-08-30 Ulrich Drepper <drepper@redhat.com>
2843
2844 * manager.c (pthread_allocate_stack): Clear descriptor only if not
2845 mmaped.
2846
b7fb789d
UD
28472000-08-25 Ulrich Drepper <drepper@redhat.com>
2848
ad7534c8
UD
2849 * Makefile: Add rules to build and run unload.
2850 * unload.c: New file.
2851
2852 * pthread.c (pthread_exit_process): Move thread_self use inside `if'.
7045878b 2853
b7fb789d
UD
2854 * sysdeps/pthread/pthread.h
2855 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Defined.
2856 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: Defined.
2857
7e98470d
AJ
28582000-08-24 Andreas Jaeger <aj@suse.de>
2859
c5ded983
AJ
2860 * Examples/ex13.c: Include <string.h> for strerror prototype and
2861 <stdlib.h> for abort prototype.
7e98470d
AJ
2862 (pthr_cond_signal_mutex): Rewrite to silence GCC.
2863 (thread_start): Remove unused variable err.
2864 (main): Silence GCC warnings.
2865
64f6b8f3
AJ
28662000-08-22 Andreas Jaeger <aj@suse.de>
2867
2868 * Examples/ex13.c: New test by Kurt Garloff <garloff@suse.de>.
2869
2870 * Makefile (tests): Add ex13.
2871
98cbe360
UD
28722000-08-20 Ulrich Drepper <drepper@redhat.com>
2873
2874 * semaphore.h: Add restrict where required by AGd4.
2875 * sysdeps/pthread/pthread.h: Likewise.
2876 * sysdeps/pthread/unix/sysv/linux/bits/sigthread.h: Likewise.
2877
9df76933
UD
28782000-08-15 Ulrich Drepper <drepper@redhat.com>
2879
2880 * Makefile (tests): Add ex12. Add rule to build it.
2881 * Examples/ex12.c: New file.
2882
91bc38d0
UD
28832000-08-13 Ulrich Drepper <drepper@redhat.com>
2884
2885 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_SEMAPHORES
2886 even though the implementation is not quite complete (but it reports
2887 it). Define _POSIX_MESSAGE_PASSING to -1.
2888 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2889
facd11c2
AJ
28902000-08-12 Andreas Jaeger <aj@suse.de>
2891
2892 * sysdeps/mips/pt-machine.h (testandset): Add .set mips2 for
2893 assembler.
2894 (__compare_and_swap): Likewise.
2895 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Likewise.
2896
3459f702
UD
28972000-08-10 Ulrich Drepper <drepper@redhat.com>
2898
2899 * pthread.c (__pthread_initial_thread): Initialize p_errnop and
2900 p_h_errnop correctly and not to NULL.
2901
c9326ed5
UD
29022000-08-05 Ulrich Drepper <drepper@redhat.com>
2903
2904 * Banner: Bump version number to 0.9.
2905
0a8d9231
UD
29062000-08-04 Ulrich Drepper <drepper@redhat.com>
2907
fcd31f5a
UD
2908 * Makefile (tests): Add tststack. Add rule to build the program.
2909 * tststack.c: New file.
2910
234dd7a6
UD
2911 * internals.h: Declare __pthread_max_stacksize.
2912 * pthread.c (__pthread_max_stacksize): New variable.
2913 (__pthread_initialize_manager): Determine __pthread_initialize_manager
2914 value.
2915 * manager.c (thread_segment): Return always NULL if FLOATING_STACKS.
2916 (pthread_allocate_stack): Allow kernel to choose stack address if
2917 FLOATING_STACKS. This also handles variable-sized stacks.
c9326ed5 2918 Always allocate stack and guardpage together. Use mprotect to
234dd7a6
UD
2919 change guardpage access.
2920 * sysdeps/i386/useldt.h: Define FLOATING_STACKS and
2921 ARCH_STACK_MAX_SIZE.
2922
2923 * attr.c (__pthread_attr_setstacksize): Also test value against
2924 upper limit.
2925
0a8d9231
UD
2926 * manager.c (__pthread_nonstandard_stacks): Define only if
2927 THREAD_SELF is not defined.
2928 (pthread_allocate_stack): Always initialize gardaddr to a correct
2929 value.
2930 (pthread_handle_create): Unmap thread with one call.
2931 (pthread_free): Remove test for initial thread before removing stack.
2932 Unmap stack with one call.
2933
2934 * pthread.c (__pthread_initial_thread): Initialize p_userstack to
2935 1 to avoid removing the stack.
2936
0d019734
UD
29372000-07-27 Jes Sorensen <jes@linuxcare.com>
2938
d364e525 2939 * sysdeps/ia64/pspinlock.c (__pthread_spin_lock): Add
0d019734
UD
2940 load of spin lock to prime the cache before the atomic compare and
2941 exchange operation (cmpxchg4). This avoids the spinning on the
2942 cmpxchg4 instruction and reduces movement of the cache line back
2943 and forth between the processors (explanation by Asis K. Mallick
2944 from Intel). This basically makes the implementation operate the
2945 same as the Linux kernel implementation.
2946
d364e525
UD
2947 * shlib-versions: Use GLIBC_2_2 for Linux/ia64.
2948 * sysdeps/ia64/pspinlock.c: New file.
0d019734 2949
139a4d95
UD
29502000-08-03 Ulrich Drepper <drepper@redhat.com>
2951
2952 * pthread.c: Move definition of __pthread_set_own_extricate_if...
2953 * spinlock.h: ...here. Remove locking.
2954 * internals.h: Remove __pthread_set_own_extricate_if prototype.
2955
2956 * rwlock.c: Use THREAD_GETMEM And THREAD_SETMEM.
2957 (rwlock_rd_extricate_func): Don't determine self, let
2958 __pthread_lock do it.
2959 (rwlock_wr_extricate_func): Likewise.
2960 (rwlock_have_already): Optimize *pself handling a bit.
2961
2962 * mutex.c: Use __builtin_expect.
2963 * pthread.c: Likewise.
2964
9016e55c
AJ
29652000-08-02 Andreas Jaeger <aj@suse.de>
2966
d364e525
UD
2967 * sysdeps/s390/pspinlock.c: New file.
2968 * sysdeps/s390/pt-machine.h: New file.
9016e55c
AJ
2969 Patches by Martin Schwidefsky <schwidefsky@de.ibm.com>.
2970
fdfb2ecc
AJ
29712000-07-12 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
2972
2973 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Implement for
2974 R3K.
2975 * sysdeps/mips/pt-machine.h (testandset): Likewise.
2976
b98a450f
AJ
29772000-07-26 Andreas Jaeger <aj@suse.de>
2978
2979 * pthread.c: Initialize p_sem_avail.
2980
a956d045
UD
29812000-07-25 Ulrich Drepper <drepper@redhat.com>
2982
a99db924 2983 * internals.h (struct __pthread_descr_struct): Add p_sem_avail.
9ec9e34e
UD
2984 * semaphore.c: Handle spurious wakeups.
2985
2986 * sysdeps/pthread/pthread.h: Add back PTHREAD_MUTX_FAST_NP as an alias
2987 for PTHREAD_MUTEX_ADAPTIVE_NP for source code compatibility.
2988
2989 * pthread.c (__pthread_set_own_extricate): Use THREAD_GETMEM.
2990 (__pthread_wait_for_restart): Likewise.
2991
2992 * condvar.c (pthread_cond_wait): Also check whether thread is
2993 cancelable before aborting loop.
2994 (pthread_cond_timedwait): Likewise.
2995
a956d045
UD
2996 * signals.c (pthread_sighandler): Remove special code to restrore
2997 %gs on x86.
2998 (pthread_sighandler_t): Likewise.
2999
70e392a3
UD
30002000-07-25 Mark Kettenis <kettenis@gnu.org>
3001
3002 * internals.h (__RES_PTHREAD_INTERNAL): Remove define.
3003 * pthread.c: Include <resolv.h>.
3004 (_res): Undefine. Add extern declaration.
3005
5122880a
UD
30062000-07-24 Ulrich Drepper <drepper@redhat.com>
3007
f3d5834e
UD
3008 * pthread.c (__pthread_initial_thread): Update initializer.
3009 (__pthread_manager_thread): Likewise.
3010 (pthread_initialize): Move setrlimit call to...
3011 (__pthread_initialize_manager): ...here.
3012 (__pthread_reset_main_thread): Reset also soft limit on stack size.
3013
5122880a 3014 * condvar.c: Handle spurious wakeups. [PR libc/1749].
ad0c66a0 3015 * internals.h (struct _pthread_descr_struct): Add p_condvar_avail.
5122880a 3016
0c0c8bde
UD
30172000-07-21 Ulrich Drepper <drepper@redhat.com>
3018
5122880a 3019 * spinlock.h: If IMPLEMENT_TAS_WITH_CAS is defined use
0c0c8bde 3020 __compare_and_swap to define testandset.
d364e525 3021 * sysdeps/powerpc/pt-machine.h: Add volatile to asms.
0c0c8bde
UD
3022 Define IMPLEMENT_TAS_WITH_CAS.
3023
0fb7851f
UD
30242000-07-20 Ulrich Drepper <drepper@redhat.com>
3025
3026 * Makefile: Pass -z nodelete to linker for libpthread.so
3027 generation if it understand this option.
3028
4e8286ac
UD
30292000-07-18 Mark Kettenis <kettenis@gnu.org>
3030
3031 * manager.c (pthread_handle_create): Remove initialization of
3032 new_thread->p_res._sock.
3033
80ec4993
UD
30342000-07-19 Kaz Kylheku <kaz@ashi.footprints.net>
3035
3036 Bugfixes to the variant of the code for machines with no compare
3037 and swap.
3038
3039 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Wait
3040 node was not being properly enqueued, due to failing to update
3041 the lock->__status field.
3042
3043 * spinlock.c (__pthread_alt_timedlock): The oldstatus variable was
3044 being set inappropriately, causing the suspend function to be called
3045 with a null self pointer and crash.
3046
70c5b33d
UD
30472000-07-18 Ulrich Drepper <drepper@redhat.com>
3048
056f707c
UD
3049 * spinlock.h (__pthread_alt_trylock): Fix code used if no
3050 compare&swap is available.
3051
a48297fd
UD
3052 * spinlock.h (__pthread_trylock): Use __compare_and_swap, not
3053 compare_and_swap.
3054
89bc5366 3055 * pthread.c (pthread_initialize): Don't use sysconf to determine
247c8869
UD
3056 whether the machine has more than one processor.
3057
70c5b33d
UD
3058 * spinlock.c (__pthread_alt_timedlock): Add back one of the
3059 removed thread_self calls.
3060
83142e8f
UD
30612000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
3062
3063 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Changed
3064 __compare_and_swap to compare_and_swap in code which assumes
3065 compare swap is available.
3066
89bc5366 30672000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
e6574c9c
UD
3068
3069 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Fixed
3070 bug whereby thr field of waitnode structure would not be correctly
3071 set unless a null self pointer is passed to the functions.
3072 Eliminated redundant calls to thread_self().
3073
c6df09ad
UD
30742000-07-18 Jakub Jelinek <jakub@redhat.com>
3075
3076 * pthread.c (__pthread_initialize_manager): Lock
3077 __pthread_manager_thread.p_lock before calling clone.
3078
9aae19cd
UD
30792000-05-05 H.J. Lu <hjl@gnu.org>
3080
3081 * sysdeps/ia64/pt-machine.h (__compare_and_swap): Change it to
3082 have acquire semantics.
3083 (__compare_and_swap_with_release_semantics): New inline
3084 function.
3085 (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): New macro.
3086
30872000-01-28 Hans Boehm <hboehm@exch.hpl.hp.com>
3088
3089 * manager.c: Fix the problem with signals at startup.
3090 Change the way that thread stacks are allocated on IA64.
3091 Clean up some of the guard page allocation stuff.
3092
30931999-12-19 H.J. Lu <hjl@gnu.org>
3094
3095 * internals.h (page_roundup): New.
3096 * attr.c (__pthread_attr_setguardsize); Use page_roundup
3097 instead of roundup.
3098 * manager.c (pthread_allocate_stack): Make sure guardaddr is
3099 page aligned with page_roundup if NEED_SEPARATE_REGISTER_STACK
3100 is define.
3101
31021999-12-17 Hans Boehm <hboehm@exch.hpl.hp.com>
3103
3104 * manager.c (pthread_allocate_stack): Unmap the stack top
3105 if failed to map the stack bottom.
3106 Fix the guard page.
3107 (pthread_free): Fix the guard page.
3108
3109 * pthread.c (pthread_initialize): Set rlimit correctly for
3110 NEED_SEPARATE_REGISTER_STACK.
3111
31121999-12-16 H.J. Lu <hjl@gnu.org>
3113
3114 * pthread.c (__pthread_initialize_manager): Pass
3115 __pthread_manager_thread_bos instead of
3116 __pthread_manager_thread_tos to __clone2.
3117
31181999-12-16 H.J. Lu <hjl@gnu.org>
3119
3120 * manager.c (pthread_allocate_stack): Correct the calculation
3121 of "new_thread_bottom". Remove MAP_GROWSDOWN from mmap for
3122 stack bottom.
3123
31241999-12-13 H.J. Lu <hjl@gnu.org>
3125
3126 * sysdeps/ia64/pt-machine.h (__compare_and_swap): Added a stop
3127 bit after setting ar.ccv.
3128
31291999-12-12 H.J. Lu <hjl@gnu.org>
3130
3131 * manager.c (pthread_allocate_stack): Make the starting
3132 address of the stack bottom page aligned. FIXME: it may
3133 need changes in other places.
3134 (pthread_handle_create): Likewise.
3135
31361999-12-11 Hans Boehm <hboehm@exch.hpl.hp.com>
3137
3138 * manager.c (pthread_allocate_stack): Handle
3139 NEED_SEPARATE_REGISTER_STACK.
3140 (pthread_handle_create): Likewise.
3141 * pthread.c (__pthread_initialize_manager): Likewise.
3142
3143 * sysdeps/ia64/pt-machine.h: Use r13 for thread pointer.
3144
31451999-12-02 H.J. Lu <hjl@gnu.org>
3146
3147 * sysdeps/ia64/pt-machine.h: New.
3148
f218b5f5
UD
31492000-07-13 Ulrich Drepper <drepper@redhat.com>
3150
3151 * wrapsyscall.c: Mark non-__ protected names as weak.
3152 PR libc/1466.
3153
0d655550
UD
31542000-07-12 Bruno Haible <haible@clisp.cons.org>
3155
3156 * Examples/ex8.c: Include <sys/wait.h>, not <wait.h>.
3157
9f835f5f
UD
31582000-07-12 Ulrich Drepper <drepper@redhat.com>
3159
3160 * spinlock.c: Fix code for TEST_FOR_COMPARE_AND_SWAP being defined.
3161 Add tests also to new alternative spinlock implementation.
3162 * spinlock.h: Likewise.
3163 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3164
a85d5c80
UD
31652000-07-06 Ulrich Drepper <drepper@redhat.com>
3166
c0f53cdd
UD
3167 * Version: Export __sigaction.
3168 * signals.c: Define __sigaction alias. Use __libc_sigaction instead
3169 of __sigaction.
3170 * pthread.c: Use __libc_sigaction instead of __sigaction.
3171
a85d5c80
UD
3172 * condvar.c: Implement pthread_condattr_getpshared and
3173 pthread_condattr_setpshared.
3174 * mutex.c: Implement pthread_mutexattr_getpshared and
3175 pthread_mutexattr_setpshared.
3176 * Versions: Export new functions.
3177 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
3178
3179 * rwlock.c (pthread_rwlockattr_init): Use PTHREAD_PROCESS_PRIVATE.
3180 (pthread_rwlockattr_setpshared): Fail if PTHREAD_PROCESS_PRIVATE
3181 is not selected.
3182
66c5b9aa
GM
31832000-07-04 Greg McGary <greg@mcgary.org>
3184
3185 * sysdeps/pthread/bits/libc-lock.h: Remove BP_SYM from
3186 pragmas. Include bp-sym.h only if _LIBC.
3187
83b1b6d8
UD
31882000-07-04 Ulrich Drepper <drepper@redhat.com>
3189
3190 * spinlock.c (__pthread_unlock): Properly place write barrier.
3191 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3192
a88b96f4
UD
31932000-07-03 Ulrich Drepper <drepper@redhat.com>
3194
3195 * spinlock.c: Replace fast spinlocks by adaptive spinlocks which are
3196 faster on SMP systems. No more emulation of compare&swap for adaptive
3197 spinlocks.
3198 * spinlock.h: Likewise.
3199 * sysdeps/pthread/pthread.h: Shuffle PTHREAD_MUTEX_* values around.
3200 Replace fast with adaptive mutex.
3201 * mutex.c: Rewrite for replacement of fast by adaptive mutex.
3202 * condvar.c: Likewise.
3203 * pthread.c: Define and initialize __pthread_smp_kernel variable.
3204 * internals.h: Declare __pthread_smp_kernel.
3205 * sysdeps/pthread/bits/pthreadtypes.h: Update comment of
3206 _pthread_fastlock structure.
3207 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3208
3209 * pthread.c: Remove initialization to zero from global variables.
3210
1a6d7967
UD
32112000-06-29 Jakub Jelinek <jakub@redhat.com>
3212
3213 * shlib-versions: Make sparc64 GLIBC_2.2+ only.
3214
1efd15e3
GM
32152000-06-28 Greg McGary <greg@mcgary.org>
3216
3217 * weaks.c: Wrap BP_SYM () around weak extern declarations of
3218 pthread functions that have pointers in their return+arg signatures.
3219
3210bef0
GM
32202000-06-27 Greg McGary <greg@mcgary.org>
3221
1efd15e3
GM
3222 * sysdeps/pthread/bits/libc-lock.h: Wrap BP_SYM () around weak
3223 extern declarations of pthread functions that have pointers in
3224 their return+arg signatures.
3210bef0 3225
c49ebf76
UD
32262000-06-26 Ulrich Drepper <drepper@redhat.com>
3227
3228 * Makefile (tests): Add ex11. Add rules to build it.
3229 * Examples/ex11.c: New file.
3230 * rwlock.c: Fix complete braindamaged previous try to implement
3231 timedout functions.
3232
3233 * spinlock.c: Pretty print.
3234
d82e4c7b
UD
32352000-06-25 Ulrich Drepper <drepper@redhat.com>
3236
3237 * Makefile (tests): Add ex10. Add rules to build it.
3238 * Versions [GLIBC_2.2] (libpthread): Add pthread_mutex_timedlock,
3239 pthread_rwlock_timedrdlock, and pthread_rwlock_timedwrlock.
3240 * condvar.c (pthread_cond_wait): Allow mutex of kind
3241 PTHREAD_MUTEX_TIMED_NP.
3242 (pthread_cond_timedwait_relative): Likewise.
3243 * mutex.c (__pthread_mutex_init): Default is PTHREAD_MUTEX_TIMED_NP.
3244 (__pthread_mutex_trylock): Use __pthread_alt_trylock for
3245 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
3246 (__pthread_mutex_lock): Use __pthread_alt_lock for
3247 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
3248 (__pthread_mutex_timedlock): New function.
3249 (__pthread_mutex_unlock): Use __pthread_alt_unlock for
3250 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
3251 (__pthread_mutexattr_init): Use PTHREAD_MUTEX_TIMED_NP.
3252 (__pthread_mutexattr_settype): Allow PTHREAD_MUTEX_TIMED_NP.
3253 * spinlock.c: Implement alternate fastlocks.
3254 * spinlock.h: Add prototypes.
3255 * Examples/ex10.c: New file.
3256 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
3257 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3258
3259 * rwlock.c (__pthread_rwlock_rdlock): Optimize loop a bit.
3260 (__pthread_rwlock_timedrdlock): New function.
3261 (__pthread_rwlock_timedwrlock): New function.
3262 Use laternate fastlock function everywhere.
3263
3d8e9510
AJ
32642000-06-21 Andreas Jaeger <aj@suse.de>
3265
efa24b51 3266 * sysdeps/pthread/timer_routines.c: Include <string.h> for memset
3d8e9510
AJ
3267 prototype.
3268
3269 * join.c: Include <stdlib.h> for exit prototype.
3270
697568d1
UD
32712000-06-20 Ulrich Drepper <drepper@redhat.com>
3272
bdf09fab
UD
3273 * sysdeps/i386/useldt.h: Include <stdlib.h>.
3274
697568d1
UD
3275 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_BARRIERS.
3276 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3277
3278 * Makefile (libpthread-routines): Add barrier.
3279 (tests): Add ex9. Add rule to build ex9.
3280 * Versions: Export barrier functions.
3281 * barrier.c: New file.
3282 * Examples/ex9.c: New file.
3283 * sysdeps/pthread/pthread.h: Add barrier data types and declarations.
3284 * sysdeps/pthread/bits/pthreadtypes.h: Likewise.
bdf09fab 3285 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
697568d1 3286
ba80a015
UD
32872000-06-19 H.J. Lu <hjl@gnu.org>
3288
3289 * spinlock.h (HAS_COMPARE_AND_SWAP): Defined if
3290 HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS is defined.
3291 (compare_and_swap_with_release_semantics): New. Default to
3292 compare_and_swap if HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS
3293 is not defined.
3294
3295 * spinlock.c (__pthread_unlock): Call
3296 compare_and_swap_with_release_semantics () instead of
3297 compare_and_swap ().
3298
d2dfc5de
UD
32992000-06-19 Ulrich Drepper <drepper@redhat.com>
3300
3301 * sysdeps/pthread/timer_create.c: Use _set_errno instead of assigning
3302 to errno directly.
3303 * sysdeps/pthread/timer_delete.c: Likewise.
3304 * sysdeps/pthread/timer_getoverr.c: Likewise.
3305 * sysdeps/pthread/timer_gettime.c: Likewise.
3306 * sysdeps/pthread/timer_settime.c: Likewise.
3307
33082000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
3309
3310 Timer nodes are now reference counted, and can be marked
3311 as deleted. This allows for the safe release of the global mutex
3312 in the middle without losing the timer being operated on.
3313
3314 * sysdeps/pthread/posix-timer.h (struct timer_node): The inuse
3315 member is now an enum with three values, so that an intermediate
3316 state can be represented (deleted but not free for reuse yet).
3317 New refcount member added.
3318 * sysdeps/pthread/timer_routines.c: Likewise.
3319
3320 * sysdeps/pthread/posix-timer.h (timer_addref, timer_delref,
3321 timer_valid): New inline functions added.
3322
3323 * sysdeps/pthread/timer_gettime.c (timer_gettime): Function
3324 restructured, recursive deadlock bug fixed.
3325
3326 * sysdeps/pthread/timer_gettime.c (timer_gettime): Uses new
3327 timer_addref to ensure that timer won't be deleted while mutex is not
3328 held. Also uses timer_invalid to perform validation of timer handle.
3329 * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
3330 * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Likewise.
3331
e26dd47f
UD
33322000-06-14 Ulrich Drepper <drepper@redhat.com>
3333
3334 * shlib-versions: Add entry for SH.
3335 Patch by Kaz Kojima <kkojima@rr.iij4u.or.jp>.
3336
38161ac7
UD
33372000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
3338
3339 A few optimizations. Got rid of unnecessary wakeups of timer threads,
3340 tightened up some critical regions and micro-optimized some list
3341 manipulation code.
3342
3343 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
3344 Returns int value now to indicate whether timer was queued at head.
3345 * sysdeps/pthread/posix-timer.h: Likewise.
3346 * sysdeps/pthread/timer_settime.c (timer_settime): Takes advantage of
3347 new return value from __timer_thread_queue_timer to avoid waking
3348 up timer thread unnecessarily.
3349
3350 * sysdeps/pthread/posix-timer.h (timer_id2ptr): No longer checks
3351 inuse flag, because this requires mutex to be held. Callers updated
3352 to do the check when they have the mutex.
3353 * sysdeps/pthread/timer_getoverr.c: Add check for inuse here.
3354
3355 * sysdeps/pthread/timer_settime.c (timer_settime): Tighter critical
3356 regions: avoids making system calls while holding timer mutex, and
3357 a few computations were moved outside of the mutex as well.
3358 * sysdeps/pthread/timer_gettime.c (timer_gettime): Likewise.
3359
3360 * sysdeps/pthread/posix-timer.h (list_unlink_ip): Function name changed
3361 to list_unlink_ip, meaning idempotent. Pointer manipulation
3362 changed to get better better code out of gcc.
3363 * sysdeps/pthread/timer_routines.c (list_unlink): Non-idempotent
3364 version of list_unlink added here.
3365 * sysdeps/pthread/timer_delete.c: Use appropriate list unlink
3366 function in all places: idempotent one for timers, non-idempotent
3367 one for thread nodes.
3368 * sysdeps/pthread/timer_settime: Likewise.
3369 * sysdeps/pthread/timer_routines.c: Likewise.
3370
7ae1fe4d
UD
33712000-06-13 Ulrich Drepper <drepper@redhat.com>
3372
490dc9aa
UD
3373 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_TIMERS): Define.
3374 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3375
7ae1fe4d
UD
3376 * sysdeps/pthread/Makefile: Remove tests definition.
3377
3846ef75
UD
33782000-06-12 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
3379 Yutaka Niibe <gniibe@chroot.org>
3380
3381 * sysdeps/sh/pspinlock.c: New file.
3382 * sysdeps/sh/pt-machine.h: New file.
3383
a5b97402
UD
33842000-06-12 Ulrich Drepper <drepper@redhat.com>
3385
55985355
UD
3386 * Makefile (tests): Add joinrace.
3387
a5b97402
UD
3388 * Examples/ex6.c: Test return value of pthread_join.
3389
2b72ebac
GK
33902000-06-11 Geoff Keating <geoffk@cygnus.com>
3391
3392 * sysdeps/powerpc/pspinlock.c (__pthread_spin_lock): Implement.
3393 (__pthread_spin_trylock): Implement.
3394 (__pthread_spin_unlock): Implement.
3395 (__pthread_spin_init): Implement.
3396 (__pthread_spin_destroy): Implement.
3397
425638fb
UD
33982000-06-10 Ulrich Drepper <drepper@redhat.com>
3399
3400 * sysdeps/pthread/timer_routines.c (list_append): Little fix to
2b72ebac 3401 really append the entry.
425638fb 3402
6948d763
AJ
34032000-06-10 Andreas Jaeger <aj@suse.de>
3404
3405 * lockfile.c (__fresetlockfiles): Remove unused variable fp.
3406
45dc1187
UD
34072000-06-10 Kaz Kylheku <kaz@ashi.footprints.net>
3408
3409 * sysdeps/pthread/timer_create.c: Thread matching now done on
3410 clock type as well as thread attributes.
3411 There are individual global signal-delivering threads for
3412 different clock types.
3413 * sysdeps/pthread/posix-timer.h: Likewise.
3414 * sysdeps/pthread/timer_routines.c: Likewise.
3415
3416 * sysdeps/pthread/timer_routines.c: Thread allocation and
3417 deallocation function now remembers to put thread on active
425638fb 3418 list and remove from active list.
45dc1187
UD
3419 Thus now the feature of binding multiple timers
3420 to a single thread actually works.
3421
ee5d4855
UD
34222000-06-10 Ulrich Drepper <drepper@redhat.com>
3423
3424 * pthread.c (__pthread_create_2_1): Optimize a bit.
3425
3426 * internals.h (invalid_handle): Also test for p_terminated != 0.
3427 (nonexisting_handle): New function. Same as old invalid_handle.
3428 * join.c (pthread_join): Use nonexisting_handle instead of
3429 invalid_handle to test for acceptable thread handle.
41b37cb5 3430 * manager.c (pthread_handle_free): Likewise.
15109bd4 3431 * joinrace.c: New file.
ee5d4855
UD
3432 Reported by Permaine Cheung <pcheung@cygnus.com>.
3433
2715f28a
UD
34342000-06-08 Ulrich Drepper <drepper@redhat.com>
3435
8aa8fc7f
UD
3436 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
3437 Correct handling of matching variable.
3438
480a06df
UD
3439 * sysdeps/pthread/tst-timer.c (main): Rewrite initializers to
3440 avoid warnings.
3441
18e4e446
UD
3442 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
3443 Be prepared for empty timer list.
3444
165ab1d7
UD
3445 * sysdeps/pthread/timer_create.c (timer_create): Correct names of
3446 CPUTIME clock ID. Add support for thread clocks.
3447
f2a5974b
UD
3448 * sysdeps/pthread/posix-timer.h (timer_ptr2id): Operands in
3449 subtraction were switched.
3450
c0f79a04
UD
3451 * sysdeps/pthread/timer_routines.c (init_module): Use
3452 THREAD_MAXNODES threads.
3453
55938273
UD
3454 * sysdeps/pthread/posix-timer.h (struct timer_node): Add creator_pid.
3455 * sysdeps/pthread/timer_create.c: Fill in creator_pid.
3456 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Send signal
3457 with sigqueueinfo is this system call is available.
3458
3459 * sysdeps/pthread/timer_create.c (timer_create): Allow
3460 CLOCK_CPUTIME if _POSIX_CPUTIME is defined.
3461
2715f28a
UD
3462 * sysdeps/pthread/Makefile: New file. Add rules to build timer
3463 functionality.
3464 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add TIMER_MAX.
3465
34662000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
3467
3468 * sysdeps/pthread/posix-timer.h: New file.
3469 * sysdeps/pthread/timer_create.c: New file.
3470 * sysdeps/pthread/timer_delete.c: New file.
3471 * sysdeps/pthread/timer_getoverr.c: New file.
3472 * sysdeps/pthread/timer_gettime.c: New file.
3473 * sysdeps/pthread/timer_routines.c: New file.
3474 * sysdeps/pthread/timer_settime.c: New file.
3475 * sysdeps/pthread/tst-timer.c: New file.
3476
1b579f91
UD
34772000-06-08 Ulrich Drepper <drepper@redhat.com>
3478
3479 * sysdeps/unix/sysv/linux/bits/local_lim.h: Remove OPEN_MAX and
3480 LINK_MAX definitions if necessary.
3481
dc3b5786
UD
34822000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
3483
3484 Added missing fork time handling of global libio lock.
3485
3486 * lockfile.c (__fresetlockfiles): Now also resets the list lock,
3487 not just the individual stream locks. Rewritten to use new
3488 iterator interface provided by libio rather than accessing
3489 global variable.
3490
3491 * lockfile.c (__flockfilelist, _funlockfilelist): New functions
3492 which lock and unlock the stream list using the new interface
3493 provied by libio.
3494 * internals.h: Likewise.
3495
3496 * ptfork.c (__fork): Now calls __flockfilelist before fork,
3497 and __funlockfilelist in the parent after the fork.
3498 Child still calls __fresetlockfiles as before.
3499
3500 * linuxthreads.texi: Now explains what happens to streams at
3501 fork time. Also whole new section on forking and thread added.
3502 Definition of pthread_atfork moved out of Miscellaneous Functions
3503 to this new section.
3504
1dd54850
UD
35052000-06-04 Jakub Jelinek <jakub@redhat.com>
3506
3507 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c (__pthread_spin_lock):
3508 Add missing register.
3509 * sysdeps/sparc/sparc64/pspinlock.c (__pthread_spin_lock): Likewise.
3510
554eca5c
AJ
35112000-06-02 Jakub Jelinek <jakub@redhat.com>
3512
3513 * sysdeps/sparc/sparc32/pspinlock.c: Implement spinlocks.
3514 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: New.
3515 * sysdeps/sparc/sparc64/pspinlock.c: Implement spinlocks.
3516
a3a99e01
AJ
35172000-05-31 Andreas Jaeger <aj@suse.de>
3518
3519 * sysdeps/mips/pspinlock.c: Implement spinlocks.
3520
c0f3519d
UD
35212000-05-28 Ulrich Drepper <drepper@redhat.com>
3522
84838b8f
UD
3523 * spinlock.c (__pthread_lock): Remove ASSERT.
3524
c0f3519d
UD
3525 * Makefile (tests): Add ex8.
3526 * Examples/ex8.c: New file.
3527
35282000-05-12 Kaz Kylheku <kaz@ashi.footprints.net>
3529
3530 Bugfix: The pthread_atfork mechanism now takes care of its
3531 own internal mutex at fork time.
3532
3533 * ptfork.c (__fork): Revised so that the mutex is held across
3534 the fork operation and while the handlers are called, and so that
3535 the child resets the mutex.
c0f3519d
UD
3536
3537 * linuxthreads.texi: Updated pthread_atfork documentation to make
3538 it clear that fork and pthread_atfork can't be reentered from
3539 atfork handlers, that pthread_atfork and fork are mutually atomic,
3540 and that the handlers are inherited by the child process.
3541
378fbeb4
UD
35422000-05-24 Ulrich Drepper <drepper@redhat.com>
3543
3544 * Makefile (libpthread-routines): Add pspinlock.
3545 * cancel.c: Rename __pthread_spin_unlock back to __pthread_unlock.
3546 Use struct _pthread_fastlock instead of pthread_spinlock_t.
3547 * condvar.c: Likewise.
3548 * internals.h: Likewise.
3549 * join.c: Likewise.
3550 * manager.c: Likewise.
3551 * mutex.c: Likewise.
3552 * pthread.c: Likewise.
3553 * rwlock.c: Likewise.
3554 * semaphore.c: Likewise.
3555 * signals.c: Likewise.
3556 * spinlock.h: Likewise.
3557 * spinlock.c: Likewise. Remove pthread_spin_lock functions.
3558 * sysdeps/alpha/pspinlock.c: New file.
3559 * sysdeps/arm/pspinlock.c: New file.
3560 * sysdeps/i386/pspinlock.c: New file.
3561 * sysdeps/m68k/pspinlock.c: New file.
3562 * sysdeps/mips/pspinlock.c: New file.
3563 * sysdeps/powerpc/pspinlock.c: New file.
3564 * sysdeps/sparc/sparc32/pspinlock.c: New file.
3565 * sysdeps/sparc/sparc64/pspinlock.c: New file.
3566 * sysdeps/pthread/bits/pthreadtypes.h: Remove pthread_spinlock_t
3567 back to _pthread_fastlock. Define new pthread_spinlock_t.
3568
fff82885
AJ
35692000-05-24 Andreas Jaeger <aj@suse.de>
3570
3571 * sysdeps/i386/i686/pt-machine.h: Only use LDT on newer kernels.
3572
5d1fba6d
AJ
35732000-05-21 Jakub Jelinek <jakub@redhat.com>
3574
3575 * manager.c (pthread_handle_create): Initialize p_res._sock to -1.
3576
f14273c5
AJ
35772000-05-13 Jakub Jelinek <jakub@redhat.com>
3578
3579 * internals.h (__RES_PTHREAD_INTERNAL): Define.
3580
93414bb9
UD
35812000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
3582
3583 * mutex.c (pthread_once): IN_PROGRESS state of pthread_once_t
3584 object state is represented with additional bits which distinguish
3585 whether that state was set up in the current process, or
3586 in an ancestor process. If that state was set in an ancestor,
3587 it means that a fork happened while thread was executing the init
3588 function. In that case, the state is reset to NEVER.
3589 * mutex.c (__pthread_once_fork_prepare): New function.
3590 (__pthread_once_fork_child): Likewise
3591 (__pthread_once_fork_parent): Likewise
3592 (__pthread_reset_pthread_once): Removed.
3593 * ptfork.c (__fork): Call new handlers in mutex.c.
3594 * internals.h: Declarations of new mutex.c functions added.
3595 Declaration of removed function deleted.
3596 * linuxthreads.texi: Updated documentation about pthread_once
3597 to clarify what happens under cancellation and forking.
3598
fc08075d
UD
35992000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
3600
3601 * internals.h: New thread manager request type, REQ_KICK.
3602 * join.c (pthread_exit): main thread now calls exit() instead
3603 of _exit() in order to proper process cleanup.
3604 * manager.c (__pthread_manager): Do not terminate manager
3605 after unblocking main thread; wait for main thread's
3606 REQ_PROCESS_EXIT request instead.
3607 Also, added REQ_KICK case to handle new request; this just does
3608 nothing.
3609 * manager.c (pthread_exited): Do not terminate manager after
3610 unblocking main thread.
3611 * manager.c (__pthread_manager_sighandler): If the main thread
3612 is waiting for all other threads to die, send a REQ_KICK into
3613 the thread manager request pipe to get it to clean out the threads
3614 and unblock the main thread as soon as possible. This fixes
3615 the 2000 millisecond hang on shutdown bug.
3616 * Examples/ex7.c: New file, tests shutdown behavior when all threads
3617 including the main one call pthread_exit(), or implicitly do so.
3618 * Makefile (tests): Add ex7.
3619
b19b7383
AJ
36202000-05-05 Andreas Jaeger <aj@suse.de>
3621
3622 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
3623 (pthread_getcpuclockid): Correct test for ourselves.
3624
c77ec56d
UD
36252000-05-05 Ulrich Drepper <drepper@redhat.com>
3626
3627 * internals.h (struct _pthread_descr_struct): Reorganization.
3628 Allocate room for 16 pointers at head of the structure for future
3629 thread-local data handling. Move p_self member in this area.
3630 * manager.c (pthread_handle_create): Adjust use of p_self.
3631 * sysdeps/i386/useldt.h (THREAD_SELF): Likewise.
3632 * pthread.c (__pthread_initial_thread): Adjust initialization.
3633 (__pthread_manager_thread): Likewise.
3634
36352000-04-29 Bruno Haible <haible@clisp.cons.org>
160016c9
UD
3636
3637 * join.c (pthread_exit): Use THREAD_GETMEM_NC instead of THREAD_GETMEM
3638 for eventmask larger than 1 word.
3639
3300816c
UD
36402000-04-27 Ulrich Drepper <drepper@redhat.com>
3641
3642 * Versions [libpthread] (GLIBC_2.2): Add __pthread_initialize_minimal.
3643 * pthread.c (__pthread_initialize_minimal): New function. Perform
3644 minimal initialization.
3645 (pthread_initialize): Remove this code here.
3646 * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h" again. We
3647 are working around the problem in glibc.
3648
d472655c
UD
36492000-04-25 Ulrich Drepper <drepper@redhat.com>
3650
3651 * sysdeps/i386/i686/pt-machine.h: Do not use "../useldt.h" for
3652 now. First gcc must be fixed (more concrete: libgcc).
3653
9bf4d640
UD
36542000-04-24 Ulrich Drepper <drepper@redhat.com>
3655
e19ae111 3656 * pthread.c: Remove special treatement for interrupt handlers on x86.
9bf4d640
UD
3657 * manager.c (pthread_free): Use FREE_THREAD not FREE_THREAD_SELF.
3658 * sysdeps/i386/useldt.h: Use "q" constraint instead of "r" where
3659 necessary.
3660 * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h".
3661
9682a871
UD
36622000-04-24 Mark Kettenis <kettenis@gnu.org>
3663
3664 * join.c (pthread_exit): Set p_terminated after reporting the
3665 termination event instead of before.
3666
d879eb85
UD
36672000-04-20 Jakub Jelinek <jakub@redhat.com>
3668
3669 * sysdeps/pthread/bits/libc-lock.h: Only declare __pthread_rwlock_*
3670 if __USE_UNIX98.
3671
36722000-04-18 Andreas Jaeger <aj@suse.de>
3673
3674 * Versions: Use ld instead of ld.so.
3675
318c80d4
UD
36762000-04-18 Jakub Jelinek <jakub@redhat.com>
3677
3678 * sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h (struct sigcontext):
3679 Remove the typedef keyword.
3680
cd43f797
UD
36812000-04-18 Jakub Jelinek <jakub@redhat.com>
3682
3683 * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Use membar,
3684 not stbar.
3685 (READ_MEMORY_BARRIER): Define.
3686 * spinlock.c (__pthread_spin_unlock): Use READ_MEMORY_BARRIER, not
3687 MEMORY_BARRIER.
3688 * internals.h (READ_MEMORY_BARRIER): Define if not defined in sysdep
3689 headers.
3690
dbacafe5
UD
36912000-04-17 Ulrich Drepper <drepper@redhat.com>
3692
3693 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
3694 (pthread_getcpuclockid): Don't compare thread_id with thread_self,
3695 use thread_handle().
3696
e2947c42
UD
36972000-04-16 Ulrich Drepper <drepper@redhat.com>
3698
e3265f5b
UD
3699 * condvar.c (pthread_cond_timedwait_relative): Don't test for owner
3700 if fast mutex is used. Don't initialize `already_canceled' twice.
3701 Correctly test for return value of timedsuspend.
3702
e2947c42
UD
3703 * pthread.c: Correct long-time braino. We never set SA_SIGINFO and
3704 therefore don't need the _rt versions of the signal handlers.
3705
150f740a
UD
37062000-04-15 Ulrich Drepper <drepper@redhat.com>
3707
c269fdb4
UD
3708 * pthread.c (pthread_yield): New function.
3709 * sysdeps/pthread/pthread.h (pthread_yield): Add prototype.
3710 * Versions [libpthread] (GLIBC_2.2): Add pthread_yield.
e2947c42 3711 * internals.h: Declare __pthread_yield.
c269fdb4 3712
145b8413
UD
3713 * pthread.c (pthread_initialize): Avoid a bit more code if
3714 realtime signals are known to exist.
3715
150f740a
UD
3716 * pthread.c: Is __ASSUME_REALTIME_SIGNALS then avoid generating code
3717 to dynamically detect RT signals and avoid generating compatibility
3718 functions with old kernel.
3719 * restart.h (restart) [__ASSUME_REALTIME_SIGNALS]: Use
3720 __pthread_restart_new directly.
3721 (suspend) [__ASSUME_REALTIME_SIGNALS]: Use
3722 __pthread_wait_for_restart_signal directly.
3723 (timedsuspend) [__ASSUME_REALTIME_SIGNALS]: Use
3724 __pthread_timedsuspend_new directly.
3725
b2d4446f
UD
37262000-04-15 Ulrich Drepper <drepper@redhat.com>
3727
ef187474
UD
3728 * condvar.c: Remove all the special code to handle cond_timedwait.
3729 Use timedsuspend instead.
3730 * internals.h: Declare __pthread_timedsuspend_old,
3731 __pthread_timedsuspend_new, and __pthread_timedsuspend.
3732 Remove declaration of __pthread_init_condvar.
3733 * pthread.c: Define __pthread_timedsuspend variable.
3734 (__pthread_timedsuspend_old): New function. Timed suspension
3735 implementation for old Linux kernels.
3736 (__pthread_timedsuspend_new): New function. Timed suspension
3737 implementation for new Linux kernels.
3738 * restart.h (timedsuspend): New function. Call appropriate
3739 suspension function through __pthread_timedsuspend.
3740 * semaphore.c (sem_timedwait): Use timedsuspend, don't duplicate
3741 the code.
3742 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3743
a5a6f926
UD
3744 * internals.h (WRITE_MEMORY_BARRIER): Define as MEMORY_BARRIER if
3745 undefined.
3746 * spinlock.c: Use WRITE_MEMORY_BARRIER instead of MEMORY_BARRIER
3747 where possible.
3748 * sysdeps/alpha/pt-machine.h: Define WRITE_MEMORY_BARRIER.
3749 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
3750
b2d4446f
UD
3751 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _POSIX_SPAWN.
3752 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3753
b82f6af2
AJ
37542000-04-14 Andreas Jaeger <aj@suse.de>
3755
3756 * weaks.c: Fix typo.
3757
43c36f63
AJ
3758 * shlib-versions (mips.*-.*-linux.*): Support only GLIBC 2.0 and
3759 2.2 for linuxthreads.
3760
547ff462
UD
37612000-04-13 Ulrich Drepper <drepper@redhat.com>
3762
3763 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
3764 (pthread_getcpuclockid): Fix typo.
3765
b3ae0650
UD
37662000-04-12 Ulrich Drepper <drepper@redhat.com>
3767
3737ff12
UD
3768 * Makefile (libpthread-routines): Add getcpuclockid.
3769 * Versions [libpthread] (GLIBC_2.2): Add pthread_getcpuclockid.
3770 * sysdeps/pthread/getcpuclockid.c: New file.
3771 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: New file.
3772 * sysdeps/pthread/pthread.h: Add prototype for pthread_getcpuclockid.
3773
07d641eb
UD
3774 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_SPIN_LOCKS):
3775 Defined.
3776 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3777
d8d914df
UD
3778 * sysdeps/pthread/pthread.h: Add prototypes for pthread_spin_init,
3779 pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
3780 and pthread_spin_unlock.
3781 * sysdeps/pthread/bits/pthreadtypes.h: Change struct _pthread_fastlock
3782 into pthread_spinlock_t. Change all uses.
3783 * spinlock.c: Implement pthread_spin_lock.
3784 Rename __pthread_unlock to __pthread_spin_unlock and define weak
3785 alias for real name.
3786 Define pthread_spin_trylock, pthread_spin_init, and
3787 pthread_spin_destroy.
3788 Change all uses of _pthread_fastlock to pthread_spinlock_t.
3789 * spinlock.h: Rename __pthread_unlock to __pthread_spin_unlock.
3790 Change all uses of _pthread_fastlock to pthread_spinlock_t.
3791 * Versions [libpthread] (GLIBC_2.2): Add pthread_spin_init,
3792 pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
3793 and pthread_spin_unlock.
3794 * cancel.c: Use __pthread_spin_unlock instead of __pthread_unlock.
3795 Change all uses of _pthread_fastlock to pthread_spinlock_t.
3796 * condvar.c: Likewise.
3797 * internals.h: Likewise.
3798 * join.c: Likewise.
3799 * manager.c: Likewise.
3800 * mutex.c: Likewise.
3801 * pthread.c: Likewise.
3802 * rwlock.c: Likewise.
3803 * semaphore.c: Likewise.
3804 * signals.c: Likewise.
3805
b3ae0650
UD
3806 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add various new POSIX
3807 macros.
3808 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
3809
8a31d742
UD
38102000-04-11 Ulrich Drepper <drepper@redhat.com>
3811
3812 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add
3813 _POSIX_SHARED_MEMORY_OBJECTS.
3814
2a086df9
AJ
38152000-04-11 Andreas Jaeger <aj@suse.de>
3816
3817 * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
3818 (__compare_and_swap): Mark as modifying memory.
3819
4a1a3c21
GK
38202000-04-11 Geoff Keating <geoffk@cygnus.com>
3821
3822 * sysdeps/powerpc/pt-machine.h (MEMORY_BARRIER): Don't be
3823 __volatile__.
3824 (__compare_and_swap): Replace other 'sync' with MEMORY_BARRIER.
3825 Don't have the 'asm' __volatile__.
3826
de262537
UD
38272000-04-11 Ulrich Drepper <drepper@redhat.com>
3828
3829 * internals.h: Define MEMORY_BARRIER as empty if not defined already.
3830 * spinlock.c (__pthread_lock): Add memory barriers.
3831 (__pthread_unlock): Likewise.
3832 * sysdeps/alpha/pt-machine.h (MEMORY_BARRIER): Define using mb
3833 instruction.
3834 (RELEASE): Not needed anymore.
3835 (__compare_and_swap): Mark asm as modifying memory.
3836 * sysdeps/powerpc/pt-machine.h (sync): Remove. Replace with definition
3837 of MEMORY_BARRIER.
3838 (__compare_and_swap): Use MEMORY_BARRIER instead of sync.
3839 * sysdeps/sparc/sparc32/pt-machine.h (RELEASE): Not needed anymore.
3840 (MEMORY_BARRIER): Define using stbar.
3841 * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Define using
3842 stbar.
3843 (__compare_and_swap): Use MEMORY_BARRIER to ensure ordering.
3844 Patch by Xavier Leroy <Xavier.Leroy@inria.fr> based on comments by
3845 Mike Burrows <m3b@pa.dec.com>.
3846
4186c9f4
UD
38472000-04-09 Ulrich Drepper <drepper@redhat.com>
3848
3849 * signals.c (sigaction): Fix return value for the case SIG is one
3850 of the signals the implementation uses.
3851 Patch by Xavier.Leroy@inria.fr.
3852
bd457114
UD
38532000-04-01 Andreas Jaeger <aj@suse.de>
3854
3855 * attr.c: Use shlib-compat macros.
3856 * oldsemaphore.c: Likewise.
3857 * pthread.c: Likewise.
3858 * weaks.c: Likewise.
3859
1edf26ff
UD
38602000-03-26 Ulrich Drepper <drepper@redhat.com>
3861
3862 * semaphore.c (sem_timedwait): New function.
3863 Patch by Carl Mailloux <carlm@oricom.ca>.
3864 * semaphore.h: Declare sem_timedwait.
8e605e78 3865 * Versions [libpthread] (GLIBC_2.2): Add sem_timedwait.
1edf26ff 3866
54f6cbb3
RM
38672000-03-26 Roland McGrath <roland@baalperazim.frob.com>
3868
3869 * sysdeps/pthread/Makefile: File removed.
3870
c0bc5f7b
UD
38712000-03-23 Ulrich Drepper <drepper@redhat.com>
3872
383052e9
UD
3873 * mutex.c (__pthread_reset_pthread_once): Reset once_masterlock.
3874 * internals.h (__pthread_reset_pthread_once): Add prototype.
3875 * ptfork.c (__fork): Call __pthread_reset_pthread_once.
3876
c0bc5f7b
UD
3877 * manager.c (pthread_handle_create): Store ID of new thread before
3878 clone call.
3879
0bf98029
UD
38802000-03-21 Ulrich Drepper <drepper@redhat.com>
3881
ef7dddd0
UD
3882 * attr.c: Use new macros from shlib-compat.h to define versions.
3883 * oldsemaphore.c: Likewise.
3884 * semaphore.c: Likewise.
3885 * weaks.c: Likewise.
3886
1ab1ea76
UD
3887 * pthread.c: Update for new SHLIB_COMPAT definition.
3888
101edd3f
UD
3889 * manager.c (__pthread_manager): Unmask debug signal.
3890
0bf98029
UD
3891 * pthread.c (pthread_initialize): Test for address of __dso_handle
3892 being NULL, not value. Use __on_exit, not on_exit.
e063cef8 3893 Patch by Andreas Jaeger <aj@suse.de>.
0bf98029 3894
75836bc8
UD
3895 * pthread.c: Use new macros from shlib-compat.h to define versions.
3896
a6a478e9
UD
38972000-03-19 Ulrich Drepper <drepper@redhat.com>
3898
3899 * pthread.c (pthread_initialize): Instead of on_exit use
3900 __cxa_atexit if __dso_label is available to allow unloading the
3901 libpthread shared library.
3902
13a83604
UD
39032000-03-16 Ulrich Drepper <drepper@redhat.com>
3904
3905 * condvar.c: Make tests for ownership of mutex less strict.
3906
30b416ea
UD
39072000-03-14 Ulrich Drepper <drepper@redhat.com>
3908
5d141597
UD
3909 * condvar.c (pthread_cond_wait): Check whether mutex is owned by
3910 current thread and return error if not.
04366d5f
UD
3911 (pthread_cond_timedwait_relative_old): Likewise.
3912 (pthread_cond_timedwait_relative_new): Likewise.
5d141597 3913
30b416ea
UD
3914 * mutex.c (__pthread_once): Handle cancelled init function correctly.
3915 (pthread_once_cancelhandler): New function.
3916 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3917
56eea8d1
UD
39182000-03-14 Andreas Jaeger <aj@suse.de>
3919
3920 * pthread.c (pthread_handle_sigcancel_rt): GS has been renamed to
3921 REG_GS.
3922 (pthread_handle_sigrestart_rt): Likewise.
3923 * signals.c (pthread_sighandler_rt): Likewise.
3924
3d9ebedb
AJ
39252000-03-02 Andreas Jaeger <aj@suse.de>
3926
3927 * sysdeps/pthread/bits/libc-lock.h: Fix typo.
3928 Reported by Sean Chen <sean.chen@turbolinux.com>.
3929
b041ebc2
UD
39302000-02-28 Andreas Jaeger <aj@suse.de>
3931
3932 * rwlock.c: Fix typo.
3933
0ed99ce4
UD
39342000-02-27 Ulrich Drepper <drepper@redhat.com>
3935
3936 * rwlock.c: Define __* variants of the functions and make old names
3937 aliases.
3938 * Versions [GLIBC_2.2]: Export the __pthread_rwlock_* functions.
3939 * sysdeps/pthread/bits/libc-lock.h: Define __libc_rwlock_* macros.
3940
d66732e0
UD
39412000-02-25 Andreas Jaeger <aj@suse.de>
3942
3943 * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
0ed99ce4
UD
3944 pwrite64, lseek64, open64, and __open64 with version 2.2.
3945
93a19c64
UD
39462000-02-22 Ulrich Drepper <drepper@redhat.com>
3947
3948 * semaphore.h (SEM_FAILED): Use 0 not NULL.
3949
ec91ea7c
UD
39502000-02-14 Ulrich Drepper <drepper@redhat.com>
3951
3952 * condvar.c (pthread_cond_timedwait_relative_old): Tight loop with
3953 nanosleep does not work either. Get absolute time inside the
3954 loop.
3955 (pthread_cond_timedwait_relative_new): Likewise.
3956 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
3957
f5ff12d8
UD
39582000-02-13 Andreas Jaeger <aj@suse.de>
3959
3960 * condvar.c (pthread_cond_timedwait_relative_new): Fix last patch.
3961 (pthread_cond_timedwait_relative_old): Likewise.
3962
46661856
UD
39632000-02-13 Ulrich Drepper <drepper@redhat.com>
3964
3965 * condvar.c (pthread_cond_timedwait_relative_old): Undo last patch
3966 but keep the code around. A bug in the kernel prevent us from
3967 using the code.
3968 (pthread_cond_timedwait_relative_new): Likewise.
3969 (PR libc/1597 and libc/1598).
3970
b168cff2
UD
39712000-02-01 Kaz Kylheku <kaz@ashi.footprints.net>
3972
3973 * condvar.c (pthread_cond_timedwait_relative_old): Do tight
3974 loop around nanosleep calls instead of around most of the function
3975 (pthread_cond_timedwait_relative_new): Likewise.
3976 body. Got rid of backwards goto and one local.
3977
8a94dfe4
UD
39782000-01-31 Ulrich Drepper <drepper@redhat.com>
3979
3980 * condvar.c (pthread_cond_timedwait_relative_old): Recompute time
3981 before every nanosleep call to account for time spent in the rest
3982 of the function.
3983 (pthread_cond_timedwait_relative_new): Likewise.
3984 Patch by khendricks@ivey.uwo.ca (PR libc/1564).
3985
b6aa34eb
UD
39862000-01-29 Ulrich Drepper <drepper@redhat.com>
3987
3988 * condvar.c (pthread_cond_timedwait_relative_old): Get remaining time
3989 from nanosleep call so that in case we restart we only wait for the
3990 remaining time.
3991 (pthread_cond_timedwait_relative_new): Likewise.
3992 Patch by khendricks@ivey.uwo.ca (PR libc/1561).
3993
0af4c646
UD
39942000-01-18 Ulrich Drepper <drepper@cygnus.com>
3995
3996 * manager.c (pthread_allocate_stack): Compute guard page address
3997 correctly. Patch by HJ Lu.
3998
3999 * sysdeps/pthread/pthread.h: Define
4000 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP.
4001
2449110a
UD
40022000-01-16 Ulrich Drepper <drepper@cygnus.com>
4003
4004 * rwlock.c (pthread_rwlock_unlock): Correct one more problem with
4005 preference handling.
4006 (pthread_rwlockattr_setkind_np): Allow
4007 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
4008 Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
4009
03c0d6ef
UD
40102000-01-12 Ulrich Drepper <drepper@cygnus.com>
4011
4012 * internals.h (pthread_readlock_info): New structure.
4013 (_pthread_descr_struct): Add p_readlock_list, p_readlock_free, and
4014 p_untracked_readlock_count.
4015 * pthread.c (__pthread_initial_thread, pthread_manager_thread):
4016 Add initializers for new fields.
4017 * manager.c (pthread_free): Free read/write lock lists.
4018 * queue.h (queue_is_empty): New function.
4019 * rwlock.c: Implement requirements about when readers should get
4020 locks assigned.
4021 * sysdeps/pthread/pthread.h
4022 (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP): New definition.
4023 * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_rwlock_t):
4024 Define this name as well.
4025 Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
4026
d569d333
UD
40272000-01-05 Ulrich Drepper <drepper@cygnus.com>
4028
2ba3c836
UD
4029 * pthread.c (__pthread_initial_thread, pthread_manager_thread):
4030 Adjust initializers for struct _pthread_descr_struct change.
d569d333
UD
4031 * internals.h (struct _pthread_descr_struct): Move new elements to
4032 the end.
4033
1d2fc9b3
UD
40342000-01-03 Kaz Kylheku <kaz@ashi.footprints.net>
4035
4036 Redesigned how cancellation unblocks a thread from internal
4037 cancellation points (sem_wait, pthread_join,
4038 pthread_cond_{wait,timedwait}).
4039 Cancellation won't eat a signal in any of these functions
4040 (*required* by POSIX and Single Unix Spec!).
a3bfd999 4041 * condvar.c: Spontaneous wakeup on pthread_cond_timedwait won't eat a
1d2fc9b3
UD
4042 simultaneous condition variable signal (not required by POSIX
4043 or Single Unix Spec, but nice).
4044 * spinlock.c: __pthread_lock queues back any received restarts
4045 that don't belong to it instead of assuming ownership of lock
4046 upon any restart; fastlock can no longer be acquired by two threads
4047 simultaneously.
a3bfd999 4048 * restart.h: Restarts queue even on kernels that don't have
1d2fc9b3
UD
4049 queued real time signals (2.0, early 2.1), thanks to atomic counter,
4050 avoiding a rare race condition in pthread_cond_timedwait.
4051
1c5d4617
UD
40521999-12-31 Andreas Jaeger <aj@suse.de>
4053
4054 * internals.h: Remove duplicate prototype declarations.
4055
4056 * weaks.c: Remove __THROW from prototypes since the file is not
4057 compiled by a C++ compiler.
4058 * internals.h: Likewise.
4059
40601999-12-30 Andreas Jaeger <aj@suse.de>
4061
4062 * sysdeps/pthread/pthread.h: Move internal functions to...
4063 * sysdeps/pthread/bits/libc-lock.h: ...here.
4064
d876f532
UD
40651999-12-29 Andreas Jaeger <aj@suse.de>
4066
4067 * sysdeps/pthread/pthread.h: Fix typos, reformat comments.
4068
056e0358
UD
40691999-12-28 Ulrich Drepper <drepper@cygnus.com>
4070
4071 * sysdeps/alpha/pt-machine.h: Move stack_pointer definition to the
4072 beginning.
4073
4074 * manager.c (__pthread_start): Add one more cast to prevent
4075 warning on 64bit machines.
4076
46fd4f67
UD
40771999-12-21 Ulrich Drepper <drepper@cygnus.com>
4078
4079 * manager.c (pthread_handle_create): Set p_pid of new thread
4080 before calling the callback function to report a new thread.
4081
c63598bf
UD
40821999-12-20 Andreas Jaeger <aj@suse.de>
4083
4084 * pthread.c (pthread_initialize): Move getrlimit call after
4085 setting of errno.
4086
b85697f6
UD
40871999-12-18 Ulrich Drepper <drepper@cygnus.com>
4088
778c59c8
UD
4089 * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
4090 pwrite64, lseek64, open64, and __open64.
4091 * wrapsyscall.c: Define pread, __pread64, pread64, pwrite, __pwrite64,
4092 pwrite64, lseek64, open64, and __open64.
4093
b85697f6
UD
4094 * manager.c (pthread_allocate_stack): Correct computation of
4095 new_thread_bottom. Correct handling of stack size and when the
4096 rlimit method to guard for stack growth is used.
4097 * pthread.c (pthread_initialize): Stack limit must be STACK_SIZE
4098 minus one pagesize (not two).
4099
b43b13ac
UD
41001999-12-03 Andreas Jaeger <aj@suse.de>
4101
4102 * Versions: Add __res_state with version GLIBC_2.2.
4103
4104 * errno.c (__res_state): New function to return thread specific
4105 resolver state.
4106
4107 * pthread.c (pthread_initialize): Initialize p_resp.
4108 (__pthread_reset_main_thread): Also set p_resp.
4109
4110 * manager.c (pthread_handle_create): Initialize p_resp.
4111
4112 * internals.h: Add thread specific resolver state.
4113 Based on patches by Adam D. Bradley <artdodge@cs.bu.edu>.
4114
d7a4856e
UD
41151999-12-01 Ulrich Drepper <drepper@cygnus.com>
4116
4117 * sysdeps/i386/pt-machine.h: Move stack_pointer definition to the
4118 beginning.
4119 * sysdeps/i386/i686/pt-machine.h: Likewise.
4120 Patches by Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>.
4121
ffd35632
UD
41221999-11-23 Ulrich Drepper <drepper@cygnus.com>
4123
4124 * manager.c (pthread_start_thread_event): Initialize p_pid already
4125 here.
4126
20bdb31b
UD
41271999-11-22 Ulrich Drepper <drepper@cygnus.com>
4128
4129 * internals.h: Add prototype for __pthread_manager_event.
4130 * manager.c (__pthread_manager_event): New function.
4131 (pthread_start_thread_event): Correct computation of self.
4132 Use INIT_THREAD_SELF.
4133 * pthread.c (__pthread_manager_thread): Initialize p_lock.
4134 (__pthread_initialize_manager): Respect event flags also for creation
4135 of the manager thread.
4136
178a145a
UD
41371999-11-08 Ulrich Drepper <drepper@cygnus.com>
4138
4139 * pthread.c (__pthread_initialize_manager): Initialize
4140 __pthread_manager_thread.p_tid.
4141
a9cb398f
UD
41421999-11-02 Ulrich Drepper <drepper@cygnus.com>
4143
ab86fbb1
UD
4144 * internals.h: Declare __pthread_last_event.
4145 * manager.c: Define __pthread_last_event.
4146 (pthread_handle_create): Set __pthread_last_event.
4147 (pthread_exited): Likewise.
4148 * join.c (pthread_exit): Likewise.
4149
a9cb398f
UD
4150 * Makefile (libpthread-routines): Add events.
4151 * events.c: New file.
4152 * internals.h: Protect against multiple inclusion.
4153 Include thread_dbP.h header.
4154 (struct _pthread_descr_struct): Add new fields p_report_events and
4155 p_eventbuf.
4156 Declare event reporting functions.
4157 * join.c (pthread_exit): Signal event if this is wanted.
4158 * manager.c (__pthread_threads_events): New variable.
4159 (pthread_handle_create): Take new parameters with event information.
4160 Signal TD_CREATE event if wanted.
4161 (__pthread_manager): Adjust pthread_handle_create call.
4162 (pthread_start_thread_event): New function. Block until manager is
4163 finished and then call pthread_start_thread.
4164 (pthread_exited): Signal TD_REAP event if wanted.
4165
8dd1e494
UD
41661999-10-26 Ulrich Drepper <drepper@cygnus.com>
4167
4168 * restart.h (suspend_with_cancellation): Rewrite as a macro.
4169
4170 * condvar.c (pthread_cond_timedwait_relative): Don't mark as inline.
4171
86cfe82d
UD
41721999-10-25 Andreas Jaeger <aj@suse.de>
4173
4174 * internals.h: Remove K&R compatibility.
4175 * no-tsd.c: Likewise.
4176 * semaphore.h: Likewise.
4177 * signals.c: Likewise.
4178 * sysdeps/pthread/bits/libc-tsd.h: Likewise.
4179 * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
4180 * weaks.c: Likewise.
4181
15daa639
UD
41821999-10-21 Xavier Leroy <Xavier.Leroy@inria.fr>
4183
d364e525
UD
4184 * pthread.c: For i386, wrap pthread_handle_sigrestart and
4185 pthread_handle_sigcancel with functions that restore %gs from the
4186 signal context. For each signal handling function, two wrappers
4187 are required, one for a non-RT signal and one for a RT signal.
4188 * signal.c: For i386, add code to restore %gs from the signal
4189 context in pthread_sighandler and pthread_sighandler_rt.
15daa639 4190
ef5d6645
UD
41911999-10-17 Ulrich Drepper <drepper@cygnus.com>
4192
4193 * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add cast.
4194
f6367df2
UD
41951999-10-14 Ulrich Drepper <drepper@cygnus.com>
4196
4a379216
UD
4197 * pthread.c (__pthread_initial_thread): Pass argument to
4198 PTHREAD_START_ARGS_INITIALIZER.
4199 (__pthread_manager_thread): Likewise.
4200
4201 * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add parameter to
4202 initialize function.
4203
f6367df2
UD
4204 * manager.c (pthread_handle_create): Remove p_startfct initialization.
4205
4206 * internals.h (_pthread_descr_struct): We don't need p_startfct field.
4207
d4c5cf80
UD
42081999-10-12 Ulrich Drepper <drepper@cygnus.com>
4209
4210 * internals.h: Correct return types for __libc_read and __libc_write.
4211
883c331a
UD
42121999-10-09 Andreas Jaeger <aj@suse.de>
4213
4214 * internals.h: Add __new_sem_post to get prototype in
4215 manager.c; include semaphore.h for needed types.
4216
c813f986
UD
42171999-10-08 Ulrich Drepper <drepper@cygnus.com>
4218
4219 * manager.c (__pthread_manager) [REQ_POST]: Use __new_sem_post
4220 directly instead of calling sem_post which should not be necessary
4221 but is faster and might help in some case to work around problems.
c1422e5b 4222 Patch by khendricks@ivey.uwo.ca [libc/1382].
c813f986 4223
0f5219d4
UD
42241999-10-08 Andreas Schwab <schwab@suse.de>
4225
4226 * sysdeps/pthread/Subdirs: New file.
4227 * Implies: Removed.
4228
9640bbe1
UD
42291999-10-07 Ulrich Drepper <drepper@cygnus.com>
4230
4231 * Implies: New file.
4232 * internals.h (struct _pthread_descr_struct): Add p_startfct.
4233 * manager.c (pthread_handle_create): Initialize p_startfct.
4234 * pthread.c: Define __linuxthread_pthread_sizeof_descr variable.
4235
079c00e6
UD
42361999-09-25 Ulrich Drepper <drepper@cygnus.com>
4237
d790bc34
UD
4238 * manager.c (__linuxthreads_pthread_threads_max): New variable.
4239 * specific.c (__linuxthreads_pthread_keys_max): New variable.
6e42b0f1 4240 (__linuxthreads_pthread_key_2ndlevel_size): New variable.
d790bc34 4241
079c00e6
UD
4242 * condvar.c (pthread_cond_timedwait_relative): Never return with
4243 EINTR. Patch by Andreas Schwab.
4244
b5c69d99
UD
42451999-09-19 Ulrich Drepper <drepper@cygnus.com>
4246
4247 * signals.c (sigaction): Correct last patch. Don't select
4248 pthread_sighandler_rt based on the signal number but instead of
4249 the SA_SIGINFO flag.
4250
d790bc34
UD
42511999-09-23 Ulrich Drepper <drepper@cygnus.com>
4252
4253 * specific.c: Move definitions of struct pthread_key_struct and
4254 destr_function to ...
4255 * internals.h: ...here.
4256
9cf44e65
UD
42571999-09-18 Ulrich Drepper <drepper@cygnus.com>
4258
4259 * pthread.c (pthread_handle_sigrestart_rt): New function. Use
4260 this instead of pthread_handle_sigrestart if the signal is an RT
4261 signal.
4262
4263 * signals.c: Handle passing through of sighandler arguments also
4264 for real-time signals.
4265
4fe53b3a
UD
42661999-09-03 Andreas Schwab <schwab@suse.de>
4267
4268 * ptfork.c (__fork): Renamed from fork and use __libc_fork. Add
4269 fork as weak alias.
4270 (__vfork): New function, alias vfork.
4271 * Versions: Export __fork, vfork, and __vfork in libpthread.
4272
1d0b89a4
UD
42731999-08-23 Andreas Schwab <schwab@suse.de>
4274
4275 * signals.c (pthread_sighandler): Add SIGCONTEXT_EXTRA_ARGS to
4276 call to signal handler.
4277
6570e194
UD
42781999-08-20 Ulrich Drepper <drepper@cygnus.com>
4279
4280 * pthread.c (__pthread_reset_main_thread): Undo last change.
4281 (__pthread_kill_other_threads_np): Reset signal handlers for the
4282 signals we used in the thread implementation here.
4283
70aea399
UD
42841999-08-19 Ulrich Drepper <drepper@cygnus.com>
4285
2b638910 4286 * pthread.c (__pthread_reset_main_thread): Reset signal handlers
68ea6c18 4287 for the signals we used in the thread implementation [PR libc/1234].
2b638910 4288
264ec183
UD
4289 * Versions: Export __pthread_kill_other_threads_np from libpthread
4290 for GLIBC_2.1.2.
4291
70aea399
UD
4292 * signals.c: Pass sigcontext through wrapper to the user function.
4293
ff5fad16
UD
42941999-08-01 Ulrich Drepper <drepper@cygnus.com>
4295
4296 * Versions [ld.so] (GLIBC_2.0): Export __libc_internal_tsd_get and
4297 __libc_internal_tsd_set.
4298
6b798621
UD
42991999-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4300
4301 * manager.c: Remove inclusion of <linux/tasks.h> since it's not
4302 needed anymore.
4303
76a16b8f
UD
43041999-07-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4305
4bf307e3 4306 * internals.h: Align _pthread_descr_struct to 32 bytes.
76a16b8f
UD
4307 Reported by Tim Hockin <thockin@cobaltnet.com>, close PR
4308 libc/1206.
4309
5ef2d37b
UD
43101999-07-09 Ulrich Drepper <drepper@cygnus.com>
4311
4312 * oldsemaphore.c (sem_compare_and_swap): Fix use of compare and
4313 swap function.
4314
c2fa5b5a
UD
43151999-07-09 Cristian Gafton <gafton@redhat.com>
4316
4317 * Makefile (libpthread-routines): Add oldsemaphore routine.
ae3c1571
UD
4318 * Versions: Add sem_destroy, sem_getvalue, sem_init, sem_post,
4319 sem_trywait, and sem_wait to GLIBC_2.1.
c2fa5b5a
UD
4320 * oldsemaphore.c: New file.
4321 * semaphore.c: Add default_symbol_versions for the changed functions.
4322 (__new_sem_init): Rename from sem_init.
4323 (__new_sem_post): Rename from sem_post.
4324 (__new_sem_wait): Rename from sem_wait.
4325 (__new_sem_trywait): Rename from sem_trywait.
4326 (__new_sem_getvalue): Rename from sem_getvalue.
4327 (__new_sem_destroy): Rename from sem_destroy.
4328
6a1db4ff
UD
43291999-06-23 Robey Pointer <robey@netscape.com>
4330
4331 * internals.h: Added p_nextlock entry to separate queueing for a
4332 lock from queueing for a CV (sometimes a thread queues on a lock
4333 to serialize removing itself from a CV queue).
4334 * pthread.c: Added p_nextlock to initializers.
4335 * spinlock.c: Changed to use p_nextlock instead of p_nextwaiting.
4336
019e7a64
UD
43371999-07-09 Ulrich Drepper <drepper@cygnus.com>
4338
4339 * manager.c (pthread_handle_create): Free mmap region after stack
4340 if clone failed. Patch by Kaz Kylheku <kaz@ashi.FootPrints.net>.
4341
33d1a2c5
UD
43421999-05-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4343
4344 * man/pthread_cond_init.man: Correct example.
4345 Reported by Tomas Berndtsson <tomas@nocrew.org>.
4346
4347 * linuxthreads.texi (Condition Variables): Likewise.
4348
407d26b7
UD
43491999-05-18 Jakub Jelinek <jj@ultra.linux.cz>
4350
4351 * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): Use
4352 casx not cas, also successful casx returns the old value in rd
4353 and not the new value.
4354
431c33c0
UD
43551999-05-16 Xavier Leroy <Xavier.Leroy@inria.fr>
4356
4357 * manager.c: If pthread_create() is given a NULL attribute
4358 and the thread manager runs with a realtime policy, set the
4359 scheduling policy of the newly created thread back to SCHED_OTHER.
4360 * manager.c: If the PTHREAD_INHERIT_SCHED attribute is given,
4361 initialize the schedpolicy field of new_thread->p_start_args
4362 to that of the calling thread.
4363
2c68584c
UD
43641999-04-29 Ulrich Drepper <drepper@cygnus.com>
4365
4366 * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): cas
4367 instruction does not allow memory element to use offset.
4368
390500b1
UD
43691999-04-28 Ulrich Drepper <drepper@cygnus.com>
4370
4371 * manager.c (pthread_allocate_stack): Optimize initialization of new
4372 thread descriptor.
4373
89afc233
UD
4374 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_define_initialized):
4375 Don't use initializer since it is all zeroes.
4376 (__libc_once_define): Likewise.
4377
1e76ce9c
UD
43781999-04-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4379
4380 * sysdeps/arm/Implies: Removed since cmpxchg/no-cmpxchg
4381 doesn't exist anymore.
4382 * sysdeps/i386/Implies: Likewise.
4383 * sysdeps/m68k/Implies: Likewise.
4384 * sysdeps/mips/Implies: Likewise.
4385 * sysdeps/powerpc/Implies: Likewise.
4386 * sysdeps/sparc/sparc32/Implies: Likewise.
4387 * sysdeps/sparc/sparc64/Implies: Likewise.
4388
46a4682d
UD
43891999-04-15 Ulrich Drepper <drepper@cygnus.com>
4390
4391 * sysdeps/alpha/bits/semaphore.h: Removed.
4392 * sysdeps/powerpc/bits/semaphore.h: Removed.
4393 * sysdeps/pthread/cmpxchg/bits/semaphore.h: Removed.
4394 * sysdeps/pthread/no-cmpxchg/bits/semaphore.h: Removed.
4395 * Makefile (headers): Remove bits/semaphore.h.
4396
4397 * semaphore.h: Define _pthread_descr if necessary.
4398 Don't include limits.h. Define SEM_VALUE_MAX directly.
4399 Define SEM_FAILED.
4400 (sem_t): Protect element names with leading __.
4401 Add declarations for sem_close, sem_open, and sem_unlink.
4402 * semaphore.c: Adjust all functions for new element names.
4403 Define sem_close, sem_open, and sem_unlink.
4404 * Versions (libthread): Add sem_close, sem_open, and sem_unlink for
4405 GLIBC_2.1.1.
4406 * sysdeps/pthread/bits/pthreadtypes.h: Define _pthread_descr only if
4407 necessary.
4408
ea48e2c4
UD
44091999-03-16 H.J. Lu <hjl@gnu.org>
4410
4411 * specific.c (pthread_key_delete): Check th->p_terminated to see
4412 if the thread is running.
4413
670af0d9
UD
4414 * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set):
4415 Added to GLIBC_2.0 for libc.so.
4416
0543cd26
UD
44171999-02-12 H.J. Lu <hjl@gnu.org>
4418
4419 * Versions (__libc_current_sigrtmin, __libc_current_sigrtmax,
4420 __libc_allocate_rtsig): Added to GLIBC_2.1.
4421
4422 * internals.h (DEFAULT_SIG_RESTART): Removed.
4423 (DEFAULT_SIG_CANCEL): Removed.
4424
4425 * pthread.c (init_rtsigs, __libc_current_sigrtmin,
4426 __libc_current_sigrtmax, __libc_allocate_rtsig): New functions.
4427 (__pthread_sig_restart, __pthread_sig_cancel,
4428 __pthread_sig_debug): Initialized.
4429 (pthread_initialize): Call init_rtsigs () to initialize
4430 real-time signals.
4431
f5492334
UD
44321999-02-03 H.J. Lu <hjl@gnu.org>
4433
4434 * manager.c (__pthread_manager): Do block __pthread_sig_debug.
4435 Don't restart the thread which sent REQ_DEBUG.
4436 (pthread_start_thread): Check if __pthread_sig_debug > 0
4437 before debugging.
4438
4439 * pthread.c (__pthread_initialize_manager): Suspend ourself
4440 after sending __pthread_sig_debug to gdb instead of
4441 __pthread_sig_cancel.
4442
8f0302ee
UD
44431999-01-24 H.J. Lu <hjl@gnu.org>
4444
4445 * manager.c (__pthread_manager): Delete __pthread_sig_debug
4446 from mask if __pthread_sig_debug > 0.
4447 (pthread_handle_create): Increment __pthread_handles_num.
4448
4449 * manager.c (pthread_handle_create): Don't pass CLONE_PTRACE to clone.
4450 * pthread.c (__pthread_initialize_manager): Likewise.
4451
4452 * pthread.c (pthread_initialize): Use __libc_allocate_rtsig (1)
4453 instead of __libc_allocate_rtsig (2).
4454 (__pthread_initialize_manager): Send __pthread_sig_debug to gdb
4455 instead of __pthread_sig_cancel.
4456 (pthread_handle_sigdebug): Fix comments.
4457
82df2969
UD
44581999-01-21 Ulrich Drepper <drepper@cygnus.com>
4459
4460 * manager.c (pthread_allocate_stack): Set
4461 __pthread_nonstandard_stacks if user-specified stack is used.
4462
482eec0d
UD
44631999-01-16 Ulrich Drepper <drepper@cygnus.com>
4464
4465 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _LFS_ASYNCHRONOUS_IO,
4466 _LFS_LARGEFILE, _LFS64_LARGEFILE, and _LFS64_STDIO from Unix98.
4467
b92ad8d6
UD
44681999-01-07 Xavier Leroy <Xavier.Leroy@inria.fr>
4469
4470 * pthread.c: Use a third signal __pthread_sig_debug distinct
4471 from __pthread_sig_cancel to notify gdb when a thread is
4472 created
4473 * manager.c: Likewise.
4474 * internals.h: Likewise.
4475 * signals.c: The implementation of sigwait(s) assumed that
4476 all signals in s have signal handlers already attached.
4477 This is not required by the standard, so make it work
4478 also if some of the signals have no handlers.
4479
34992338
UD
44801999-01-05 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
4481
4482 * linuxthreads.texi: Remove pointers from first @node. Move old
4483 @node spec inside comment.
4484
118bad87
UD
44851998-12-31 Ulrich Drepper <drepper@cygnus.com>
4486
4487 * sysdeps/pthread/bits/stdio-lock.h: Define _IO_lock_lock and
4488 _IO_lock_unlock.
4489
c046e7a5
UD
44901998-12-29 Ulrich Drepper <drepper@cygnus.com>
4491
4492 * semaphore.c (sem_trywait): Don't forget to unlock the semaphore
4493 lock. Patch by Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>.
4494
361d49e6
UD
44951998-12-21 Ulrich Drepper <drepper@cygnus.com>
4496
4497 * manager.c: Threads now send __pthread_sig_cancel on termination.
4498 Change clone call and signal masks.
4499 * thread.c (pthread_handle_sigrestart): Remove special code for
4500 manager.
4501 (pthread_handle_sigcancel): In manager thread call
4502 __pthread_manager_sighandler.
4503 * sysdeps/i386/pt-machine.h (__compare_and_swap): Add memory clobber.
4504 * sysdeps/i386/i686/pt-machine.h: Likewise.
4505 Patches by Xavier Leroy.
4506
4260bc74
UD
45071998-12-14 Ulrich Drepper <drepper@cygnus.com>
4508
361d49e6 4509 * spinlock.c (__pthread_unlock): Don't crash if called for an
fbaf6e72
UD
4510 untaken mutex. Reported by Ruslan V. Brushkoff <rus@Snif.Te.Net.UA>.
4511
4260bc74
UD
4512 * Examples/ex6.c: Unbuffer stdout and reduce sleep time to reduce
4513 overall runtime.
4514
e3743e2f
UD
45151998-12-13 Ulrich Drepper <drepper@cygnus.com>
4516
4517 * Examples/ex3.c: Wait until all threads are started before
4518 searching for the number to avoid race condition on very fast
4519 systems.
4520
8632b240
UD
45211998-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4522
4523 * sysdeps/pthread/pthread.h: Remove __pthread_setcanceltype
2eda5d9b 4524 declaration since it's not needed.
8632b240
UD
4525
4526 * sysdeps/pthread/pthread.h: Move internal functions to ...
4527 * internals.h: ...here.
4528
a6ff34d7
UD
45291998-12-02 H.J. Lu <hjl@gnu.org>
4530
4531 * pthread.c (__pthread_sig_restart): Initiliaze to 0 if
4532 SIGRTMIN is defined.
4533 (__pthread_sig_cancel): Likewise.
4534
628a0aa1
UD
45351998-12-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4536
4537 * wrapsyscall.c: Include <sys/mman.h> for msync,
4538 <stdlib.h> for system and <termios.h> for tcdrain prototype.
4539 Correct msync declaration.
4540
348ed515
UD
45411998-11-29 Roland McGrath <roland@baalperazim.frob.com>
4542
4543 * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_define, __libc_tsd_get,
4544 __libc_tsd_set): New macros for new interface.
4545 * no-tsd.c: New file, provide uninitialized defns of
4546 __libc_internal_tsd_get and __libc_internal_tsd_set.
4547 * Makefile (routines): Add no-tsd.
4548
45491998-10-12 Roland McGrath <roland@baalperazim.frob.com>
4550
4551 * internals.h: Include <bits/libc-tsd.h>, not <bits/libc-lock.h>.
4552 * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
4553 __libc_internal_tsd_set): Move decls to ...
4554 * sysdeps/pthread/bits/libc-tsd.h: New file for __libc_internal_tsd_*
4555 declarations.
4556
4557 * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
4558 __libc_internal_tsd_set): Make these pointers to functions, not
4559 functions; remove #pragma weak decls for them.
4560 * specific.c (__libc_internal_tsd_get, __libc_internal_tsd_set):
4561 Define static functions and initialized pointers to them.
4562
97dac76c
UD
45631998-11-18 Ulrich Drepper <drepper@cygnus.com>
4564
4565 * Makefile (CFLAGS-mutex.c): Define as -D__NO_WEAK_PTHREAD_ALIASES.
4566 (CFLAGS-specific.c): Likewise.
4567 (CFLAGS-pthread.c): Likewise.
4568 (CFLAGS-ptfork.c): Likewise.
4569 (CFLAGS-cancel.c): Likewise.
4570 * sysdeps/pthread/bits/libc-lock.h: Don't mark __pthread_* functions
4571 as weak references if __NO_WEAK_PTHREAD_ALIASES is defined.
4572
4573 * mutex.c (pthread_mutex_init): Define as strong symbol.
4574 (pthread_mutex_destroy): Likewise.
4575 (pthread_mutex_trylock): Likewise.
4576 (pthread_mutex_lock): Likewise.
4577 (pthread_mutex_unlock): Likewise.
4578 (pthread_mutexattr_init): Likewise.
4579 (pthread_mutexattr_destroy): Likewise.
4580 (pthread_once): Likewise.
4581 * ptfork.c (pthread_atfork): Likewise.
4582 * specific.c (pthread_key_create): Likewise.
4583 (pthread_setspecific): Likewise.
4584 (pthread_getspecific): Likewise.
4585
8b7fb588
UD
45861998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
4587
4588 * linuxthreads.texi: Fix punctuation after xref.
4589
d2537a47
UD
45901998-11-10 H.J. Lu <hjl@gnu.org>
4591
4592 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine NR_OPEN
4593 if it is defined in <linux/limits.h>.
4594
d5cabaa4
UD
45951998-10-29 14:28 Ulrich Drepper <drepper@cygnus.com>
4596
4597 * spinlock.h (__pthread_trylock): Define inline.
4598 (__pthread_lock): Add extra parameter to declaration. Declare
4599 using internal_function.
4600 (__pthread_unlock): Declare using internal_function.
4601 * spinlock.c (__pthread_lock): Add new parameter. Use it instead
4602 of local variable self. Avoid recomputing self. Define using
4603 internal_function.
4604 (__pthread_trylock): Remove.
4605 (__pthread_unlock): Define using internal_function.
4606 * cancel.c: Adjust for __pthread_lock interface change. Use already
4607 computed self value is possible.
4608 * condvar.c: Likewise.
4609 * join.c: Likewise.
4610 * manager.c: Likewise.
4611 * mutex.c: Likewise.
4612 * pthread.c: Likewise.
4613 * rwlock.c: Likewise.
4614 * semaphore.c: Likewise.
4615 * signals.c: Likewise.
4616
c70ca1fa
UD
46171998-10-27 13:46 Ulrich Drepper <drepper@cygnus.com>
4618
4619 * sysdeps/pthread/pthread.h (struct _pthread_cleanup_buffer): Prepend
4620 __ to field names of the struct.
4621 * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_fastlock):
4622 Likewise.
4623 (pthread_attr_t): Likewise.
4624 (pthread_cond_t): Likewise.
4625 (pthread_condattr_t): Likewise.
4626 (pthread_mutex_t): Likewise.
4627 (pthread_mutexattr_t): Likewise.
4628 (pthread_rwlock_t): Likewise.
4629 (pthread_rwlockattr_t): Likewise.
4630 * attr.c: Adjust for pthread.h and pthreadtypes.h change.
4631 * cancel.c: Likewise.
4632 * condvar.c: Likewise.
4633 * manager.c: Likewise.
4634 * mutex.c: Likewise.
4635 * pthread.c: Likewise.
4636 * ptlongjmp.c: Likewise.
4637 * rwlock.c: Likewise.
4638 * spinlock.c: Likewise.
4639
a5d1d726
UD
46401998-10-09 Ulrich Drepper <drepper@cygnus.com>
4641
7ccc548b
UD
4642 * sysdeps/i386/pt-machine.h (get_eflags, set_eflags): Mark these
4643 also with PT_EI.
4644
a5d1d726
UD
4645 * sysdeps/i386/i686/pt-machine.h: Remove unused inline
4646 definitions.
4647
9a29bc37
UD
4648 * Makefile (libpthread-routines): Add pt-machine.
4649 * pt-machine.c: New file.
4650 * sysdeps/alpha/pt-machine.h: Define PT_EI as extern inline is not
4651 yet defined. Use PT_EI in extern inline definitions.
4652 * sysdeps/arm/pt-machine.h: Likewise.
4653 * sysdeps/i386/pt-machine.h: Likewise.
4654 * sysdeps/i386/i686/pt-machine.h: Likewise.
4655 * sysdeps/m68k/pt-machine.h: Likewise.
4656 * sysdeps/mips/pt-machine.h: Likewise.
4657 * sysdeps/powerpc/pt-machine.h: Likewise.
4658 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
4659 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
4660
c10bb795
UD
46611998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4662
4663 * semaphore.h: Include <sys/types.h> so that _pthread_descr
4664 is declared.
4665
46661998-09-15 David S. Miller <davem@pierdol.cobaltmicro.com>
4667
4668 * sysdeps/sparc/sparc32/pt-machine.h (INIT_THREAD_SELF): Add nr
4669 argument.
4670 * sysdeps/sparc/sparc64/pt-machine.h (INIT_THREAD_SELF): Likewise.
4671
46721998-09-12 14:24 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
4673
d364e525
UD
4674 * sysdeps/unix/sysv/linux/bits/sigthread.h: Add multiple inclusion
4675 guard.
c10bb795 4676
5e0889da
UD
46771998-09-02 11:08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4678
4679 * signals.c (sigaction): Check that sig is less than NSIG to avoid
4680 array index overflow.
4681
6796bc80
UD
46821998-09-06 10:56 Ulrich Drepper <drepper@cygnus.com>
4683
4684 * sysdeps/pthread/semaphore.h: New file.
4685
be935610
UD
46861998-09-06 09:08 Ulrich Drepper <drepper@cygnus.com>
4687
4688 * sysdeps/pthread/bits/libc-lock.h (enum __libc_tsd_key_t): Add
4689 _LIBC_TSD_KEY_DL_ERROR.
4690
bfce746a
UD
46911998-08-31 Ulrich Drepper <drepper@cygnus.com>
4692
7afab53d 4693 * sysdeps/i386/i686/pt-machine.h (testandset): Add memory clobber.
6a805a0b 4694 * sysdeps/i386/pt-machine.h: Likewise.
bfce746a
UD
4695 Suggested by Roland McGrath.
4696
75311719
UD
46971998-08-28 13:58 Ulrich Drepper <drepper@cygnus.com>
4698
4699 * internals.h: Also define THREAD_GETMEM_NC and THREAD_SETMEM_NC to
4700 access thread data with non-constant offsets.
4701 * specific.c: Use THREAD_GETMEM_NC and THREAD_SETMEM_NC where
4702 necessary.
4703
4704 * sysdeps/i386/useldt.h: Fix typo. Add THREAD_GETMEM_NC and
4705 THREAD_SETMEM_NC definitions.
4706
4707 * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM_NC and
4708 THREAD_SETMEM_NC.
4709 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
4710
00a2f9aa
UD
47111998-08-26 15:46 Ulrich Drepper <drepper@cygnus.com>
4712
4713 * internals.h: Define THREAD_GETMEM and THREAD_SETMEM to default if
4714 not already defined.
4715 (struct _pthread_descr_struct): Add p_self and p_nr field.
4716 * manager.c (__pthread_handles): Define second element to point
4717 to manager thread.
4718 (__pthread_handles_num): Initialize to 2.
4719 (__pthread_manager): Use INIT_THREAD_SELF with two arguments.
4720 (pthread_start_thread): Likewise.
4721 (pthread_handle_create): Start search for free slot at entry 2.
4722 Initialize new fields p_self and p_nr.
4723 Call __clone with CLONE_PTRACE if available.
4724 (pthread_free): Call FREE_THREAD_SELF if available.
4725 * pthread.c (__pthread_initial_thread): Initialize new fields.
4726 (__pthread_manager_thread): Likewise.
4727 (__pthread_initialize_manager): Call __clone with CLONE_PTRACE.
4728
4729 * cancel.c: Use THREAD_GETMEM and THREAD_SETMEM to access the
4730 elements of the thread descriptor.
4731 * condvar.c: Likewise.
4732 * errno.c: Likewise.
4733 * join.c: Likewise.
4734 * manager.c: Likewise.
4735 * pthread.c: Likewise.
4736 * ptlongjmp.c: Likewise.
4737 * semaphore.c: Likewise.
4738 * signals.c: Likewise.
4739 * specific.c: Likewise.
4740 * spinlock.c: Likewise.
4741
4742 * sysdeps/alpha/pt-machine.h (INIT_THREAD_SELF): Add extra parameter.
4743
4744 * sysdeps/i386/useldt.h: New file.
4745 * sysdeps/i386/i686/pt-machine.h: Show how to use this file.
4746
4747 * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM and
4748 THREAD_SETMEM using __thread_self.
4749 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
4750
ed1ac6a2
UD
47511998-08-24 Geoff Keating <geoffk@ozemail.com.au>
4752
4753 * spinlock.c (__pthread_lock): Reset p_nextwaiting to NULL if it
4754 turned out that we didn't need to queue after all.
4755
47561998-08-22 Geoff Keating <geoffk@ozemail.com.au>
4757
4758 * sysdeps/powerpc/pt-machine.h: Remove testandset, it's not used
4759 and wastes space; correct types.
4760
cf0fd016
UD
47611998-08-08 11:18 H.J. Lu <hjl@gnu.org>
4762
4763 * signals.c (sigaction): Handle NULL argument.
4764
d358336f
UD
47651998-08-04 Ulrich Drepper <drepper@cygnus.com>
4766
4767 * sysdeps/unix/sysv/linux/bits/sigthread.h: Use __sigset_t instead
4768 of sigset_t.
4769
7cabd57c
UD
47701998-08-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4771
4772 * Makefile (linuxthreads-version): Extract correct number from
4773 Banner.
4774
ddbf7fef
UD
47751998-07-29 Xavier Leroy <Xavier.Leroy@inria.fr>
4776
4777 * Banner: Bump version number to 0.8
4778 * FAQ.html: Many updates, in particular w.r.t. debugging.
4779 * manager.c: Support for non-default stacksize for
4780 LinuxThreads-allocated stacks;
4781 don't use guard pages for stacks with default size, rely on
4782 rlimit(RLIMIT_STACK) instead (it's cheaper).
4783 * attr.c: Likewise.
4784 * cancel.c: Use __pthread_sig_cancel and __pthread_sig_restart
4785 everywhere instead of PTHREAD_SIG_CANCEL and PTHREAD_SIG_RESTART.
4786 * condvar.c: Likewise.
4787 * internals.h: Likewise.
4788 * restart.h: Likewise.
4789 * signals.c: Likewise.
4790 * pthread.c: Likewise; set rlimit(RLIMIT_STACK) as we need it.
4791
6c202c68
UD
47921998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4793
4794 * weaks.c: Define pthread_mutexattr_[sg]ettype instead of
4795 __pthread_mutexattr_[sg]ettype. Add more weak aliases.
4796 * Versions: Put __pthread_mutexattr_settype under version
4797 GLIBC_2.0. Don't export __pthread_mutexattr_setkind_np and
4798 __pthread_mutexattr_gettype.
4799
48001998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4801
4802 * sysdeps/pthread/bits/libc-lock.h: Make
4803 __pthread_mutexattr_settype weak. Don't make
4804 __pthread_mutexattr_setkind_np weak.
4805
50304ef0
UD
48061998-07-16 10:52 Ulrich Drepper <drepper@cygnus.com>
4807
4808 * manager.c (pthread_handle_create): Check whether sched_setscheduler
4809 call can succeed here.
4810
4811 * mutex.c: Define __pthread_mutexattr_settype and make
4812 __pthread_mutexattr_setkind_np an alias.
4813 Likewise for __pthread_mutexattr_gettype.
4814
48151998-07-15 11:00 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
4816
4817 * attr.c (pthread_attr_setschedpolicy): Don't check whether caller
4818 is root.
4819
c764b9a7
UD
48201998-07-14 19:38 Ulrich Drepper <drepper@cygnus.com>
4821
4822 * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_end.
4823
ceb27555
UD
48241998-07-11 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4825
4826 * Examples/ex6.c: Include <unistd.h> for usleep.
4827
b1209f90
UD
48281998-06-13 11:04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4829
4830 * Examples/ex4.c (main): Use exit, not pthread_exit.
4831
6077fe6e
UD
48321998-07-09 13:39 Ulrich Drepper <drepper@cygnus.com>
4833
4834 * Versions: Add __pthread_mutexattr_gettype and
4835 __pthread_mutexattr_settype.
4836 * lockfile.c: Use __pthread_mutexattr_settype instead of
4837 __pthread_mutexattr_setkind_np.
4838 * mutex.c: Define __pthread_mutexattr_gettype and
4839 __pthread_mutexattr_settype.
4840 * weak.c: Likewise.
e918a7fe
UD
4841 * sysdeps/pthread/pthread.h: Declare __pthread_mutexattr_gettype and
4842 __pthread_mutexattr_settype.
4843 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init_recursive):
4844 Use __pthread_mutexattr_settype.
6077fe6e 4845
4bae5567
UD
48461998-07-08 22:26 Ulrich Drepper <drepper@cygnus.com>
4847
4848 * Versions: Add pthread_mutexattr_gettype, pthread_mutexattr_settype.
4849 * mutex.c: Define weak alias pthread_mutexattr_gettype and
4850 pthread_mutexattr_settype.
4851 * sysdeps/pthread/pthread.h: Declare these functions.
4852 Move pthread_sigmask and pthread_kill declaration in separate header.
4853 * sysdeps/unix/sysv/linux/bits/sigthread.h: New file.
4854
0302fece
UD
48551998-07-07 15:20 Ulrich Drepper <drepper@cygnus.com>
4856
4857 * Makefile: Add rules to compile and run tests.
4858 * Examples/ex1.c: Little changes to fix warnings.
4859 * Examples/ex2.c: Likewise.
4860 * Examples/ex3.c: Likewise.
4861 * Examples/ex4.c: Likewise.
4862 * Examples/ex5.c: Likewise.
4863 * Examples/ex6.c: New file.
4864
77ccaba1
UD
48651998-07-05 11:54 Ulrich Drepper <drepper@cygnus.com>
4866
6777b467 4867 * Versions: Add pthread_attr_init to GLIBC_2.1 version in libc.
77ccaba1 4868
ba9234d9
UD
48691998-07-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4870
4871 * attr.c: Include <string.h>.
4872
d64fae6a
UD
48731998-06-30 11:47 Ulrich Drepper <drepper@cygnus.com>
4874
4875 * attr.c: Include errno.h. Use memcpy to copy sched_param.
4876 * internals.h: Include limits.h.
4877 * manager.c: Use memcpy to copy sched_param.
4878 * ptfork.c: Include errno.h.
4879 * pthread.c: Likewise.
4880 * semaphore.c: Likewise.
4881 * specific.c: Likewise.
4882 * spinlock.h: Likewise.
4883 * sysdeps/pthread/pthread.h: Include only allowed headers. Move
4884 type definition to ...
4885 * sysdeps/pthread/bits/pthreadtypes.h: ...here. New file.
4886
fdacb17d
UD
48871998-06-29 12:34 Ulrich Drepper <drepper@cygnus.com>
4888
4889 * sysdeps/pthread/pthread.h: Use __PMT not __P for function pointers.
4890
4891 * sysdeps/pthread/pthread.h: Define various PTHREAD_* symbols also
4892 as macros as demanded in POSIX.1, Annex C.
4893
48941998-06-29 12:29 Ulrich Drepper <drepper@cygnus.com>
4895
4896 * internals.h (struct pthread_request): For free use pthread_t
4897 instead of pthread_descr.
4898 * join.c (pthread_join): Pass thread_id, not th to manager.
4899 (pthread_detach): Likewise.
4900 * manager.c (__pthread_manager): Except thread ID in FREE_REQ case.
4901 (pthread_exited): Remove detached queue code.
4902 (pthread_handle_free): Expect thread ID parameter and use it to
4903 validate the thread decsriptor. Don't use detached queue.
4904 Patches by Xavier Leroy.
4905
49061998-06-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4907
4908 * libpthread.map: Export accept, longjmp, sigaction, siglongjmp,
4909 _IO_flockfile, _IO_ftrylockfile, _IO_funlockfile,
4910 __pthread_atfork, __pthread_key_create, __pthread_once.
4911 * internals.h: Doc fix.
4912 * pthread.c (__pthread_initialize): Define again.
4913
e138a800
UD
49141998-06-26 Ulrich Drepper <drepper@cygnus.com>
4915
026d5011
UD
4916 * manager.c (pthread_exited): If thread is not detached put it on
4917 special list.
4918 (pthread_handle_free): If thread is not on list with living threads
4919 search on list with detached threads.
4920
b195f6bc
UD
4921 * sysdeps/pthread/pthread.h (PTHREAD_RWLOCK_INITIALIZER): Correct
4922 for new definition of pthread_rwlock_t.
4923
e138a800
UD
4924 * spinlock.c: Correct test whether to compile
4925 __pthread_compare_and_swap or not.
4926
3387a425
UD
49271998-06-25 19:27 Ulrich Drepper <drepper@cygnus.com>
4928
4929 * attr.c: Finish user stack support. Change locking code to be safe
4930 in situations with different priorities.
4931 * cancel.c: Likewise.
4932 * condvar.c: Likewise.
4933 * internals.h: Likewise.
4934 * join.c: Likewise.
4935 * manager.c: Likewise.
4936 * mutex.c: Likewise.
4937 * pthread.c: Likewise.
4938 * ptlongjmp.c: Likewise.
4939 * queue.h: Likewise.
4940 * rwlock.c: Likewise.
4941 * semaphore.c: Likewise.
4942 * semaphore.h: Likewise.
4943 * signals.c: Likewise.
4944 * spinlock.c: Likewise.
4945 * spinlock.h: Likewise.
75c3a84f 4946 * sysdeps/pthread/pthread.h: Likewise.
df4099e8 4947 Patches by Xavier Leroy.
3387a425 4948
0ca7e46e 4949 * sysdeps/i386/i686/pt-machine.h: New file.
75c3a84f 4950
3387a425
UD
49511998-06-25 Ulrich Drepper <drepper@cygnus.com>
4952
4953 * sysdeps/pthread/pthread.h: Make [sg]et_stacksize and
4954 [sg]et_stackaddr prototypes always available.
4955
4956 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
4957 _POSIX_THREAD_ATTR_STACKSIZE and _POSIX_THREAD_ATTR_STACKADDR.
4958
d47aac39
UD
49591998-06-24 Ulrich Drepper <drepper@cygnus.com>
4960
4961 * manager.c (pthread_free): Undo patch from 980430.
4962 Reported by David Wragg <dpw@doc.ic.ac.uk>.
4963
69f234e8
UD
49641998-06-09 15:07 Ulrich Drepper <drepper@cygnus.com>
4965
4966 * manager.c: Define __pthread_manager_adjust_prio and use it to
4967 increase priority when needed.
4968 * internals.h: Add prototype for __pthread_manager_adjust_prio.
4969 * mutex.c: Optimize mutexes to wake up only one thread.
768cbca8 4970 * pthread.c: Move PID of manager for global variable in structure
69f234e8
UD
4971 element.
4972 Patches by Xavier Leroy.
4973
c0fb8a56
UD
49741998-06-07 13:47 Ulrich Drepper <drepper@cygnus.com>
4975
4976 * sysdeps/pthread/bits/libc-lock.h: Optimize cleanup handlers a bit.
4977
c6bd526f
UD
49781998-06-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
4979
4980 * attr.c: Correct typo.
4981
f9119f49
UD
49821998-05-01 Ulrich Drepper <drepper@cygnus.com>
4983
4984 * manager.c (pthread_free): Unmap guard before the stack.
4985 Patch by Matthias Urlichs.
4986
3dd2c3e2
UD
49871998-04-30 Ulrich Drepper <drepper@cygnus.com>
4988
4989 * manager.c (pthread_free): Detect already free child.
4990 Patch by Xavier Leroy, reported by Matthias Urlichs.
4991
0111b224
UD
49921998-04-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4993
4994 * Makefile (linuxthreads-version): Renamed back from
4995 libpthread-version.
4996
f12944ec
UD
49971998-04-21 Ulrich Drepper <drepper@cygnus.com>
4998
26e119f1 4999 * ptlongjmp.c: Add prototypes for __libc_siglongjmp and
f12944ec
UD
5000 __libc_longjmp.
5001
8619129f
UD
50021998-04-20 14:55 Ulrich Drepper <drepper@cygnus.com>
5003
5004 * Makefile (libpthread-routines): Add ptlongjmp and spinlock.
5005 * internals.h: Add definitions for new spinlock implementation.
5006 * ptlongjmp.c: New file.
5007 * spinlock.c: New file.
5008 * spinlock.h (acquire): Don't reschedule using __sched_yield, use
5009 new function __pthread_acquire to prevent deadlocks with thread
5010 with different priorities.
5011 Patches by Xavier Leroy <Xavier.Leroy@inria.fr>.
5012
52cda958
UD
50131998-03-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5014
5015 * manager.c (__pthread_manager): Reduce first argument to select
5016 to include just the needed file descriptor.
5017
48fc3dd2
UD
50181998-03-17 00:06 Ulrich Drepper <drepper@cygnus.com>
5019
5020 * manager.c: Fix last patch which caused core dumps.
5021
5022 * pthread.c: Correctly handle missing SIGRTMIN.
5023
f649c201
UD
50241998-03-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5025
5026 * libpthread.map: Add __libc_internal_tsd_get and
5027 __libc_internal_tsd_set. Add missing cancelable functions. Export
5028 libc internal versions of the cancelable functions.
5029
14c44e2e
UD
50301998-03-13 16:51 Ulrich Drepper <drepper@cygnus.com>
5031
5032 * weaks.c: Define pthread_attr_init as GLIBC_2.0 and GLIBC_2.1.
5033
5d409851
UD
50341998-03-13 00:46 Ulrich Drepper <drepper@cygnus.com>
5035
5036 * attr.c: Implement pthread_attr_[gs]etguardsize,
5037 pthread_attr_[gs]setstackaddr, pthread_attr_[gs]etstacksize.
5038 Change pthread_attr_init to have two interfaces.
5039 * internals.h (struct _pthread_descr_struct): Add new fields for
5040 above functions.
5041 * libpthread.map: Add names in GLIBC_2.1 section.
5042 * manager.c (pthread_handle_create): Implement guardsize and
5043 user stack.
5044 (pthread_free): Likewise.
5045 * pthread.c (pthread_create): Add new interface for changed
5046 pthread_attr_t.
5047 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
5048 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add definition of
5049 PTHREAD_STACK_MIN.
5050
5afdca00
UD
50511998-03-11 00:42 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
5052
5d409851
UD
5053 * manager.c: Enable resetting of the thread scheduling policy
5054 to SCHED_OTHER when the parent thread has a different one.
5afdca00
UD
5055
50561998-02-01 13:51 Ulrich Drepper <drepper@cygnus.com>
5057
5058 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
5059 _POSIX_ASYNCHRONOUS_IO.
5060
5061 * sysdeps/pthread/pthread.h: Define bits for Unix98 variants of
5062 mutexes.
5063 * mutex.c: Implement new mutex types.
5064
5065 * internals.h: Include <signal.h>.
5066
5067 * libpthread.map: Add __erno_location and __h_errno_location.
5068
5069 * errno.c: Return pointer to variable actually in use. This might
5070 not be the one in the thread structure.
5071 * internals.h (struct _pthread_descr_struct): Add new fields p_errnop
5072 and p_h_errnop.
5073 * manager.c (__pthread_manager): Set p_errnop and p_h_errnop member
5074 of manager thread structure.
5075 (pthread_handle_create): Set p_errnop and p_h_errnop members for new
5076 thread.
5077 * pthread.c: Adapt initializer for thread structures.
5078 (__pthread_initial_thread): Set p_errnop and p_h_errnop member.
5079 (__pthread_reset_main_thread): Reset p_errnop and p_h_errnop of
5080 current thread to global variables.
5081
50821998-01-31 17:27 Ulrich Drepper <drepper@cygnus.com>
5083
5084 * rwlock.c: New file.
5085 * Makefile (libpthread-routines): Add rwlock.
5086 * sysdeps/pthread/pthread.h: Define data structures and declare
5087 functions.
5088 * libpthread.map: Add new functions.
5089
50901997-12-18 13:50 Philip Blundell <pb@nexus.co.uk>
5091
5092 * sysdeps/arm/pt-machine.h: New file; add ARM support.
5093 * sysdeps/arm/Implies: likewise.
5094 * README: Document it.
5095
50961997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5097
5098 * signals.c: Remove unneeded initializer for sigwaited, saving a
5099 warning.
5100
51011997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5102
5103 * semaphore.c (sem_init): Set sem_spinlock only if available.
5104
51051997-12-04 01:48 Ulrich Drepper <drepper@cygnus.com>
5106
5107 * mutex.c: Implement PTHREAD_MUTEX_CHECKERROR.
5108 * sysdeps/pthread/pthread.h: Define PTHREAD_MUTEX_CHECKERROR.
5109
5110 * Makefile: Update from LinuxThreads 0.7.
5111 * internals.h. Likewise.
5112 * manager.c: Likewise.
5113 * mutex.c: Likewise.
5114 * pthread.c: Likewise.
5115 * signals.c: Likewise.
5116 * specific.c: Likewise.
5117 * Examples/ex3.c: Likewise.
5118
51191997-11-20 18:13 Ulrich Drepper <drepper@cygnus.com>
5120
5121 * pthread.c (__pthread_reset_main_thread): Close pipe only if still
5122 open.
5123
51241997-10-29 05:38 Ulrich Drepper <drepper@cygnus.com>
5125
5126 * wrapsyscall.c: Add socket functions which are also cancelation
5127 points.
5128
51291997-10-19 21:40 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
5130
5131 * specific.c (__libc_internal_tsd_set, __libc_internal_tsd_get):
5132 New functions for fast thread specific data within libc.
5133
5134 * internals.h: Add new array p_libc_specific to struct
5135 _pthread_descr_struct.
5136
5137 * sysdeps/pthread/bits/libc-lock.h: Declare new functions.
5138
51391997-10-13 05:39 Ulrich Drepper <drepper@cygnus.com>
5140
5141 * semaphore.h: Add __BEGIN_DECLS/__END_DECLS.
5142 Reported by Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
5143
51441997-08-29 03:05 Ulrich Drepper <drepper@cygnus.com>
5145
5146 * internals.h (struct _pthread_descr_struct): Add definitions for
5147 two-level specific key handling.
5148 * manager.c (pthread_handle_create): Initialize specific memory array.
5149 * specific.c: Implement two-level key handling.
5150 * weaks.c: Don't provide dummy key handling.
5151 * sysdeps/pthread/bits/libc-lock.h: Typedef __libc_lock_t (no #define).
5152 Add definition of __libc_key_t.
5153 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define PTHREAD_KEYS_MAX
5154 as 1024.
5155 Add definition of _POSIX_THREAD_DESTRUCTOR_ITERATIONS and
5156 PTHREAD_DESTRUCTOR_ITERATIONS.
5157
5158 * manager.c (pthread_handle_create): Compare mmap result with
5159 MAP_FAILED.
5160
5161 * ptfork.c: Rename to __pthread_atfork and make old name a weak alias.
5162 * sysdeps/pthread/bits/pthread.h: Add prototype for __pthread_atfork.
5163
51641997-08-22 19:04 Richard Henderson <rth@cygnus.com>
5165
5166 sysdeps/sparc -> sysdeps/sparc/sparc32
5167 sysdeps/sparc64 -> sysdeps/sparc/sparc64
5168
5169 * internals.h: Change definition of THREAD_SELF to be an expression,
5170 not a statement that did a return.
5171 * sysdeps/alpha/pt-machine.h (THREAD_SELF): Update accordingly.
5172 * sysdeps/sparc/sparc32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
5173 Follow Solaris and use a "system reserved" register (%g6) to hold
5174 the thread descriptor.
5175 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
5176
51771997-08-03 00:09 Ulrich Drepper <drepper@cygnus.com>
5178
5179 * mutex.c: Correct pthread_once. Patch by Xavier Leroy.
5180 * sysdeps/pthread/pthread.h: Add prototype for __pthread_once.
5181 * sysdeps/pthread/bits/pthread.h: Add macros for __libc_once.
5182
5183 * semaphore.c: Include spinlock.h only when needed.
5184
5185 * specific.c (__pthread_setsepcific, __pthread_getspecific): Reject
5186 keys for entries not in use.
5187
5188 * weaks.c: Implement key handling functions for real.
5189
51901997-06-29 01:04 Richard Henderson <richard@gnu.ai.mit.edu>
5191
5192 Initial sparc64-linux support:
d364e525
UD
5193 * sysdeps/sparc64/Implies: New file.
5194 * sysdeps/sparc64/pt-machine.h: Likewise.
5afdca00
UD
5195
51961997-06-29 00:48 Ulrich Drepper <drepper@cygnus.com>
5197
5198 * semaphore.c: Include spinlock.h at correct place.
5199 Patch by HJ Lu.
5200
52011997-06-13 10:06 Richard Henderson <rth@tamu.edu>
5202
5203 The Great Bit File Move:
5204 * sysdeps/alpha/semaphorebits.h: -> .../bits/semaphore.h.
5205 * sysdeps/powerpc/semaphorebits.h: Likewise.
5206 * sysdeps/pthread/cmpxchg/semaphorebits.h: Likewise.
5207 * sysdeps/pthread/no-cmpxchg/semaphorebits.h: Likewise.
5208 * sysdeps/pthread/libc-lock.h: -> bits/
5209 * sysdeps/pthread/stdio-lock.h: Likewise.
5210 * sysdeps/unix/sysv/linux/local_lim.h: Likewise.
5211 * sysdeps/unix/sysv/linux/posix_opt.h: Likewise.
5212 * semaphore.h: Likewise.
5213 * sysdeps/pthread/pthread.h: Likewise.
5214
5215 * lockfile.c: <foo.h> -> <bits/foo.h>.
5216 * semaphore.h: Likewise.
5217
5218 * Makefile: (headers): foo.h -> bits/foo.h.
5219 * sysdeps/pthread/Makefile: Likewise.
5220
52211997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
5222
5223 * semaphore.c (sem_init): Set sem_spinlock only if available.
5224
5225 * sysdeps/m68k/pt-machine.h (testandset, __compare_and_swap): Fix
5226 asm constraints.
5227
52281997-04-09 03:00 Ulrich Drepper <drepper@cygnus.com>
5229
5230 Update from LinuxThreads 0.6.
5231
5232 * attr.c (pthread_attr_getdetachstate): Use __sched_get_priority_max
5233 and __sched_get_priority_min instead of names without `__'.
5234
5235 * manager.c: Rewrite large parts to implement opaque pthread_t.
5236
5237 * cancel.c: Adapt for opaque pthread_t type.
5238 * condvar.c: Likewise.
5239 * errno.c: Likewise.
5240 * join.c: Likewise.
5241 * mutex.c: Likewise.
5242 * pthread.c: Likewise.
5243 * signals.c: Likewise.
5244 * specific.c: Likewise.
5245 * restart.h: Likewise.
5246 * queue.h: Likewise.
5247 * Examples/ex3.c: Likewise.
5248 * Examples/ex4.c: Likewise.
5249 * sysdeps/pthread/pthread.h: Likewise.
5250
5251 * pthread.c: Accumulate time for all threads in thread manager.
5252
5253 * semaphore.c: Implement fallback implementation for architectures
5254 sometimes missing compare-exchange operations.
5255
5256 * cancel.c (pthread_cancel): Validate handle argument.
5257 * join.c (pthread_join): Likewise.
5258 (pthread_detach): Likewise.
5259 * signals.c (pthread_kill): Likewise.
5260
5261 * spinlock.h (acquire): Use __sched_yield not sched_yield.
5262
5263 * queue.h (enqueue): Enqueue thread according to priority.
5264
5265 * internals.c (struct pthread_start_args): New struct for passing
5266 args to cloning function.
5267 (struct _pthread): Rename to _pthread_descr_struct and adapt for
5268 opaque pthread_t.
5269
5270 * Examples/Makefile (clean): Pass -f option to rm.
5271
5272 * sysdeps/i386/pt-machine.h: Add check for compare-exchange instruction
5273 and define TEST_FOR_COMPARE_AND_SWAP.
5274 * sysdeps/i386/i486/pt-machine.h: Removed.
5275
5276 * sysdeps/unix/sysv/linux/local_lim.h (PTHREAD_THREADS_MAX): Increase
5277 to 1024.
5278
52791997-04-04 16:38 Ulrich Drepper <drepper@cygnus.com>
5280
5281 * restart.h (suspend): Clear p_signal before suspending.
5282 (suspend_with_cancellation): Likewise.
5283 Patch by Xavier Leroy <Xavier.Leroy@inria.fr>.
5284
5285 * weaks.c: Make __pthread_key_create return 1.
5286 * sysdeps/pthread/libc-lock.h: Define __libc_key_create,
5287 __libc_getspecific, __libc_setspecific, and __libc_key_t.
5288 * sysdeps/pthread/stdio-lock.h: Don't care for implementation not
5289 using libio.
5290
52911997-03-19 15:13 Miguel de Icaza <miguel@nuclecu.unam.mx>
5292
5293 * sysdeps/sparc/pt-machine (RELEASE): Fix.
5294
52951997-03-01 07:55 Geoff Keating <geoffk@ozemail.com.au>
5296
5297 * sysdeps/powerpc/Implies: Added.
5298 * sysdeps/powerpc/pt-machine.h: Added.
5299 * sysdeps/powerpc/semaphorebits.h: Added.
5300
53011997-01-22 01:22 Ulrich Drepper <drepper@cygnus.com>
5302
d364e525 5303 * pthread.c (__pthread_initial_thread): Correct
5afdca00
UD
5304 initializer.
5305 (__pthread_manager_thread): Likewise.
5306 Reported by Andreas Jaeger.
5307
53081997-01-18 22:15 Richard Henderson <rth@tamu.edu>
5309
5310 Since sigset_t no longer fits in a register, we can't pass in the
5311 thread's initial mask so easily. Take this opportunity to simplify
5312 the clone implementation by only accepting a single void* argument.
5313
d364e525
UD
5314 * manager.c (__pthread_manager): Put thread vitals in the thread
5315 struct instead of as arguments through clone.
5afdca00 5316 (pthread_start_thread): Look for them there.
d364e525 5317 * internals.h (struct _pthread): Add p_initial_fn,
5afdca00 5318 p_initial_fn_arg, p_initial_mask. Fix __pthread_manager proto.
d364e525 5319 * pthread.c (pthread_initialize_manager): Revise clone invocation.
This page took 0.943126 seconds and 5 git commands to generate.