RFD: AOT for AArch64

Andrew Haley aph at redhat.com
Mon Mar 26 10:00:46 UTC 2018


On 03/24/2018 04:09 PM, Edward Nevill wrote:
> On Fri, 2018-03-23 at 18:11 +0000, Andrew Haley wrote:
>>
>> /local/jdk-hs/build/linux-aarch64-normal-server-release/images/jdk/bin/jaotc \
>> -J--module-path=/local/graal/graal/sdk/mxbuild/modules/org.graalvm.graal_sdk.jar:/local/graal/graal/truffle/mxbuild/modules/com.oracle.truffle.truffle_api.jar \
>> -J--upgrade-module-path=/local/graal/graal/compiler/mxbuild/modules/jdk.internal.vm.compiler.jar \
>> myjar.jar --output myjar.so
>>
>>
> 
> Looks promising, but I get as far as here and then get
> 
> Exception in thread "main" jdk.vm.ci.common.JVMCIError: expected VM constant not found: CardTableModRefBS::dirty_card
> 	at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getConstant(HotSpotVMConfigAccess.java:84)
> 	at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotVMConfigAccess.getConstant(HotSpotVMConfigAccess.java:98)
> 	at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.<init>(GraalHotSpotVMConfig.java:557)
> 	at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.AOTGraalHotSpotVMConfig.<init>(AOTGraalHotSpotVMConfig.java:34)
> 	at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.HotSpotGraalRuntime.<init>(HotSpotGraalRuntime.java:111)
> 	at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.HotSpotGraalCompilerFactory.createCompiler(HotSpotGraalCompilerFactory.java:132)
> 	at jdk.aot/jdk.tools.jaotc.Main.run(Main.java:144)
> 	at jdk.aot/jdk.tools.jaotc.Main.run(Main.java:101)
> 	at jdk.aot/jdk.tools.jaotc.Main.main(Main.java:80)
> 
> The exact command I am executing is
> 
> ed at ubuntu:~/openjdk$ /home/ed/openjdk/hs/build/linux-aarch64-normal-server-release/images/jdk/bin/jaotc -J--module-path=/home/ed/openjdk/graal/sdk/mxbuild/modules/org.graalvm.graal_sdk.jar:/home/ed/openjdk/graal/truffle/mxbuild/modules/com.oracle.truffle.truffle_api.jar -J--upgrade-module-path=/home/ed/openjdk/graal/compiler/mxbuild/modules/jdk.internal.vm.compiler.jar Queens.class --Output Queens.so
> 
> My JAVA_HOME is
> 
> ed at ubuntu:~/openjdk$ echo $JAVA_HOME
> /home/ed/openjdk/hs/build/linux-aarch64-normal-server-release/images/jdk
> 
> Any ideas? Thanks,

You must have built Graal with an old JDK.  This is the line in question:

    public final byte dirtyCardValue = isJDK8 ? getFieldValue("CompilerToVM::Data::dirty_card", Byte.class, "int") : getConstant("CardTableModRefBS::dirty_card", Byte.class);


-- 
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671


More information about the hotspot-dev mailing list