Message ID | 20191015014505.14259-1-skhan@linuxfoundation.org (mailing list archive) |
---|---|
State | Mainlined |
Commit | 303e6218ecec475d5bc3e5922dec770ee5baf107 |
Headers | show |
Series | selftests: Fix O= and KBUILD_OUTPUT handling for relative paths | expand |
> -----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
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
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
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(-)