On 01.04.2020 16:10, Paul Goyette wrote: > On Wed, 1 Apr 2020, Kamil Rytarowski wrote: > >> On 01.04.2020 15:47, Robert Elz wrote: >>> Date: Wed, 1 Apr 2020 11:45:53 +0000 >>> From: "Kamil Rytarowski" <ka...@netbsd.org> >>> Message-ID: <20200401114554.05167f...@cvs.netbsd.org> >>> >>> | Log Message: >>> | Avoid comparison between signed and unsigned integer >>> | >>> | Cast PAGE_SIZE to size_t. >>> >>> This kind of pedantry is going way too far, PAGE_SIZE is a compile >>> time constant (1 << PAGE_SHIFT) which is an int (and so signed, >>> nominally) but one which is known to be positive. >>> >> >> I got reports that certain ports no longer build due to: >> >> src/sys/modules/examples/fopsmapper/fopsmapper.c:118:11: error: >> comparison between signed and unsigned integer expressions >> [-Werror=sign-compare] >> if (size != PAGE_SIZE) >> ^~ >> cc1: all warnings being treated as errors > > > There's a lot of modules that fail for this with WARNS=5 when being > built as loadable modules. > > That's why so many of the individual module Makefiles have explicit > WARNS=4. (It seems that when modules are built-in as part of the > kernel, they are by default built with WARNS=4.) >
I tracked it to WARNS=3 # Rather than our usual WARNS=5, we need to use 3, since there are a # lot of signed-vs-unsigned compares WARNS= 3 Personally I have got no preference. I'm fine with an explicit cast as it is in a single place only needed (hopefully).