selftests: Fix O= and KBUILD_OUTPUT handling for relative paths
diff mbox series

Message ID 20191015014505.14259-1-skhan@linuxfoundation.org
State Accepted
Commit 303e6218ecec475d5bc3e5922dec770ee5baf107
Headers show
Series
  • selftests: Fix O= and KBUILD_OUTPUT handling for relative paths
Related show

Commit Message

Shuah Khan Oct. 15, 2019, 1:45 a.m. UTC
Fix O= and KBUILD_OUTPUT handling for relative paths.

export KBUILD_OUTPUT=../kselftest_size
make TARGETS=size kselftest-all

or

make O=../kselftest_size TARGETS=size kselftest-all

In both of these cases, targets get built in ../kselftest_size which is
a one level up from the size test directory.

make[1]: Entering directory '/mnt/data/lkml/kselftest_size'
make --no-builtin-rules INSTALL_HDR_PATH=$BUILD/usr \
        ARCH=x86 -C ../../.. headers_install
  INSTALL ../kselftest_size/usr/include
gcc -static -ffreestanding -nostartfiles -s    get_size.c  -o ../kselftest_size/size/get_size
/usr/bin/ld: cannot open output file ../kselftest_size/size/get_size: No such file or directory
collect2: error: ld returned 1 exit status
make[3]: *** [../lib.mk:138: ../kselftest_size/size/get_size] Error 1
make[2]: *** [Makefile:143: all] Error 2
make[1]: *** [/mnt/data/lkml/linux_5.4/Makefile:1221: kselftest-all] Error 2
make[1]: Leaving directory '/mnt/data/lkml/kselftest_size'
make: *** [Makefile:179: sub-make] Error 2

Use abs_objtree exported by the main Makefile.

Reported-by: Tim Bird <Tim.Bird@sony.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
---
 tools/testing/selftests/Makefile | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Bird, Timothy Oct. 15, 2019, 11:27 p.m. UTC | #1
> -----Original Message-----
> From: Shuah Khan on  Monday, October 14, 2019 3:45 PM
> 
> Fix O= and KBUILD_OUTPUT handling for relative paths.
> 
> export KBUILD_OUTPUT=../kselftest_size
> make TARGETS=size kselftest-all
> 
> or
> 
> make O=../kselftest_size TARGETS=size kselftest-all
> 
> In both of these cases, targets get built in ../kselftest_size which is
> a one level up from the size test directory.
> 
> make[1]: Entering directory '/mnt/data/lkml/kselftest_size'
> make --no-builtin-rules INSTALL_HDR_PATH=$BUILD/usr \
>         ARCH=x86 -C ../../.. headers_install
>   INSTALL ../kselftest_size/usr/include
> gcc -static -ffreestanding -nostartfiles -s    get_size.c  -o
> ../kselftest_size/size/get_size
> /usr/bin/ld: cannot open output file ../kselftest_size/size/get_size: No such
> file or directory
> collect2: error: ld returned 1 exit status
> make[3]: *** [../lib.mk:138: ../kselftest_size/size/get_size] Error 1
> make[2]: *** [Makefile:143: all] Error 2
> make[1]: *** [/mnt/data/lkml/linux_5.4/Makefile:1221: kselftest-all] Error 2
> make[1]: Leaving directory '/mnt/data/lkml/kselftest_size'
> make: *** [Makefile:179: sub-make] Error 2
> 
> Use abs_objtree exported by the main Makefile.
> 
> Reported-by: Tim Bird <Tim.Bird@sony.com>
> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
> ---
>  tools/testing/selftests/Makefile | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/Makefile
> b/tools/testing/selftests/Makefile
> index 4cdbae6f4e61..3405aa26a655 100644
> --- a/tools/testing/selftests/Makefile
> +++ b/tools/testing/selftests/Makefile
> @@ -86,10 +86,10 @@ override LDFLAGS =
>  endif
> 
>  ifneq ($(O),)
> -	BUILD := $(O)
> +	BUILD := $(abs_objtree)
>  else
>  	ifneq ($(KBUILD_OUTPUT),)
> -		BUILD := $(KBUILD_OUTPUT)/kselftest
> +		BUILD := $(abs_objtree)/kselftest
>  	else
>  		BUILD := $(shell pwd)
>  		DEFAULT_INSTALL_HDR_PATH := 1
> @@ -102,6 +102,7 @@ include $(top_srcdir)/scripts/subarch.include
>  ARCH           ?= $(SUBARCH)
>  export KSFT_KHDR_INSTALL_DONE := 1
>  export BUILD
> +#$(info abd_objtree = $(abs_objtree) BUILD = $(BUILD))
> 
>  # build and run gpio when output directory is the src dir.
>  # gpio has dependency on tools/gpio and builds tools/gpio
> --

 This works great.  Thanks very much.

