https://sourceware.org/bugzilla/show_bug.cgi?id=17366
Bug ID: 17366 Summary: gold can't handle a crt1.o with an .eh_frame Product: binutils Version: unspecified Status: NEW Severity: normal Priority: P2 Component: gold Assignee: ccoutant at google dot com Reporter: rafael.espindola at gmail dot com CC: ian at airs dot com I noticed that gold's exception_static_test test was failing on my machine (fedora 20 x86_64). The link line is gcctestdir/ld --build-id --no-add-needed --hash-style=gnu -m elf_x86_64 -static -o exception_static_test /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.8.3/crtbeginT.o -Lgcctestdir -L/usr/lib/gcc/x86_64-redhat-linux/4.8.3 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../.. exception_test_main.o exception_test_1.o exception_test_2.o -ldl -lz -lstdc++ -lm --start-group -lgcc -lgcc_eh -lc --end-group /usr/lib/gcc/x86_64-redhat-linux/4.8.3/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../lib64/crtn.o To see the problem run: readelf -aW exception_static_test | grep -i eh_frame On my system the output is [16] .eh_frame PROGBITS 00000000004b60d8 0b60d8 00f5ec 00 A 0 0 8 00 .note.ABI-tag .note.gnu.build-id .rela.plt .init .plt .text __libc_freeres_fn __libc_thread_freeres_fn .fini .rodata .gcc_except_table .stapsdt.base __libc_subfreeres __libc_atexit __libc_thread_subfreeres .eh_frame 2: 00000000004c56c0 0 OBJECT LOCAL DEFAULT 16 __EH_FRAME_BEGIN__ note how __EH_FRAME_BEGIN__ points to the *end* of .eh_frame. with bfd ld I get [15] .eh_frame PROGBITS 00000000004b5d08 0b5d08 00f524 00 A 0 0 8 00 .note.ABI-tag .note.gnu.build-id .rela.plt .init .plt .text __libc_freeres_fn __libc_thread_freeres_fn .fini .rodata .stapsdt.base __libc_subfreeres __libc_atexit __libc_thread_subfreeres .eh_frame .gcc_except_table 261: 00000000004b5d38 0 OBJECT LOCAL DEFAULT 15 __EH_FRAME_BEGIN__ The difference of 0x30 from the start is accounted by the .eh_frame of crt1.o: $ readelf -SW /lib64/crt1.o | grep .eh_frame [ 5] .eh_frame PROGBITS 0000000000000000 000090 000030 00 A 0 0 8 -- 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