-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
Different glibc version between aarch64 and x86 builders? #46186
Comments
Both Docker images ( aarch64:
x86_64:
|
Thanks @martin-g! That's quite an old version and current Rust versions require at least glibc 2.17 Rust announcement Trying to see what the difference between aarch and x86 is, I noticed that aarch has the following entry which x86 doesn't: aarch:
x86:
Could this be related to it? What do you suggest we do in this case? Switch off tests and wait for builders to use more modern centos? We could package the musl build, but that's got terrible performance for multi-threading, an important feature of Nextclade. See Rust issue: rust-lang/rust#57497 Centos7 will reach end of life in June 2024: https://www.redhat.com/en/events/webinar/centos-linux-reaching-its-end-life-now-what |
The glibc version is controlled by the c_stdlib_version: # [unix]
- 2.12 # [linux and x86_64]
- 2.17 # [linux and not x86_64] (Your checking of It is indeed annoying that these are so old. I had to patch htslib to add linux-aarch64 support to work around the ancient 2.17 to avoid samtools/htscodecs#88 (comment) and now I finally understand why conda builds choose this ancient version! The first “here” link in my first paragraph shows how to change the default by adding your own conda_build_config.yaml to your recipe. This may or may not have undesired side-effects, and may not be relevant for your binary-copying recipe. I used a different approach for htslib before I found that documentation. Updating these is conda-forge/conda-forge.github.io#1941 but would seem to be a long way off — see the discussion there and e.g. conda-forge/ctng-compilers-feedstock#109 (comment). |
Thanks @jmarshall, that's very insightful! So the glibc versions do seem to be different after all - which may or may not explain why I see failure only in aarch64 and not in arm64. I'll try to change the build config to see if that fixes it. Update: Unfortunately setting sysroot_linux-aarch64 2.28.* in the hope of getting a builder with __glibc >=2.28 doesn't work as there doesn't seem to be a builder available with such a minimum glibc version. Shame.
Other recipes that repackage binaries and mention glibc in the context of having build/test issues often resort to disabling tests. I guess that's the workaround for now:
|
#46341 is a similar issue. |
I've tried to add aarch64 support to the nextclade recipe here #46185 which does binary repackaging.
I noticed that the aarch64 tests fail with:
The x86 tests don't fail - suggesting the version of glibc that comes with the aarch64 builder is lower than the one that comes with x86. Is that correct?
I know we should build from source - but repackaging has worked flawlessly to date. Others might run into the same issue.
The text was updated successfully, but these errors were encountered: