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: Fri, 07 Nov 2014 12:40:28 +0000

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

--- Comment #11 from glaubitz at physik dot fu-berlin.de <glaubitz at physik 
dot fu-berlin.de> ---
(In reply to Alan Modra from comment #10)
> That map file isn't from linking the objects you attached here.

Oh, you're right, sorry. Just re-downloaded the object files from the bug
tracker here and ran the linker again.

We also did some more tests and it turns out that binutils work fine when
compiled with gcc-4.6, so it seems to be an issue with gcc-4.9.

Here is the run with the proper object files nevertheless:

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

Discarded input sections

 .group         0x00000000        0x8 test1.o
 .group         0x00000000        0xc test1.o
 .note.GNU-stack
                0x00000000        0x0 test1.o
 .group         0x00000000        0x8 test2.o
 .group         0x00000000        0xc test2.o
 .text._ZN1XD2Ev
                0x00000000       0x16 test2.o
 .text._Z9xkcd_randv
                0x00000000       0x68 test2.o
 .gcc_except_table._Z9xkcd_randv
                0x00000000        0xc 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       0xc8
 *(.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       0x24 test1.o
                0x0000034c                f1()
 .text._ZN1XD2Ev
                0x00000370       0x16 test1.o
                0x00000370                X::~X()
                0x00000370                X::~X()
 *fill*         0x00000386        0x2 
 .text._Z9xkcd_randv
                0x00000388       0x68 test1.o
                0x00000388                xkcd_rand()
 .text          0x000003f0       0x24 test2.o
                0x000003f0                f2()
 *(.gnu.warning)

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

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

.rofixup        0x00000414        0x0
 .rofixup       0x00000414        0x0 test1.o

.rodata1
 *(.rodata1)

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

.eh_frame       0x00000450      0x130
 *(.eh_frame)
 .eh_frame      0x00000450       0xb0 test1.o
 .eh_frame      0x00000500       0x80 test2.o
                                 0xb0 (size before relaxing)

.gcc_except_table
                0x00000580        0xc
 *(.gcc_except_table .gcc_except_table.*)
 .gcc_except_table._Z9xkcd_randv
                0x00000580        0xc test1.o

.exception_ranges
 *(.exception_ranges .exception_ranges*)
                0x0000058c                . = (ALIGN (0x10000) - ((0x10000 - .)
& 0xffff))
                0x0001058c                . = 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        0x0001058c       0x78
 *(.dynamic)
 .dynamic       0x0001058c       0x78 test1.o
                0x0001058c                _DYNAMIC
                0x00010604                . = DATA_SEGMENT_RELRO_END (., 0x0)

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

.got.funcdesc   0x00010604        0x0
 .got.funcdesc  0x00010604        0x0 test1.o

.data1
 *(.data1)

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

.got            0x00010604        0xc
 *(.got.plt)
 .got.plt       0x00010604        0xc test1.o
                0x00010604                _GLOBAL_OFFSET_TABLE_
 *(.igot.plt)
 *(.got)
 .got           0x00010610        0x0 test1.o
 *(.igot)

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

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

.bss            0x00010610        0x0
 *(.dynbss)
 .dynbss        0x00010610        0x0 test1.o
 *(.bss .bss.* .gnu.linkonce.b.*)
 .bss           0x00010610        0x0 test1.o
 .bss           0x00010610        0x0 test2.o
 *(COMMON)
                0x00010610                . = ALIGN ((. != 0x0)?0x4:0x1)
                0x00010610                . = ALIGN (0x4)
                0x00010610                . = SEGMENT_START ("ldata-segment",
.)
                0x00010610                . = ALIGN (0x4)
                0x00010610                _end = .
                0x00010610                PROVIDE (end, .)
                0x00010610                . = 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       0x1d
 *(.comment)
 .comment       0x00000000       0x1d test1.o
                                 0x1e (size before relaxing)
 .comment       0x0000001d       0x1e 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:~/adrian-ldtest$

-- 
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]