selftests: fix headers_install circular dependency
authorShuah Khan <skhan@linuxfoundation.org>
Mon, 15 Apr 2019 21:51:42 +0000 (15:51 -0600)
committerShuah Khan <skhan@linuxfoundation.org>
Fri, 19 Apr 2019 23:15:27 +0000 (17:15 -0600)
commit8ce72dc32578f16942997f041f62759b4c693b6f
treefa0e4507802177ffd283818ad5984e52741d6648
parentb433a52aa28733e0650c5e83efdccfd0637b981a
selftests: fix headers_install circular dependency

"make kselftest" fails with "Circular Makefile.o <- prepare dependency
dropped." error, when lib.mk invokes "make headers_install".

Make level 0: Main make calls selftests run_tests target
...
Make level n: selftests lib.mk invokes main make's headers_install

The secondary level make inherits builtin-rules which will use the rule
to generate Makefile.o  and runs into "Circular Makefile.o <- prepare
dependency dropped." error, and kselftest compile fails.

Invoke headers_install target with --no-builtin-rules to avoid circular
error.

In addition, lib.mk installs headers in the default HDR_PATH, even when
build relocation is requested with O= or export KBUILD_OUTPUT. Fix the
problem by passing in INSTALL_HDR_PATH. The headers are installed under
the specified output "dir/usr".

Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/Makefile
tools/testing/selftests/lib.mk