Re: [PATCH 1/2] selftests: cgroup: build error multiple outpt files

From: Shuah Khan
Date: Tue Nov 30 2021 - 11:42:07 EST


On 11/23/21 7:26 AM, Christian Brauner wrote:
On Fri, Nov 19, 2021 at 05:22:20PM -0700, Shuah Khan wrote:
On 11/5/21 10:25 AM, Anders Roxell wrote:
When building selftests/cgroup: with clang the following error are seen:

clang -Wall -pthread test_memcontrol.c cgroup_util.c ../clone3/clone3_selftests.h -o /home/anders/.cache/tuxmake/builds/current/kselftest/cgroup/test_memcontrol
clang: error: cannot specify -o when generating multiple output files
make[3]: *** [../lib.mk:146: /home/anders/.cache/tuxmake/builds/current/kselftest/cgroup/test_memcontrol] Error 1

Rework to add the header files to LOCAL_HDRS before including ../lib.mk,
since the dependency is evaluated in '$(OUTPUT)/%:%.c $(LOCAL_HDRS)' in
file lib.mk.

Suggested-by: Arnd Bergmann <arnd@xxxxxxxx>
Signed-off-by: Anders Roxell <anders.roxell@xxxxxxxxxx>
---
tools/testing/selftests/cgroup/Makefile | 12 +++++++-----
tools/testing/selftests/lib.mk | 2 +-
2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/tools/testing/selftests/cgroup/Makefile b/tools/testing/selftests/cgroup/Makefile
index 59e222460581..745fe25fa0b9 100644
--- a/tools/testing/selftests/cgroup/Makefile
+++ b/tools/testing/selftests/cgroup/Makefile
@@ -11,10 +11,12 @@ TEST_GEN_PROGS += test_core
TEST_GEN_PROGS += test_freezer
TEST_GEN_PROGS += test_kill
+LOCAL_HDRS += $(selfdir)/clone3/clone3_selftests.h $(selfdir)/pidfd/pidfd.h
+

This looks odd to me. Why are we introducing dependencies between tests?
clone3 includes in cgroup? Looks odd to me.

The cgroup tests need access to clone3() functionality in order to test
CLONE_INTO_CGROUP which is more suited to be placed alongside the cgroup
tests. There are a few other tests that include the clone3 header.


If other tests are also including this header, we could move it up under
selftests level. Might have to add include directory.

thanks,
-- Shuah