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

Reply via email to