-
Bug
-
Resolution: Fixed
-
P4
-
9
-
None
-
Fedora22
-
b70
-
linux
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8135911 | emb-9 | Yasumasa Suenaga | P4 | Resolved | Fixed | team |
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.
[1] https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html
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.
[1] https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html
- backported by
-
JDK-8135911 Build failed with GCC 5.1.1
-
- Resolved
-