Re: [RFC] perf tools: Filter out hidden symbols from labels

From: Nick Clifton
Date: Tue Jan 15 2019 - 11:13:22 EST


Hi Jiri,

> When perf is built with annobin plugin (RHEL8 build) extra symbols
> are added to its binary:

A bit of background for those wondering why annobin is creating
these symbols: Annobin is a plugin for gcc that records data
about how object file were built. It is specifically designed
to be able to cope with files that are built using multiple
different sets of optimization options. (Eg because of #pragma
directives or function specific optimization attributes). It
generates notes to cover each compiled region of code, and it
needs the symbols in order to be able to determine exactly which
areas in a linked binary were compiled with which options.

In the course of developing this plugin I encountered various
problems with tools not expecting to find extra symbols in a
binary. Hence I made the symbols local, hidden and with no type.
It was the best I could do to say "ignore these symbols - they
are not meant to be seen by anyone but annobin".


> + elf_sym__visibility(sym) != STV_HIDDEN;

Just to be awkward, if you are going to ignore STV_HIDDEN
symbols then you should probably also ignore STV_INTERNAL ones
as well... Annobin does not generate them, but you never know,
one day some other tool might create some.

Cheers
Nick