mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 17:23:36 +00:00
Revert "selftests: error out if kernel header files are not yet built"
This reverts commit9fc96c7c19
("selftests: error out if kernel header files are not yet built"). It turns out that requiring the kernel headers to be built as a prerequisite to building selftests, does not work in many cases. For example, Peter Zijlstra writes: "My biggest beef with the whole thing is that I simply do not want to use 'make headers', it doesn't work for me. I have a ton of output directories and I don't care to build tools into the output dirs, in fact some of them flat out refuse to work that way (bpf comes to mind)." [1] Therefore, stop erroring out on the selftests build. Additional patches will be required in order to change over to not requiring the kernel headers. [1] https://lore.kernel.org/20231208221007.GO28727@noisy.programming.kicks-ass.net Link: https://lkml.kernel.org/r/20231209020144.244759-1-jhubbard@nvidia.com Fixes:9fc96c7c19
("selftests: error out if kernel header files are not yet built") Signed-off-by: John Hubbard <jhubbard@nvidia.com> Cc: Anders Roxell <anders.roxell@linaro.org> Cc: Muhammad Usama Anjum <usama.anjum@collabora.com> Cc: David Hildenbrand <david@redhat.com> Cc: Peter Xu <peterx@redhat.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Nathan Chancellor <nathan@kernel.org> Cc: Shuah Khan <shuah@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Marcos Paulo de Souza <mpdesouza@suse.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
1dd11e9773
commit
43e8832fed
@ -155,12 +155,10 @@ ifneq ($(KBUILD_OUTPUT),)
|
||||
abs_objtree := $(realpath $(abs_objtree))
|
||||
BUILD := $(abs_objtree)/kselftest
|
||||
KHDR_INCLUDES := -isystem ${abs_objtree}/usr/include
|
||||
KHDR_DIR := ${abs_objtree}/usr/include
|
||||
else
|
||||
BUILD := $(CURDIR)
|
||||
abs_srctree := $(shell cd $(top_srcdir) && pwd)
|
||||
KHDR_INCLUDES := -isystem ${abs_srctree}/usr/include
|
||||
KHDR_DIR := ${abs_srctree}/usr/include
|
||||
DEFAULT_INSTALL_HDR_PATH := 1
|
||||
endif
|
||||
|
||||
@ -174,7 +172,7 @@ export KHDR_INCLUDES
|
||||
# all isn't the first target in the file.
|
||||
.DEFAULT_GOAL := all
|
||||
|
||||
all: kernel_header_files
|
||||
all:
|
||||
@ret=1; \
|
||||
for TARGET in $(TARGETS); do \
|
||||
BUILD_TARGET=$$BUILD/$$TARGET; \
|
||||
@ -185,23 +183,6 @@ all: kernel_header_files
|
||||
ret=$$((ret * $$?)); \
|
||||
done; exit $$ret;
|
||||
|
||||
kernel_header_files:
|
||||
@ls $(KHDR_DIR)/linux/*.h >/dev/null 2>/dev/null; \
|
||||
if [ $$? -ne 0 ]; then \
|
||||
RED='\033[1;31m'; \
|
||||
NOCOLOR='\033[0m'; \
|
||||
echo; \
|
||||
echo -e "$${RED}error$${NOCOLOR}: missing kernel header files."; \
|
||||
echo "Please run this and try again:"; \
|
||||
echo; \
|
||||
echo " cd $(top_srcdir)"; \
|
||||
echo " make headers"; \
|
||||
echo; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
.PHONY: kernel_header_files
|
||||
|
||||
run_tests: all
|
||||
@for TARGET in $(TARGETS); do \
|
||||
BUILD_TARGET=$$BUILD/$$TARGET; \
|
||||
|
@ -44,26 +44,10 @@ endif
|
||||
selfdir = $(realpath $(dir $(filter %/lib.mk,$(MAKEFILE_LIST))))
|
||||
top_srcdir = $(selfdir)/../../..
|
||||
|
||||
ifeq ("$(origin O)", "command line")
|
||||
KBUILD_OUTPUT := $(O)
|
||||
ifeq ($(KHDR_INCLUDES),)
|
||||
KHDR_INCLUDES := -isystem $(top_srcdir)/usr/include
|
||||
endif
|
||||
|
||||
ifneq ($(KBUILD_OUTPUT),)
|
||||
# Make's built-in functions such as $(abspath ...), $(realpath ...) cannot
|
||||
# expand a shell special character '~'. We use a somewhat tedious way here.
|
||||
abs_objtree := $(shell cd $(top_srcdir) && mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) && pwd)
|
||||
$(if $(abs_objtree),, \
|
||||
$(error failed to create output directory "$(KBUILD_OUTPUT)"))
|
||||
# $(realpath ...) resolves symlinks
|
||||
abs_objtree := $(realpath $(abs_objtree))
|
||||
KHDR_DIR := ${abs_objtree}/usr/include
|
||||
else
|
||||
abs_srctree := $(shell cd $(top_srcdir) && pwd)
|
||||
KHDR_DIR := ${abs_srctree}/usr/include
|
||||
endif
|
||||
|
||||
KHDR_INCLUDES := -isystem $(KHDR_DIR)
|
||||
|
||||
# The following are built by lib.mk common compile rules.
|
||||
# TEST_CUSTOM_PROGS should be used by tests that require
|
||||
# custom build rule and prevent common build rule use.
|
||||
@ -74,25 +58,7 @@ TEST_GEN_PROGS := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS))
|
||||
TEST_GEN_PROGS_EXTENDED := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS_EXTENDED))
|
||||
TEST_GEN_FILES := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_FILES))
|
||||
|
||||
all: kernel_header_files $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) \
|
||||
$(TEST_GEN_FILES)
|
||||
|
||||
kernel_header_files:
|
||||
@ls $(KHDR_DIR)/linux/*.h >/dev/null 2>/dev/null; \
|
||||
if [ $$? -ne 0 ]; then \
|
||||
RED='\033[1;31m'; \
|
||||
NOCOLOR='\033[0m'; \
|
||||
echo; \
|
||||
echo -e "$${RED}error$${NOCOLOR}: missing kernel header files."; \
|
||||
echo "Please run this and try again:"; \
|
||||
echo; \
|
||||
echo " cd $(top_srcdir)"; \
|
||||
echo " make headers"; \
|
||||
echo; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
.PHONY: kernel_header_files
|
||||
all: $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES)
|
||||
|
||||
define RUN_TESTS
|
||||
BASE_DIR="$(selfdir)"; \
|
||||
|
Loading…
Reference in New Issue
Block a user