Update TODO.opensolaris
[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   atomic_*
51   membar_*
52
53 Insert into headers:
54   resolvpath (unistd.h)
55   issetugid (unistd.h)
56   strlcpy, strlcat (strings.h)
57   getvmusage (sys/vm_usage.h)
58
59 INVALID_NOT_TERMINATED_TD_P expects to succeed on terminated threads
60
61 More __builtin_expect's
62
63 Use LIBC_CANCEL_HANDLED where needed
64
65 We should probably define _LP64 and _IP32 (sys/isa_defs.h)
66
67 The following are cancellation points (need to enable async cancellation):
68   pthread_cond_timedwait, pthread_cond_wait
69   sem_timedwait, sem_wait
70
71 pthread_rwlock_*lock are not cancellation points - but we call
72   pthread_cond_timedwait, which is a cancellation point. Hence
73   we need something like __pthread_cond_timedwait_no_cancel.
74
75 Since we now use an entirely libc-based rwlock implementation we should be able
76   to support PTHREAD_RWLOCK_PREFER_READER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NP,
77   and PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
78
79 Use syscall instead of INLINE_SYSCALL; also create __syscall_errval
80
81 Get rid of all saved_errno usage
82
83 More clocks in pthread_condattr_setclock
84
85 List of CDDL headers needed to compile random stuff:
86   sys/dlpi.h
87
88 Use cond_t data field for broadcast seqence
89
90 Use timer_* syscalls
91
92 Instead of AT_SECURE we can use AF_SUN_SETUGID [AT_SUN_AUXFLAGS]