Skip to content
Snippets Groups Projects
Commit 434909ed authored by Muhammad Usama Anjum's avatar Muhammad Usama Anjum Committed by Greg Kroah-Hartman
Browse files

selftests: set the BUILD variable to absolute path


commit 5ad51ab6 upstream.

The build of kselftests fails if relative path is specified through
KBUILD_OUTPUT or O=<path> method. BUILD variable is used to determine
the path of the output objects. When make is run from other directories
with relative paths, the exact path of the build objects is ambiguous
and build fails.

	make[1]: Entering directory '/home/usama/repos/kernel/linux_mainline2/tools/testing/selftests/alsa'
	gcc     mixer-test.c -L/usr/lib/x86_64-linux-gnu -lasound  -o build/kselftest/alsa/mixer-test
	/usr/bin/ld: cannot open output file build/kselftest/alsa/mixer-test

Set the BUILD variable to the absolute path of the output directory.
Make the logic readable and easy to follow. Use spaces instead of tabs
for indentation as if with tab indentation is considered recipe in make.

Signed-off-by: default avatarMuhammad Usama Anjum <usama.anjum@collabora.com>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
Signed-off-by: default avatarTyler Hicks (Microsoft) <code@tyhicks.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a41d63f2
No related branches found
No related tags found
1 merge request!84🤖 Sync Bot: Update v5.10-ktn to Latest Stable Kernel (v5.10.180)
...@@ -103,19 +103,27 @@ ifdef building_out_of_srctree ...@@ -103,19 +103,27 @@ ifdef building_out_of_srctree
override LDFLAGS = override LDFLAGS =
endif endif
ifneq ($(O),) top_srcdir ?= ../../..
BUILD := $(O)/kselftest
ifeq ("$(origin O)", "command line")
KBUILD_OUTPUT := $(O)
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))
BUILD := $(abs_objtree)/kselftest
else else
ifneq ($(KBUILD_OUTPUT),) BUILD := $(CURDIR)
BUILD := $(KBUILD_OUTPUT)/kselftest DEFAULT_INSTALL_HDR_PATH := 1
else
BUILD := $(shell pwd)
DEFAULT_INSTALL_HDR_PATH := 1
endif
endif endif
# Prepare for headers install # Prepare for headers install
top_srcdir ?= ../../..
include $(top_srcdir)/scripts/subarch.include include $(top_srcdir)/scripts/subarch.include
ARCH ?= $(SUBARCH) ARCH ?= $(SUBARCH)
export KSFT_KHDR_INSTALL_DONE := 1 export KSFT_KHDR_INSTALL_DONE := 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment