Update.
[platform/upstream/glibc.git] / linuxthreads / ChangeLog
1 1998-12-13  Ulrich Drepper  <drepper@cygnus.com>
2
3         * Examples/ex3.c: Wait until all threads are started before
4         searching for the number to avoid race condition on very fast
5         systems.
6
7 1998-12-08  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
8
9         * sysdeps/pthread/pthread.h: Remove __pthread_setcanceltype
10         declaration since it's not needed.
11
12         * sysdeps/pthread/pthread.h: Move internal functions to ...
13         * internals.h: ...here.
14
15 1998-12-02  H.J. Lu  <hjl@gnu.org>
16
17         * pthread.c (__pthread_sig_restart): Initiliaze to 0 if
18         SIGRTMIN is defined.
19         (__pthread_sig_cancel): Likewise.
20
21 1998-12-01  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
22
23         * wrapsyscall.c: Include <sys/mman.h> for msync,
24         <stdlib.h> for system and <termios.h> for tcdrain prototype.
25         Correct msync declaration.
26
27 1998-11-29  Roland McGrath  <roland@baalperazim.frob.com>
28
29         * sysdeps/pthread/bits/libc-tsd.h (__libc_tsd_define, __libc_tsd_get,
30         __libc_tsd_set): New macros for new interface.
31         * no-tsd.c: New file, provide uninitialized defns of
32         __libc_internal_tsd_get and __libc_internal_tsd_set.
33         * Makefile (routines): Add no-tsd.
34
35 1998-10-12  Roland McGrath  <roland@baalperazim.frob.com>
36
37         * internals.h: Include <bits/libc-tsd.h>, not <bits/libc-lock.h>.
38         * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
39         __libc_internal_tsd_set): Move decls to ...
40         * sysdeps/pthread/bits/libc-tsd.h: New file for __libc_internal_tsd_*
41         declarations.
42
43         * sysdeps/pthread/bits/libc-lock.h (__libc_internal_tsd_get,
44         __libc_internal_tsd_set): Make these pointers to functions, not
45         functions; remove #pragma weak decls for them.
46         * specific.c (__libc_internal_tsd_get, __libc_internal_tsd_set):
47         Define static functions and initialized pointers to them.
48
49 1998-11-18  Ulrich Drepper  <drepper@cygnus.com>
50
51         * Makefile (CFLAGS-mutex.c): Define as -D__NO_WEAK_PTHREAD_ALIASES.
52         (CFLAGS-specific.c): Likewise.
53         (CFLAGS-pthread.c): Likewise.
54         (CFLAGS-ptfork.c): Likewise.
55         (CFLAGS-cancel.c): Likewise.
56         * sysdeps/pthread/bits/libc-lock.h: Don't mark __pthread_* functions
57         as weak references if __NO_WEAK_PTHREAD_ALIASES is defined.
58
59         * mutex.c (pthread_mutex_init): Define as strong symbol.
60         (pthread_mutex_destroy): Likewise.
61         (pthread_mutex_trylock): Likewise.
62         (pthread_mutex_lock): Likewise.
63         (pthread_mutex_unlock): Likewise.
64         (pthread_mutexattr_init): Likewise.
65         (pthread_mutexattr_destroy): Likewise.
66         (pthread_once): Likewise.
67         * ptfork.c (pthread_atfork): Likewise.
68         * specific.c (pthread_key_create): Likewise.
69         (pthread_setspecific): Likewise.
70         (pthread_getspecific): Likewise.
71
72 1998-11-15  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
73
74         * linuxthreads.texi: Fix punctuation after xref.
75
76 1998-11-10  H.J. Lu  <hjl@gnu.org>
77
78         * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine NR_OPEN
79         if it is defined in <linux/limits.h>.
80
81 1998-10-29 14:28  Ulrich Drepper  <drepper@cygnus.com>
82
83         * spinlock.h (__pthread_trylock): Define inline.
84         (__pthread_lock): Add extra parameter to declaration.  Declare
85         using internal_function.
86         (__pthread_unlock): Declare using internal_function.
87         * spinlock.c (__pthread_lock): Add new parameter.  Use it instead
88         of local variable self.  Avoid recomputing self.  Define using
89         internal_function.
90         (__pthread_trylock): Remove.
91         (__pthread_unlock): Define using internal_function.
92         * cancel.c: Adjust for __pthread_lock interface change.  Use already
93         computed self value is possible.
94         * condvar.c: Likewise.
95         * join.c: Likewise.
96         * manager.c: Likewise.
97         * mutex.c: Likewise.
98         * pthread.c: Likewise.
99         * rwlock.c: Likewise.
100         * semaphore.c: Likewise.
101         * signals.c: Likewise.
102
103 1998-10-27 13:46  Ulrich Drepper  <drepper@cygnus.com>
104
105         * sysdeps/pthread/pthread.h (struct _pthread_cleanup_buffer): Prepend
106         __ to field names of the struct.
107         * sysdeps/pthread/bits/pthreadtypes.h (struct _pthread_fastlock):
108         Likewise.
109         (pthread_attr_t): Likewise.
110         (pthread_cond_t): Likewise.
111         (pthread_condattr_t): Likewise.
112         (pthread_mutex_t): Likewise.
113         (pthread_mutexattr_t): Likewise.
114         (pthread_rwlock_t): Likewise.
115         (pthread_rwlockattr_t): Likewise.
116         * attr.c: Adjust for pthread.h and pthreadtypes.h change.
117         * cancel.c: Likewise.
118         * condvar.c: Likewise.
119         * manager.c: Likewise.
120         * mutex.c: Likewise.
121         * pthread.c: Likewise.
122         * ptlongjmp.c: Likewise.
123         * rwlock.c: Likewise.
124         * spinlock.c: Likewise.
125
126 1998-10-09  Ulrich Drepper  <drepper@cygnus.com>
127
128         * sysdeps/i386/pt-machine.h (get_eflags, set_eflags): Mark these
129         also with PT_EI.
130
131         * sysdeps/i386/i686/pt-machine.h: Remove unused inline
132         definitions.
133
134         * Makefile (libpthread-routines): Add pt-machine.
135         * pt-machine.c: New file.
136         * sysdeps/alpha/pt-machine.h: Define PT_EI as extern inline is not
137         yet defined.  Use PT_EI in extern inline definitions.
138         * sysdeps/arm/pt-machine.h: Likewise.
139         * sysdeps/i386/pt-machine.h: Likewise.
140         * sysdeps/i386/i686/pt-machine.h: Likewise.
141         * sysdeps/m68k/pt-machine.h: Likewise.
142         * sysdeps/mips/pt-machine.h: Likewise.
143         * sysdeps/powerpc/pt-machine.h: Likewise.
144         * sysdeps/sparc/sparc32/pt-machine.h: Likewise.
145         * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
146
147 1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
148
149         * semaphore.h: Include <sys/types.h> so that _pthread_descr
150         is declared.
151
152 1998-09-15  David S. Miller  <davem@pierdol.cobaltmicro.com>
153
154         * sysdeps/sparc/sparc32/pt-machine.h (INIT_THREAD_SELF): Add nr
155         argument.
156         * sysdeps/sparc/sparc64/pt-machine.h (INIT_THREAD_SELF): Likewise.
157
158 1998-09-12 14:24 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>
159
160         * linuxthreads/sysdeps/unix/sysv/linux/bits/sigthread.h: Add
161         multiple inclusion guard.
162
163 1998-09-02 11:08  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
164
165         * signals.c (sigaction): Check that sig is less than NSIG to avoid
166         array index overflow.
167
168 1998-09-06 10:56  Ulrich Drepper  <drepper@cygnus.com>
169
170         * sysdeps/pthread/semaphore.h: New file.
171
172 1998-09-06 09:08  Ulrich Drepper  <drepper@cygnus.com>
173
174         * sysdeps/pthread/bits/libc-lock.h (enum __libc_tsd_key_t): Add
175         _LIBC_TSD_KEY_DL_ERROR.
176
177 1998-08-31  Ulrich Drepper  <drepper@cygnus.com>
178
179         * sysdeps/i386/i686/pt-machine.h (testandset): Add memory clobber.
180         * sysdeps/i386/pt-machine.h: Likewise.
181         Suggested by Roland McGrath.
182
183 1998-08-28 13:58  Ulrich Drepper  <drepper@cygnus.com>
184
185         * internals.h: Also define THREAD_GETMEM_NC and THREAD_SETMEM_NC to
186         access thread data with non-constant offsets.
187         * specific.c: Use THREAD_GETMEM_NC and THREAD_SETMEM_NC where
188         necessary.
189
190         * sysdeps/i386/useldt.h: Fix typo.  Add THREAD_GETMEM_NC and
191         THREAD_SETMEM_NC definitions.
192
193         * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM_NC and
194         THREAD_SETMEM_NC.
195         * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
196
197 1998-08-26 15:46  Ulrich Drepper  <drepper@cygnus.com>
198
199         * internals.h: Define THREAD_GETMEM and THREAD_SETMEM to default if
200         not already defined.
201         (struct _pthread_descr_struct): Add p_self and p_nr field.
202         * manager.c (__pthread_handles): Define second element to point
203         to manager thread.
204         (__pthread_handles_num): Initialize to 2.
205         (__pthread_manager): Use INIT_THREAD_SELF with two arguments.
206         (pthread_start_thread): Likewise.
207         (pthread_handle_create): Start search for free slot at entry 2.
208         Initialize new fields p_self and p_nr.
209         Call __clone with CLONE_PTRACE if available.
210         (pthread_free): Call FREE_THREAD_SELF if available.
211         * pthread.c (__pthread_initial_thread): Initialize new fields.
212         (__pthread_manager_thread): Likewise.
213         (__pthread_initialize_manager): Call __clone with CLONE_PTRACE.
214
215         * cancel.c: Use THREAD_GETMEM and THREAD_SETMEM to access the
216         elements of the thread descriptor.
217         * condvar.c: Likewise.
218         * errno.c: Likewise.
219         * join.c: Likewise.
220         * manager.c: Likewise.
221         * pthread.c: Likewise.
222         * ptlongjmp.c: Likewise.
223         * semaphore.c: Likewise.
224         * signals.c: Likewise.
225         * specific.c: Likewise.
226         * spinlock.c: Likewise.
227
228         * sysdeps/alpha/pt-machine.h (INIT_THREAD_SELF): Add extra parameter.
229
230         * sysdeps/i386/useldt.h: New file.
231         * sysdeps/i386/i686/pt-machine.h: Show how to use this file.
232
233         * sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM and
234         THREAD_SETMEM using __thread_self.
235         * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
236
237 1998-08-24  Geoff Keating  <geoffk@ozemail.com.au>
238
239         * spinlock.c (__pthread_lock): Reset p_nextwaiting to NULL if it
240         turned out that we didn't need to queue after all.
241
242 1998-08-22  Geoff Keating  <geoffk@ozemail.com.au>
243
244         * sysdeps/powerpc/pt-machine.h: Remove testandset, it's not used
245         and wastes space; correct types.
246
247 1998-08-08 11:18  H.J. Lu  <hjl@gnu.org>
248
249         * signals.c (sigaction): Handle NULL argument.
250
251 1998-08-04  Ulrich Drepper  <drepper@cygnus.com>
252
253         * sysdeps/unix/sysv/linux/bits/sigthread.h: Use __sigset_t instead
254         of sigset_t.
255
256 1998-08-02  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
257
258         * Makefile (linuxthreads-version): Extract correct number from
259         Banner.
260
261 1998-07-29  Xavier Leroy  <Xavier.Leroy@inria.fr>
262
263         * Banner: Bump version number to 0.8
264         * FAQ.html: Many updates, in particular w.r.t. debugging.
265         * manager.c: Support for non-default stacksize for
266         LinuxThreads-allocated stacks;
267         don't use guard pages for stacks with default size, rely on
268         rlimit(RLIMIT_STACK) instead (it's cheaper).
269         * attr.c: Likewise.
270         * cancel.c: Use __pthread_sig_cancel and __pthread_sig_restart
271         everywhere instead of PTHREAD_SIG_CANCEL and PTHREAD_SIG_RESTART.
272         * condvar.c: Likewise.
273         * internals.h: Likewise.
274         * restart.h: Likewise.
275         * signals.c: Likewise.
276         * pthread.c: Likewise; set rlimit(RLIMIT_STACK) as we need it.
277
278 1998-07-23  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
279
280         * weaks.c: Define pthread_mutexattr_[sg]ettype instead of
281         __pthread_mutexattr_[sg]ettype.  Add more weak aliases.
282         * Versions: Put __pthread_mutexattr_settype under version
283         GLIBC_2.0.  Don't export __pthread_mutexattr_setkind_np and
284         __pthread_mutexattr_gettype.
285
286 1998-07-23  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
287
288         * sysdeps/pthread/bits/libc-lock.h: Make
289         __pthread_mutexattr_settype weak.  Don't make
290         __pthread_mutexattr_setkind_np weak.
291
292 1998-07-16 10:52  Ulrich Drepper  <drepper@cygnus.com>
293
294         * manager.c (pthread_handle_create): Check whether sched_setscheduler
295         call can succeed here.
296
297         * mutex.c: Define __pthread_mutexattr_settype and make
298         __pthread_mutexattr_setkind_np an alias.
299         Likewise for __pthread_mutexattr_gettype.
300
301 1998-07-15 11:00 -0400  Zack Weinberg  <zack@rabi.phys.columbia.edu>
302
303         * attr.c (pthread_attr_setschedpolicy): Don't check whether caller
304         is root.
305
306 1998-07-14 19:38  Ulrich Drepper  <drepper@cygnus.com>
307
308         * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_end.
309
310 1998-07-11  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
311
312         * Examples/ex6.c: Include <unistd.h> for usleep.
313
314 1998-06-13 11:04  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
315
316         * Examples/ex4.c (main): Use exit, not pthread_exit.
317
318 1998-07-09 13:39  Ulrich Drepper  <drepper@cygnus.com>
319
320         * Versions: Add __pthread_mutexattr_gettype and
321         __pthread_mutexattr_settype.
322         * lockfile.c: Use __pthread_mutexattr_settype instead of
323         __pthread_mutexattr_setkind_np.
324         * mutex.c: Define __pthread_mutexattr_gettype and
325         __pthread_mutexattr_settype.
326         * weak.c: Likewise.
327         * sysdeps/pthread/pthread.h: Declare __pthread_mutexattr_gettype and
328         __pthread_mutexattr_settype.
329         * sysdeps/pthread/bits/libc-lock.h (__libc_lock_init_recursive):
330         Use __pthread_mutexattr_settype.
331
332 1998-07-08 22:26  Ulrich Drepper  <drepper@cygnus.com>
333
334         * Versions: Add pthread_mutexattr_gettype, pthread_mutexattr_settype.
335         * mutex.c: Define weak alias pthread_mutexattr_gettype and
336         pthread_mutexattr_settype.
337         * sysdeps/pthread/pthread.h: Declare these functions.
338         Move pthread_sigmask and pthread_kill declaration in separate header.
339         * sysdeps/unix/sysv/linux/bits/sigthread.h: New file.
340
341 1998-07-07 15:20  Ulrich Drepper  <drepper@cygnus.com>
342
343         * Makefile: Add rules to compile and run tests.
344         * Examples/ex1.c: Little changes to fix warnings.
345         * Examples/ex2.c: Likewise.
346         * Examples/ex3.c: Likewise.
347         * Examples/ex4.c: Likewise.
348         * Examples/ex5.c: Likewise.
349         * Examples/ex6.c: New file.
350
351 1998-07-05 11:54  Ulrich Drepper  <drepper@cygnus.com>
352
353         * Versions: Add pthread_attr_init to GLIBC_2.1 version in libc.
354
355 1998-07-01  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
356
357         * attr.c: Include <string.h>.
358
359 1998-06-30 11:47  Ulrich Drepper  <drepper@cygnus.com>
360
361         * attr.c: Include errno.h.  Use memcpy to copy sched_param.
362         * internals.h: Include limits.h.
363         * manager.c: Use memcpy to copy sched_param.
364         * ptfork.c: Include errno.h.
365         * pthread.c: Likewise.
366         * semaphore.c: Likewise.
367         * specific.c: Likewise.
368         * spinlock.h: Likewise.
369         * sysdeps/pthread/pthread.h: Include only allowed headers.  Move
370         type definition to ...
371         * sysdeps/pthread/bits/pthreadtypes.h: ...here.  New file.
372
373 1998-06-29 12:34  Ulrich Drepper  <drepper@cygnus.com>
374
375         * sysdeps/pthread/pthread.h: Use __PMT not __P for function pointers.
376
377         * sysdeps/pthread/pthread.h: Define various PTHREAD_* symbols also
378         as macros as demanded in POSIX.1, Annex C.
379
380 1998-06-29 12:29  Ulrich Drepper  <drepper@cygnus.com>
381
382         * internals.h (struct pthread_request): For free use pthread_t
383         instead of pthread_descr.
384         * join.c (pthread_join): Pass thread_id, not th to manager.
385         (pthread_detach): Likewise.
386         * manager.c (__pthread_manager): Except thread ID in FREE_REQ case.
387         (pthread_exited): Remove detached queue code.
388         (pthread_handle_free): Expect thread ID parameter and use it to
389         validate the thread decsriptor.  Don't use detached queue.
390         Patches by Xavier Leroy.
391
392 1998-06-27  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
393
394         * libpthread.map: Export accept, longjmp, sigaction, siglongjmp,
395         _IO_flockfile, _IO_ftrylockfile, _IO_funlockfile,
396         __pthread_atfork, __pthread_key_create, __pthread_once.
397         * internals.h: Doc fix.
398         * pthread.c (__pthread_initialize): Define again.
399
400 1998-06-26  Ulrich Drepper  <drepper@cygnus.com>
401
402         * manager.c (pthread_exited): If thread is not detached put it on
403         special list.
404         (pthread_handle_free): If thread is not on list with living threads
405         search on list with detached threads.
406
407         * sysdeps/pthread/pthread.h (PTHREAD_RWLOCK_INITIALIZER): Correct
408         for new definition of pthread_rwlock_t.
409
410         * spinlock.c: Correct test whether to compile
411         __pthread_compare_and_swap or not.
412
413 1998-06-25 19:27  Ulrich Drepper  <drepper@cygnus.com>
414
415         * attr.c: Finish user stack support.  Change locking code to be safe
416         in situations with different priorities.
417         * cancel.c: Likewise.
418         * condvar.c: Likewise.
419         * internals.h: Likewise.
420         * join.c: Likewise.
421         * manager.c: Likewise.
422         * mutex.c: Likewise.
423         * pthread.c: Likewise.
424         * ptlongjmp.c: Likewise.
425         * queue.h: Likewise.
426         * rwlock.c: Likewise.
427         * semaphore.c: Likewise.
428         * semaphore.h: Likewise.
429         * signals.c: Likewise.
430         * spinlock.c: Likewise.
431         * spinlock.h: Likewise.
432         * sysdeps/pthread/pthread.h: Likewise.
433         Patches by Xavier Leroy.
434
435         * sysdeps/i386/i686/pt-machine.h: New file.
436
437 1998-06-25  Ulrich Drepper  <drepper@cygnus.com>
438
439         * sysdeps/pthread/pthread.h: Make [sg]et_stacksize and
440         [sg]et_stackaddr prototypes always available.
441
442         * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
443         _POSIX_THREAD_ATTR_STACKSIZE and _POSIX_THREAD_ATTR_STACKADDR.
444
445 1998-06-24  Ulrich Drepper  <drepper@cygnus.com>
446
447         * manager.c (pthread_free): Undo patch from 980430.
448         Reported by David Wragg <dpw@doc.ic.ac.uk>.
449
450 1998-06-09 15:07  Ulrich Drepper  <drepper@cygnus.com>
451
452         * manager.c: Define __pthread_manager_adjust_prio and use it to
453         increase priority when needed.
454         * internals.h: Add prototype for __pthread_manager_adjust_prio.
455         * mutex.c: Optimize mutexes to wake up only one thread.
456         * pthread.c: Move PID of manager for global variable in structure
457         element.
458         Patches by Xavier Leroy.
459
460 1998-06-07 13:47  Ulrich Drepper  <drepper@cygnus.com>
461
462         * sysdeps/pthread/bits/libc-lock.h: Optimize cleanup handlers a bit.
463
464 1998-06-03  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
465
466         * attr.c: Correct typo.
467
468 1998-05-01  Ulrich Drepper  <drepper@cygnus.com>
469
470         * manager.c (pthread_free): Unmap guard before the stack.
471         Patch by Matthias Urlichs.
472
473 1998-04-30  Ulrich Drepper  <drepper@cygnus.com>
474
475         * manager.c (pthread_free): Detect already free child.
476         Patch by Xavier Leroy, reported by Matthias Urlichs.
477
478 1998-04-23  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
479
480         * Makefile (linuxthreads-version): Renamed back from
481         libpthread-version.
482
483 1998-04-21  Ulrich Drepper  <drepper@cygnus.com>
484
485         * ptlongjmp.c: Add prototypes for __libc_siglongjmp and
486         __libc_longjmp.
487
488 1998-04-20 14:55  Ulrich Drepper  <drepper@cygnus.com>
489
490         * Makefile (libpthread-routines): Add ptlongjmp and spinlock.
491         * internals.h: Add definitions for new spinlock implementation.
492         * ptlongjmp.c: New file.
493         * spinlock.c: New file.
494         * spinlock.h (acquire): Don't reschedule using __sched_yield, use
495         new function __pthread_acquire to prevent deadlocks with thread
496         with different priorities.
497         Patches by Xavier Leroy <Xavier.Leroy@inria.fr>.
498
499 1998-03-16  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
500
501         * manager.c (__pthread_manager): Reduce first argument to select
502         to include just the needed file descriptor.
503
504 1998-03-17 00:06  Ulrich Drepper  <drepper@cygnus.com>
505
506         * manager.c: Fix last patch which caused core dumps.
507
508         * pthread.c: Correctly handle missing SIGRTMIN.
509
510 1998-03-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
511
512         * libpthread.map: Add __libc_internal_tsd_get and
513         __libc_internal_tsd_set.  Add missing cancelable functions. Export
514         libc internal versions of the cancelable functions.
515
516 1998-03-13 16:51  Ulrich Drepper  <drepper@cygnus.com>
517
518         * weaks.c: Define pthread_attr_init as GLIBC_2.0 and GLIBC_2.1.
519
520 1998-03-13 00:46  Ulrich Drepper  <drepper@cygnus.com>
521
522         * attr.c: Implement pthread_attr_[gs]etguardsize,
523         pthread_attr_[gs]setstackaddr, pthread_attr_[gs]etstacksize.
524         Change pthread_attr_init to have two interfaces.
525         * internals.h (struct _pthread_descr_struct): Add new fields for
526         above functions.
527         * libpthread.map: Add names in GLIBC_2.1 section.
528         * manager.c (pthread_handle_create): Implement guardsize and
529         user stack.
530         (pthread_free): Likewise.
531         * pthread.c (pthread_create): Add new interface for changed
532         pthread_attr_t.
533         * sysdeps/pthread/pthread.h: Add prototypes for new functions.
534         * sysdeps/unix/sysv/linux/bits/local_lim.h: Add definition of
535         PTHREAD_STACK_MIN.
536
537 1998-03-11 00:42  Wolfram Gloger  <wmglo@dent.med.uni-muenchen.de>
538
539         * manager.c: Enable resetting of the thread scheduling policy
540         to SCHED_OTHER when the parent thread has a different one.
541
542 1998-02-01 13:51  Ulrich Drepper  <drepper@cygnus.com>
543
544         * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
545         _POSIX_ASYNCHRONOUS_IO.
546
547         * sysdeps/pthread/pthread.h: Define bits for Unix98 variants of
548         mutexes.
549         * mutex.c: Implement new mutex types.
550
551         * internals.h: Include <signal.h>.
552
553         * libpthread.map: Add __erno_location and __h_errno_location.
554
555         * errno.c: Return pointer to variable actually in use.  This might
556         not be the one in the thread structure.
557         * internals.h (struct _pthread_descr_struct): Add new fields p_errnop
558         and p_h_errnop.
559         * manager.c (__pthread_manager): Set p_errnop and p_h_errnop member
560         of manager thread structure.
561         (pthread_handle_create): Set p_errnop and p_h_errnop members for new
562         thread.
563         * pthread.c: Adapt initializer for thread structures.
564         (__pthread_initial_thread): Set p_errnop and p_h_errnop member.
565         (__pthread_reset_main_thread): Reset p_errnop and p_h_errnop of
566         current thread to global variables.
567
568 1998-01-31 17:27  Ulrich Drepper  <drepper@cygnus.com>
569
570         * rwlock.c: New file.
571         * Makefile (libpthread-routines): Add rwlock.
572         * sysdeps/pthread/pthread.h: Define data structures and declare
573         functions.
574         * libpthread.map: Add new functions.
575
576 1997-12-18 13:50  Philip Blundell  <pb@nexus.co.uk>
577
578         * sysdeps/arm/pt-machine.h: New file; add ARM support.
579         * sysdeps/arm/Implies: likewise.
580         * README: Document it.
581
582 1997-12-13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
583
584         * signals.c: Remove unneeded initializer for sigwaited, saving a
585         warning.
586
587 1997-04-11 01:18  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
588
589         * semaphore.c (sem_init): Set sem_spinlock only if available.
590
591 1997-12-04 01:48  Ulrich Drepper  <drepper@cygnus.com>
592
593         * mutex.c: Implement PTHREAD_MUTEX_CHECKERROR.
594         * sysdeps/pthread/pthread.h: Define PTHREAD_MUTEX_CHECKERROR.
595
596         * Makefile: Update from LinuxThreads 0.7.
597         * internals.h. Likewise.
598         * manager.c: Likewise.
599         * mutex.c: Likewise.
600         * pthread.c: Likewise.
601         * signals.c: Likewise.
602         * specific.c: Likewise.
603         * Examples/ex3.c: Likewise.
604
605 1997-11-20 18:13  Ulrich Drepper  <drepper@cygnus.com>
606
607         * pthread.c (__pthread_reset_main_thread): Close pipe only if still
608         open.
609
610 1997-10-29 05:38  Ulrich Drepper  <drepper@cygnus.com>
611
612         * wrapsyscall.c: Add socket functions which are also cancelation
613         points.
614
615 1997-10-19 21:40  Wolfram Gloger  <wg@wolfram.dent.med.uni-muenchen.de>
616
617         * specific.c (__libc_internal_tsd_set, __libc_internal_tsd_get):
618         New functions for fast thread specific data within libc.
619
620         * internals.h: Add new array p_libc_specific to struct
621         _pthread_descr_struct.
622
623         * sysdeps/pthread/bits/libc-lock.h: Declare new functions.
624
625 1997-10-13 05:39  Ulrich Drepper  <drepper@cygnus.com>
626
627         * semaphore.h: Add __BEGIN_DECLS/__END_DECLS.
628         Reported by Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
629
630 1997-08-29 03:05  Ulrich Drepper  <drepper@cygnus.com>
631
632         * internals.h (struct _pthread_descr_struct): Add definitions for
633         two-level specific key handling.
634         * manager.c (pthread_handle_create): Initialize specific memory array.
635         * specific.c: Implement two-level key handling.
636         * weaks.c: Don't provide dummy key handling.
637         * sysdeps/pthread/bits/libc-lock.h: Typedef __libc_lock_t (no #define).
638         Add definition of __libc_key_t.
639         * sysdeps/unix/sysv/linux/bits/local_lim.h: Define PTHREAD_KEYS_MAX
640         as 1024.
641         Add definition of _POSIX_THREAD_DESTRUCTOR_ITERATIONS and
642         PTHREAD_DESTRUCTOR_ITERATIONS.
643
644         * manager.c (pthread_handle_create): Compare mmap result with
645         MAP_FAILED.
646
647         * ptfork.c: Rename to __pthread_atfork and make old name a weak alias.
648         * sysdeps/pthread/bits/pthread.h: Add prototype for __pthread_atfork.
649
650 1997-08-22 19:04  Richard Henderson  <rth@cygnus.com>
651
652         sysdeps/sparc -> sysdeps/sparc/sparc32
653         sysdeps/sparc64 -> sysdeps/sparc/sparc64
654
655         * internals.h: Change definition of THREAD_SELF to be an expression,
656         not a statement that did a return.
657         * sysdeps/alpha/pt-machine.h (THREAD_SELF): Update accordingly.
658         * sysdeps/sparc/sparc32/pt-machine.h (THREAD_SELF, INIT_THREAD_SELF):
659         Follow Solaris and use a "system reserved" register (%g6) to hold
660         the thread descriptor.
661         * sysdeps/sparc/sparc64/pt-machine.h: Likewise.
662
663 1997-08-03 00:09  Ulrich Drepper  <drepper@cygnus.com>
664
665         * mutex.c: Correct pthread_once.  Patch by Xavier Leroy.
666         * sysdeps/pthread/pthread.h: Add prototype for __pthread_once.
667         * sysdeps/pthread/bits/pthread.h: Add macros for __libc_once.
668
669         * semaphore.c: Include spinlock.h only when needed.
670
671         * specific.c (__pthread_setsepcific, __pthread_getspecific): Reject
672         keys for entries not in use.
673
674         * weaks.c: Implement key handling functions for real.
675
676 1997-06-29  01:04  Richard Henderson  <richard@gnu.ai.mit.edu>
677
678         Initial sparc64-linux support:
679         * linuxthreads/sysdeps/sparc64/Implies: New file.
680         * linuxthreads/sysdeps/sparc64/pt-machine.h: Likewise.
681
682 1997-06-29 00:48  Ulrich Drepper  <drepper@cygnus.com>
683
684         * semaphore.c: Include spinlock.h at correct place.
685         Patch by HJ Lu.
686
687 1997-06-13 10:06  Richard Henderson  <rth@tamu.edu>
688
689         The Great Bit File Move:
690         * sysdeps/alpha/semaphorebits.h: -> .../bits/semaphore.h.
691         * sysdeps/powerpc/semaphorebits.h: Likewise.
692         * sysdeps/pthread/cmpxchg/semaphorebits.h: Likewise.
693         * sysdeps/pthread/no-cmpxchg/semaphorebits.h: Likewise.
694         * sysdeps/pthread/libc-lock.h: -> bits/
695         * sysdeps/pthread/stdio-lock.h: Likewise.
696         * sysdeps/unix/sysv/linux/local_lim.h: Likewise.
697         * sysdeps/unix/sysv/linux/posix_opt.h: Likewise.
698         * semaphore.h: Likewise.
699         * sysdeps/pthread/pthread.h: Likewise.
700
701         * lockfile.c: <foo.h> -> <bits/foo.h>.
702         * semaphore.h: Likewise.
703
704         * Makefile: (headers): foo.h -> bits/foo.h.
705         * sysdeps/pthread/Makefile: Likewise.
706
707 1997-04-11 01:18  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
708
709         * semaphore.c (sem_init): Set sem_spinlock only if available.
710
711         * sysdeps/m68k/pt-machine.h (testandset, __compare_and_swap): Fix
712         asm constraints.
713
714 1997-04-09 03:00  Ulrich Drepper  <drepper@cygnus.com>
715
716         Update from LinuxThreads 0.6.
717
718         * attr.c (pthread_attr_getdetachstate): Use __sched_get_priority_max
719         and __sched_get_priority_min instead of names without `__'.
720
721         * manager.c: Rewrite large parts to implement opaque pthread_t.
722
723         * cancel.c: Adapt for opaque pthread_t type.
724         * condvar.c: Likewise.
725         * errno.c: Likewise.
726         * join.c: Likewise.
727         * mutex.c: Likewise.
728         * pthread.c: Likewise.
729         * signals.c: Likewise.
730         * specific.c: Likewise.
731         * restart.h: Likewise.
732         * queue.h: Likewise.
733         * Examples/ex3.c: Likewise.
734         * Examples/ex4.c: Likewise.
735         * sysdeps/pthread/pthread.h: Likewise.
736
737         * pthread.c: Accumulate time for all threads in thread manager.
738
739         * semaphore.c: Implement fallback implementation for architectures
740         sometimes missing compare-exchange operations.
741
742         * cancel.c (pthread_cancel): Validate handle argument.
743         * join.c (pthread_join): Likewise.
744         (pthread_detach): Likewise.
745         * signals.c (pthread_kill): Likewise.
746
747         * spinlock.h (acquire): Use __sched_yield not sched_yield.
748
749         * queue.h (enqueue): Enqueue thread according to priority.
750
751         * internals.c (struct pthread_start_args): New struct for passing
752         args to cloning function.
753         (struct _pthread): Rename to _pthread_descr_struct and adapt for
754         opaque pthread_t.
755
756         * Examples/Makefile (clean): Pass -f option to rm.
757
758         * sysdeps/i386/pt-machine.h: Add check for compare-exchange instruction
759         and define TEST_FOR_COMPARE_AND_SWAP.
760         * sysdeps/i386/i486/pt-machine.h: Removed.
761
762         * sysdeps/unix/sysv/linux/local_lim.h (PTHREAD_THREADS_MAX): Increase
763         to 1024.
764
765 1997-04-04 16:38  Ulrich Drepper  <drepper@cygnus.com>
766
767         * restart.h (suspend): Clear p_signal before suspending.
768         (suspend_with_cancellation): Likewise.
769         Patch by Xavier Leroy <Xavier.Leroy@inria.fr>.
770
771         * weaks.c: Make __pthread_key_create return 1.
772         * sysdeps/pthread/libc-lock.h: Define __libc_key_create,
773         __libc_getspecific, __libc_setspecific, and __libc_key_t.
774         * sysdeps/pthread/stdio-lock.h: Don't care for implementation not
775         using libio.
776
777 1997-03-19 15:13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
778
779         * sysdeps/sparc/pt-machine (RELEASE): Fix.
780
781 1997-03-01 07:55  Geoff Keating  <geoffk@ozemail.com.au>
782
783         * sysdeps/powerpc/Implies: Added.
784         * sysdeps/powerpc/pt-machine.h: Added.
785         * sysdeps/powerpc/semaphorebits.h: Added.
786
787 1997-01-22 01:22  Ulrich Drepper  <drepper@cygnus.com>
788
789         * linuxtheads/pthread.c (__pthread_initial_thread): Correct
790         initializer.
791         (__pthread_manager_thread): Likewise.
792         Reported by Andreas Jaeger.
793
794 1997-01-18 22:15  Richard Henderson  <rth@tamu.edu>
795
796         Since sigset_t no longer fits in a register, we can't pass in the
797         thread's initial mask so easily.  Take this opportunity to simplify
798         the clone implementation by only accepting a single void* argument.
799
800         * linuxthreads/manager.c (__pthread_manager): Put thread vitals
801         in the thread struct instead of as arguments through clone.
802         (pthread_start_thread): Look for them there.
803         * linuxthreads/internals.h (struct _pthread): Add p_initial_fn,
804         p_initial_fn_arg, p_initial_mask.  Fix __pthread_manager proto.
805         * linuxthreads/pthread.c (pthread_initialize_manager): Revise
806         clone invocation.