Skip to content

Fix sqlite3mc JNI build for Linux#325

Open
simolus3 wants to merge 7 commits intomainfrom
debug-build
Open

Fix sqlite3mc JNI build for Linux#325
simolus3 wants to merge 7 commits intomainfrom
debug-build

Conversation

@simolus3
Copy link
Contributor

@simolus3 simolus3 commented Feb 17, 2026

To support JVM targets on Linux for the encryption package, we currently cross-compile Linux binaries from macOS. The main idea behind this is that this allows us to run the entire build from a single host OS. However, the actual setup here is kind of disgusting: While clang can cross-compile for Linux, it needs a sysroot that we're downloading from archlinux repositories in our build. This recently broke, probably because arch updated their packages and the ancient macOS clang now expects some files in different directories.

To make the build more reliable, this restructures it to use multiple runners:

  • We're using Linux runners to compile Linux binaries, using the gcc that comes with the actions runner (and one installed via apt-get for cross-compiling to aarch64).
  • For macOS and Windows targets, we continue to compile from macOS.
  • A new intermediate step merges the outputs from the earlier compile steps into a single asset we can then use to test the SDK and to upload to maven central.

Not being able to easily debug the full build from a macOS host is kind of annoying, but replicating build steps in a Docker container is still feasible to analyze issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments