On Thu, Mar 05, 2020 at 09:41:34AM -0700, Shuah Khan wrote: > On 3/4/20 7:20 PM, Kees Cook wrote: > > Instead of the TEST_CUSTOM_PROGS+all dance, you can just add an explicit > > dependency, with the final seccomp/Makefile looking like this: > > > > > > # SPDX-License-Identifier: GPL-2.0 > > CFLAGS += -Wl,-no-as-needed -Wall > > LDFLAGS += -lpthread > > > > TEST_GEN_PROGS := seccomp_bpf seccomp_benchmark > > > > TEST_CUSTOM_PROGS is for differentiating test programs that > can't use lib.mk generic rules. It is appropriate to use > for seccomp_bpf I don't follow? This suggested Makefile works for me (i.e. it can use the lib.mk generic rules since CFLAGS and LDFLAGS can be customized first, and it just adds an additional dependency). > > include ../lib.mk > > > > # Additional dependencies > > $(OUTPUT)/seccomp_bpf: ../kselftest_harness.h BTW, I see a lot of other targets that use kselftest_harness.h appear to be missing this Makefile dependency, but that's a different problem. :) > > (Though this fails in the same way as above when run from the top-level > > directory.) > > > > I didn't see this because I have been the same directory I used > for relocated cross-build kernel. :( > > Thanks for testing this. I know the problem here. all is a dependency > for install step and $(OUTPUT) is referencing the objdir before it > gets created. It is a Makefile/lib.mk problem to fix. > > I will do a separate patch for this. This will show up in any test > that is using $(OUTPUT) to relocate objects mainly the ones that > require custom build rule like seeccomp. Okay, cool. It looked to me like it lost track of the top level source directory (i.e. "make: entering $output" ... "can't find ../other/files") Anyway, I look forward to the next version and I'll get it tested. :) Thanks for fixing this! I really like having a top-level "make" command that can extract a single selftest; that's very handy! -- Kees Cook