Re: git: 971bac5ace7a - main - kbd: consolidate kb interfaces (phase one)

From: Renato Botelho <garga_at_FreeBSD.org>
Date: Fri, 28 Jul 2023 19:09:33 UTC
On 28/07/23 16:04, Jessica Clarke wrote:
> On 28 Jul 2023, at 20:01, Renato Botelho <garga@FreeBSD.org> wrote:
>>
>> On 28/07/23 00:04, Warner Losh wrote:
>>> On Thu, Jul 27, 2023 at 5:48 AM Renato Botelho <garga@freebsd.org <mailto:garga@freebsd.org>> wrote:
>>>     On 07/07/23 02:10, Warner Losh wrote:
>>>      > The branch main has been updated by imp:
>>>      >
>>>      > URL:
>>>     https://cgit.FreeBSD.org/src/commit/?id=971bac5ace7a3c2262349fa2808188a11a5ffeed <https://cgit.FreeBSD.org/src/commit/?id=971bac5ace7a3c2262349fa2808188a11a5ffeed>
>>>      >
>>>      > commit 971bac5ace7a3c2262349fa2808188a11a5ffeed
>>>      > Author:     Michael <git@paepcke.de <mailto:git@paepcke.de>>
>>>      > AuthorDate: 2023-07-07 02:32:45 +0000
>>>      > Commit:     Warner Losh <imp@FreeBSD.org>
>>>      > CommitDate: 2023-07-07 05:10:18 +0000
>>>      >
>>>      >      kbd: consolidate kb interfaces (phase one)
>>>      >
>>>      >      Refactor to eliminate duplicated rate and delay tables, with
>>>     minor style
>>>      >      tweaks for changed lines.  Remove an obsolete comment about
>>>     needing to
>>>      >      convert from microseconds to ticks (that's done elsewhere).
>>>     Remove
>>>      >      traiing whitespace in kbdcontrol.c.
>>>      >
>>>      >      Except for the new warning, no change in behavior
>>>      >
>>>      >      Sponsored by:           DSS GmbH
>>>      >      Reviewed by:            imp [minor style tweaks as well]
>>>      >      Pull Request: https://github.com/freebsd/pull/683
>>>     <https://github.com/freebsd/pull/683>
>>>      >      Differential Revision: https://reviews.freebsd.org/D38818
>>>     <https://reviews.freebsd.org/D38818>
>>>      > ---
>>>      >   sys/dev/adb/adb_kbd.c            | 12 ++-------
>>>      >   sys/dev/atkbdc/atkbd.c           | 18 +++++---------
>>>      >   sys/dev/gpio/gpiokeys.c          | 10 ++------
>>>      >   sys/dev/hid/hkbd.c               | 10 ++------
>>>      >   sys/dev/kbdmux/kbdmux.c          | 23 +++++------------
>>>      >   sys/dev/usb/input/ukbd.c         | 10 ++------
>>>      >   sys/dev/vkbd/vkbd.c              | 18 +++++---------
>>>      >   sys/sys/kbio.h                   |  7 ++++++
>>>      >   usr.sbin/kbdcontrol/kbdcontrol.c | 53
>>>     +++++++++++++++++++++-------------------
>>>      >   9 files changed, 61 insertions(+), 100 deletions(-)
>>>     After this change I started seeing following error building kbdcontrol:
>>>     Building /usr/obj/usr/src/amd64.amd64/usr.sbin/kbdcontrol/kbdcontrol.o
>>>     /usr/src/usr.sbin/kbdcontrol/kbdcontrol.c:97:35: error: use of
>>>     undeclared identifier 'kbdelays'; did you mean 'ndelays'?
>>>     static const int ndelays = nitems(kbdelays);
>>>                                         ^~~~~~~~
>>>                                         ndelays
>>>     /usr/include/sys/param.h:324:28: note: expanded from macro 'nitems'
>>>     #define nitems(x)       (sizeof((x)) / sizeof((x)[0]))
>>>                                        ^
>>>     /usr/src/usr.sbin/kbdcontrol/kbdcontrol.c:97:18: note: 'ndelays'
>>>     declared here
>>>     static const int ndelays = nitems(kbdelays);
>>>                        ^
>>>     /usr/src/usr.sbin/kbdcontrol/kbdcontrol.c:97:35: error: use of
>>>     undeclared identifier 'kbdelays'; did you mean 'ndelays'?
>>>     static const int ndelays = nitems(kbdelays);
>>>                                         ^~~~~~~~
>>>                                         ndelays
>>>     /usr/include/sys/param.h:324:42: note: expanded from macro 'nitems'
>>>     #define nitems(x)       (sizeof((x)) / sizeof((x)[0]))
>>>                                                      ^
>>>     /usr/src/usr.sbin/kbdcontrol/kbdcontrol.c:97:18: note: 'ndelays'
>>>     declared here
>>>     static const int ndelays = nitems(kbdelays);
>>>                        ^
>>>     /usr/src/usr.sbin/kbdcontrol/kbdcontrol.c:97:28: error: subscripted
>>>     value is not an array, pointer, or vector
>>>     static const int ndelays = nitems(kbdelays);
>>>                                  ^~~~~~~~~~~~~~~~
>>>     /usr/include/sys/param.h:324:44: note: expanded from macro 'nitems'
>>>     #define nitems(x)       (sizeof((x)) / sizeof((x)[0]))
>>>                                                     ~~~^~
>>>     /usr/src/usr.sbin/kbdcontrol/kbdcontrol.c:98:36: error: use of
>>>     undeclared identifier 'kbrates'
>>>     static const int nrepeats = nitems(kbrates);
>>>                                          ^
>>>     /usr/src/usr.sbin/kbdcontrol/kbdcontrol.c:98:36: error: use of
>>>     undeclared identifier 'kbrates'
>>>     /usr/src/usr.sbin/kbdcontrol/kbdcontrol.c:1072:17: error: use of
>>>     undeclared identifier 'kbdelays'; did you mean 'ndelays'?
>>>                               if (delay <= kbdelays[n])
>>>                                            ^~~~~~~~
>>>                                            ndelays
>>>     /usr/src/usr.sbin/kbdcontrol/kbdcontrol.c:97:18: note: 'ndelays'
>>>     declared here
>>>     static const int ndelays = nitems(kbdelays);
>>>                        ^
>>>     /usr/src/usr.sbin/kbdcontrol/kbdcontrol.c:1072:25: error: subscripted
>>>     value is not an array, pointer, or vector
>>>                               if (delay <= kbdelays[n])
>>>                                            ~~~~~~~~^~
>>>     /usr/src/usr.sbin/kbdcontrol/kbdcontrol.c:1076:18: error: use of
>>>     undeclared identifier 'kbrates'
>>>                               if (repeat <= kbrates[n])
>>>                                             ^
>>>     8 errors generated.
>>>     *** Error code 1
>>> I haven't seen this. How do I recreate this? Does this happen on a clean build?
>>
>> After I upgrade system to recent CURRENT the error is gone.
> 
> kbdcontrol requires an updated sys/kbio.h, so if you try and do a make
> of just it outside of make buildenv and without having first installed
> updated headers to worldtmp then you won’t get the updated sys/kbio.h.
> I don’t think that’s something we support in general, only when it
> happens to work?

It failed during an attempt of make buildworld.  After that I tried to 
build only it, just to check.  I ran make depend first too.

-- 
Renato Botelho