mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-26 04:15:28 +00:00
Improve orphaned TLS section handling
ld/ PR ld/16498 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Improve orphaned TLS section handling. ld/testsuite/ PR ld/16498 * ld-elf/pr16498a.d: New file. * ld-elf/pr16498a.s: Likewise. * ld-elf/pr16498a.t: Likewise.
This commit is contained in:
parent
6b6aa82881
commit
d85e71fec0
@ -1,3 +1,9 @@
|
||||
2014-01-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/16498
|
||||
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Improve
|
||||
orphaned TLS section handling.
|
||||
|
||||
2014-01-24 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* ldlang.c (lang_output_section_find_by_flags): Be careful to
|
||||
|
@ -1812,6 +1812,9 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
|
||||
{ ".rodata",
|
||||
SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA,
|
||||
0, 0, 0, 0 },
|
||||
{ ".tdata",
|
||||
SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_DATA | SEC_THREAD_LOCAL,
|
||||
0, 0, 0, 0 },
|
||||
{ ".data",
|
||||
SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_DATA,
|
||||
0, 0, 0, 0 },
|
||||
@ -1835,6 +1838,7 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
|
||||
{
|
||||
orphan_text = 0,
|
||||
orphan_rodata,
|
||||
orphan_tdata,
|
||||
orphan_data,
|
||||
orphan_bss,
|
||||
orphan_rel,
|
||||
@ -1962,6 +1966,8 @@ gld${EMULATION_NAME}_place_orphan (asection *s,
|
||||
place = &hold[orphan_bss];
|
||||
else if ((s->flags & SEC_SMALL_DATA) != 0)
|
||||
place = &hold[orphan_sdata];
|
||||
else if ((s->flags & SEC_THREAD_LOCAL) != 0)
|
||||
place = &hold[orphan_tdata];
|
||||
else if ((s->flags & SEC_READONLY) == 0)
|
||||
place = &hold[orphan_data];
|
||||
else if (((iself && (sh_type == SHT_RELA || sh_type == SHT_REL))
|
||||
|
@ -1,3 +1,10 @@
|
||||
2014-01-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/16498
|
||||
* ld-elf/pr16498a.d: New file.
|
||||
* ld-elf/pr16498a.s: Likewise.
|
||||
* ld-elf/pr16498a.t: Likewise.
|
||||
|
||||
2014-01-22 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* ld-scripts/pr14962-2.d: Correct target triple.
|
||||
|
9
ld/testsuite/ld-elf/pr16498a.d
Normal file
9
ld/testsuite/ld-elf/pr16498a.d
Normal file
@ -0,0 +1,9 @@
|
||||
#ld: -shared -T pr16498a.t
|
||||
#readelf: -l --wide
|
||||
#target: *-*-linux* *-*-gnu* *-*-nacl*
|
||||
|
||||
#...
|
||||
TLS .*
|
||||
#...
|
||||
[ ]+[0-9]+[ ]+.tdata .tbss[ ]*
|
||||
#pass
|
23
ld/testsuite/ld-elf/pr16498a.s
Normal file
23
ld/testsuite/ld-elf/pr16498a.s
Normal file
@ -0,0 +1,23 @@
|
||||
.globl data
|
||||
.data
|
||||
.align 32
|
||||
.type data, %object
|
||||
.size data, 120
|
||||
data:
|
||||
.long 1
|
||||
.zero 116
|
||||
.globl foo
|
||||
.section .tbss,"awT",%nobits
|
||||
.align 4
|
||||
.type foo, %object
|
||||
.size foo, 4
|
||||
foo:
|
||||
.zero 4
|
||||
.globl bar
|
||||
.section .tdata,"awT",%progbits
|
||||
.align 16
|
||||
.type bar, %object
|
||||
.size bar, 80
|
||||
bar:
|
||||
.long 1
|
||||
.zero 76
|
6
ld/testsuite/ld-elf/pr16498a.t
Normal file
6
ld/testsuite/ld-elf/pr16498a.t
Normal file
@ -0,0 +1,6 @@
|
||||
SECTIONS
|
||||
{
|
||||
.tdata : { *(.tdata) }
|
||||
.data : { *(.data)
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user