-
Notifications
You must be signed in to change notification settings - Fork 898
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
rustup requires newer GLIBC than rustc on some arches #1681
Comments
Thanks for your report @cuviper - I guess that what we need to do is to consider the base docker images we use for our builds. Currently we simply use If you could take a look at Thanks, D. |
Trusty (Ubuntu 16.04) will reach EOL on 17.04.2019 so this workaround will be temporary. Also it ships with glibc 2.19 so binaries still would not work on RHEL or CentOS. |
I think that for non-tier 1 platforms, you're best course of action is to build from source. We would happily accept a PR if needed to help with that, but I don't think we have the bandwidth to improve things for our own distributions, sorry. |
I'm intending to work on this, if you could leave it open... |
When building for `linux-gnu` targets, we need to be careful about which versioned GLIBC symbols we'll link, as this sets the minimum supportable system version in ABI. The images in rust-lang/rust/src/ci/docker/ have already taken this into account, and since they're uploaded to S3, we can just use those exact images to get the same ABI compatibility. The builds for mips*, powerpc*, and s390x were identified in rust-lang#1681 as having newer glibc symbols than rustc, so those are now changed to use rust's docker images. In the future, we might want to do this for other architectures too, so all toolchains are in sync.
The symbol versions for those arches look much better in the rustup 1.18 release:
|
Problem
The distributed builds of
rustup
on some arches require relatively recent GLIBC symbols, newer than the baseline used byrustc
itself. Especially, those that buildrustup
withubuntu:18.04
cross-gcc will be tied to a similar OS ABI, whilerustc
supports older systems than that.This bug is a continuation of #1339.
Steps
For example, on RHEL 7.6 ppc64:
Possible Solution(s)
Rust's own docker images use careful cross toolchains to maintain ABI, and I think
rustup
could just reuse those same docker images.Notes
For the currently available linux-gnu binaries, I see:
All of those requiring
GLIBC_2.25
are problematic: mips*, powerpc*, and s390x.Rust currently uses
ubuntu:16.04
toolchains for all mips* targets, RHEL6-ish toolchains for powerpc, powerpc64, and s390x, and RHEL7-ish toolchains for powerpc64le.The text was updated successfully, but these errors were encountered: