-
Bug
-
Resolution: Fixed
-
P3
-
8, 11, 15
-
gcc > 6.0
-
b24
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8256118 | 11.0.11-oracle | Dukebot | P3 | Resolved | Fixed | b01 |
JDK-8256394 | 11.0.10 | Xin Liu | P3 | Resolved | Fixed | b03 |
Both release build and fastdebug generate broken c1 if the building toolchain are gcc6+. The reason that slowdebug is fine because it doesn't use gcc optimizations.
Here is the configure which can produce the broken c1.
--enable-option-checking=fatal --with-debug-level=fastdebug --with-native-debug-symbols=internal --with-extra-cxxflags="-g -pipe -Wformat -Wno-cpp -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -std=gnu++98 -fno-delete-null-pointer-checks" --with-extra-cflags="-g -pipe -Wformat -Wno-cpp -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks" --with-extra-asflags="-g -pipe -Wformat -Wno-cpp -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks" --with-extra-ldflags=-Wl,-z,relro --with-num-cores=16 --disable-javac-server --with-jvm-features=zgc --disable-warnings-as-errors
The trigger is '-std=gnu++98' in --with-extra-cflags. it's not a valid option for cc1, so it will disturb configure from detecting the availability of -fno-lifetime-dse. As a result, JVM_CFLAGS of spec.mk misses -fno-lifetime-dse.
The generated c1 is broken so the whole 'make images' can't complete. sanity test like '-version' would fail.
./jdk/bin/java -version
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/bitMap.cpp:186
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/ubuntu/build/jdk/src/hotspot/share/utilities/bitMap.cpp:186), pid=34159, tid=34172
# assert(bit < _size) failed: BitMap index out of bounds: 18446744072294738859 >= 26
#
# JRE version: OpenJDK Runtime Environment (15.0) (fastdebug build 15-internal+0-adhoc.ubuntu.jdk)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 15-internal+0-adhoc.ubuntu.jdk, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x55e764] BitMap::verify_index(unsigned long) const+0x34
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P %E" (or dumping to /backup/undefinedC1/core.34159)
#
# An error report file with more information is saved as:
# /backup/undefinedC1/hs_err_pid34159.log
[thread 34175 also had an error]
#
# Compiler replay data is saved as:
# /backup/undefinedC1/replay_pid34159.log
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
Aborted (core dumped)
Here is the configure which can produce the broken c1.
--enable-option-checking=fatal --with-debug-level=fastdebug --with-native-debug-symbols=internal --with-extra-cxxflags="-g -pipe -Wformat -Wno-cpp -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -std=gnu++98 -fno-delete-null-pointer-checks" --with-extra-cflags="-g -pipe -Wformat -Wno-cpp -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks" --with-extra-asflags="-g -pipe -Wformat -Wno-cpp -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks" --with-extra-ldflags=-Wl,-z,relro --with-num-cores=16 --disable-javac-server --with-jvm-features=zgc --disable-warnings-as-errors
The trigger is '-std=gnu++98' in --with-extra-cflags. it's not a valid option for cc1, so it will disturb configure from detecting the availability of -fno-lifetime-dse. As a result, JVM_CFLAGS of spec.mk misses -fno-lifetime-dse.
The generated c1 is broken so the whole 'make images' can't complete. sanity test like '-version' would fail.
./jdk/bin/java -version
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/bitMap.cpp:186
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/home/ubuntu/build/jdk/src/hotspot/share/utilities/bitMap.cpp:186), pid=34159, tid=34172
# assert(bit < _size) failed: BitMap index out of bounds: 18446744072294738859 >= 26
#
# JRE version: OpenJDK Runtime Environment (15.0) (fastdebug build 15-internal+0-adhoc.ubuntu.jdk)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 15-internal+0-adhoc.ubuntu.jdk, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x55e764] BitMap::verify_index(unsigned long) const+0x34
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P %E" (or dumping to /backup/undefinedC1/core.34159)
#
# An error report file with more information is saved as:
# /backup/undefinedC1/hs_err_pid34159.log
[thread 34175 also had an error]
#
# Compiler replay data is saved as:
# /backup/undefinedC1/replay_pid34159.log
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
Aborted (core dumped)
- backported by
-
JDK-8256118 c1 is broken if it is compiled by gcc without -fno-lifetime-dse
- Resolved
-
JDK-8256394 c1 is broken if it is compiled by gcc without -fno-lifetime-dse
- Resolved
- relates to
-
JDK-8151841 Build needs additional flags to compile with GCC 6
- Resolved