Tested-by: Tim Bird <tim.bird@sony.com>
Acked-by: Tim Bird <tim.bird@sony.com>

 -- Tim
Shuah Khan Oct. 16, 2019, 12:34 a.m. UTC | #2
On 10/15/19 5:27 PM, Tim.Bird@sony.com wrote:
>> -----Original Message-----
>> From: Shuah Khan on  Monday, October 14, 2019 3:45 PM
>>
>> Fix O= and KBUILD_OUTPUT handling for relative paths.
>>
>> export KBUILD_OUTPUT=../kselftest_size
>> make TARGETS=size kselftest-all
>>
>> or
>>
>> make O=../kselftest_size TARGETS=size kselftest-all
>>
>> In both of these cases, targets get built in ../kselftest_size which is
>> a one level up from the size test directory.
>>
>> make[1]: Entering directory '/mnt/data/lkml/kselftest_size'
>> make --no-builtin-rules INSTALL_HDR_PATH=$BUILD/usr \
>>          ARCH=x86 -C ../../.. headers_install
>>    INSTALL ../kselftest_size/usr/include
>> gcc -static -ffreestanding -nostartfiles -s    get_size.c  -o
>> ../kselftest_size/size/get_size
>> /usr/bin/ld: cannot open output file ../kselftest_size/size/get_size: No such
>> file or directory
>> collect2: error: ld returned 1 exit status
>> make[3]: *** [../lib.mk:138: ../kselftest_size/size/get_size] Error 1
>> make[2]: *** [Makefile:143: all] Error 2
>> make[1]: *** [/mnt/data/lkml/linux_5.4/Makefile:1221: kselftest-all] Error 2
>> make[1]: Leaving directory '/mnt/data/lkml/kselftest_size'
>> make: *** [Makefile:179: sub-make] Error 2
>>
>> Use abs_objtree exported by the main Makefile.
>>
>> Reported-by: Tim Bird <Tim.Bird@sony.com>
>> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
>> ---
>>   tools/testing/selftests/Makefile | 5 +++--
>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/tools/testing/selftests/Makefile
>> b/tools/testing/selftests/Makefile
>> index 4cdbae6f4e61..3405aa26a655 100644
>> --- a/tools/testing/selftests/Makefile
>> +++ b/tools/testing/selftests/Makefile
>> @@ -86,10 +86,10 @@ override LDFLAGS =
>>   endif
>>
>>   ifneq ($(O),)
>> -	BUILD := $(O)
>> +	BUILD := $(abs_objtree)
>>   else
>>   	ifneq ($(KBUILD_OUTPUT),)
>> -		BUILD := $(KBUILD_OUTPUT)/kselftest
>> +		BUILD := $(abs_objtree)/kselftest
>>   	else
>>   		BUILD := $(shell pwd)
>>   		DEFAULT_INSTALL_HDR_PATH := 1
>> @@ -102,6 +102,7 @@ include $(top_srcdir)/scripts/subarch.include
>>   ARCH           ?= $(SUBARCH)
>>   export KSFT_KHDR_INSTALL_DONE := 1
>>   export BUILD
>> +#$(info abd_objtree = $(abs_objtree) BUILD = $(BUILD))
>>
>>   # build and run gpio when output directory is the src dir.
>>   # gpio has dependency on tools/gpio and builds tools/gpio
>> --
> 
>   This works great.  Thanks very much.
> 
> Tested-by: Tim Bird <tim.bird@sony.com>
> Acked-by: Tim Bird <tim.bird@sony.com>
> 
>   -- Tim
> 
Thanks for testing. Will get this into 5.4-rc4

thanks,
-- SHuah

Patch
diff mbox series

diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
index 4cdbae6f4e61..3405aa26a655 100644
--- a/tools/testing/selftests/Makefile
+++ b/tools/testing/selftests/Makefile
@@ -86,10 +86,10 @@  override LDFLAGS =
 endif
 
 ifneq ($(O),)
-	BUILD := $(O)
+	BUILD := $(abs_objtree)
 else
 	ifneq ($(KBUILD_OUTPUT),)
-		BUILD := $(KBUILD_OUTPUT)/kselftest
+		BUILD := $(abs_objtree)/kselftest
 	else
 		BUILD := $(shell pwd)
 		DEFAULT_INSTALL_HDR_PATH := 1
@@ -102,6 +102,7 @@  include $(top_srcdir)/scripts/subarch.include
 ARCH           ?= $(SUBARCH)
 export KSFT_KHDR_INSTALL_DONE := 1
 export BUILD
+#$(info abd_objtree = $(abs_objtree) BUILD = $(BUILD))
 
 # build and run gpio when output directory is the src dir.
 # gpio has dependency on tools/gpio and builds tools/gpio