[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: JDK-8081295: Build failed with GCC 5.1.1
From:       Yasumasa Suenaga <yasuenag () gmail ! com>
Date:       2015-05-28 3:27:15
Message-ID: 55668B13.1000303 () gmail ! com
[Download RAW message or body]

I've uploaded webrev:
  http://cr.openjdk.java.net/~ysuenaga/JDK-8081295/webrev.01/

Please review.


Thanks,

Yasumasa


On 2015/05/28 12:19, Yasumasa Suenaga wrote:
> Hi all,
> 
> I tried to build jdk9/dev on Fedora22 with GCC 5.1.1, however, it was failed.
> I found several problems:
> 
> 
>   System:
>    Fedora release 22 (Twenty Two) x86_64
>     - gcc-5.1.1-1.fc22.x86_64
> 
> 
>   Problems:
>     1. Array bounds check in GCC
>       - jdk/src/java.desktop/share/native/libjavajpeg/jcmaster.c
>       - jdk/src/java.desktop/share/native/libjavajpeg/jquant1.c
>       - jdk/src/java.desktop/share/native/libmlib_image/mlib_ImageLookUp_64.c
>       - jdk/src/java.desktop/share/native/libmlib_image/mlib_c_ImageLookUp_f.c
> 
>       It seems to be bug of GCC:
>         Bug 59124: [4.8/4.9/5/6 Regression] Wrong warnings "array subscript is above array bounds"
>         https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124
> 
>       I think implementations of these files have no problem.
>       So I propose to ignore warning(s) of compiler through pragma option as
>       workaround when we use GCC [1].
> 
> 
>     2. Local variables might be clobbered
>       - jdk/src/java.desktop/share/native/libsplashscreen/splashscreen_png.c
> 
>       SplashDecodePng() calls setjmp(3).
>       Some local variables initialize before setjmp() call, and use after it.
>       Their initial values are only used at cleanup code (*done* label) and
>       actual values are stored only after setjmp() call.
>       So I think we can ignore this error through pragma option [1].
> 
> 
>     3. Incorrect condition
>       - jdk/src/jdk.jdwp.agent/share/native/libjdwp/eventFilter.c
> 
>       searchAllSourceNames() returns int value. However, branch condition in
>       eventFilterRestricted_passesFilter() treats it as boolean value.
> 
> 
> I received a comment from Erik to use --disable-warnings-as-errors,
> however I could not avoid error in 3.
> 
> 
> Thanks,
> 
> Yasumasa
> 
> 
> [1] https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html
> 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic