Skip to content

Commit

Permalink
selftests: fix header dependency for pid_namespace selftests
Browse files Browse the repository at this point in the history
The way the test target was defined before, when building with clang we
get a command line like this:

clang -Wall -Werror -g -I../../../../usr/include/ \
	regression_enomem.c ../pidfd/pidfd.h  -o regression_enomem

This yields an error, because clang thinks we want to produce both a *.o
file, as well as a precompiled header:

clang: error: cannot specify -o when generating multiple output files

gcc, for whatever reason, doesn't exhibit the same behavior which I
suspect is why the problem wasn't noticed before.

This can be fixed simply by using the LOCAL_HDRS infrastructure the
selftests lib.mk provides. It does the right think and marks the target
as depending on the header (so if the header changes, we rebuild), but
it filters the header out of the compiler command line, so we don't get
the error described above.

Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>
Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
  • Loading branch information
Axel Rasmussen authored and Shuah Khan committed Apr 4, 2022
1 parent aa8ce29 commit 5203562
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions tools/testing/selftests/pid_namespace/Makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# SPDX-License-Identifier: GPL-2.0
CFLAGS += -g -I../../../../usr/include/

TEST_GEN_PROGS := regression_enomem
TEST_GEN_PROGS = regression_enomem

include ../lib.mk
LOCAL_HDRS += $(selfdir)/pidfd/pidfd.h

$(OUTPUT)/regression_enomem: regression_enomem.c ../pidfd/pidfd.h
include ../lib.mk

0 comments on commit 5203562

Please sign in to comment.