Re: Error compiling isboot-kmod

From: John Nielsen <lists_at_jnielsen.net>
Date: Fri, 26 Jan 2018 23:20:56 -0700
> 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_at_ 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?
Received on Sat Jan 27 2018 - 05:21:02 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:14 UTC