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

From: Shuah Khan
Date: Fri Jan 28 2022 - 12:57:46 EST


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.

thanks,
-- Shuah