* [PATCH v2] perf/build: fix broken dependency check for libtracefs
@ 2023-07-11 13:53 Thomas Richter
2023-07-11 16:15 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 3+ messages in thread
From: Thomas Richter @ 2023-07-11 13:53 UTC (permalink / raw)
To: linux-kernel, linux-perf-users, acme, jolsa, rostedt
Cc: svens, gor, sumanthk, hca, Thomas Richter
Perf build auto-detects features and packages already installed
for its build. This is done in directory tools/build/feature. This
directory contains small sample programs. When they successfully
compile the necessary prereqs in form of libraries and header
files are present.
Such a check is also done for libtracefs. And this check fails:
Output before:
# rm -f test-libtracefs.bin; make test-libtracefs.bin
gcc -MD -Wall -Werror -o test-libtracefs.bin test-libtracefs.c \
> test-libtracefs.make.output 2>&1 -ltracefs
make: *** [Makefile:211: test-libtracefs.bin] Error 1
# cat test-libtracefs.make.output
In file included from test-libtracefs.c:2:
/usr/include/tracefs/tracefs.h:11:10: fatal error: \
event-parse.h: No such file or directory
11 | #include <event-parse.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
#
The root cause of this compile error is
commit 880885d9c22e ("libtracefs: Remove "traceevent/" from referencing libtraceevent headers")
in the libtracefs project hosted here:
https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/
That mentioned patch removes the traceevent/ directory name from
the include statement, causing the file not to be included even
when the libtraceevent-devel package is installed. This package contains
the file referred to in tracefs/tracefs.h:
# rpm -ql libtraceevent-devel
/usr/include/traceevent
/usr/include/traceevent/event-parse.h <----- here
/usr/include/traceevent/event-utils.h
/usr/include/traceevent/kbuffer.h
/usr/include/traceevent/trace-seq.h
/usr/lib64/libtraceevent.so
/usr/lib64/pkgconfig/libtraceevent.pc
#
With this patch the compile succeeds.
Output after:
# rm -f test-libtracefs.bin; make test-libtracefs.bin
gcc -MD -Wall -Werror -o test-libtracefs.bin test-libtracefs.c \
> test-libtracefs.make.output 2>&1 -I/usr/include/traceevent -ltracefs
#
Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Cc: jolsa@kernel.org
Cc: rostedt@goodmis.org
---
tools/build/feature/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index 0f0aa9b7d7b5..2cd6dbbee088 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -208,7 +208,7 @@ $(OUTPUT)test-libtraceevent.bin:
$(BUILD) -ltraceevent
$(OUTPUT)test-libtracefs.bin:
- $(BUILD) -ltracefs
+ $(BUILD) $(shell $(PKG_CONFIG) --cflags libtraceevent 2>/dev/null) -ltracefs
$(OUTPUT)test-libcrypto.bin:
$(BUILD) -lcrypto
--
2.41.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] perf/build: fix broken dependency check for libtracefs
2023-07-11 13:53 [PATCH v2] perf/build: fix broken dependency check for libtracefs Thomas Richter
@ 2023-07-11 16:15 ` Arnaldo Carvalho de Melo
2023-07-11 16:18 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2023-07-11 16:15 UTC (permalink / raw)
To: Thomas Richter
Cc: linux-kernel, linux-perf-users, jolsa, rostedt, svens, gor,
sumanthk, hca
Em Tue, Jul 11, 2023 at 03:53:38PM +0200, Thomas Richter escreveu:
> Perf build auto-detects features and packages already installed
> for its build. This is done in directory tools/build/feature. This
> directory contains small sample programs. When they successfully
> compile the necessary prereqs in form of libraries and header
> files are present.
>
> Such a check is also done for libtracefs. And this check fails:
>
> Output before:
> # rm -f test-libtracefs.bin; make test-libtracefs.bin
> gcc -MD -Wall -Werror -o test-libtracefs.bin test-libtracefs.c \
> > test-libtracefs.make.output 2>&1 -ltracefs
> make: *** [Makefile:211: test-libtracefs.bin] Error 1
> # cat test-libtracefs.make.output
> In file included from test-libtracefs.c:2:
> /usr/include/tracefs/tracefs.h:11:10: fatal error: \
> event-parse.h: No such file or directory
> 11 | #include <event-parse.h>
> | ^~~~~~~~~~~~~~~
> compilation terminated.
> #
>
> The root cause of this compile error is
> commit 880885d9c22e ("libtracefs: Remove "traceevent/" from referencing libtraceevent headers")
> in the libtracefs project hosted here:
> https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/
>
> That mentioned patch removes the traceevent/ directory name from
> the include statement, causing the file not to be included even
> when the libtraceevent-devel package is installed. This package contains
> the file referred to in tracefs/tracefs.h:
> # rpm -ql libtraceevent-devel
> /usr/include/traceevent
> /usr/include/traceevent/event-parse.h <----- here
> /usr/include/traceevent/event-utils.h
> /usr/include/traceevent/kbuffer.h
> /usr/include/traceevent/trace-seq.h
> /usr/lib64/libtraceevent.so
> /usr/lib64/pkgconfig/libtraceevent.pc
> #
>
> With this patch the compile succeeds.
>
> Output after:
> # rm -f test-libtracefs.bin; make test-libtracefs.bin
> gcc -MD -Wall -Werror -o test-libtracefs.bin test-libtracefs.c \
> > test-libtracefs.make.output 2>&1 -I/usr/include/traceevent -ltracefs
> #
Thanks! I test it like this:
Committer testing:
$ make -k BUILD_BPF_SKEL=1 CORESIGHT=1 O=/tmp/build/perf-tools -C tools/perf install-bin
Before:
$ cat /tmp/build/perf-tools/feature/test-libtracefs.make.output
In file included from test-libtracefs.c:2:
/usr/include/tracefs/tracefs.h:11:10: fatal error: event-parse.h: No such file or directory
11 | #include <event-parse.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
$
$ grep -i tracefs /tmp/build/perf-tools/FEATURE-DUMP
feature-libtracefs=0
$
After:
$ cat /tmp/build/perf-tools/feature/test-libtracefs.make.output
$
$ grep -i tracefs /tmp/build/perf-tools/FEATURE-DUMP
feature-libtracefs=1
$
Applied to perf-tools, for v6.5.
- Arnaldo
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] perf/build: fix broken dependency check for libtracefs
2023-07-11 16:15 ` Arnaldo Carvalho de Melo
@ 2023-07-11 16:18 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2023-07-11 16:18 UTC (permalink / raw)
To: Thomas Richter
Cc: linux-kernel, linux-perf-users, jolsa, rostedt, svens, gor,
sumanthk, hca
Em Tue, Jul 11, 2023 at 01:15:29PM -0300, Arnaldo Carvalho de Melo escreveu:
> Applied to perf-tools, for v6.5.
I also changed the subject line to add that this was caused by a change
in the external library, it is reading like this in my local repo:
perf build: Fix broken feature check for libtracefs due to external lib changes
- Arnaldo
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-07-11 16:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-11 13:53 [PATCH v2] perf/build: fix broken dependency check for libtracefs Thomas Richter
2023-07-11 16:15 ` Arnaldo Carvalho de Melo
2023-07-11 16:18 ` Arnaldo Carvalho de Melo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.