Re: build world fails on raw_ip.c

From: Hans Petter Selasky <hps_at_selasky.org>
Date: Tue, 04 Oct 2022 13:59:51 UTC
On 10/4/22 15:49, Hans Petter Selasky wrote:
> On 10/4/22 15:35, Gary Jennejohn wrote:
>> 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
>>
> 
> I'll leave fixing the LINT-NOINET6 for Gleb. Seems like it needs a bit 
> more changes.
> 
> At least LINT and GENERIC is fine.
> 
> --HPS

Fixed too:
https://cgit.freebsd.org/src/commit/?id=c2a808b977dd61c0d69d878cd1bef6b016114d14

Was trivial.

--HPS