Re: selftests: hid: trouble building with clang due to missing header

From: Benjamin Tissoires
Date: Tue Aug 22 2023 - 17:37:26 EST


On Tue, Aug 22, 2023 at 11:26 PM Justin Stitt <justinstitt@xxxxxxxxxx> wrote:
>
> On Tue, Aug 22, 2023 at 2:15 PM Benjamin Tissoires
> <benjamin.tissoires@xxxxxxxxxx> wrote:
> >
> > On Tue, Aug 22, 2023 at 11:06 PM Benjamin Tissoires
> > <benjamin.tissoires@xxxxxxxxxx> wrote:
> > >
> > > On Tue, Aug 22, 2023 at 10:57 PM Justin Stitt <justinstitt@xxxxxxxxxx> wrote:
> > > >
> > > [...]
> > > > > > > Here's the invocation I am running to build kselftest:
> > > > > > > `$ make LLVM=1 ARCH=x86_64 mrproper headers && make LLVM=1 ARCH=x86_64
> > > > > > > -j128 V=1 -C tools/testing/selftests`
> > > > >
> > > > > I think I fixed the same issue in the script I am running to launch
> > > > > those tests in a VM. This was in commit
> > > > > f9abdcc617dad5f14bbc2ebe96ee99f3e6de0c4e (in the v6.5-rc+ series).
> > > > >
> > > > > And in the commit log, I wrote:
> > > > > ```
> > > > > According to commit 01d6c48a828b ("Documentation: kselftest:
> > > > > "make headers" is a prerequisite"), running the kselftests requires
> > > > > to run "make headers" first.
> > > > > ```
> > > > >
> > > > > So my assumption is that you also need to run "make headers" with the
> > > > > proper flags before compiling the selftests themselves (I might be
> > > > > wrong but that's how I read the commit).
> > > >
> > > > In my original email I pasted the invocation I used which includes the
> > > > headers target. What are the "proper flags" in this case?
> > > >
> > >
> > > "make LLVM=1 ARCH=x86_64 headers" no?
> > >
> > > But now I'm starting to wonder if that was not the intent of your
> > > combined "make mrproper headers". I honestly never tried to combine
> > > the 2. It's worth a try to split them I would say.
> >
> > Apologies, I just tested it, and it works (combining the 2).
> >
> > Which kernel are you trying to test?
> > I tested your 2 commands on v6.5-rc7 and it just works.
>
> I'm also on v6.5-rc7 (706a741595047797872e669b3101429ab8d378ef)
>
> I ran these exact commands:
> | $ make mrproper
> | $ make LLVM=1 ARCH=x86_64 headers
> | $ make LLVM=1 ARCH=x86_64 -j128 -C tools/testing/selftests
> TARGETS=hid &> out
>
> and here's the contents of `out` (still warnings/errors):
> https://gist.github.com/JustinStitt/d0c30180a2a2e046c32d5f0ce5f59c6d
>
> I have a feeling I'm doing something fundamentally incorrectly. Any ideas?

Sigh... there is a high chance my Makefile is not correct and uses the
installed headers (I was running the exact same commands, but on a
v6.4-rc7+ kernel).

But sorry, it will have to wait for tomorrow if you want me to have a
look at it. It's 11:35 PM here, and I need to go to bed

Cheers,
Benjamin

>
> To be clear, I can build the Kernel itself just fine across many
> configs and architectures. I have, at the very least, the dependencies
> required to accomplish that.
>
> >
> > FTR:
> > $> git checkout v6.5-rc7
> > $> make LLVM=1 ARCH=x86_64 mrproper headers
> > $> make LLVM=1 ARCH=x86_64 -j8 -C tools/testing/selftests TARGETS=hid
> >
> > -> BINARY hid_bpf
> >
> > Cheers,
> > Benjamin
> >
>