This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb and binutils branch binutils-2_24-branch updated. 9da92c3812d5b5ddca09b4732939f1645d89bc59


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]