PR 1042
* elf.c (assign_file_positions_for_segments): Remove excluded sections from the segment map.
This commit is contained in:
parent
b4ad899f0b
commit
540b09cb7d
@ -1,3 +1,9 @@
|
||||
2005-07-04 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
PR 1042
|
||||
* elf.c (assign_file_positions_for_segments): Remove excluded
|
||||
sections from the segment map.
|
||||
|
||||
2005-07-04 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
PR 1004
|
||||
|
10
bfd/elf.c
10
bfd/elf.c
@ -4044,7 +4044,8 @@ assign_file_positions_for_segments (bfd *abfd, struct bfd_link_info *link_info)
|
||||
{
|
||||
/* The placement algorithm assumes that non allocated sections are
|
||||
not in PT_LOAD segments. We ensure this here by removing such
|
||||
sections from the segment map. */
|
||||
sections from the segment map. We also remove excluded
|
||||
sections. */
|
||||
for (m = elf_tdata (abfd)->segment_map;
|
||||
m != NULL;
|
||||
m = m->next)
|
||||
@ -4052,13 +4053,12 @@ assign_file_positions_for_segments (bfd *abfd, struct bfd_link_info *link_info)
|
||||
unsigned int new_count;
|
||||
unsigned int i;
|
||||
|
||||
if (m->p_type != PT_LOAD)
|
||||
continue;
|
||||
|
||||
new_count = 0;
|
||||
for (i = 0; i < m->count; i ++)
|
||||
{
|
||||
if ((m->sections[i]->flags & SEC_ALLOC) != 0)
|
||||
if ((m->sections[i]->flags & SEC_EXCLUDE) == 0
|
||||
&& ((m->sections[i]->flags & SEC_ALLOC) != 0
|
||||
|| m->p_type != PT_LOAD))
|
||||
{
|
||||
if (i != new_count)
|
||||
m->sections[new_count] = m->sections[i];
|
||||
|
Loading…
Reference in New Issue
Block a user