Hi Dave,
Am Mittwoch, den 22.04.2009, 13:57 -0400 schrieb Dave Anderson:
----- "Michael Holzheu" <holzheu(a)linux.vnet.ibm.com>
wrote:
>
> I thought that you where suggesting to search only in
> <-S dir>/lib/modules.. and <-S dir>/usr/lib/debug/..
>
> As I said before, "mod -S <dir>" currently searches in all
> subdirectories of <dir>.
Right, that's what my follow-up email explained more thoroughly:
> And just to clarify this further. When "mod -S [directory]" is entered,
> the search will be made starting from [directory]. In other words,
> it will not immediately append "/lib/modules" and
"/usr/lib/debug/lib/modules"
> onto [directory]. It's just that that's where they'll be found
> if the double-rpm2cpio were done.
>
> Conceivably you could just dump all the .ko and .ko.debug files into
> the one flat [directory], and it will find them right away.
But that leads to another issue.
Suppose a directory target was set up with double-rpm2cpio, such that,
for example, the ext3.ko module would be found here:
<target-dir>/lib/modules/2.6.18-128.el5/kernel/fs/ext3/ext3.ko
The gdb algorithm currently searches for ext3.ko.debug in these 3
directories, in this order:
A. <target-dir>/lib/modules/2.6.18-128.el5/kernel/fs/ext3
B. <target-dir>/lib/modules/2.6.18-128.el5/kernel/fs/ext3/.debug
C. /usr/lib/debug/lib/modules/2.6.18-128.el5/kernel/fs/ext3
So it doesn't find it in the "double-rpm2cpio" layout. And so my
proposal would add this additional search path:
D. <target-dir>/usr/lib/debug/lib/modules/2.6.18-128.el5/kernel/fs/ext3
and it would find it. It's essentially "C", but with <target-dir>
prepended to the search path.
But it *does* require an analogous relative file tree layout.
So if for example, all .ko and .ko.debug files were just dumped in
the <target-dir>:
(1) ext3.ko would be found in <target-dir>
(2) ext3.ko.debug would be found in <target-dir> -- using gdb algorithm
"A".
But if ext3.ko was located in:
<target-dir>/lib/modules/2.6.18-128.el5/kernel/fs/ext3
then the proposed "D" algorithm would find ext3.ko.debug in:
<target-dir>/usr/lib/debug/lib/modules/2.6.18-128.el5/kernel/fs/ext3
But it would *only* find it in the directory above. And that's because
the gdb algorithms create fully-qualified directory pathnames based
upon the full path to the stripped .ko file, and then looks in those
directories to accomplish "A", "B" and "C".
So there would be that restriction as to the *relative* locations of
the .ko and .ko.debug files. But I don't think that's really all that
burdensome.
Comments?
I think that's a good proposal!
Michael