[Toybox] [PATCH] Re: modinfo...
Isaac
idunham at lavabit.com
Mon Jun 24 00:29:59 PDT 2013
On Sun, Jun 23, 2013 at 02:39:14PM -0500, Rob Landley wrote:
> On 06/20/2013 11:24:48 PM, Isaac wrote:
> >On Wed, Jun 19, 2013 at 11:44:08PM -0500, Rob Landley wrote:
> >> On 06/18/2013 08:55:42 AM, Isaac wrote:
> >> >
> >> >Oh, there's a trivial option to add to modinfo: -b <basedir>
> >> >(used for constructing an initrd-it locates the modules within
> >> >a given directory).
> >>
> >> Um, where's this from? My host's modinfo hasn't got it, and I don't
> >> know of an actual standard for this...
> >>
> >
> >I noticed it on my Lucid system:
>
> Ok.
>
> >So I don't see a high priority; on the other hand, it might
> >hypothetically be
> >useful if firmware requirements change in a new kernel version.
> >In other words, sounds like something to hold off on.
>
> I haven't got an objection if it's actually being used somewhere, I
> just didn't see it on my system.
Looking at the kmod documentation, I see that the function is a little
different from what I thought:
it's changing the root for your search (eg, -b ~/projects/out/ where that's the contents of a future boot filesystem).
Of course, that means the patch to add -b is broken.
> >>
> >> The documentation describes this:
> >> http://landley.net/toybox/code.html#lib_args
> >>
> >> >modinfo also should support specifying an absolute or relative path
> >> >to a module; the one complication is that modinfo_file() takes a
> >> >struct dirtree, not a filename; can dirtree_read handle a filename
> >> >or a relative path?
> >>
> >> Yes: http://landley.net/toybox/code.html#lib_dirtree
> >
> >Thanks for the answer; I missed that, probably due to trying to read
> >rather late.
>
> I feel I should make the documentation more clear, but dunno how.
You can't clarify everything. It seems obvious reading it, but try reading
anything when you can barely stay awake...
> Wouldn't the presence of a / character indicate use of a path?
>
> >While I am not aware of any rules forbidding a module like
> >"barf.ko.ko",
> >an strace of module-init-tools modinfo indicates that they use
> >similar logic.
>
> Hmmm... I guess an actual file is going to have the .ko extension,
> although strstr() doesn't confirm it _ends_ with .ko...
> The difference between if (strchr(str, '/')) and checking for .ko is
> that "modinfo filename.ko" would work with the second but not the
> first. We could also always check for the argument as a file, but
> that would mean if you do have a file in the current directory of
> the same name it would load that file, and that's a bit like not
> having "." in the $PATH by default...
>
> Eh, changing behavior based on extension is normalish. I'd like to
> add a check to make sure it's actually at the end until the further
> extension support is implemented.
OK.
modinfo ath_pci.ko
is something that I have done from time to time.
> >It adds 6 lines, with 41 bytes increase in binary size (GCC 4.4,
> >glibc/dynamic and musl/static, according to make baseline/bloatcheck).
> >I'm not sure if the void->int change was needed, though it does
> >keep GCC
> >quiet. But perror_exit; -> perror_msg; return; was needed.
>
> Except it's still xopen(), so it'll abort if unable to open the
> file, but return error if it can't map it. (And leak the
> filehandle.) Hmmm... all modinfo_file() actually uses is the
> filename, no reason to go through dirtree() for that... Nothing is
> actually _checking_ the return value of modinfo_file()... Huh, and
> this thing is doing a blob of global data (I try to combine globals
> into the union)...
>
> Checking in a cleanup on top of your commit. (And I need to dig up
> the -b patch...)
Thanks.
See above (-b patch is broken). But it's after midnight here, so I'm
not rewriting it atm.
> Thanks,
>
> Rob
More information about the Toybox
mailing list