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