This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: binutils broken?
- To: "H . J . Lu" <hjl at lucon dot org>,Jack Howarth <howarth at nitro dot msbb dot uc dot edu>,binutils at sourceware dot cygnus dot com,mrg at redhat dot com
- Subject: Re: binutils broken?
- From: Franz Sirl <Franz dot Sirl-kernel at lauterbach dot com>
- Date: Sat, 27 Oct 2001 13:20:22 +0200
- References: <200110262033.QAA90789@nitro.msbb.uc.edu> <20011027122706.E1050@bubble.sa.bigpond.net.au> <20011026232003.A30242@lucon.org>
On Saturday 27 October 2001 08:20, H . J . Lu wrote:
> On Sat, Oct 27, 2001 at 12:27:06PM +0930, Alan Modra wrote:
> > On Fri, Oct 26, 2001 at 02:25:54PM -0700, H . J . Lu wrote:
> > > Alan mentioned that mrg@redhat.com's PPC change brake some PPC targets.
> > > See
> > >
> > > http://sources.redhat.com/ml/binutils/2001-10/msg00473.html
> >
> > I suppose I should have given details. The problem is that gcc now
> > needs to pass -m403 (or -m405) to gas for these particular targets to
> > enable 403 specific insns. Previously, gcc used to pass -mppc and
> > gas accepted 403 instructions under the general umbrella of -mppc.
> >
> > I don't think this change has anything to do with powerpc-linux failures.
> > If it turns out to be a binutils problem, I'm more likely to be the
> > guilty party with my 2001-09-29 bfd change, which wasn't fixed until
> > 2001-10-15.
>
> binutils 2.11.92.0.10 is based on 2001-10-21 CVS.
OK, here are more details, it seems binutils-2.11.90.0.31 was the last one
working correctly. I built gcc-3.0.2 with it and all was fine. Then I
relinked shared libstdc++ (relinking libgcc made no difference) with
binutils-2.11.92.10 and a lot (all?) tests related to EH started failing, so
this would mean a bug in the linker, or?
I compared the readelf -a outpout of both shared libs, and it seems the
handling of RELA stuff changed a lot, especially, what happened to .rela.dyn?
--- libstdc++-murx-ok Sat Oct 27 04:23:41 2001
+++ libstdc++-murx-bug Sat Oct 27 04:23:53 2001
@@ -8,48 +8,54 @@
Type: DYN (Shared object file)
Machine: PowerPC
Version: 0x1
- Entry point address: 0x461b4
+ Entry point address: 0x462c8
Start of program headers: 52 (bytes into file)
- Start of section headers: 3073644 (bytes into file)
+ Start of section headers: 3074308 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 3
Size of section headers: 40 (bytes)
- Number of section headers: 29
- Section header string table index: 26
+ Number of section headers: 35
+ Section header string table index: 32
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
- [ 1] .hash HASH 00000094 000094 005188 04 A 2 0 4
- [ 2] .dynsym DYNSYM 0000521c 00521c 00c5b0 10 A 3 1a 4
- [ 3] .dynstr STRTAB 000117cc 0117cc 0208e8 00 A 0 0 1
- [ 4] .gnu.version VERSYM 000320b4 0320b4 0018b6 02 A 2 0 2
- [ 5] .gnu.version_r VERNEED 0003396c 03396c 0000a0 00 A 3 3 4
- [ 6] .rela.dyn RELA 00033a0c 033a0c 010be4 0c A 2 0 4
- [ 7] .rela.plt RELA 000445f0 0445f0 001b9c 0c A 2 15 4
- [ 8] .init PROGBITS 0004618c 04618c 000028 00 AX 0 0 4
- [ 9] .text PROGBITS 000461b4 0461b4 049bb0 00 AX 0 0 4
- [10] .fini PROGBITS 0008fd64 08fd64 000020 00 AX 0 0 4
- [11] .data PROGBITS 0009fd90 08fd90 0032e8 00 WA 0 0 16
- [12] .eh_frame PROGBITS 000a3078 093078 00b138 00 WA 0 0 4
- [13] .got2 PROGBITS 000ae1b0 09e1b0 000780 00 WA 0 0 1
- [14] .dynamic DYNAMIC 000ae930 09e930 0000d8 08 WA 3 0 4
- [15] .ctors PROGBITS 000aea08 09ea08 000010 00 WA 0 0 4
- [16] .dtors PROGBITS 000aea18 09ea18 000008 00 WA 0 0 4
- [17] .got PROGBITS 000aea20 09ea20 000014 04 WA 0 0 4
- [18] .sdata2 PROGBITS 000aea34 09ea34 000000 00 A 0 0 4
- [19] .sdata PROGBITS 000aea38 09ea38 003a90 00 WA 0 0 8
- [20] .sbss NOBITS 000b24c8 0a24c8 00019c 00 WA 0 0 8
- [21] .plt NOBITS 000b2664 0a24c8 001be4 00 WAX 0 0 4
- [22] .bss NOBITS 000b4248 0a24c8 00478c 00 WA 0 0 4
- [23] .stab PROGBITS 00000000 0a24c8 0bc454 0c 24 0 4
- [24] .stabstr STRTAB 00000000 15e91c 18f4d2 00 0 0 1
- [25] .comment PROGBITS 00000000 2eddee 0007a2 00 0 0 1
- [26] .shstrtab STRTAB 00000000 2ee590 0000dc 00 0 0 1
- [27] .symtab SYMTAB 00000000 2eeaf4 00ce20 10 28 a1 4
- [28] .strtab STRTAB 00000000 2fb914 021414 00 0 0 1
+ [ 1] .hash HASH 00000094 000094 0051a4 04 A 2 0 4
+ [ 2] .dynsym DYNSYM 00005238 005238 00c620 10 A 3 20 4
+ [ 3] .dynstr STRTAB 00011858 011858 020958 00 A 0 0 1
+ [ 4] .gnu.version VERSYM 000321b0 0321b0 0018c4 02 A 2 0 2
+ [ 5] .gnu.version_r VERNEED 00033a74 033a74 0000a0 00 A 3 3 4
+ [ 6] .rela.data RELA 00033b14 033b14 000468 0c A 2 11 4
+ [ 7] .rela.fixup RELA 00033f7c 033f7c 0056dc 0c A 2 0 4
+ [ 8] .rela.got2 RELA 00039658 039658 001680 0c A 2 13 4
+ [ 9] .rela.eh_frame RELA 0003acd8 03acd8 004b78 0c A 2 12 4
+ [10] .rela.ctors RELA 0003f850 03f850 000018 0c A 2 15 4
+ [11] .rela.got RELA 0003f868 03f868 00000c 0c A 2 17 4
+ [12] .rela.sdata RELA 0003f874 03f874 004e84 0c A 2 19 4
+ [13] .rela.plt RELA 000446f8 0446f8 001ba8 0c A 2 1b 4
+ [14] .init PROGBITS 000462a0 0462a0 000028 00 AX 0 0 4
+ [15] .text PROGBITS 000462c8 0462c8 049ebc 00 AX 0 0 4
+ [16] .fini PROGBITS 00090184 090184 000020 00 AX 0 0 4
+ [17] .data PROGBITS 000a01b0 0901b0 0032e4 00 WA 0 0 16
+ [18] .eh_frame PROGBITS 000a3494 093494 00b108 00 WA 0 0 4
+ [19] .got2 PROGBITS 000ae59c 09e59c 000780 00 WA 0 0 1
+ [20] .dynamic DYNAMIC 000aed1c 09ed1c 0000d8 08 WA 3 0 4
+ [21] .ctors PROGBITS 000aedf4 09edf4 000010 00 WA 0 0 4
+ [22] .dtors PROGBITS 000aee04 09ee04 000008 00 WA 0 0 4
+ [23] .got PROGBITS 000aee0c 09ee0c 000014 04 WA 0 0 4
+ [24] .sdata2 PROGBITS 000aee20 09ee20 000000 00 A 0 0 4
+ [25] .sdata PROGBITS 000aee20 09ee20 003a98 00 WA 0 0 8
+ [26] .sbss NOBITS 000b28b8 0a28b8 00019c 00 WA 0 0 8
+ [27] .plt NOBITS 000b2a54 0a28b8 001bf0 00 WAX 0 0 4
+ [28] .bss NOBITS 000b4644 0a28b8 00478c 00 WA 0 0 4
+ [29] .stab PROGBITS 00000000 0a28b8 0bc214 0c 30 0 4
+ [30] .stabstr STRTAB 00000000 15eacc 18f570 00 0 0 1
+ [31] .comment PROGBITS 00000000 2ee03c 0007a2 00 0 0 1
+ [32] .shstrtab STRTAB 00000000 2ee7de 000125 00 0 0 1
+ [33] .symtab SYMTAB 00000000 2eee7c 00cea0 10 34 a8 4
+ [34] .strtab STRTAB 00000000 2fbd1c 0214ac 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)
@@ -57,1800 +63,161 @@
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
- LOAD 0x000000 0x00000000 0x00000000 0x8fd84 0x8fd84 R E 0x10000
- LOAD 0x08fd90 0x0009fd90 0x0009fd90 0x12738 0x18c44 RWE 0x10000
- DYNAMIC 0x09e930 0x000ae930 0x000ae930 0x000d8 0x000d8 RW 0x4
+ LOAD 0x000000 0x00000000 0x00000000 0x901a4 0x901a4 R E 0x10000
+ LOAD 0x0901b0 0x000a01b0 0x000a01b0 0x12708 0x18c20 RWE 0x10000
+ DYNAMIC 0x09ed1c 0x000aed1c 0x000aed1c 0x000d8 0x000d8 RW 0x4
Section to Segment mapping:
Segment Sections...
- 00 .hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .text .fini
+ 00 .hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.data .rela.fixup .rela.got2 .rela.eh_frame .rela.ctors .rela.got .rela.sdata .rela.plt .init .text .fini
01 .data .eh_frame .got2 .dynamic .ctors .dtors .got .sdata .sbss .plt .bss
02 .dynamic
<<snipped a lot of symbol diffs>>
hjl, since you have a login on this machine, you can look into
~fsirl/obj/gcc3save/ (.31 linked) and ~fsirl/obj/gcc3/ (libgcc and libstdc++
relinked with .10) if you are interested.
If more info is need, let me know.
Franz.