http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54487
--- Comment #12 from Teresa Johnson <tejohnson at google dot com> 2012-09-06 20:23:50 UTC --- On Thu, Sep 6, 2012 at 1:06 PM, hjl.tools at gmail dot com <gcc-bugzi...@gcc.gnu.org> wrote: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54487 > > --- Comment #11 from H.J. Lu <hjl.tools at gmail dot com> 2012-09-06 20:06:55 > UTC --- > (In reply to comment #8) >> I think I have a solution for the issue that H.J. is encountering. Details >> below. Markus and H.J., would you be able to try the following patch to see >> if >> it addresses the failure you were seeing? Markus, were you only seeing >> failures >> when using a parallel make? >> >> Index: libgcc/libgcov.c >> =================================================================== >> --- libgcc/libgcov.c (revision 191035) >> +++ libgcc/libgcov.c (working copy) >> @@ -707,7 +707,9 @@ gcov_exit (void) >> memcpy (cs_all, cs_prg, sizeof (*cs_all)); >> else if (!all_prg.checksum >> && (!GCOV_LOCKED || cs_all->runs == cs_prg->runs) >> - && memcmp (cs_all, cs_prg, sizeof (*cs_all))) >> + && memcmp (cs_all, cs_prg, >> + sizeof (*cs_all) - (sizeof (gcov_bucket_type) >> + * GCOV_HISTOGRAM_SIZE))) >> { >> fprintf (stderr, "profiling:%s:Invocation mismatch - some data >> files >> may have been removed%s\n", >> gi_filename, GCOV_LOCKED >> >> > > I applied it by hand: > diff --git a/libgcc/libgcov.c b/libgcc/libgcov.c > index fce8587..daf95af 100644 > --- a/libgcc/libgcov.c > +++ b/libgcc/libgcov.c > @@ -707,7 +707,10 @@ gcov_exit (void) > memcpy (cs_all, cs_prg, sizeof (*cs_all)); > else if (!all_prg.checksum > && (!GCOV_LOCKED || cs_all->runs == cs_prg->runs) > - && memcmp (cs_all, cs_prg, sizeof (*cs_all))) > + && memcmp (cs_all, cs_prg, sizeof (*cs_all)) > + && memcmp (cs_all, cs_prg, > + sizeof (*cs_all) - (sizeof (gcov_bucket_type) > + * GCOV_HISTOGRAM_SIZE))) > { > fprintf (stderr, "profiling:%s:Invocation mismatch - some data files > may have been removed%s\n", > gi_filename, GCOV_LOCKED > > and it still failed for me on Fedora/18 24 core x86-64 > with -j 12: > > /export/gnu/import/git/gcc/gcc/tree-cfg.c: In function ‘bool > gimple_can_merge_blocks_p(basic_block, basic_block)’: > /export/gnu/import/git/gcc/gcc/tree-cfg.c:7904:1: error: corrupted profile > info: edge from 52 to 53 exceeds maximal count > } > ^ > /export/gnu/import/git/gcc/gcc/tree-cfg.c:7904:1: error: corrupted profile > info: edge from 54 to 55 exceeds maximal count > /export/gnu/import/git/gcc/gcc/tree-cfg.c:7904:1: error: corrupted profile > info: edge from 55 to 56 exceeds maximal count > /export/gnu/import/git/gcc/gcc/tree-cfg.c:7904:1: error: corrupted profile > info: edge from 56 to 57 exceeds maximal count > /export/gnu/import/git/gcc/gcc/tree-cfg.c:7904:1: internal compiler error: in > cgraph_create_edge_1, at cgraph.c:669 Unfortunately I haven't been able to reproduce this one yet. Can you send me the corrupt gcda file? Thanks, Teresa > Please submit a full bug report, > with preprocessed source if appropriate. > See <http://gcc.gnu.org/bugs.html> for instructions. > make[4]: *** [tree-cfg.o] Error 1 > make[4]: *** Waiting for unfinished jobs.... > rm gcov.pod gcc.pod cpp.pod fsf-funding.pod gfdl.pod > make[4]: Leaving directory `/export/build/gnu/gcc-fdo/build-x86_64-linux/gcc' > make[3]: *** [all-stagefeedback-gcc] Error 2 > > -- > Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email > ------- You are receiving this mail because: ------- > You are on the CC list for the bug.