Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
We have some testcases that build a C++ program (with -g), put systemtap probes into it, and in those probes, they call probefunc() to get the probe point's function name as a string.
If latest gcc-toolset-9-binutils is used, probefunc() fails to return the function names, but returns some pointers(?) instead. If OTOH gcc-toolset-9-binutils rpm is removed, so that base rhel binutils gets used, the testcases pass. This problem is x86_64 specific:
=======
8.1 Server x86_64 # scl enable gcc-toolset-9 bash
gcc-toolset-9 8.1 Server x86_64 #
gcc-toolset-9 8.1 Server x86_64 # g++ classes.cpp -g -o classes
gcc-toolset-9 8.1 Server x86_64 # stap -c ./classes tracker.stp |& head
StandaloneFunction start: 0x40112a
StandaloneFunction end: 0x401148
StandaloneFunction start: 0x401131
inner::StandaloneFunction start: 0x401131
StandaloneFunction end: 0x40114d
inner::StandaloneFunction end: 0x40114d
StandaloneFunction start: 0x401138
moreinner::StandaloneFunction start: 0x401138
StandaloneFunction end: 0x401152
moreinner::StandaloneFunction end: 0x401152
gcc-toolset-9 8.1 Server x86_64 # rpm -q gcc-toolset-9-binutils binutils
gcc-toolset-9-binutils-2.32-15.el8.x86_64
binutils-2.30-57.el8.x86_64
gcc-toolset-9 8.1 Server x86_64 # rpm -e gcc-toolset-9-binutils
gcc-toolset-9 8.1 Server x86_64 #
gcc-toolset-9 8.1 Server x86_64 # g++ classes.cpp -g -o classes
gcc-toolset-9 8.1 Server x86_64 # stap -c ./classes tracker.stp |& head
StandaloneFunction start: _Z18StandaloneFunctionv
StandaloneFunction end: main
StandaloneFunction start: _ZN5inner18StandaloneFunctionEv
inner::StandaloneFunction start: _ZN5inner18StandaloneFunctionEv
StandaloneFunction end: main
inner::StandaloneFunction end: main
StandaloneFunction start: _ZN9moreinner18StandaloneFunctionEv
moreinner::StandaloneFunction start: _ZN9moreinner18StandaloneFunctionEv
StandaloneFunction end: main
moreinner::StandaloneFunction end: main
gcc-toolset-9 8.1 Server x86_64 #
=======
One of the possible explanations is that this is a binutils regression, so I'll start with that.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory (gcc-toolset-10-systemtap bug fix and enhancement update), and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHBA-2020:4784