http://sourceware.org/bugzilla/show_bug.cgi?id=14533
--- Comment #3 from Cary Coutant <ccoutant at google dot com> 2012-08-31 17:22:08 UTC --- Sounds to me like a large section table bug in ICC. I believe we've seen that before. -cary On Fri, Aug 31, 2012 at 10:14 AM, bsergean at gmail dot com <sourceware-bugzi...@sourceware.org> wrote: > http://sourceware.org/bugzilla/show_bug.cgi?id=14533 > > --- Comment #2 from Benjamin Sergeant <bsergean at gmail dot com> 2012-08-31 > 17:14:34 UTC --- > 1) If I strip the .obj file the error seems to go away. > > 2) Here's the error. > > /tmp/gold-dev/bin/ld: libsomething.a(AnObjectFile.o): invalid string offset > 25281974 >= 48 for section `.shstrtab' > /tmp/gold-dev/bin/ld: libsomething.a(AnObjectFile.o): invalid string offset 79 >>= 48 for section `(null)' > /tmp/gold-dev/bin/ld: libsomething.a(AnObjectFile.o): invalid string offset > 25281974 >= 48 for section `.shstrtab' > /tmp/gold-dev/bin/ld: libsomething.a(AnObjectFile.o): invalid string offset 79 >>= 48 for section `(null)' > libsomething.a: member libsomething.a(AnObjectFile.o) in archive is not an > object > ~ > What's funny is that I don't get that last error "is not an object" if I try > to > make a shared lib from just that object. > > So maybe there's something weird with how (1) we create the .a (ranlib) or > with > how gold parse the .a. > > Here's what readelf says about that symbol. > > ELF Header: > Magic: 7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00 > Class: ELF64 > Data: 2's complement, little endian > Version: 1 (current) > OS/ABI: UNIX - Linux > ABI Version: 0 > Type: REL (Relocatable file) > Machine: Advanced Micro Devices X86-64 > Version: 0x1 > Entry point address: 0x0 > Start of program headers: 0 (bytes into file) > Start of section headers: 85864776 (bytes into file) > Flags: 0x0 > Size of this header: 64 (bytes) > Size of program headers: 0 (bytes) > Number of program headers: 0 > Size of section headers: 64 (bytes) > Number of section headers: 0 (92838) > Section header string table index: 65535 (66722) > > > If I tries to make a shared lib from that object file, here's what I get > > /tmp$ /tmp/gold-dev/bin/ld.gold -shared -o /tmp/caca.so AnObjectFile.o |& head > /tmp/gold-dev/bin/ld.gold: error: AnObjectFile.o: section name section has > wrong type: 4 > /tmp/gold-dev/bin/ld.gold: error: AnObjectFile.o: symbol table name section > has > wrong type: 4 > /tmp/gold-dev/bin/ld.gold: error: AnObjectFile.o: bad section name offset for > section 1: 79 > /tmp/gold-dev/bin/ld.gold: error: AnObjectFile.o: extended index for symbol > 70238 out of range: 92838 > /tmp/gold-dev/bin/ld.gold: error: AnObjectFile.o: extended index for symbol > 70239 out of range: 92839 > /tmp/gold-dev/bin/ld.gold: error: AnObjectFile.o: extended index for symbol > 70240 out of range: 92840 > /tmp/gold-dev/bin/ld.gold: error: AnObjectFile.o: extended index for symbol > 70241 out of range: 92841 > > > How can I help further with troubleshooting that ? > Can I add some debugging option to the linker ? > Can I extract just a piece of that .obj file, or obfuscate it so I can > upload / attach it to Bugzilla ? > > Thanks !! > > ps: > I haven't done any serious benchmark yet on the impact of linking with gold > but > on a large lib that we have (330M), linking with gold was 2.5x faster (5s to > 2s), and we have many of those libs. > > -- > Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email > ------- You are receiving this mail because: ------- > You are on the CC list for the bug. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils