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

From: Jessica Clarke <jrtc27_at_jrtc27.com>
Date: Fri, 28 Jul 2023 19:04:04 UTC
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?

Jess