Re: [tools headers UAPI] e2bcbd7769: kernel-selftests.ir.make_fail

From: Sean Young
Date: Tue Feb 01 2022 - 11:51:44 EST


On Fri, Jan 28, 2022 at 10:57:35AM -0700, Shuah Khan wrote:
> On 1/28/22 10:38 AM, Sean Young wrote:
> > On Fri, Jan 28, 2022 at 10:27:52AM -0700, Shuah Khan wrote:
> > > On 1/28/22 9:49 AM, Alexei Starovoitov wrote:
> > > > On Fri, Jan 28, 2022 at 1:32 AM Sean Young <sean@xxxxxxxx> wrote:
> > > > >
> > >
> > > > > > ir_loopback.c: In function ‘main’:
> > > > > > ir_loopback.c:147:20: error: ‘RC_PROTO_RCMM32’ undeclared (first use in this function); did you mean ‘RC_PROTO_RC6_MCE’?
> > > > > > if (rc_proto == RC_PROTO_RCMM32 &&
> > > > > > ^~~~~~~~~~~~~~~
> > > > > > RC_PROTO_RC6_MCE
> > > > >
> > > > > So this commit removes the copy of lirc.h from tools/include/uapi/linux/lirc.h,
> > > > > so now the test uses /usr/include/linux/lirc.h. It appears that this file
> > > > > does not have RC_PROTO_RCMM32 defined on this system, which means it is a
> > > > > kernel header from v5.1 or earlier (this was added in commit
> > > > > 721074b03411327e7bf41555d4cc7c18f49313f7).
> > > > >
> > > > > It looks like this machine is redhat 8.3, which ships with kernel 4.18.
> > > > >
> > > > > I guess my change was far too optimistic; I had no ideal enterprise kernels
> > > > > were so ancient.
>
> > Hi Shuah,
> >
> > I was thinking along the same lines, however RC_PROTO_RCMM32 is an enum
> > value so a pre-processor #ifdef is not going to work. At the moment I haven't
> > had any bright ideas other than doing a `#define RC_PROTO_RCMM32 26` at the
> > top of the file.
> >
>
> One more idea. Let's see if this works. Check for RC_PROTO_MAX if it existed
> before this commit that RC_PROTO_RCMM32, you could define RC_PROTO_RCMM32
> conditionally in the test scope. If not let's go woth your plan of defining
> it at the top with some info.

Good idea, this works! patch in another reply in this thread.

Sorry about the mess, thanks for the suggestions.

Sean