Yes, sorry for the inconvinience;

It turns out that for some reason, the three different compilers used across various platforms (gcc12, gcc13 and clang) are not all similarly strict with enum vs. int32 types, or are forgiving in slightly different ways.

What happend was that I forgot a type conversion to ccsignal_t in the fallback newreno reaction - but that (int32 for an enum) was acceptable for gcc12 / clang (my local toolchain), only gcc13 complained (upstream).

But when I hurried to fix the gcc13 error (with the proper type in the function header), either gcc12 or clang then complained about the missing default clause (which I had added in other instances, but wasn't
flagged in my local build previous to submitting the fix).

Thus that broke some toolchains - but it wasn't flagged to me locally either.

I'm trying to get my local toolchain upgraded to gcc13 - since this appears to be the most stringent set of checks, to prevent similar issues in the future.

Richard Scheffenegger



Am 26.02.2024 um 09:32 schrieb Richard Scheffenegger:



-------- Weitergeleitete Nachricht --------
Betreff:        Re: after commit 5e248c2, kernel module build is broken
Datum:  Mon, 26 Feb 2024 14:24:48 +0800
Von:    Zhenlei Huang <z...@freebsd.org>
An:     Michael Butler <i...@protected-networks.net>
Kopie (CC): freebsd-current <freebsd-current@freebsd.org>, Richard Scheffenegger <rsch...@freebsd.org>



On Feb 25, 2024, at 11:38 PM, Michael Butler <i...@protected-networks.net>  
wrote:

Building 
/usr/obj/usr/src/amd64.amd64/sys/VM01-new/modules/usr/src/sys/modules/vmm/machine
machine -> /usr/src/sys/amd64/include
Building 
/usr/obj/usr/src/amd64.amd64/sys/VM01-new/modules/usr/src/sys/modules/vmm/x86
x86 -> /usr/src/sys/x86/include
Building 
/usr/obj/usr/src/amd64.amd64/sys/VM01-new/modules/usr/src/sys/modules/vmm/i386
i386 -> /usr/src/sys/i386/include
Building 
/usr/obj/usr/src/amd64.amd64/sys/VM01-new/modules/usr/src/sys/modules/vmm/opt_acpi.h
Building 
/usr/obj/usr/src/amd64.amd64/sys/VM01-new/modules/usr/src/sys/modules/vmm/opt_ddb.h
Building /usr/obj/usr/src/amd64.amd64/sys/VM01-new/cc.o
/usr/src/sys/netinet/cc/cc.c:475:10: error: 6 enumeration values not handled in 
switch: 'CC_ACK', 'CC_DUPACK', 'CC_PARTIALACK'... [-Werror,-Wswitch]
 475 |         switch (type) {
     |                 ^~~~

Should be fixed by 8917131e00b0 (tcp: need default in switch statement for enum)

1 error generated.
*** [cc.o] Error code 1


Best regards,
Zhenlei

Attachment: OpenPGP_0x17BE5899E0B1439B.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to