| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: COMPAT-branch-notes,v 1.1.2.17 2018/05/26 11:48:40 pgoyette Exp $ */ | | 1 | /* $NetBSD: COMPAT-branch-notes,v 1.1.2.18 2018/08/25 01:02:48 pgoyette Exp $ */ |
2 | | | 2 | |
3 | DONE | | 3 | DONE |
4 | ---- | | 4 | ---- |
5 | 1. Removed linking of the kernel compat object library into all kernels; | | 5 | 1. Removed linking of the kernel compat object library into all kernels; |
6 | using the .o library caused some build breakage, and resulted in the | | 6 | using the .o library caused some build breakage, and resulted in the |
7 | bulk of the compat code being included in every kernel, but without | | 7 | bulk of the compat code being included in every kernel, but without |
8 | any module linkage. In turn, this caused failure when loading some | | 8 | any module linkage. In turn, this caused failure when loading some |
9 | modules due to symbols already being defined in the kernel. | | 9 | modules due to symbols already being defined in the kernel. |
10 | | | 10 | |
11 | 2. Reverted some intentional breakage for loading the sysv_ipc module; | | 11 | 2. Reverted some intentional breakage for loading the sysv_ipc module; |
12 | the breakage was introduced as the fix for the above-mentioned build | | 12 | the breakage was introduced as the fix for the above-mentioned build |
13 | breakage. | | 13 | breakage. |
14 | | | 14 | |
| @@ -39,57 +39,64 @@ DONE | | | @@ -39,57 +39,64 @@ DONE |
39 | is still available, and uses the alias mechanism to "advertise" | | 39 | is still available, and uses the alias mechanism to "advertise" |
40 | that the component modules are available. | | 40 | that the component modules are available. |
41 | | | 41 | |
42 | Similarly, the compat_sysv module has also been split into several | | 42 | Similarly, the compat_sysv module has also been split into several |
43 | version-specific modules. | | 43 | version-specific modules. |
44 | | | 44 | |
45 | There are still several areas which are not complete - see the | | 45 | There are still several areas which are not complete - see the |
46 | TODO list below for more details. | | 46 | TODO list below for more details. |
47 | | | 47 | |
48 | 10. syscalls.master has been updated to autoload the version-specific | | 48 | 10. syscalls.master has been updated to autoload the version-specific |
49 | compat modules rather than the monolithic modules. | | 49 | compat modules rather than the monolithic modules. |
50 | | | 50 | |
51 | | | 51 | |
52 | TODO | | 52 | TODO - Required for branch merge |
53 | ---- | | 53 | -------------------------------- |
| | | 54 | 1. For compat_60, still need to figure out what to do with BSDPTY and |
| | | 55 | tty_ptm |
| | | 56 | |
| | | 57 | 2. Also for compat_60, need to fix the building of XEN (and, for i386, |
| | | 58 | XEN-PAE) module variants so that the obj-dir symlinks and the -I |
| | | 59 | include order match those present in a kernel build. See PR/53130 |
| | | 60 | (Currently, this affects the compat_60 module and its implementation |
| | | 61 | of microcode updates for AMD processors - i386 and amd64.) |
| | | 62 | |
| | | 63 | 3. For compat_50, in addition to rtsock there are some things in dev/vnd, |
| | | 64 | dev/gpio, and dev/wscons/wsmux that I haven't been able to cleanly |
| | | 65 | separate. |
| | | 66 | |
| | | 67 | TODO - Not required for branch merge |
| | | 68 | ------------------------------------ |
54 | 1. Audit the entire code base for any remaining embedded #ifdef's for | | 69 | 1. Audit the entire code base for any remaining embedded #ifdef's for |
55 | COMPAT_xx. When found, move the actual compat code into the compat | | 70 | COMPAT_xx. When found, move the actual compat code into the compat |
56 | hierarchy and replace originals with indirect (vectored) calls. | | 71 | hierarchy and replace originals with indirect (vectored) calls. |
57 | | | 72 | |
58 | 2. The rtsock compat code is a disaster, with rtsock_50.c #include-ing | | 73 | 2. The rtsock compat code is a disaster, with rtsock_50.c #include-ing |
59 | the main rtsock.c code with various manipulations of the COMPAT_50 | | 74 | the main rtsock.c code with various manipulations of the COMPAT_50 |
60 | macro. Once rtsock is separated, compat_14 references to rtsock_50 | | 75 | macro. Once rtsock is separated, compat_14 references to rtsock_50 |
61 | routines needs to be verified. | | 76 | routines needs to be verified. |
62 | | | 77 | |
| | | 78 | Currently, this entire code is built for the monolithic COMPAT |
| | | 79 | module, but there's no way to reach the entry points. |
| | | 80 | |
63 | 3. The compat_60 module still needs some work for XEN systems. We | | 81 | 3. The compat_60 module still needs some work for XEN systems. We |
64 | probably need some build infrastructure changes to ensure that | | 82 | probably need some build infrastructure changes to ensure that |
65 | XEN (and, for i386, XEN-PAE) modules are build with the correct | | 83 | XEN (and, for i386, XEN-PAE) modules are build with the correct |
66 | macros defined and with -I directories specified in the same order | | 84 | macros defined and with -I directories specified in the same order |
67 | as for building kernels. | | 85 | as for building kernels. |
68 | | | 86 | |
69 | 4. For compat_60, still need to figure out what to do with BSDPTY and | | 87 | This currently affects cpu microcode loading for amd64 XEN systems. |
70 | tty_ptm | | | |
71 | | | | |
72 | 5. Also for compat_60, need to fix the building of XEN (and, for i386, | | | |
73 | XEN-PAE) module variants so that the obj-dir symlinks and the -I | | | |
74 | include order match those present in a kernel build. See PR/53130 | | | |
75 | (Currently, this affects the compat_60 module and its implementation | | | |
76 | of microcode updates for AMD processors - i386 and amd64.) | | | |
77 | | | | |
78 | 6. For compat_50, in addition to rtsock there are some things in dev/vnd, | | | |
79 | dev/gpio, and dev/wscons/wsmux that I haven't been able to cleanly | | | |
80 | separate. | | | |
81 | | | 88 | |
82 | 7. There seems to be quite a bit of MD compat_xx code, in the various | | 89 | 4. There seems to be quite a bit of MD compat_xx code, in the various |
83 | sys/arch/ directories. I haven't yet looked at any of this. But it | | 90 | sys/arch/ directories. I haven't yet looked at any of this. But it |
84 | seems to me that the MI compat build infrastructure should have some | | 91 | seems to me that the MI compat build infrastructure should have some |
85 | mechanism to "reach over" to the MD code, #include a Makefile.inc file, | | 92 | mechanism to "reach over" to the MD code, #include a Makefile.inc file, |
86 | and perhaps define something to enable the MI modcmd code to call a | | 93 | and perhaps define something to enable the MI modcmd code to call a |
87 | compat_xx_MD_init() routine. | | 94 | compat_xx_MD_init() routine. |
88 | | | 95 | |
89 | Note also that there are a few bits of MD code that is COMPAT_44 | | 96 | Note also that there are a few bits of MD code that is COMPAT_44 |
90 | related. The only bit of MI COMPAT_44 code is in the single module | | 97 | related. The only bit of MI COMPAT_44 code is in the single module |
91 | shared by COMPAT_43 and COMPAT_09. This affects the cesfic, hp300, | | 98 | shared by COMPAT_43 and COMPAT_09. This affects the cesfic, hp300, |
92 | news68k, and x68k platforms, all in their respective machdep.c | | 99 | news68k, and x68k platforms, all in their respective machdep.c |
93 | source file. Additionally, the zaurus platform defines COMPAT_44 in | | 100 | source file. Additionally, the zaurus platform defines COMPAT_44 in |
94 | its INSTALL kernel configuration - but no other configuration files! | | 101 | its INSTALL kernel configuration - but no other configuration files! |
95 | | | 102 | |