jnr / jffi

Java Foreign Function Interface
Apache License 2.0
168 stars 77 forks source link

Tie together loose ends for automated native builds #124

Open headius opened 2 years ago

headius commented 2 years ago

We have workflows in place for Windows, macOS, and Linux, but not everything is hooked up to our process for pulling those automated builds down and inserting them back into releases. This PR will try to do that.

The workflows are in the usual place, .github/workflows.

At the moment the Linux builds are working for arm (v7ish?), arm64 (arm64v8/aarch64), i386, amd64 (x86_64), and s390x. macOS and Windows builds are in place but not fully working. No builds for any BSDs or Solaris.

Shipping in our archive native binaries currently (checked builds currently work):

Note there is also an "armv5" build for Linux that does not have a home, since we do not differentiate ARM architectures to that level of granularity (we only have "arm" and "aarch64" as endpoints right now).

headius commented 2 years ago

After some tweaks and hooking up to our MacStadium M1 instance the Darwin build appears to be working.

headius commented 2 years ago

I attempted to add the other platforms supported by the debian image, but only riscv64 appears to have worked. The ppc64el build failed with a trap error (possibly fixed by https://gitlab.com/qemu-project/qemu/-/issues/588 or the related patches listed there, not yet in a release) and the mip64el build fails deep inside openjdk IO/thread-wrangling code (my email to the mips openjdk list should eventually show up here: https://mail.openjdk.java.net/pipermail/mips-port/2020-April/thread.html).

So I will add riscv64 to the supported platform list but the other ones need extra help.