This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug libc/14376] glibc-2.16 strdup Illegal Instruction on sparc64
- From: "jengelh at inai dot de" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: Mon, 17 Sep 2012 21:15:24 +0000
- Subject: [Bug libc/14376] glibc-2.16 strdup Illegal Instruction on sparc64
- Auto-submitted: auto-generated
- References: <bug-14376-131@http.sourceware.org/bugzilla/>
http://sourceware.org/bugzilla/show_bug.cgi?id=14376
--- Comment #9 from Jan Engelhardt <jengelh at inai dot de> 2012-09-17 21:15:24 UTC ---
binutils is 2.22, so objdump output should be accurate. I upgraded to
gdb-7.4.50.20120603 now so that it has also used the 2.22 tools during build.
(Previously gdb-7.1 was used.)
This changes things only minimally. __strdup has become __GI___strdup in gdb
printouts, but it still shows a call to _Qp_xtoq@plt+64 rather than memcpy in
the disassembly of (__GI___)strdup.
But I do not think gdb is at fault here - since the SIGILL also happens without
it. It seems as if the resolver is botched.
Calling memcpy() from in main() properly executes the memcpy function, i.e.
will call __memcpy_niagara1. The problem really only seems to affect references
to IFUNCs from within libc.so itself.
Login account could be provided, if you would want to have a peek at this.
--
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.