* elf64-x86-64.c (elf_x86_64_relocate_section): Check
info->executable for symbols which need copy relocs.
2014-12-02 H.J. Lu <hongjiu.lu@intel.com>
+ * elf64-x86-64.c (elf_x86_64_relocate_section): Check
+ info->executable for symbols which need copy relocs.
+
+2014-12-02 H.J. Lu <hongjiu.lu@intel.com>
+
* elf64-x86-64.c (elf_x86_64_check_relocs): Revert the last
change.
(elf_x86_64_adjust_dynamic_symbol): Don't check !info->shared
defined locally or for a branch. */
fail = !h->def_regular && !branch;
}
- else if (!h->needs_copy)
+ else if (!(info->executable && h->needs_copy))
{
/* Symbol doesn't need copy reloc and isn't referenced
locally. We only allow branch to symbol with
/* Don't copy a pc-relative relocation into the output file
if the symbol needs copy reloc. */
if ((info->shared
- && !(h != NULL
+ && !(info->executable
+ && h != NULL
&& h->needs_copy
&& IS_X86_64_PCREL_TYPE (r_type))
&& (h == NULL