Hi

Thanks for background. Assuming these or similar issues were already discussed 
and it was decided to ignore warnings for code coverage builds I think it is 
fine to fix build. Current warnings don't look as real issues for me also. 

I moved components alias as bcc since now it is build-only changes. 

The build is fixed to don't treat warnings as errors by default when code 
coverage is enabled.

new webrev: http://cr.openjdk.java.net/~lmesnik/8209520/webrev.01/ 
<http://cr.openjdk.java.net/~lmesnik/8209520/webrev.01/>


Leonid

> On Aug 23, 2018, at 3:44 PM, Igor Ignatev <igor.ignat...@oracle.com> wrote:
> 
> Hi Leonid,
> 
> We have never supported native code coverage builds with warnings enabled as 
> errors. There are bugs in gcc which cause false positive warnings, so it was 
> decided to ignore all warnings from instrumented builds. It’d be much better 
> and reliable to fix makefiles to always use ‘disable-warning-as-errors’ when 
> ‘enable-native-coverage’ is used. It should be pretty straightforward to do.
> 
> cc’ing build alias.  
> 
> Cheers,
> — Igor
> 
>> On Aug 23, 2018, at 2:37 PM, Vladimir Kozlov <vladimir.koz...@oracle.com> 
>> wrote:
>> 
>> macroassembler changes are good.
>> 
>> Thanks,
>> Vladimir
>> 
>>> On 8/23/18 1:51 PM, Leonid Mesnik wrote:
>>> Hi
>>> Could you please review following fix which fix code so gcc doesn't 
>>> complain when JDK is build with enabled native code coverage.
>>> webrev: http://cr.openjdk.java.net/~lmesnik/8209520/webrev.00/ 
>>> <http://cr.openjdk.java.net/%7Elmesnik/8209520/webrev.00/>
>>> bug: https://bugs.openjdk.java.net/browse/JDK-8209520
>>> These warning appeared because of change optimization settings used for 
>>> getting code coverage.
>>> 1) src/hotspot/cpu/x86/macroAssembler_x86.cpp, 
>>> src/hotspot/share/gc/shared/genCollectedHeap.cpp
>>> gcc complained about uninitialized variables, like
>>> * For target hotspot_variant-server_libjvm_objs_macroAssembler_x86.o:
>>> /home/lmesnik/ws/jdk-8209520/open/src/hotspot/cpu/x86/macroAssembler_x86.cpp:
>>>  In member function 'void ControlWord::print() const':
>>> /home/lmesnik/ws/jdk-8209520/open/src/hotspot/cpu/x86/macroAssembler_x86.cpp:5769:11:
>>>  error: 'pc' may be used uninitialized in this function 
>>> [-Werror=maybe-uninitialized]
>>>     printf("%04x  masks = %s, %s, %s", _value & 0xFFFF, f, rc, pc);
>>>     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> /home/lmesnik/ws/jdk-8209520/open/src/hotspot/cpu/x86/macroAssembler_x86.cpp:5769:11:
>>>  error: 'rc' may be used uninitialized in this function 
>>> [-Werror=maybe-uninitialized]
>>> So I just fixed codepath to show more explicitly that variables are 
>>> initialized before usage.
>>> 2) src/java.desktop/share/native/libsplashscreen/splashscreen_png.c:
>>> The changes to prevent waning about clobbering in splashscreen_png.c are 
>>> similar to fix in:
>>> 1. JDK-8080695 <https://bugs.openjdk.java.net/browse/JDK-8080695>
>>>   splashscreen_png.c compile error with gcc 4.9.2
>>> The another approach would be to fix build to ignore these warnings for 
>>> code coverage build. While I think it makes build system even more 
>>> complicated.
>>> Leonid
> 

Reply via email to