Blame binutils-2.25-x86_64-pie-relocs.patch
|
Nick Clifton |
09dade |
*** binutils-2.25.orig/bfd/elf64-x86-64.c 2015-01-20 16:57:03.416958519 +0000
|
|
Nick Clifton |
09dade |
--- binutils-2.25/bfd/elf64-x86-64.c 2015-01-20 16:59:10.455588496 +0000
|
|
Nick Clifton |
09dade |
*************** elf_x86_64_allocate_dynrelocs (struct el
|
|
Nick Clifton |
09dade |
*** 2677,2689 ****
|
|
Nick Clifton |
09dade |
&& ! bfd_elf_link_record_dynamic_symbol (info, h))
|
|
Nick Clifton |
09dade |
return FALSE;
|
|
Nick Clifton |
09dade |
}
|
|
Nick Clifton |
09dade |
! /* For PIE, discard space for relocs against symbols which
|
|
Nick Clifton |
09dade |
! turn out to need copy relocs. */
|
|
Nick Clifton |
09dade |
else if (info->executable
|
|
Nick Clifton |
09dade |
&& (h->needs_copy || eh->needs_copy)
|
|
Nick Clifton |
09dade |
&& h->def_dynamic
|
|
Nick Clifton |
09dade |
&& !h->def_regular)
|
|
Nick Clifton |
09dade |
! eh->dyn_relocs = NULL;
|
|
Nick Clifton |
09dade |
}
|
|
Nick Clifton |
09dade |
}
|
|
Nick Clifton |
09dade |
else if (ELIMINATE_COPY_RELOCS)
|
|
Nick Clifton |
09dade |
--- 2677,2699 ----
|
|
Nick Clifton |
09dade |
&& ! bfd_elf_link_record_dynamic_symbol (info, h))
|
|
Nick Clifton |
09dade |
return FALSE;
|
|
Nick Clifton |
09dade |
}
|
|
Nick Clifton |
09dade |
! /* For PIE, discard space for pc-relative relocs against
|
|
Nick Clifton |
09dade |
! symbols which turn out to need copy relocs. */
|
|
Nick Clifton |
09dade |
else if (info->executable
|
|
Nick Clifton |
09dade |
&& (h->needs_copy || eh->needs_copy)
|
|
Nick Clifton |
09dade |
&& h->def_dynamic
|
|
Nick Clifton |
09dade |
&& !h->def_regular)
|
|
Nick Clifton |
09dade |
! {
|
|
Nick Clifton |
09dade |
! struct elf_dyn_relocs **pp;
|
|
Nick Clifton |
09dade |
!
|
|
Nick Clifton |
09dade |
! for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
|
|
Nick Clifton |
09dade |
! {
|
|
Nick Clifton |
09dade |
! if (p->pc_count != 0)
|
|
Nick Clifton |
09dade |
! *pp = p->next;
|
|
Nick Clifton |
09dade |
! else
|
|
Nick Clifton |
09dade |
! pp = &p->next;
|
|
Nick Clifton |
09dade |
! }
|
|
Nick Clifton |
09dade |
! }
|
|
Nick Clifton |
09dade |
}
|
|
Nick Clifton |
09dade |
}
|
|
Nick Clifton |
09dade |
else if (ELIMINATE_COPY_RELOCS)
|