Castor Fu wrote:
 Hi Dave!
 Sorry about the regression.
 I looked further through the code, and have modified it to only add the symbols
 for which it has actually identified a matching section, and to do it in a way
 which supports whatever sections are defined.
 This doesn't explain why a match isn't being found in the ia64 case, but shouldat
least avoid the regression in the
 s390x case.I've also attached a test which one could run which dumps output which
mighthelp me fix things by tracing
 through loading the 'md5' module. By default the new code is off, as requested,
and can be forced witha '-l' option to
 'mod', e.g.crash> mod -l -s md5Thanks again for the testing, and hopefully
this will work for most people.It would be
 great if someone could send me output from the rarerplatforms like ppc64 or 390 if it
doesn't work.Happy New Year!
 -castor 
Somebody forgot to QA this patch...    ;-)
Unfortunately, "mod -l -s module-name" won't work, nor will
"mod -l -S", because of the unique way that cmd_mod() handles
-s and -S -- which can optionally take additional "objfile" or
"directory"
arguments respectively:
crash> mod -l -S
mod: -S is not a directory
Usage: mod [ -s module [objfile] | -d module | -S [directory] | -D | -r ]
Enter "help mod" for details.
crash> mod -l -s nfs
mod: /usr/lib/debug/lib/modules/2.4.21-37.ELsmp/kernel/fs/nfs: not an ELF format object
file
Usage: mod [ -s module [objfile] | -d module | -S [directory] | -D | -r ]
Enter "help mod" for details.
crash>
So to get around that, you can just enter "mod -l" alone
prior to any -s or -S commands, which will just set the
flag.
But having done that, it actually does just the opposite,
because of backwards logic here:
@@ -7288,7 +7410,10 @@
                        strcpy(lm->mod_namelist, namelist);
                else
                        strncpy(lm->mod_namelist, namelist, MAX_MOD_NAMELIST-1);
-               goto add_symbols;
+                if (USE_V2_MOD_SYM()) {
+                        goto add_symbols;
+                }
+
        }
        if ((mbfd = bfd_openr(namelist, NULL)) == NULL)
It should be: "if (!USE_V2_MOD_SYM())".
Anyway, don't bother updating the patch for the above,
because I can keep testing with the two work-arounds.
I'd also appreciate any ppc64, s390 and s390x testers
out there...
Thanks,
  Dave