Module Name: src
Committed By: pgoyette
Date: Sat Mar 10 05:14:26 UTC 2018
Added Files:
src/doc [pgoyette-compat]: COMPAT-branch-notes
Log Message:
Add some notes on what has been done, and what remains
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1.2.1 src/doc/COMPAT-branch-notes
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Added files:
Index: src/doc/COMPAT-branch-notes
diff -u /dev/null src/doc/COMPAT-branch-notes:1.1.2.1
--- /dev/null Sat Mar 10 05:14:26 2018
+++ src/doc/COMPAT-branch-notes Sat Mar 10 05:14:26 2018
@@ -0,0 +1,45 @@
+DONE
+----
+1. Removed linking of the kernel compat object library into all kernels;
+ using the .o library caused some build breakage, and resulted in the
+ bulk of the compat code being included in every kernel, but without
+ any module linkage. In turn, this caused failure when loading some
+ modules due to symbols already being defined in the kernel.
+
+2. Reverted some intentional 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.
+
+
+TODO
+----
+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.
+
+ (There are several instances of this in the net routing table code.)
+
+2. Implement a mechanism for modules to include "aliases". This would
+ allow a single module file to contain multiple module table entries
+ (for example, a single file for the compat module could include
+ compat_80, compat_70, compat_60, ...). Then, other modules could
+ depend on individual names. For example, module compat_xyz could
+ depend on compat_70, and the dependency would be met by either the
+ "everything" compat module (with all of its aliases) or by a 7.0-
+ specific module.
+
+ Note that in addition to updating the module code, this would also
+ require changes to syscalls.master files to change the names of the
+ modules associated with module-provided syscalls.
+
+3. In addition to the single, all-encompassing compat module, provide a
+ per-version compat_xx module, each with dependencies on all higher
+ versions. (Perhaps we would also do this for the sysv ipc module,
+ although the gains are a lot smaller.)