Open mpalourdio opened 4 months ago
Thank you for reaching out, we'll take a look into this shortly
FWIW, -H:+StaticExecutableWithDynamicLibC
leads to the same error
Sorry, I couldn't reproduce this issue locally. Could you please share a reproducer that I can use to verify? Thank you
@oubidar-Abderrahim Sure, clone this repo, and checkout the musl
branch. I use GraalVM CE 21
Once compiled, the native executable does not 'embed'/link the .so, and it fails at runtime with java.lang.UnsatisfiedLinkError: No awt in java.library.path
for example, which tends to prove that the static linking has failed
Checkout main
, the app compiles and run successfully
A bit more of context, after installing Liberica-NIK-23.1.3-1 (build 21.0.3+10-LTS)
from sdkman
-H:+StaticExecutableWithDynamicLibC
works with Liberica, not with graalvm CEmusl
fails with both.I was able to statically build the repo you shared, I believe this is an issue of the version of musl toolchain used. Static image are currently working with v10.2.1
> x86_64-linux-musl-gcc --version
x86_64-linux-musl-gcc (GCC) 10.2.1 20210227
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Also make sure to follow the instruction at: https://www.graalvm.org/22.1/reference-manual/native-image/StaticImages/
I can build too! But can you run it without any error with missing awt for example?
Sorry, I wasn't clear enough, I was able to both build and run the application statically, without any AWT errors
Here is my version
$ x86_64-linux-musl-gcc --version
x86_64-linux-musl-gcc (GCC) 10.2.1 20210227
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Did you build with graalvm CE?
01-Army of Me.mp3.zip Can you please download this zip, extract the .mp3 file and then run
flhacker -f /path/to/extracted.mp3
You should see the fail once the code reaches something that needs awt
Thanks again !
Hello,
I have a working little app (Spring Boot 3, maven, latest graalvm CE, linux) here. I want to compile it with musl, so it's more portable regarding glibc.
At the moment, the executable is produced without any problem in github actions (and on my work station) : the executable and all the
.so
are well produced intarget
.I have installed
musl
andzlib
like stated here , and have changed my maven configuration :The compilation is succesful, but the
.so
are not next to the executable (expected, as I imagine they are "embedded" in the final executable), then the app fails withCaused by: java.lang.UnsatisfiedLinkError: No awt in java.library.path
for example, and so on.I can see in the log that the
.so
are not producedAm I missing something ? Thanks !