[Bug ld/11088] Internal Error in ppc64_elf_gc_sweep_hook

2009-12-16 Thread amodra at bigpond dot net dot au

--- Additional Comments From amodra at bigpond dot net dot au  2009-12-16 
23:34 ---
Found it.  The symbol in question is hidden.  check_relocs records a need for a
plt entry ok, but then we hit code after this comment in elflink.c
/* If the symbol already has a dynamic index, but
   visibility says it should not be visible, turn it into
   a local symbol.  */
So elf_backend_hide_symbol zaps the plt entry.

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=11088

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug ld/11088] Internal Error in ppc64_elf_gc_sweep_hook

2009-12-16 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2009-12-17 
00:07 ---
Subject: Bug 11088

CVSROOT:/cvs/src
Module name:src
Changes by: amo...@sourceware.org   2009-12-17 00:07:38

Modified files:
bfd: ChangeLog elf64-ppc.c 

Log message:
PR ld/11088
* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Don't abort if symbol
hiding has nulled out plt.plist.

Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=srcr1=1.4862r2=1.4863
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/elf64-ppc.c.diff?cvsroot=srcr1=1.304r2=1.305



-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=11088

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug ld/11088] Internal Error in ppc64_elf_gc_sweep_hook

2009-12-16 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2009-12-17 
05:45 ---
Subject: Bug 11088

CVSROOT:/cvs/src
Module name:src
Changes by: amo...@sourceware.org   2009-12-17 05:45:26

Modified files:
include/elf: ChangeLog ppc.h 
bfd: ChangeLog elf32-ppc.c 

Log message:
PR ld/11088
include/elf/
* ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT,
R_PPC_RELAX32PC_PLT): Delete.
(R_PPC_RELAX, R_PPC_RELAX_PLT, R_PPC_RELAX_PLTREL24): Define.
bfd/
* elf32-ppc.c (update_plt_info): Clear sec here when addend is
less than 32768..
(ppc_elf_check_relocs): ..rather than doing so here.  Ignore new
relax relocs.
(ppc_elf_gc_sweep_hook): Don't segfault when symbol hiding has
removed plt_entry records.
(ppc_elf_tls_setup): Handle PIE calls to __tls_get_addr correctly.
(ppc_elf_tls_optimize): Likewise.  Also dec __tls_get_addr refcount
when optimizing code using new tlsgd and tlsld marker relocs.
(ppc_elf_relax_section): Differentiate relaxed PLTREL24 relocs
from ADDR24 relocs using plt or glink.  Don't clear the addend
for R_PPC_RELAX_PLTREL24.
(ppc_elf_relocate_section): Correctly handle addends on relaxed
PLTREL24 relocs.

Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/include/elf/ChangeLog.diff?cvsroot=srcr1=1.383r2=1.384
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/include/elf/ppc.h.diff?cvsroot=srcr1=1.26r2=1.27
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=srcr1=1.4863r2=1.4864
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/elf32-ppc.c.diff?cvsroot=srcr1=1.272r2=1.273



-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=11088

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug ld/11088] Internal Error in ppc64_elf_gc_sweep_hook

2009-12-16 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2009-12-17 
05:46 ---
Subject: Bug 11088

CVSROOT:/cvs/src
Module name:src
Branch: binutils-2_20-branch
Changes by: amo...@sourceware.org   2009-12-17 05:46:06

Modified files:
include/elf: ChangeLog ppc.h 
bfd: ChangeLog elf32-ppc.c 

Log message:
PR ld/11088
include/elf/
* ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT,
R_PPC_RELAX32PC_PLT): Delete.
(R_PPC_RELAX, R_PPC_RELAX_PLT, R_PPC_RELAX_PLTREL24): Define.
bfd/
* elf32-ppc.c (update_plt_info): Clear sec here when addend is
less than 32768..
(ppc_elf_check_relocs): ..rather than doing so here.  Ignore new
relax relocs.
(ppc_elf_gc_sweep_hook): Don't segfault when symbol hiding has
removed plt_entry records.
(ppc_elf_tls_setup): Handle PIE calls to __tls_get_addr correctly.
(ppc_elf_tls_optimize): Likewise.  Also dec __tls_get_addr refcount
when optimizing code using new tlsgd and tlsld marker relocs.
(ppc_elf_relax_section): Differentiate relaxed PLTREL24 relocs
from ADDR24 relocs using plt or glink.  Don't clear the addend
for R_PPC_RELAX_PLTREL24.
(ppc_elf_relocate_section): Correctly handle addends on relaxed
PLTREL24 relocs.

Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/include/elf/ChangeLog.diff?cvsroot=srconly_with_tag=binutils-2_20-branchr1=1.379.2.1r2=1.379.2.2
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/include/elf/ppc.h.diff?cvsroot=srconly_with_tag=binutils-2_20-branchr1=1.25.4.1r2=1.25.4.2
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=srconly_with_tag=binutils-2_20-branchr1=1.4761.2.34r2=1.4761.2.35
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/elf32-ppc.c.diff?cvsroot=srconly_with_tag=binutils-2_20-branchr1=1.267.2.3r2=1.267.2.4



-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=11088

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug ld/11088] Internal Error in ppc64_elf_gc_sweep_hook

2009-12-14 Thread amodra at bigpond dot net dot au

--- Additional Comments From amodra at bigpond dot net dot au  2009-12-14 
23:40 ---
I'd like to know why we have the failure before you apply your patch, Nick. 
Especially since there's a similar ppc32 report but no testcase.  In looking
over the ppc32 code I found a number of problems with handling of pltrel24
relocs but nothing that might cause a failure in gc_sweep_hook.  :-(

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=11088

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.


___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils