aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf64-x86-64.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-10-06 00:43:31 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-10-06 00:44:38 -0700
commite74399c47c76b8111651f41b52a05401852cf799 (patch)
treefbb5f6b6bd0784f3e5177087b6112131d0b4174d /bfd/elf64-x86-64.c
parentaebcc8ffd201adbee973b414818b01876dabe1a0 (diff)
downloadgdb-e74399c47c76b8111651f41b52a05401852cf799.zip
gdb-e74399c47c76b8111651f41b52a05401852cf799.tar.gz
gdb-e74399c47c76b8111651f41b52a05401852cf799.tar.bz2
x86: Add COPY_INPUT_RELOC_P
Add COPY_INPUT_RELOC_P which returns TRUE if input relocation should be copied to output. * elfxx-x86.h (COPY_INPUT_RELOC_P): New. * elf32-i386.c (elf_i386_relocate_section): Use it. * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
Diffstat (limited to 'bfd/elf64-x86-64.c')
-rw-r--r--bfd/elf64-x86-64.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index b27d4c5..fcc7f55 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -3126,14 +3126,7 @@ direct:
if (skip)
memset (&outrel, 0, sizeof outrel);
- /* h->dynindx may be -1 if this symbol was marked to
- become local. */
- else if (h != NULL
- && h->dynindx != -1
- && (X86_PCREL_TYPE_P (r_type)
- || !(bfd_link_executable (info)
- || SYMBOLIC_BIND (info, h))
- || ! h->def_regular))
+ else if (COPY_INPUT_RELOC_P (info, h, r_type))
{
outrel.r_info = htab->r_info (h->dynindx, r_type);
outrel.r_addend = rel->r_addend;