On 5/10/24 4:52 AM, Ryan Roberts wrote:
On 04/05/2024 05:43, John Hubbard wrote:
...
It just occured to me that the bug report I was fixing with my attempt was
invoking make like this (see [1]):
# tools/testing/selftests/fchmodat2$ make CC=clang
# tools/testing/selftests/openat2$ make CC=clang
So LLVM is not set in this case. Perhaps my approach [2] (suggested by Arnd) of
using cc-option is more robust? (cc-option is alredy used by other selftests).
Yes, I think that would better handle the two cases: setting LLVM,
and/or setting CC (!).
For that, some nits, but only worth fussing over if the patch hasn't
gone in yet, or if you're changing it for some other reason:
In Make, the arguments to functions include *all* spaces, so it's good
practice to not add spaces in most function calls, unless they are
definitely desired.
Also, you only ever want one of those $(CC) options, so saying so is a
nice touch. Neither of these is a functional issue in [2], but you could
do this on top of the patch (I'm only showing the openat2 case):
diff --git a/tools/testing/selftests/openat2/Makefile
b/tools/testing/selftests/openat2/Makefile
index 02af9b6ca5eb..c894778874a5 100644
--- a/tools/testing/selftests/openat2/Makefile
+++ b/tools/testing/selftests/openat2/Makefile
@@ -3,7 +3,7 @@
include ../../../build/Build.include
CFLAGS += -Wall -O2 -g -fsanitize=address -fsanitize=undefined
-CFLAGS += $(call cc-option, -static-libasan) $(call cc-option,
-static-libsan)
+CFLAGS += $(call cc-option,-static-libasan,$(call
cc-option,-static-libsan))
TEST_GEN_PROGS := openat2_test resolve_test rename_attack_test
include ../lib.mk
[1] https://lore.kernel.org/all/202404141807.LgsqXPY5-lkp@xxxxxxxxx/
[2]
https://lore.kernel.org/linux-kselftest/20240417160740.2019530-1-ryan.roberts@xxxxxxx/
+
+LOCAL_HDRS += helpers.h
+
include ../lib.mk
-$(TEST_GEN_PROGS): helpers.c helpers.h
+$(TEST_GEN_PROGS): helpers.c
base-commit: ddb4c3f25b7b95df3d6932db0b379d768a6ebdf7
prerequisite-patch-id: b901ece2a5b78503e2fb5480f20e304d36a0ea27
thanks,
--
John Hubbard
NVIDIA