Re: [PATCH] rtla: Fix Makefile when called from -C tools/

From: Sedat Dilek
Date: Sun Jul 10 2022 - 04:41:32 EST


On Fri, Jul 8, 2022 at 2:17 PM Daniel Bristot de Oliveira
<bristot@xxxxxxxxxx> wrote:
>
> Sedat Dilek reported an error on rtla Makefile when running:
>

Hi Daniel,

Thanks for the patch.

> $ make -C tools/

No, that was with...

$ make -C tools/ clean

> [...]
> make[2]: Entering directory
> '/home/dileks/src/linux-kernel/git/tools/tracing/rtla'
> [...]
> '/home/dileks/src/linux-kernel/git/Documentation/tools/rtla'
> /bin/sh: 1: test: rtla-make[2]:: unexpected operator <------ The problem
> rm: cannot remove '/home/dileks/src/linux-kernel/git': Is a directory
> make[2]: *** [Makefile:120: clean] Error 1
> make[2]: Leaving directory
>
> This occurred because the rtla calls kernel's Makefile to get the
> version in silence mode, e.g.,
>
> $ make -sC ../../.. kernelversion
> 5.19.0-rc4
>
> But the -s is being ignored when rtla's makefile is called from indirectly,
> so the output looks like:
>
> $ make -C ../../.. kernelversion
> make: Entering directory '/root/linux'
> 5.19.0-rc4
> make: Leaving directory '/root/linux'
>
> 'grep -v make' to avoid this problem, e.g.,
>

Missing word at the beginning soething like:

Use 'grep -v make' to avoid this problem ...

> $ make -C ../../.. kernelversion | grep -v make
> 5.19.0-rc4
>

Shouldn't that be:

$ make -sC ... (missing "s")

Regards,
-Sedat-

> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
> Fixes: 8619e32825fd ("rtla: Follow kernel version")
> Reported-by: Sedat Dilek <sedat.dilek@xxxxxxxxx>
> Tested-by: Sedat Dilek <sedat.dilek@xxxxxxxxx>
> Signed-off-by: Daniel Bristot de Oliveira <bristot@xxxxxxxxxx>
> ---
> tools/tracing/rtla/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/tracing/rtla/Makefile b/tools/tracing/rtla/Makefile
> index 3822f4ea5f49..1bea2d16d4c1 100644
> --- a/tools/tracing/rtla/Makefile
> +++ b/tools/tracing/rtla/Makefile
> @@ -1,6 +1,6 @@
> NAME := rtla
> # Follow the kernel version
> -VERSION := $(shell cat VERSION 2> /dev/null || make -sC ../../.. kernelversion)
> +VERSION := $(shell cat VERSION 2> /dev/null || make -sC ../../.. kernelversion | grep -v make)
>
> # From libtracefs:
> # Makefiles suck: This macro sets a default value of $(2) for the
> --
> 2.32.0
>