[Bug gcov-profile/84107] New: indirect call profiling broken with multiple DSOs
amonakov at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jan 29 15:30:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84107
Bug ID: 84107
Summary: indirect call profiling broken with multiple DSOs
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Keywords: visibility, wrong-code
Severity: normal
Priority: P3
Component: gcov-profile
Assignee: unassigned at gcc dot gnu.org
Reporter: amonakov at gcc dot gnu.org
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Created attachment 43272
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43272&action=edit
testcase archive
(Marxin, on IRC you've requested this bug to be filed; enjoy!)
The finely crafted testcase in the attachment segfaults with null pointer
dereference in __gcov_indirect_call_profiler_v2.
In general libgcov should have "hidden" visibility on small symbols that have
no need to inter-operate between different shared objects and can be freely
duplicated in user-built shared libraries (thus indirect profiling symbols
probably all miss the visibility annotation).
Large symbols and symbols that must exist in exactly one instance in the
running program probably should be a part of (nonexistent) libgcov.so.0.
More information about the Gcc-bugs
mailing list