On Thu, Dec 21, 2023 at 02:44:52PM -0700, Shuah Khan wrote:
On 12/21/23 13:49, Antonio Terceiro wrote:
This makes the uevent selftests build not write to the source tree unconditionally, as that breaks out of tree builds when the source tree is read-only. It also avoids leaving a git repository in a dirty state after a build.
Why can't you do that using make O= directive.
That's what I meant by out of tree builds. When using O=, the uevent selftests build still writes to the source directory. Maybe my wording in the commit message is not clear enough, I will try to improve it.
v2: drop spurious extra SPDX-License-Identifier
Signed-off-by: Antonio Terceiro antonio.terceiro@linaro.org
tools/testing/selftests/uevent/Makefile | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-)
diff --git a/tools/testing/selftests/uevent/Makefile b/tools/testing/selftests/uevent/Makefile index f7baa9aa2932..872969f42694 100644 --- a/tools/testing/selftests/uevent/Makefile +++ b/tools/testing/selftests/uevent/Makefile @@ -1,17 +1,8 @@ # SPDX-License-Identifier: GPL-2.0 all: -include ../lib.mk
-.PHONY: all clean
-BINARIES := uevent_filtering -CFLAGS += -Wl,-no-as-needed -Wall +CFLAGS += -Wl,-no-as-needed -Wall $(KHDR_INCLUDES) -uevent_filtering: uevent_filtering.c ../kselftest.h ../kselftest_harness.h
- $(CC) $(CFLAGS) $< -o $@
+TEST_GEN_PROGS = uevent_filtering -TEST_PROGS += $(BINARIES) -EXTRA_CLEAN := $(BINARIES)
-all: $(BINARIES) +include ../lib.mk
This change doesn't get the intended result of not writing to source tree. Binaries will still be written to the source tree unless O= is specified.
It does in my tests. Maybe I am missing something.
mainline without the patch:
----------------8<----------------8<----------------8<----------------- $ make -s defconfig O=/tmp/output && make -s kselftest-all TARGETS=uevent O=/tmp/output make[4]: Entrando no diretório '/home/terceiro/src/linaro/linux/tools/testing/selftests/uevent'
make[4]: Nada a ser feito para 'all'. make[4]: Saindo do diretório '/home/terceiro/src/linaro/linux/tools/testing/selftests/uevent'
$ git status --ignored On branch master Your branch is up to date with 'origin/master'.
Untracked files: (use "git add <file>..." to include in what will be committed) tools/testing/selftests/uevent/uevent_filtering
nothing added to commit but untracked files present (use "git add" to track) $ git clean -dxf Removing tools/testing/selftests/uevent/uevent_filtering ----------------8<----------------8<----------------8<-----------------
mainline with the patch:
----------------8<----------------8<----------------8<----------------- $ git branch -m kselftest-uvent kselftest-uvent-o $ rm -rf /tmp/output/ $ make -s defconfig O=/tmp/output && make -s kselftest-all TARGETS=uevent O=/tmp/output make[4]: Entrando no diretório '/home/terceiro/src/linaro/linux/tools/testing/selftests/uevent'
gcc -Wl,-no-as-needed -Wall -isystem /tmp/output/usr/include uevent_filtering.c -o /tmp/output/kselftest/uevent/uevent_filtering make[4]: Saindo do diretório '/home/terceiro/src/linaro/linux/tools/testing/selftests/uevent'
$ git status --ignored On branch kselftest-uvent-o nothing to commit, working tree clean $ git clean -dxf $ ----------------8<----------------8<----------------8<-----------------