bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/17553] .eh_frame_hdr table[0] FDE at 00000978 overlaps table[1]


From: glaubitz at physik dot fu-berlin.de
Subject: [Bug ld/17553] .eh_frame_hdr table[0] FDE at 00000978 overlaps table[1] FDE at 000009a0 when not using "-Wl,-traditional" on sh4
Date: Thu, 06 Nov 2014 09:06:25 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=17553

--- Comment #9 from glaubitz at physik dot fu-berlin.de <glaubitz at physik dot 
fu-berlin.de> ---
Since Matthis Klose recently updated binutils in Debian, I was able to test
with a freshly compiled version of binutils. Unfortunately, the result is still
the same.

Here is the output of the full map if that helps:

address@hidden:~$ ld -v
GNU ld (GNU Binutils for Debian) 2.24.90.20141104
address@hidden:~$ ld -shared --eh-frame-hdr -o test.so test1.o test2.o
--print-map
ld: .eh_frame_hdr table[0] FDE at 000004d4 overlaps table[1] FDE at 000004f0.

Discarded input sections

 .group         0x00000000        0x8 test1.o
 .group         0x00000000        0x8 test1.o
 .note.GNU-stack
                0x00000000        0x0 test1.o
 .group         0x00000000        0x8 test2.o
 .group         0x00000000        0x8 test2.o
 .text._ZN1XD2Ev
                0x00000000       0x16 test2.o
 .text._Z9xkcd_randv
                0x00000000       0x5c test2.o
 .note.GNU-stack
                0x00000000        0x0 test2.o

Memory Configuration

Name             Origin             Length             Attributes
*default*        0x00000000         0xffffffff

Linker script and memory map

LOAD test1.o
LOAD test2.o
                0x000000d4                . = (0x0 + SIZEOF_HEADERS)

.note.gnu.build-id
 *(.note.gnu.build-id)

.hash           0x000000d4       0x50
 *(.hash)
 .hash          0x000000d4       0x50 test1.o

.gnu.hash
 *(.gnu.hash)

.dynsym         0x00000124       0xf0
 *(.dynsym)
 .dynsym        0x00000124       0xf0 test1.o

.dynstr         0x00000214       0xa7
 *(.dynstr)
 .dynstr        0x00000214       0xa7 test1.o

.gnu.version    0x000002bc        0x0
 *(.gnu.version)
 .gnu.version   0x000002bc        0x0 test1.o

.gnu.version_d  0x000002bc        0x0
 *(.gnu.version_d)
 .gnu.version_d
                0x000002bc        0x0 test1.o

.gnu.version_r  0x000002bc        0x0
 *(.gnu.version_r)
 .gnu.version_r
                0x000002bc        0x0 test1.o

.rela.dyn       0x000002bc       0x90
 *(.rela.init)
 *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
 .rela.text     0x000002bc       0x18 test1.o
 .rela.text._Z9xkcd_randv
                0x000002d4       0x48 test1.o
 *(.rela.fini)
 *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
 *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
 *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
 *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
 *(.rela.ctors)
 *(.rela.dtors)
 *(.rela.got)
 .rela.got      0x0000031c        0x0 test1.o
 *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
 *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
 *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
 *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
 *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
 *(.rela.iplt)
 .rela.got.funcdesc
                0x0000031c        0x0 test1.o
 .rela.eh_frame
                0x0000031c       0x30 test1.o

.rela.plt       0x0000034c        0x0
 *(.rela.plt)
 .rela.plt      0x0000034c        0x0 test1.o

.init
 *(SORT(.init))

.plt            0x0000034c        0x0
 *(.plt)
 .plt           0x0000034c        0x0 test1.o

.iplt
 *(.iplt)

.text           0x0000034c       0xb4
 *(.text.unlikely .text.*_unlikely .text.unlikely.*)
 *(.text.exit .text.exit.*)
 *(.text.startup .text.startup.*)
 *(.text.hot .text.hot.*)
 *(.text .stub .text.* .gnu.linkonce.t.*)
 .text          0x0000034c       0x20 test1.o
                0x0000034c                f1()
 .text._ZN1XD2Ev
                0x0000036c       0x16 test1.o
                0x0000036c                X::~X()
                0x0000036c                X::~X()
 *fill*         0x00000382        0x2 
 .text._Z9xkcd_randv
                0x00000384       0x5c test1.o
                0x00000384                xkcd_rand()
 .text          0x000003e0       0x20 test2.o
                0x000003e0                f2()
 *(.gnu.warning)

.fini
 *(SORT(.fini))
                0x00000400                PROVIDE (__etext, .)
                0x00000400                PROVIDE (_etext, .)
                0x00000400                PROVIDE (etext, .)

.rodata
 *(.rodata .rodata.* .gnu.linkonce.r.*)

.rofixup        0x00000400        0x0
 .rofixup       0x00000400        0x0 test1.o

.rodata1
 *(.rodata1)

.eh_frame_hdr   0x00000400       0x3c
 *(.eh_frame_hdr)
 .eh_frame_hdr  0x00000400       0x3c test1.o

.eh_frame       0x0000043c      0x100
 *(.eh_frame)
 .eh_frame      0x0000043c       0x98 test1.o
 .eh_frame      0x000004d4       0x68 test2.o
                                 0x98 (size before relaxing)

.gcc_except_table
                0x0000053c       0x18
 *(.gcc_except_table .gcc_except_table.*)
 .gcc_except_table
                0x0000053c        0xc test1.o
 .gcc_except_table
                0x00000548        0xc test2.o

