public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug target/43643] New: gcc -m64 -pg corrupts %rdx / %rcx register @ 2010-04-04 21:08 jrgn dot keil at googlemail dot com 2010-04-04 21:16 ` [Bug target/43643] " jrgn dot keil at googlemail dot com ` (6 more replies) 0 siblings, 7 replies; 8+ messages in thread From: jrgn dot keil at googlemail dot com @ 2010-04-04 21:08 UTC (permalink / raw) To: gcc-bugs When profiling a 64bit binary compiled from the following source, the resulting binary crashes in strdup() / strlen(), gcc's 64bit x86 profiling code corrupts the contents of the %rcx / %rdx register. % /tmp/gcc4/bin/gcc --version gcc (GCC) 4.5.0 20100401 (experimental) % cat test.c #include <stdio.h> #include <stdlib.h> #include <string.h> void func(char *a, char *b, char *c) { strdup(a); strdup(b); strdup(c); } int main(int argc, char **argv) { func("a", "b", "c"); exit(0); } % /tmp/gcc4/bin/gcc -m64 -pg -o test test.c % file test test: ELF 64-bit LSB executable AMD64 Version 1, dynamically linked, not stripped % ./test Memory fault(coredump) % pstack core core 'core' of 19120: ./test fffffd7fff23fb94 strlen () + 14 000000000040184c func () + 44 000000000040187d main () + 2f 0000000000401138 _start () + 98 gmon-sol2.c: 260 "\tmovq\t%rax,(%rsp)\n" 261 "\tmovq\t%rcx,0x08(%rsp)\n" 262 "\tmovq\t%rdx,0x10(%rsp)\n" ... 277 "\tmovq\t0x10(%rsp),%rdx\n" 278 "\tmovq\t0x08(%rsp),%rdx\n" <<<<<<<<<<<<<< 279 "\tmovq\t(%rsp),%rax\n" Line 278 must restore to %rcx ! -- Summary: gcc -m64 -pg corrupts %rdx / %rcx register Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jrgn dot keil at googlemail dot com GCC build triplet: i386-pc-solaris2.11 GCC host triplet: i386-pc-solaris2.11 GCC target triplet: i386-pc-solaris2.11 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43643 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/43643] gcc -m64 -pg corrupts %rdx / %rcx register 2010-04-04 21:08 [Bug target/43643] New: gcc -m64 -pg corrupts %rdx / %rcx register jrgn dot keil at googlemail dot com @ 2010-04-04 21:16 ` jrgn dot keil at googlemail dot com 2010-04-05 10:06 ` rguenth at gcc dot gnu dot org ` (5 subsequent siblings) 6 siblings, 0 replies; 8+ messages in thread From: jrgn dot keil at googlemail dot com @ 2010-04-04 21:16 UTC (permalink / raw) To: gcc-bugs ------- Comment #1 from jrgn dot keil at googlemail dot com 2010-04-04 21:15 ------- Created an attachment (id=20306) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20306&action=view) SUggested fix This patch should fix the problem. % /tmp/gcc4/bin/gcc -m64 -pg -o test test.c % ./test % gprof -b test gmon.out granularity: each sample hit covers 4 byte(s) no time propagated called/total parents index %time self descendents called+self name index called/total children 0.00 0.00 1/1 main [2] [1] 0.0 0.00 0.00 1 func [1] ----------------------------------------------- 0.00 0.00 1/1 _start [16] [2] 0.0 0.00 0.00 1 main [2] 0.00 0.00 1/1 func [1] ----------------------------------------------- granularity: each sample hit covers 4 byte(s) no time accumulated % cumulative self self total time seconds seconds calls ms/call ms/call name 0.0 0.00 0.00 1 0.00 0.00 func [1] 0.0 0.00 0.00 1 0.00 0.00 main [2] Index by function name [1] func [2] main Object modules 1: test -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43643 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/43643] gcc -m64 -pg corrupts %rdx / %rcx register 2010-04-04 21:08 [Bug target/43643] New: gcc -m64 -pg corrupts %rdx / %rcx register jrgn dot keil at googlemail dot com 2010-04-04 21:16 ` [Bug target/43643] " jrgn dot keil at googlemail dot com @ 2010-04-05 10:06 ` rguenth at gcc dot gnu dot org 2010-04-08 14:46 ` ro at gcc dot gnu dot org ` (4 subsequent siblings) 6 siblings, 0 replies; 8+ messages in thread From: rguenth at gcc dot gnu dot org @ 2010-04-05 10:06 UTC (permalink / raw) To: gcc-bugs ------- Comment #2 from rguenth at gcc dot gnu dot org 2010-04-05 10:06 ------- Confirmed. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ro at gcc dot gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2010-04-05 10:06:06 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43643 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/43643] gcc -m64 -pg corrupts %rdx / %rcx register 2010-04-04 21:08 [Bug target/43643] New: gcc -m64 -pg corrupts %rdx / %rcx register jrgn dot keil at googlemail dot com 2010-04-04 21:16 ` [Bug target/43643] " jrgn dot keil at googlemail dot com 2010-04-05 10:06 ` rguenth at gcc dot gnu dot org @ 2010-04-08 14:46 ` ro at gcc dot gnu dot org 2010-04-08 14:49 ` ro at gcc dot gnu dot org ` (3 subsequent siblings) 6 siblings, 0 replies; 8+ messages in thread From: ro at gcc dot gnu dot org @ 2010-04-08 14:46 UTC (permalink / raw) To: gcc-bugs ------- Comment #3 from ro at gcc dot gnu dot org 2010-04-08 14:46 ------- Mine. -- ro at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |ro at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Known to fail| |4.4.4 4.5.0 4.6.0 Last reconfirmed|2010-04-05 10:06:06 |2010-04-08 14:46:42 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43643 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/43643] gcc -m64 -pg corrupts %rdx / %rcx register 2010-04-04 21:08 [Bug target/43643] New: gcc -m64 -pg corrupts %rdx / %rcx register jrgn dot keil at googlemail dot com ` (2 preceding siblings ...) 2010-04-08 14:46 ` ro at gcc dot gnu dot org @ 2010-04-08 14:49 ` ro at gcc dot gnu dot org 2010-04-08 14:51 ` ro at gcc dot gnu dot org ` (2 subsequent siblings) 6 siblings, 0 replies; 8+ messages in thread From: ro at gcc dot gnu dot org @ 2010-04-08 14:49 UTC (permalink / raw) To: gcc-bugs ------- Comment #4 from ro at gcc dot gnu dot org 2010-04-08 14:48 ------- Subject: Bug 43643 Author: ro Date: Thu Apr 8 14:48:46 2010 New Revision: 158130 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=158130 Log: gcc: PR target/43643 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx. gcc/testsuite: PR target/43643 * gcc.dg/pr43643.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr43643.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/gmon-sol2.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43643 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/43643] gcc -m64 -pg corrupts %rdx / %rcx register 2010-04-04 21:08 [Bug target/43643] New: gcc -m64 -pg corrupts %rdx / %rcx register jrgn dot keil at googlemail dot com ` (3 preceding siblings ...) 2010-04-08 14:49 ` ro at gcc dot gnu dot org @ 2010-04-08 14:51 ` ro at gcc dot gnu dot org 2010-04-08 15:10 ` ro at gcc dot gnu dot org 2010-04-08 15:12 ` ro at gcc dot gnu dot org 6 siblings, 0 replies; 8+ messages in thread From: ro at gcc dot gnu dot org @ 2010-04-08 14:51 UTC (permalink / raw) To: gcc-bugs ------- Comment #5 from ro at gcc dot gnu dot org 2010-04-08 14:51 ------- Subject: Bug 43643 Author: ro Date: Thu Apr 8 14:50:56 2010 New Revision: 158131 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=158131 Log: gcc: PR target/43643 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx. gcc/testsuite: PR target/43643 * gcc.dg/pr43643.c: New test. Added: branches/gcc-4_5-branch/gcc/testsuite/gcc.dg/pr43643.c Modified: branches/gcc-4_5-branch/gcc/ChangeLog branches/gcc-4_5-branch/gcc/config/i386/gmon-sol2.c branches/gcc-4_5-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43643 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/43643] gcc -m64 -pg corrupts %rdx / %rcx register 2010-04-04 21:08 [Bug target/43643] New: gcc -m64 -pg corrupts %rdx / %rcx register jrgn dot keil at googlemail dot com ` (4 preceding siblings ...) 2010-04-08 14:51 ` ro at gcc dot gnu dot org @ 2010-04-08 15:10 ` ro at gcc dot gnu dot org 2010-04-08 15:12 ` ro at gcc dot gnu dot org 6 siblings, 0 replies; 8+ messages in thread From: ro at gcc dot gnu dot org @ 2010-04-08 15:10 UTC (permalink / raw) To: gcc-bugs ------- Comment #6 from ro at gcc dot gnu dot org 2010-04-08 15:09 ------- Subject: Bug 43643 Author: ro Date: Thu Apr 8 15:09:17 2010 New Revision: 158133 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=158133 Log: gcc: PR target/43643 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx. gcc/testsuite: PR target/43643 * gcc.dg/pr43643.c: New test. gcc: Backport from mainline: 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> PR target/38085 * config/i386/i386.c (x86_function_profiler) [!NO_PROFILE_COUNTERS]: Fix typo. * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call instead of callq. libgcc: Backport from mainline: 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> PR target/38085 * config/i386/t-sol2 ($(T)gmon.o): Use CFLAGS instead of MULTILIB_CFLAGS. ($(T)gcrt1.o): Likewise. ($(T)crt1.o): Likewise. ($(T)crti.o): Likewise. ($(T)crtn.o): Likewise. Added: branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr43643.c Modified: branches/gcc-4_4-branch/gcc/ChangeLog branches/gcc-4_4-branch/gcc/config/i386/gmon-sol2.c branches/gcc-4_4-branch/gcc/config/i386/i386.c branches/gcc-4_4-branch/gcc/testsuite/ChangeLog branches/gcc-4_4-branch/libgcc/ChangeLog branches/gcc-4_4-branch/libgcc/config/i386/t-sol2 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43643 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/43643] gcc -m64 -pg corrupts %rdx / %rcx register 2010-04-04 21:08 [Bug target/43643] New: gcc -m64 -pg corrupts %rdx / %rcx register jrgn dot keil at googlemail dot com ` (5 preceding siblings ...) 2010-04-08 15:10 ` ro at gcc dot gnu dot org @ 2010-04-08 15:12 ` ro at gcc dot gnu dot org 6 siblings, 0 replies; 8+ messages in thread From: ro at gcc dot gnu dot org @ 2010-04-08 15:12 UTC (permalink / raw) To: gcc-bugs ------- Comment #7 from ro at gcc dot gnu dot org 2010-04-08 15:12 ------- Fixed for 4.4.4, 4.5.0, 4.6.0. -- ro at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Known to fail|4.4.4 4.5.0 4.6.0 | Known to work| |4.4.4 4.5.0 4.6.0 Resolution| |FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43643 ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-04-08 15:12 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2010-04-04 21:08 [Bug target/43643] New: gcc -m64 -pg corrupts %rdx / %rcx register jrgn dot keil at googlemail dot com 2010-04-04 21:16 ` [Bug target/43643] " jrgn dot keil at googlemail dot com 2010-04-05 10:06 ` rguenth at gcc dot gnu dot org 2010-04-08 14:46 ` ro at gcc dot gnu dot org 2010-04-08 14:49 ` ro at gcc dot gnu dot org 2010-04-08 14:51 ` ro at gcc dot gnu dot org 2010-04-08 15:10 ` ro at gcc dot gnu dot org 2010-04-08 15:12 ` ro at gcc dot gnu dot org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).