update from main archive 961217
[glibc.git] / hurd / STATUS
blob35662e2940e29092a14be720ae3a68abeb1e14f4
1 Status of Hurd support in libc.  Last updated 21 Feb 95.
2 Roland McGrath <roland@gnu.ai.mit.edu>
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'.
9 * We are not sure about possible races between setpgrp (A, pgrp) from
10   process B vs process A receiving proc_newids.
12 * The rest of libc (stdio et al) is not safe for multithreaded programs.
13   mutex locks should be added to various things.
15 * Recovery from faults in the signal thread is not implemented yet.
17 * longjmp needs to clean up reply port, intr_port; needs thought about.
19 * Cooperation with cthreads is not finished.  If you link with cthreads,
20   libc internal code still does not use real condition variables.
21   sigsuspend currently does a busy wait where it should use a condition.
22   Signal state is per kernel thread; for unwired cthreads it should be per
23   cthread instead.
25 * sigaltstack/sigstack do not really work: the signal stack needs thread
26   variables and cthread data set up, which is not done.
28 * malloc is a kludge.
30 * Resource limits do not really work; current implementation is patchy and
31   inconsistent.
33 * libc implicitly uses some environment variables.  This is a security
34   problem for setuid exec.  Probably crt0 should remove the variables from
35   the environment if setuid.
37 * The miscellaneous msg.defs calls are only partially implemented.
39 * The default SIGINFO handler needs to be written.
41 * File locking is not implemented; the RPC interface is not there yet.
43 * The current getitimer/setitimer implementation is a kludge.
45 * mmap cannot do MAP_NOEXTEND.
47 * Unimplemented calls (from the 4.4 system call list):
48 acct
49 fstatfs
50 getfh
51 getfsstat
52 getrusage
53 madvise
54 mincore
55 mount
56 msync
57 profil
58 recvmsg
59 revoke
60 sendmsg
61 sstk
62 statfs
63 swapon
64 unmount