mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
S/390: Issue error for overflowing relocs.
Building PIE executable from non-PIC code results in broken binaries. With this patch the problem is detected at link-time. bfd/ChangeLog: 2017-01-07 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * elf64-s390.c (elf_s390_relocate_section): Issue error for non-PLT relocs of shared libary symbol in exectuable.
This commit is contained in:
parent
0e123f69da
commit
431e5de3f2
@ -2701,6 +2701,18 @@ elf_s390_relocate_section (bfd *output_bfd,
|
||||
case R_390_PC32:
|
||||
case R_390_PC32DBL:
|
||||
case R_390_PC64:
|
||||
if (h != NULL
|
||||
&& bfd_link_pie (info)
|
||||
&& !h->def_regular)
|
||||
{
|
||||
_bfd_error_handler (_("%B: `%s' non-PLT reloc for symbol defined "
|
||||
"in shared library and accessed "
|
||||
"from executable "
|
||||
"(rebuild file with -fPIC ?)"),
|
||||
input_bfd, h->root.root.string);
|
||||
bfd_set_error (bfd_error_bad_value);
|
||||
return FALSE;
|
||||
}
|
||||
/* The target of these relocs are instruction operands
|
||||
residing in read-only sections. We cannot emit a runtime
|
||||
reloc for it. */
|
||||
|
Loading…
Reference in New Issue
Block a user