Skip to content
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 duckdb_java linux-amd64-musl #120

Open
wants to merge 12 commits into
base: main
Choose a base branch
from

Conversation

hrl20
Copy link

@hrl20 hrl20 commented Jan 7, 2025

Build duckdb_java for Alpine linux on amd64

(arm64 is possible but takes 4+ hours on the default GHA runner, so skipping for now)

Copy link
Contributor

@carlopi carlopi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Main question: can we get away from static linking the libc++ ?
I see that working with, question is if we can manage without.

@hrl20
Copy link
Author

hrl20 commented Jan 16, 2025

Main question: can we get away from static linking the libc++ ? I see that working with, question is if we can manage without.

I think in general this will not work because the standard alpine distribution doesn't include these libraries. Not linking it means requiring users to always install them in their Alpine containers when they want to use duckdb. This error happened trying to run duckdb (libstdc++ and libgcc linked) in the standard Metabase container which uses alpine, and loading httpfs (no libstdc++ and libgcc linked).

Screenshot 2024-10-29 at 1 43 20 AM (1)

Also this does mean the extensions need to have statically linked libstdc++ and libgcc. Idk if there's a better solution here.

@carlopi
Copy link
Contributor

carlopi commented Jan 16, 2025

But I think the problem here is that v1.1.2 has no concept (yet) of musl.

Would it be possible to run the same workflow again using a recent duckdb commit (such as 09cef57892 the one currently backed in duckdb-java)

@hrl20
Copy link
Author

hrl20 commented Jan 21, 2025

But I think the problem here is that v1.1.2 has no concept (yet) of musl.

Would it be possible to run the same workflow again using a recent duckdb commit (such as 09cef57892 the one currently backed in duckdb-java)

I tried this again on this branch and it still fails /tmp/libduckdb_java14876668067405368824.so: Error loading shared library libstdc++.so.6: No such file or directory (needed by /tmp/libduckdb_java14876668067405368824.so)

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.

3 participants