https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #28 from Richard Biener rguenth at gcc dot gnu.org ---
Similar issue happens when building python with profile feedback enabled, that
is,
./configure; make profile-opt as implemented in python upstream. Core file
tells me
(gdb) bt
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
Markus Trippelsdorf trippels at gcc dot gnu.org changed:
What|Removed |Added
Status|REOPENED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #26 from Jan Hubicka hubicka at gcc dot gnu.org ---
Author: hubicka
Date: Wed Feb 4 23:26:40 2015
New Revision: 220424
URL: https://gcc.gnu.org/viewcvs?rev=220424root=gccview=rev
Log:
PR gcov/64123
* gcov-io.c (gcov_var):
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #24 from Nathan Sidwell nathan at acm dot org ---
xur, can you provide your testcase? with a regular use of multiple DSOs, I
can't get a failure. (no dlopen used).
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #25 from xur at google dot com ---
attached the test case. replace CC in build_cmd with your compiler.
On Mon, Feb 2, 2015 at 12:59 PM, nathan at acm dot org
gcc-bugzi...@gcc.gnu.org wrote:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #23 from xur at google dot com ---
I overlooked that gcov_master was also used in gcov_dump_int.
The bug is exactly as Honza described. I can reproduce with a simple example.
Nathan: did you use dlopen? It seems using dlopen will
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #22 from Nathan Sidwell nathan at acm dot org ---
thanks Honza, that was helpful. I'm an idiot. Your workaround unhiding
gcov_var is fine for now, while I figure out if there's a better way. I am
puzzled as to why I can't observe
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #18 from Jan Hubicka hubicka at ucw dot cz ---
Reducing firefox may be fun, ICE happen during fork, so perhaps adding fork to
your testcase? :)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #19 from Jan Hubicka hubicka at ucw dot cz ---
I guess the problem is that with fork we invoke dumping by hand instead of
relying on dtors?
honza
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #21 from Jan Hubicka hubicka at gcc dot gnu.org ---
OK, I am currently on a trip with sporadic internet access but I can try to
build the shared libraries. In meantime you can also just try out firefox
profiledbuild ;)
What happens
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #20 from Nathan Sidwell nathan at acm dot org ---
Adding a call to __gcov_fork doesn't cause breakage. I'd much rather start
from a failing testcase than stab in the dark at various hypotheses.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #11 from Jan Hubicka hubicka at gcc dot gnu.org ---
Yep, I think the problem is that each of DSOs will have its own set of infos
that will point to its own gcov_merge_add that calls its own gcov_io routines.
Now the winning gcov will
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #13 from Nathan Sidwell nathan at acm dot org ---
No. Each dso's gcov machinery is individually invoked. There should be no
cross-dso accessing of data (beyond the global chain of dso)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #14 from Nathan Sidwell nathan at acm dot org ---
Jan, I'm fairly sure that even though your fix makes things work, it is wrong.
You're at the very least exposing an internal API across the DSO boundary,
which should not be exposed.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #12 from Jan Hubicka hubicka at gcc dot gnu.org ---
BTW the following fix the issue for me
Index: gcov-io.c
===
--- gcov-io.c (revision 220230)
+++ gcov-io.c (working
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
Nathan Sidwell nathan at acm dot org changed:
What|Removed |Added
CC||nathan at acm dot
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #16 from xur at google dot com ---
I did not follow the trunk version closely. But from reading the code, I
think the design is each DSO uses its own copy of gcov_* functions
(including gcov_open and gcov_read_counter) and accesses
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #15 from Jan Hubicka hubicka at ucw dot cz ---
No. Each dso's gcov machinery is individually invoked. There should be no
cross-dso accessing of data (beyond the global chain of dso)
I am not saying my fix is correct, just lets me
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #17 from Nathan Sidwell nathan at acm dot org ---
I'm having difficulty constructing a testcase that fails. 2 DSOs are isolated
as I expect. (rong, your description is essentially correct).
A recipe would be good. Also, is this on
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #9 from Jan Hubicka hubicka at gcc dot gnu.org ---
Looking at the backtrace, all functions are 0x707
until the __gcov_merge_add which is 0x77fe so apparently coming from a
different DSO. This seems to be because the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
Jan Hubicka hubicka at gcc dot gnu.org changed:
What|Removed |Added
Last reconfirmed|2014-12-02 00:00:00 |2015-1-29
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #5 from Jan Hubicka hubicka at gcc dot gnu.org ---
OK,
I get:
(gdb) bt
#0 _IO_fread (buf=0x77fe6740 __gcov_var+32, size=size@entry=1,
count=count@entry=4096, fp=0x0) at iofread.c:43
#1 0x77fe1719 in gcov_read_words
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
--- Comment #6 from Jan Hubicka hubicka at gcc dot gnu.org ---
Note that -fno-ipa-icf does not seem to solve the crash for me.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
Jan Hubicka hubicka at gcc dot gnu.org changed:
What|Removed |Added
CC||xur at google
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
Jan Hubicka hubicka at gcc dot gnu.org changed:
What|Removed |Added
CC||nathan at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
Martin Liška marxin at gcc dot gnu.org changed:
What|Removed |Added
Status|RESOLVED|REOPENED
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
Markus Trippelsdorf trippels at gcc dot gnu.org changed:
What|Removed |Added
Status|NEW
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
Richard Biener rguenth at gcc dot gnu.org changed:
What|Removed |Added
Priority|P3 |P1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
Markus Trippelsdorf trippels at gcc dot gnu.org changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
Richard Biener rguenth at gcc dot gnu.org changed:
What|Removed |Added
Target Milestone|--- |5.0
30 matches
Mail list logo