* elflink.c (elf_link_input_bfd): Check that relocs in SEC_ALLOC
	sections do not reference symbols in non-SEC_ALLOC sections.
This commit is contained in:
Alan Modra 2004-10-11 04:54:27 +00:00
parent 6c0c5b1e5d
commit 2ad770c380
2 changed files with 21 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2004-10-11 Alan Modra <amodra@bigpond.net.au>
PR 354
* elflink.c (elf_link_input_bfd): Check that relocs in SEC_ALLOC
sections do not reference symbols in non-SEC_ALLOC sections.
2004-10-11 Alan Modra <amodra@bigpond.net.au>
PR 437

View File

@ -6788,6 +6788,21 @@ elf_link_input_bfd (struct elf_final_link_info *finfo, bfd *input_bfd)
rel->r_info &= r_type_mask;
rel->r_addend = 0;
}
/* Check that loaded segments don't reference symbols
in non-loaded segments. */
if ((o->flags & SEC_ALLOC) != 0
&& sec != NULL
&& !bfd_is_abs_section (sec)
&& !elf_discarded_section (sec)
&& sec->output_section != NULL
&& (sec->output_section->flags & SEC_ALLOC) == 0)
{
(*_bfd_error_handler)
(_("`%s' referenced in section `%A' of %B: "
"defined in non-loaded section `%A' of %B\n"),
o, input_bfd, sec, sec->owner, sym_name);
}
}
}