Subject: Re: CVS commit: src/sys/kern
To: None <>
From: None <>
List: source-changes
Date: 01/17/2008 21:53:47
Quoting Elad Efrat <elad@NetBSD.org>:
> Antti Kantee wrote:
>> On Thu Jan 17 2008 at 22:32:49 +0000, Stephen M. Rumble wrote:
>>> Module Name: src
>>> Committed By: rumble
>>> Date: Thu Jan 17 22:32:49 UTC 2008
>>>
>>> Modified Files:
>>> src/sys/kern: subr_kobj.c
>>>
>>> Log Message:
>>> Before bailing on ENOENT, try one more time with an appended ".o". This
>>> lets us load dependencies by module name and makes 'modload foo' work when
>>> 'foo.o' is the file.
>>
>> Is this a policy decision the kernel should be making?
>
> No. Please revert this. I only know of one other case the kernel used to
> do this, and it was a design flaw...
The kernel already makes a policy decision, namely, upon failing to
load the file (assuming first it's a full path), it prefixes
"/modules/" and tries again. It's a bit hacky, yes, but adding another
guess isn't exactly without precedent.
I didn't like the solution, either, but I'm not sure what the best way
to approach it is given that the kernel presently resolves
dependencies itself. If it is to do so, and if we are to name module
files "MODNAME.o" and refer to the modules everywhere else as
"MODNAME", then what choice do we have?
It'd be nicest to have modload handle dependencies and do all of the
guesswork as to which file corresponds to which module name, but I'm
not sure whether dependency resolution in the kernel would still be
desirable or not.
I'm happy to remove my own and the pre-existing guesswork in
kobj_open, but only in light of a better solution, as I don't see it
being any worse than it used to be.
Steve