gdb and binutils branch binutils-2_24-branch updated. 9da92c3812d5b5ddca09b4732939f1645d89bc59
amodra@sourceware.org
amodra@sourceware.org
Thu Jun 12 15:30:00 GMT 2014
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The branch, binutils-2_24-branch has been updated
via 9da92c3812d5b5ddca09b4732939f1645d89bc59 (commit)
from 7cd56d98237946ed8dcb0b82797940309637605a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9da92c3812d5b5ddca09b4732939f1645d89bc59
commit 9da92c3812d5b5ddca09b4732939f1645d89bc59
Author: Alan Modra <amodra@gmail.com>
Date: Mon Jan 13 13:51:16 2014 +1030
Error on shared lib call to @local ifunc
On powerpc32, making ifuncs have non-default visibility in shared
libraries or pies can result in runtime failures. The problem is that
if gcc is told that a given function has non-default visibility, then
calls to that function are assumed to be local (which is true) and
thus need not go via a plt call stub (which is false for ifunc). If
the caller has no other reason to set up the got pointer (r30), code
won't be emitted to do so. However, a pic plt call stub makes use of
r30 to load the plt entry. So a call to an ifunc, which always needs
a plt entry, will fail.
This patch makes ld emit an error for the problem case, and allows
calls to non-default visibility ifuncs to work in normal executables.
I also fix some cases where ifuncs fail when using the old bss-plt.
* elf32-ppc.c (ppc_elf_check_relocs): For @local call to ifunc,
error when shared and force a plt call otherwise.
(ppc_elf_size_dynamic_sections): Don't emit DT_PPC_GOT unless
plt_type == PLT_NEW.
(ppc_elf_relocate_section): Add missing test to resolve ifuncs to
the appropriate call stub.
-----------------------------------------------------------------------
Summary of changes:
bfd/ChangeLog | 11 +++++++++++
bfd/elf32-ppc.c | 21 +++++++++++++++++++--
2 files changed, 30 insertions(+), 2 deletions(-)
hooks/post-receive
--
gdb and binutils
More information about the Binutils-cvs
mailing list