-
Notifications
You must be signed in to change notification settings - Fork 38
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
installation in ubuntu fails with undefined symbol: shm_unlink #514
Comments
Thanks for your report. This is reproduced on the Docker container. Please upgrade to Ubuntu 22.04 or install in a container. |
Installing one of the GH release builds should still work on 20.04, though right? install.packages(
"https://github.com/pola-rs/r-polars/releases/latest/download/polars__x86_64-pc-linux-gnu.gz",
repos = NULL
) |
To clarify, is it R-universe that doesn't support Ubuntu 20.04, or something else? |
R-universe is irrelevant. |
Hi all, I know very little about the specifics of polars setup/compilation here... so take what follows with a grain of salt. I believe Ubuntu 20.04 uses an older version of GLIBC... I have seen this cause issues with Rust-based tools used on 20.04 if they were compiled using e.g. the GLIBC version included with 22.04 |
From what I understand, #514 (comment)'s logs is from a complete source installation, so this is a different issue. |
It seems fail to load due to the GLIBC version. Details
I'm not sure if failing to build and failing to load are the same issue. |
Therefore make sense to mention minimal supported version of Ubuntu, and ideally Debian as well. |
We actually don't know why Cargo fails to build the binary, so we can't say for sure. |
It seems that librt, the real-time library, where shm_unlink and others are from, may be found during linking, but not during runtime? I got successful installation in Ubuntu 20.04 docker container by adding diff --git a/src/Makevars.in b/src/Makevars.in
index b44a238..97dd8a8 100644
--- a/src/Makevars.in
+++ b/src/Makevars.in
@@ -7,7 +7,7 @@ LIBNAME = libr_polars.a
TARGET_DIR = $(CURDIR)/rust/target
LIBDIR = $(TARGET_DIR)/$(TARGET)/$(RPOLARS_PROFILE)
STATLIB = $(LIBDIR)/$(LIBNAME)
-PKG_LIBS = -L$(LIBDIR) -lr_polars
+PKG_LIBS = -L$(LIBDIR) -lr_polars -lrt
RPOLARS_RUST_SOURCE ?= ./rust
rpolars_ext_binary = $(RPOLARS_RUST_SOURCE)/target/$(TARGET)/$(RPOLARS_PROFILE)/$(LIBNAME)
It seems the GLIBC version issue with the binary builds could be worked around by providing a new build for the older GLIBC version (now possible with above). An alternate general solution perhaps (?) is building for the |
@brownag Thank you for digging that! r-polars/.github/workflows/release-lib.yaml Lines 37 to 40 in 11af69c
Re the musl targets, I tried but the unit tests about background execution (?) are failed (Sorry I missed the log and the PR number...) |
ubuntu 20.04
R 4.3.2
The text was updated successfully, but these errors were encountered: