Bug 216477 - cannot build kernel with gpio devices
Summary: cannot build kernel with gpio devices
Status: Closed Unable to Reproduce
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 11.0-RELEASE
Hardware: i386 Any
: --- Affects Some People
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-26 05:22 UTC by emz
Modified: 2019-01-15 23:51 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description emz 2017-01-26 05:22:06 UTC
11.0-RELEASE tree.
i386 arch, cross-compiling as nanoBSD on amd64.

Man gpio states:

NAME
     gpioiic – GPIO I2C bit-banging device driver

SYNOPSIS
     To compile this driver into the kernel, place the following lines in your
     kernel configuration file:

           device gpio
           device gpioiic
           device iic
           device iicbb
           device iicbus
[...]

Kernel config:

[...]
device gpio
device gpioiic
device iic
device iicbb
device iicbus
[...]


Kernel build log:

--------------------------------------------------------------
>>> stage 1: configuring the kernel
--------------------------------------------------------------
cd /usr/src/sys/i386/conf;  PATH=/usr/obj/nanobsd.alix/i386.i386/usr/src/tmp/legacy/usr/sbin:/usr/obj/nanobsd.alix/i386.
i386/usr/src/tmp/legacy/usr/bin:/usr/obj/nanobsd.alix/i386.i386/usr/src/tmp/legacy/bin:/usr/obj/nanobsd.alix/i386.i386/u
sr/src/tmp/usr/sbin:/usr/obj/nanobsd.alix/i386.i386/usr/src/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin  config  -d /usr/o
bj/nanobsd.alix/i386.i386/usr/src/sys/ALIX  -I '/usr/src/sys/i386/conf' '/usr/src/sys/i386/conf/ALIX'
config: Error: device "gpioc" is unknown
config: 1 errors
*** [buildkernel] Error code 1

make[1]: stopped in /usr/src
1 error

make[1]: stopped in /usr/src
*** [buildkernel] Error code 2

make: stopped in /usr/src
1 error

make: stopped in /usr/src


Okay, now I remove "device gpioc" from the kernel config:

[...]
--- gpio_if.o ---
awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/dev/gpio/gpio_if.m -c ;  cc  -c -O -pipe  -g -nostdinc  -I. -I/usr
/src/sys -I/usr/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h  -MD  -MF.depend.gpi
o_if.o -MTgpio_if.o -mno-mmx -mno-sse -msoft-float -ffreestanding -fwrapv -fstack-protector -gdwarf-2 -Wall -Wredundant-
decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-poin
ter-sign -D__printf__=__freebsd_kprintf__  -Wmissing-include-dirs -fdiagnostics-show-option  -Wno-unknown-pragmas  -Wno-
error-tautological-compare -Wno-error-empty-body  -Wno-error-parentheses-equality -Wno-error-unused-function  -Wno-error
-pointer-sign -Wno-error-shift-negative-value  -mno-aes -mno-avx  -std=iso9899:1999 -Werror  gpio_if.c
--- gpioiic.o ---
/usr/src/sys/dev/gpio/gpioiic.c:50:10: fatal error: 'iicbb_if.h' file not found
#include "iicbb_if.h"
         ^
1 error generated.
*** [gpioiic.o] Error code 1

make[2]: stopped in /usr/obj/nanobsd.alix/i386.i386/usr/src/sys/ALIX
--- gpioled.o ---
ctfconvert -L VERSION -g gpioled.o
--- gpio_if.o ---
ctfconvert -L VERSION -g gpio_if.o
1 error

make[2]: stopped in /usr/obj/nanobsd.alix/i386.i386/usr/src/sys/ALIX
*** [buildkernel] Error code 2

make[1]: stopped in /usr/src
1 error

make[1]: stopped in /usr/src
*** [buildkernel] Error code 2

make: stopped in /usr/src
1 error

make: stopped in /usr/src


Still doesn't build. So, either the man shoudl be fixed, or these errors need to be corrected.
Comment 1 Oleksandr Tymoshenko freebsd_committer freebsd_triage 2019-01-15 23:51:03 UTC
Thanks for reporting.

There is no reference of to "gpioc" device in the gpioiic(4) man page, so I believe it was a mistake when adding the config snippet. I copy-pasted  man page to tools/tools/nanobsd/pcengines/ALIX_DSK and used it as a kernel config, the build went fine on HEAD and stable/11.

Closing as "Unable to Reproduce"