Messages in this thread Patch in this message | | | From | Leo Yan <> | Subject | [PATCH v2 2/2] perf symbol: Skip recording symbols in '.gnu.warning.*' sections | Date | Sun, 24 Jul 2022 10:28:57 +0800 |
| |
Some symbols are observed their 'st_value' field are zeros. E.g. libc.so.6 in Ubuntu contains a symbol '__evoke_link_warning_getwd' which resides in the '.gnu.warning.getwd' section, unlike normal symbols, this kind of symbols are only used for linker warning.
This patch skips to record symbols from '.gnu.warning.*' sections by detecting the sub string '.gnu.warning' is contained in section name.
Signed-off-by: Leo Yan <leo.yan@linaro.org> --- tools/perf/util/symbol-elf.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index ef6ced5c5746..4b621e355c0e 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -1277,6 +1277,14 @@ dso__load_sym_internal(struct dso *dso, struct map *map, struct symsrc *syms_ss, section_name = elf_sec__name(&shdr, secstrs); + /* + * A symbol coming from ".gnu.warning.*" sections is used to + * generate linker warnings, its 'sym.st_value' field usually + * is zero, skip to record it. + */ + if (strstr(section_name, ".gnu.warning")) + continue; + /* On ARM, symbols for thumb functions have 1 added to * the symbol address as a flag - remove it */ if ((ehdr.e_machine == EM_ARM) && -- 2.25.1
| |