gdb and binutils branch master updated. c7e17e05b647f6233c2062d038e5421686217816
amodra@sourceware.org
amodra@sourceware.org
Mon Jan 13 05:17: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, master has been updated
via c7e17e05b647f6233c2062d038e5421686217816 (commit)
from 1a4416c4c7f02a73652429f4e8e8e966f55e3e8b (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=c7e17e05b647f6233c2062d038e5421686217816
commit c7e17e05b647f6233c2062d038e5421686217816
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/elf32-ppc.c | 21 +++++++++++++++++++--
1 files changed, 19 insertions(+), 2 deletions(-)
hooks/post-receive
--
gdb and binutils
More information about the Binutils-cvs
mailing list