[PATCH] kselftest/arm64/gcs/basic-gcs: Respect parent directory CFLAGS

Thomas Weißschuh posted 1 patch 2 weeks, 1 day ago
tools/testing/selftests/arm64/gcs/Makefile | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
[PATCH] kselftest/arm64/gcs/basic-gcs: Respect parent directory CFLAGS
Posted by Thomas Weißschuh 2 weeks, 1 day ago
basic-gcs has it's own make rule to handle the special compiler
invocation to build against nolibc. This rule does not respect the
$(CFLAGS) passed by the Makefile from the parent directory.
However these $(CFLAGS) set up the include path to include the UAPI
headers from the current kernel.
Due to this the asm/hwcap.h header is used from the toolchain instead of
the UAPI and the definition of HWCAP_GCS is not found.

Restructure the rule for basic-gcs to respect the $(CFLAGS).
Also drop those options which are already provided by $(CFLAGS).

Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Closes: https://lore.kernel.org/lkml/CA+G9fYv77X+kKz2YT6xw7=9UrrotTbQ6fgNac7oohOg8BgGvtw@mail.gmail.com/
Fixes: a985fe638344 ("kselftest/arm64/gcs: Use nolibc's getauxval()")
Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
 tools/testing/selftests/arm64/gcs/Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/arm64/gcs/Makefile b/tools/testing/selftests/arm64/gcs/Makefile
index d2f3497a9103fc12ebc90c7f4e33ab9b846c6c8a..1fbbf0ca1f0291d00882920eb2d1efbf99882ec1 100644
--- a/tools/testing/selftests/arm64/gcs/Makefile
+++ b/tools/testing/selftests/arm64/gcs/Makefile
@@ -14,11 +14,11 @@ LDLIBS+=-lpthread
 include ../../lib.mk
 
 $(OUTPUT)/basic-gcs: basic-gcs.c
-	$(CC) -g -fno-asynchronous-unwind-tables -fno-ident -s -Os -nostdlib \
-		-static -include ../../../../include/nolibc/nolibc.h \
+	$(CC) $(CFLAGS) -fno-asynchronous-unwind-tables -fno-ident -s -nostdlib -nostdinc \
+		-static -I../../../../include/nolibc -include ../../../../include/nolibc/nolibc.h \
 		-I../../../../../usr/include \
 		-std=gnu99 -I../.. -g \
-		-ffreestanding -Wall $^ -o $@ -lgcc
+		-ffreestanding $^ -o $@ -lgcc
 
 $(OUTPUT)/gcs-stress-thread: gcs-stress-thread.S
 	$(CC) -nostdlib $^ -o $@

---
base-commit: 14a41628c470f4aa069075cdcf6ec0138b6cf1da
change-id: 20250916-arm64-gcs-nolibc-7d1f03a2a3cf

Best regards,
-- 
Thomas Weißschuh <linux@weissschuh.net>

Re: [PATCH] kselftest/arm64/gcs/basic-gcs: Respect parent directory CFLAGS
Posted by Will Deacon 2 weeks ago
On Tue, 16 Sep 2025 18:51:35 +0200, Thomas Weißschuh wrote:
> basic-gcs has it's own make rule to handle the special compiler
> invocation to build against nolibc. This rule does not respect the
> $(CFLAGS) passed by the Makefile from the parent directory.
> However these $(CFLAGS) set up the include path to include the UAPI
> headers from the current kernel.
> Due to this the asm/hwcap.h header is used from the toolchain instead of
> the UAPI and the definition of HWCAP_GCS is not found.
> 
> [...]

Applied to arm64 (for-next/selftests), thanks!

[1/1] kselftest/arm64/gcs/basic-gcs: Respect parent directory CFLAGS
      https://git.kernel.org/arm64/c/5b7bdc4402b1

Cheers,
-- 
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
Re: [PATCH] kselftest/arm64/gcs/basic-gcs: Respect parent directory CFLAGS
Posted by Mark Brown 2 weeks ago
On Tue, Sep 16, 2025 at 06:51:35PM +0200, Thomas Weißschuh wrote:

> Restructure the rule for basic-gcs to respect the $(CFLAGS).
> Also drop those options which are already provided by $(CFLAGS).

I think I was concerned about CFLAGS having things in it that weren't
appropriate for nolibc since the build setup is kind of fiddly, but I'm
not sure how real a concern that is:

Reviewed-by: Mark Brown <broonie@kernel.org>