This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: binutils broken?


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]