]> sourceware.org Git - glibc.git/blame - linuxthreads/ChangeLog
* elf/dl-lookup.c (_dl_debug_bindings): Print TLS lookups always.
[glibc.git] / linuxthreads / ChangeLog
CommitLineData
1d0ad773
RM
12002-09-17 Roland McGrath <roland@redhat.com>
2
3 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT, TLS_DO_SET_THREAD_AREA):
4 Set the descriptor limit to the full 4GB, so %gs:OFFSET works for any
5 offset (positive or negative) relative to the thread struct.
6 * sysdeps/i386/useldt.h (DO_MODIFY_LDT, DO_SET_THREAD_AREA): Likewise.
7
54c1e6ca
RM
82002-09-12 Jakub Jelinek <jakub@redhat.com>
9
10 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Move...
11 * sysdeps/unix/sysv/linux/sparc/Makefile: ...here.
12 Replace /usr/lib/crt[in].o with crt[in].o too.
13
4730fc68
RM
142002-09-11 Steven Munroe <sjmunroe@us.ibm.com>
15
16 * sysdeps/powerpc/powerpc64/pt-machine.h: New file.
17
64ca3f32
RM
182002-09-04 Bruno Haible <bruno@clisp.org>
19
20 * pthread.c: Include <sys/time.h>.
21 (is_smp_system): Move to sysdeps/unix/sysv/linux/smp.h.
22 * sysdeps/unix/sysv/linux/smp.h: New file, extracted from pthread.c.
23 * Makefile (distribute): Add smp.h to the list.
24
a1e56cd1
RM
252002-09-04 Bruno Haible <bruno@clisp.org>
26
4f58b7c6
RM
27 * sysdeps/alpha/pt-machine.h: Choose different include file location
28 on non-Linux platforms.
29
a1e56cd1
RM
30 * wrapsyscall.c (PROMOTE_INTEGRAL_TYPE): New macro.
31 (open, open64): Change va_arg argument type to the integral type to
32 which mode_t promotes.
33
34 * sysdeps/pthread/tst-timer.c (main): Don't assume anything about
35 the structure of 'struct sigevent'.
36
37 * errno.c (__errno_location, __h_errno_location, __res_state):
38 Use prototype function definitions.
39
92b27c74
UD
402002-07-29 Steven Munroe <sjmunroe@us.ibm.com>
41
42 * shlib-versions: Set libpthread version to 2.3 for powerpc64.
43 * sysdeps/powerpc/pt-machine.h: moved to...
44 * sysdeps/powerpc/powerpc32/pt-machine.h: ...here
a1e56cd1 45 * sysdeps/powerpc/powerpc64/pt-machine.h: New file.
92b27c74 46
bcc565a0
UD
472002-09-02 Roland McGrath <roland@redhat.com>
48
49 * sysdeps/powerpc/Makefile (CFLAGS-pt-initfini.s): New variable.
50
cf684340
RM
512002-09-01 Roland McGrath <roland@redhat.com>
52
53 * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t): Add new keys
54 CTYPE_B, CTYPE_TOLOWER, CTYPE_TOUPPER.
55
56 * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_address): New macro.
57 (__libc_internal_tsd_address): Declare it.
58 * Versions (libc, ld, libpthread: GLIBC_PRIVATE): Add
59 __libc_internal_tsd_address.
60 * specific.c (libc_internal_tsd_address): New function.
61 (__libc_internal_tsd_address): New variable.
62 * no-tsd.c (__libc_internal_tsd_address): New variable.
63
9649be24
UD
642002-08-31 Ulrich Drepper <drepper@redhat.com>
65
66 * Makefile: Don't use rule for crt%.o, spell it out as rules for
67 crti.o and crtn.o.
68
cc6d371d
RM
692002-08-30 Roland McGrath <roland@redhat.com>
70
71 * Makefile (extra-objs, omit-deps): Add crtn.
72 ($(objpfx)libpthread.so): Depend on $(objpfx)crtn.o.
73 ($(objpfx)libpthread.so: +postinit): Append $(objpfx)crtn.o.
74 ($(objpfx)crtn.S): New target.
75 ($(objpfx)crt%.o): Pattern rule replaces crti.o target.
76 (generated): Add crtn.S.
77
78 * sysdeps/unix/sysv/linux/x86_64/Makefile ($(objpfx)specs): Massage
79 crtn.o pathname too.
80
95ed9d84
RM
812002-08-30 Jakub Jelinek <jakub@redhat.com>
82
9649be24
UD
83 * pthread.c (__pthread_initialize_minimal): Call __uselocale even
84 if [! SHARED].
95ed9d84
RM
85
862002-08-30 Roland McGrath <roland@redhat.com>
87
88 * tst-static-locale.c: New file.
89 * Makefile (tests, tests-static): Add it.
90
c98d82db
UD
912002-04-24 Steven Munroe <sjmunroe@us.ibm.com>
92
93 * spinlock.c (__pthread_lock): Fix spurious wakeup
94 handling. Don't clear lowest bit of list pointer as sign the thread
95 is still on the wait list. Don't restart after spurious wakeup
96 with spinning to get the lock.
97 (__pthread_unlock): Take set lowest bit into account when handling
98 pointer to list elements.
99 Patch by Steve Munroe <sjmunroe@us.ibm.com>.
100
963e3b58
RM
1012002-08-28 Roland McGrath <roland@redhat.com>
102
103 * sysdeps/pthread/timer_routines.c (thread_func): Fix type in cast.
104
5fe14d96
UD
1052002-08-28 Jakub Jelinek <jakub@redhat.com>
106
107 * sysdeps/unix/sysv/linux/hppa/aio_cancel.c: New file.
108 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
109 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
110
dd4f2115
UD
1112002-08-28 Ulrich Drepper <drepper@redhat.com>
112
113 * sysdeps/pthread/timer_routines.c (thread_func): Change return
963e3b58 114 type to void and add casts in use to avoid warnings with all gcc
dd4f2115
UD
115 versions.
116
f0377954
UD
1172002-08-08 Jakub Jelinek <jakub@redhat.com>
118
119 * sysdeps/unix/sysv/linux/bits/local_lim.h (PTHREAD_THREADS_MAX):
120 Bump to 16384.
121 * manager.c (__pthread_handles): Remove.
122 * pthandles.c: New file.
123 * pthread.c (__pthread_initialize_minimal): Initialize
124 __pthread_handles[0] and __pthread_handles[1].
125 * Makefile (libpthread-routines): Add pthandles (must be last).
126
5fe14d96 1272002-08-26 Brian Youmans <3diff@gnu.org>
8b269abc 128
e0cffcf6
UD
129 * Examples/ex10.c: Corrected version number in Lesser GPL copying
130 permission notice from 2 to 2.1.
8b269abc
UD
131 * Examples/ex11.c: Likewise.
132 * Examples/ex13.c: Likewise.
133 * Examples/ex8.c: Likewise.
134 * Examples/ex9.c: Likewise.
135 * barrier.c: Likewise.
136 * events.c: Likewise.
137 * lockfile.c: Likewise.
138 * no-tsd.c: Likewise.
139 * pt-machine.c: Likewise.
140 * ptclock_gettime.c: Likewise.
141 * ptclock_settime.c: Likewise.
142 * rwlock.c: Likewise.
143 * sysdeps/alpha/pspinlock.c: Likewise.
144 * sysdeps/alpha/pt-machine.h: Likewise.
145 * sysdeps/arm/pspinlock.c: Likewise.
146 * sysdeps/arm/pt-machine.h: Likewise.
147 * sysdeps/cris/pspinlock.c: Likewise.
148 * sysdeps/cris/pt-machine.h: Likewise.
149 * sysdeps/hppa/pspinlock.c: Likewise.
150 * sysdeps/hppa/pt-machine.h: Likewise.
151 * sysdeps/i386/i686/pt-machine.h: Likewise.
152 * sysdeps/i386/pspinlock.c: Likewise.
153 * sysdeps/i386/pt-machine.h: Likewise.
154 * sysdeps/i386/useldt.h: Likewise.
155 * sysdeps/ia64/pspinlock.c: Likewise.
156 * sysdeps/ia64/pt-machine.h: Likewise.
157 * sysdeps/m68k/pspinlock.c: Likewise.
158 * sysdeps/m68k/pt-machine.h: Likewise.
159 * sysdeps/mips/pspinlock.c: Likewise.
160 * sysdeps/mips/pt-machine.h: Likewise.
161 * sysdeps/powerpc/pspinlock.c: Likewise.
162 * sysdeps/powerpc/pt-machine.h: Likewise.
163 * sysdeps/pthread/bits/initspin.h: Likewise.
164 * sysdeps/pthread/bits/libc-lock.h: Likewise.
165 * sysdeps/pthread/bits/libc-tsd.h: Likewise.
166 * sysdeps/pthread/getcpuclockid.c: Likewise.
167 * sysdeps/pthread/posix-timer.h: Likewise.
168 * sysdeps/pthread/timer_create.c: Likewise.
169 * sysdeps/pthread/timer_delete.c: Likewise.
170 * sysdeps/pthread/timer_getoverr.c: Likewise.
171 * sysdeps/pthread/timer_gettime.c: Likewise.
172 * sysdeps/pthread/timer_routines.c: Likewise.
173 * sysdeps/pthread/timer_settime.c: Likewise.
174 * sysdeps/pthread/tst-timer.c: Likewise.
175 * sysdeps/s390/pspinlock.c: Likewise.
176 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
177 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
178 * sysdeps/sh/pspinlock.c: Likewise.
179 * sysdeps/sh/pt-machine.h: Likewise.
180 * sysdeps/sparc/sparc32/pspinlock.c: Likewise.
181 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
182 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
183 * sysdeps/sparc/sparc64/pspinlock.c: Likewise.
184 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
185 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
186 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
187 * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
188 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
189 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
190 * tststack.c: Likewise.
191 * unload.c: Likewise.
192 * weaks.c: Likewise.
193 * wrapsyscall.c: Likewise.
194
195 * sysdeps/pthread/pt-initfini.c: Changed copying
196 permission notice to Lesser GPL from Library GPL, including the
197 references in the special exception.
198 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: Likewise.
199 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Likewise.
200 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c:
201 Likewise.
202 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c:
203 Likewise.
204 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Likewise.
205
34816665
UD
2062002-08-26 Ulrich Drepper <drepper@redhat.com>
207
208 * Examples/ex10.c (thread): tv_nsec == 1000000000 is already
209 overflow [PR libc/4244].
210
6d497bbe
UD
2112002-08-25 Ulrich Drepper <drepper@redhat.com>
212
fd77c361
UD
213 * sysdeps/pthread/timer_routines.c (thread_func): Make the
214 compiler happy by adding a return statement which will never be
215 reached.
216
9df89390
UD
217 * tst-context.c (main): Cast to long before casting to pointer.
218
219 * Examples/ex17.c (main): Use correct format string.
220
6d497bbe
UD
221 * Examples/ex9.c (thread): Remove incorrect return statement.
222
069125e5
UD
2232002-08-23 Ulrich Drepper <drepper@redhat.com>
224
225 * pthread.c (__linuxthreads_version): New global constant.
226
fb2bdbba
AJ
2272002-08-23 Andreas Jaeger <aj@suse.de>
228
229 * sysdeps/x86_64/pt-machine.h: Use %fs instead of %gs
230 as thread specific register.
231 (testandset): Fix inline asm.
232 (THREAD_GETMEM): Fix inline asm.
233
8ddcb7da
RM
2342002-08-22 Roland McGrath <roland@redhat.com>
235
236 * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Remove [HAVE_TLS_SUPPORT]
237 conditional.
238 (INIT_THREAD_SELF): Pass second arg to DO_SET_THREAD_AREA.
239 (DO_SET_THREAD_AREA): Take second arg, pass to DO_SET_THREAD_AREA_REUSE
240 macro. That chooses whether to reuse %gs value or let kernel set it.
241 [USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, always 1.
242 [!USE_TLS] (DO_SET_THREAD_AREA_REUSE): New macro, true if arg is
243 not constant 0.
244
0fe35439
UD
2452002-08-21 Ulrich Drepper <drepper@redhat.com>
246
247 * sysdeps/i386/tls.h (TLS_SETUP_GS_SEGMENT): Add new parameter
248 also to the third definition of this macro.
249
c70a0936
AJ
2502002-06-17 Andreas Jaeger <aj@suse.de>
251
252 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
253 Set it.
254
58d2d09b
UD
2552002-08-20 Ulrich Drepper <drepper@redhat.com>
256
c761cdf5
UD
257 * sysdeps/i386/useldt.h: Go back to using 16-bit instructions when
258 loading/reading segment registers. Some old hardware doesn't
259 handle the 32-bit instructions as expected.
260 * sysdeps/i386/tls.h: Likewise.
261
9d69bd24
UD
262 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Second parameter is
263 renamed to secondcall and use is negated.
264 (TLS_SETUP_GS_SEGMENT): Likewise.
265 (TLS_INIT_TP): Likewise.
266 * sysdeps/sh/tls.h (TLS_INIT_TP): Second parameter is renamed to
267 secondcall.
268
69681bde
UD
269 * sysdeps/i386/tls.h: Use 32-bit operations when handling segment
270 registers. No need to mask upper 16 bits in this case.
271 * sysdeps/i386/useldt.h: Likewise.
272 (DO_SET_THREAD_AREA): We have to load %gs again even if the value
273 is the same since the GDT content changed.
274
d78ce054
UD
275 * sysdeps/i386/tls.h (TLS_INIT_TP): Add new parameter and pass it on
276 to TLS_SETUP_GS_SEGMENT.
277 (TLS_SETUP_GS_SEGMENT): Add new parameter and pass it on to
278 TLS_DO_SET_THREAD_AREA.
279 (TLS_DO_SET_THREAD_AREA): If new parameter is zero determine
280 entry number from %gs value.
281 * sysdeps/sh/tls.h (TLS_INIT_TP): Add new parameter and simply
282 ignore it.
283
58d2d09b
UD
284 * manager.c (pthread_handle_create): Pass NULL to _dl_allocate_tls.
285 Pass true to _dl_deallocate_tls.
286 (pthread_free): Likewise.
287 * pthread.c (__pthread_initialize_manager): Likewise.
288
46615777
UD
2892002-08-19 Ulrich Drepper <drepper@redhat.com>
290
291 * sysdeps/i386/useldt.h (DO_SET_THREAD_AREA): Use correct shift when
292 computing index from %gs value.
293
25cb6eb2
RM
2942002-08-16 Roland McGrath <roland@redhat.com>
295
3ed35099
RM
296 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Calculate segment
297 register value from entry number properly.
298
25cb6eb2
RM
299 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Rewrite asm to use %ebx
300 optimally conditional on [__PIC__].
301 (TLS_DO_SET_THREAD_AREA): New macro, implement inline syscall
302 without touching errno, and use latest modify_ldt-like interface.
303 (TLS_SETUP_GS_SEGMENT): Use that instead of INLINE_SYSCALL.
304 * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Set %gs in this macro.
305 (DO_SET_THREAD_AREA): New macro, uses current syscall interface with
306 existing %gs value as the segment to set.
307 (INIT_THREAD_SELF): Rewritten using those. Use set_thread_area only
308 under [HAVE_TLS_SUPPORT] so we can rely on the initialization done
309 by the first thread's early TLS setup.
310
c88b4759
RM
3112002-08-15 Roland McGrath <roland@redhat.com>
312
313 * sysdeps/i386/tls.h (TLS_INIT_TP): Use statement expression and
314 return a value as callers now expect.
315
e6f52680
RM
3162002-08-11 Roland McGrath <roland@redhat.com>
317
318 * pthread.c (__pthread_initialize_manager): Initialize
319 p_header.data.tcb field of manager thread's descriptor.
320 (__pthread_initialize_minimal): Don't initialize p_header.data.self
321 field, already done by TLS_INIT_TP.
322
323 * manager.c (pthread_handle_create): Move p_header field initializers
324 together.
325
b7eb7b0f
UD
3262002-08-08 Ulrich Drepper <drepper@redhat.com>
327
328 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Removed.
329
f70b0ea2
UD
3302002-08-07 Ulrich Drepper <drepper@redhat.com>
331
332 * pthread.c (__linuxthreads_initial_report_events): New variable.
333 (__pthread_initialize_manager): Use it to initialize p_report_events
334 of initial thread.
335 [TLS]: Store pointer to descriptor of manager in __pthread_handles.
336
e8e91498
RM
3372002-08-07 Roland McGrath <roland@redhat.com>
338
339 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): Add an extra argument with
340 an "m" constraint to the asm so the compiler knows LDT_ENTRY was used.
341
26e73ab6
RM
3422002-08-02 Roland McGrath <roland@redhat.com>
343
a14f26ef
RM
344 * sysdeps/pthread/bits/libc-tsd.h (enum __libc_tsd_key_t):
345 Add _LIBC_TSD_KEY_LOCALE.
346 * manager.c (pthread_start_thread) [!(USE_TLS && HAVE___THREAD)]:
347 Call __uselocale to initialize our per-thread locale pointer to
348 the global one.
349 * pthread.c (__pthread_initialize_minimal): Likewise.
350
26e73ab6
RM
351 * sysdeps/i386/tls.h (TLS_DO_SET_THREAD_AREA): Add missing \s.
352
1f3f143e
UD
3532002-08-02 Ulrich Drepper <drepper@redhat.com>
354
3c877a04
UD
355 * pthread.c: Declare _errno, _h_errno, and _res unless we use TLS
356 internally.
357
1f3f143e
UD
358 * cancel.c (__pthread_perform_cleanup) [USE_TLS && HAVE___THREAD]:
359 Don't use p_libc_specific element in thread descriptor.
360
c2afe833
RM
3612002-07-30 Roland McGrath <roland@redhat.com>
362
363 * sysdeps/pthread/bits/libc-tsd.h: Include <tls.h>.
364 [USE_TLS && HAVE___THREAD]: Just include the sysdeps/generic file,
365 which does the right thing when __thread support is available.
366 * descr.h (struct _pthread_descr_struct) [USE_TLS && HAVE___THREAD]:
367 Omit `p_libc_specific', `p_errnop', `p_errno', `p_h_errnop',
368 `p_h_errno', `p_resp', and `p_res' members.
369 * pthread.c (__pthread_initialize_minimal) [USE_TLS && HAVE___THREAD]:
370 Don't initialize `p_errnop' and `p_h_errnop' members.
371 (__pthread_reset_main_thread): Likewise.
372 (__pthread_initialize_manager): Likewise.
373 * manager.c (__pthread_manager, pthread_handle_create): Likewise.
374 * pthread.c (pthread_initialize) [USE_TLS && HAVE___THREAD]:
375 Don't initialize `p_resp' member.
376 (__pthread_reset_main_thread): Likewise.
377 * manager.c (pthread_handle_create): Likewise.
378 * specific.c (libc_internal_tsd_set, libc_internal_tsd_get):
379 Conditionalize these on [!(USE_TLS && HAVE___THREAD)].
fc10bc8d 380 * no-tsd.c: Conditionalize contents on [!(USE_TLS && HAVE___THREAD)].
c2afe833
RM
381 * errno.c [USE_TLS && HAVE___THREAD]
382 (__h_errno_location, __res_state): Don't define these at all.
383
384 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens around arguments!
385 (INSTALL_NEW_DTV, GET_DTV): Likewise.
386 * sysdeps/sh/tls.h (INSTALL_DTV, INSTALL_NEW_DTV, GET_DTV): Likewise.
387
388 * weaks.c: Don't include <errno.h> here.
389
3902002-08-01 Roland McGrath <roland@redhat.com>
391
392 * sysdeps/i386/tls.h (TLS_DO_MODIFY_LDT): New macro, broken out of
393 TLS_INIT_TP.
394 (TLS_DO_SET_THREAD_AREA): New macro, uses thread_set_area syscall.
395 (TLS_SETUP_GS_SEGMENT): New macro, try one or the other or both.
396 (TLS_INIT_TP): Use that.
397
06c2c536
UD
3982002-08-02 Jakub Jelinek <jakub@redhat.com>
399
400 * sysdeps/i386/useldt.h (DO_MODIFY_LDT): Move from INIT_THREAD_SELF.
401 (INIT_THREAD_SELF): Use sys_thread_area syscall instead if available.
402 (FREE_THREAD): Avoid modify_ldt if using GDT.
403 * sysdeps/i386/pspinlock.c (__have_no_set_thread_area): New variable.
404
78ce5a3b
UD
4052002-07-25 Jakub Jelinek <jakub@redhat.com>
406
407 * sysdeps/i386/tls.h: Use __ASSEMBLER__ test macro not ASSEMBLER.
408 * sysdeps/i386/pt-machine.h: Likewise.
409 * sysdeps/i386/useldt.h: Likewise.
410
67ee6db0
UD
4112002-07-22 Ulrich Drepper <drepper@redhat.com>
412
8a30f00f
UD
413 * pthread.c (__pthread_initialize_minimal): If !SHARED and TLS
414 call __libc_setup_tls first.
415 * Makefile: Actually create tst-signal.out file when running the test.
416 (tests): Add tststatic.
417 * Examples/tststatic.c: New file.
67ee6db0 418
739d440d
UD
4192002-07-19 Ulrich Drepper <drepper@redhat.com>
420
421 * errno.c (__errno_location): Don't define unless !USE_TLS
422 || !HAVE___THREAD.
423 * sysdeps/i386/pt-machine.c: Protect C code with #ifndef ASSEMBLER.
424 * sysdeps/i386/tls.h: Likewise.
425 * sysdeps/i386/useldt.h: Likewise.
426 * sysdeps/i386/i686/pt-machine.h: Likewise.
427
a99bfa85
UD
4282002-07-02 H.J. Lu <hjl@gnu.org>
429
430 * sysdeps/mips/pspinlock.c: Don't include <sgidefs.h>. Always
431 use ll/sc.
432 * sysdeps/mips/pt-machine.h: Likewise.
433
2acfe5d6
UD
4342002-07-14 Ulrich Drepper <drepper@redhat.com>
435
436 * manager.c (pthread_handle_create): Initialize self-reference in
437 descriptor.
438
b664d723
UD
4392002-07-01 Jakub Jelinek <jakub@redhat.com>
440
441 * Examples/ex9.c (main): Remove unused th variable.
442
d880edc4
UD
4432002-07-10 Ulrich Drepper <drepper@redhat.com>
444
445 * wrapsyscall.c: Add __nanosleep alias.
446 * Versions (GLIBC_2.2.6): Add __nanosleep.
f4741da2
UD
447 * bug-sleep.c: New file.
448 * Makefile (tests): Add bug-sleep.
d880edc4 449
95fdc6a0
UD
4502002-06-19 Steven Munroe <sjmunroe@vnet.ibm.com>
451
452 * Examples/ex9.c (main): Use list of children and join them.
453 (thread): Do not call exit.
454
9b17bc94
UD
4552002-06-20 Ulrich Drepper <drepper@redhat.com>
456
457 * spinlock.c (wait_node_alloc): We cannot use compare-and-exchange.
458 Unconditionally use the code using spinlock. Use __pthread_release
459 to free a spinlock.
460 (wait_node_free): Likewise.
461 (__pthread_acquire, __pthread_release): Unconditionally define.
462
a6cd9bf9
AJ
4632002-06-07 Jakub Jelinek <jakub@redhat.com>
464
465 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Fix typo.
466
c0a0f9a3
UD
4672002-05-24 Ulrich Drepper <drepper@redhat.com>
468
469 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Use __sync_synchronize.
470
12b7f470
UD
4712002-05-21 Ulrich Drepper <drepper@redhat.com>
472
473 * sysdeps/pthread/pthread.h (pthread_create): Rename first
474 parameter.
475 (pthread_cancel): Likewise.
476 * internals.h (__pthread_create_2_1): Likewise.
477 * sysdeps/unix/sysv/linux/bits/sigthread.h (pthread_kill): Likewise.
478
4c393b68
UD
4792002-05-20 Ulrich Drepper <drepper@redhat.com>
480
481 * sysdeps/alpha/pt-machine.c (THREAD_SELF): Remove clobber.
482 Patch by Glen Nakamura <gen@flex.com>.
483
38a7d8ba
UD
4842002-05-03 Ulrich Drepper <drepper@redhat.com>
485
486 * signals.c: Move sighandler functions to...
487 * sighandler.c: ...here. New file.
488 * signals.c: Move signal handler related type definitions to...
489 * internals.h: ...here. Add prototypes for signal handlers.
490 * Makefile (libpthread-routines): Add sighandler.
491 (CFLAGS-sighandler.c): Add $(exceptions).
492
531bafd8
UD
4932002-04-30 Jakub Jelinek <jakub@redhat.com>
494
495 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
496
14b2ede5
UD
4972002-04-08 Ulrich Drepper <drepper@redhat.com>
498
499 * sysdeps/pthread/timer_getoverr.c: Return real overrun.
500 * sysdeps/pthread/posix-timer.h (struct timer_node): Add overrun_count.
501 * sysdeps/pthread/timer_routines.c (thread_func): Schedule next timeout
502 based on previous one and not on current time. Count overruns.
503 Patch by Eric F. Sorton <eric@cctcorp.com>.
504
505 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add DELAYTIMER_MAX.
506
776cc5d3
UD
5072002-04-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
508
509 * sysdeps/sh/pt-machine.h: Define _PT_MACHINE_H
510 if it isn't defined yet.
14b2ede5 511 (FLOATING_STACKS, ARCH_STACK_MAX_SIZE): Defined.
776cc5d3
UD
512 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
513 Likewise.
514 * sysdeps/sh/tls.h: New file.
515
3632a260
UD
5162002-04-08 Jakub Jelinek <jakub@redhat.com>
517
518 * manager.c (__pthread_manager_event): Use self instead of arg
519 for INIT_THREAD_SELF.
520 * sysdeps/i386/useldt.h (INIT_THREAD_SELF): Use sizeof (struct
521 _pthread_descr_struct) instead of sizeof (*descr).
522
3fc2f6c8
UD
5232002-04-05 Ulrich Drepper <drepper@redhat.com>
524
525 * sysdeps/ia64/pt-machine.h: Protect against multiple inclusion.
526 * sysdeps/alpha/pt-machine.h: Likewise.
527 * sysdeps/arm/pt-machine.h: Likewise.
528 * sysdeps/cris/pt-machine.h: Likewise.
529 * sysdeps/hppa/pt-machine.h: Likewise.
530 * sysdeps/m68k/pt-machine.h: Likewise.
531 * sysdeps/mips/pt-machine.h: Likewise.
532 * sysdeps/powerpc/pt-machine.h: Likewise.
533 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
534 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
535 * sysdeps/sh/pt-machine.h: Likewise.
536 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
537 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
538 * sysdeps/x86_64/pt-machine.h: Likewise.
539
6736e93b
UD
5402002-04-05 Jakub Jelinek <jakub@redhat.com>
541
542 * man/pthread_mutexattr_init.man (pthread_mutexattr_settype): Document
543 instead of pthread_mutexattr_setkind_np.
544 (pthread_mutexattr_gettype): Similarly.
545 * man/pthread_mutexattr_setkind_np.man: New.
546 * man/Makefile (SOURCES): Add pthread_mutexattr_setkind_np.man.
547
62097690
UD
5482002-04-02 Ulrich Drepper <drepper@redhat.com>
549
550 * sysdeps/ia64/pt-machine.h (MEMORY_BARRIER): Define.
551
fbaee91d
UD
5522002-03-22 Jakub Jelinek <jakub@redhat.com>
553
554 * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Remove.
555
32fe4a93
UD
5562002-03-22 Ulrich Drepper <drepper@redhat.com>
557
558 * internals.h (MEMORY_BARRIER): Define as asm with memory as clobber.
559
f68137c9
AJ
5602002-03-17 Andreas Jaeger <aj@suse.de>
561
562 * sysdeps/i386/pt-machine.h: Add testandset and __compare_and_swap
563 prototpyes.
564 * sysdeps/alpha/pt-machine.h: Likewise.
565 * sysdeps/arm/pt-machine.h: Likewise.
566 * sysdeps/cris/pt-machine.h: Likewise.
567 * sysdeps/hppa/pt-machine.h: Likewise.
568 * sysdeps/i386/i686/pt-machine.h: Likewise.
569 * sysdeps/ia64/pt-machine.h: Likewise.
570 * sysdeps/m68k/pt-machine.h: Likewise.
571 * sysdeps/mips/pt-machine.h: Likewise.
572 * sysdeps/powerpc/pt-machine.h: Likewise.
573 * sysdeps/s390/s390-32/pt-machine.h: Likewise.
574 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
575 * sysdeps/sh/pt-machine.h: Likewise.
576 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
577 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
578 * sysdeps/x86_64/pt-machine.h: Likewise.
579
580 * internals.h: Move testandset and __compare_and_swap prototypes
581 to pt-machine.h.
582
1bd8ff7b
AJ
5832002-03-03 Andreas Jaeger <aj@suse.de>
584
585 * errno.c: Include resolv.h to avoid warning.
586
b863ccd7
UD
5872002-02-27 Ulrich Drepper <drepper@redhat.com>
588
589 * pthread.c [USE_TLS] (thread_self_stack): Correct check for upper
590 stack limit.
591
557fab43
UD
5922002-02-23 Ulrich Drepper <drepper@redhat.com>
593
b6a0a996
UD
594 * attr.c (pthread_getattr_np): Don't take thread descriptor size
595 into account if USE_TLS.
596 * manager.c (pthread_handle_create): Free TLS data structures if call
597 failed. Pass correct stack to clone if USE_TLS.
598 * sysdeps/i386/pt-machine.h: Handle multiple inclusion.
599 * sysdeps/i386/i686/pt-machine.h: Likewise.
600 * sysdeps/i386/tls.h: Unconditionally include <pt-machine.h>.
601
557fab43
UD
602 * descr.h (struct _pthread_descr_struct): Update p_header for TLS.
603 Add p_stackaddr element #if USE_TLS.
604 * internals.c: Include <tls.h>.
605 * manager.c: Integrate creating and handling of thread descriptor
606 for TLS.
607 * pthread.c: Likewise.
608 * sysdeps/i386/tls.h (tcbhead_t): Add self pointer.
609 Include <linuxthreads/descr.h> only if TLS is really used.
610 (GET_DTV): New macro.
611 (TLS_INIT_TP): Initialize self pointer.
612
232bd771
UD
6132002-02-17 Andreas Schwab <schwab@suse.de>
614
615 * signals.c (sigwait): Check for old sighandler being SIG_ERR,
616 not NULL.
617
aed283dd
UD
6182002-02-12 Ulrich Drepper <drepper@redhat.com>
619
620 * sysdeps/i386/tls.c (INSTALL_NEW_DTV): Define.
621 (INSTALL_DTV): Adjust for being passed pointer to element with length.
622
974ac3d6
UD
6232002-02-08 Ulrich Drepper <drepper@redhat.com>
624
625 * sysdeps/i386/tls.h (TLS_INIT_TP): Also initialize %gs.
626
aed283dd 6272002-02-08 Richard Henderson <rth@redhat.com>
2a535bf6
UD
628
629 * sysdeps/alpha/elf/pt-initfini.c: Use \n\ for multiline string.
630
67eb7235
UD
6312002-02-08 Ulrich Drepper <drepper@redhat.com>
632
633 * sysdeps/i386/tls.h: TLS cannot be supported with FLOATING_STACKS
634 after all.
635
1a70fdb3
AJ
6362002-02-07 H.J. Lu <hjl@gnu.org>
637
638 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Silence the
639 gcc warning.
640 (__pthread_spin_lock): Remove ".set noreorder".
641 * sysdeps/mips/pt-machine.h (__compare_and_swap): Liekwise.
642
a6049f98
AJ
6432002-02-05 H.J. Lu <hjl@gnu.org>
644
645 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Not use
646 branch likely.
647 * sysdeps/mips/pt-machine.h (testandset): Likewise.
648 (__compare_and_swap): Likewise.
649
cd30b01e
UD
6502002-02-07 Ulrich Drepper <drepper@redhat.com>
651
652 * internals.h: Move declarations/definitions of
653 __pthread_initial_thread_bos, __pthread_initial_thread,
654 __pthread_manager_thread_bos, __pthread_manager_thread_tos,
655 __pthread_manager_thread, __pthread_nonstandard_stacks, STACK_SIZE,
656 CURRENT_STACK_FRAME, __pthread_find_self, and thread_self...
657 * descr.h: ...here.
658 * sysdeps/i386/tls.h: Add TLS definitions also for !FLOATING_STACKS.
659 Define THREAD_GETMEM accordingly.
660
3fb55878
UD
6612002-02-06 Ulrich Drepper <drepper@redhat.com>
662
8d4b5a8a
UD
663 * sysdeps/i386/tls.h: Include <stddef.h> for size_t.
664
3fb55878
UD
665 * sysdeps/i386/tls.h: Define THREAD_DTV.
666
535b764d
UD
6672002-02-04 Ulrich Drepper <drepper@redhat.com>
668
669 * internals.h: Move thread descriptor definition...
670 * descr.h.: ...here. New file.
671 * sysdeps/i386/tls.h: New file.
672
654a7a0c
UD
6732002-02-01 H.J. Lu <hjl@gnu.org>
674
675 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Use a
676 different register in the delayed slot. Use branch likely.
677
678 * sysdeps/mips/pt-machine.h (testandset): Call _test_and_set.
679 (__compare_and_swap): Return 0 only when failed to compare. Use
680 branch likely.
681
fb23eb25
UD
6822002-02-01 Jakub Jelinek <jakub@redhat.com>
683
684 * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set,
685 __pthread_kill_other_threads_np): Move to GLIBC_PRIVATE.
686 * sysdeps/i386/i586/Versions: Move all symbols to GLIBC_PRIVATE.
687 * sysdeps/i386/i686/Versions: Move all symbols to GLIBC_PRIVATE.
688 * sysdeps/sparc/sparc32/sparcv9/Versions: New file.
689 * sysdeps/sparc/sparc64/Versions: New file.
690 * sysdeps/ia64/Versions: Move all symbols to GLIBC_PRIVATE.
691
5688da55
UD
6922002-01-31 Ulrich Drepper <drepper@redhat.com>
693
694 * pthread.c: _dl_cpuclock_offset is not any longer a global variable
695 in SHARED code, use GL(dl_cpuclock_offset).
696
dde762a2
AJ
6972002-01-28 Andreas Jaeger <aj@suse.de>
698
699 * sysdeps/mips/pspinlock.c (__pthread_spin_init): Clear *LOCK to
700 0. Patch by Machida Hiroyuki <machida@sm.sony.co.jp>.
701
956f8acd
UD
7022002-01-16 Martin Schwidefsky <schwidefsky@de.ibm.com>
703
dde762a2
AJ
704 * sysdeps/s390/s390-32/pt-machine.h (MEMORY_BARRIER): Define.
705 (CURRENT_STACK_FRAME): Remove duplicate definition.
706 * sysdeps/s390/s390-64/pt-machine.h: Likewise.
956f8acd 707
01d1a5b6
UD
7082002-01-14 Martin Schwidefsky <schwidefsky@de.ibm.com>
709
ec562b3d
UD
710 * Makefile (CFLAGS-tst-cancel.c): Add -fno-inline-functions to prevent
711 automatic inline.
01d1a5b6 712
de13e6e7
UD
7132002-01-12 Andreas Schwab <schwab@suse.de>
714
715 * Makefile (test-srcs): Add tst-signal.
716 (tests): Run tst-signal.
717 (distribute): Add tst-signal.sh.
718 * tst-signal.c, tst-signal.sh: New files.
719
037af25e
AJ
7202002-01-14 Andreas Jaeger <aj@suse.de>
721
722 * sysdeps/x86_64/pt-machine.h (INIT_THREAD_SELF): Avoid warning.
723
6c69f24a
UD
7242002-01-11 Andreas Schwab <schwab@suse.de>
725
726 * signals.c (sighandler): Initialize all elements to SIG_ERR.
727 (__sigaction): Don't use value from sighandler if it is SIG_ERR.
728
abd33689
UD
7292002-01-06 Richard Henderson <rth@redhat.com>
730
731 * sysdeps/alpha/elf/pt-initfini.c: New file.
732
9403ec5d
AJ
7332001-12-29 Andreas Jaeger <aj@suse.de>
734
735 * Examples/ex9.c: Add noreturn attribute for thread.
736 * Examples/ex10.c: Likewise.
737 * Examples/ex13.c (thread_start): Likewise.
738 * Examples/ex15.c (worker): Likewise.
739
740 * Examples/ex18.c: Include unistd.h for prototype of sleep.
741
638621af
UD
7422001-12-14 Ulrich Drepper <drepper@redhat.com>
743
744 * man/pthread_atfork.man: Adjust description of mutex handling
745 after fork for current implementation.
746 * linuxthreads.texi: Likewise [PR libc/2519].
747
2e22fed2
UD
7482001-12-13 Andreas Schwab <schwab@suse.de>
749
750 * specific.c (pthread_key_delete): Don't contact the thread
751 manager if no threads have been created yet.
752
abd33689 7532001-12-12 NIIBE Yutaka <gniibe@m17n.org>
2bfe5fd1
UD
754
755 * sysdeps/sh/pt-machine.h (INIT_THREAD_SELF): Added __volatile__
756 qualifier to be safe.
757
c3317d1e
UD
7582001-11-30 Andreas Schwab <schwab@suse.de>
759
760 * pthread.c (pthread_handle_sigcancel) [THREAD_SELF]: Double check
761 that self is the manager thread, and initialize the thread
762 register if not.
763 (thread_self_stack) [THREAD_SELF]: New function to find self via
764 stack pointer.
765 * manager.c (pthread_handle_create): Don't block cancel signal any
766 more.
767
64753027
AJ
7682001-11-29 Andreas Jaeger <aj@suse.de>
769
2e22fed2 770 * sysdeps/x86_64/pt-machine.h: Use %gs as thread specific register.
64753027
AJ
771 (THREAD_SELF): New.
772 (INIT_THREAD_SELF): New.
773 (THREAD_GETMEM): New.
c3317d1e 774 (THREAD_GETMEM_NC):
64753027
AJ
775 (THREAD_SETMEM): New.
776 (THREAD_SETMEM_NC): New.
777 (FLOATING_STACKS): Define.
778 (ARCH_STACK_MAX_SIZE): Define.
779
03a2c647
UD
7802001-11-28 Kaz Kylheku <kaz@ashi.footprints.net>
781
782 Bugfix to pthread_key_delete. It was iterating over the thread
783 manager's linked list of threads, behind the thread manager's
784 back causing a race. The fix is to have the manager iterate over
785 the threads instead, using a new request type for doing so.
786 * internals.h (struct pthread_request): New manager request type
787 REQ_FOR_EACH_THREAD.
788 * manager.c (pthread_for_each_thread): New function.
789 (__pthread_manager): Handle new REQ_FOR_EACH_THREAD request.
790 * specific.c (struct pthread_key_delete_helper_args): New type.
791 (pthread_key_delete_helper): New static function.
792 (pthread_key_delete): Use the new thread manager
793 REQ_FOR_EACH_THREAD function to iterate over the threads and set
794 the delete key slot to a null value in each thread.
795 * Examples/ex18.c: New test.
796 * Makefile (tests): Add ex18.
797
cf6a2367
UD
7982001-11-22 Wolfram Gloger <wg@malloc.de>
799
800 * pthread.c (pthread_onexit_process): Don't call free
801 after threads have been asynchronously terminated.
802
803 * manager.c (pthread_handle_exit): Surround cancellation
804 of threads with __flockfilelist()/__funlockfilelist().
805
30f5deff
AS
8062001-11-26 Andreas Schwab <schwab@suse.de>
807
808 * manager.c (pthread_handle_create): Start the child thread with
809 the cancel signal blocked, so that it does not handle it before
810 the thread register is set up. Save errno from failed clone call.
811
4acda75c
UD
8122001-11-15 Ulrich Drepper <drepper@redhat.com>
813
814 * sysdeps/i386/i686/Implies: Removed.
815 * sysdeps/i386/i686/Versions: New file.
816
76f93292
AJ
8172001-10-31 Andreas Jaeger <aj@suse.de>
818
819 * sysdeps/x86_64/Makefile: Remove, we do not need it anymore.
820
b61345a1
UD
8212001-10-05 Kevin Buettner <kevinb@cygnus.com>
822
823 * pthread.c (__linuxthread_pthread_sizeof_descr): Change name
824 to __linuxthreads_pthread_sizeof_descr to match name used by
825 symbol_list_arr[LINUXTHREADS_PTHREAD_SIZEOF_DESCR] in
826 linuxthreads_db/td_symbol_list.c.
827
2be2ce5f
AJ
8282001-09-22 Andreas Jaeger <aj@suse.de>
829
830 * linuxthreads/tst-context.c: Avoid compile warning.
831
d8d373c5
AJ
8322001-09-20 Andreas Jaeger <aj@suse.de>
833
834 * shlib-versions: Add x86-64.
835
c9cf6dde
AJ
8362001-09-19 Andreas Jaeger <aj@suse.de>
837
838 * sysdeps/x86_64/Makefile: New file.
839 * sysdeps/x86_64/pspinlock.c: New file.
840 * sysdeps/x86_64/pt-machine.h: New file.
841
7aba050d
UD
8422001-09-12 Jakub Jelinek <jakub@redhat.com>
843
844 * sysdeps/pthread/timer_delete.c (timer_delete): Thread may be NULL
845 for SIGEV_NONE.
846 * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
847
57642a78 8482001-09-11 Ulrich Drepper <drepper@redhat.com>
7aba050d 849 Wolfram Gloger <wg@malloc.de>
57642a78
UD
850
851 * join.c: Protect all communications from and to manager with
852 TEMP_FAILURE_RETRY.
853 * manager.c: Likewise.
854 * pthread.c: Likewise.
855 * smeaphore.c: Likewise.
856
746802f2
UD
8572001-08-29 Ulrich Drepper <drepper@redhat.com>
858
859 * spinlock.c (__pthread_lock): Top max_count value with
860 MAX_ADAPTIVE_SPIN_COUNT.
861 * internals.h (MAX_ADAPTIVE_SPIN_COUNT): Define if not already done.
862
863 * sysdeps/i386/i686/pt-machine.h (BUSY_WAIT_NOP): New macro to
864 help P4.
865
c06a49c5
UD
8662001-08-27 Jakub Jelinek <jakub@redhat.com>
867
868 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_t): Only define to
869 non-opaque type if __USE_UNIX98.
870
82ad8034
UD
8712001-08-26 Jakub Jelinek <jakub@redhat.com>
872
873 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_t): Define
874 non-opaque lock types also if _IO_MTSAFE_IO is defined.
875
edb63884
RM
8762001-08-23 Roland McGrath <roland@frob.com>
877
878 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start): Take
879 new first argument, skip the cleanup handler if it's zero.
880 (_LIBC_LOCK_RECURSIVE_INITIALIZER): New macro.
881 (__libc_lock_define_initialized_recursive): Use it.
882 * sysdeps/pthread/bits/stdio-lock.h: File removed.
883 The sysdeps/generic file from the main tree now suffices.
884
c12aa801
RM
8852001-08-22 Roland McGrath <roland@frob.com>
886
887 * sysdeps/pthread/bits/stdio-lock.h: Include <bits/libc-lock.h>
888 instead of <pthread.h>.
889 (_IO_lock_t): Define this typedef using __libc_lock_define_recursive.
890 (_IO_lock_initializer): Add braces.
891 (_IO_lock_lock): Use __libc_lock_lock_recursive.
892 (_IO_lock_unlock): Use __libc_lock_unlock_recursive.
893
894 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_recursive_t): New type.
895 (__libc_lock_define_initialized_recursive): Use it.
896 (__libc_lock_init_recursive): Likewise.
897 (__libc_lock_fini_recursive): Likewise.
898 (__libc_lock_lock_recursive): Likewise.
899 (__libc_lock_trylock_recursive): Likewise.
900 (__libc_lock_unlock_recursive): Likewise.
901 (__libc_lock_define_recursive): New macro.
902
5db91571
UD
9032001-08-14 Jakub Jelinek <jakub@redhat.com>
904
905 * lockfile.c (__pthread_provide_lockfile): New variable.
906 * pthread.c (__pthread_require_lockfile): New variable.
907 * cancel.c (__pthread_require_lockfile): New variable.
908
ad71126b
UD
9092001-07-31 Ulrich Drepper <drepper@redhat.com>
910
e14b1447
UD
911 * tst-context.c (threadfct): Initialize context before calling
912 makecontext.
913
ad71126b
UD
914 * Examples/ex17.c: Make sure test thread is around long enough.
915
045fcd26
UD
9162001-07-26 kaz Kojima <kkojima@rr.iij4u.or.jp>
917
918 * sysdeps/sh/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF): Defined.
919
f369623d
UD
9202001-07-24 Ulrich Drepper <drepper@redhat.com>
921
922 * tst-context.c (main): Print explanation before bailing out
923 because context handling is not supported.
924
3afd9491
UD
9252001-07-23 Ulrich Drepper <drepper@redhat.com>
926
06b5289f
UD
927 * Makefile (tests): Add tst-context.
928 * tst-context.c: New file.
929
3afd9491
UD
930 * sysdeps/pthread/bits/stdio-lock.h: Define
931 _IO_cleanup_region_start_noarg.
932
4b9afc43
UD
9332001-07-23 Jakub Jelinek <jakub@redhat.com>
934
935 * sysdeps/alpha/pt-machine.h (FLOATING_STACKS): Define.
936 (ARCH_STACK_MAX_SIZE): Define.
937 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
938 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
939
8d42e2e5
UD
9402001-07-19 Jakub Jelinek <jakub@redhat.com>
941
942 * sysdeps/i386/useldt.h: Fix typo in ARCH_STACK_MAX_SIZE comment.
943
944 * sysdeps/ia64/pt-machine.h (FLOATING_STACKS): Define.
945 (ARCH_STACK_MAX_SIZE): Define.
946 * manager.c (pthread_allocate_stack): Handle FLOATING_STACKS with
947 NEED_SEPARATE_REGISTER_STACK.
948
774a8fe8
UD
9492001-07-16 Andreas Schwab <schwab@suse.de>
950
951 * Makefile (before-compile): Don't add $(objpfx)crti.o.
952 (omit-deps): Add crti.
953 ($(objpfx)libpthread.so): Depend on $(objpfx)crti.o, but make sure
954 it is filtered out of the link command.
955
778e0ef7
UD
9562001-07-16 Ulrich Drepper <drepper@redhat.com>
957
774a8fe8 958 * pthread.c (pthread_initialize): For FLOATING_STACKS don't bother
778e0ef7
UD
959 to find the right value for __pthread_initial_thread_bos, it's not
960 used. If not FLOATING_STACKS first run
961 __pthread_init_max_stacksize.
962
2879ae4a
UD
9632001-06-16 H.J. Lu <hjl@gnu.org>
964
965 * internals.h: Include <stackinfo.h>.
966
967 * attr.c: Don't include <stackinfo.h> here.
968 * cancel.c: Likewise.
969 * manager.c: Likewise.
970 * pthread.c: Likewise.
971 * ptlongjmp.c: Likewise.
972
8fee1bb0
UD
9732001-03-23 Matthew Wilcox <willy@ldl.fc.hp.com>
974
975 * attr.c: Make _STACK_GROWS_UP work.
976 * internals.h: Likewise.
977 * manager.c: Likewise.
978 * pthread.c: Likewise.
979
2e92fd3c
UD
9802001-06-15 H.J. Lu <hjl@gnu.org>
981
982 * pthread.c (__pthread_reset_main_thread): Fix a typo.
983
bad6065c
UD
9842001-02-02 John S. Marvin <jsm@udlkern.fc.hp.com>
985
986 * semaphore.h: Use struct _pthread_fastlock as an element of
987 sem_t instead of an identical struct.
988 * rwlock.c: Remove casts.
989 * semaphore.c: Likewise.
990
e856b72d
AJ
9912001-04-30 Alan Modra <amodra@one.net.au>
992
993 * sysdeps/unix/sysv/linux/hppa/pt-initfini.c: New.
994
b912ca11
UD
9952001-05-25 Bruce Mitchener <bruce@cubik.org>
996
997 * linuxthreads.texi: Spelling corrections.
998
17ffa498
UD
9992001-05-25 Ulrich Drepper <drepper@redhat.com>
1000
1001 * oldsemaphore.c (__old_sem_wait): Clear p_nextwaiting before
1002 returning successfully.
1003 Patch by Gene Cooperman <gene@ccs.neu.edu>.
1004
47e5d2a8
UD
10052001-05-24 Ulrich Drepper <drepper@redhat.com>
1006
1007 * spinlock.c (__pthread_lock) [HAS_COMPARE_AND_SWAP]: Before doing any
1008 serious work try once whether the lock is uncontested.
1009 Remove duplicate reading of __status before loop.
1010 Change suggested by Hans Boehm <hans_boehm@hp.com>.
1011
1012 * spinlock.h (__pthread_trylock): Remove need for oldstatus variable.
1013 (__pthread_alt_trylock): Likewise.
1014
9c4a5197
UD
10152001-05-01 Kaz Kylheku <kaz@ashi.footprints.net>
1016
1017 Memory barrier overhaul following line by line inspection.
1018 * mutex.c (pthread_once): Missing memory barriers added.
1019 * pthread.c (__pthread_wait_for_restart_signal,
1020 __pthread_timedsuspend_new, __pthread_restart_new): Added
1021 memory barriers ``just in case'' and for documentary value.
1022 * spinlock.c (__pthread_release): New inline function for releasing
1023 spinlock, to complement __pthread_acquire. Includes memory
1024 barrier prior to assignment to spinlock, and __asm __volatile
1025 dance to prevent reordering or optimization of the spinlock access.
1026 * spinlock.c (__pthread_unlock, __pthread_alt_lock,
1027 __pthread_alt_timedlock, __pthread_alt_unlock,
1028 __pthread_compare_and_swap): Updated to use new __pthread_release
1029 instead of updating spinlock directly.
1030 * spinlock.c (__pthread_lock, __pthread_unlock, wait_node_alloc,
1031 wait_node_free, wait_node_dequeue, __pthread_alt_lock,
1032 __pthread_alt_timedlock, __pthread_alt_unlock, __pthread_acquire):
1033 Memory barrier overhaul. Lots of missing memory barriers added,
1034 a couple needless ones removed.
1035 * spinlock.c (__pthread_compare_and_swap): testandset optimization
1036 removed, just calls __pthread_acquire, which has the new read
1037 barrier in it before its testandset.
1038
f1d71039
RM
10392001-05-20 Roland McGrath <roland@frob.com>
1040
1041 * Makeconfig: New file, variables used to be in main libc Makeconfig.
1042
0e47171f
GK
10432001-05-09 Geoff Keating <geoffk@redhat.com>
1044
f1d71039 1045 * sysdeps/powerpc/pt-machine.h
0e47171f
GK
1046 (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): Define.
1047 (__compare_and_swap): Remove memory barriers.
1048 (__compare_and_swap_with_release_semantics): New function.
1049
dcea709a
AJ
10502001-04-24 Andreas Jaeger <aj@suse.de>
1051
1052 * wrapsyscall.c: send* and recv* return ssize_t.
1053
1054 * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Unlock the
1055 mutex instead of double locking it.
1056 Reported by Pierre Artaud <partaud@sodatec.com>.
1057
3b5c1b57
UD
10582001-04-23 Ulrich Drepper <drepper@redhat.com>
1059
44c51e9a
UD
1060 * sysdeps/pthread/getcpuclockid.c: Make function generic, test
1061 using #ifdef whether the clock is available.
1062 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: Removed.
1063
295125c5
UD
1064 * sysdeps/ia64/Versions: New file.
1065
7e946302
UD
1066 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init): We don't
1067 have to call __gmon_start__ in the libpthread DSO.
1068 * sysdeps/pthread/pt-initfini.c (_init): Likewise.
b5edfe61 1069
3b5c1b57
UD
1070 * Makefile (libpthread-routines): Add ptclock_gettime and
1071 ptclock_settime.
1072 * internals.h: Don't use cpuclock-init.h definitions, use
1073 hp-timing.h definitions.
1074 * pthread.c: Likewise.
1075 * manager.c: Likewise.
1076 * ptclock_gettime.c: New file.
1077 * ptclock_settime.c: New file.
18ac1129
UD
1078 * internals.h: Fix parameter type for __pthread_clock_gettime and
1079 __pthread_clock_settime.
3b5c1b57
UD
1080
1081 * sysdeps/i386/i586/ptclock_gettime.c: Removed.
1082 * sysdeps/i386/i586/ptclock_settime.c: Removed.
1083 * sysdeps/i386/i586/Makefile: Removed.
1084
a3bbce5b
UD
10852001-04-22 Ulrich Drepper <drepper@redhat.com>
1086
1087 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_ASYNCH_IO.
1088 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1089
e6dcf352
AJ
10902001-04-21 Andreas Jaeger <aj@suse.de>
1091
f9e1d149
AJ
1092 * sysdeps/pthread/timer_routines.c (thread_func): Add noreturn
1093 attribute, remove statements that will never be executed.
d8a60a15 1094 (thread_func): Remove mutex_unlock call since it's never executed.
d6f86085 1095 (thread_func): Fix comment as suggested by Jakub Jelinek.
f9e1d149 1096
159a2e1a
AJ
1097 * manager.c (__pthread_manager): Add noreturn
1098 attribute.
1099 (pthread_start_thread): Likewise, remove return statement.
1100 (pthread_start_thread_event): Likewise.
1101 Add noreturn attribute for pthread_handle_exit.
1102 * weaks.c: Add noreturn attribute for pthread_exit.
1103
e6dcf352
AJ
1104 * internals.h: Add __pthread_clock_gettime and
1105 __pthread_clock_settime prototypes.
1106
5fc48cd7
UD
11072001-04-21 Ulrich Drepper <drepper@redhat.com>
1108
1109 * internals.h: Include <cpuclock-init.h>.
1110 (struct _pthread_descr_struct): Add p_cpuclock_offset field if
1111 CPUCLOCK_VARDEF is defined.
1112 * pthread.c (__pthread_initialize_minimal): Initialize
1113 p_cpuclock_offset field for main thread if CPUCLOCK_INIT is defined.
1114 * manager.c (pthread_start_thread): Set p_cpuclock_offset field
1115 for new thread to current CPU clock value.
1116
1117 * sysdeps/i386/useldt.h: Extend all the macros to handle 8-byte values.
1118
1119 * sysdeps/i386/i586/Makefile: New file.
1120 * sysdeps/i386/i586/Versions: New file.
1121 * sysdeps/i386/i586/ptclock_gettime.c: New file.
1122 * sysdeps/i386/i586/ptclock_settime.c: New file.
1123 * sysdeps/i386/i686/Implies: New file.
1124
9bab9806
UD
11252001-04-18 Jakub Jelinek <jakub@redhat.com>
1126
1127 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Put specs into
1128 $generated, not $postclean-generated.
1129
80ff3e34
AJ
11302001-04-18 Andreas Jaeger <aj@suse.de>
1131
1132 * Makefile (otherlibs): Added.
1133
ddad941e
UD
11342001-04-18 Jakub Jelinek <jakub@redhat.com>
1135
1136 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
1137
9b7ee67e
UD
11382001-04-16 Ulrich Drepper <drepper@redhat.com>
1139
1140 * signals.c (sigwait): NSIG is no signal number. Block all
1141 signals while in signal handler for signals in SET.
1142 Patch by Manfred Spraul <manfred@colorfullife.com>.
1143
b721a2c0
UD
11442001-04-12 Ulrich Drepper <drepper@redhat.com>
1145
a08877d0
UD
1146 * tst-cancel.c: Disable most tests. Add new test where all
1147 cleanup handlers must run.
1148 * Makefile (tests): Add tst-cancel again.
1149
1150 * cancel.c (__pthread_perform_cleanup): Correct condition for
1151 leaving cleanup loop early.
1152
b775be64
UD
1153 * sysdeps/i386/Makefile: Make sure gcc uses a frame pointer for
1154 all the files which use CURRENT_STACK_FRAME.
b721a2c0
UD
1155 * sysdeps/i386/pt-machine.h (CURRENT_STACK_FRAME): Define using
1156 __builtin_frame_address.
1157 * sysdeps/i386/i686/pt-machine.h: Likewise.
1158
7d4c3e67
UD
11592001-04-11 Ulrich Drepper <drepper@redhat.com>
1160
9dd7309c
UD
1161 * Makefile (tests): Comment out tst-cancel for now.
1162
7d4c3e67
UD
1163 * tst-cancel.c (main): Cleanup 4 is supposed to run. Create
1164 temporary file in object directory.
1165 * Makefile: Don't allow inlining when compiling tst-cancel.c.
1166 Pass $(objpfx) to tst-cancel.
1167
43df859b
UD
11682001-04-11 David S. Miller <davem@redhat.com>
1169
1170 * sysdeps/sparc/sparc32/pt-machine.h (stack_pointer): Advance
1171 up closer to user local variables so that new cleanup heuristics work.
1172 * sysdeps/sparc/sparc64/pt-machine.h (stack_pointer): Likewise.
1173
95fe9d95
UD
11742001-04-11 Ulrich Drepper <drepper@redhat.com>
1175
1176 * cancel.c (_pthread_cleanup_push): Catch invalid __prev buffer
1177 and remove it.
1178 (_pthread_cleanup_push_defer): Likewise.
1179
1180 * tst-cancel.c (main): Fix loop printing cleanup output.
1181
07bccb46
UD
11822001-04-10 kaz Kojima <kkojima@rr.iij4u.or.jp>
1183
1184 * sysdeps/sh/pspinlock.c (__pthread_spin_lock): Fix a reverse
1185 test.
1186 (__pthread_spin_trylock): Likewise.
1187 * sysdeps/sh/pt-machine.h (testandset): Likewise.
1188
58f46c79
UD
11892001-04-10 Ulrich Drepper <drepper@redhat.com>
1190
1191 * join.c (pthread_exit): Move code to new function __pthread_do_exit
1192 which takes an extra parameter with the current frame pointer.
1193 Call new function with CURRENT_STACK_FRAME.
1194 (__pthread_do_exit): New function. Call __pthread_perform_cleanup
1195 with the new parameter.
1196 (pthread_join): Call __pthread_do_exit instead of pthread_exit.
1197 * cancel.c (__pthread_perform_cleanup): Takes extra parameter. Use
1198 this parameter as the initial value the cleanup handler records are
1199 compared against. No active cleanup handler record must have an
1200 address lower than the previous one and the initial record must be
1201 above (below on PA) the frame address passed in.
1202 (pthread_setcancelstate): Call __pthread_do_exit instead of
1203 pthread_exit.
1204 (pthread_setcanceltype): Likewise.
1205 (pthread_testcancel): Likewise.
1206 (_pthread_cleanup_pop_restore): Likewise.
1207 * condvar.c (pthread_cond_wait): Likewise.
1208 (pthread_cond_timedwait_relative): Likewise.
1209 * manager.c (pthread_start_thread): Likewise.
1210 * oldsemaphore.c (__old_sem_wait): Likewise.
1211 * pthread.c (pthread_handle_sigcancel): Likewise.
1212 * semaphore.c (__new_sem_wait): Likewise.
1213 (sem_timedwait): Likewise.
1214 * ptlongjmp.c (pthread_cleanup_upto): Also use current stack frame
1215 to limit the cleanup handlers which get run.
1216 * internals.h: Add prototype for __pthread_do_exit. Adjust prototype
1217 for __pthread_perform_cleanup.
1218
1219 * Makefile (tests): Add tst-cancel.
1220 * tst-cancel.c: New file.
1221
eacde9d0
UD
12222001-04-08 Hans-Peter Nilsson <hp@axis.com>
1223
1224 * sysdeps/cris/pt-machine.h: New file.
1225 * sysdeps/cris/pspinlock.c: New file.
1226
12272001-04-09 Hans-Peter Nilsson <hp@axis.com>
1228
1229 * shlib-versions: Add case for Linux on CRIS.
1230
93a4b7ca
UD
12312001-03-26 Ulrich Drepper <drepper@redhat.com>
1232
1233 * attr.c (pthread_getattr_np): Correct computation of stack size
1234 for machiens with register stack.
1235
1236 * Examples/ex17.c (main): Correct detection of failed mmap call.
1237
844b79a6
UD
12382001-03-21 Jakub Jelinek <jakub@redhat.com>
1239
1240 * pthread.c (__pthread_initialize_manager): Fix a typo.
1241
cf4431ed
UD
12422001-03-21 Jakub Jelinek <jakub@redhat.com>
1243
1244 * attr.c (__pthread_attr_setstack): Fix alignment check.
1245 (pthread_getattr_np): __stackaddr is top of stack, not bottom.
1246 * Makefile (tests): Add ex17 test.
1247 * Examples/ex17.c: New test.
1248
373e6a51
UD
12492001-03-20 Ulrich Drepper <drepper@redhat.com>
1250
481b550f 1251 * Makefile: Define -D_RPC_THREAD_SAFE_ for cancel.c.
373e6a51 1252 * cancel.c (__pthread_perform_cleanup): Call __rpc_thread_destroy.
f1e4a4a4 1253 * sysdeps/pthread/bits/libc-tsd.h: Define _LIBC_TSD_KEY_VARS.
373e6a51 1254
639c3248
UD
12552001-03-18 Ulrich Drepper <drepper@redhat.com>
1256
1257 * Makefile: When generating DSO link with libc_nonshared.a.
1258
7c91639e
UD
12592001-02-26 Jakub Jelinek <jakub@redhat.com>
1260
1261 * signals.c (pthread_sighandler): Use CALL_SIGHANDLER.
1262
a66f0958
UD
12632001-02-23 Jakub Jelinek <jakub@redhat.com>
1264
1265 * internals.h (__pthread_init_max_stacksize): New prototype.
1266 * attr.c (__pthread_attr_setstacksize): Call
1267 __pthread_init_max_stacksize if not yet initialized.
1268 * pthread.c (__pthread_init_max_stacksize): New function.
1269 (__pthread_initialize_manager): Call it.
1270 Patch by <dtc@cmucl.cons.org>.
1271
aeba9785
UD
12722001-03-16 Ulrich Drepper <drepper@redhat.com>
1273
1274 * attr.c (pthread_getattr_np): Fix __stacksize computation for IA-64.
1275
136d4332
UD
12762001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
1277
1278 * shlib-versions: Add rule for Linux on 64 bit S/390.
1279 * sysdeps/s390/s390-64/pt-machine.h: New file.
1280 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
1281
12822001-03-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
1283
1284 * sysdeps/s390/pt-machine.h: Move to...
1285 * sysdeps/s390/s390-32/pt-machine.h: ...here.
1286 Add defines for FLOATING_STACK and ARCH_STACK_MAX_SIZE.
1287
3bf927cb
UD
12882001-03-15 Ulrich Drepper <drepper@redhat.com>
1289
1290 * Versions [libpthread] (GLIBC_2.2.3): Add pthread_getattr_np.
1291 * attr.c: Implement pthread_getattr_np.
1292 * sysdeps/pthread/pthread.h: Add prototype for pthread_getattr_np.
1293 * internals.h (struct _pthread_descr_struct): Add p_inheritsched.
1294 * manager.c (pthread_handle_create): Initialize p_inheritsched.
1295
832c025e
AJ
12962001-03-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
1297
3bf927cb 1298 * sysdeps/unix/sysv/linux/s390/pt-initfini.c: Use 0x07 padding for
832c025e
AJ
1299 code alignment.
1300
08b3d7ad
UD
13012001-02-20 Hans Boehm <hans_boehm@hp.com>
1302
1303 * manager.c (manager_mask): Removed static vesion. Now always local
1304 to __pthread_manager().
1305 (manager_mask_all): Removed completely.
1306 (__pthread_manager): Remove manager_mask_all initialization.
1307 (pthread_handle_create): Remove code to set and reset signal mask
1308 around __clone2() calls.
1309
4c48dc93
UD
13102001-02-17 Jakub Jelinek <jakub@redhat.com>
1311
1312 * spinlock.c (__pthread_lock): Force lock->__status to be read from
1313 memory on every spin.
1314
596b2f0e
AJ
13152001-02-10 Andreas Jaeger <aj@suse.de>
1316
1317 * Makefile (extra-objs): New.
1318
257bdad0
UD
13192001-02-09 Jakub Jelinek <jakub@redhat.com>
1320
1321 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Add
1322 __pthread_initialize_minimal prototype.
1323
441f7d1e
UD
13242001-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
1325
1326 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
1327
d7fce7e0
UD
13282001-02-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
1329
1330 * sysdeps/unix/sysv/linux/s390/pt-initfini.c: New file.
1331
672fd41b
UD
13322001-02-06 Ulrich Drepper <drepper@redhat.com>
1333
1334 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: First attempt to fix the
1335 broken code. Patch by Jes Sorensen.
1336
eb8ea10a
AJ
13372001-02-06 Andreas Jaeger <aj@suse.de>
1338
1339 * sysdeps/pthread/pthread.h: Move __pthread_initialize from here
1340 to...
1341 * internals.h: ...here.
1342
5a35dfca
UD
13432001-02-05 Jes Sorensen <jes@linuxcare.com>
1344
1345 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
1346
e4c785c8
UD
13472001-02-02 Ulrich Drepper <drepper@redhat.com>
1348
1349 * Versions: Remove __pthread_initialize_minimal.
1350
b71e7ce8
UD
13512001-02-01 Ulrich Drepper <drepper@redhat.com>
1352
1353 * Makefile: Add rules to build crti.o and make it being used in
1354 building libpthread.so.
1355 * sysdeps/i386/Makefile: New file.
1356 * sysdeps/pthread/pt-initfini.c: New file.
1357
1358 * pthread.c: Cleanups.
1359
7dcc4ea0
AJ
13602001-01-28 Andreas Jaeger <aj@suse.de>
1361
1362 * oldsemaphore.c (__old_sem_init): Adjust for last change.
1363 * sysdeps/pthread/bits/libc-lock.h: Likewise.
1364 * spinlock.c: Likewise.
1365
48ba4bd2
UD
13662001-01-28 Ulrich Drepper <drepper@redhat.com>
1367
1368 * sysdeps/pthread/bits/initspin.h: Make all names namespace clean.
1369 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Likewise.
1370 * manager.c: Adjust for namespace cleanup in bits/initspin.h.
1371 * pthread.c: Likewise.
1372 * spinlock.h: Likewise.
1373 * sysdeps/pthread/pthread.h: Likewise.
1374
edf9cc89
UD
13752001-01-26 Ulrich Drepper <drepper@redhat.com>
1376
61f9d0a3
UD
1377 * sysdeps/pthread/bits/pthreadtypes.h: Define pthread_attr_t also
1378 as struct __pthread_attr_s.
1379
edf9cc89
UD
1380 * semaphore.h (sem_t): Cleanup namespace, rename status and
1381 spinlock elements.
1382
3f738366
UD
13832001-01-13 Jakub Jelinek <jakub@redhat.com>
1384
1385 * pthread.c (pthread_onexit_process): Clear
1386 __pthread_manager_thread_bos after freeing it.
1387 * Makefile (tests): Add ex16.
1388 * Examples/ex16.c: New file.
1389
5ef50d00
UD
13902001-01-11 Jakub Jelinek <jakub@redhat.com>
1391
1392 * Makefile (CFLAGS-pthread.c): Pass -DHAVE_Z_NODELETE if ld supports
1393 -z nodelete.
1394 * pthread.c (pthread_exit_process): Rename to...
1395 (pthread_onexit_process): ...this.
1396 (pthread_atexit_process, pthread_atexit_retcode): New.
1397 (pthread_initialize): Call __cxa_atexit instead of __cxa_on_exit
1398 and only if HAVE_Z_NODELETE is not defined.
1399 (__pthread_initialize_manager): Register pthread_atexit_retcode
1400 with __cxa_atexit.
1401
7e36861e
UD
14022001-01-11 Ulrich Drepper <drepper@redhat.com>
1403
1404 * pthread.c (pthread_initialize): Use __cxs_on_exit not __cxa_atexit.
1405
14062001-01-11 Jakub Jelinek <jakub@redhat.com>
1407
1408 * Makefile (tests): Add ex15.
1409 * Examples/ex15.c: New test.
1410
1950ebc6
UD
14112001-01-08 Ulrich Drepper <drepper@redhat.com>
1412
1413 * pthread.c (pthread_exit_process): Free memory allocated for
1414 manager stack.
1415
af8240eb 14162000-12-31 Ulrich Drepper <drepper@redhat.com>
1c566118 1417
af8240eb
UD
1418 * manager.c (pthread_alloca_stack): Remove MAP_FIXED from mmap calls.
1419 (pthread_free): Always unmap the stack. It's safe now that we don't
1420 use MAP_FIXED to allocate stacks.
1c566118 1421
41b64fc4
UD
14222000-12-31 Ulrich Drepper <drepper@redhat.com>
1423
1424 * sysdeps/powerpc/pspinlock.c: Don't include pt-machine.h here.
1425
1426 * manager.c (pthread_allocate_stack): Prepare for removal of MAP_FIXED.
1427
09f5e163
UD
14282000-11-15 Wolfram Gloger <wg@malloc.de>
1429
1430 * manager.c (pthread_free): [!FLOATING_STACKS]: Only remap the
1431 stack to PROT_NONE, don't unmap it, avoiding collisions with malloc.
1432
27ee0a55
AJ
14332000-12-27 Andreas Jaeger <aj@suse.de>
1434
1435 * Examples/ex13.c: Make local functions static.
1436 * ecmutex.c: Likewise.
784d802e 1437 * joinrace.c: Likewise.
27ee0a55
AJ
1438 * Examples/ex14.c: Likewise.
1439
1440 * Examples/ex2.c: Make local functions static; reformat.
1441 * Examples/ex1.c: Likewise.
1442 * Examples/ex4.c: Likewise.
1443 * Examples/ex5.c: Likewise.
1444 * Examples/ex7.c: Likewise.
1445
1446 * oldsemaphore.c: Add prototypes to shut up GCC.
1447 * pt-machine.c: Likewise.
1448
1449 * weaks.c: Add prototype for pthread_exit.
1450
1451 * internals.h: Add some prototypes, format prototypes and add
1452 missing externs.
1453 Move __libc_waitpid prototype to include/sys/wait.h.
1454
1455 * rwlock.c: Include <bits/libc-lock.h> for prototypes.
1456 * mutex.c: Likewise.
1457 * specific.c: Likewise.
1458 * ptfork.c: Likewise.
1459
1460 * lockfile.c: Include internals.h to get prototypes.
1461 * events.c: Likewise.
1462 * sysdeps/alpha/pspinlock.c: Likewise.
1463 * sysdeps/arm/pspinlock.c: Likewise.
1464 * sysdeps/hppa/pspinlock.c: Likewise.
1465 * sysdeps/i386/pspinlock.c: Likewise.
1466 * sysdeps/ia64/pspinlock.c: Likewise.
1467 * sysdeps/m68k/pspinlock.c: Likewise.
1468 * sysdeps/mips/pspinlock.c: Likewise.
1469 * sysdeps/powerpc/pspinlock.c: Likewise.
1470 * sysdeps/s390/pspinlock.c: Likewise.
1471 * sysdeps/sh/pspinlock.c: Likewise.
1472 * sysdeps/sparc/sparc32/pspinlock.c: Likewise.
1473 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: Likewise.
1474 * sysdeps/sparc/sparc64/pspinlock.c: Likewise.
1475
33c80ad7
UD
14762000-12-27 Ulrich Drepper <drepper@redhat.com>
1477
21112857
UD
1478 * attr.c (__pthread_attr_setstack): Fix setting of __stackaddr element.
1479 (__pthread_attr_getstack): Return correct address.
1480 Add warnings for using pthread_attr_getstackaddr and
33c80ad7
UD
1481 pthread_attr_setstackaddr.
1482
a6d950b9
UD
14832000-12-26 Ulrich Drepper <drepper@redhat.com>
1484
1485 * Examples/ex6.c (test_thread): Make static.
1486 * Examples/ex12.c (test_thread): Make static and add noreturn
1487 attribute.
1488
ba908190
UD
14892000-12-18 Jes Sorensen <jes@linuxcare.com>
1490
1491 * linuxthreads/sysdeps/ia64/pt-machine.h: __compare_and_swap
1492 and compare_and_swap_with_release_semantics returns int not long.
1493
8cb019ed
AJ
14942000-12-17 Andreas Jaeger <aj@suse.de>
1495
1496 * sysdeps/s390/pt-machine.h (testandset): Use long int as return
1497 value.
1498 * sysdeps/arm/pt-machine.h (testandset): Likewise.
1499 * sysdeps/hppa/pt-machine.h (testandset): Likewise.
1500 * sysdeps/m68k/pt-machine.h (testandset): Likewise.
1501 * sysdeps/sh/pt-machine.h (testandset): Likewise.
1502 * sysdeps/sparc/sparc32/pt-machine.h (testandset): Likewise.
1503 * sysdeps/sparc/sparc64/pt-machine.h (testandset): Likewise.
1504
927a8431
UD
15052000-12-17 Ulrich Drepper <drepper@redhat.com>
1506
1507 * sysdeps/i386/pt-machine.h (testandset): Adjust for prototype change.
1508 * sysdeps/i386/i686/pt-machine.h (testandset): Likewise.
1509
b6e20712
AJ
15102000-12-17 Andreas Jaeger <aj@suse.de>
1511
1512 * internals.h: Add prototypes for testandset and
1513 __compare_and_swap to shut up gcc warnings.
1514
e3690263
UD
15152000-12-06 Wolfram Gloger <wg@malloc.de>
1516
1517 * join.c (pthread_detach): Allow case where the thread has already
1518 terminated.
1519
2e3b9976
AJ
15202000-12-05 Andreas Jaeger <aj@suse.de>
1521
1522 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Don't set mips2.
1523 * sysdeps/mips/pt-machine.h (testandset): Likewise.
1524 (__compare_and_swap): Likewise.
f172bca0 1525 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
2e3b9976 1526
59553897
UD
15272000-11-20 Jakub Jelinek <jakub@redhat.com>
1528
1529 * Examples/ex3.c (main): Cast int to long before casting to void *.
1530 (search): Cast void * to long, not int.
1531 * Examples/ex8.c (main, thread): Similarly.
1532 * Examples/ex11.c (main): Similarly.
1533 * Examples/ex14.c (worker, do_test): Similarly.
1534 * ecmutex.c (worker, do_test): Similarly.
1535 (nlocks): Cast to int.
1536
d3d99893
UD
15372000-11-08 Bruce Mitchener <bruce@cubik.org>
1538
1539 * linuxthreads.texi: Add documentation for pthreads attributes
1540 guardsize, stackaddr, stacksize, and stack. Fix typo in previous
1541 patch. Document pthread_[sg]etconcurrency(). Mark
1542 pthread_mutexattr_[sg]ettype() as POSIX rather than GNU.
1543
a1e88b9a
UD
15442000-11-07 Ulrich Drepper <drepper@redhat.com>
1545
1546 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
1547 Don't define it.
1548 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1549 Reported by Christopher Yeoh <cyeoh@linuxcare.com.au>.
1550
632b6761
UD
15512000-11-06 Ulrich Drepper <drepper@redhat.com>
1552
1553 * cancel.c (pthread_cancel): Always set p_canceled, even if we are
1554 not doing it right now.
1555 Reported by Kaz Kylheku <kaz@ashi.footprints.net>.
1556
02fb3d17
UD
15572000-10-30 Ulrich Drepper <drepper@redhat.com>
1558
1559 * Examples/ex4.c (main): Don't use exit() to avoid warning with
1560 broken compilers.
1561
c6042c73
UD
15622000-10-29 Ulrich Drepper <drepper@redhat.com>
1563
31879cd8 1564 * attr.c (__pthread_attr_setguardsize): Don't round guardsize
d3d99893 1565 here. Reported by Bruce Mitchener <bruce@cubik.org>.
31879cd8 1566
c6042c73
UD
1567 * linuxthreads.texi: Changes terminology to 'type' from 'kind' when
1568 discussing mutexes. (As per the Unix98 name for the API.)
1569 Changes documentation for pthread_mutexattr_setkind_np() and
1570 pthread_mutexattr_getkind_np() over to the Unix98 APIs for the
1571 same: pthread_mutexattr_settype() and pthread_mutexattr_gettype().
1572 Changes references to PTHREAD_MUTEXATTR_FAST_NP to
1573 PTHREAD_MUTEXATTR_ADAPTIVE_NP.
1574 Begins to introduce discussion of the ``timed'' mutex type. This
1575 discussion is currently incomplete.
d3d99893 1576 Patch by Bruce Mitchener <bruce@cubik.org>.
c6042c73 1577
1267f93e
UD
15782000-10-26 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
1579 Yutaka Niibe <gniibe@chroot.org>
1580
1581 * sysdeps/sh/pt-machine.h (testandset): Since the operand of TAS.B
1582 has restrictions, use register.
1583
fd665070
UD
15842000-10-23 Andreas Schwab <schwab@suse.de>
1585
1586 * Examples/ex14.c (TIMEOUT): Override default timeout.
1587
6a14016e
UD
15882000-10-16 Ulrich Drepper <drepper@redhat.com>
1589
1590 * specific.c: Protect tsd array modification in thread data
1591 structures by getting the thread lock in pthread_key_delete and
1592 __pthread_destroy_specifics.
1593 Patch by Wolfram Gloger <Wolfram.Gloger@dent.med.uni-muenchen.de>.
1594
b15cb495
UD
15952000-10-12 Alan Modra <alan@linuxcare.com.au>
1596
1597 * sysdeps/pthread/bits/initspin.h: New file.
1598 * spinlock.h: Move LOCK_INITIALIZER definition to <bits/initspin.h>.
1599 (__pthread_init_lock): Initialize lock with LT_SPINLOCK_INIT.
1600 (__pthread_alt_init_lock): Likewise.
1601 (__pthread_alt_trylock): Release lock with LT_SPINLOCK_INIT.
1602
16032000-10-12 David Huggins-Daines <dhd@linuxcare.com>
1604
1605 * oldsemaphore.c (__old_sem_init): Release lock with
1606 LT_SPINLOCK_INIT, not zero.
1607 * spinlock.c (__pthread_unlock): Likewise.
1608 (__pthread_alt_lock): Likewise.
1609 (__pthread_alt_timedlock): Likewise.
1610 (__pthread_alt_unlock): Likewise.
1611 * sysdeps/pthread/bits/libc-lock.h: Initialize locks with
1612 LT_SPINLOCK_INIT if it is non-zero. Likewise for init-once flags.
1613 * sysdeps/pthread/pthread.h: Include bits/initspin.h. Use
1614 LT_SPINLOCK_INIT do initialize spinlocks not 0.
1615
16162000-10-12 David Huggins-Daines <dhd@linuxcare.com>
1617
1618 * shlib-versions: Add version definitions for hppa-linux.
1619
16202000-10-12 Alan Modra <alan@linuxcare.com.au>
1621
1622 * sysdeps/hppa/pspinlock.c: New file.
1623 * sysdeps/hppa/pt-machine.h: New file.
1624 * sysdeps/unix/sysv/linux/hppa/bits/initspin.h: New file.
1625
172b90bb
UD
16262000-10-05 Jakub Jelinek <jakub@redhat.com>
1627
1628 * mutex.c (__pthread_mutex_destroy): Correct test of
1629 busy mutex for mutexes using alternate fastlocks.
1630 Patch by dtc@cmucl.cons.org.
1631
a0386a0d
UD
16322000-09-28 Martin Schwidefsksy <schwidefsky@de.ibm.com>
1633
1634 * sysdeps/s390/pt-machine.h: Make %a0 the thread register.
1635
8cab1d38
UD
16362000-09-28 Ulrich Drepper <drepper@redhat.com>
1637
c0ac34e4
UD
1638 * mutex.c (__pthread_mutex_unlock): For PTHREAD_MUTEX_RECURSIVE_NP
1639 test for owner first.
1640 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
1641
8cab1d38
UD
1642 * cancel.c (pthread_cancel): Don't do anything if cancelation is
1643 disabled.
1644
7c3dac53
UD
16452000-09-26 Ulrich Drepper <drepper@redhat.com>
1646
75dbc100
UD
1647 * spinlock.h (__pthread_set_own_extricate_if): Optimize a bit.
1648 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
1649
b0557314
UD
1650 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
1651 _POSIX_MONOTONIC_CLOCK.
1652
7c3dac53
UD
1653 * spinlock.h (__pthread_set_own_extricate_if): Add back locking
1654 and explain why.
1655
b025588a
AJ
16562000-09-20 Andreas Jaeger <aj@suse.de>
1657
1658 * pthread.c [!__ASSUME_REALTIME_SIGNALS]: Make inclusion of
1659 "testrtsig.h" conditional.
1660
b81c8961
UD
16612000-09-11 Ulrich Drepper <drepper@redhat.com>
1662
1663 * sysdeps/pthread/pthread.h: Declare pthread_attr_getstack and
1664 pthread_attr_setstack.
1665 * Versions [libpthread] (GLIBC_2.2): Export pthread_attr_getstack and
1666 pthread_attr_setstack.
1667 * attr.c (pthread_attr_getstack, pthread_attr_setstack): New functions.
1668
42437ed1
UD
16692000-09-05 Ulrich Drepper <drepper@redhat.com>
1670
f3d581b8
UD
1671 * Examples/ex14.c: New file.
1672 * Makefile (tests): Add ex14.
1673
42437ed1
UD
1674 * mutex.c (__pthread_mutex_unlock): Correct test for already unlocked
1675 mutex. Patch by dtc@cmucl.cons.org.
1676
1677 * ecmutex.c: New file.
f3d581b8 1678 * Makefile (tests): Add ecmutex.
42437ed1 1679
c743652a
UD
16802000-09-04 H.J. Lu <hjl@gnu.org>
1681
1682 * attr.c (__pthread_attr_setguardsize): Use page_roundup
1683 instead of roundup to round up to the page size.
1684
2e4581e4
UD
16852000-09-03 Mark Kettenis <kettenis@gnu.org>
1686
1687 * manager.c (pthread_exited): Correctly report event as TD_REAP
1688 instead of TD_DEATH. Fix comments.
1689
5afe6c02
UD
16902000-09-03 Ulrich Drepper <drepper@redhat.com>
1691
1692 * spinlock.h (testandset): Add cast to avoid warning.
1693 Patch by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.
1694
5376629d
AJ
16952000-09-02 Andreas Jaeger <aj@suse.de>
1696
1697 * sysdeps/pthread/timer_routines.c: Include stdlib.h for abort
1698 prototype.
1699
a8e58aa9
UD
17002000-09-01 Ulrich Drepper <drepper@redhat.com>
1701
aebb1faa
UD
1702 * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start):
1703 Fix typo in last patch (_mode -> _flags).
1704
a8e58aa9
UD
1705 * sysdeps/pthread/bits/stdio-lock.h (_IO_cleanup_region_start):
1706 Provide definition which respects _IO_USER_LOCK flag.
1707
47cae281
UD
17082000-08-30 Ulrich Drepper <drepper@redhat.com>
1709
1710 * manager.c (pthread_allocate_stack): Clear descriptor only if not
1711 mmaped.
1712
b7fb789d
UD
17132000-08-25 Ulrich Drepper <drepper@redhat.com>
1714
ad7534c8
UD
1715 * Makefile: Add rules to build and run unload.
1716 * unload.c: New file.
1717
1718 * pthread.c (pthread_exit_process): Move thread_self use inside `if'.
7045878b 1719
b7fb789d
UD
1720 * sysdeps/pthread/pthread.h
1721 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Defined.
1722 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP: Defined.
1723
7e98470d
AJ
17242000-08-24 Andreas Jaeger <aj@suse.de>
1725
c5ded983
AJ
1726 * Examples/ex13.c: Include <string.h> for strerror prototype and
1727 <stdlib.h> for abort prototype.
7e98470d
AJ
1728 (pthr_cond_signal_mutex): Rewrite to silence GCC.
1729 (thread_start): Remove unused variable err.
1730 (main): Silence GCC warnings.
1731
64f6b8f3
AJ
17322000-08-22 Andreas Jaeger <aj@suse.de>
1733
1734 * Examples/ex13.c: New test by Kurt Garloff <garloff@suse.de>.
1735
1736 * Makefile (tests): Add ex13.
1737
98cbe360
UD
17382000-08-20 Ulrich Drepper <drepper@redhat.com>
1739
1740 * semaphore.h: Add restrict where required by AGd4.
1741 * sysdeps/pthread/pthread.h: Likewise.
1742 * sysdeps/pthread/unix/sysv/linux/bits/sigthread.h: Likewise.
1743
9df76933
UD
17442000-08-15 Ulrich Drepper <drepper@redhat.com>
1745
1746 * Makefile (tests): Add ex12. Add rule to build it.
1747 * Examples/ex12.c: New file.
1748
91bc38d0
UD
17492000-08-13 Ulrich Drepper <drepper@redhat.com>
1750
1751 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_SEMAPHORES
1752 even though the implementation is not quite complete (but it reports
1753 it). Define _POSIX_MESSAGE_PASSING to -1.
1754 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1755
facd11c2
AJ
17562000-08-12 Andreas Jaeger <aj@suse.de>
1757
1758 * sysdeps/mips/pt-machine.h (testandset): Add .set mips2 for
1759 assembler.
1760 (__compare_and_swap): Likewise.
1761 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Likewise.
1762
3459f702
UD
17632000-08-10 Ulrich Drepper <drepper@redhat.com>
1764
1765 * pthread.c (__pthread_initial_thread): Initialize p_errnop and
1766 p_h_errnop correctly and not to NULL.
1767
c9326ed5
UD
17682000-08-05 Ulrich Drepper <drepper@redhat.com>
1769
1770 * Banner: Bump version number to 0.9.
1771
0a8d9231
UD
17722000-08-04 Ulrich Drepper <drepper@redhat.com>
1773
fcd31f5a
UD
1774 * Makefile (tests): Add tststack. Add rule to build the program.
1775 * tststack.c: New file.
1776
234dd7a6
UD
1777 * internals.h: Declare __pthread_max_stacksize.
1778 * pthread.c (__pthread_max_stacksize): New variable.
1779 (__pthread_initialize_manager): Determine __pthread_initialize_manager
1780 value.
1781 * manager.c (thread_segment): Return always NULL if FLOATING_STACKS.
1782 (pthread_allocate_stack): Allow kernel to choose stack address if
1783 FLOATING_STACKS. This also handles variable-sized stacks.
c9326ed5 1784 Always allocate stack and guardpage together. Use mprotect to
234dd7a6
UD
1785 change guardpage access.
1786 * sysdeps/i386/useldt.h: Define FLOATING_STACKS and
1787 ARCH_STACK_MAX_SIZE.
1788
1789 * attr.c (__pthread_attr_setstacksize): Also test value against
1790 upper limit.
1791
0a8d9231
UD
1792 * manager.c (__pthread_nonstandard_stacks): Define only if
1793 THREAD_SELF is not defined.
1794 (pthread_allocate_stack): Always initialize gardaddr to a correct
1795 value.
1796 (pthread_handle_create): Unmap thread with one call.
1797 (pthread_free): Remove test for initial thread before removing stack.
1798 Unmap stack with one call.
1799
1800 * pthread.c (__pthread_initial_thread): Initialize p_userstack to
1801 1 to avoid removing the stack.
1802
0d019734
UD
18032000-07-27 Jes Sorensen <jes@linuxcare.com>
1804
d364e525 1805 * sysdeps/ia64/pspinlock.c (__pthread_spin_lock): Add
0d019734
UD
1806 load of spin lock to prime the cache before the atomic compare and
1807 exchange operation (cmpxchg4). This avoids the spinning on the
1808 cmpxchg4 instruction and reduces movement of the cache line back
1809 and forth between the processors (explanation by Asis K. Mallick
1810 from Intel). This basically makes the implementation operate the
1811 same as the Linux kernel implementation.
1812
d364e525
UD
1813 * shlib-versions: Use GLIBC_2_2 for Linux/ia64.
1814 * sysdeps/ia64/pspinlock.c: New file.
0d019734 1815
139a4d95
UD
18162000-08-03 Ulrich Drepper <drepper@redhat.com>
1817
1818 * pthread.c: Move definition of __pthread_set_own_extricate_if...
1819 * spinlock.h: ...here. Remove locking.
1820 * internals.h: Remove __pthread_set_own_extricate_if prototype.
1821
1822 * rwlock.c: Use THREAD_GETMEM And THREAD_SETMEM.
1823 (rwlock_rd_extricate_func): Don't determine self, let
1824 __pthread_lock do it.
1825 (rwlock_wr_extricate_func): Likewise.
1826 (rwlock_have_already): Optimize *pself handling a bit.
1827
1828 * mutex.c: Use __builtin_expect.
1829 * pthread.c: Likewise.
1830
9016e55c
AJ
18312000-08-02 Andreas Jaeger <aj@suse.de>
1832
d364e525
UD
1833 * sysdeps/s390/pspinlock.c: New file.
1834 * sysdeps/s390/pt-machine.h: New file.
9016e55c
AJ
1835 Patches by Martin Schwidefsky <schwidefsky@de.ibm.com>.
1836
fdfb2ecc
AJ
18372000-07-12 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
1838
1839 * sysdeps/mips/pspinlock.c (__pthread_spin_lock): Implement for
1840 R3K.
1841 * sysdeps/mips/pt-machine.h (testandset): Likewise.
1842
b98a450f
AJ
18432000-07-26 Andreas Jaeger <aj@suse.de>
1844
1845 * pthread.c: Initialize p_sem_avail.
1846
a956d045
UD
18472000-07-25 Ulrich Drepper <drepper@redhat.com>
1848
a99db924 1849 * internals.h (struct __pthread_descr_struct): Add p_sem_avail.
9ec9e34e
UD
1850 * semaphore.c: Handle spurious wakeups.
1851
1852 * sysdeps/pthread/pthread.h: Add back PTHREAD_MUTX_FAST_NP as an alias
1853 for PTHREAD_MUTEX_ADAPTIVE_NP for source code compatibility.
1854
1855 * pthread.c (__pthread_set_own_extricate): Use THREAD_GETMEM.
1856 (__pthread_wait_for_restart): Likewise.
1857
1858 * condvar.c (pthread_cond_wait): Also check whether thread is
1859 cancelable before aborting loop.
1860 (pthread_cond_timedwait): Likewise.
1861
a956d045
UD
1862 * signals.c (pthread_sighandler): Remove special code to restrore
1863 %gs on x86.
1864 (pthread_sighandler_t): Likewise.
1865
70e392a3
UD
18662000-07-25 Mark Kettenis <kettenis@gnu.org>
1867
1868 * internals.h (__RES_PTHREAD_INTERNAL): Remove define.
1869 * pthread.c: Include <resolv.h>.
1870 (_res): Undefine. Add extern declaration.
1871
5122880a
UD
18722000-07-24 Ulrich Drepper <drepper@redhat.com>
1873
f3d5834e
UD
1874 * pthread.c (__pthread_initial_thread): Update initializer.
1875 (__pthread_manager_thread): Likewise.
1876 (pthread_initialize): Move setrlimit call to...
1877 (__pthread_initialize_manager): ...here.
1878 (__pthread_reset_main_thread): Reset also soft limit on stack size.
1879
5122880a 1880 * condvar.c: Handle spurious wakeups. [PR libc/1749].
ad0c66a0 1881 * internals.h (struct _pthread_descr_struct): Add p_condvar_avail.
5122880a 1882
0c0c8bde
UD
18832000-07-21 Ulrich Drepper <drepper@redhat.com>
1884
5122880a 1885 * spinlock.h: If IMPLEMENT_TAS_WITH_CAS is defined use
0c0c8bde 1886 __compare_and_swap to define testandset.
d364e525 1887 * sysdeps/powerpc/pt-machine.h: Add volatile to asms.
0c0c8bde
UD
1888 Define IMPLEMENT_TAS_WITH_CAS.
1889
0fb7851f
UD
18902000-07-20 Ulrich Drepper <drepper@redhat.com>
1891
1892 * Makefile: Pass -z nodelete to linker for libpthread.so
1893 generation if it understand this option.
1894
4e8286ac
UD
18952000-07-18 Mark Kettenis <kettenis@gnu.org>
1896
1897 * manager.c (pthread_handle_create): Remove initialization of
1898 new_thread->p_res._sock.
1899
80ec4993
UD
19002000-07-19 Kaz Kylheku <kaz@ashi.footprints.net>
1901
1902 Bugfixes to the variant of the code for machines with no compare
1903 and swap.
1904
1905 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Wait
1906 node was not being properly enqueued, due to failing to update
1907 the lock->__status field.
1908
1909 * spinlock.c (__pthread_alt_timedlock): The oldstatus variable was
1910 being set inappropriately, causing the suspend function to be called
1911 with a null self pointer and crash.
1912
70c5b33d
UD
19132000-07-18 Ulrich Drepper <drepper@redhat.com>
1914
056f707c
UD
1915 * spinlock.h (__pthread_alt_trylock): Fix code used if no
1916 compare&swap is available.
1917
a48297fd
UD
1918 * spinlock.h (__pthread_trylock): Use __compare_and_swap, not
1919 compare_and_swap.
1920
89bc5366 1921 * pthread.c (pthread_initialize): Don't use sysconf to determine
247c8869
UD
1922 whether the machine has more than one processor.
1923
70c5b33d
UD
1924 * spinlock.c (__pthread_alt_timedlock): Add back one of the
1925 removed thread_self calls.
1926
83142e8f
UD
19272000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
1928
1929 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Changed
1930 __compare_and_swap to compare_and_swap in code which assumes
1931 compare swap is available.
1932
89bc5366 19332000-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
e6574c9c
UD
1934
1935 * spinlock.c (__pthread_alt_lock, __pthread_alt_timedlock): Fixed
1936 bug whereby thr field of waitnode structure would not be correctly
1937 set unless a null self pointer is passed to the functions.
1938 Eliminated redundant calls to thread_self().
1939
c6df09ad
UD
19402000-07-18 Jakub Jelinek <jakub@redhat.com>
1941
1942 * pthread.c (__pthread_initialize_manager): Lock
1943 __pthread_manager_thread.p_lock before calling clone.
1944
9aae19cd
UD
19452000-05-05 H.J. Lu <hjl@gnu.org>
1946
1947 * sysdeps/ia64/pt-machine.h (__compare_and_swap): Change it to
1948 have acquire semantics.
1949 (__compare_and_swap_with_release_semantics): New inline
1950 function.
1951 (HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS): New macro.
1952
19532000-01-28 Hans Boehm <hboehm@exch.hpl.hp.com>
1954
1955 * manager.c: Fix the problem with signals at startup.
1956 Change the way that thread stacks are allocated on IA64.
1957 Clean up some of the guard page allocation stuff.
1958
19591999-12-19 H.J. Lu <hjl@gnu.org>
1960
1961 * internals.h (page_roundup): New.
1962 * attr.c (__pthread_attr_setguardsize); Use page_roundup
1963 instead of roundup.
1964 * manager.c (pthread_allocate_stack): Make sure guardaddr is
1965 page aligned with page_roundup if NEED_SEPARATE_REGISTER_STACK
1966 is define.
1967
19681999-12-17 Hans Boehm <hboehm@exch.hpl.hp.com>
1969
1970 * manager.c (pthread_allocate_stack): Unmap the stack top
1971 if failed to map the stack bottom.
1972 Fix the guard page.
1973 (pthread_free): Fix the guard page.
1974
1975 * pthread.c (pthread_initialize): Set rlimit correctly for
1976 NEED_SEPARATE_REGISTER_STACK.
1977
19781999-12-16 H.J. Lu <hjl@gnu.org>
1979
1980 * pthread.c (__pthread_initialize_manager): Pass
1981 __pthread_manager_thread_bos instead of
1982 __pthread_manager_thread_tos to __clone2.
1983
19841999-12-16 H.J. Lu <hjl@gnu.org>
1985
1986 * manager.c (pthread_allocate_stack): Correct the calculation
1987 of "new_thread_bottom". Remove MAP_GROWSDOWN from mmap for
1988 stack bottom.
1989
19901999-12-13 H.J. Lu <hjl@gnu.org>
1991
1992 * sysdeps/ia64/pt-machine.h (__compare_and_swap): Added a stop
1993 bit after setting ar.ccv.
1994
19951999-12-12 H.J. Lu <hjl@gnu.org>
1996
1997 * manager.c (pthread_allocate_stack): Make the starting
1998 address of the stack bottom page aligned. FIXME: it may
1999 need changes in other places.
2000 (pthread_handle_create): Likewise.
2001
20021999-12-11 Hans Boehm <hboehm@exch.hpl.hp.com>
2003
2004 * manager.c (pthread_allocate_stack): Handle
2005 NEED_SEPARATE_REGISTER_STACK.
2006 (pthread_handle_create): Likewise.
2007 * pthread.c (__pthread_initialize_manager): Likewise.
2008
2009 * sysdeps/ia64/pt-machine.h: Use r13 for thread pointer.
2010
20111999-12-02 H.J. Lu <hjl@gnu.org>
2012
2013 * sysdeps/ia64/pt-machine.h: New.
2014
f218b5f5
UD
20152000-07-13 Ulrich Drepper <drepper@redhat.com>
2016
2017 * wrapsyscall.c: Mark non-__ protected names as weak.
2018 PR libc/1466.
2019
0d655550
UD
20202000-07-12 Bruno Haible <haible@clisp.cons.org>
2021
2022 * Examples/ex8.c: Include <sys/wait.h>, not <wait.h>.
2023
9f835f5f
UD
20242000-07-12 Ulrich Drepper <drepper@redhat.com>
2025
2026 * spinlock.c: Fix code for TEST_FOR_COMPARE_AND_SWAP being defined.
2027 Add tests also to new alternative spinlock implementation.
2028 * spinlock.h: Likewise.
2029 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2030
a85d5c80
UD
20312000-07-06 Ulrich Drepper <drepper@redhat.com>
2032
c0f53cdd
UD
2033 * Version: Export __sigaction.
2034 * signals.c: Define __sigaction alias. Use __libc_sigaction instead
2035 of __sigaction.
2036 * pthread.c: Use __libc_sigaction instead of __sigaction.
2037
a85d5c80
UD
2038 * condvar.c: Implement pthread_condattr_getpshared and
2039 pthread_condattr_setpshared.
2040 * mutex.c: Implement pthread_mutexattr_getpshared and
2041 pthread_mutexattr_setpshared.
2042 * Versions: Export new functions.
2043 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
2044
2045 * rwlock.c (pthread_rwlockattr_init): Use PTHREAD_PROCESS_PRIVATE.
2046 (pthread_rwlockattr_setpshared): Fail if PTHREAD_PROCESS_PRIVATE
2047 is not selected.
2048
66c5b9aa
GM
20492000-07-04 Greg McGary <greg@mcgary.org>
2050
2051 * sysdeps/pthread/bits/libc-lock.h: Remove BP_SYM from
2052 pragmas. Include bp-sym.h only if _LIBC.
2053
83b1b6d8
UD
20542000-07-04 Ulrich Drepper <drepper@redhat.com>
2055
2056 * spinlock.c (__pthread_unlock): Properly place write barrier.
2057 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2058
a88b96f4
UD
20592000-07-03 Ulrich Drepper <drepper@redhat.com>
2060
2061 * spinlock.c: Replace fast spinlocks by adaptive spinlocks which are
2062 faster on SMP systems. No more emulation of compare&swap for adaptive
2063 spinlocks.
2064 * spinlock.h: Likewise.
2065 * sysdeps/pthread/pthread.h: Shuffle PTHREAD_MUTEX_* values around.
2066 Replace fast with adaptive mutex.
2067 * mutex.c: Rewrite for replacement of fast by adaptive mutex.
2068 * condvar.c: Likewise.
2069 * pthread.c: Define and initialize __pthread_smp_kernel variable.
2070 * internals.h: Declare __pthread_smp_kernel.
2071 * sysdeps/pthread/bits/pthreadtypes.h: Update comment of
2072 _pthread_fastlock structure.
2073 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2074
2075 * pthread.c: Remove initialization to zero from global variables.
2076
1a6d7967
UD
20772000-06-29 Jakub Jelinek <jakub@redhat.com>
2078
2079 * shlib-versions: Make sparc64 GLIBC_2.2+ only.
2080
1efd15e3
GM
20812000-06-28 Greg McGary <greg@mcgary.org>
2082
2083 * weaks.c: Wrap BP_SYM () around weak extern declarations of
2084 pthread functions that have pointers in their return+arg signatures.
2085
3210bef0
GM
20862000-06-27 Greg McGary <greg@mcgary.org>
2087
1efd15e3
GM
2088 * sysdeps/pthread/bits/libc-lock.h: Wrap BP_SYM () around weak
2089 extern declarations of pthread functions that have pointers in
2090 their return+arg signatures.
3210bef0 2091
c49ebf76
UD
20922000-06-26 Ulrich Drepper <drepper@redhat.com>
2093
2094 * Makefile (tests): Add ex11. Add rules to build it.
2095 * Examples/ex11.c: New file.
2096 * rwlock.c: Fix complete braindamaged previous try to implement
2097 timedout functions.
2098
2099 * spinlock.c: Pretty print.
2100
d82e4c7b
UD
21012000-06-25 Ulrich Drepper <drepper@redhat.com>
2102
2103 * Makefile (tests): Add ex10. Add rules to build it.
2104 * Versions [GLIBC_2.2] (libpthread): Add pthread_mutex_timedlock,
2105 pthread_rwlock_timedrdlock, and pthread_rwlock_timedwrlock.
2106 * condvar.c (pthread_cond_wait): Allow mutex of kind
2107 PTHREAD_MUTEX_TIMED_NP.
2108 (pthread_cond_timedwait_relative): Likewise.
2109 * mutex.c (__pthread_mutex_init): Default is PTHREAD_MUTEX_TIMED_NP.
2110 (__pthread_mutex_trylock): Use __pthread_alt_trylock for
2111 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
2112 (__pthread_mutex_lock): Use __pthread_alt_lock for
2113 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
2114 (__pthread_mutex_timedlock): New function.
2115 (__pthread_mutex_unlock): Use __pthread_alt_unlock for
2116 PTHREAD_MUTEX_ERRORCHECK_NP. Handle PTHREAD_MUTEX_TIMED_NP.
2117 (__pthread_mutexattr_init): Use PTHREAD_MUTEX_TIMED_NP.
2118 (__pthread_mutexattr_settype): Allow PTHREAD_MUTEX_TIMED_NP.
2119 * spinlock.c: Implement alternate fastlocks.
2120 * spinlock.h: Add prototypes.
2121 * Examples/ex10.c: New file.
2122 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
2123 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2124
2125 * rwlock.c (__pthread_rwlock_rdlock): Optimize loop a bit.
2126 (__pthread_rwlock_timedrdlock): New function.
2127 (__pthread_rwlock_timedwrlock): New function.
2128 Use laternate fastlock function everywhere.
2129
3d8e9510
AJ
21302000-06-21 Andreas Jaeger <aj@suse.de>
2131
efa24b51 2132 * sysdeps/pthread/timer_routines.c: Include <string.h> for memset
3d8e9510
AJ
2133 prototype.
2134
2135 * join.c: Include <stdlib.h> for exit prototype.
2136
697568d1
UD
21372000-06-20 Ulrich Drepper <drepper@redhat.com>
2138
bdf09fab
UD
2139 * sysdeps/i386/useldt.h: Include <stdlib.h>.
2140
697568d1
UD
2141 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_BARRIERS.
2142 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2143
2144 * Makefile (libpthread-routines): Add barrier.
2145 (tests): Add ex9. Add rule to build ex9.
2146 * Versions: Export barrier functions.
2147 * barrier.c: New file.
2148 * Examples/ex9.c: New file.
2149 * sysdeps/pthread/pthread.h: Add barrier data types and declarations.
2150 * sysdeps/pthread/bits/pthreadtypes.h: Likewise.
bdf09fab 2151 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
697568d1 2152
ba80a015
UD
21532000-06-19 H.J. Lu <hjl@gnu.org>
2154
2155 * spinlock.h (HAS_COMPARE_AND_SWAP): Defined if
2156 HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS is defined.
2157 (compare_and_swap_with_release_semantics): New. Default to
2158 compare_and_swap if HAS_COMPARE_AND_SWAP_WITH_RELEASE_SEMANTICS
2159 is not defined.
2160
2161 * spinlock.c (__pthread_unlock): Call
2162 compare_and_swap_with_release_semantics () instead of
2163 compare_and_swap ().
2164
d2dfc5de
UD
21652000-06-19 Ulrich Drepper <drepper@redhat.com>
2166
2167 * sysdeps/pthread/timer_create.c: Use _set_errno instead of assigning
2168 to errno directly.
2169 * sysdeps/pthread/timer_delete.c: Likewise.
2170 * sysdeps/pthread/timer_getoverr.c: Likewise.
2171 * sysdeps/pthread/timer_gettime.c: Likewise.
2172 * sysdeps/pthread/timer_settime.c: Likewise.
2173
21742000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
2175
2176 Timer nodes are now reference counted, and can be marked
2177 as deleted. This allows for the safe release of the global mutex
2178 in the middle without losing the timer being operated on.
2179
2180 * sysdeps/pthread/posix-timer.h (struct timer_node): The inuse
2181 member is now an enum with three values, so that an intermediate
2182 state can be represented (deleted but not free for reuse yet).
2183 New refcount member added.
2184 * sysdeps/pthread/timer_routines.c: Likewise.
2185
2186 * sysdeps/pthread/posix-timer.h (timer_addref, timer_delref,
2187 timer_valid): New inline functions added.
2188
2189 * sysdeps/pthread/timer_gettime.c (timer_gettime): Function
2190 restructured, recursive deadlock bug fixed.
2191
2192 * sysdeps/pthread/timer_gettime.c (timer_gettime): Uses new
2193 timer_addref to ensure that timer won't be deleted while mutex is not
2194 held. Also uses timer_invalid to perform validation of timer handle.
2195 * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
2196 * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Likewise.
2197
e26dd47f
UD
21982000-06-14 Ulrich Drepper <drepper@redhat.com>
2199
2200 * shlib-versions: Add entry for SH.
2201 Patch by Kaz Kojima <kkojima@rr.iij4u.or.jp>.
2202
38161ac7
UD
22032000-06-13 Kaz Kylheku <kaz@ashi.footprints.net>
2204
2205 A few optimizations. Got rid of unnecessary wakeups of timer threads,
2206 tightened up some critical regions and micro-optimized some list
2207 manipulation code.
2208
2209 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
2210 Returns int value now to indicate whether timer was queued at head.
2211 * sysdeps/pthread/posix-timer.h: Likewise.
2212 * sysdeps/pthread/timer_settime.c (timer_settime): Takes advantage of
2213 new return value from __timer_thread_queue_timer to avoid waking
2214 up timer thread unnecessarily.
2215
2216 * sysdeps/pthread/posix-timer.h (timer_id2ptr): No longer checks
2217 inuse flag, because this requires mutex to be held. Callers updated
2218 to do the check when they have the mutex.
2219 * sysdeps/pthread/timer_getoverr.c: Add check for inuse here.
2220
2221 * sysdeps/pthread/timer_settime.c (timer_settime): Tighter critical
2222 regions: avoids making system calls while holding timer mutex, and
2223 a few computations were moved outside of the mutex as well.
2224 * sysdeps/pthread/timer_gettime.c (timer_gettime): Likewise.
2225
2226 * sysdeps/pthread/posix-timer.h (list_unlink_ip): Function name changed
2227 to list_unlink_ip, meaning idempotent. Pointer manipulation
2228 changed to get better better code out of gcc.
2229 * sysdeps/pthread/timer_routines.c (list_unlink): Non-idempotent
2230 version of list_unlink added here.
2231 * sysdeps/pthread/timer_delete.c: Use appropriate list unlink
2232 function in all places: idempotent one for timers, non-idempotent
2233 one for thread nodes.
2234 * sysdeps/pthread/timer_settime: Likewise.
2235 * sysdeps/pthread/timer_routines.c: Likewise.
2236
7ae1fe4d
UD
22372000-06-13 Ulrich Drepper <drepper@redhat.com>
2238
490dc9aa
UD
2239 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_TIMERS): Define.
2240 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2241
7ae1fe4d
UD
2242 * sysdeps/pthread/Makefile: Remove tests definition.
2243
3846ef75
UD
22442000-06-12 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
2245 Yutaka Niibe <gniibe@chroot.org>
2246
2247 * sysdeps/sh/pspinlock.c: New file.
2248 * sysdeps/sh/pt-machine.h: New file.
2249
a5b97402
UD
22502000-06-12 Ulrich Drepper <drepper@redhat.com>
2251
55985355
UD
2252 * Makefile (tests): Add joinrace.
2253
a5b97402
UD
2254 * Examples/ex6.c: Test return value of pthread_join.
2255
2b72ebac
GK
22562000-06-11 Geoff Keating <geoffk@cygnus.com>
2257
2258 * sysdeps/powerpc/pspinlock.c (__pthread_spin_lock): Implement.
2259 (__pthread_spin_trylock): Implement.
2260 (__pthread_spin_unlock): Implement.
2261 (__pthread_spin_init): Implement.
2262 (__pthread_spin_destroy): Implement.
2263
425638fb
UD
22642000-06-10 Ulrich Drepper <drepper@redhat.com>
2265
2266 * sysdeps/pthread/timer_routines.c (list_append): Little fix to
2b72ebac 2267 really append the entry.
425638fb 2268
6948d763
AJ
22692000-06-10 Andreas Jaeger <aj@suse.de>
2270
2271 * lockfile.c (__fresetlockfiles): Remove unused variable fp.
2272
45dc1187
UD
22732000-06-10 Kaz Kylheku <kaz@ashi.footprints.net>
2274
2275 * sysdeps/pthread/timer_create.c: Thread matching now done on
2276 clock type as well as thread attributes.
2277 There are individual global signal-delivering threads for
2278 different clock types.
2279 * sysdeps/pthread/posix-timer.h: Likewise.
2280 * sysdeps/pthread/timer_routines.c: Likewise.
2281
2282 * sysdeps/pthread/timer_routines.c: Thread allocation and
2283 deallocation function now remembers to put thread on active
425638fb 2284 list and remove from active list.
45dc1187
UD
2285 Thus now the feature of binding multiple timers
2286 to a single thread actually works.
2287
ee5d4855
UD
22882000-06-10 Ulrich Drepper <drepper@redhat.com>
2289
2290 * pthread.c (__pthread_create_2_1): Optimize a bit.
2291
2292 * internals.h (invalid_handle): Also test for p_terminated != 0.
2293 (nonexisting_handle): New function. Same as old invalid_handle.
2294 * join.c (pthread_join): Use nonexisting_handle instead of
2295 invalid_handle to test for acceptable thread handle.
41b37cb5 2296 * manager.c (pthread_handle_free): Likewise.
15109bd4 2297 * joinrace.c: New file.
ee5d4855
UD
2298 Reported by Permaine Cheung <pcheung@cygnus.com>.
2299
2715f28a
UD
23002000-06-08 Ulrich Drepper <drepper@redhat.com>
2301
8aa8fc7f
UD
2302 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
2303 Correct handling of matching variable.
2304
480a06df
UD
2305 * sysdeps/pthread/tst-timer.c (main): Rewrite initializers to
2306 avoid warnings.
2307
18e4e446
UD
2308 * sysdeps/pthread/timer_routines.c (__timer_thread_queue_timer):
2309 Be prepared for empty timer list.
2310
165ab1d7
UD
2311 * sysdeps/pthread/timer_create.c (timer_create): Correct names of
2312 CPUTIME clock ID. Add support for thread clocks.
2313
f2a5974b
UD
2314 * sysdeps/pthread/posix-timer.h (timer_ptr2id): Operands in
2315 subtraction were switched.
2316
c0f79a04
UD
2317 * sysdeps/pthread/timer_routines.c (init_module): Use
2318 THREAD_MAXNODES threads.
2319
55938273
UD
2320 * sysdeps/pthread/posix-timer.h (struct timer_node): Add creator_pid.
2321 * sysdeps/pthread/timer_create.c: Fill in creator_pid.
2322 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Send signal
2323 with sigqueueinfo is this system call is available.
2324
2325 * sysdeps/pthread/timer_create.c (timer_create): Allow
2326 CLOCK_CPUTIME if _POSIX_CPUTIME is defined.
2327
2715f28a
UD
2328 * sysdeps/pthread/Makefile: New file. Add rules to build timer
2329 functionality.
2330 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add TIMER_MAX.
2331
23322000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
2333
2334 * sysdeps/pthread/posix-timer.h: New file.
2335 * sysdeps/pthread/timer_create.c: New file.
2336 * sysdeps/pthread/timer_delete.c: New file.
2337 * sysdeps/pthread/timer_getoverr.c: New file.
2338 * sysdeps/pthread/timer_gettime.c: New file.
2339 * sysdeps/pthread/timer_routines.c: New file.
2340 * sysdeps/pthread/timer_settime.c: New file.
2341 * sysdeps/pthread/tst-timer.c: New file.
2342
1b579f91
UD
23432000-06-08 Ulrich Drepper <drepper@redhat.com>
2344
2345 * sysdeps/unix/sysv/linux/bits/local_lim.h: Remove OPEN_MAX and
2346 LINK_MAX definitions if necessary.
2347
dc3b5786
UD
23482000-06-04 Kaz Kylheku <kaz@ashi.footprints.net>
2349
2350 Added missing fork time handling of global libio lock.
2351
2352 * lockfile.c (__fresetlockfiles): Now also resets the list lock,
2353 not just the individual stream locks. Rewritten to use new
2354 iterator interface provided by libio rather than accessing
2355 global variable.
2356
2357 * lockfile.c (__flockfilelist, _funlockfilelist): New functions
2358 which lock and unlock the stream list using the new interface
2359 provied by libio.
2360 * internals.h: Likewise.
2361
2362 * ptfork.c (__fork): Now calls __flockfilelist before fork,
2363 and __funlockfilelist in the parent after the fork.
2364 Child still calls __fresetlockfiles as before.
2365
2366 * linuxthreads.texi: Now explains what happens to streams at
2367 fork time. Also whole new section on forking and thread added.
2368 Definition of pthread_atfork moved out of Miscellaneous Functions
2369 to this new section.
2370
1dd54850
UD
23712000-06-04 Jakub Jelinek <jakub@redhat.com>
2372
2373 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c (__pthread_spin_lock):
2374 Add missing register.
2375 * sysdeps/sparc/sparc64/pspinlock.c (__pthread_spin_lock): Likewise.
2376
554eca5c
AJ
23772000-06-02 Jakub Jelinek <jakub@redhat.com>
2378
2379 * sysdeps/sparc/sparc32/pspinlock.c: Implement spinlocks.
2380 * sysdeps/sparc/sparc32/sparcv9/pspinlock.c: New.
2381 * sysdeps/sparc/sparc64/pspinlock.c: Implement spinlocks.
2382
a3a99e01
AJ
23832000-05-31 Andreas Jaeger <aj@suse.de>
2384
2385 * sysdeps/mips/pspinlock.c: Implement spinlocks.
2386
c0f3519d
UD
23872000-05-28 Ulrich Drepper <drepper@redhat.com>
2388
84838b8f
UD
2389 * spinlock.c (__pthread_lock): Remove ASSERT.
2390
c0f3519d
UD
2391 * Makefile (tests): Add ex8.
2392 * Examples/ex8.c: New file.
2393
23942000-05-12 Kaz Kylheku <kaz@ashi.footprints.net>
2395
2396 Bugfix: The pthread_atfork mechanism now takes care of its
2397 own internal mutex at fork time.
2398
2399 * ptfork.c (__fork): Revised so that the mutex is held across
2400 the fork operation and while the handlers are called, and so that
2401 the child resets the mutex.
c0f3519d
UD
2402
2403 * linuxthreads.texi: Updated pthread_atfork documentation to make
2404 it clear that fork and pthread_atfork can't be reentered from
2405 atfork handlers, that pthread_atfork and fork are mutually atomic,
2406 and that the handlers are inherited by the child process.
2407
378fbeb4
UD
24082000-05-24 Ulrich Drepper <drepper@redhat.com>
2409
2410 * Makefile (libpthread-routines): Add pspinlock.
2411 * cancel.c: Rename __pthread_spin_unlock back to __pthread_unlock.
2412 Use struct _pthread_fastlock instead of pthread_spinlock_t.
2413 * condvar.c: Likewise.
2414 * internals.h: Likewise.
2415 * join.c: Likewise.
2416 * manager.c: Likewise.
2417 * mutex.c: Likewise.
2418 * pthread.c: Likewise.
2419 * rwlock.c: Likewise.
2420 * semaphore.c: Likewise.
2421 * signals.c: Likewise.
2422 * spinlock.h: Likewise.
2423 * spinlock.c: Likewise. Remove pthread_spin_lock functions.
2424 * sysdeps/alpha/pspinlock.c: New file.
2425 * sysdeps/arm/pspinlock.c: New file.
2426 * sysdeps/i386/pspinlock.c: New file.
2427 * sysdeps/m68k/pspinlock.c: New file.
2428 * sysdeps/mips/pspinlock.c: New file.
2429 * sysdeps/powerpc/pspinlock.c: New file.
2430 * sysdeps/sparc/sparc32/pspinlock.c: New file.
2431 * sysdeps/sparc/sparc64/pspinlock.c: New file.
2432 * sysdeps/pthread/bits/pthreadtypes.h: Remove pthread_spinlock_t
2433 back to _pthread_fastlock. Define new pthread_spinlock_t.
2434
fff82885
AJ
24352000-05-24 Andreas Jaeger <aj@suse.de>
2436
2437 * sysdeps/i386/i686/pt-machine.h: Only use LDT on newer kernels.
2438
5d1fba6d
AJ
24392000-05-21 Jakub Jelinek <jakub@redhat.com>
2440
2441 * manager.c (pthread_handle_create): Initialize p_res._sock to -1.
2442
f14273c5
AJ
24432000-05-13 Jakub Jelinek <jakub@redhat.com>
2444
2445 * internals.h (__RES_PTHREAD_INTERNAL): Define.
2446
93414bb9
UD
24472000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
2448
2449 * mutex.c (pthread_once): IN_PROGRESS state of pthread_once_t
2450 object state is represented with additional bits which distinguish
2451 whether that state was set up in the current process, or
2452 in an ancestor process. If that state was set in an ancestor,
2453 it means that a fork happened while thread was executing the init
2454 function. In that case, the state is reset to NEVER.
2455 * mutex.c (__pthread_once_fork_prepare): New function.
2456 (__pthread_once_fork_child): Likewise
2457 (__pthread_once_fork_parent): Likewise
2458 (__pthread_reset_pthread_once): Removed.
2459 * ptfork.c (__fork): Call new handlers in mutex.c.
2460 * internals.h: Declarations of new mutex.c functions added.
2461 Declaration of removed function deleted.
2462 * linuxthreads.texi: Updated documentation about pthread_once
2463 to clarify what happens under cancellation and forking.
2464
fc08075d
UD
24652000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
2466
2467 * internals.h: New thread manager request type, REQ_KICK.
2468 * join.c (pthread_exit): main thread now calls exit() instead
2469 of _exit() in order to proper process cleanup.
2470 * manager.c (__pthread_manager): Do not terminate manager
2471 after unblocking main thread; wait for main thread's
2472 REQ_PROCESS_EXIT request instead.
2473 Also, added REQ_KICK case to handle new request; this just does
2474 nothing.
2475 * manager.c (pthread_exited): Do not terminate manager after
2476 unblocking main thread.
2477 * manager.c (__pthread_manager_sighandler): If the main thread
2478 is waiting for all other threads to die, send a REQ_KICK into
2479 the thread manager request pipe to get it to clean out the threads
2480 and unblock the main thread as soon as possible. This fixes
2481 the 2000 millisecond hang on shutdown bug.
2482 * Examples/ex7.c: New file, tests shutdown behavior when all threads
2483 including the main one call pthread_exit(), or implicitly do so.
2484 * Makefile (tests): Add ex7.
2485
b19b7383
AJ
24862000-05-05 Andreas Jaeger <aj@suse.de>
2487
2488 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
2489 (pthread_getcpuclockid): Correct test for ourselves.
2490
c77ec56d
UD
24912000-05-05 Ulrich Drepper <drepper@redhat.com>
2492
2493 * internals.h (struct _pthread_descr_struct): Reorganization.
2494 Allocate room for 16 pointers at head of the structure for future
2495 thread-local data handling. Move p_self member in this area.
2496 * manager.c (pthread_handle_create): Adjust use of p_self.
2497 * sysdeps/i386/useldt.h (THREAD_SELF): Likewise.
2498 * pthread.c (__pthread_initial_thread): Adjust initialization.
2499 (__pthread_manager_thread): Likewise.
2500
25012000-04-29 Bruno Haible <haible@clisp.cons.org>
160016c9
UD
2502
2503 * join.c (pthread_exit): Use THREAD_GETMEM_NC instead of THREAD_GETMEM
2504 for eventmask larger than 1 word.
2505
3300816c
UD
25062000-04-27 Ulrich Drepper <drepper@redhat.com>
2507
2508 * Versions [libpthread] (GLIBC_2.2): Add __pthread_initialize_minimal.
2509 * pthread.c (__pthread_initialize_minimal): New function. Perform
2510 minimal initialization.
2511 (pthread_initialize): Remove this code here.
2512 * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h" again. We
2513 are working around the problem in glibc.
2514
d472655c
UD
25152000-04-25 Ulrich Drepper <drepper@redhat.com>
2516
2517 * sysdeps/i386/i686/pt-machine.h: Do not use "../useldt.h" for
2518 now. First gcc must be fixed (more concrete: libgcc).
2519
9bf4d640
UD
25202000-04-24 Ulrich Drepper <drepper@redhat.com>
2521
e19ae111 2522 * pthread.c: Remove special treatement for interrupt handlers on x86.
9bf4d640
UD
2523 * manager.c (pthread_free): Use FREE_THREAD not FREE_THREAD_SELF.
2524 * sysdeps/i386/useldt.h: Use "q" constraint instead of "r" where
2525 necessary.
2526 * sysdeps/i386/i686/pt-machine.h: Include "../useldt.h".
2527
9682a871
UD
25282000-04-24 Mark Kettenis <kettenis@gnu.org>
2529
2530 * join.c (pthread_exit): Set p_terminated after reporting the
2531 termination event instead of before.
2532
d879eb85
UD
25332000-04-20 Jakub Jelinek <jakub@redhat.com>
2534
2535 * sysdeps/pthread/bits/libc-lock.h: Only declare __pthread_rwlock_*
2536 if __USE_UNIX98.
2537
25382000-04-18 Andreas Jaeger <aj@suse.de>
2539
2540 * Versions: Use ld instead of ld.so.
2541
318c80d4
UD
25422000-04-18 Jakub Jelinek <jakub@redhat.com>
2543
2544 * sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h (struct sigcontext):
2545 Remove the typedef keyword.
2546
cd43f797
UD
25472000-04-18 Jakub Jelinek <jakub@redhat.com>
2548
2549 * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Use membar,
2550 not stbar.
2551 (READ_MEMORY_BARRIER): Define.
2552 * spinlock.c (__pthread_spin_unlock): Use READ_MEMORY_BARRIER, not
2553 MEMORY_BARRIER.
2554 * internals.h (READ_MEMORY_BARRIER): Define if not defined in sysdep
2555 headers.
2556
dbacafe5
UD
25572000-04-17 Ulrich Drepper <drepper@redhat.com>
2558
2559 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
2560 (pthread_getcpuclockid): Don't compare thread_id with thread_self,
2561 use thread_handle().
2562
e2947c42
UD
25632000-04-16 Ulrich Drepper <drepper@redhat.com>
2564
e3265f5b
UD
2565 * condvar.c (pthread_cond_timedwait_relative): Don't test for owner
2566 if fast mutex is used. Don't initialize `already_canceled' twice.
2567 Correctly test for return value of timedsuspend.
2568
e2947c42
UD
2569 * pthread.c: Correct long-time braino. We never set SA_SIGINFO and
2570 therefore don't need the _rt versions of the signal handlers.
2571
150f740a
UD
25722000-04-15 Ulrich Drepper <drepper@redhat.com>
2573
c269fdb4
UD
2574 * pthread.c (pthread_yield): New function.
2575 * sysdeps/pthread/pthread.h (pthread_yield): Add prototype.
2576 * Versions [libpthread] (GLIBC_2.2): Add pthread_yield.
e2947c42 2577 * internals.h: Declare __pthread_yield.
c269fdb4 2578
145b8413
UD
2579 * pthread.c (pthread_initialize): Avoid a bit more code if
2580 realtime signals are known to exist.
2581
150f740a
UD
2582 * pthread.c: Is __ASSUME_REALTIME_SIGNALS then avoid generating code
2583 to dynamically detect RT signals and avoid generating compatibility
2584 functions with old kernel.
2585 * restart.h (restart) [__ASSUME_REALTIME_SIGNALS]: Use
2586 __pthread_restart_new directly.
2587 (suspend) [__ASSUME_REALTIME_SIGNALS]: Use
2588 __pthread_wait_for_restart_signal directly.
2589 (timedsuspend) [__ASSUME_REALTIME_SIGNALS]: Use
2590 __pthread_timedsuspend_new directly.
2591
b2d4446f
UD
25922000-04-15 Ulrich Drepper <drepper@redhat.com>
2593
ef187474
UD
2594 * condvar.c: Remove all the special code to handle cond_timedwait.
2595 Use timedsuspend instead.
2596 * internals.h: Declare __pthread_timedsuspend_old,
2597 __pthread_timedsuspend_new, and __pthread_timedsuspend.
2598 Remove declaration of __pthread_init_condvar.
2599 * pthread.c: Define __pthread_timedsuspend variable.
2600 (__pthread_timedsuspend_old): New function. Timed suspension
2601 implementation for old Linux kernels.
2602 (__pthread_timedsuspend_new): New function. Timed suspension
2603 implementation for new Linux kernels.
2604 * restart.h (timedsuspend): New function. Call appropriate
2605 suspension function through __pthread_timedsuspend.
2606 * semaphore.c (sem_timedwait): Use timedsuspend, don't duplicate
2607 the code.
2608 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2609
a5a6f926
UD
2610 * internals.h (WRITE_MEMORY_BARRIER): Define as MEMORY_BARRIER if
2611 undefined.
2612 * spinlock.c: Use WRITE_MEMORY_BARRIER instead of MEMORY_BARRIER
2613 where possible.
2614 * sysdeps/alpha/pt-machine.h: Define WRITE_MEMORY_BARRIER.
2615 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
2616
b2d4446f
UD
2617 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _POSIX_SPAWN.
2618 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2619
b82f6af2
AJ
26202000-04-14 Andreas Jaeger <aj@suse.de>
2621
2622 * weaks.c: Fix typo.
2623
43c36f63
AJ
2624 * shlib-versions (mips.*-.*-linux.*): Support only GLIBC 2.0 and
2625 2.2 for linuxthreads.
2626
547ff462
UD
26272000-04-13 Ulrich Drepper <drepper@redhat.com>
2628
2629 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c
2630 (pthread_getcpuclockid): Fix typo.
2631
b3ae0650
UD
26322000-04-12 Ulrich Drepper <drepper@redhat.com>
2633
3737ff12
UD
2634 * Makefile (libpthread-routines): Add getcpuclockid.
2635 * Versions [libpthread] (GLIBC_2.2): Add pthread_getcpuclockid.
2636 * sysdeps/pthread/getcpuclockid.c: New file.
2637 * sysdeps/unix/sysv/linux/i386/getcpuclockid.c: New file.
2638 * sysdeps/pthread/pthread.h: Add prototype for pthread_getcpuclockid.
2639
07d641eb
UD
2640 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_SPIN_LOCKS):
2641 Defined.
2642 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2643
d8d914df
UD
2644 * sysdeps/pthread/pthread.h: Add prototypes for pthread_spin_init,
2645 pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
2646 and pthread_spin_unlock.
2647 * sysdeps/pthread/bits/pthreadtypes.h: Change struct _pthread_fastlock
2648 into pthread_spinlock_t. Change all uses.
2649 * spinlock.c: Implement pthread_spin_lock.
2650 Rename __pthread_unlock to __pthread_spin_unlock and define weak
2651 alias for real name.
2652 Define pthread_spin_trylock, pthread_spin_init, and
2653 pthread_spin_destroy.
2654 Change all uses of _pthread_fastlock to pthread_spinlock_t.
2655 * spinlock.h: Rename __pthread_unlock to __pthread_spin_unlock.
2656 Change all uses of _pthread_fastlock to pthread_spinlock_t.
2657 * Versions [libpthread] (GLIBC_2.2): Add pthread_spin_init,
2658 pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock,
2659 and pthread_spin_unlock.
2660 * cancel.c: Use __pthread_spin_unlock instead of __pthread_unlock.
2661 Change all uses of _pthread_fastlock to pthread_spinlock_t.
2662 * condvar.c: Likewise.
2663 * internals.h: Likewise.
2664 * join.c: Likewise.
2665 * manager.c: Likewise.
2666 * mutex.c: Likewise.
2667 * pthread.c: Likewise.
2668 * rwlock.c: Likewise.
2669 * semaphore.c: Likewise.
2670 * signals.c: Likewise.
2671
b3ae0650
UD
2672 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add various new POSIX
2673 macros.
2674 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
2675
8a31d742
UD
26762000-04-11 Ulrich Drepper <drepper@redhat.com>
2677
2678 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add
2679 _POSIX_SHARED_MEMORY_OBJECTS.
2680
2a086df9
AJ
26812000-04-11 Andreas Jaeger <aj@suse.de>
2682
2683 * sysdeps/mips/pt-machine.h (MEMORY_BARRIER): Define.
2684 (__compare_and_swap): Mark as modifying memory.
2685
4a1a3c21
GK
26862000-04-11 Geoff Keating <geoffk@cygnus.com>
2687
2688 * sysdeps/powerpc/pt-machine.h (MEMORY_BARRIER): Don't be
2689 __volatile__.
2690 (__compare_and_swap): Replace other 'sync' with MEMORY_BARRIER.
2691 Don't have the 'asm' __volatile__.
2692
de262537
UD
26932000-04-11 Ulrich Drepper <drepper@redhat.com>
2694
2695 * internals.h: Define MEMORY_BARRIER as empty if not defined already.
2696 * spinlock.c (__pthread_lock): Add memory barriers.
2697 (__pthread_unlock): Likewise.
2698 * sysdeps/alpha/pt-machine.h (MEMORY_BARRIER): Define using mb
2699 instruction.
2700 (RELEASE): Not needed anymore.
2701 (__compare_and_swap): Mark asm as modifying memory.
2702 * sysdeps/powerpc/pt-machine.h (sync): Remove. Replace with definition
2703 of MEMORY_BARRIER.
2704 (__compare_and_swap): Use MEMORY_BARRIER instead of sync.
2705 * sysdeps/sparc/sparc32/pt-machine.h (RELEASE): Not needed anymore.
2706 (MEMORY_BARRIER): Define using stbar.
2707 * sysdeps/sparc/sparc64/pt-machine.h (MEMORY_BARRIER): Define using
2708 stbar.
2709 (__compare_and_swap): Use MEMORY_BARRIER to ensure ordering.
2710 Patch by Xavier Leroy <Xavier.Leroy@inria.fr> based on comments by
2711 Mike Burrows <m3b@pa.dec.com>.
2712
4186c9f4
UD
27132000-04-09 Ulrich Drepper <drepper@redhat.com>
2714
2715 * signals.c (sigaction): Fix return value for the case SIG is one
2716 of the signals the implementation uses.
2717 Patch by Xavier.Leroy@inria.fr.
2718
bd457114
UD
27192000-04-01 Andreas Jaeger <aj@suse.de>
2720
2721 * attr.c: Use shlib-compat macros.
2722 * oldsemaphore.c: Likewise.
2723 * pthread.c: Likewise.
2724 * weaks.c: Likewise.
2725
1edf26ff
UD
27262000-03-26 Ulrich Drepper <drepper@redhat.com>
2727
2728 * semaphore.c (sem_timedwait): New function.
2729 Patch by Carl Mailloux <carlm@oricom.ca>.
2730 * semaphore.h: Declare sem_timedwait.
8e605e78 2731 * Versions [libpthread] (GLIBC_2.2): Add sem_timedwait.
1edf26ff 2732
54f6cbb3
RM
27332000-03-26 Roland McGrath <roland@baalperazim.frob.com>
2734
2735 * sysdeps/pthread/Makefile: File removed.
2736
c0bc5f7b
UD
27372000-03-23 Ulrich Drepper <drepper@redhat.com>
2738
383052e9
UD
2739 * mutex.c (__pthread_reset_pthread_once): Reset once_masterlock.
2740 * internals.h (__pthread_reset_pthread_once): Add prototype.
2741 * ptfork.c (__fork): Call __pthread_reset_pthread_once.
2742
c0bc5f7b
UD
2743 * manager.c (pthread_handle_create): Store ID of new thread before
2744 clone call.
2745
0bf98029
UD
27462000-03-21 Ulrich Drepper <drepper@redhat.com>
2747
ef7dddd0
UD
2748 * attr.c: Use new macros from shlib-compat.h to define versions.
2749 * oldsemaphore.c: Likewise.
2750 * semaphore.c: Likewise.
2751 * weaks.c: Likewise.
2752
1ab1ea76
UD
2753 * pthread.c: Update for new SHLIB_COMPAT definition.
2754
101edd3f
UD
2755 * manager.c (__pthread_manager): Unmask debug signal.
2756
0bf98029
UD
2757 * pthread.c (pthread_initialize): Test for address of __dso_handle
2758 being NULL, not value. Use __on_exit, not on_exit.
e063cef8 2759 Patch by Andreas Jaeger <aj@suse.de>.
0bf98029 2760
75836bc8
UD
2761 * pthread.c: Use new macros from shlib-compat.h to define versions.
2762
a6a478e9
UD
27632000-03-19 Ulrich Drepper <drepper@redhat.com>
2764
2765 * pthread.c (pthread_initialize): Instead of on_exit use
2766 __cxa_atexit if __dso_label is available to allow unloading the
2767 libpthread shared library.
2768
13a83604
UD
27692000-03-16 Ulrich Drepper <drepper@redhat.com>
2770
2771 * condvar.c: Make tests for ownership of mutex less strict.
2772
30b416ea
UD
27732000-03-14 Ulrich Drepper <drepper@redhat.com>
2774
5d141597
UD
2775 * condvar.c (pthread_cond_wait): Check whether mutex is owned by
2776 current thread and return error if not.
04366d5f
UD
2777 (pthread_cond_timedwait_relative_old): Likewise.
2778 (pthread_cond_timedwait_relative_new): Likewise.
5d141597 2779
30b416ea
UD
2780 * mutex.c (__pthread_once): Handle cancelled init function correctly.
2781 (pthread_once_cancelhandler): New function.
2782 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2783
56eea8d1
UD
27842000-03-14 Andreas Jaeger <aj@suse.de>
2785
2786 * pthread.c (pthread_handle_sigcancel_rt): GS has been renamed to
2787 REG_GS.
2788 (pthread_handle_sigrestart_rt): Likewise.
2789 * signals.c (pthread_sighandler_rt): Likewise.
2790
3d9ebedb
AJ
27912000-03-02 Andreas Jaeger <aj@suse.de>
2792
2793 * sysdeps/pthread/bits/libc-lock.h: Fix typo.
2794 Reported by Sean Chen <sean.chen@turbolinux.com>.
2795
b041ebc2
UD
27962000-02-28 Andreas Jaeger <aj@suse.de>
2797
2798 * rwlock.c: Fix typo.
2799
0ed99ce4
UD
28002000-02-27 Ulrich Drepper <drepper@redhat.com>
2801
2802 * rwlock.c: Define __* variants of the functions and make old names
2803 aliases.
2804 * Versions [GLIBC_2.2]: Export the __pthread_rwlock_* functions.
2805 * sysdeps/pthread/bits/libc-lock.h: Define __libc_rwlock_* macros.
2806
d66732e0
UD
28072000-02-25 Andreas Jaeger <aj@suse.de>
2808
2809 * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
0ed99ce4
UD
2810 pwrite64, lseek64, open64, and __open64 with version 2.2.
2811
93a19c64
UD
28122000-02-22 Ulrich Drepper <drepper@redhat.com>
2813
2814 * semaphore.h (SEM_FAILED): Use 0 not NULL.
2815
ec91ea7c
UD
28162000-02-14 Ulrich Drepper <drepper@redhat.com>
2817
2818 * condvar.c (pthread_cond_timedwait_relative_old): Tight loop with
2819 nanosleep does not work either. Get absolute time inside the
2820 loop.
2821 (pthread_cond_timedwait_relative_new): Likewise.
2822 Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
2823
f5ff12d8
UD
28242000-02-13 Andreas Jaeger <aj@suse.de>
2825
2826 * condvar.c (pthread_cond_timedwait_relative_new): Fix last patch.
2827 (pthread_cond_timedwait_relative_old): Likewise.
2828
46661856
UD
28292000-02-13 Ulrich Drepper <drepper@redhat.com>
2830
2831 * condvar.c (pthread_cond_timedwait_relative_old): Undo last patch
2832 but keep the code around. A bug in the kernel prevent us from
2833 using the code.
2834 (pthread_cond_timedwait_relative_new): Likewise.
2835 (PR libc/1597 and libc/1598).
2836
b168cff2
UD
28372000-02-01 Kaz Kylheku <kaz@ashi.footprints.net>
2838
2839 * condvar.c (pthread_cond_timedwait_relative_old): Do tight
2840 loop around nanosleep calls instead of around most of the function
2841 (pthread_cond_timedwait_relative_new): Likewise.
2842 body. Got rid of backwards goto and one local.
2843
8a94dfe4
UD
28442000-01-31 Ulrich Drepper <drepper@redhat.com>
2845
2846 * condvar.c (pthread_cond_timedwait_relative_old): Recompute time
2847 before every nanosleep call to account for time spent in the rest
2848 of the function.
2849 (pthread_cond_timedwait_relative_new): Likewise.
2850 Patch by khendricks@ivey.uwo.ca (PR libc/1564).
2851
b6aa34eb
UD
28522000-01-29 Ulrich Drepper <drepper@redhat.com>
2853
2854 * condvar.c (pthread_cond_timedwait_relative_old): Get remaining time
2855 from nanosleep call so that in case we restart we only wait for the
2856 remaining time.
2857 (pthread_cond_timedwait_relative_new): Likewise.
2858 Patch by khendricks@ivey.uwo.ca (PR libc/1561).
2859
0af4c646
UD
28602000-01-18 Ulrich Drepper <drepper@cygnus.com>
2861
2862 * manager.c (pthread_allocate_stack): Compute guard page address
2863 correctly. Patch by HJ Lu.
2864
2865 * sysdeps/pthread/pthread.h: Define
2866 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP.
2867
2449110a
UD
28682000-01-16 Ulrich Drepper <drepper@cygnus.com>
2869
2870 * rwlock.c (pthread_rwlock_unlock): Correct one more problem with
2871 preference handling.
2872 (pthread_rwlockattr_setkind_np): Allow
2873 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
2874 Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
2875
03c0d6ef
UD
28762000-01-12 Ulrich Drepper <drepper@cygnus.com>
2877
2878 * internals.h (pthread_readlock_info): New structure.
2879 (_pthread_descr_struct): Add p_readlock_list, p_readlock_free, and
2880 p_untracked_readlock_count.
2881 * pthread.c (__pthread_initial_thread, pthread_manager_thread):
2882 Add initializers for new fields.
2883 * manager.c (pthread_free): Free read/write lock lists.
2884 * queue.h (queue_is_empty): New function.
2885 * rwlock.c: Implement requirements about when readers should get
2886 locks assigned.
2887 * sysdeps/pthread/pthread.h
2888 (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP): New definition.
2889 * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_rwlock_t):
2890 Define this name as well.
2891 Patches by Kaz Kylheku <kaz@ashi.footprints.net>.
2892
d569d333
UD
28932000-01-05 Ulrich Drepper <drepper@cygnus.com>
2894
2ba3c836
UD
2895 * pthread.c (__pthread_initial_thread, pthread_manager_thread):
2896 Adjust initializers for struct _pthread_descr_struct change.
d569d333
UD
2897 * internals.h (struct _pthread_descr_struct): Move new elements to
2898 the end.
2899
1d2fc9b3
UD
29002000-01-03 Kaz Kylheku <kaz@ashi.footprints.net>
2901
2902 Redesigned how cancellation unblocks a thread from internal
2903 cancellation points (sem_wait, pthread_join,
2904 pthread_cond_{wait,timedwait}).
2905 Cancellation won't eat a signal in any of these functions
2906 (*required* by POSIX and Single Unix Spec!).
a3bfd999 2907 * condvar.c: Spontaneous wakeup on pthread_cond_timedwait won't eat a
1d2fc9b3
UD
2908 simultaneous condition variable signal (not required by POSIX
2909 or Single Unix Spec, but nice).
2910 * spinlock.c: __pthread_lock queues back any received restarts
2911 that don't belong to it instead of assuming ownership of lock
2912 upon any restart; fastlock can no longer be acquired by two threads
2913 simultaneously.
a3bfd999 2914 * restart.h: Restarts queue even on kernels that don't have
1d2fc9b3
UD
2915 queued real time signals (2.0, early 2.1), thanks to atomic counter,
2916 avoiding a rare race condition in pthread_cond_timedwait.
2917
1c5d4617
UD
29181999-12-31 Andreas Jaeger <aj@suse.de>
2919
2920 * internals.h: Remove duplicate prototype declarations.
2921
2922 * weaks.c: Remove __THROW from prototypes since the file is not
2923 compiled by a C++ compiler.
2924 * internals.h: Likewise.
2925
29261999-12-30 Andreas Jaeger <aj@suse.de>
2927
2928 * sysdeps/pthread/pthread.h: Move internal functions to...
2929 * sysdeps/pthread/bits/libc-lock.h: ...here.
2930
d876f532
UD
29311999-12-29 Andreas Jaeger <aj@suse.de>
2932
2933 * sysdeps/pthread/pthread.h: Fix typos, reformat comments.
2934
056e0358
UD
29351999-12-28 Ulrich Drepper <drepper@cygnus.com>
2936
2937 * sysdeps/alpha/pt-machine.h: Move stack_pointer definition to the
2938 beginning.
2939
2940 * manager.c (__pthread_start): Add one more cast to prevent
2941 warning on 64bit machines.
2942
46fd4f67
UD
29431999-12-21 Ulrich Drepper <drepper@cygnus.com>
2944
2945 * manager.c (pthread_handle_create): Set p_pid of new thread
2946 before calling the callback function to report a new thread.
2947
c63598bf
UD
29481999-12-20 Andreas Jaeger <aj@suse.de>
2949
2950 * pthread.c (pthread_initialize): Move getrlimit call after
2951 setting of errno.
2952
b85697f6
UD
29531999-12-18 Ulrich Drepper <drepper@cygnus.com>
2954
778c59c8
UD
2955 * Versions: Export pread, __pread64, pread64, pwrite, __pwrite64,
2956 pwrite64, lseek64, open64, and __open64.
2957 * wrapsyscall.c: Define pread, __pread64, pread64, pwrite, __pwrite64,
2958 pwrite64, lseek64, open64, and __open64.
2959
b85697f6
UD
2960 * manager.c (pthread_allocate_stack): Correct computation of
2961 new_thread_bottom. Correct handling of stack size and when the
2962 rlimit method to guard for stack growth is used.
2963 * pthread.c (pthread_initialize): Stack limit must be STACK_SIZE
2964 minus one pagesize (not two).
2965
b43b13ac
UD
29661999-12-03 Andreas Jaeger <aj@suse.de>
2967
2968 * Versions: Add __res_state with version GLIBC_2.2.
2969
2970 * errno.c (__res_state): New function to return thread specific
2971 resolver state.
2972
2973 * pthread.c (pthread_initialize): Initialize p_resp.
2974 (__pthread_reset_main_thread): Also set p_resp.
2975
2976 * manager.c (pthread_handle_create): Initialize p_resp.
2977
2978 * internals.h: Add thread specific resolver state.
2979 Based on patches by Adam D. Bradley <artdodge@cs.bu.edu>.
2980
d7a4856e
UD
29811999-12-01 Ulrich Drepper <drepper@cygnus.com>
2982
2983 * sysdeps/i386/pt-machine.h: Move stack_pointer definition to the
2984 beginning.
2985 * sysdeps/i386/i686/pt-machine.h: Likewise.
2986 Patches by Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>.
2987
ffd35632
UD
29881999-11-23 Ulrich Drepper <drepper@cygnus.com>
2989
2990 * manager.c (pthread_start_thread_event): Initialize p_pid already
2991 here.
2992
20bdb31b
UD
29931999-11-22 Ulrich Drepper <drepper@cygnus.com>
2994
2995 * internals.h: Add prototype for __pthread_manager_event.
2996 * manager.c (__pthread_manager_event): New function.
2997 (pthread_start_thread_event): Correct computation of self.
2998 Use INIT_THREAD_SELF.
2999 * pthread.c (__pthread_manager_thread): Initialize p_lock.
3000 (__pthread_initialize_manager): Respect event flags also for creation
3001 of the manager thread.
3002
178a145a
UD
30031999-11-08 Ulrich Drepper <drepper@cygnus.com>
3004
3005 * pthread.c (__pthread_initialize_manager): Initialize
3006 __pthread_manager_thread.p_tid.
3007
a9cb398f
UD
30081999-11-02 Ulrich Drepper <drepper@cygnus.com>
3009
ab86fbb1
UD
3010 * internals.h: Declare __pthread_last_event.
3011 * manager.c: Define __pthread_last_event.
3012 (pthread_handle_create): Set __pthread_last_event.
3013 (pthread_exited): Likewise.
3014 * join.c (pthread_exit): Likewise.
3015
a9cb398f
UD
3016 * Makefile (libpthread-routines): Add events.
3017 * events.c: New file.
3018 * internals.h: Protect against multiple inclusion.
3019 Include thread_dbP.h header.
3020 (struct _pthread_descr_struct): Add new fields p_report_events and
3021 p_eventbuf.
3022 Declare event reporting functions.
3023 * join.c (pthread_exit): Signal event if this is wanted.
3024 * manager.c (__pthread_threads_events): New variable.
3025 (pthread_handle_create): Take new parameters with event information.
3026 Signal TD_CREATE event if wanted.
3027 (__pthread_manager): Adjust pthread_handle_create call.
3028 (pthread_start_thread_event): New function. Block until manager is
3029 finished and then call pthread_start_thread.
3030 (pthread_exited): Signal TD_REAP event if wanted.
3031
8dd1e494
UD
30321999-10-26 Ulrich Drepper <drepper@cygnus.com>
3033
3034 * restart.h (suspend_with_cancellation): Rewrite as a macro.
3035
3036 * condvar.c (pthread_cond_timedwait_relative): Don't mark as inline.
3037
86cfe82d
UD
30381999-10-25 Andreas Jaeger <aj@suse.de>
3039
3040 * internals.h: Remove K&R compatibility.
3041 * no-tsd.c: Likewise.
3042 * semaphore.h: Likewise.
3043 * signals.c: Likewise.
3044 * sysdeps/pthread/bits/libc-tsd.h: Likewise.
3045 * sysdeps/unix/sysv/linux/bits/sigthread.h: Likewise.
3046 * weaks.c: Likewise.
3047
15daa639
UD
30481999-10-21 Xavier Leroy <Xavier.Leroy@inria.fr>
3049
d364e525
UD
3050 * pthread.c: For i386, wrap pthread_handle_sigrestart and
3051 pthread_handle_sigcancel with functions that restore %gs from the
3052 signal context. For each signal handling function, two wrappers
3053 are required, one for a non-RT signal and one for a RT signal.
3054 * signal.c: For i386, add code to restore %gs from the signal
3055 context in pthread_sighandler and pthread_sighandler_rt.
15daa639 3056
ef5d6645
UD
30571999-10-17 Ulrich Drepper <drepper@cygnus.com>
3058
3059 * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add cast.
3060
f6367df2
UD
30611999-10-14 Ulrich Drepper <drepper@cygnus.com>
3062
4a379216
UD
3063 * pthread.c (__pthread_initial_thread): Pass argument to
3064 PTHREAD_START_ARGS_INITIALIZER.
3065 (__pthread_manager_thread): Likewise.
3066
3067 * internals.h (PTHREAD_START_ARGS_INITIALIZER): Add parameter to
3068 initialize function.
3069
f6367df2
UD
3070 * manager.c (pthread_handle_create): Remove p_startfct initialization.
3071
3072 * internals.h (_pthread_descr_struct): We don't need p_startfct field.
3073
d4c5cf80
UD
30741999-10-12 Ulrich Drepper <drepper@cygnus.com>
3075
3076 * internals.h: Correct return types for __libc_read and __libc_write.
3077
883c331a
UD
30781999-10-09 Andreas Jaeger <aj@suse.de>
3079
3080 * internals.h: Add __new_sem_post to get prototype in
3081 manager.c; include semaphore.h for needed types.
3082
c813f986
UD
30831999-10-08 Ulrich Drepper <drepper@cygnus.com>
3084
3085 * manager.c (__pthread_manager) [REQ_POST]: Use __new_sem_post
3086 directly instead of calling sem_post which should not be necessary
3087 but is faster and might help in some case to work around problems.
c1422e5b 3088 Patch by khendricks@ivey.uwo.ca [libc/1382].
c813f986 3089
0f5219d4
UD
30901999-10-08 Andreas Schwab <schwab@suse.de>
3091
3092 * sysdeps/pthread/Subdirs: New file.
3093 * Implies: Removed.
3094
9640bbe1
UD
30951999-10-07 Ulrich Drepper <drepper@cygnus.com>
3096
3097 * Implies: New file.
3098 * internals.h (struct _pthread_descr_struct): Add p_startfct.
3099 * manager.c (pthread_handle_create): Initialize p_startfct.
3100 * pthread.c: Define __linuxthread_pthread_sizeof_descr variable.
3101
079c00e6
UD
31021999-09-25 Ulrich Drepper <drepper@cygnus.com>
3103
d790bc34
UD
3104 * manager.c (__linuxthreads_pthread_threads_max): New variable.
3105 * specific.c (__linuxthreads_pthread_keys_max): New variable.
6e42b0f1 3106 (__linuxthreads_pthread_key_2ndlevel_size): New variable.
d790bc34 3107
079c00e6
UD
3108 * condvar.c (pthread_cond_timedwait_relative): Never return with
3109 EINTR. Patch by Andreas Schwab.
3110
b5c69d99
UD
31111999-09-19 Ulrich Drepper <drepper@cygnus.com>
3112
3113 * signals.c (sigaction): Correct last patch. Don't select
3114 pthread_sighandler_rt based on the signal number but instead of
3115 the SA_SIGINFO flag.
3116
d790bc34
UD
31171999-09-23 Ulrich Drepper <drepper@cygnus.com>
3118
3119 * specific.c: Move definitions of struct pthread_key_struct and
3120 destr_function to ...
3121 * internals.h: ...here.
3122
9cf44e65
UD
31231999-09-18 Ulrich Drepper <drepper@cygnus.com>
3124
3125 * pthread.c (pthread_handle_sigrestart_rt): New function. Use
3126 this instead of pthread_handle_sigrestart if the signal is an RT
3127 signal.
3128
3129 * signals.c: Handle passing through of sighandler arguments also
3130 for real-time signals.
3131
4fe53b3a
UD
31321999-09-03 Andreas Schwab <schwab@suse.de>
3133
3134 * ptfork.c (__fork): Renamed from fork and use __libc_fork. Add
3135 fork as weak alias.
3136 (__vfork): New function, alias vfork.
3137 * Versions: Export __fork, vfork, and __vfork in libpthread.
3138
1d0b89a4
UD
31391999-08-23 Andreas Schwab <schwab@suse.de>
3140
3141 * signals.c (pthread_sighandler): Add SIGCONTEXT_EXTRA_ARGS to
3142 call to signal handler.
3143
6570e194
UD
31441999-08-20 Ulrich Drepper <drepper@cygnus.com>
3145
3146 * pthread.c (__pthread_reset_main_thread): Undo last change.
3147 (__pthread_kill_other_threads_np): Reset signal handlers for the
3148 signals we used in the thread implementation here.
3149
70aea399
UD
31501999-08-19 Ulrich Drepper <drepper@cygnus.com>
3151
2b638910 3152 * pthread.c (__pthread_reset_main_thread): Reset signal handlers
68ea6c18 3153 for the signals we used in the thread implementation [PR libc/1234].
2b638910 3154
264ec183
UD
3155 * Versions: Export __pthread_kill_other_threads_np from libpthread
3156 for GLIBC_2.1.2.
3157
70aea399
UD
3158 * signals.c: Pass sigcontext through wrapper to the user function.
3159
ff5fad16
UD
31601999-08-01 Ulrich Drepper <drepper@cygnus.com>
3161
3162 * Versions [ld.so] (GLIBC_2.0): Export __libc_internal_tsd_get and
3163 __libc_internal_tsd_set.
3164
6b798621
UD
31651999-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
3166
3167 * manager.c: Remove inclusion of <linux/tasks.h> since it's not
3168 needed anymore.
3169
76a16b8f
UD
31701999-07-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
3171
4bf307e3 3172 * internals.h: Align _pthread_descr_struct to 32 bytes.
76a16b8f
UD
3173 Reported by Tim Hockin <thockin@cobaltnet.com>, close PR
3174 libc/1206.
3175
5ef2d37b
UD
31761999-07-09 Ulrich Drepper <drepper@cygnus.com>
3177
3178 * oldsemaphore.c (sem_compare_and_swap): Fix use of compare and
3179 swap function.
3180
c2fa5b5a
UD
31811999-07-09 Cristian Gafton <gafton@redhat.com>
3182
3183 * Makefile (libpthread-routines): Add oldsemaphore routine.
ae3c1571
UD
3184 * Versions: Add sem_destroy, sem_getvalue, sem_init, sem_post,
3185 sem_trywait, and sem_wait to GLIBC_2.1.
c2fa5b5a
UD
3186 * oldsemaphore.c: New file.
3187 * semaphore.c: Add default_symbol_versions for the changed functions.
3188 (__new_sem_init): Rename from sem_init.
3189 (__new_sem_post): Rename from sem_post.
3190 (__new_sem_wait): Rename from sem_wait.
3191 (__new_sem_trywait): Rename from sem_trywait.
3192 (__new_sem_getvalue): Rename from sem_getvalue.
3193 (__new_sem_destroy): Rename from sem_destroy.
3194
6a1db4ff
UD
31951999-06-23 Robey Pointer <robey@netscape.com>
3196
3197 * internals.h: Added p_nextlock entry to separate queueing for a
3198 lock from queueing for a CV (sometimes a thread queues on a lock
3199 to serialize removing itself from a CV queue).
3200 * pthread.c: Added p_nextlock to initializers.
3201 * spinlock.c: Changed to use p_nextlock instead of p_nextwaiting.
3202
019e7a64
UD
32031999-07-09 Ulrich Drepper <drepper@cygnus.com>
3204
3205 * manager.c (pthread_handle_create): Free mmap region after stack
3206 if clone failed. Patch by Kaz Kylheku <kaz@ashi.FootPrints.net>.
3207
33d1a2c5
UD
32081999-05-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
3209
3210 * man/pthread_cond_init.man: Correct example.
3211 Reported by Tomas Berndtsson <tomas@nocrew.org>.
3212
3213 * linuxthreads.texi (Condition Variables): Likewise.
3214
407d26b7
UD
32151999-05-18 Jakub Jelinek <jj@ultra.linux.cz>
3216
3217 * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): Use
3218 casx not cas, also successful casx returns the old value in rd
3219 and not the new value.
3220
431c33c0
UD
32211999-05-16 Xavier Leroy <Xavier.Leroy@inria.fr>
3222
3223 * manager.c: If pthread_create() is given a NULL attribute
3224 and the thread manager runs with a realtime policy, set the
3225 scheduling policy of the newly created thread back to SCHED_OTHER.
3226 * manager.c: If the PTHREAD_INHERIT_SCHED attribute is given,
3227 initialize the schedpolicy field of new_thread->p_start_args
3228 to that of the calling thread.
3229
2c68584c
UD
32301999-04-29 Ulrich Drepper <drepper@cygnus.com>
3231
3232 * sysdeps/sparc/sparc64/pt-machine.h (__compare_and_swap): cas
3233 instruction does not allow memory element to use offset.
3234
390500b1
UD
32351999-04-28 Ulrich Drepper <drepper@cygnus.com>
3236
3237 * manager.c (pthread_allocate_stack): Optimize initialization of new
3238 thread descriptor.
3239
89afc233
UD
3240 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_define_initialized):
3241 Don't use initializer since it is all zeroes.
3242 (__libc_once_define): Likewise.
3243
1e76ce9c
UD
32441999-04-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
3245
3246 * sysdeps/arm/Implies: Removed since cmpxchg/no-cmpxchg
3247 doesn't exist anymore.
3248 * sysdeps/i386/Implies: Likewise.
3249 * sysdeps/m68k/Implies: Likewise.
3250 * sysdeps/mips/Implies: Likewise.
3251 * sysdeps/powerpc/Implies: Likewise.
3252 * sysdeps/sparc/sparc32/Implies: Likewise.
3253 * sysdeps/sparc/sparc64/Implies: Likewise.
3254
46a4682d
UD
32551999-04-15 Ulrich Drepper <drepper@cygnus.com>
3256
3257 * sysdeps/alpha/bits/semaphore.h: Removed.
3258 * sysdeps/powerpc/bits/semaphore.h: Removed.
3259 * sysdeps/pthread/cmpxchg/bits/semaphore.h: Removed.
3260 * sysdeps/pthread/no-cmpxchg/bits/semaphore.h: Removed.
3261 * Makefile (headers): Remove bits/semaphore.h.
3262
3263 * semaphore.h: Define _pthread_descr if necessary.
3264 Don't include limits.h. Define SEM_VALUE_MAX directly.
3265 Define SEM_FAILED.
3266 (sem_t): Protect element names with leading __.
3267 Add declarations for sem_close, sem_open, and sem_unlink.
3268 * semaphore.c: Adjust all functions for new element names.
3269 Define sem_close, sem_open, and sem_unlink.
3270 * Versions (libthread): Add sem_close, sem_open, and sem_unlink for
3271 GLIBC_2.1.1.
3272 * sysdeps/pthread/bits/pthreadtypes.h: Define _pthread_descr only if
3273 necessary.
3274
ea48e2c4
UD
32751999-03-16 H.J. Lu <hjl@gnu.org>
3276
3277 * specific.c (pthread_key_delete): Check th->p_terminated to see
3278 if the thread is running.
3279
670af0d9
UD
3280 * Versions (__libc_internal_tsd_get, __libc_internal_tsd_set):
3281 Added to GLIBC_2.0 for libc.so.
3282
0543cd26
UD
32831999-02-12 H.J. Lu <hjl@gnu.org>
3284
3285 * Versions (__libc_current_sigrtmin, __libc_current_sigrtmax,
3286 __libc_allocate_rtsig): Added to GLIBC_2.1.
3287
3288 * internals.h (DEFAULT_SIG_RESTART): Removed.
3289 (DEFAULT_SIG_CANCEL): Removed.
3290
3291 * pthread.c (init_rtsigs, __libc_current_sigrtmin,
3292 __libc_current_sigrtmax, __libc_allocate_rtsig): New functions.
3293 (__pthread_sig_restart, __pthread_sig_cancel,
3294 __pthread_sig_debug): Initialized.
3295 (pthread_initialize): Call init_rtsigs () to initialize
3296 real-time signals.
3297
f5492334
UD
32981999-02-03 H.J. Lu <hjl@gnu.org>
3299
3300 * manager.c (__pthread_manager): Do block __pthread_sig_debug.
3301 Don't restart the thread which sent REQ_DEBUG.
3302 (pthread_start_thread): Check if __pthread_sig_debug > 0
3303 before debugging.
3304
3305 * pthread.c (__pthread_initialize_manager): Suspend ourself
3306 after sending __pthread_sig_debug to gdb instead of
3307 __pthread_sig_cancel.
3308
8f0302ee
UD
33091999-01-24 H.J. Lu <hjl@gnu.org>
3310
3311 * manager.c (__pthread_manager): Delete __pthread_sig_debug
3312 from mask if __pthread_sig_debug > 0.
3313 (pthread_handle_create): Increment __pthread_handles_num.
3314
3315 * manager.c (pthread_handle_create): Don't pass CLONE_PTRACE to clone.
3316 * pthread.c (__pthread_initialize_manager): Likewise.
3317
3318 * pthread.c (pthread_initialize): Use __libc_allocate_rtsig (1)
3319 instead of __libc_allocate_rtsig (2).
3320 (__pthread_initialize_manager): Send __pthread_sig_debug to gdb
3321 instead of __pthread_sig_cancel.
3322 (pthread_handle_sigdebug): Fix comments.
3323
82df2969
UD
33241999-01-21 Ulrich Drepper <drepper@cygnus.com>
3325
3326 * manager.c (pthread_allocate_stack): Set
3327 __pthread_nonstandard_stacks if user-specified stack is used.
3328
482eec0d
UD
33291999-01-16 Ulrich Drepper <drepper@cygnus.com>
3330
3331 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Add _LFS_ASYNCHRONOUS_IO,
3332 _LFS_LARGEFILE, _LFS64_LARGEFILE, and _LFS64_STDIO from Unix98.
3333
b92ad8d6
UD
33341999-01-07 Xavier Leroy <Xavier.Leroy@inria.fr>
3335
3336 * pthread.c: Use a third signal __pthread_sig_debug distinct
3337 from __pthread_sig_cancel to notify gdb when a thread is
3338 created
3339 * manager.c: Likewise.
3340 * internals.h: Likewise.
3341 * signals.c: The implementation of sigwait(s) assumed that
3342 all signals in s have signal handlers already attached.
3343 This is not required by the standard, so make it work
3344 also if some of the signals have no handlers.
3345
34992338
UD
33461999-01-05 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
3347
3348 * linuxthreads.texi: Remove pointers from first @node. Move old
3349 @node spec inside comment.
3350
118bad87
UD
33511998-12-31 Ulrich Drepper <drepper@cygnus.com>
3352
3353 * sysdeps/pthread/bits/stdio-lock.h: Define _IO_lock_lock and
3354 _IO_lock_unlock.
3355
c046e7a5
UD
33561998-12-29 Ulrich Drepper <drepper@cygnus.com>
3357
3358 * semaphore.c (sem_trywait): Don't forget to unlock the semaphore
3359 lock. Patch by Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>.
3360
361d49e6
UD
33611998-12-21 Ulrich Drepper <drepper@cygnus.com>
3362
3363 * manager.c: Threads now send __pthread_sig_cancel on termination.
3364 Change clone call and signal masks.
3365 * thread.c (pthread_handle_sigrestart): Remove special code for
3366 manager.
3367 (pthread_handle_sigcancel): In manager thread call
3368 __pthread_manager_sighandler.
3369 * sysdeps/i386/pt-machine.h (__compare_and_swap): Add memory clobber.
3370 * sysdeps/i386/i686/pt-machine.h: Likewise.
3371 Patches by Xavier Leroy.
3372
4260bc74
UD
33731998-12-14 Ulrich Drepper <drepper@cygnus.com>
3374
361d49e6 3375 * spinlock.c (__pthread_unlock): Don't crash if called for an
fbaf6e72
UD
3376 untaken mutex. Reported by Ruslan V. Brushkoff <rus@Snif.Te.Net.UA>.
3377
4260bc74
UD
3378 * Examples/ex6.c: Unbuffer stdout and reduce sleep time to reduce
3379 overall runtime.
3380
e3743e2f
UD
33811998-12-13 Ulrich Drepper <drepper@cygnus.com>
3382
3383 * Examples/ex3.c: Wait until all threads are started before
3384 searching for the number to avoid race condition on very fast
3385 systems.
3386
8632b240
UD
33871998-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
3388
3389 * sysdeps/pthread/pthread.h: Remove __pthread_setcanceltype
2eda5d9b 3390 declaration since it's not needed.
8632b240
UD
3391
3392 * sysdeps/pthread/pthread.h: Move internal functions to ...
3393 * internals.h: ...here.
3394
a6ff34d7
UD
33951998-12-02 H.J. Lu <hjl@gnu.org>
3396
3397 * pthread.c (__pthread_sig_restart): Initiliaze to 0 if
3398 SIGRTMIN is defined.
3399 (__pthread_sig_cancel): Likewise.
3400
628a0aa1
UD
34011998-12-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
3402
3403 * wrapsyscall.c: Include <sys/mman.h> for msync,
3404 <stdlib.h> for system and <termios.h> for tcdrain prototype.
3405 Correct msync declaration.
3406
348ed515
UD
34071998-11-29 Roland McGrath <roland@baalperazim.frob.com>
3408
3409 * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_define, __libc_tsd_get,
3410 __libc_tsd_set): New macros for new interface.
3411 * no-tsd.c: New file, provide uninitialized defns of
3412 __libc_internal_tsd_get and __libc_internal_tsd_set.
3413 * Makefile (routines): Add no-tsd.
3414
34151998-10-12 Roland McGrath <roland@baalperazim.frob.com>
3416
3417 * internals.h: Include <bits/libc-tsd.h>, not <bits/libc-lock.h>.
3418 * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
3419 __libc_internal_tsd_set): Move decls to ...
3420 * sysdeps/pthread/bits/libc-tsd.h: New file for __libc_internal_tsd_*
3421 declarations.
3422
3423 * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
3424 __libc_internal_tsd_set): Make these pointers to functions, not
3425 functions; remove #pragma weak decls for them.
3426 * specific.c (__libc_internal_tsd_get, __libc_internal_tsd_set):
3427 Define static functions and initialized pointers to them.
3428
97dac76c
UD
34291998-11-18 Ulrich Drepper <drepper@cygnus.com>
3430
3431 * Makefile (CFLAGS-mutex.c): Define as -D__NO_WEAK_PTHREAD_ALIASES.
3432 (CFLAGS-specific.c): Likewise.
3433 (CFLAGS-pthread.c): Likewise.
3434 (CFLAGS-ptfork.c): Likewise.
3435 (CFLAGS-cancel.c): Likewise.
3436 * sysdeps/pthread/bits/libc-lock.h: Don't mark __pthread_* functions
3437 as weak references if __NO_WEAK_PTHREAD_ALIASES is defined.
3438
3439 * mutex.c (pthread_mutex_init): Define as strong symbol.
3440 (pthread_mutex_destroy): Likewise.
3441 (pthread_mutex_trylock): Likewise.
3442 (pthread_mutex_lock): Likewise.
3443 (pthread_mutex_unlock): Likewise.
3444 (pthread_mutexattr_init): Likewise.
3445 (pthread_mutexattr_destroy): Likewise.
3446 (pthread_once): Likewise.
3447 * ptfork.c (pthread_atfork): Likewise.
3448 * specific.c (pthread_key_create): Likewise.
3449 (pthread_setspecific): Likewise.
3450 (pthread_getspecific): Likewise.
3451
8b7fb588
UD
34521998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
3453
3454 * linuxthreads.texi: Fix punctuation after xref.
3455
d2537a47
UD
34561998-11-10 H.J. Lu <hjl@gnu.org>
3457
3458 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine NR_OPEN
3459 if it is defined in <linux/limits.h>.
3460
d5cabaa4
UD
34611998-10-29 14:28 Ulrich Drepper <drepper@cygnus.com>
3462
3463 * spinlock.h (__pthread_trylock): Define inline.
3464 (__pthread_lock): Add extra parameter to declaration. Declare
3465 using internal_function.
3466 (__pthread_unlock): Declare using internal_function.
3467 * spinlock.c (__pthread_lock): Add new parameter. Use it instead
3468 of local variable self. Avoid recomputing self. Define using
3469 internal_function.
3470 (__pthread_trylock): Remove.
3471 (__pthread_unlock): Define using internal_function.
3472 * cancel.c: Adjust for __pthread_lock interface change. Use already
3473 computed self value is possible.
3474 * condvar.c: Likewise.
3475 * join.c: Likewise.
3476 * manager.c: Likewise.
3477 * mutex.c: Likewise.
3478 * pthread.c: Likewise.
3479 * rwlock.c: Likewise.
3480 * semaphore.c: Likewise.
3481 * signals.c: Likewise.
3482
c70ca1fa
UD
34831998-10-27 13:46 Ulrich Drepper <drepper@cygnus.com>
3484
3485 * sysdeps/pthread/pthread.h (struct _pthread_cleanup_buffer): Prepend
3486 __ to field names of the struct.
3487 * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_fastlock):
3488 Likewise.
3489 (pthread_attr_t): Likewise.
3490 (pthread_cond_t): Likewise.
3491 (pthread_condattr_t): Likewise.
3492 (pthread_mutex_t): Likewise.
3493 (pthread_mutexattr_t): Likewise.
3494 (pthread_rwlock_t): Likewise.
3495 (pthread_rwlockattr_t): Likewise.
3496 * attr.c: Adjust for pthread.h and pthreadtypes.h change.
3497 * cancel.c: Likewise.
3498 * condvar.c: Likewise.
3499 * manager.c: Likewise.
3500 * mutex.c: Likewise.
3501 * pthread.c: Likewise.
3502 * ptlongjmp.c: Likewise.
3503 * rwlock.c: Likewise.
3504 * spinlock.c: Likewise.
3505
a5d1d726
UD
35061998-10-09 Ulrich Drepper <drepper@cygnus.com>
3507
7ccc548b
UD
3508 * sysdeps/i386/pt-machine.h (get_eflags, set_eflags): Mark these
3509 also with PT_EI.
3510
a5d1d726
UD
3511 * sysdeps/i386/i686/pt-machine.h: Remove unused inline
3512 definitions.
3513
9a29bc37
UD
3514 * Makefile (libpthread-routines): Add pt-machine.
3515 * pt-machine.c: New file.
3516 * sysdeps/alpha/pt-machine.h: Define PT_EI as extern inline is not
3517 yet defined. Use PT_EI in extern inline definitions.
3518 * sysdeps/arm/pt-machine.h: Likewise.
3519 * sysdeps/i386/pt-machine.h: Likewise.
3520 * sysdeps/i386/i686/pt-machine.h: Likewise.
3521 * sysdeps/m68k/pt-machine.h: Likewise.
3522 * sysdeps/mips/pt-machine.h: Likewise.
3523 * sysdeps/powerpc/pt-machine.h: Likewise.
3524 * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
3525 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
3526
c10bb795
UD
35271998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
3528
3529 * semaphore.h: Include <sys/types.h> so that _pthread_descr
3530 is declared.
3531
35321998-09-15 David S. Miller <davem@pierdol.cobaltmicro.com>
3533
3534 * sysdeps/sparc/sparc32/pt-machine.h (INIT_THREAD_SELF): Add nr
3535 argument.
3536 * sysdeps/sparc/sparc64/pt-machine.h (INIT_THREAD_SELF): Likewise.
3537
35381998-09-12 14:24 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
3539
d364e525
UD
3540 * sysdeps/unix/sysv/linux/bits/sigthread.h: Add multiple inclusion
3541 guard.
c10bb795 3542
5e0889da
UD
35431998-09-02 11:08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3544
3545 * signals.c (sigaction): Check that sig is less than NSIG to avoid
3546 array index overflow.
3547
6796bc80
UD
35481998-09-06 10:56 Ulrich Drepper <drepper@cygnus.com>
3549
3550 * sysdeps/pthread/semaphore.h: New file.
3551
be935610
UD
35521998-09-06 09:08 Ulrich Drepper <drepper@cygnus.com>
3553
3554 * sysdeps/pthread/bits/libc-lock.h (enum __libc_tsd_key_t): Add
3555 _LIBC_TSD_KEY_DL_ERROR.
3556
bfce746a
UD
35571998-08-31 Ulrich Drepper <drepper@cygnus.com>
3558
7afab53d 3559 * sysdeps/i386/i686/pt-machine.h (testandset): Add memory clobber.
6a805a0b 3560 * sysdeps/i386/pt-machine.h: Likewise.
bfce746a
UD
3561 Suggested by Roland McGrath.
3562
75311719
UD
35631998-08-28 13:58 Ulrich Drepper <drepper@cygnus.com>
3564
3565 * internals.h: Also define THREAD_GETMEM_NC and THREAD_SETMEM_NC to
3566 access thread data with non-constant offsets.
3567 * specific.c: Use THREAD_GETMEM_NC and THREAD_SETMEM_NC where
3568 necessary.
3569
3570 * sysdeps/i386/useldt.h: Fix typo. Add THREAD_GETMEM_NC and
3571 THREAD_SETMEM_NC definitions.
3572
3573 * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM_NC and
3574 THREAD_SETMEM_NC.
3575 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
3576
00a2f9aa
UD
35771998-08-26 15:46 Ulrich Drepper <drepper@cygnus.com>
3578
3579 * internals.h: Define THREAD_GETMEM and THREAD_SETMEM to default if
3580 not already defined.
3581 (struct _pthread_descr_struct): Add p_self and p_nr field.
3582 * manager.c (__pthread_handles): Define second element to point
3583 to manager thread.
3584 (__pthread_handles_num): Initialize to 2.
3585 (__pthread_manager): Use INIT_THREAD_SELF with two arguments.
3586 (pthread_start_thread): Likewise.
3587 (pthread_handle_create): Start search for free slot at entry 2.
3588 Initialize new fields p_self and p_nr.
3589 Call __clone with CLONE_PTRACE if available.
3590 (pthread_free): Call FREE_THREAD_SELF if available.
3591 * pthread.c (__pthread_initial_thread): Initialize new fields.
3592 (__pthread_manager_thread): Likewise.
3593 (__pthread_initialize_manager): Call __clone with CLONE_PTRACE.
3594
3595 * cancel.c: Use THREAD_GETMEM and THREAD_SETMEM to access the
3596 elements of the thread descriptor.
3597 * condvar.c: Likewise.
3598 * errno.c: Likewise.
3599 * join.c: Likewise.
3600 * manager.c: Likewise.
3601 * pthread.c: Likewise.
3602 * ptlongjmp.c: Likewise.
3603 * semaphore.c: Likewise.
3604 * signals.c: Likewise.
3605 * specific.c: Likewise.
3606 * spinlock.c: Likewise.
3607
3608 * sysdeps/alpha/pt-machine.h (INIT_THREAD_SELF): Add extra parameter.
3609
3610 * sysdeps/i386/useldt.h: New file.
3611 * sysdeps/i386/i686/pt-machine.h: Show how to use this file.
3612
3613 * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM and
3614 THREAD_SETMEM using __thread_self.
3615 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
3616
ed1ac6a2
UD
36171998-08-24 Geoff Keating <geoffk@ozemail.com.au>
3618
3619 * spinlock.c (__pthread_lock): Reset p_nextwaiting to NULL if it
3620 turned out that we didn't need to queue after all.
3621
36221998-08-22 Geoff Keating <geoffk@ozemail.com.au>
3623
3624 * sysdeps/powerpc/pt-machine.h: Remove testandset, it's not used
3625 and wastes space; correct types.
3626
cf0fd016
UD
36271998-08-08 11:18 H.J. Lu <hjl@gnu.org>
3628
3629 * signals.c (sigaction): Handle NULL argument.
3630
d358336f
UD
36311998-08-04 Ulrich Drepper <drepper@cygnus.com>
3632
3633 * sysdeps/unix/sysv/linux/bits/sigthread.h: Use __sigset_t instead
3634 of sigset_t.
3635
7cabd57c
UD
36361998-08-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3637
3638 * Makefile (linuxthreads-version): Extract correct number from
3639 Banner.
3640
ddbf7fef
UD
36411998-07-29 Xavier Leroy <Xavier.Leroy@inria.fr>
3642
3643 * Banner: Bump version number to 0.8
3644 * FAQ.html: Many updates, in particular w.r.t. debugging.
3645 * manager.c: Support for non-default stacksize for
3646 LinuxThreads-allocated stacks;
3647 don't use guard pages for stacks with default size, rely on
3648 rlimit(RLIMIT_STACK) instead (it's cheaper).
3649 * attr.c: Likewise.
3650 * cancel.c: Use __pthread_sig_cancel and __pthread_sig_restart
3651 everywhere instead of PTHREAD_SIG_CANCEL and PTHREAD_SIG_RESTART.
3652 * condvar.c: Likewise.
3653 * internals.h: Likewise.
3654 * restart.h: Likewise.
3655 * signals.c: Likewise.
3656 * pthread.c: Likewise; set rlimit(RLIMIT_STACK) as we need it.
3657
6c202c68
UD
36581998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3659
3660 * weaks.c: Define pthread_mutexattr_[sg]ettype instead of
3661 __pthread_mutexattr_[sg]ettype. Add more weak aliases.
3662 * Versions: Put __pthread_mutexattr_settype under version
3663 GLIBC_2.0. Don't export __pthread_mutexattr_setkind_np and
3664 __pthread_mutexattr_gettype.
3665
36661998-07-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3667
3668 * sysdeps/pthread/bits/libc-lock.h: Make
3669 __pthread_mutexattr_settype weak. Don't make
3670 __pthread_mutexattr_setkind_np weak.
3671
50304ef0
UD
36721998-07-16 10:52 Ulrich Drepper <drepper@cygnus.com>
3673
3674 * manager.c (pthread_handle_create): Check whether sched_setscheduler
3675 call can succeed here.
3676
3677 * mutex.c: Define __pthread_mutexattr_settype and make
3678 __pthread_mutexattr_setkind_np an alias.
3679 Likewise for __pthread_mutexattr_gettype.
3680
36811998-07-15 11:00 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
3682
3683 * attr.c (pthread_attr_setschedpolicy): Don't check whether caller
3684 is root.
3685
c764b9a7
UD
36861998-07-14 19:38 Ulrich Drepper <drepper@cygnus.com>
3687
3688 * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_end.
3689
ceb27555
UD
36901998-07-11 Andreas Jaeger <aj@arthur.rhein-neckar.de>
3691
3692 * Examples/ex6.c: Include <unistd.h> for usleep.
3693
b1209f90
UD
36941998-06-13 11:04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3695
3696 * Examples/ex4.c (main): Use exit, not pthread_exit.
3697
6077fe6e
UD
36981998-07-09 13:39 Ulrich Drepper <drepper@cygnus.com>
3699
3700 * Versions: Add __pthread_mutexattr_gettype and
3701 __pthread_mutexattr_settype.
3702 * lockfile.c: Use __pthread_mutexattr_settype instead of
3703 __pthread_mutexattr_setkind_np.
3704 * mutex.c: Define __pthread_mutexattr_gettype and
3705 __pthread_mutexattr_settype.
3706 * weak.c: Likewise.
e918a7fe
UD
3707 * sysdeps/pthread/pthread.h: Declare __pthread_mutexattr_gettype and
3708 __pthread_mutexattr_settype.
3709 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init_recursive):
3710 Use __pthread_mutexattr_settype.
6077fe6e 3711
4bae5567
UD
37121998-07-08 22:26 Ulrich Drepper <drepper@cygnus.com>
3713
3714 * Versions: Add pthread_mutexattr_gettype, pthread_mutexattr_settype.
3715 * mutex.c: Define weak alias pthread_mutexattr_gettype and
3716 pthread_mutexattr_settype.
3717 * sysdeps/pthread/pthread.h: Declare these functions.
3718 Move pthread_sigmask and pthread_kill declaration in separate header.
3719 * sysdeps/unix/sysv/linux/bits/sigthread.h: New file.
3720
0302fece
UD
37211998-07-07 15:20 Ulrich Drepper <drepper@cygnus.com>
3722
3723 * Makefile: Add rules to compile and run tests.
3724 * Examples/ex1.c: Little changes to fix warnings.
3725 * Examples/ex2.c: Likewise.
3726 * Examples/ex3.c: Likewise.
3727 * Examples/ex4.c: Likewise.
3728 * Examples/ex5.c: Likewise.
3729 * Examples/ex6.c: New file.
3730
77ccaba1
UD
37311998-07-05 11:54 Ulrich Drepper <drepper@cygnus.com>
3732
6777b467 3733 * Versions: Add pthread_attr_init to GLIBC_2.1 version in libc.
77ccaba1 3734
ba9234d9
UD
37351998-07-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
3736
3737 * attr.c: Include <string.h>.
3738
d64fae6a
UD
37391998-06-30 11:47 Ulrich Drepper <drepper@cygnus.com>
3740
3741 * attr.c: Include errno.h. Use memcpy to copy sched_param.
3742 * internals.h: Include limits.h.
3743 * manager.c: Use memcpy to copy sched_param.
3744 * ptfork.c: Include errno.h.
3745 * pthread.c: Likewise.
3746 * semaphore.c: Likewise.
3747 * specific.c: Likewise.
3748 * spinlock.h: Likewise.
3749 * sysdeps/pthread/pthread.h: Include only allowed headers. Move
3750 type definition to ...
3751 * sysdeps/pthread/bits/pthreadtypes.h: ...here. New file.
3752
fdacb17d
UD
37531998-06-29 12:34 Ulrich Drepper <drepper@cygnus.com>
3754
3755 * sysdeps/pthread/pthread.h: Use __PMT not __P for function pointers.
3756
3757 * sysdeps/pthread/pthread.h: Define various PTHREAD_* symbols also
3758 as macros as demanded in POSIX.1, Annex C.
3759
37601998-06-29 12:29 Ulrich Drepper <drepper@cygnus.com>
3761
3762 * internals.h (struct pthread_request): For free use pthread_t
3763 instead of pthread_descr.
3764 * join.c (pthread_join): Pass thread_id, not th to manager.
3765 (pthread_detach): Likewise.
3766 * manager.c (__pthread_manager): Except thread ID in FREE_REQ case.
3767 (pthread_exited): Remove detached queue code.
3768 (pthread_handle_free): Expect thread ID parameter and use it to
3769 validate the thread decsriptor. Don't use detached queue.
3770 Patches by Xavier Leroy.
3771
37721998-06-27 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3773
3774 * libpthread.map: Export accept, longjmp, sigaction, siglongjmp,
3775 _IO_flockfile, _IO_ftrylockfile, _IO_funlockfile,
3776 __pthread_atfork, __pthread_key_create, __pthread_once.
3777 * internals.h: Doc fix.
3778 * pthread.c (__pthread_initialize): Define again.
3779
e138a800
UD
37801998-06-26 Ulrich Drepper <drepper@cygnus.com>
3781
026d5011
UD
3782 * manager.c (pthread_exited): If thread is not detached put it on
3783 special list.
3784 (pthread_handle_free): If thread is not on list with living threads
3785 search on list with detached threads.
3786
b195f6bc
UD
3787 * sysdeps/pthread/pthread.h (PTHREAD_RWLOCK_INITIALIZER): Correct
3788 for new definition of pthread_rwlock_t.
3789
e138a800
UD
3790 * spinlock.c: Correct test whether to compile
3791 __pthread_compare_and_swap or not.
3792
3387a425
UD
37931998-06-25 19:27 Ulrich Drepper <drepper@cygnus.com>
3794
3795 * attr.c: Finish user stack support. Change locking code to be safe
3796 in situations with different priorities.
3797 * cancel.c: Likewise.
3798 * condvar.c: Likewise.
3799 * internals.h: Likewise.
3800 * join.c: Likewise.
3801 * manager.c: Likewise.
3802 * mutex.c: Likewise.
3803 * pthread.c: Likewise.
3804 * ptlongjmp.c: Likewise.
3805 * queue.h: Likewise.
3806 * rwlock.c: Likewise.
3807 * semaphore.c: Likewise.
3808 * semaphore.h: Likewise.
3809 * signals.c: Likewise.
3810 * spinlock.c: Likewise.
3811 * spinlock.h: Likewise.
75c3a84f 3812 * sysdeps/pthread/pthread.h: Likewise.
df4099e8 3813 Patches by Xavier Leroy.
3387a425 3814
0ca7e46e 3815 * sysdeps/i386/i686/pt-machine.h: New file.
75c3a84f 3816
3387a425
UD
38171998-06-25 Ulrich Drepper <drepper@cygnus.com>
3818
3819 * sysdeps/pthread/pthread.h: Make [sg]et_stacksize and
3820 [sg]et_stackaddr prototypes always available.
3821
3822 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
3823 _POSIX_THREAD_ATTR_STACKSIZE and _POSIX_THREAD_ATTR_STACKADDR.
3824
d47aac39
UD
38251998-06-24 Ulrich Drepper <drepper@cygnus.com>
3826
3827 * manager.c (pthread_free): Undo patch from 980430.
3828 Reported by David Wragg <dpw@doc.ic.ac.uk>.
3829
69f234e8
UD
38301998-06-09 15:07 Ulrich Drepper <drepper@cygnus.com>
3831
3832 * manager.c: Define __pthread_manager_adjust_prio and use it to
3833 increase priority when needed.
3834 * internals.h: Add prototype for __pthread_manager_adjust_prio.
3835 * mutex.c: Optimize mutexes to wake up only one thread.
768cbca8 3836 * pthread.c: Move PID of manager for global variable in structure
69f234e8
UD
3837 element.
3838 Patches by Xavier Leroy.
3839
c0fb8a56
UD
38401998-06-07 13:47 Ulrich Drepper <drepper@cygnus.com>
3841
3842 * sysdeps/pthread/bits/libc-lock.h: Optimize cleanup handlers a bit.
3843
c6bd526f
UD
38441998-06-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
3845
3846 * attr.c: Correct typo.
3847
f9119f49
UD
38481998-05-01 Ulrich Drepper <drepper@cygnus.com>
3849
3850 * manager.c (pthread_free): Unmap guard before the stack.
3851 Patch by Matthias Urlichs.
3852
3dd2c3e2
UD
38531998-04-30 Ulrich Drepper <drepper@cygnus.com>
3854
3855 * manager.c (pthread_free): Detect already free child.
3856 Patch by Xavier Leroy, reported by Matthias Urlichs.
3857
0111b224
UD
38581998-04-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3859
3860 * Makefile (linuxthreads-version): Renamed back from
3861 libpthread-version.
3862
f12944ec
UD
38631998-04-21 Ulrich Drepper <drepper@cygnus.com>
3864
26e119f1 3865 * ptlongjmp.c: Add prototypes for __libc_siglongjmp and
f12944ec
UD
3866 __libc_longjmp.
3867
8619129f
UD
38681998-04-20 14:55 Ulrich Drepper <drepper@cygnus.com>
3869
3870 * Makefile (libpthread-routines): Add ptlongjmp and spinlock.
3871 * internals.h: Add definitions for new spinlock implementation.
3872 * ptlongjmp.c: New file.
3873 * spinlock.c: New file.
3874 * spinlock.h (acquire): Don't reschedule using __sched_yield, use
3875 new function __pthread_acquire to prevent deadlocks with thread
3876 with different priorities.
3877 Patches by Xavier Leroy <Xavier.Leroy@inria.fr>.
3878
52cda958
UD
38791998-03-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3880
3881 * manager.c (__pthread_manager): Reduce first argument to select
3882 to include just the needed file descriptor.
3883
48fc3dd2
UD
38841998-03-17 00:06 Ulrich Drepper <drepper@cygnus.com>
3885
3886 * manager.c: Fix last patch which caused core dumps.
3887
3888 * pthread.c: Correctly handle missing SIGRTMIN.
3889
f649c201
UD
38901998-03-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3891
3892 * libpthread.map: Add __libc_internal_tsd_get and
3893 __libc_internal_tsd_set. Add missing cancelable functions. Export
3894 libc internal versions of the cancelable functions.
3895
14c44e2e
UD
38961998-03-13 16:51 Ulrich Drepper <drepper@cygnus.com>
3897
3898 * weaks.c: Define pthread_attr_init as GLIBC_2.0 and GLIBC_2.1.
3899
5d409851
UD
39001998-03-13 00:46 Ulrich Drepper <drepper@cygnus.com>
3901
3902 * attr.c: Implement pthread_attr_[gs]etguardsize,
3903 pthread_attr_[gs]setstackaddr, pthread_attr_[gs]etstacksize.
3904 Change pthread_attr_init to have two interfaces.
3905 * internals.h (struct _pthread_descr_struct): Add new fields for
3906 above functions.
3907 * libpthread.map: Add names in GLIBC_2.1 section.
3908 * manager.c (pthread_handle_create): Implement guardsize and
3909 user stack.
3910 (pthread_free): Likewise.
3911 * pthread.c (pthread_create): Add new interface for changed
3912 pthread_attr_t.
3913 * sysdeps/pthread/pthread.h: Add prototypes for new functions.
3914 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add definition of
3915 PTHREAD_STACK_MIN.
3916
5afdca00
UD
39171998-03-11 00:42 Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
3918
5d409851
UD
3919 * manager.c: Enable resetting of the thread scheduling policy
3920 to SCHED_OTHER when the parent thread has a different one.
5afdca00
UD
3921
39221998-02-01 13:51 Ulrich Drepper <drepper@cygnus.com>
3923
3924 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
3925 _POSIX_ASYNCHRONOUS_IO.
3926
3927 * sysdeps/pthread/pthread.h: Define bits for Unix98 variants of
3928 mutexes.
3929 * mutex.c: Implement new mutex types.
3930
3931 * internals.h: Include <signal.h>.
3932
3933 * libpthread.map: Add __erno_location and __h_errno_location.
3934
3935 * errno.c: Return pointer to variable actually in use. This might
3936 not be the one in the thread structure.
3937 * internals.h (struct _pthread_descr_struct): Add new fields p_errnop
3938 and p_h_errnop.
3939 * manager.c (__pthread_manager): Set p_errnop and p_h_errnop member
3940 of manager thread structure.
3941 (pthread_handle_create): Set p_errnop and p_h_errnop members for new
3942 thread.
3943 * pthread.c: Adapt initializer for thread structures.
3944 (__pthread_initial_thread): Set p_errnop and p_h_errnop member.
3945 (__pthread_reset_main_thread): Reset p_errnop and p_h_errnop of
3946 current thread to global variables.
3947
39481998-01-31 17:27 Ulrich Drepper <drepper@cygnus.com>
3949
3950 * rwlock.c: New file.
3951 * Makefile (libpthread-routines): Add rwlock.
3952 * sysdeps/pthread/pthread.h: Define data structures and declare
3953 functions.
3954 * libpthread.map: Add new functions.
3955
39561997-12-18 13:50 Philip Blundell <pb@nexus.co.uk>
3957
3958 * sysdeps/arm/pt-machine.h: New file; add ARM support.
3959 * sysdeps/arm/Implies: likewise.
3960 * README: Document it.
3961
39621997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3963
3964 * signals.c: Remove unneeded initializer for sigwaited, saving a
3965 warning.
3966
39671997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3968
3969 * semaphore.c (sem_init): Set sem_spinlock only if available.
3970
39711997-12-04 01:48 Ulrich Drepper <drepper@cygnus.com>
3972
3973 * mutex.c: Implement PTHREAD_MUTEX_CHECKERROR.
3974 * sysdeps/pthread/pthread.h: Define PTHREAD_MUTEX_CHECKERROR.
3975
3976 * Makefile: Update from LinuxThreads 0.7.
3977 * internals.h. Likewise.
3978 * manager.c: Likewise.
3979 * mutex.c: Likewise.
3980 * pthread.c: Likewise.
3981 * signals.c: Likewise.
3982 * specific.c: Likewise.
3983 * Examples/ex3.c: Likewise.
3984
39851997-11-20 18:13 Ulrich Drepper <drepper@cygnus.com>
3986
3987 * pthread.c (__pthread_reset_main_thread): Close pipe only if still
3988 open.
3989
39901997-10-29 05:38 Ulrich Drepper <drepper@cygnus.com>
3991
3992 * wrapsyscall.c: Add socket functions which are also cancelation
3993 points.
3994
39951997-10-19 21:40 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
3996
3997 * specific.c (__libc_internal_tsd_set, __libc_internal_tsd_get):
3998 New functions for fast thread specific data within libc.
3999
4000 * internals.h: Add new array p_libc_specific to struct
4001 _pthread_descr_struct.
4002
4003 * sysdeps/pthread/bits/libc-lock.h: Declare new functions.
4004
40051997-10-13 05:39 Ulrich Drepper <drepper@cygnus.com>
4006
4007 * semaphore.h: Add __BEGIN_DECLS/__END_DECLS.
4008 Reported by Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
4009
40101997-08-29 03:05 Ulrich Drepper <drepper@cygnus.com>
4011
4012 * internals.h (struct _pthread_descr_struct): Add definitions for
4013 two-level specific key handling.
4014 * manager.c (pthread_handle_create): Initialize specific memory array.
4015 * specific.c: Implement two-level key handling.
4016 * weaks.c: Don't provide dummy key handling.
4017 * sysdeps/pthread/bits/libc-lock.h: Typedef __libc_lock_t (no #define).
4018 Add definition of __libc_key_t.
4019 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define PTHREAD_KEYS_MAX
4020 as 1024.
4021 Add definition of _POSIX_THREAD_DESTRUCTOR_ITERATIONS and
4022 PTHREAD_DESTRUCTOR_ITERATIONS.
4023
4024 * manager.c (pthread_handle_create): Compare mmap result with
4025 MAP_FAILED.
4026
4027 * ptfork.c: Rename to __pthread_atfork and make old name a weak alias.
4028 * sysdeps/pthread/bits/pthread.h: Add prototype for __pthread_atfork.
4029
40301997-08-22 19:04 Richard Henderson <rth@cygnus.com>
4031
4032 sysdeps/sparc -> sysdeps/sparc/sparc32
4033 sysdeps/sparc64 -> sysdeps/sparc/sparc64
4034
4035 * internals.h: Change definition of THREAD_SELF to be an expression,
4036 not a statement that did a return.
4037 * sysdeps/alpha/pt-machine.h (THREAD_SELF): Update accordingly.
4038 * sysdeps/sparc/sparc32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
4039 Follow Solaris and use a "system reserved" register (%g6) to hold
4040 the thread descriptor.
4041 * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
4042
40431997-08-03 00:09 Ulrich Drepper <drepper@cygnus.com>
4044
4045 * mutex.c: Correct pthread_once. Patch by Xavier Leroy.
4046 * sysdeps/pthread/pthread.h: Add prototype for __pthread_once.
4047 * sysdeps/pthread/bits/pthread.h: Add macros for __libc_once.
4048
4049 * semaphore.c: Include spinlock.h only when needed.
4050
4051 * specific.c (__pthread_setsepcific, __pthread_getspecific): Reject
4052 keys for entries not in use.
4053
4054 * weaks.c: Implement key handling functions for real.
4055
40561997-06-29 01:04 Richard Henderson <richard@gnu.ai.mit.edu>
4057
4058 Initial sparc64-linux support:
d364e525
UD
4059 * sysdeps/sparc64/Implies: New file.
4060 * sysdeps/sparc64/pt-machine.h: Likewise.
5afdca00
UD
4061
40621997-06-29 00:48 Ulrich Drepper <drepper@cygnus.com>
4063
4064 * semaphore.c: Include spinlock.h at correct place.
4065 Patch by HJ Lu.
4066
40671997-06-13 10:06 Richard Henderson <rth@tamu.edu>
4068
4069 The Great Bit File Move:
4070 * sysdeps/alpha/semaphorebits.h: -> .../bits/semaphore.h.
4071 * sysdeps/powerpc/semaphorebits.h: Likewise.
4072 * sysdeps/pthread/cmpxchg/semaphorebits.h: Likewise.
4073 * sysdeps/pthread/no-cmpxchg/semaphorebits.h: Likewise.
4074 * sysdeps/pthread/libc-lock.h: -> bits/
4075 * sysdeps/pthread/stdio-lock.h: Likewise.
4076 * sysdeps/unix/sysv/linux/local_lim.h: Likewise.
4077 * sysdeps/unix/sysv/linux/posix_opt.h: Likewise.
4078 * semaphore.h: Likewise.
4079 * sysdeps/pthread/pthread.h: Likewise.
4080
4081 * lockfile.c: <foo.h> -> <bits/foo.h>.
4082 * semaphore.h: Likewise.
4083
4084 * Makefile: (headers): foo.h -> bits/foo.h.
4085 * sysdeps/pthread/Makefile: Likewise.
4086
40871997-04-11 01:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
4088
4089 * semaphore.c (sem_init): Set sem_spinlock only if available.
4090
4091 * sysdeps/m68k/pt-machine.h (testandset, __compare_and_swap): Fix
4092 asm constraints.
4093
40941997-04-09 03:00 Ulrich Drepper <drepper@cygnus.com>
4095
4096 Update from LinuxThreads 0.6.
4097
4098 * attr.c (pthread_attr_getdetachstate): Use __sched_get_priority_max
4099 and __sched_get_priority_min instead of names without `__'.
4100
4101 * manager.c: Rewrite large parts to implement opaque pthread_t.
4102
4103 * cancel.c: Adapt for opaque pthread_t type.
4104 * condvar.c: Likewise.
4105 * errno.c: Likewise.
4106 * join.c: Likewise.
4107 * mutex.c: Likewise.
4108 * pthread.c: Likewise.
4109 * signals.c: Likewise.
4110 * specific.c: Likewise.
4111 * restart.h: Likewise.
4112 * queue.h: Likewise.
4113 * Examples/ex3.c: Likewise.
4114 * Examples/ex4.c: Likewise.
4115 * sysdeps/pthread/pthread.h: Likewise.
4116
4117 * pthread.c: Accumulate time for all threads in thread manager.
4118
4119 * semaphore.c: Implement fallback implementation for architectures
4120 sometimes missing compare-exchange operations.
4121
4122 * cancel.c (pthread_cancel): Validate handle argument.
4123 * join.c (pthread_join): Likewise.
4124 (pthread_detach): Likewise.
4125 * signals.c (pthread_kill): Likewise.
4126
4127 * spinlock.h (acquire): Use __sched_yield not sched_yield.
4128
4129 * queue.h (enqueue): Enqueue thread according to priority.
4130
4131 * internals.c (struct pthread_start_args): New struct for passing
4132 args to cloning function.
4133 (struct _pthread): Rename to _pthread_descr_struct and adapt for
4134 opaque pthread_t.
4135
4136 * Examples/Makefile (clean): Pass -f option to rm.
4137
4138 * sysdeps/i386/pt-machine.h: Add check for compare-exchange instruction
4139 and define TEST_FOR_COMPARE_AND_SWAP.
4140 * sysdeps/i386/i486/pt-machine.h: Removed.
4141
4142 * sysdeps/unix/sysv/linux/local_lim.h (PTHREAD_THREADS_MAX): Increase
4143 to 1024.
4144
41451997-04-04 16:38 Ulrich Drepper <drepper@cygnus.com>
4146
4147 * restart.h (suspend): Clear p_signal before suspending.
4148 (suspend_with_cancellation): Likewise.
4149 Patch by Xavier Leroy <Xavier.Leroy@inria.fr>.
4150
4151 * weaks.c: Make __pthread_key_create return 1.
4152 * sysdeps/pthread/libc-lock.h: Define __libc_key_create,
4153 __libc_getspecific, __libc_setspecific, and __libc_key_t.
4154 * sysdeps/pthread/stdio-lock.h: Don't care for implementation not
4155 using libio.
4156
41571997-03-19 15:13 Miguel de Icaza <miguel@nuclecu.unam.mx>
4158
4159 * sysdeps/sparc/pt-machine (RELEASE): Fix.
4160
41611997-03-01 07:55 Geoff Keating <geoffk@ozemail.com.au>
4162
4163 * sysdeps/powerpc/Implies: Added.
4164 * sysdeps/powerpc/pt-machine.h: Added.
4165 * sysdeps/powerpc/semaphorebits.h: Added.
4166
41671997-01-22 01:22 Ulrich Drepper <drepper@cygnus.com>
4168
d364e525 4169 * pthread.c (__pthread_initial_thread): Correct
5afdca00
UD
4170 initializer.
4171 (__pthread_manager_thread): Likewise.
4172 Reported by Andreas Jaeger.
4173
41741997-01-18 22:15 Richard Henderson <rth@tamu.edu>
4175
4176 Since sigset_t no longer fits in a register, we can't pass in the
4177 thread's initial mask so easily. Take this opportunity to simplify
4178 the clone implementation by only accepting a single void* argument.
4179
d364e525
UD
4180 * manager.c (__pthread_manager): Put thread vitals in the thread
4181 struct instead of as arguments through clone.
5afdca00 4182 (pthread_start_thread): Look for them there.
d364e525 4183 * internals.h (struct _pthread): Add p_initial_fn,
5afdca00 4184 p_initial_fn_arg, p_initial_mask. Fix __pthread_manager proto.
d364e525 4185 * pthread.c (pthread_initialize_manager): Revise clone invocation.
This page took 0.594941 seconds and 5 git commands to generate.