Error compiling isboot-kmod
Maurizio Vairani
maurizio1018 at gmail.com
Mon Jan 29 12:50:16 UTC 2018
2018-01-27 17:20 GMT+01:00 Ian Lepore <ian at freebsd.org>:
> On Fri, 2018-01-26 at 23:20 -0700, John Nielsen wrote:
> > >
> > > On Jan 26, 2018, at 9:42 PM, John Nielsen <lists at jnielsen.net> wrote:
> > >
> > > >
> > > > [...]
> > > --- 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?
> >
> >
>
> I'm not set up to test-compile this against -current right now, so I'm
> not sure if this is all that remains or just another breadcrumb on the
> trail, but... try the attached patch.
>
> -- Ian
>
> --- iscsi.c.orig 2018-01-27 08:43:26.937858000 -0700
> +++ iscsi.c 2018-01-27 09:15:39.631501000 -0700
> @@ -1071,17 +1071,23 @@
> }
>
>
> -#if __FreeBSD_version >= 1100000
> +#if __FreeBSD_version >= 1200051
> +static void
> +isboot_free_mbufext(struct mbuf *m)
> +{
> + void *p = m->m_ext.ext_arg1;
> +#elif __FreeBSD_version >= 1100000
> static void
> isboot_free_mbufext(struct mbuf *m, void *p, void *optarg)
> #elif __FreeBSD_version >= 1000050 && __FreeBSD_version < 1100000
> static int
> isboot_free_mbufext(struct mbuf *m, void *p, void *optarg)
> +{
> #else
> static void
> isboot_free_mbufext(void *p, void *optarg)
> -#endif
> {
> +#endif
>
> ISBOOT_TRACE("isboot_free_mbufext\n");
> if (p == NULL)
>
>
Applying this patch the module is compilable, but when I use it I receive
a 'Fatal trap 12'. I will open a new discussion.
Thanks to all of you.
Maurizio
More information about the freebsd-current
mailing list