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

Upgrade 12.04-based containers to 14.04 #164

Closed
wants to merge 1 commit into from

Conversation

ticky
Copy link

@ticky ticky commented Nov 28, 2017

Aims to fix #149 for armv7-unknown-linux-gnueabihf, i686-unknown-linux-gnu and x86_64-unknown-linux-gnu containers, by upgrading them to Ubuntu 14.04, where multiarch is properly supported.

@japaric
Copy link
Contributor

japaric commented Dec 16, 2017

Thanks for the PR.

Unfortunately, this change makes the binaries produced by cross less portable because it increases the glibc version of the (cross) C toolchains. For instance, the binaries produced with these changes won't run on Ubuntu 12.04 ("undefined reference to $SYMBOL" error at runtime).

We strive to make Cross-generated binaries as portable as the rustc binary shipped by rust-lang/rust so I won't be accepting this change. Sorry but you'll have to find another solution to #149. (Idea: perhaps there's some debian release that supports multiarch and also has an old glibc version?).

@ticky
Copy link
Author

ticky commented Dec 20, 2017

Sorry to hear that. Unfortunately, that’s not really something I understand enough to contribute.

As it stands, the instructions for adding library dependencies which is in the readme simply do not work, for confusing reasons, on a whole bunch of common architectures. Adding another invisible dependency on a different OS seems like an even more confusing change!

It might be good to add the OS and version pair to the table in the Readme, so these differences are clear. Moving any of these to Debian may also mean package names change subtly.

@briansmith
Copy link
Contributor

What will happen when Ubuntu 12.04 becomes completely unsupported in April 2019 (see https://wiki.ubuntu.com/Releases#Extended_Security_Maintenance)? Is the plan to switch to CentOS or some other LTS that supports old glibc and is still supported?

@Disasm
Copy link

Disasm commented Feb 20, 2019

As far as I can see, Rust uses Ubuntu 16.04 for armv7-unknown-linux-gnueabihf and CentOS 5 with vault.centos.org repository mirror for i686-unknown-linux-gnu and x86_64-unknown-linux-gnu targets. I hope we can update Dockerfiles for these targets.

@Disasm Disasm requested a review from japaric February 20, 2019 17:58
@Disasm
Copy link

Disasm commented Feb 20, 2019

cc @rust-embedded/tools

@Disasm Disasm added S-waiting-on-team Status: Awaiting decision from the relevant subteam (see the T-<team> label). T-tools labels Feb 20, 2019
@japaric
Copy link
Contributor

japaric commented Feb 23, 2019

To reiterate: we are not going to bump the glibc versions in the v0.1.x line
because that's a breaking change. We'll bump the glibc versions when we are
ready to release v0.2.0.

As far as I can see, Rust uses Ubuntu 16.04 for armv7-unknown-linux-gnueabihf

But rust-lang/rust builds their own toolchains from scratch. For example, they
use glibc 2.16 + gcc 5.2 for armv7-unknown-linux-gnueabihf. We use Ubuntu 12.04
which comes with glibc 2.15 for armv7-unknown-linux-gnueabihf. Bumping our glibc
beyond 2.16 (i.e. moving to 14.04 or 16.04) would be a breaking change so it
can't be done in the v0.1.x line.

What will happen when Ubuntu 12.04 becomes completely unsupported in April 2019

Nothing's going to happen to the existing releases; our tagged docker images
will still be there. If someone is concerned about using an image based on
Ubuntu 12.04 they are free to use a custom image, Cross supports this.


I should also add that we are not going to increase the CI load of this
repository because it's already ridiculously large (and affects the whole
rust-embedded org). This means:

  • We are not going to build custom toolchains. Not here nor in another
    repository under the rust-embedded org. If a third party provides nicely
    packaged toolchains that meet our needs we'll gladly use them but we are not
    going to build them ourselves.

  • We are not going to provide variants of existing images so no
    armv7-unknown-linux-gnueabihf-with-recent-glibc. One image per target is
    plenty of CI time already.

With that say I'm going to close this PR since it's not actionable until we have
decided what to do with glibc versions for v0.2.0. If someone feels like
proposing a plan of action for v0.2.0 please post it in an RFC issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-team Status: Awaiting decision from the relevant subteam (see the T-<team> label). T-tools wontfix
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Unable to add packages for other architectures
5 participants