[Native Image] Build-time crash with `-O2` and above
Describe the Issue
While passing -O2 or greater to native-image, I consistently observe the enclosed stacktrace.
Using the latest version of GraalVM can resolve many issues.
- [x] I tried with the latest version of GraalVM.
GraalVM Version
java version "24.0.1" 2025-04-15 Java(TM) SE Runtime Environment Oracle GraalVM 24.0.1+9.1 (build 24.0.1+9-jvmci-b01) Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 24.0.1+9.1 (build 24.0.1+9-jvmci-b01, mixed mode, sharing)
Operating System and Version
Linux (redacted) 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build Command
Enclosed in NIBs
Expected Behavior
I expect the build to finish successfully as it does for -O1
Actual Behavior
The build crashes instead:
com.oracle.svm.core.util.VMError$HostedError: java.lang.NullPointerException: Cannot invoke "com.oracle.objectfile.ObjectFile$Element.isLoadable()" because "predElement" is null
at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.VMError.shouldNotReachHere(VMError.java:82)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.image.NativeImage.write(NativeImage.java:177)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.image.NativeImageViaCC.write(NativeImageViaCC.java:95)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:750)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:533)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:545)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:732)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:151)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:99)
Caused by: java.lang.NullPointerException: Cannot invoke "com.oracle.objectfile.ObjectFile$Element.isLoadable()" because "predElement" is null
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.defaultGetOrDecideVaddr(ObjectFile.java:905)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.elf.ELFSymtab.getOrDecideVaddr(ELFSymtab.java:496)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.bake(ObjectFile.java:1677)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.write(ObjectFile.java:1316)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.lambda$write$0(ObjectFile.java:1308)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.withDebugContext(ObjectFile.java:1848)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.write(ObjectFile.java:1307)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.image.NativeImage.write(NativeImage.java:175)
... 7 more
Steps to Reproduce
See elide-img.nib upload in Additional Context section
Additional Context
Native Image Bundle:
elide-img.nib
Build Log Output and Error Messages
Attached: svm_err.md
Top content, since it is too large to paste in full:
GraalVM Native Image Error Report
Build Output
========================================================================================================================
GraalVM Native Image: Generating 'elide' (static executable)...
========================================================================================================================
For detailed information and explanations on the build output, visit:
https://github.com/oracle/graal/blob/master/docs/reference-manual/native-image/BuildOutput.md
------------------------------------------------------------------------------------------------------------------------
[1/8] Initializing... (10.3s @ 1.66GB)
Java version: 24.0.1+9, vendor version: Oracle GraalVM 24.0.1+9.1
Graal compiler: optimization level: 2, target machine: x86-64-v3, PGO: ML-inferred
C compiler: x86_64-linux-musl-gcc (linux, x86_64, 14.2.0)
Garbage collector: Serial GC (max heap size: 80% of RAM)
26 user-specific feature(s):
- com.oracle.graal.python.BouncyCastleFeature
- com.oracle.graal.python.JNIFeature
- com.oracle.svm.enterprise.truffle.EnterpriseTruffleBaseFeature: Provides enterprise extensions for Truffle
- com.oracle.svm.enterprise.truffle.EnterpriseTruffleFeature: Provides enterprise extensions for Truffle runtime compilation
- com.oracle.svm.enterprise.truffle.PolyglotIsolateHostFeature: Provides polyglot host isolate embedding support
- com.oracle.svm.thirdparty.gson.GsonFeature
- com.oracle.svm.truffle.TruffleBaseFeature: Provides support for Truffle languages
- com.oracle.svm.truffle.TruffleFeature: Provides support for Truffle runtime compilation
- com.oracle.svm.truffle.nfi.TruffleNFIFeature
- com.oracle.svm.truffle.nfi.posix.PosixTruffleNFIFeature
- com.oracle.truffle.espresso.ref.FinalizationFeature
- com.oracle.truffle.llvm.nativemode.resources.NativeResourceFeature
- com.oracle.truffle.runtime.enterprise.EnableEnterpriseFeature: Enables Truffle enterprise features if they are supported.
- elide.runtime.feature.VirtualFilesystem: Configures guest VFS features
- elide.runtime.feature.engine.NativeConsoleFeature: Registers native console libraries
- elide.runtime.feature.engine.NativeSQLiteFeature: Registers native SQLite access
- elide.runtime.feature.js.FetchFeature: Sets up reflective types for Fetch API support
- elide.runtime.feature.js.node.NodeJsFeature: Enables support for Node.js built-in modules
- elide.runtime.feature.python.PythonFeature
- elide.runtime.gvm.kotlin.feature.KotlinCompilerFeature: Configures the Kotlin compiler
- elide.runtime.lang.javascript.OxcParserFeature: Configures native JavaScript/TypeScript parsing via Oxc
- elide.tool.feature.LocalInferenceFeature: Enables local inference features via llama.cpp
- elide.tool.feature.ToolingUmbrellaFeature: Embeds Elide's native tooling umbrella library
- io.micronaut.core.io.service.ServiceLoaderFeature
- org.graalvm.home.HomeFinderFeature: Finds GraalVM paths and its version number
- org.graalvm.shadowed.com.ibm.icu.ICU4JFeature
------------------------------------------------------------------------------------------------------------------------
19 experimental option(s) unlocked:
- '-H:-AddAllFileSystemProviders' (origin(s): command line)
- '-H:ExcludeResources' (origin(s): command line)
- '-H:ResourceConfigurationFiles': Use a resource-config.json in your META-INF/native-image/<groupID>/<artifactID> directory instead. (origin(s): command line)
- '-H:+LocalizationOptimizedMode' (origin(s): command line)
- '-H:ForeignConfigurationFiles' (origin(s): command line)
- '-H:+GenerateEmbeddedResourcesFile' (origin(s): command line)
- '-H:+AllowUnsafeAllocationOfAllInstantiatedTypes' (origin(s): command line)
- '-H:+RemoveUnusedSymbols' (origin(s): command line)
- '-H:+ParseRuntimeOptions' (origin(s): command line)
- '-H:+AllowJRTFileSystem' (origin(s): command line)
- '-H:+TrackPrimitiveValues' (origin(s): command line)
- '-H:+PreserveFramePointer' (origin(s): command line)
- '-H:ReflectionConfigurationResources' (origin(s): 'META-INF/native-image/org.jline/jline-terminal/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/2.1.20/4ef56b3316798316bfac7a0ae443391c9e900ea1/kotlin-compiler-embeddable-2.1.20.jar', 'META-INF/native-image/org.jline/jline-terminal-jni/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/2.1.20/4ef56b3316798316bfac7a0ae443391c9e900ea1/kotlin-compiler-embeddable-2.1.20.jar', 'META-INF/native-image/org.jline/jline-terminal-jna/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/2.1.20/4ef56b3316798316bfac7a0ae443391c9e900ea1/kotlin-compiler-embeddable-2.1.20.jar', 'META-INF/native-image/org.jline/jline-terminal-jansi/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/2.1.20/4ef56b3316798316bfac7a0ae443391c9e900ea1/kotlin-compiler-embeddable-2.1.20.jar', 'META-INF/native-image/org.jline/jline-terminal-jni/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-jni/3.28.0/966073e319c13d150907bc0e0f99dab4eebf683/jline-terminal-jni-3.28.0.jar', 'META-INF/native-image/org.jline/jline-terminal-jna/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-jna/3.28.0/af9dd4e9bf29950bf10374b94f9406082ed4dd6b/jline-terminal-jna-3.28.0.jar', 'META-INF/native-image/org.jline/jline-terminal-jansi/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-jansi/3.28.0/8f83910838bb4d8af352408eec260d56f9f08c2c/jline-terminal-jansi-3.28.0.jar', 'META-INF/native-image/org.jline/jline-terminal/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal/3.28.0/6b7b328cd7eb0c76b960d72b4a44cc567544e228/jline-terminal-3.28.0.jar')
- '-H:+ForeignAPISupport' (origin(s): command line)
- '-H:-ReduceImplicitExceptionStackTraceInformation' (origin(s): command line)
- '-H:+UsePredicates' (origin(s): command line)
- '-H:InitialCollectionPolicy' (origin(s): command line)
- '-H:IncludeResourceBundles' (origin(s): command line)
- '-H:ResourceConfigurationResources' (origin(s): 'META-INF/native-image/org.jline/jline-terminal/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/2.1.20/4ef56b3316798316bfac7a0ae443391c9e900ea1/kotlin-compiler-embeddable-2.1.20.jar', 'META-INF/native-image/org.jline/jline-terminal-jni/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/2.1.20/4ef56b3316798316bfac7a0ae443391c9e900ea1/kotlin-compiler-embeddable-2.1.20.jar', 'META-INF/native-image/org.jline/jline-terminal-jna/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/2.1.20/4ef56b3316798316bfac7a0ae443391c9e900ea1/kotlin-compiler-embeddable-2.1.20.jar', 'META-INF/native-image/org.jline/jline-terminal-jansi/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/2.1.20/4ef56b3316798316bfac7a0ae443391c9e900ea1/kotlin-compiler-embeddable-2.1.20.jar', 'META-INF/native-image/org.jline/jline-terminal-jni/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-jni/3.28.0/966073e319c13d150907bc0e0f99dab4eebf683/jline-terminal-jni-3.28.0.jar', 'META-INF/native-image/org.jline/jline-terminal-jna/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-jna/3.28.0/af9dd4e9bf29950bf10374b94f9406082ed4dd6b/jline-terminal-jna-3.28.0.jar', 'META-INF/native-image/org.jline/jline-terminal-jansi/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-jansi/3.28.0/8f83910838bb4d8af352408eec260d56f9f08c2c/jline-terminal-jansi-3.28.0.jar', 'META-INF/native-image/org.jline/jline-terminal/native-image.properties' in 'file:///home/sam/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal/3.28.0/6b7b328cd7eb0c76b960d72b4a44cc567544e228/jline-terminal-3.28.0.jar')
------------------------------------------------------------------------------------------------------------------------
Build resources:
- 56.89GB of memory (61.8% of 92.08GB system memory, set via '-Xmx64g')
- 32 thread(s) (100.0% of 32 available processor(s), set via '--parallelism=32')
[2/8] Performing analysis... [*********] (88.8s @ 21.62GB)
101,123 reachable types (95.5% of 105,907 total)
155,199 reachable fields (57.2% of 271,499 total)
502,433 reachable methods (70.2% of 715,227 total)
43,992 runtime compiled methods ( 6.2% of 715,227 total)
28,601 types, 1,121 fields, and 5,325 methods registered for reflection
220 types, 269 fields, and 541 methods registered for JNI access
2 downcalls and 0 upcalls registered for foreign access
4 native libraries: dl, pthread, rt, z
[3/8] Building universe... (21.3s @ 25.16GB)
[4/8] Parsing methods... [****] (12.9s @ 24.02GB)
[5/8] Inlining methods... [****] (5.2s @ 22.69GB)
[6/8] Compiling methods... [**********] (114.7s @ 27.11GB)
[7/8] Laying out methods... [*******] (56.2s @ 26.44GB)
[8/8] Creating image... [********] (0.0s @ 25.42GB)
Stack Trace
com.oracle.svm.core.util.VMError$HostedError: java.lang.NullPointerException: Cannot invoke "com.oracle.objectfile.ObjectFile$Element.isLoadable()" because "predElement" is null
at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.VMError.shouldNotReachHere(VMError.java:82)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.image.NativeImage.write(NativeImage.java:177)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.image.NativeImageViaCC.write(NativeImageViaCC.java:95)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:750)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:533)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:545)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:732)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:151)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:99)
Caused by: java.lang.NullPointerException: Cannot invoke "com.oracle.objectfile.ObjectFile$Element.isLoadable()" because "predElement" is null
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.defaultGetOrDecideVaddr(ObjectFile.java:905)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.elf.ELFSymtab.getOrDecideVaddr(ELFSymtab.java:496)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.bake(ObjectFile.java:1677)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.write(ObjectFile.java:1316)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.lambda$write$0(ObjectFile.java:1308)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.withDebugContext(ObjectFile.java:1848)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.write(ObjectFile.java:1307)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.image.NativeImage.write(NativeImage.java:175)
... 7 more
Caused by:
com.oracle.svm.core.util.VMError$HostedError: java.lang.NullPointerException: Cannot invoke "com.oracle.objectfile.ObjectFile$Element.isLoadable()" because "predElement" is null
at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.VMError.shouldNotReachHere(VMError.java:82)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.image.NativeImage.write(NativeImage.java:177)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.image.NativeImageViaCC.write(NativeImageViaCC.java:95)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:750)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:533)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:545)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:732)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:151)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:99)
Caused by: java.lang.NullPointerException: Cannot invoke "com.oracle.objectfile.ObjectFile$Element.isLoadable()" because "predElement" is null
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.defaultGetOrDecideVaddr(ObjectFile.java:905)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.elf.ELFSymtab.getOrDecideVaddr(ELFSymtab.java:496)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.bake(ObjectFile.java:1677)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.write(ObjectFile.java:1316)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.lambda$write$0(ObjectFile.java:1308)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.withDebugContext(ObjectFile.java:1848)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.write(ObjectFile.java:1307)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.image.NativeImage.write(NativeImage.java:175)
... 7 more
GraalVM Setup
| Name | Value |
|---|---|
| Java version | 24.0.1+9 |
| Vendor version | Oracle GraalVM 24.0.1+9.1 |
| Runtime version | 24.0.1+9-jvmci-b01 |
| C compiler | x86_64-linux-musl-gcc (linux, x86_64, 14.2.0) |
GraalVM release file
IMPLEMENTOR="Oracle Corporation"
JAVA_RUNTIME_VERSION="24.0.1+9-jvmci-b01"
JAVA_VERSION="24.0.1"
JAVA_VERSION_DATE="2025-04-15"
LIBC="gnu"
MODULES="java.base java.logging java.management jdk.internal.vm.ci org.graalvm.collections org.graalvm.word org.graalvm.nativeimage jdk.management jdk.unsupported org.graalvm.truffle.compiler jdk.graal.compiler com.oracle.graal.graal_enterprise com.oracle.svm.enterprise.truffle java.compiler java.datatransfer java.xml java.prefs java.desktop java.instrument java.security.sasl java.naming java.rmi java.management.rmi java.net.http java.scripting java.security.jgss java.transaction.xa java.sql java.sql.rowset java.xml.crypto java.se java.smartcardio jdk.accessibility jdk.internal.jvmstat jdk.attach jdk.charsets jdk.internal.opt jdk.zipfs jdk.compiler jdk.crypto.cryptoki jdk.crypto.ec jdk.dynalink jdk.internal.ed jdk.editpad jdk.graal.compiler.management jdk.hotspot.agent jdk.httpserver jdk.incubator.vector jdk.internal.le jdk.internal.md jdk.jartool jdk.javadoc jdk.jcmd jdk.management.agent jdk.jconsole jdk.jdeps jdk.jdwp.agent jdk.jdi jdk.jfr jdk.jlink jdk.jpackage jdk.jshell jdk.jsobject jdk.jstatd jdk.localedata jdk.management.jfr jdk.naming.dns jdk.naming.rmi jdk.net jdk.nio.mapmode jdk.sctp jdk.security.auth jdk.security.jgss jdk.unsupported.desktop jdk.xml.dom"
OS_ARCH="x86_64"
OS_NAME="Linux"
SOURCE=".:git:aa45694a60c6 open:git:1efd3d39a9cc labsjdk-builder:0cebf8f186b6da506a7c2f5b600159490915d1d0 compiler:5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b graal-enterprise:0cdba34b1e6783557fb71987f0dba0fde1763a9c regex:5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b sdk:5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b substratevm:5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b substratevm-enterprise:0cdba34b1e6783557fb71987f0dba0fde1763a9c substratevm-enterprise-gcs:2ea883e9faf8bd00da4c0f7592214eee01702479 tools:5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b truffle:5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b vm:5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b vm-enterprise:0cdba34b1e6783557fb71987f0dba0fde1763a9c wasm:5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b web-image:0cdba34b1e6783557fb71987f0dba0fde1763a9c web-image-enterprise:0cdba34b1e6783557fb71987f0dba0fde1763a9c"
GRAALVM_VERSION="24.2.1"
COMMIT_INFO={"compiler": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620490, "commit.rev": "5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b"}, "graal-enterprise": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620631, "commit.rev": "0cdba34b1e6783557fb71987f0dba0fde1763a9c"}, "regex": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620490, "commit.rev": "5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b"}, "sdk": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620490, "commit.rev": "5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b"}, "substratevm": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620490, "commit.rev": "5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b"}, "substratevm-enterprise": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620631, "commit.rev": "0cdba34b1e6783557fb71987f0dba0fde1763a9c"}, "substratevm-enterprise-gcs": {"commit.committer": "Peter Hofer <[email protected]>", "commit.committer-ts": 1733135770, "commit.rev": "2ea883e9faf8bd00da4c0f7592214eee01702479"}, "tools": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620490, "commit.rev": "5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b"}, "truffle": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620490, "commit.rev": "5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b"}, "vm": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620490, "commit.rev": "5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b"}, "vm-enterprise": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620631, "commit.rev": "0cdba34b1e6783557fb71987f0dba0fde1763a9c"}, "wasm": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620490, "commit.rev": "5d94c2ee4e65e6a0ad564a588d47d76ed003bb7b"}, "web-image": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620631, "commit.rev": "0cdba34b1e6783557fb71987f0dba0fde1763a9c"}, "web-image-enterprise": {"commit.committer": "Marouane El Hallaoui <[email protected]>", "commit.committer-ts": 1743620631, "commit.rev": "0cdba34b1e6783557fb71987f0dba0fde1763a9c"}}
Hi @sgammon,
Thank you for reaching out to us about this. I will look into it and I'll make sure to keep you updated.
Hi @sgammon,
I am trying to reproduce the issue that you've encountered on my end but I keep getting the following error:
Error: Unrecognized option(s): 'elide.tool.cli.MainKt'
Could you please give me the steps you follow which lead to encountering the issue just to be sure we're doing the same thing?
As I haven't heard back from you in over three weeks, I will be closing this issue for now. Thank you for your understanding.
@selhagani Please re-open. I will file a new bundle.
This issue is still definitely active.
@selhagani ?
Alright thanks for letting us know
I'm experiencing the same issue.
GraalVM Version
java version "24.0.2" 2025-07-15 Java(TM) SE Runtime Environment Oracle GraalVM 24.0.2+11.1 (build 24.0.2+11-jvmci-b01) Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 24.0.2+11.1 (build 24.0.2+11-jvmci-b01, mixed mode, sharing)
Operating System and Version
Linux (redacted) 5.14.0-570.23.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jun 26 19:29:53 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Stack Trace
The build process encountered an unexpected error:
com.oracle.svm.core.util.VMError$HostedError: java.lang.NullPointerException: Cannot invoke "com.oracle.objectfile.ObjectFile$Element.isLoadable()" because "predElement" is null
at org.graalvm.nativeimage.builder/com.oracle.svm.core.util.VMError.shouldNotReachHere(VMError.java:82)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.image.NativeImage.write(NativeImage.java:177)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.image.NativeImageViaCC.write(NativeImageViaCC.java:95)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:750)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:533)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:545)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:732)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:151)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:99)
Caused by: java.lang.NullPointerException: Cannot invoke "com.oracle.objectfile.ObjectFile$Element.isLoadable()" because "predElement" is null
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.defaultGetOrDecideVaddr(ObjectFile.java:905)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.elf.ELFSymtab.getOrDecideVaddr(ELFSymtab.java:496)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.bake(ObjectFile.java:1677)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.write(ObjectFile.java:1316)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.lambda$write$0(ObjectFile.java:1308)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.withDebugContext(ObjectFile.java:1848)
at org.graalvm.nativeimage.objectfile/com.oracle.objectfile.ObjectFile.write(ObjectFile.java:1307)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.image.NativeImage.write(NativeImage.java:175)
... 7 more
com.oracle.svm.driver.NativeImage$NativeImageError
at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.showError(NativeImage.java:2430)
at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.build(NativeImage.java:2012)
at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.performBuild(NativeImage.java:1971)
at org.graalvm.nativeimage.driver/com.oracle.svm.driver.NativeImage.main(NativeImage.java:1953)
at [email protected]/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
I managed to resolve this issue by setting the Debug option to false during compilation. If you haven't solved it yet, I'd recommend giving this a try.
graalvmNative {
binaries {
main {
debug.set(false)
...
}
}
}
Good find, @JuuuuHong, will try... JDK 25 is also out now
Since there is a workaround, and GraalVM for JDK24 is out of support. we'll close this issue. In case this issue reappear in the latest JDK25, please file a new issue for it and provide us with a suitable reproducer. Thank you