lkml.org 
[lkml]   [2023]   [Jul]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] perf/build: fix broken dependency check for libtracefs
Em Tue, Jul 11, 2023 at 02:40:19PM +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

Ok, but since libtraceevent comes with a pkgconfig file, shouldn't we
use it instead?

Something like:

⬢[acme@toolbox perf-tools]$ pkgconf --cflags libtraceevent
-I/usr/include/traceevent

look for PKG_CONFIG in the perf makefiles, I see things like:

FLAGS_GTK2=$(CFLAGS) $(LDFLAGS) $(EXTLIBS) $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null)

etc.

- Arnaldo

> #
>
> 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..764b0234161f 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) -I/usr/include/traceevent -ltracefs
>
> $(OUTPUT)test-libcrypto.bin:
> $(BUILD) -lcrypto
> --
> 2.41.0
>

--

- Arnaldo

\
 
 \ /
  Last update: 2023-07-11 15:07    [W:0.423 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site