bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/6658] New: gold SEGVs when linking, apparently due to a .eh_fr


From: me at cgf dot cx
Subject: [Bug gold/6658] New: gold SEGVs when linking, apparently due to a .eh_frame section
Date: 19 Jun 2008 20:09:04 -0000

I just had gold segv when trying to link a freebsd shared library.

Through trial or error, I tracked the problem down to the .eh_frame
section in crtbeginS.o.  If I remove that frame it works.  If I add a
--eh-frame-header option to the gold command line, it fails an
assertion: agold_assert(found) at line 948 in
gold::Merged_symbol_value<64>::value_from_output_section .

I can work around this by removing the .eh_frame section for now but I
thought you'd like to know about this.

(Although I realize you probably won't be able to do anything since your
at the gcc symposium)


The segv is here:

#0  0x0000000000581100 in
gold::Eh_frame_hdr::found_unrecognized_eh_frame_section (this=0x0) at
../../gold/ehframe.h:60
60        { this->any_unrecognized_eh_frame_sections_ = true; }

#1  0x000000000058ce67 in gold::Eh_frame::add_ehframe_input_section<64, false>
(this=0xbadf6e0, object=0xbb0bf40, symbols=0x2b3a2c9b6568 "", symbols_size=384,
symbol_names=0x2b3a2c9b66e8 "", symbol_names_size=86, shndx=7,
    reloc_shndx=8, reloc_type=4) at ../../gold/ehframe.cc:560
#2  0x0000000000474f62 in gold::Layout::layout_eh_frame<64, false>
(this=0x7fff7e0facf0, object=0xbb0bf40, symbols=0x2b3a2c9b6568 "",
symbols_size=384, symbol_names=0x2b3a2c9b66e8 "", symbol_names_size=86, shndx=7,
    address@hidden, reloc_shndx=8, reloc_type=4, off=0x7fff7e0f80f8) at
../../gold/layout.cc:650
#3  0x0000000000498e03 in gold::Sized_relobj<64, false>::do_layout
(this=0xbb0bf40, symtab=0x7fff7e0fafb0, layout=0x7fff7e0facf0, sd=0xbb0c130) at
../../gold/object.cc:1030
#4  0x00000000004e4cf2 in gold::Object::layout (this=0xbb0bf40,
symtab=0x7fff7e0fafb0, layout=0x7fff7e0facf0, sd=0xbb0c130) at
../../gold/object.h:339
#5  0x00000000004e41f6 in gold::Add_symbols::run (this=0xbae0600) at
../../gold/readsyms.cc:367
#6  0x000000000054c18a in gold::Workqueue::find_and_run_task
(this=0x7fff7e0fb220, thread_number=0) at ../../gold/workqueue.cc:314
#7  0x000000000054c313 in gold::Workqueue::process (this=0x7fff7e0fb220,
thread_number=0) at ../../gold/workqueue.cc:480
#8  0x00000000004041d9 in main (argc=13, argv=0x7fff7e0fb458) at
../../gold/main.cc:218

The stack trace from the assert is:

#0  gold::Merged_symbol_value<64>::value_from_output_section (this=0x1ef885f0,
object=0x1ef33070, input_shndx=10, input_offset=0) at ../../gold/reloc.cc:948
#1  0x0000000000428f32 in gold::Merged_symbol_value<64>::value (this=0x1ef885f0,
object=0x1ef33070, input_shndx=10, addend=0) at ../../gold/object.h:900
#2  0x0000000000428fbf in gold::Symbol_value<64>::value<false> (this=0x1ef333f0,
object=0x1ef33070, addend=0) at ../../gold/object.h:949
#3  0x00000000004d26a7 in gold::Output_reloc<9, true, 64, false>::symbol_value
(this=0x1ef649a0, addend=0) at ../../gold/output.cc:924
#4  0x00000000004d2702 in gold::Output_reloc<4, true, 64, false>::write
(this=0x1ef649a0, pov=0x2b90c2f6d750 "(0") at ../../gold/output.cc:989
#5  0x00000000004d27f1 in gold::Output_data_reloc_base<4, true, 64,
false>::do_write (this=0x1ef609e0, of=0x1ef44cb0) at ../../gold/output.cc:1039
#6  0x000000000046b4e2 in gold::Output_data::write (this=0x1ef609e0,
file=0x1ef44cb0) at ../../gold/output.h:206
#7  0x00000000004ae738 in gold::Output_section::Input_section::write
(this=0x1ef60b80, of=0x1ef44cb0) at ../../gold/output.cc:1691
#8  0x00000000004b0dfa in gold::Output_section::do_write (this=0x1ef60aa0,
of=0x1ef44cb0) at ../../gold/output.cc:2424
#9  0x000000000046b4e2 in gold::Output_data::write (this=0x1ef60aa0,
file=0x1ef44cb0) at ../../gold/output.h:206
#10 0x0000000000463c5c in gold::Layout::write_output_sections
(this=0x7fffe7b4d740, of=0x1ef44cb0) at ../../gold/layout.cc:2978
#11 0x0000000000463cb1 in gold::Write_sections_task::run (this=0x1ef63d40) at
../../gold/layout.cc:3207
#12 0x000000000054c18a in gold::Workqueue::find_and_run_task
(this=0x7fffe7b4dc70, thread_number=0) at ../../gold/workqueue.cc:314
#13 0x000000000054c313 in gold::Workqueue::process (this=0x7fffe7b4dc70,
thread_number=0) at ../../gold/workqueue.cc:480
#14 0x00000000004041d9 in main (argc=14, argv=0x7fffe7b4dea8) at
../../gold/main.cc:218

objdump -h from crtbeginS.o:

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
  0 .text         000000a4  0000000000000000  0000000000000000  00000040  2**4
                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
  1 .data         00000000  0000000000000000  0000000000000000  000000e4  2**2
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000050  0000000000000000  0000000000000000  00000100  2**5
                  ALLOC
  3 .ctors        00000008  0000000000000000  0000000000000000  00000100  2**3
                  CONTENTS, ALLOC, LOAD, DATA
  4 .dtors        00000008  0000000000000000  0000000000000000  00000108  2**3
                  CONTENTS, ALLOC, LOAD, DATA
  5 .eh_frame     00000058  0000000000000000  0000000000000000  00000110  2**3
                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA
  6 .jcr          00000000  0000000000000000  0000000000000000  00000168  2**3
                  CONTENTS, ALLOC, LOAD, DATA
  7 .data.rel     00000008  0000000000000000  0000000000000000  00000168  2**3
                  CONTENTS, ALLOC, LOAD, RELOC, DATA
  8 .data.rel.local 00000008  0000000000000000  0000000000000000  00000170  2**3
                  CONTENTS, ALLOC, LOAD, RELOC, DATA
  9 .fini         00000005  0000000000000000  0000000000000000  00000178  2**0
                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
 10 .init         00000005  0000000000000000  0000000000000000  0000017d  2**0
                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
 11 .comment      00000023  0000000000000000  0000000000000000  00000182  2**0
                  CONTENTS, READONLY

-- 
           Summary: gold SEGVs when linking, apparently due to a .eh_frame
                    section
           Product: binutils
           Version: 2.19 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gold
        AssignedTo: ian at airs dot com
        ReportedBy: me at cgf dot cx
                CC: bug-binutils at gnu dot org
 GCC build triplet: x86_64-rhel5-linux
  GCC host triplet: x86_64-rhel5-linux
GCC target triplet: x86_64-unknown-freebsd6.0


http://sourceware.org/bugzilla/show_bug.cgi?id=6658

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]