----- Original Message -----
>>>But it only happens when I use KDUMP format instead of
NETDUMP_ELF32.
I cannot reconfirm this. Please forget about it.
Yes, that's right -- the old NETDUMP_ELF32 format only contained one PT_LOAD
segment, so you'll have to make the minor adjustments to make it KDUMP_ELF32.
I forgot to mention one thing. I had to remove the following line
from
symbol.c as my target is non-SMP
1413: lm->mod_percpu = ULONG(modbuf + OFFSET(module_percpu));
I hope you will find a better way.
Best Regards,
Takuo
Try this:
--- symbols.c 7 Jun 2011 14:35:36 -0000 1.238
+++ symbols.c 21 Jun 2011 13:09:12 -0000
@@ -1410,7 +1410,8 @@
lm->mod_ext_symcnt = mcnt;
lm->mod_init_module_ptr = ULONG(modbuf +
OFFSET(module_module_init));
- lm->mod_percpu = ULONG(modbuf + OFFSET(module_percpu));
+ if (VALID_MEMBER(module_percpu))
+ lm->mod_percpu = ULONG(modbuf + OFFSET(module_percpu));
if (THIS_KERNEL_VERSION >= LINUX(2,6,27)) {
lm->mod_etext_guess = lm->mod_base +
UINT(modbuf + OFFSET(module_core_text_size));
Although I don't see the module.percpu member surrounded by #ifdef CONFIG_SMP
in the upstream or older kernels. What does the module structure look like in
your kernel sources?
Dave