mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-17 13:10:12 +08:00
PR 12763
bfd/ * elf.c (assign_file_positions_for_load_sections): Set sh_offset for .tbss, and page align same for all SHT_NOBITS sections. ld/ * ldlang.c (lang_output_section_find_by_flags): Match orphan .sdata2 like sections to existing .sdata2, and similarly for orphan TLS sections. * emultempl/elf32.em (place_orphan): Exclude .tbss from orphan_bss.
This commit is contained in:
parent
3bd61671c3
commit
6de6a7fe35
@ -1,3 +1,9 @@
|
||||
2011-05-23 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 12763
|
||||
* elf.c (assign_file_positions_for_load_sections): Set sh_offset for
|
||||
.tbss, and page align same for all SHT_NOBITS sections.
|
||||
|
||||
2011-05-21 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 12763
|
||||
|
21
bfd/elf.c
21
bfd/elf.c
@ -4684,11 +4684,24 @@ assign_file_positions_for_load_sections (bfd *abfd,
|
||||
}
|
||||
else
|
||||
{
|
||||
if (p->p_type == PT_LOAD)
|
||||
if (p->p_type == PT_LOAD
|
||||
|| (this_hdr->sh_type == SHT_NOBITS
|
||||
&& (this_hdr->sh_flags & SHF_TLS) != 0
|
||||
&& this_hdr->sh_offset == 0))
|
||||
{
|
||||
this_hdr->sh_offset = sec->filepos = off;
|
||||
if (this_hdr->sh_type != SHT_NOBITS)
|
||||
off += this_hdr->sh_size;
|
||||
if (this_hdr->sh_type == SHT_NOBITS)
|
||||
{
|
||||
/* These sections don't really need sh_offset,
|
||||
but give them one anyway. */
|
||||
bfd_vma adjust = vma_page_aligned_bias (this_hdr->sh_addr,
|
||||
off, align);
|
||||
this_hdr->sh_offset = sec->filepos = off + adjust;
|
||||
}
|
||||
else
|
||||
{
|
||||
this_hdr->sh_offset = sec->filepos = off;
|
||||
off += this_hdr->sh_size;
|
||||
}
|
||||
}
|
||||
|
||||
if (this_hdr->sh_type != SHT_NOBITS)
|
||||
|
@ -1,3 +1,11 @@
|
||||
2011-05-23 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 12763
|
||||
* ldlang.c (lang_output_section_find_by_flags): Match orphan .sdata2
|
||||
like sections to existing .sdata2, and similarly for orphan TLS
|
||||
sections.
|
||||
* emultempl/elf32.em (place_orphan): Exclude .tbss from orphan_bss.
|
||||
|
||||
2011-05-17 Tomohiro Kashiwada <kikairoya@gmail.com>
|
||||
|
||||
PR ld/12759
|
||||
|
10
ld/ldlang.c
10
ld/ldlang.c
@ -1579,8 +1579,14 @@ lang_output_section_find_by_flags (const asection *sec,
|
||||
}
|
||||
flags ^= sec->flags;
|
||||
if (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
|
||||
| SEC_READONLY))
|
||||
&& !(look->flags & (SEC_SMALL_DATA | SEC_THREAD_LOCAL)))
|
||||
| SEC_READONLY | SEC_SMALL_DATA))
|
||||
|| (!(flags & (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD
|
||||
| SEC_READONLY))
|
||||
&& !(look->flags & SEC_SMALL_DATA))
|
||||
|| (!(flags & (SEC_THREAD_LOCAL | SEC_ALLOC))
|
||||
&& (look->flags & SEC_THREAD_LOCAL)
|
||||
&& (!(flags & SEC_LOAD)
|
||||
|| (look->flags & SEC_LOAD))))
|
||||
found = look;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user