Re: [PATCH] selftests: Makefile: add missing 'net/lib' to targets

From: Willem de Bruijn
Date: Sun Sep 15 2024 - 03:37:01 EST


On Sun, Sep 15, 2024 at 8:45 AM Anders Roxell <anders.roxell@xxxxxxxxxx> wrote:
>
> On Thu, 12 Sept 2024 at 17:23, Jakub Kicinski <kuba@xxxxxxxxxx> wrote:
> >
> > On Thu, 12 Sep 2024 08:31:18 +0200 Anders Roxell wrote:
> > > Fixes: 1d0dc857b5d8 ("selftests: drv-net: add checksum tests")
> > > Signed-off-by: Anders Roxell <anders.roxell@xxxxxxxxxx>
> > > ---
> > > tools/testing/selftests/Makefile | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
> > > index 3b7df5477317..fc3681270afe 100644
> > > --- a/tools/testing/selftests/Makefile
> > > +++ b/tools/testing/selftests/Makefile
> > > @@ -64,6 +64,7 @@ TARGETS += net
> > > TARGETS += net/af_unix
> > > TARGETS += net/forwarding
> > > TARGETS += net/hsr
> > > +TARGETS += net/lib
> > > TARGETS += net/mptcp
> > > TARGETS += net/netfilter
> > > TARGETS += net/openvswitch
> >
> > Please make sure you always include a commit message. Among other
> > things writing one would force you to understand the code, and
> > in this case understand that this target is intentionally left out.
> > Look around the Makefile for references to net/lib, you'll figure
> > it out.
> >
> > The patch is incorrect.
>
> You’re right, the patch is incorrect, I could have explained better.
> I’m seeing an issue with an out-of-tree cross compilation build of
> kselftest and can’t figure out what’s wrong.
>
> make --keep-going --jobs=32 O=/tmp/build
> INSTALL_PATH=/tmp/build/kselftest_install \
> ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \
> CROSS_COMPILE_COMPAT=arm-linux-gnueabihf- kselftest-install
>
> [...]
> make[4]: Entering directory
> '/home/anders/src/kernel/linux/tools/testing/selftests/net/lib'
> CC csum
> /usr/lib/gcc-cross/aarch64-linux-gnu/13/../../../../aarch64-linux-gnu/bin/ld:
> cannot open output file /tmp/build/kselftest/net/lib/csum: No such
> file or directory
> collect2: error: ld returned 1 exit status
> [...]
>
> Any thoughts on what might be causing this?

I wonder if this is due to the O= argument.

Last week I noticed that some TARGETs explicitly have support for
this, like x86. Added in 2016 in commit a8ba798bc8ec6 ("selftests:
enable O and KBUILD_OUTPUT"). But by now this support is hardly
universal. amd-pstate does not have this infra, for instance.

Though if the only breakage is in net/lib, then that does not explain it fully.