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