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

dist-x86-linux: switch to CentOS 6 #40848

Closed

Conversation

Projects
None yet
7 participants
@ishitatsuyuki
Copy link
Member

ishitatsuyuki commented Mar 27, 2017

This brings the modern toolchain into the build system and hopefully speeds up the things.

CentOS 5 (and Ubuntu 12.04) is about EOL, so let's switch a week before they expires.

glibc version watch:

status distro version
dead CentOS/RHEL 5 2.5 oldest
CentOS/RHEL 6 2.12 oldest active
dead Debian 6 2.11
Debian 7 2.13
dead Ubuntu 12.04 2.15
Ubuntu 14.04 2.19

DO NOT MERGE - Remove the testing commit before proceeding

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Mar 27, 2017

r? @brson

(rust_highfive has picked a reviewer for you, use r? to override)

@TimNN

This comment has been minimized.

Copy link
Contributor

TimNN commented Mar 27, 2017

@ishitatsuyuki: To have travis test this, you can temporarily add ALLOW_PR=1 to the env: IMAGE=dist-x86-linux DEPLOY=1 line of .travis.yml.

Also, all the now unused shell scripts should probably be deleted.

@ishitatsuyuki ishitatsuyuki force-pushed the ishitatsuyuki:x86-distro-upgrade branch from d1f45ec to d0e1f63 Mar 27, 2017

@@ -86,7 +46,7 @@ ENV RUST_CONFIGURE_ARGS \
--host=$HOSTS \
--enable-extended \
--enable-sanitizers
ENV SCRIPT python2.7 ../x.py dist --host $HOSTS --target $HOSTS
ENV SCRIPT scl enable python27 devtoolset-6 python2.7 ../x.py dist --host $HOSTS --target $HOSTS

This comment has been minimized.

@TimNN

TimNN Mar 27, 2017

Contributor

I'm not completely sure, but as I understand this scl enable sets up the environment to use the specified tools? In that case this may not work correctly since the ./configure script is ran outside of that environment, I think.

This comment has been minimized.

@ishitatsuyuki

ishitatsuyuki Mar 27, 2017

Author Member

Good catch. Let me find a fix for that.

@ishitatsuyuki

This comment has been minimized.

Copy link
Member Author

ishitatsuyuki commented Mar 27, 2017

cmake3 seems to be available in EPEL, will add it tomorrow.

@alexcrichton

This comment has been minimized.

Copy link
Member

alexcrichton commented Mar 27, 2017

What is the motivation for doing this? Do we have active problems we need fixing with the centos 5 image? I'd ideally prefer to have strong motivation for raising our glibc requirement as that can have wide ramifications.

@alexcrichton

This comment has been minimized.

Copy link
Member

alexcrichton commented Mar 27, 2017

(oops didn't mean to close)

@ishitatsuyuki

This comment has been minimized.

Copy link
Member Author

ishitatsuyuki commented Mar 27, 2017

My personal reason is distro expiry. You don't need to maintain binary compatibility for those unsupported distros, since it's possible to build from source. (I don't think a sysadmin can live without SNI now)

This doesn't break Ubuntu 12.04, so there's no concern of breaking the shitty Travis infrastructure.

GCC 6 doesn't seem to perform super well than 4, but anyway I guess newer toolchains are better.

@alexcrichton

This comment has been minimized.

Copy link
Member

alexcrichton commented Mar 27, 2017

but anyway I guess newer toolchains are better

This is not a reason to require a new glibc version out of the blue, is there a technical reason for this upgrade?

@ishitatsuyuki

This comment has been minimized.

Copy link
Member Author

ishitatsuyuki commented Mar 27, 2017

This is a distro upgrade alongside with new backported toolchains (made possible with SCL in CentOS 6). We no longer need to hack from source for another LLVM requirement bump.

CentOS 5 is about to expire. Debian 6 already expired. There's not so many concern of breakage, and we never need to support those EOL distros. (I have already mentioned that they can build things from source)

If I'm correct, this will land 3 months later in stable. I believe it's an enough margin to upgrade.

ishitatsuyuki added some commits Mar 27, 2017

dist-x86-linux: switch to CentOS 6
- No more hacky source builds
- Bring the modern gcc and Python into the old world (SCL is great!)

@ishitatsuyuki ishitatsuyuki force-pushed the ishitatsuyuki:x86-distro-upgrade branch from eaa723c to 880c86a Mar 27, 2017

@sfackler

This comment has been minimized.

Copy link
Member

sfackler commented Mar 28, 2017

we never need to support those EOL distros

Why?

@ishitatsuyuki

This comment has been minimized.

Copy link
Member Author

ishitatsuyuki commented Mar 28, 2017

@sfackler whoever will run nightly(rustup) on CentOS 5? Anyway, I have already mentioned that they can compile everything by themselves.

End of life is what devs can forget, we don't need to show effort to support them.

@ishitatsuyuki

This comment has been minimized.

Copy link
Member Author

ishitatsuyuki commented Mar 28, 2017

Seems we need a multilib compiler.

@ishitatsuyuki

This comment has been minimized.

Copy link
Member Author

ishitatsuyuki commented Mar 28, 2017

Abandoning due to no SCL for multilib. I choose continuing with existing infra.

@cuviper

This comment has been minimized.

Copy link
Member

cuviper commented Apr 4, 2017

You don't need to maintain binary compatibility for those unsupported distros, since it's possible to build from source.

Note that building rustc from source still requires bootstrap binaries for stage0. If rust-lang.org's binaries stop supporting older glibc, then such users can't directly build from source either. They would have to go through the cross-compile steps from a system that does have the newer glibc to run stage0.

@ishitatsuyuki ishitatsuyuki deleted the ishitatsuyuki:x86-distro-upgrade branch May 18, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.