This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: PATCH: Fix removed sections (Re: 2.12.90.0.12 Kernel Miscompile)
- From: "Leonard N. Zubkoff" <lnz at dandelion dot com>
- To: hjl at lucon dot org
- Cc: amodra at bigpond dot net dot au, binutils at sources dot redhat dot com
- Date: Wed, 3 Jul 2002 09:29:52 -0700
- Subject: Re: PATCH: Fix removed sections (Re: 2.12.90.0.12 Kernel Miscompile)
Date: Wed, 3 Jul 2002 09:12:37 -0700
From: "H. J. Lu" <hjl@lucon.org>
Could you please try
# objdump --full vmlinux.12 > 12
# objdump --full vmlinux.14 > 14
to see which sections differ.
H.J.
The interesting difference is in the .text section:
4786c4786
< c0112ad0 0083c410 83c40cc3 5653b900 000000bb ........VS......
---
> c0112ad0 0083c410 83c40cc3 5653b9e0 7926c0bb ........VS..y&..
There are two other differecnes, but they are simply the date and time of the
compilation.
Looking at System.map, we find:
c0112ab4 T iounmap
c0112ad8 T search_exception_table
Looking at linux/arch/i386/mm/extable.c, I see that my compilation might not
match yours, since I have CONFIG_MODULES turned off in my .config.
Using GDB to disassemble search_exception_table in these two kernels, we have:
midkemia:/ss/linux/kelewan> gdb linux/vmlinux.12
...
0xc0112ad8 <search_exception_table>: push %esi
0xc0112ad9 <search_exception_table+1>: push %ebx
0xc0112ada <search_exception_table+2>: mov $0x0,%ecx
0xc0112adf <search_exception_table+7>: mov $0xc0268ad0,%ebx
0xc0112ae4 <search_exception_table+12>: mov 0xc(%esp,1),%esi
0xc0112ae8 <search_exception_table+16>: cmp %ebx,%ecx
midkemia:/ss/linux/kelewan> gdb linux/vmlinux.14
...
0xc0112ad8 <search_exception_table>: push %esi
0xc0112ad9 <search_exception_table+1>: push %ebx
0xc0112ada <search_exception_table+2>: mov $0xc02679e0,%ecx
0xc0112adf <search_exception_table+7>: mov $0xc0268ad0,%ebx
0xc0112ae4 <search_exception_table+12>: mov 0xc(%esp,1),%esi
0xc0112ae8 <search_exception_table+16>: cmp %ebx,%ecx
>From looking at the source code, I suspect that the problem lies with resolving
__start___ex_table or __stop___ex_table-1.
Leonard