TODO.compat-module revision 1.1.2.10 1 1.1.2.10 pgoyette /* $NetBSD: TODO.compat-module,v 1.1.2.10 2018/09/24 23:23:26 pgoyette Exp $ */
2 1.1.2.1 pgoyette
3 1.1.2.1 pgoyette DONE
4 1.1.2.1 pgoyette ----
5 1.1.2.1 pgoyette 1. Returned the build to use a .a compat library rather than a .o
6 1.1.2.1 pgoyette library. The original method used was .a but that was changed
7 1.1.2.1 pgoyette (fairly recently) as a work-around to address some support
8 1.1.2.1 pgoyette routines that were not being included when needed. These support
9 1.1.2.1 pgoyette modules are now included in their own module, and the work-around
10 1.1.2.1 pgoyette is therefore no longer needed.
11 1.1.2.1 pgoyette
12 1.1.2.1 pgoyette 2. Reverted some intentional auto-load breakage for loading the sysv_ipc
13 1.1.2.1 pgoyette module; the breakage was introduced as the fix for the above-mentioned
14 1.1.2.1 pgoyette build breakage.
15 1.1.2.1 pgoyette
16 1.1.2.1 pgoyette 3. Split the sysv_ipc compat routines into their own compat_sysv module.
17 1.1.2.1 pgoyette
18 1.1.2.1 pgoyette 4. Resolved some inter-module dependencies.
19 1.1.2.1 pgoyette
20 1.1.2.1 pgoyette 5. Extracted some net/if.c compat routines into the compat module, and
21 1.1.2.1 pgoyette replaced the originals with indirect (vectored) function calls.
22 1.1.2.1 pgoyette
23 1.1.2.1 pgoyette 6. Reconfirmed existing compat-module dependencies, and update the
24 1.1.2.1 pgoyette defopt/defflag lines in the config files* as needed, to insure that
25 1.1.2.1 pgoyette built-in dependencies get resolved.
26 1.1.2.1 pgoyette
27 1.1.2.1 pgoyette 7. Fixed limits on the number of module depedencies and maximum
28 1.1.2.1 pgoyette recursion level have been removed. Previous code for reporting
29 1.1.2.1 pgoyette module status to userland has been versioned and moved to the
30 1.1.2.1 pgoyette compat_80 module.
31 1.1.2.1 pgoyette
32 1.1.2.1 pgoyette 8. The old monolithic compat module has been broken into multiple
33 1.1.2.1 pgoyette modules, one for each old NetBSD version. The monolithic module
34 1.1.2.2 pgoyette is no longer available.
35 1.1.2.1 pgoyette
36 1.1.2.1 pgoyette Similarly, the compat_sysv module has also been split into several
37 1.1.2.1 pgoyette version-specific modules, and the mini-monolithic compat_sysv module
38 1.1.2.2 pgoyette is no longer provided.
39 1.1.2.1 pgoyette
40 1.1.2.1 pgoyette 9. syscalls.master has been updated to autoload the version-specific
41 1.1.2.1 pgoyette compat modules rather than the monolithic modules.
42 1.1.2.1 pgoyette
43 1.1.2.1 pgoyette 10. Separated COMPAT_BSDPTY stuff, allowing the COMPAT_60 module to be
44 1.1.2.1 pgoyette built regardless.
45 1.1.2.1 pgoyette
46 1.1.2.5 pgoyette 11. Implemented a MP-safe mechanism for installing and removing function
47 1.1.2.5 pgoyette pointers. Thanks to riastradh@ for the template code.
48 1.1.2.5 pgoyette
49 1.1.2.6 pgoyette 12. Replace version-specific parts of the compat_netbsd32 module (and
50 1.1.2.6 pgoyette also the compat_netbsd32_sysv module) with individual modules. Update
51 1.1.2.6 pgoyette dependencies accordingly. (Done, but see #13 below.)
52 1.1.2.6 pgoyette
53 1.1.2.8 pgoyette 13. Finished splitting the vnd_30 and vnd_50 compat code into separate
54 1.1.2.8 pgoyette modules.
55 1.1.2.8 pgoyette
56 1.1.2.8 pgoyette 14. Cleaned up some previous vectored routines (related to if_43.c) to
57 1.1.2.8 pgoyette use the MP-safe mechanism.
58 1.1.2.7 pgoyette
59 1.1.2.1 pgoyette
60 1.1.2.1 pgoyette TODO - Required for branch merge
61 1.1.2.1 pgoyette --------------------------------
62 1.1.2.8 pgoyette 15. Need to finish cleaning up the netbsd32 machine-dependent code, since
63 1.1.2.5 pgoyette the MI code assumes that there's MD file available.
64 1.1.2.5 pgoyette
65 1.1.2.8 pgoyette 16. The ieee_80211 compat code needs to be verified to make sure it is
66 1.1.2.5 pgoyette handling the if43_20 compat routine cvtcmd() correctly.
67 1.1.2.5 pgoyette
68 1.1.2.8 pgoyette 17. There are a few function pointers in netbsd32 module that need to
69 1.1.2.5 pgoyette be converted to the new MP-safe mechanism. See files
70 1.1.2.5 pgoyette netbsd32_mod.c
71 1.1.2.5 pgoyette netbsd32_module.c
72 1.1.2.5 pgoyette netbsd32_compat_80.[ch]
73 1.1.2.5 pgoyette amd64's machdep.c and machdep_16.c
74 1.1.2.4 pgoyette
75 1.1.2.1 pgoyette
76 1.1.2.1 pgoyette TODO - Not required for branch merge
77 1.1.2.1 pgoyette ------------------------------------
78 1.1.2.8 pgoyette 18. Audit the entire code base for any remaining embedded #ifdef's for
79 1.1.2.1 pgoyette COMPAT_xx. When found, move the actual compat code into the compat
80 1.1.2.1 pgoyette hierarchy and replace originals with indirect (vectored) calls.
81 1.1.2.1 pgoyette
82 1.1.2.8 pgoyette 19. The rtsock compat code is a disaster, with rtsock_50.c #include-ing
83 1.1.2.1 pgoyette the main rtsock.c code with various manipulations of the COMPAT_50
84 1.1.2.1 pgoyette macro. Once rtsock is separated, compat_14 references to rtsock_50
85 1.1.2.1 pgoyette routines needs to be verified.
86 1.1.2.1 pgoyette
87 1.1.2.1 pgoyette Currently, this entire code is built for the monolithic COMPAT
88 1.1.2.1 pgoyette module, but there's no way to reach the entry points, so none of
89 1.1.2.1 pgoyette the compat code can be executed, neither on the branch nor on
90 1.1.2.1 pgoyette HEAD.
91 1.1.2.1 pgoyette
92 1.1.2.8 pgoyette 20. The compat_60 module still needs some work for XEN systems. We
93 1.1.2.1 pgoyette probably need some build infrastructure changes to ensure that
94 1.1.2.1 pgoyette XEN (and, for i386, XEN-PAE) modules are build with the correct
95 1.1.2.1 pgoyette macros defined and with -I directories specified in the same order
96 1.1.2.1 pgoyette as for building kernels. See PR port-xen/53130. This currently
97 1.1.2.1 pgoyette prevents loading of micro-code updates for amd64 processors running
98 1.1.2.1 pgoyette XEN kernels. This limitation also exists on HEAD.
99 1.1.2.1 pgoyette
100 1.1.2.8 pgoyette 21. There seems to be quite a bit of MD compat_xx code, in the various
101 1.1.2.1 pgoyette sys/arch/ directories. I haven't yet looked at any of this. But it
102 1.1.2.1 pgoyette seems to me that the MI compat build infrastructure should have some
103 1.1.2.1 pgoyette mechanism to "reach over" to the MD code, #include a Makefile.inc file,
104 1.1.2.1 pgoyette and perhaps define something to enable the MI modcmd code to call a
105 1.1.2.1 pgoyette compat_xx_MD_init() routine.
106 1.1.2.1 pgoyette
107 1.1.2.1 pgoyette Note also that there are a few bits of MD code that is COMPAT_44
108 1.1.2.1 pgoyette related. (The only bit of MI COMPAT_44 code is in the single module
109 1.1.2.1 pgoyette shared by COMPAT_43 and COMPAT_09.) This affects the cesfic, hp300,
110 1.1.2.1 pgoyette news68k, and x68k platforms, all in their respective machdep.c
111 1.1.2.1 pgoyette source file. Additionally, the zaurus platform defines COMPAT_44 in
112 1.1.2.1 pgoyette its INSTALL kernel configuration - but no other configuration files!
113 1.1.2.1 pgoyette
114 1.1.2.1 pgoyette As far as I can tell, none of the MD compat code is currently built
115 1.1.2.1 pgoyette into the monolithic COMPAT module on HEAD. Thus, its absence from
116 1.1.2.1 pgoyette any of the version-specific modules is not a regression.
117 1.1.2.1 pgoyette
118 1.1.2.8 pgoyette 22. For compat_50, in addition to rtsock there are some things in dev/gpio
119 1.1.2.8 pgoyette and dev/wscons/wsmux that I haven't been able to cleanly separate.
120 1.1.2.8 pgoyette These items are not currently included in the monolithic COMPAT module
121 1.1.2.8 pgoyette on HEAD, so lack of integration on the branch is not a regression.
122 1.1.2.1 pgoyette
123 1.1.2.8 pgoyette 23. Even though the build mechanism has been switched back to using a
124 1.1.2.1 pgoyette .a compat library, it might be useful to make it work with the .o
125 1.1.2.1 pgoyette library.
126 1.1.2.1 pgoyette
127 1.1.2.10 pgoyette 24. We need a mechanism to determine, at run-time, whether or not the
128 1.1.2.10 pgoyette NTP option was selected. Even though the NTP code is not modular,
129 1.1.2.10 pgoyette other modules (such as clockctl) need to know whether NTP routines
130 1.1.2.10 pgoyette are available.
131 1.1.2.10 pgoyette
132