Module Name: src Committed By: pgoyette Date: Sun Sep 9 02:20:17 UTC 2018
Added Files: src/doc [pgoyette-compat]: TODO.compat-module Removed Files: src/doc [pgoyette-compat]: COMPAT-branch-notes Log Message: Rename COMPAT-branch-notes to TODO.compat-module To generate a diff of this commit: cvs rdiff -u -r1.1.2.24 -r0 src/doc/COMPAT-branch-notes cvs rdiff -u -r0 -r1.1.2.1 src/doc/TODO.compat-module Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Added files: Index: src/doc/TODO.compat-module diff -u /dev/null src/doc/TODO.compat-module:1.1.2.1 --- /dev/null Sun Sep 9 02:20:17 2018 +++ src/doc/TODO.compat-module Sun Sep 9 02:20:17 2018 @@ -0,0 +1,103 @@ +/* $NetBSD: TODO.compat-module,v 1.1.2.1 2018/09/09 02:20:17 pgoyette Exp $ */ + +DONE +---- +1. Returned the build to use a .a compat library rather than a .o + library. The original method used was .a but that was changed + (fairly recently) as a work-around to address some support + routines that were not being included when needed. These support + modules are now included in their own module, and the work-around + is therefore no longer needed. + +2. Reverted some intentional auto-load breakage for loading the sysv_ipc + module; the breakage was introduced as the fix for the above-mentioned + build breakage. + +3. Split the sysv_ipc compat routines into their own compat_sysv module. + +4. Resolved some inter-module dependencies. + +5. Extracted some net/if.c compat routines into the compat module, and + replaced the originals with indirect (vectored) function calls. + +6. Reconfirmed existing compat-module dependencies, and update the + defopt/defflag lines in the config files* as needed, to insure that + built-in dependencies get resolved. + +7. Fixed limits on the number of module depedencies and maximum + recursion level have been removed. Previous code for reporting + module status to userland has been versioned and moved to the + compat_80 module. + +8. The old monolithic compat module has been broken into multiple + modules, one for each old NetBSD version. The monolithic module + is still available. + + Similarly, the compat_sysv module has also been split into several + version-specific modules, and the mini-monolithic compat_sysv module + is still provided. + +9. syscalls.master has been updated to autoload the version-specific + compat modules rather than the monolithic modules. + +10. Separated COMPAT_BSDPTY stuff, allowing the COMPAT_60 module to be + built regardless. + + +TODO - Required for branch merge +-------------------------------- +none + + +TODO - Not required for branch merge +------------------------------------ +1. Audit the entire code base for any remaining embedded #ifdef's for + COMPAT_xx. When found, move the actual compat code into the compat + hierarchy and replace originals with indirect (vectored) calls. + +2. The rtsock compat code is a disaster, with rtsock_50.c #include-ing + the main rtsock.c code with various manipulations of the COMPAT_50 + macro. Once rtsock is separated, compat_14 references to rtsock_50 + routines needs to be verified. + + Currently, this entire code is built for the monolithic COMPAT + module, but there's no way to reach the entry points, so none of + the compat code can be executed, neither on the branch nor on + HEAD. + +3. The compat_60 module still needs some work for XEN systems. We + probably need some build infrastructure changes to ensure that + XEN (and, for i386, XEN-PAE) modules are build with the correct + macros defined and with -I directories specified in the same order + as for building kernels. See PR port-xen/53130. This currently + prevents loading of micro-code updates for amd64 processors running + XEN kernels. This limitation also exists on HEAD. + +4. There seems to be quite a bit of MD compat_xx code, in the various + sys/arch/ directories. I haven't yet looked at any of this. But it + seems to me that the MI compat build infrastructure should have some + mechanism to "reach over" to the MD code, #include a Makefile.inc file, + and perhaps define something to enable the MI modcmd code to call a + compat_xx_MD_init() routine. + + Note also that there are a few bits of MD code that is COMPAT_44 + related. (The only bit of MI COMPAT_44 code is in the single module + shared by COMPAT_43 and COMPAT_09.) This affects the cesfic, hp300, + news68k, and x68k platforms, all in their respective machdep.c + source file. Additionally, the zaurus platform defines COMPAT_44 in + its INSTALL kernel configuration - but no other configuration files! + + As far as I can tell, none of the MD compat code is currently built + into the monolithic COMPAT module on HEAD. Thus, its absence from + any of the version-specific modules is not a regression. + +5. For compat_50, in addition to rtsock there are some things in dev/vnd, + dev/gpio, and dev/wscons/wsmux that I haven't been able to cleanly + separate. These items are not currently included in the monolithic + COMPAT module on HEAD, so lack of integration on the branch is not a + regression. + +6. Even though the build mechanism has been switched back to using a + .a compat library, it might be useful to make it work with the .o + library. +