Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

libperf: Use 'extern' in LIBPERF_API visibility macro

Use 'extern' on LIBPERF_API to address this issue that started appearing
with gcc 15, first seen in ubuntu 25.10:

evlist.c: In function 'perf_evlist__purge':
evlist.c:202:17: error: implicit declaration of function 'perf_evsel__delete'; did you mean 'perf_evsel__exit'? [-Wimplicit-function-declaration]
202 | perf_evsel__delete(pos);
| ^~~~~~~~~~~~~~~~~~
| perf_evsel__exit
evlist.c:202:17: error: nested extern declaration of 'perf_evsel__delete' [-Werror=nested-externs]
evlist.c: In function 'perf_evlist__open':
evlist.c:261:23: error: implicit declaration of function 'perf_evsel__open'; did you mean 'perf_evsel__exit'? [-Wimplicit-function-declaration]
261 | err = perf_evsel__open(evsel, evsel->cpus, evsel->threads);
| ^~~~~~~~~~~~~~~~
| perf_evsel__exit
evlist.c:261:23: error: nested extern declaration of 'perf_evsel__open' [-Werror=nested-externs]

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>

authored by

Arnaldo Carvalho de Melo and committed by
Namhyung Kim
2eeb09fe d509d14f

+1 -1
+1 -1
tools/lib/perf/include/perf/core.h
··· 5 5 #include <stdarg.h> 6 6 7 7 #ifndef LIBPERF_API 8 - #define LIBPERF_API __attribute__((visibility("default"))) 8 + #define LIBPERF_API extern __attribute__((visibility("default"))) 9 9 #endif 10 10 11 11 enum libperf_print_level {