Re: build world fails on raw_ip.c

From: Gary Jennejohn <garyj_at_gmx.de>
Date: Tue, 04 Oct 2022 13:35:25 UTC
On Tue, 4 Oct 2022 15:20:05 +0200
Hans Petter Selasky <hps@selasky.org> wrote:

> On 10/4/22 15:14, Johan Hendriks wrote:
> > I just updated the source today but now i get an error building world.
> > The old build was from yesterday which was fine!
> >
> > Building /usr/obj/usr/src/amd64.amd64/sys/KRNL/raw_ip.o
> > cc -target x86_64-unknown-freebsd14.0 > --sysroot=/usr/obj/usr/src/amd64.amd64/tmp > -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -c -O2 -pipe > -fno-strict-aliasing -march=broadwell -g -nostdinc  -I. -I/usr/src/sys > -I/usr/src/sys/contrib/ck/include -I/usr/src/sys/contrib/libfdt > -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common > -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer > -fdebug-prefix-map=./machine=/usr/src/sys/amd64/include > -fdebug-prefix-map=./x86=/usr/src/sys/x86/include > -fdebug-prefix-map=./i386=/usr/src/sys/i386/include -mcmodel=kernel > -mno-red-zone -mno-mmx -mno-sse -msoft-float > -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector > -Wall -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes > -Wpointer-arith -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-address-of-packed-member -Wno-format-zero-length   -mno-aes > -mno-avx  -std=iso9899:1999 -Werror /usr/src/sys/netinet/raw_ip.c
> > /usr/src/sys/netinet/raw_ip.c:811:3: error: too few arguments to > function call, expected 4, have 2
> >                  IPSEC_CTLINPUT(ipv4, icmp);
> >                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
> > /usr/src/sys/netipsec/ipsec_support.h:222:61: note: expanded from macro > 'IPSEC_CTLINPUT'
> >      ipsec_kmod_ctlinput(proto ## _ipsec_support, __VA_ARGS__)
> >      ~~~~~~~~~~~~~~~~~~~                                     ^
> > /usr/src/sys/netipsec/ipsec_support.h:196:5: note: 'ipsec_kmod_ctlinput' > declared here
> > int ipsec_kmod_ctlinput(struct ipsec_support * const, int,
> >      ^
> > 1 error generated.
> > *** Error code 1
> >
>
> I've mailed the responsible committer.
>
> Just do:
>
> diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC
> index 9178abba36cc..ed8045e48257 100644
> --- a/sys/amd64/conf/GENERIC
> +++ b/sys/amd64/conf/GENERIC
> @@ -30,7 +30,7 @@ options       PREEMPTION              # Enable kernel thread preemption
>   options        VIMAGE                  # Subsystem virtualization, e.g. VNET
>   options        INET                    # InterNETworking
>   options        INET6                   # IPv6 communications protocols
> -options        IPSEC_SUPPORT           # Allow kldload of ipsec and tcpmd5
> +# options      IPSEC_SUPPORT           # Allow kldload of ipsec and tcpmd5
>   options                ROUTE_MPATH             # Multipath routing support
>   options                FIB_ALGO                # Modular fib lookups
>   options        TCP_OFFLOAD             # TCP offload
>
>
>
> For now.
>

There are the usual other problems, like always assuming the every user
has INET6 defined in their kernel config file.

Here's an error I just saw:

/usr/src/sys/netinet/tcp_subr.c:136:8: error: unknown type name 'ip6proto_ctlinput_t'; did you mean 'ipproto_ctlinput_t'?
static ip6proto_ctlinput_t tcp6_ctlinput;
       ^~~~~~~~~~~~~~~~~~~
       ipproto_ctlinput_t
/usr/src/sys/netinet/ip_var.h:242:14: note: 'ipproto_ctlinput_t' declared here
typedef void    ipproto_ctlinput_t(struct icmp *);
                ^
1 error generated.
--- tcp_subr.o ---
*** [tcp_subr.o] Error code 1

--
Gary Jennejohn