Merge branch 'master' of /opt/gnu-chroot/home/dtbartle/glibc-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     [gs]etsourcefilter (SIOCGMSFILTER / SIOCSMSFILTER)
10     [gs]etipv4sourcefilter (SIOCGIPMSFILTER / SIOCSIPMSFILTER)
11 See /usr/include/gnu/stubs-32.h
12
13 Check syscalls.list; change some p => s
14
15 ptrace details:
16   /proc/PID/{as,ctl,status,sigact,psinfo}
17   PTRACE_PEEK, PTRACE_PEEKDATA: pread(as)
18   PTRACE_PEEKUSR: user_t
19   PTRACE_POKETEXT, PTRACE_POKEDATA: pwrite(as)
20   PTRACE_POKEUSR: user_t
21   PTRACE_CONT:
22   PTRACE_KILL:
23
24   ctl is managed via PC* constants (e.g. PCSTRACE)
25     write command (long) followed by struct
26
27 These are solaris extensions that we should implement:
28   [gs]etrctl, rctl.h
29   door_*
30   port_*
31   profil (unistd.h)
32   inst_sync
33   install_utrap, sparc_utrap_install
34   modctl
35   _sharefs
36   _cladm (sys/cladm.h)
37   exportfs, nfs_getfh, nfssvc [SYS_nfssys] (sys/nfssec.h) [maybe not]
38   lgrpsys
39   gethomelgroup
40   atomic_*
41   membar_*
42   getzoneid
43
44 Insert into headers:
45   resolvpath (unistd.h)
46   issetugid (unistd.h)
47   strlcpy, strlcat (string.h or strings.h)
48   getvmusage (sys/vm_usage.h)
49   uucopy, uucopystr (string.h or strings.h)
50
51 INVALID_NOT_TERMINATED_TD_P expects to succeed on terminated threads
52
53 More __builtin_expect's
54
55 Use LIBC_CANCEL_HANDLED where needed
56
57 We should probably define _LP64 and _IP32 (sys/isa_defs.h)
58
59 The following are cancellation points (need to enable async cancellation):
60   pthread_cond_timedwait, pthread_cond_wait
61   sem_timedwait, sem_wait
62
63 pthread_rwlock_*lock are not cancellation points - but we call
64   pthread_cond_timedwait, which is a cancellation point. Hence
65   we need something like __pthread_cond_timedwait_no_cancel.
66
67 Since we now use an entirely libc-based rwlock implementation we should be able
68   to support PTHREAD_RWLOCK_PREFER_READER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NP,
69   and PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP.
70
71 Use syscall instead of INLINE_SYSCALL; also create __syscall_errval
72
73 Get rid of all saved_errno usage
74
75 More clocks in pthread_condattr_setclock
76
77 List of CDDL headers needed to compile random stuff:
78   sys/dlpi.h [Should be LGPL'd]
79   sys/sysi86.h [Should be LGPL'd]
80   sys/ctf_api.h [libctf]
81   libctf.h [libctf]
82   sys/ctf.h [libctr[
83   libproc.h [libproc]
84   libelf.h [libelf]
85   gelf.h [libelf; need to add Elf64_Cap]
86
87 Use cond_t data field for broadcast seqence
88
89 Use timer_* syscalls
90
91 Instead of AT_SECURE we can use AF_SUN_SETUGID [AT_SUN_AUXFLAGS]
92
93 We can't _exit if the main thread goes away since we have daemon threaeds (THR_DAEMON)