Error compiling isboot-kmod
John Nielsen
lists at jnielsen.net
Sat Jan 27 06:21:02 UTC 2018
> On Jan 26, 2018, at 9:42 PM, John Nielsen <lists at jnielsen.net> wrote:
>
>> On Jan 26, 2018, at 10:35 AM, Ian Lepore <ian at FreeBSD.org> wrote:
>>
>> On Fri, 2018-01-26 at 10:00 -0700, John Nielsen wrote:
>>>>
>>>> On Jan 26, 2018, at 3:37 AM, Maurizio Vairani <maurizio1018 at gmail.c
>>>> om> wrote:
>>>>
>>>> 2018-01-24 17:19 GMT+01:00 Warner Losh <imp at bsdimp.com>:
>>>>
>>>>
>>>> On Wed, Jan 24, 2018 at 3:12 AM, Maurizio Vairani <maurizio1018 at gma
>>>> il.com> wrote:
>>>> On this CURRENT snapshot
>>>> # uname -a
>>>> FreeBSD freebsd12 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r327788: Wed
>>>> Jan 10
>>>> 22:55:40 UTC 2018
>>>> root at releng3.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENER
>>>> IC
>>>> amd64
>>>>
>>>> I can't compile the kernel module isboot-kmod:
>>>>
>>>> /usr/src/sys/sys/bus.h:726:10: fatal error: 'device_if.h' file not
>>>> found
>>>> #include "device_if.h"
>>>> ^~~~~~~~~~~~~
>>>>
>>>> I think this was fixed in a newer -current.
>>>>
>>>> Warner
>>>> Thanks Warner, but I have the same error in :
>>>> # uname -a
>>>> FreeBSD 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r328383: Thu Jan 25
>>>> 04:48:52 UTC 2018 root at releng3.nyi.freebsd.org:/usr/obj/usr/src
>>>> /amd64.amd64/sys/GENERIC amd64
>>> Whatever change broke it happened around the beginning of July 2017.
>>> I started getting (and ignoring, sadly, due to lack of time and
>>> certainty that anyone cared) messages with this error from pkg-
>>> fallout@ on July 11. I'm looking through the revision history but
>>> nothing stands out to me yet. Maybe someone with better svn-foo will
>>> find it faster. :)
>>>
>>>> In file included from /usr/src/sys/dev/mmc/bridge.h:59:
>>>> /usr/src/sys/sys/bus.h:726:10: fatal error: 'device_if.h' file not
>>>> found
>>>> #include "device_if.h"
>>>> ^~~~~~~~~~~~~
>>
>> I've never looked into how kernel modules compile when built as a port,
>> but when built as part of the system kernel build, the SRCS= in the
>> module makefile needs to name all of the dynamically generated header
>> files such as device_if.h (basically anything ending in _if.h used by
>> the module needs to be in SRCS=).
>>
>> So adding device_if.h to SRCS may be all that's needed. Or maybe
>> that's incremental and you'll find that several others are needed as
>> well.
>
> Thanks! Patching the Makefile with:
> SRCS+= device_if.h bus_if.h
>
> solves the above issue but now there's something else. Anyone have an idea off the top of their head?
>
> root at freebsd12:/usr/ports/net/isboot-kmod # make
> ===> Configuring for isboot-kmod-0.2.13_1
> ===> Building for isboot-kmod-0.2.13_1
> --- machine ---
> --- x86 ---
> --- objwarn ---
> Warning: Object directory not changed from original /usr/ports/net/isboot-kmod/work/isboot-0.2.13/src
> --- x86 ---
> x86 -> /usr/src/sys/x86/include
> --- machine ---
> machine -> /usr/src/sys/amd64/include
> --- opt_cam.h ---
> --- device_if.h ---
> --- bus_if.h ---
> --- opt_cam.h ---
> :> opt_cam.h
> --- device_if.h ---
> awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/device_if.m -h
> --- bus_if.h ---
> awk -f /usr/src/sys/tools/makeobjops.awk /usr/src/sys/kern/bus_if.m -h
> --- isboot.o ---
> --- ibft.o ---
> --- iscsi.o ---
> --- isboot.o ---
> cc -O2 -pipe -DNO_MALLOC_EXTRAS -fno-strict-aliasing -DNO_MALLOC_EXTRAS -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I. -I/usr/src/sys -fno-common -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -MD -MF.depend.isboot.o -MTisboot.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-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 -Wno-error-address-of-packed-member -mno-aes -mno-avx -std=iso9899:1999 -c isboot.c -o isboot.o
> --- iscsi.o ---
> cc -O2 -pipe -DNO_MALLOC_EXTRAS -fno-strict-aliasing -DNO_MALLOC_EXTRAS -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I. -I/usr/src/sys -fno-common -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -MD -MF.depend.iscsi.o -MTiscsi.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-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 -Wno-error-address-of-packed-member -mno-aes -mno-avx -std=iso9899:1999 -c iscsi.c -o iscsi.o
> --- ibft.o ---
> cc -O2 -pipe -DNO_MALLOC_EXTRAS -fno-strict-aliasing -DNO_MALLOC_EXTRAS -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I. -I/usr/src/sys -fno-common -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -MD -MF.depend.ibft.o -MTibft.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-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 -Wno-error-address-of-packed-member -mno-aes -mno-avx -std=iso9899:1999 -c ibft.c -o ibft.o
> --- iscsi.o ---
> iscsi.c:1146:3: error: incompatible pointer types passing 'void (struct mbuf *, void *, void *)' to parameter of type 'm_ext_free_t *' (aka 'void (*)(struct mbuf *)') [-Werror,-Wincompatible-pointer-types]
> MEXTADD(md, (caddr_t)ds_dd, (ISCSI_ALIGN(pp->ds_len)
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/src/sys/sys/mbuf.h:887:42: note: expanded from macro 'MEXTADD'
> m_extadd((m), (char *)(buf), (size), (free), (arg1), (arg2), \
> ^~~~~~
> /usr/src/sys/sys/mbuf.h:634:59: note: passing argument to parameter here
> void m_extadd(struct mbuf *, char *, u_int, m_ext_free_t,
Looks like iscsi.c needs to be fixed up following r324446 (https://svnweb.freebsd.org/changeset/base/324446). Starting to be out of my depth unless there's a mechanical way to make the changes?
More information about the freebsd-current
mailing list