FreeBSD stable/13 の buildkernel も手元の環境が壊れていた様だ2022年02月24日 13時00分33秒

FreeBSD stable/13 の buildkernel のエラーも手元の環境が原因だった。クリーンビルドは行ったが、obj ディレクトリの容量が足りなくなった時に、ファイルシステムの移動をした。その時に、間違って他のリリースのコードを一部複写してしまったのかも知れない。stable/13 以外に、releng/12.3、releng/13.0、main のコードと obj ディレクトリがあったので。

出ていたエラーは以下の通り。

/usr/src/sys/dev/rtwn/usb/rtwn_usb_attach.c:103:49: error: invalid application o
f 'sizeof' to an incomplete type 'const struct usb_device_id []'
        return (usbd_lookup_id_by_uaa(rtwn_devs, sizeof(rtwn_devs), uaa));
                                                       ^~~~~~~~~~~
/usr/src/sys/dev/rtwn/usb/rtwn_usb_attach.c:490:1: error: invalid application of
 'sizeof' to an incomplete type 'const struct usb_device_id []'
USB_PNP_HOST_INFO(rtwn_devs);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/sys/dev/usb/usbdi.h:346:12: note: expanded from macro 'USB_PNP_HOST_INF
O'
            sizeof(table) / sizeof(table[0]))
            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/sys/sys/module.h:187:16: note: expanded from macro 'MODULE_PNP_INFO'
                .num_entry = n   
git でコードを見ていた時に rtwn 等のファイルに変更が無いのを見てから、手元を疑った。

取り敢えず、usb か rtwn の名前を含むファイルを削除。

% find /usr/obj -type f -name '*usb*' -or -name '*rtwn*' | xargs rm
運良くこれで、コンパイルが通るようになった。

前々回前回