Update TODO
[kopensolaris-gnu/glibc.git] / TODO.opensolaris
1 The following headers are missing FSF headers:
2
3 More CHECK_1 and co. from bp-checks.h
4 Implement:
5     [sg]etres[ug]d
6         see ucred_getruid
7     sys_errlist
8     CLEAR, ECHO, etc...
9     dl-execstack.c
10     [gs]etsourcefilter (SIOCGMSFILTER / SIOCSMSFILTER)
11     [gs]etipv4sourcefilter (SIOCGIPMSFILTER / SIOCSIPMSFILTER)
12 See /usr/include/gnu/stubs-32.h
13
14 Check syscalls.list; change some p => s
15
16 ptrace details:
17   /proc/PID/{as,ctl,status,sigact,psinfo}
18   PTRACE_PEEK, PTRACE_PEEKDATA: pread(as)
19   PTRACE_PEEKUSR: user_t
20   PTRACE_POKETEXT, PTRACE_POKEDATA: pwrite(as)
21   PTRACE_POKEUSR: user_t
22   PTRACE_CONT:
23   PTRACE_KILL:
24
25   ctl is managed via PC* constants (e.g. PCSTRACE)
26     write command (long) followed by struct
27
28 These are solaris extensions that we should implement:
29   nlist, nlist.h
30   [gs]etrctl, rctl.h
31   door_*
32   port_*
33   pcsample (pcsample.h)
34   profil (unistd.h)
35   inst_sync
36   install_utrap, sparc_utrap_install
37   modctl
38   core_* (corectl)
39   _sharefs
40   pset_* (sys/pset.h)
41   _cladm (sys/cladm.h)
42   uucopy, uucopystr (strings.h)
43   acct (sys/acct.h)
44   acctctl (sys/acctctl.h)
45   getacct, putacct, wracct [SYS_exacctsys] (sys/exacct.h)
46   allocids, idmap_reg, idmap_unreg [SYS_sidsys] (sys/sid.h)
47   exportfs, nfs_getfh, nfssvc [SYS_nfssys] (sys/nfssec.h) [maybe not]
48   lgrpsys
49   gethomelgroup
50
51 Insert into headers:
52   resolvpath (unistd.h)
53   issetugid (unistd.h)
54   strlcpy, strlcat (strings.h)
55   getvmusage (sys/vm_usage.h)
56
57 INVALID_NOT_TERMINATED_TD_P expects to succeed on terminated threads
58
59 More __builtin_expect's
60
61 Use LIBC_CANCEL_HANDLED where needed
62
63 We should probably define _LP64 and _IP32 (sys/isa_defs.h)
64
65 The following are cancellation points (need to enable async cancellation):
66   pthread_cond_timedwait, pthread_cond_wait
67   sem_timedwait, sem_wait
68
69 pthread_rwlock_*lock are not cancellation points - but we call
70   pthread_cond_timedwait, which is a cancellation point. Hence
71   we need something like __pthread_cond_timedwait_no_cancel.
72
73 Since we now use an entirely libc-based rwlock implementation we should be able
74   to support PTHREAD_RWLOCK_PREFER_READER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NP,
75   and PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
76
77 Use syscall instead of INLINE_SYSCALL; also create __syscall_errval
78
79 Get rid of all saved_errno usage
80
81 More clocks in pthread_condattr_setclock