-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build configuration for Linux/AMD64/musl, i.e. OpenWRT, Alpine Linux #19
Comments
I'll look into it! For reference, here are some discussions of linking
mentioning workarounds for running |
Hi exquo, The JavaVM is OpenJDK built against musl (Azul packaged) and works like a charm. I strongly doubt that a compatibility stub, like alpine-pkg-glibc would work in this setup (if it existed on OpenWRT). A statically linked is definitely a way to go. By dropping in the build artefact posted by @morph027 I could make my plugin work. |
@kevemueller Could you please try this |
I have added the Note that the resulting The full listing of the dependent libraries:
contains I have also tried building a statically-linked object, but the So the Also, there exist signal-cli packages for Alpine (x86_64 and aarch64). |
Hi @exquo, thanks for the excellent work. I can confirm that this build works on OpenWRT/amd64.
Thank you again for fixing this! |
@exquo @morph027: I tried to quickly reproduce the above on amd64/arm64 hosts, and while the first attempt failed, the attached notes (if the resulting artefacts work as expected) might be of interest to you with respect to compatibility: CHECKME_musl_crt-static.log It turns out that by simply using a rust |
Uh, thats good to read, will try this later. Makes the build toolchain a bit more flexible as there is no need to stick to old distribution releases for building. |
For the record: Make that "stick to much older distribution releases"–I did a test a couple of weeks ago, and it showed that if you use Ubuntu Jammy (22.04) instead of Ubuntu Focal (20.04) to build |
Ah, okay. Right now, i'm building with docker image |
@m-ueberall Thanks for sharing the results! Good to keep the However, it is strange that a build for target |
@kevemueller 👍 |
Resulting artifact did not work for me...
|
@morph027 I'm using |
Yes, unfortunately, when I tested this locally tonight, it also wouldn't work (same error message), regardless whether you use |
Ok, after a few hours of modifying the local (
The remaining errors are due to the fact that In summary, if you're cross-compiling on a
|
Short update: Working on the "musl TODO" again after a couple of weeks, I came across this comment which suggested to link against
The result looks promising, although the size of the resulting
Interestingly, while the Now, inside an Alpine 3.20 container (NB in the following, we're looking at v0.58.0 which is needed by the current
The simplest test run that accesses the embedded dynamic library looks like it's working (below, both
According to earlier remarks, the use of a Rust-native unwinder (https://github.com/nbdd0121/unwinding) and |
I would like to use a plugin which pulls in libsignal_jni.so distributed here.
Unfortunately the dynamic linking fails as your build is for AMD64/glibc (the most common variant), whereas my platform OpenWRT uses AMD64/musl. A more prominent example would be Alpine Linux.
Would it be possible to add AMD64/musl to the list of targets you provide builds for?
The rust target triple is: x86_64-unknown-linux-musl
The text was updated successfully, but these errors were encountered: