Re: [Request for Help] Reducing gcc 4.9 compilation warnings

From: Adrian Chadd <adrian_at_freebsd.org>
Date: Sun, 19 Apr 2015 08:19:30 -0700
On 19 April 2015 at 02:10, Eitan Adler <lists_at_eitanadler.com> wrote:
> "
>
> On 18 April 2015 at 11:12, Craig Rodrigues <rodrigc_at_freebsd.org> wrote:
>> Hi,
>>
>> After the latest commits by members of freebsd-toolchain_at_ ,
>> I have managed to compile latest CURRENT world and GENERIC
>> kernel on amd64 with an gcc 4.9 external toolchain by doing:
>>
>>    pkg install devel/amd64-xtoolchain-gcc
>>    cd /usr/src
>>    sed -i "" -e 's/boot2//' sys/boot/i386/Makefile
>>    make buildworld CROSS_TOOLCHAIN=amd64-gcc NO_WERROR=yes WERROR=
>>    make buildkernel CROSS_TOOLCHAIN=amd64-gcc NO_WERROR=yes WERROR=
>>
>>
>> It was necessary to skip boot2 from building because of errors
>> reported here:
>> https://lists.freebsd.org/pipermail/freebsd-toolchain/2015-April/001658.html
>>
>> The boot2 compilation errors still need to be worked on.
>>
>> However, most other things compile with warnings.  If folks are
>> interested in looking at the warnings, you can see them here:
>>
>> https://jenkins.freebsd.org/job/FreeBSD_HEAD_amd64_gcc4.9/warnings17
>>
>> Please look at these warnings, and if you see places to
>> patch the code to eliminate the warnings, please submit patches
>> and commit them if you can.
>
> Some time ago I tried to do something similar, but with gcc4.6 instead
> of gcc4.9.
>
> The vast majority of warnings (1548) are "unused-but-set-variable" and
> it may be worthwhile to just silence this warning, at least at low
> WARNS levels.  It has caught real errors but is quite noisy and can
> cause quite a bit of churn.
>
> "inline" (count 515) is generally pure noise, and I think we should
> disable it.  It can be helpful to find certain types of performance
> optimizations, but it should be opt-in.
>
> "strict-aliasing" (154) are likely all real bugs of some form.  Very
> few exist in contrib code, and it would be good to fix them.
>
> "Warning" (111) seem to be a mix of warnings, but mostly in contrib code.
>
> "maybe-uninitialized" (111) is often noisy, and in a spot check were
> all false positives.
>
> "deprecated-declarations" (22) is all in contrib code
>
> Many of these are useful though and I've already fixed a few of the
> bugs reported.
>
> Perhaps it would be useful to do a second run of this, but with a
> modified share/mk to silence the most useless of these warnings?

I just got a booting mips32 kernel using gcc-4.9.2, and boy are there
a lot of warnings. I'm going to start fixing the ones I find - cleaner
code is better code. Mostly.

(I'd be happy with -Wall -Werror.)



-adrian
Received on Sun Apr 19 2015 - 13:19:31 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:57 UTC