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: amodra at bigpond dot net dot au
- Cc: hjl at lucon dot org, binutils at sources dot redhat dot com
- Date: Wed, 3 Jul 2002 08:42:20 -0700
- Subject: Re: PATCH: Fix removed sections (Re: 2.12.90.0.12 Kernel Miscompile)
Date: Mon, 1 Jul 2002 21:10:46 +0930
From: Alan Modra <amodra@bigpond.net.au>
I'm curious to know exactly why. So far, I've only seen symptoms
reported, which could well be due to bugs in the kernel. (*) My
builds of 2.2.21 had no signifigant differences after applying your
patch, just the version string. I probably don't use the same
config as you do.
Can one of you provide a little more information about vmlinux file
differences? "readelf -S vmlinux" output before/after HJ's patch, if
different would be useful. My suspicion is that something in the
kernel is relying on a removed output section's alignment to affect
placement of the next output section.
*) Not that we want binutils to break kernel builds! However, if the
kernel is relying on what can be argued as ld _bugs_, then we need to
a) fix the kernel and b) consider whether we can live with a ld bug
in order to support old code.
I've prepaered vmlinux.12 and vmlinux.14 based on the ...12 and ..14 recent
binutils versions so that a comparison can be made. The 12 crashed but 14
works fine. Here is the readelf -S you requested:
midkemia:/ss/linux/kelewan> readelf -S linux/vmlinux.12
There are 20 section headers, starting at offset 0x1cc120:
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .text PROGBITS c0100000 001000 122b15 00 AX 0 0 16
[ 2] .text.lock PROGBITS c0222b18 123b18 004030 00 AX 0 0 4
[ 3] .rodata PROGBITS c0226b60 127b60 040e80 00 A 0 0 32
[ 4] __ex_table PROGBITS c02679e0 1689e0 0010f8 00 A 0 0 4
[ 5] .data PROGBITS c0268ae0 169ae0 0239d4 00 WA 0 0 32
[ 6] .exitcall.exit PROGBITS c028c4b4 18d4b4 000008 00 WA 0 0 4
[ 7] .data.init_task PROGBITS c028e000 18e000 002000 00 WA 0 0 32
[ 8] .text.init PROGBITS c0290000 190000 0176c6 00 AX 0 0 4
[ 9] .data.init PROGBITS c02a76e0 1a76e0 01d1b4 00 WA 0 0 32
[10] .setup.init PROGBITS c02c48a0 1c48a0 000010 00 WA 0 0 4
[11] .initcall.init PROGBITS c02c48b0 1c48b0 00000c 00 WA 0 0 4
[12] .data.cacheline_a PROGBITS c02c5000 1c5000 002000 00 WA 0 0 32
[13] .data.page_aligne PROGBITS c02c7000 1c7000 000800 00 WA 0 0 32
[14] .bss NOBITS c02c7800 1c7800 0234c8 00 WA 0 0 32
[15] .comment PROGBITS 00000000 1c7800 002ffe 00 0 0 1
[16] .note NOTE 00000000 1ca7fe 00184c 00 0 0 1
[17] .shstrtab STRTAB 00000000 1cc04a 0000d4 00 0 0 1
[18] .symtab SYMTAB 00000000 1cc440 01cad0 10 19 1184 4
[19] .strtab STRTAB 00000000 1e8f10 018f7f 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
midkemia:/ss/linux/kelewan> readelf -S linux/vmlinux.14
There are 20 section headers, starting at offset 0x1cc120:
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .text PROGBITS c0100000 001000 122b15 00 AX 0 0 16
[ 2] .text.lock PROGBITS c0222b18 123b18 004030 00 AX 0 0 4
[ 3] .rodata PROGBITS c0226b60 127b60 040e80 00 A 0 0 32
[ 4] __ex_table PROGBITS c02679e0 1689e0 0010f8 00 A 0 0 4
[ 5] .data PROGBITS c0268ae0 169ae0 0239d4 00 WA 0 0 32
[ 6] .exitcall.exit PROGBITS c028c4b4 18d4b4 000008 00 WA 0 0 4
[ 7] .data.init_task PROGBITS c028e000 18e000 002000 00 WA 0 0 32
[ 8] .text.init PROGBITS c0290000 190000 0176c6 00 AX 0 0 4
[ 9] .data.init PROGBITS c02a76e0 1a76e0 01d1b4 00 WA 0 0 32
[10] .setup.init PROGBITS c02c48a0 1c48a0 000010 00 WA 0 0 4
[11] .initcall.init PROGBITS c02c48b0 1c48b0 00000c 00 WA 0 0 4
[12] .data.cacheline_a PROGBITS c02c5000 1c5000 002000 00 WA 0 0 32
[13] .data.page_aligne PROGBITS c02c7000 1c7000 000800 00 WA 0 0 32
[14] .bss NOBITS c02c7800 1c7800 0234c8 00 WA 0 0 32
[15] .comment PROGBITS 00000000 1c7800 002ffe 00 0 0 1
[16] .note NOTE 00000000 1ca7fe 00184c 00 0 0 1
[17] .shstrtab STRTAB 00000000 1cc04a 0000d4 00 0 0 1
[18] .symtab SYMTAB 00000000 1cc440 01cad0 10 19 1184 4
[19] .strtab STRTAB 00000000 1e8f10 018f7f 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
midkemia:/ss/linux/kelewan>