* [PATCH v1] libperf build: Always place libperf includes first
@ 2026-02-03 6:09 Ian Rogers
2026-02-03 14:52 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 2+ messages in thread
From: Ian Rogers @ 2026-02-03 6:09 UTC (permalink / raw)
To: Jiri Olsa, Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Namhyung Kim, Alexander Shishkin, Ian Rogers, Adrian Hunter,
James Clark, linux-perf-users, linux-kernel
When building tools/perf the CFLAGS can contain a directory for the
installed headers. As the headers may be being installed while
building libperf.a this can cause headers to be partially installed
and found in the include path while building an object file for
libperf.a. The installed header may reference other installed headers
that are missing given the partial nature of the install and then the
build fails with a missing header file. Avoid this by ensuring the
libperf source headers are always first in the CFLAGS.
Fixes: 314350491810 ("libperf: Make libperf.a part of the perf build")
Signed-off-by: Ian Rogers <irogers@google.com>
---
I started seeing these build failures in build-test post
commit c3030995f23b ("perf sched stats: Add record and rawdump support")
which increased the number of libperf header files and their
dependencies. It isn't correct that this patch fixes that patch, the
problem has existed as long as libperf which is why a much earlier
commit is in the Fixes tag.
---
tools/lib/perf/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/lib/perf/Makefile b/tools/lib/perf/Makefile
index 9692d0742ed0..32301a1d8f0c 100644
--- a/tools/lib/perf/Makefile
+++ b/tools/lib/perf/Makefile
@@ -50,9 +50,9 @@ INCLUDES = \
-I$(srctree)/tools/include/uapi
# Append required CFLAGS
+override CFLAGS := $(INCLUDES) $(CFLAGS)
override CFLAGS += -g -Werror -Wall
override CFLAGS += -fPIC
-override CFLAGS += $(INCLUDES)
override CFLAGS += -fvisibility=hidden
override CFLAGS += $(EXTRA_WARNINGS)
override CFLAGS += $(EXTRA_CFLAGS)
--
2.53.0.rc1.225.gd81095ad13-goog
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH v1] libperf build: Always place libperf includes first
2026-02-03 6:09 [PATCH v1] libperf build: Always place libperf includes first Ian Rogers
@ 2026-02-03 14:52 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 2+ messages in thread
From: Arnaldo Carvalho de Melo @ 2026-02-03 14:52 UTC (permalink / raw)
To: Ian Rogers
Cc: Jiri Olsa, Peter Zijlstra, Ingo Molnar, Namhyung Kim,
Alexander Shishkin, Adrian Hunter, James Clark, linux-perf-users,
linux-kernel
On Mon, Feb 02, 2026 at 10:09:18PM -0800, Ian Rogers wrote:
> When building tools/perf the CFLAGS can contain a directory for the
> installed headers. As the headers may be being installed while
> building libperf.a this can cause headers to be partially installed
> and found in the include path while building an object file for
> libperf.a. The installed header may reference other installed headers
> that are missing given the partial nature of the install and then the
> build fails with a missing header file. Avoid this by ensuring the
> libperf source headers are always first in the CFLAGS.
>
> Fixes: 314350491810 ("libperf: Make libperf.a part of the perf build")
> Signed-off-by: Ian Rogers <irogers@google.com>
Thanks, applied to perf-tools-next,
- Arnaldo
> ---
> I started seeing these build failures in build-test post
> commit c3030995f23b ("perf sched stats: Add record and rawdump support")
> which increased the number of libperf header files and their
> dependencies. It isn't correct that this patch fixes that patch, the
> problem has existed as long as libperf which is why a much earlier
> commit is in the Fixes tag.
> ---
> tools/lib/perf/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/lib/perf/Makefile b/tools/lib/perf/Makefile
> index 9692d0742ed0..32301a1d8f0c 100644
> --- a/tools/lib/perf/Makefile
> +++ b/tools/lib/perf/Makefile
> @@ -50,9 +50,9 @@ INCLUDES = \
> -I$(srctree)/tools/include/uapi
>
> # Append required CFLAGS
> +override CFLAGS := $(INCLUDES) $(CFLAGS)
> override CFLAGS += -g -Werror -Wall
> override CFLAGS += -fPIC
> -override CFLAGS += $(INCLUDES)
> override CFLAGS += -fvisibility=hidden
> override CFLAGS += $(EXTRA_WARNINGS)
> override CFLAGS += $(EXTRA_CFLAGS)
> --
> 2.53.0.rc1.225.gd81095ad13-goog
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-02-03 14:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-03 6:09 [PATCH v1] libperf build: Always place libperf includes first Ian Rogers
2026-02-03 14:52 ` Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox