Skip to content

Commit 2da8820

Browse files
committed
Auto merge of #95026 - cuviper:bump-linux-min, r=Mark-Simulacrum
Increase the minimum linux-gnu versions This is implementing the MCP from rust-lang/compiler-team#493. It is increasing the minimum requirements of a couple Tier 1 targets, and others at lower tiers, so this should go through FCP sign-offs for both `T-compiler` and `T-release`. The new `linux-gnu` baseline is kernel 3.2 and glibc 2.17. We will also take that kernel as the minimum floor for _all_ `*-linux-*` targets, so it may be broadly assumed in the implementation of the standard library. That does not preclude specific targets from having greater requirements where it makes sense, like a new arch needing something newer, or a platform like `linux-android` choosing a newer baseline.
2 parents f6f9d5e + a8c12c7 commit 2da8820

35 files changed

+1621
-1483
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ Snapshot binaries are currently built and tested on several platforms:
233233
| Platform / Architecture | x86 | x86_64 |
234234
|---------------------------------------------|-----|--------|
235235
| Windows (7, 8, 10, ...) | ✓ | ✓ |
236-
| Linux (kernel 2.6.32, glibc 2.11 or later) | ✓ | ✓ |
236+
| Linux (kernel 3.2, glibc 2.17 or later) | ✓ | ✓ |
237237
| macOS (10.7 Lion or later) | (\*) | ✓ |
238238
239239
(\*): Apple dropped support for running 32-bit binaries starting from macOS 10.15 and iOS 11.

src/ci/docker/README.md

+22-16
Original file line numberDiff line numberDiff line change
@@ -219,44 +219,49 @@ For targets: `armv7-unknown-linux-gnueabihf`
219219
For targets: `aarch64-unknown-linux-gnu`
220220
221221
- Path and misc options > Prefix directory = /x-tools/${CT\_TARGET}
222+
- Path and misc options > Use a mirror = ENABLE
223+
- Path and misc options > Base URL = https://ci-mirrors.rust-lang.org/rustc
222224
- Target options > Target Architecture = arm
223225
- Target options > Bitness = 64-bit
224226
- Operating System > Target OS = linux
225-
- Operating System > Linux kernel version = 4.2.6
227+
- Operating System > Linux kernel version = 4.1.49
228+
- Binary utilities > Version of binutils = 2.32
226229
- C-library > glibc version = 2.17 -- aarch64 support was introduced in this version
227-
- C compiler > gcc version = 5.2.0
230+
- C compiler > gcc version = 8.3.0
228231
- C compiler > C++ = ENABLE -- to cross compile LLVM
229232
230233
### `powerpc-linux-gnu.config`
231234
232235
For targets: `powerpc-unknown-linux-gnu`
233236
234237
- Path and misc options > Prefix directory = /x-tools/${CT\_TARGET}
235-
- Path and misc options > Patches origin = Bundled, then local
236-
- Path and misc options > Local patch directory = /tmp/patches
238+
- Path and misc options > Use a mirror = ENABLE
239+
- Path and misc options > Base URL = https://ci-mirrors.rust-lang.org/rustc
237240
- Target options > Target Architecture = powerpc
238241
- Target options > Emit assembly for CPU = powerpc -- pure 32-bit PowerPC
239242
- Operating System > Target OS = linux
240-
- Operating System > Linux kernel version = 2.6.32.68 -- ~RHEL6 kernel
241-
- C-library > glibc version = 2.11.1 -- ~SLE11-SP4 glibc
242-
- C compiler > gcc version = 5.2.0
243+
- Operating System > Linux kernel version = 3.2.101
244+
- Binary utilities > Version of binutils = 2.30
245+
- C-library > glibc version = 2.17 -- ~RHEL7 glibc
246+
- C compiler > gcc version = 8.3.0
243247
- C compiler > C++ = ENABLE -- to cross compile LLVM
244248
245249
### `powerpc64-linux-gnu.config`
246250
247251
For targets: `powerpc64-unknown-linux-gnu`
248252
249253
- Path and misc options > Prefix directory = /x-tools/${CT\_TARGET}
250-
- Path and misc options > Patches origin = Bundled, then local
251-
- Path and misc options > Local patch directory = /tmp/patches
254+
- Path and misc options > Use a mirror = ENABLE
255+
- Path and misc options > Base URL = https://ci-mirrors.rust-lang.org/rustc
252256
- Target options > Target Architecture = powerpc
253257
- Target options > Bitness = 64-bit
254258
- Target options > Emit assembly for CPU = power4 -- (+)
255259
- Target options > Tune for CPU = power6 -- (+)
256260
- Operating System > Target OS = linux
257-
- Operating System > Linux kernel version = 2.6.32.68 -- ~RHEL6 kernel
258-
- C-library > glibc version = 2.11.1 -- ~SLE11-SP4 glibc
259-
- C compiler > gcc version = 5.2.0
261+
- Operating System > Linux kernel version = 3.2.101
262+
- Binary utilities > Version of binutils = 2.32
263+
- C-library > glibc version = 2.17 -- ~RHEL7 glibc
264+
- C compiler > gcc version = 8.3.0
260265
- C compiler > C++ = ENABLE -- to cross compile LLVM
261266
262267
(+) These CPU options match the configuration of the toolchains in RHEL6.
@@ -266,13 +271,14 @@ For targets: `powerpc64-unknown-linux-gnu`
266271
For targets: `s390x-unknown-linux-gnu`
267272
268273
- Path and misc options > Prefix directory = /x-tools/${CT\_TARGET}
269-
- Path and misc options > Patches origin = Bundled, then local
270-
- Path and misc options > Local patch directory = /tmp/patches
274+
- Path and misc options > Use a mirror = ENABLE
275+
- Path and misc options > Base URL = https://ci-mirrors.rust-lang.org/rustc
271276
- Target options > Target Architecture = s390
272277
- Target options > Bitness = 64-bit
273278
- Operating System > Target OS = linux
274-
- Operating System > Linux kernel version = 2.6.32.71 -- ~RHEL6 kernel
275-
- C-library > glibc version = 2.12.1 -- ~RHEL6 glibc
279+
- Operating System > Linux kernel version = 3.2.101
280+
- Binary utilities > Version of binutils = 2.32
281+
- C-library > glibc version = 2.17 -- ~RHEL7 glibc
276282
- C compiler > gcc version = 8.3.0
277283
- C compiler > gcc extra config = --with-arch=z10 -- LLVM's minimum support
278284
- C compiler > C++ = ENABLE -- to cross compile LLVM

src/ci/docker/host-x86_64/dist-aarch64-linux/Dockerfile

+6-27
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,10 @@
11
FROM ubuntu:20.04
2-
RUN apt-get update && \
3-
apt-get install -y --no-install-recommends \
4-
curl \
5-
ca-certificates
6-
WORKDIR /tmp
7-
RUN curl -f https://curl.se/ca/cacert.pem -o cacert.pem
8-
9-
FROM ubuntu:16.04
10-
11-
# The ca-certificates in ubuntu-16 is too old, so update the certificates
12-
# with something more recent.
13-
COPY --from=0 /tmp/cacert.pem /tmp/cacert.pem
14-
ENV CURL_CA_BUNDLE /tmp/cacert.pem
152

163
COPY scripts/cross-apt-packages.sh /scripts/
174
RUN sh /scripts/cross-apt-packages.sh
185

19-
# Ubuntu 16.04 (this container) ships with make 4, but something in the
20-
# toolchains we build below chokes on that, so go back to make 3
21-
COPY scripts/make3.sh /scripts/
22-
RUN sh /scripts/make3.sh
23-
24-
COPY scripts/crosstool-ng.sh /scripts/
25-
RUN sh /scripts/crosstool-ng.sh
6+
COPY scripts/crosstool-ng-1.24.sh /scripts/
7+
RUN sh /scripts/crosstool-ng-1.24.sh
268

279
COPY scripts/rustbuild-setup.sh /scripts/
2810
RUN sh /scripts/rustbuild-setup.sh
@@ -37,14 +19,11 @@ USER root
3719
COPY scripts/sccache.sh /scripts/
3820
RUN sh /scripts/sccache.sh
3921

40-
COPY scripts/cmake.sh /scripts/
41-
RUN /scripts/cmake.sh
42-
43-
ENV PATH=$PATH:/x-tools/aarch64-unknown-linux-gnueabi/bin
22+
ENV PATH=$PATH:/x-tools/aarch64-unknown-linux-gnu/bin
4423

45-
ENV CC_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnueabi-gcc \
46-
AR_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnueabi-ar \
47-
CXX_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnueabi-g++
24+
ENV CC_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnu-gcc \
25+
AR_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnu-ar \
26+
CXX_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnu-g++
4827

4928
ENV HOSTS=aarch64-unknown-linux-gnu
5029

0 commit comments

Comments
 (0)