[Bug ld/13817] Broken IFUNC support

2012-03-12 Thread hjl.tools at gmail dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13817

H.J. Lu  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #6 from H.J. Lu  2012-03-13 02:27:39 
UTC ---
Fixed.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

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


[Bug ld/13817] Broken IFUNC support

2012-03-09 Thread cvs-commit at gcc dot gnu.org
http://sourceware.org/bugzilla/show_bug.cgi?id=13817

--- Comment #5 from cvs-commit at gcc dot gnu.org  2012-03-09 16:28:50 UTC ---
CVSROOT:/cvs/src
Module name:src
Changes by:h...@sourceware.org2012-03-09 16:28:38

Modified files:
bfd: ChangeLog elf32-i386.c elf64-x86-64.c 
ld/testsuite   : ChangeLog 
ld/testsuite/ld-i386: pr13302.d 
ld/testsuite/ld-x86-64: pr13082-5b.d pr13082-6a.d pr13082-6b.d 

Log message:
Restore R_386_IRELATIVE and R_X86_64_IRELATIVE

bfd/

2012-03-09  H.J. Lu  

PR ld/13817
* bfd/elf32-i386.c (elf_i386_relocate_section): Restore
R_386_IRELATIVE.

* * elf64-x86-64.c (elf_x86_64_relocate_section): Restore
R_X86_64_IRELATIVE.

ld/testsuite/

2012-03-09  H.J. Lu  

PR ld/13817
* ld-i386/pr13302.d: Updated.
* ld-x86-64/pr13082-5b.d: Likewise.
* ld-x86-64/pr13082-6a.d: Likewise.
* ld-x86-64/pr13082-6b.d: Likewise.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.5624&r2=1.5625
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf32-i386.c.diff?cvsroot=src&r1=1.265&r2=1.266
http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf64-x86-64.c.diff?cvsroot=src&r1=1.248&r2=1.249
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ChangeLog.diff?cvsroot=src&r1=1.1499&r2=1.1500
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-i386/pr13302.d.diff?cvsroot=src&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-x86-64/pr13082-5b.d.diff?cvsroot=src&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-x86-64/pr13082-6a.d.diff?cvsroot=src&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-x86-64/pr13082-6b.d.diff?cvsroot=src&r1=1.2&r2=1.3

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

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


[Bug ld/13817] Broken IFUNC support

2012-03-08 Thread hjl.tools at gmail dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13817

--- Comment #4 from H.J. Lu  2012-03-08 15:08:22 
UTC ---
I'd like to keep i386 consistent with x86-64 as much as possible.
I will revert both changes.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

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


[Bug ld/13817] Broken IFUNC support

2012-03-08 Thread jakub at redhat dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13817

--- Comment #3 from Jakub Jelinek  2012-03-08 08:09:51 
UTC ---
I think you can keep x86_64 as is.  For i386 such PLT slots in the non-pic
binaries could stay, but if we don't have any registers that we can clobber,
the special alternate plt slots that would be needed would be complicated,
especially when there is no red zone on i386.
So perhaps reverting that patch for i386 or limiting it to non-PIE executables
is the best short time fix, until we figure out something that will work. 
Without spare registers/red zone the only alternatives I can imagine are either
one breaking the call/ret heuristics in the CPU (i.e. compute the desired
address in the return slot on the stack (after call) and then ret to it), or
using some __thread variable to hold where would we jump to.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

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


[Bug ld/13817] Broken IFUNC support

2012-03-07 Thread hjl.tools at gmail dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13817

--- Comment #2 from H.J. Lu  2012-03-08 01:14:08 
UTC ---
So we have to use real function, not PLT entry for non-GOT reference to
locally defined IFUNC symbols, at least on i386.  Will revert:

http://sourceware.org/ml/binutils/2011-10/msg00203.html

cause any problems? It will put IRELATIVE relocations in .rel.dyn/.rela.dyn
section, which was the previous behavior.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

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


[Bug ld/13817] Broken IFUNC support

2012-03-07 Thread jakub at redhat dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=13817

--- Comment #1 from Jakub Jelinek  2012-03-07 10:24:56 
UTC ---
Created attachment 6264
  --> http://sourceware.org/bugzilla/attachment.cgi?id=6264
ifunctest.tar.bz2

CC='gcc -m32' sh ./ifunc.sh
LD_LIBRARY_PATH=. ./ifunc3
shows the segfault (the PLT calling completely unrelated function).

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are on the CC list for the bug.

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