gwipplinger / graal

GraalVM: Run Programs Faster Anywhere :rocket:
https://www.graalvm.org
Other
0 stars 0 forks source link

i386 support for SVM #1

Open gwipplinger opened 3 years ago

tofische commented 3 years ago
Exception in thread "main" com.oracle.svm.core.util.UserError$UserException: Platform specified as linux-i386 isn't supported.
    at com.oracle.svm.core.util.UserError.abort(UserError.java:68)
    at com.oracle.svm.hosted.NativeImageGenerator.loadPlatform(NativeImageGenerator.java:351)
    at com.oracle.svm.hosted.NativeImageGenerator.getTargetPlatform(NativeImageGenerator.java:382)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.installNativeImageClassLoader(NativeImageGeneratorRunner.java:177)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:119)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:578)

Add platform i386 to sdk:

sdk/src/org.graalvm.nativeimage/src/META-INF/services/org.graalvm.nativeimage.Platform
sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/Platform.java

and rebuild the SDK (don't forget to delete mxbuild first).

Exception in thread "main" org.graalvm.compiler.debug.GraalError: No backend available for host architecture "i386"
    at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.HotSpotGraalRuntime.<init>(HotSpotGraalRuntime.java:206)
    at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.HotSpotGraalCompilerFactory.createCompiler(HotSpotGraalCompilerFactory.java:179)
    at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.HotSpotGraalCompilerFactory.createCompiler(HotSpotGraalCompilerFactory.java:157)
    at jdk.internal.vm.compiler/org.graalvm.compiler.hotspot.HotSpotGraalCompilerFactory.createCompiler(HotSpotGraalCompilerFactory.java:53)
    at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getCompiler(HotSpotJVMCIRuntime.java:733)
    at com.oracle.svm.hosted.c.GraalAccess.getGraalCapability(GraalAccess.java:50)
    at com.oracle.svm.hosted.c.GraalAccess.getOriginalTarget(GraalAccess.java:38)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.isValidArchitecture(NativeImageGeneratorRunner.java:235)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.verifyValidJavaVersionAndPlatform(NativeImageGeneratorRunner.java:448)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:246)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:540)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:120)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:578)
tofische commented 3 years ago

The required backend is located in the compiler subproject. The .amd64 packages are partially duplicated as .i386 packages and adapted. Partially means, that the actual code-generating parts of the hotspot are omitted as the substratevm is used for these purposes instead.

tofische commented 3 years ago
Fatal error:java.lang.NullPointerException
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:603)
    at java.base/java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
    at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:517)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:379)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:540)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:120)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:578)
Caused by: java.lang.NullPointerException
    at jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVM.readFieldValue(Native Method)
    at jdk.internal.vm.ci/jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider.readFieldValue(HotSpotConstantReflectionProvider.java:169)
    at com.oracle.svm.hosted.c.info.InfoTreeBuilder.createEnumConstantInfo(InfoTreeBuilder.java:667)
    at com.oracle.svm.hosted.c.info.InfoTreeBuilder.createEnumInfo(InfoTreeBuilder.java:651)
    at com.oracle.svm.hosted.c.info.InfoTreeBuilder.construct(InfoTreeBuilder.java:122)
    at com.oracle.svm.hosted.c.CAnnotationProcessor.process(CAnnotationProcessor.java:88)
    at com.oracle.svm.hosted.c.NativeLibraries.finish(NativeLibraries.java:552)
    at com.oracle.svm.hosted.NativeImageGenerator.processNativeLibraryImports(NativeImageGenerator.java:1635)
    at com.oracle.svm.hosted.NativeImageGenerator.setupNativeLibraries(NativeImageGenerator.java:1109)
    at com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:926)
    at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:598)
    at com.oracle.svm.hosted.NativeImageGenerator.lambda$run$2(NativeImageGenerator.java:513)
    at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1407)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)