This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug gcov-profile/84107] New: indirect call profiling broken with multiple DSOs


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]