public inbox for glibc-bugs@sourceware.org help / color / mirror / Atom feed
From: "andy dot andystewart at gmail dot com" <sourceware-bugzilla@sources.redhat.com> To: glibc-bugs@sources.redhat.com Subject: [Bug libc/455] New: ARM profiling fault Date: Sun, 17 Oct 2004 00:39:00 -0000 [thread overview] Message-ID: <20041017003957.455.andy.andystewart@gmail.com> (raw) A segmentation fault occurs when using the -pg profiling options of gcc for ARM targets. The problem is due to how a buffer is allocated for profiling samples. One allocation is made for multiple buffers, and the second buffer is not aligned on a 4 byte boundary. When _mcount is subsequently called, an invalid index is read from the unaligned buffer, and _mcount attempts to store the profiling data at an invalid address. Please include the following patches to gmon/gmon.c, elf/dl-profile.c, and elf/sprof.c in the glibc component: --- glibc-2.3.2/gmon/gmon.c 2004-09-25 10:16:24.000000000 -0700 +++ mod_gmon.c 2004-09-25 10:09:40.000000000 -0700 @@ -113,7 +113,7 @@ p->lowpc = ROUNDDOWN(lowpc, HISTFRACTION * sizeof(HISTCOUNTER)); p->highpc = ROUNDUP(highpc, HISTFRACTION * sizeof(HISTCOUNTER)); p->textsize = p->highpc - p->lowpc; - p->kcountsize = p->textsize / HISTFRACTION; + p->kcountsize = ((p->textsize / HISTFRACTION) + 3) & ~3; p->hashfraction = HASHFRACTION; p->log_hashfraction = -1; /* The following test must be kept in sync with the corresponding --- glibc-2.3.2/elf/dl-profile.c 2004-09-25 11:35:11.000000000 -0700 +++ mod-dl-profile.c 2004-09-25 11:39:40.000000000 -0700 @@ -238,7 +238,7 @@ } else log_hashfraction = -1; - tossize = textsize / HASHFRACTION; + tossize = ((textsize / HASHFRACTION) + 3) & ~3; fromlimit = textsize * ARCDENSITY / 100; if (fromlimit < MINARCS) fromlimit = MINARCS; --- glibc-2.3.2/elf/sprof.c 2004-09-25 11:52:41.000000000 -0700 +++ mod-sprof.c 2004-09-25 11:39:06.000000000 -0700 @@ -452,7 +452,7 @@ printf ("hashfraction = %d\ndivider = %Zu\n", result->hashfraction, result->hashfraction * sizeof (struct here_fromstruct)); - result->tossize = textsize / HASHFRACTION; + result->tossize = ((textsize / HASHFRACTION) + 3) & ~3; result->fromlimit = textsize * ARCDENSITY / 100; if (result->fromlimit < MINARCS) result->fromlimit = MINARCS; -- Summary: ARM profiling fault Product: glibc Version: 2.3.2 Status: NEW Severity: critical Priority: P1 Component: libc AssignedTo: gotom at debian dot or dot jp ReportedBy: andy dot andystewart at gmail dot com CC: glibc-bugs at sources dot redhat dot com GCC build triplet: Red Hat i386 Linux GCC host triplet: ARM Linux GCC target triplet: ARM Linux http://sources.redhat.com/bugzilla/show_bug.cgi?id=455 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
next reply other threads:[~2004-10-17 0:39 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2004-10-17 0:39 andy dot andystewart at gmail dot com [this message] 2005-10-10 14:56 ` [Bug libc/455] " drow at sources dot redhat dot com 2005-10-15 19:43 ` [Bug ports/455] " drepper at redhat dot com 2005-10-16 8:12 ` roland at gnu dot org 2006-10-31 15:02 ` drow at sources dot redhat dot com
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20041017003957.455.andy.andystewart@gmail.com \ --to=sourceware-bugzilla@sources.redhat.com \ --cc=glibc-bugs@sources.redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).