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
25 * sigaltstack/sigstack do not really work: the signal stack needs thread
26 variables and cthread data set up, which is not done.
30 * Resource limits do not really work; current implementation is patchy and
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):