Build portability: enable or disable warnings

Kelly O'Hair kelly.ohair at oracle.com
Thu May 19 15:00:09 UTC 2011


On May 19, 2011, at 11:32 AM, Alan Bateman wrote:

> David Holmes wrote:
>> :
>> 
>>> In contrast, there are basically two Java compilers in general use (javac and ecj)
>>> and one is part of OpenJDK.  Yet, the Java code does not have -Werror enabled by default and there
>>> are a mass of warnings there as a result.
>> 
>> I don't understand the point you are making here. Does javac even have a -Werror? The bulk of javac warnings stem from legacy code being compiled under newer compilers with new language features - the resulting code is not erroneous hence only a warning is issued.
>> 
>> I think comparing C/C++ compiler warnings with javac compiler warnings is like comparing apples and elephants.
> Yes, javac has -Werror and the build has JAVAC_WARNINGS_FATAL to turn it on. I just checked my recent build of the jdk7/jdk7 forest and javac emits a total of 9 warnings (7 are unsafe usages of varargs methods and the other two are unreachable catch clauses). That isn't a lot but javac doesn't have many warnings enabled by default. A nice project for someone would be to change the build to -Werror by default and gradually crank up the warnings listed by -Xlint.

I noticed that some parts of the jdk build do use 'javac -Werror', where it was cleaned up they would turn on this flag.

But yes, a great project would be to see if we could get to 'javac -Xlint:all -Werror' someday.
We really should...  in fact it should be a requirement moving forward that all java code be warning free, and stay that way.

Not sure about the hotspot java code.

-kto

> 
> -Alan.
> 
> 




More information about the build-dev mailing list