.exception_ranges
 *(.exception_ranges .exception_ranges*)
                0x00000554                . = (ALIGN (0x10000) - ((0x10000 - .)
& 0xffff))
                0x00010554                . = DATA_SEGMENT_ALIGN (0x10000,
0x1000)

.eh_frame
 *(.eh_frame)

.gcc_except_table
 *(.gcc_except_table .gcc_except_table.*)

.exception_ranges
 *(.exception_ranges .exception_ranges*)

.tdata
 *(.tdata .tdata.* .gnu.linkonce.td.*)

.tbss
 *(.tbss .tbss.* .gnu.linkonce.tb.*)
 *(.tcommon)

.preinit_array
 *(.preinit_array)

.init_array
 *(SORT(.init_array.*) SORT(.ctors.*))
 *(.init_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o)
.ctors)

.fini_array
 *(SORT(.fini_array.*) SORT(.dtors.*))
 *(.fini_array EXCLUDE_FILE(*crtend?.o *crtend.o *crtbegin?.o *crtbegin.o)
.dtors)

.ctors
 *crtbegin.o(.ctors)
 *crtbegin?.o(.ctors)
 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
 *(SORT(.ctors.*))
 *(.ctors)

.dtors
 *crtbegin.o(.dtors)
 *crtbegin?.o(.dtors)
 *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
 *(SORT(.dtors.*))
 *(.dtors)

.jcr
 *(.jcr)

.data.rel.ro
 *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
 *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*)

.dynamic        0x00010554       0x78
 *(.dynamic)
 .dynamic       0x00010554       0x78 test1.o
                0x00010554                _DYNAMIC
                0x000105cc                . = DATA_SEGMENT_RELRO_END (., 0x0)

.data           0x000105cc        0x0
                0x000105cc                PROVIDE (__data_start, .)
 *(.data .data.* .gnu.linkonce.d.*)
 .data          0x000105cc        0x0 test1.o
 .data          0x000105cc        0x0 test2.o

.got.funcdesc   0x000105cc        0x0
 .got.funcdesc  0x000105cc        0x0 test1.o

.data1
 *(.data1)

.note.ABI-tag
 *(.note.ABI-tag)

.got            0x000105cc        0xc
 *(.got.plt)
 .got.plt       0x000105cc        0xc test1.o
                0x000105cc                _GLOBAL_OFFSET_TABLE_
 *(.igot.plt)
 *(.got)
 .got           0x000105d8        0x0 test1.o
 *(.igot)

.sdata
 *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
 *(.sdata .sdata.* .gnu.linkonce.s.*)
                0x000105d8                _edata = .
                0x000105d8                PROVIDE (edata, .)
                0x000105d8                . = .
                0x000105d8                __bss_start = .

.sbss
 *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
 *(.dynsbss)
 *(.sbss .sbss.* .gnu.linkonce.sb.*)
 *(.scommon)

.bss            0x000105d8        0x0
 *(.dynbss)
 .dynbss        0x000105d8        0x0 test1.o
 *(.bss .bss.* .gnu.linkonce.b.*)
 .bss           0x000105d8        0x0 test1.o
 .bss           0x000105d8        0x0 test2.o
 *(COMMON)
                0x000105d8                . = ALIGN ((. != 0x0)?0x4:0x1)
                0x000105d8                . = ALIGN (0x4)
                0x000105d8                . = SEGMENT_START ("ldata-segment",
.)
                0x000105d8                . = ALIGN (0x4)
                0x000105d8                _end = .
                0x000105d8                PROVIDE (end, .)
                0x000105d8                . = DATA_SEGMENT_END (.)

.stab
 *(.stab)

.stabstr
 *(.stabstr)

.stab.excl
 *(.stab.excl)

.stab.exclstr
 *(.stab.exclstr)

.stab.index
 *(.stab.index)

.stab.indexstr
 *(.stab.indexstr)

.comment        0x00000000       0x1c
 *(.comment)
 .comment       0x00000000       0x1c test1.o
                                 0x1d (size before relaxing)
 .comment       0x0000001c       0x1d test2.o

.debug
 *(.debug)

.line
 *(.line)

.debug_srcinfo
 *(.debug_srcinfo)

.debug_sfnames
 *(.debug_sfnames)

.debug_aranges
 *(.debug_aranges)

.debug_pubnames
 *(.debug_pubnames)

.debug_info
 *(.debug_info .gnu.linkonce.wi.*)

.debug_abbrev
 *(.debug_abbrev)

.debug_line
 *(.debug_line .debug_line.* .debug_line_end)

.debug_frame
 *(.debug_frame)

.debug_str
 *(.debug_str)

.debug_loc
 *(.debug_loc)

.debug_macinfo
 *(.debug_macinfo)

.debug_weaknames
 *(.debug_weaknames)

.debug_funcnames
 *(.debug_funcnames)

.debug_typenames
 *(.debug_typenames)

.debug_varnames
 *(.debug_varnames)

.debug_pubtypes
 *(.debug_pubtypes)

.debug_ranges
 *(.debug_ranges)

.debug_macro
 *(.debug_macro)

.gnu.attributes
 *(.gnu.attributes)

/DISCARD/
 *(.note.GNU-stack)
 *(.gnu_debuglink)
 *(.gnu.lto_*)
OUTPUT(test.so elf32-sh-linux)
address@hidden:~$

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

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