On 10/13/21 7:20 PM, John Cummings wrote:
Thank you both for the responses!
I am now using the https://github.com/openjdk/jdk11u-dev/ <https://github.com/openjdk/jdk11u-dev/>
tree that you linked and I have trimmed down my cxxflags and cflags to just -O2 and -pipe, and added
--with-debug-level=fastdebug. I've tried with zero build, which still works, but server, client
still crash immediately, but now they also give me an assert internal error:
Server:
#
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/assembler_arm.hpp:240
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error
(/home/johnc/Documents/openjdk/jdk11u-dev/src/hotspot/cpu/arm/assembler_arm.hpp:240), pid=1467, tid=1468
# assert(_disp == 0 && (_shift_imm >> 5) == 0) failed: encoding constraint
#
# JRE version: (11.0.14) (fastdebug build )
# Java VM: OpenJDK Server VM (fastdebug 11.0.14-internal+0-adhoc.johnc.jdk11u-dev, mixed mode,
serial gc, linux-)
# Core dump will be written. Default location:
/usr/lib/jvm/jdk11/server/jdk/bin/core
OK, good. This indicates that ARM backend had tried to encode some instruction that is beyond ARM
spec. It makes sense that release builds SIGILL when than happens: the instruction is garbage.
The next step is to look into hs_err and see the call stack for that assert, which would drive you
to Hotspot code. From the code inspection, that is likely to be assembler_arm.hpp:encoding2(), which
is called from pld/pldw instructions...
It looks suspiciously like:
https://bugs.openjdk.java.net/browse/JDK-8222825
...so maybe you want to try to apply this patch and build again:
https://cr.openjdk.java.net/~bulasevich/8222825/webrev.00.jdk11/
--
Thanks,
-Aleksey