Unable to build Client/Server variant for OpenJDK-11 on ARMv7-A

Aleksey Shipilev shade at redhat.com
Thu Oct 14 13:08:21 UTC 2021


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




More information about the build-dev mailing list