This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug gcov-profile/84107] New: indirect call profiling broken with multiple DSOs
- From: "amonakov at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 29 Jan 2018 15:30:19 +0000
- Subject: [Bug gcov-profile/84107] New: indirect call profiling broken with multiple DSOs
- Auto-submitted: auto-generated
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.