Previously uncontrolled files put into CVS.
[kopensolaris-gnu/glibc.git] / hurd / STATUS
1 Status of Hurd support in libc.  Last updated 22 Nov 1994.
2 Roland McGrath <roland@gnu.ai.mit.edu>
3
4 Everything not noted below is implemented, most of it tested.  There are
5 various very small things unfinished or thought to be perhaps wrong
6 throughout the code, marked by comments containing `XXX'.
7
8
9 * Signals and job control work, but are a very hairy area.
10   There are various ways the signal thread can block and fail
11   to respond when the program is losing badly.
12
13 * We are not sure about possible races between setpgrp (A, pgrp) from
14   process B vs process A receiving proc_newids.
15
16 * The rest of libc (stdio et al) is not safe for multithreaded programs.
17   mutex locks should be added to various things.
18
19 * Recovery from faults in the signal thread is not implemented yet.
20
21 * longjmp needs to clean up reply port, intr_port; needs thought about.
22
23 * Cooperation with cthreads is not finished.  If you link with cthreads,
24   libc internal code still does not use real condition variables.
25   sigsuspend currently does a busy wait where it should use a condition.
26   Signal state is per kernel thread; for unwired cthreads it should be per
27   cthread instead.
28
29 * sigaltstack/sigstack do not really work: the signal stack needs thread
30   variables and cthread data set up, which is not done.
31
32 * malloc is a kludge.
33
34 * Nothing uses mapped io.  Eventually stdio and read/write/seek should.  I
35   have written a little code for this, but it is far from finished.
36
37 * Resource limits do not really work; current implementation is patchy and
38   inconsistent.
39
40 * libc implicitly uses some environment variables.  This is a security
41   problem for setuid exec.  Probably crt0 should remove the variables from
42   the environment if setuid.
43
44 * The miscellaneous msg.defs calls are only partially implemented.
45
46 * The default SIGINFO handler needs to be written.
47
48 * File locking is not implemented; the RPC interface is not there yet.
49
50 * The current getitimer/setitimer implementation is a kludge.
51
52 * mmap cannot do MAP_NOEXTEND.
53
54 * Unimplemented calls (from the 4.4 system call list):
55 acct
56 fstatfs
57 getfh
58 getfsstat
59 getrusage
60 madvise
61 mincore
62 mount
63 msync
64 profil
65 recvmsg
66 revoke
67 sendmsg
68 setpriority
69 sstk
70 statfs
71 swapon
72 unmount