tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Time to merge the pgoyette-compat branch (take two)
At the request of reviewers, I have removed the "alias names" stuff,
and I've re-written the description of the .o --> .a change. Here's
the revised request-for-review.
(I was going to just abandon this effort/branch, but the rest of the
changes are IMHO too important to discard.)
After several months of work, it's now (nearly) time to merge the
pgoyette-compat branch. (Yeah, I know that many/most of you don't
"allow" modules into your environments in the first place, so none
of this really affects you at all.)
This branch includes the following major changes:
* Separation of the single "monolithic" compat module into multiple
modules, one for each older version of NetBSD.
With this, you can load only as much compat code as you want, without
having to build a custom compat module. (You still need a custom
kernel to start with, in order not to have all the compat code being
built-in.) Sys-calls that are implemented in the compat module will
now load only the necessary compat code, rather than the entire
monolithic module.
* Elimination of the limit on the number of "required" modules (or
"dependencies") for a module. There was previously a limit of
MAXMODDEPS (value 10), with a statically-allocated array; now the
array is dynamically allocated and expanded as needed.
* Also eliminate the limit on the depth of recursive loading of
required modules. Previously there was a limit of six levels of
recursion (MODULE_MAX_DEPTH), referencing a statically allocated
array. Now, the elements of that array are dynamically allocated
as needed, and recursion depth has no practical limit.
* Extraction of some COMPAT_xx code that was previously intertwined
with the main kernel build and not available in non-built-in modules.
One example of this is the COMPAT_70 code for rtsock (which bit me
when it was introduced, and was the main reason for undertaking the
work on this branch).
* Removed linking of the .o kernel compat library into all kernels.
This was introduced some time ago as a hack for including some
support routines that weren't being properly included in the
modules that needed them. These support routines are now in their
own module, and we no longer need to use the .o build method. So
we return to the original use of a .a compat library. This also
allows removal of a work-around that was deliberately introduced
into the compat_sysv module, which had a side-effect of breaking
auto-load of compat_sysv.
Other activity is documented in src/doc/COMPAT-branch-notes file.
There are a number of activities that still need to be worked on; these
are also listed in the src/doc/COMPAT-branch-notes file. None of these
activites should prevent merging of the branch, as the short-comings are
already present on the mainline.
I welcome any timely review and constructive feedback. I'd like to get
this committed sometime in the next two or three weeks if possible.
+------------------+--------------------------+----------------------------+
| Paul Goyette | PGP Key fingerprint: | E-mail addresses: |
| (Retired) | FA29 0E3B 35AF E8AE 6651 | paul at whooppee dot com |
| Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd dot org |
+------------------+--------------------------+----------------------------+
Home |
Main Index |
Thread Index |
Old Index