-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
ci: Update dist-{i686,x86_64}-linux to Debian 6 #74163
Conversation
r? @kennytm (rust_highfive has picked a reviewer for you, use r? to override) |
This supercedes #73782. RE: #73782 (comment)
I think we can't make the same argument about new deployments though, since new Firefox ESR builds are required even on older OSes, and that forces Rust forward along with it. Even then, the fact that I needed RHEL 5 support was an oddity of our internal build system, as we're currently only updating Firefox on RHEL 6 and later. |
⌛ Trying commit cad41f6db84a14edcafb6e1257b64864ef2ea22e with merge 40edca408120f0a8e0b69be3688520c2432b0e7e... |
💥 Test timed out |
@bors try |
⌛ Trying commit cad41f6db84a14edcafb6e1257b64864ef2ea22e with merge 4f227e3d5f8a312e5c37bab426c28affad30c73a... |
☀️ Try build successful - checks-actions, checks-azure |
We discussed this in last week's release meeting, and the summary of that discussion was that we plan on posting an RFC formalizing that for the x86_64 linux targets, we plan to have a baseline level of support for the RHEL and SLES versions that are supported (or needed to support current version, due to bootstrapping). Further details will be in the RFC (and to some extent need to be hashed out). In the mean time, though, we will move ahead with this PR through the FCP process. If people feel that we should wait for the RFC to be posted and approved prior to landing this, please do raise that concern. I personally feel comfortable making a one-off decision to bump support here and then formalizing the process we go through to do so, though. @rfcbot fcp merge |
Team member @Mark-Simulacrum has proposed to merge this. The next step is review by the rest of the tagged team members:
Concerns:
Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See this document for info about what commands tagged team members can give me. |
@rfcbot concern SLES-approval I would like @msirringhaus to weigh in before we merge this as well. |
You can inspect the binary artifacts from the try-build above using this tool.
|
Side note, this will also affect other tools that piggy-back on Rust CI images -- I know rustup does. |
I've downloaded the artifacts and compiled a simple "hello world"-program successfully on SLES-11 SP4 |
@rfcbot resolve SLES-approval |
r=me with try builder removed and FCP done |
This increases the minimum `{i686,x86_64}-unknown-linux-gnu` platform from RHEL/CentOS 5 (glibc 2.5 and kernel 2.6.18) to a slightly newer Debian 6 `squeeze` (glibc 2.11 and kernel 2.6.32). While that release is already EOL, it happens to match the minimum common versions of two enterprise distros that do still need Rust support -- RHEL 6 (glibc 2.12 and kernel 2.6.32) and SLES 11 SP4 (glibc 2.11 and kernel 3.0).
Should https://forge.rust-lang.org/release/platform-support.html be updated to reflect the new minimal kernel version? (Might be good to also give the required glibc there.) |
Yes we should update the forge, and I agree glibc should be mentioned too. Plus the lower tier Linux targets aren't mentioning this at all, but probably should. |
Minimum supported kernel version got bumped to 2.6.32 in rust-lang/rust#74163
Would it be possible to cover Windows and Mac policy in the same RFC as well (and ideally other OSes)? For example, panic has been long broken on Windows XP and we have to use deprecated API for retrieving OS randomness on all non-UWP Windows targets. So it would be nice if XP and Vista support will be dropped as part of this RFC. |
We'd probably want separate RFCs I think, given that the audience interested in each platform is probably pretty distinct. I imagine once we work through the linux RFC and perhaps land the tier policy RFC @joshtriplett has been working on we can look at Windows and macOS. My impression personally is that we're going to be much more constrained there -- lack of easily available ways of testing older macOS and Windows releases makes it difficult to support those platforms. |
The versions were raised to kernel 2.6.32 and glibc 2.11 in <rust-lang/rust#74163>.
…403) * Update i686/x86_64 linux-gnu minimum requirements The versions were raised to kernel 2.6.32 and glibc 2.11 in <rust-lang/rust#74163>. * Specify kernel/glibc support for more linux-gnu targets This reflects the status quo for targets that are built with manually controlled toolchains, e.g. using crosstool-ng. * Specify kernel/glibc for linux-gnu targets built on Ubuntu 16.04 * Specify kernel/glibc for linux-gnu targets built on Ubuntu 18.04
Now that rust-lang#74163 updated the minimum Linux kernel to 2.6.32, we can assume the availability of APIs that open file descriptors that are already set to close on exec, including the flags `O_CLOEXEC`, `SOCK_CLOEXEC`, and `F_DUPFD_CLOEXEC`.
Minimum supported kernel version got bumped to 2.6.32 in rust-lang/rust#74163
Remove Linux workarounds for missing CLOEXEC support Now that rust-lang#74163 updated the minimum Linux kernel to 2.6.32, we can assume the availability of APIs that open file descriptors that are already set to close on exec, including the flags `O_CLOEXEC`, `SOCK_CLOEXEC`, and `F_DUPFD_CLOEXEC`. Closes rust-lang#74519.
README: Adjust Linux and macOS support platform and architecture cc rust-lang#74163
Should been part of rust-lang#74163
remove orphaned files Should been part of rust-lang#74163
remove orphaned files Should been part of rust-lang#74163
Pkgsrc changes: * Remove patches now integrated upstream, many related to SunOS / Illumos. * The LLVM fix for powerpc is also now integrated upstream. * Adapt those patches where the source has moved or parts are integrated. * The randomness patches no longer applies, and I could not find where those files went... * Provide a separate bootstrap for NetBSD/powerpc 9.0, since apparently the C++ ABI is different from 8.0. Yes, this appears to be specific to the NetBSD powerpc ports. Upstream changes: Version 1.47.0 (2020-10-08) ========================== Language -------- - [Closures will now warn when not used.][74869] Compiler -------- - [Stabilized the `-C control-flow-guard` codegen option][73893], which enables [Control Flow Guard][1.47.0-cfg] for Windows platforms, and is ignored on other platforms. - [Upgraded to LLVM 11.][73526] - [Added tier 3\* support for the `thumbv4t-none-eabi` target.][74419] - [Upgrade the FreeBSD toolchain to version 11.4][75204] - [`RUST_BACKTRACE`'s output is now more compact.][75048] \* Refer to Rust's [platform support page][forge-platform-support] for more information on Rust's tiered platform support. Libraries --------- - [`CStr` now implements `Index<RangeFrom<usize>>`.][74021] - [Traits in `std`/`core` are now implemented for arrays of any length, not just those of length less than 33.][74060] - [`ops::RangeFull` and `ops::Range` now implement Default.][73197] - [`panic::Location` now implements `Copy`, `Clone`, `Eq`, `Hash`, `Ord`, `PartialEq`, and `PartialOrd`.][73583] Stabilized APIs --------------- - [`Ident::new_raw`] - [`Range::is_empty`] - [`RangeInclusive::is_empty`] - [`Result::as_deref`] - [`Result::as_deref_mut`] - [`Vec::leak`] - [`pointer::offset_from`] - [`f32::TAU`] - [`f64::TAU`] The following previously stable APIs have now been made const. - [The `new` method for all `NonZero` integers.][73858] - [The `checked_add`,`checked_sub`,`checked_mul`,`checked_neg`, `checked_shl`, `checked_shr`, `saturating_add`, `saturating_sub`, and `saturating_mul` methods for all integers.][73858] - [The `checked_abs`, `saturating_abs`, `saturating_neg`, and `signum` for all signed integers.][73858] - [The `is_ascii_alphabetic`, `is_ascii_uppercase`, `is_ascii_lowercase`, `is_ascii_alphanumeric`, `is_ascii_digit`, `is_ascii_hexdigit`, `is_ascii_punctuation`, `is_ascii_graphic`, `is_ascii_whitespace`, and `is_ascii_control` methods for `char` and `u8`.][73858] Cargo ----- - [`build-dependencies` are now built with opt-level 0 by default.][cargo/8500] You can override this by setting the following in your `Cargo.toml`. ```toml [profile.release.build-override] opt-level = 3 ``` - [`cargo-help` will now display man pages for commands rather just the `--help` text.][cargo/8456] - [`cargo-metadata` now emits a `test` field indicating if a target has tests enabled.][cargo/8478] - [`workspace.default-members` now respects `workspace.exclude`.][cargo/8485] - [`cargo-publish` will now use an alternative registry by default if it's the only registry specified in `package.publish`.][cargo/8571] Misc ---- - [Added a help button beside Rustdoc's searchbar that explains rustdoc's type based search.][75366] - [Added the Ayu theme to rustdoc.][71237] Compatibility Notes ------------------- - [Bumped the minimum supported Emscripten version to 1.39.20.][75716] - [Fixed a regression parsing `{} && false` in tail expressions.][74650] - [Added changes to how proc-macros are expanded in `macro_rules!` that should help to preserve more span information.][73084] These changes may cause compiliation errors if your macro was unhygenic or didn't correctly handle `Delimiter::None`. - [Moved support for the CloudABI target to tier 3.][75568] - [`linux-gnu` targets now require minimum kernel 2.6.32 and glibc 2.11.][74163] Internal Only -------- - [Improved default settings for bootstrapping in `x.py`.][73964] You can read details about this change in the ["Changes to `x.py` defaults"](https://blog.rust-lang.org/inside-rust/2020/08/30/changes-to-x-py-defaults.html) post on the Inside Rust blog. - [Added the `rustc-docs` component.][75560] This allows you to install and read the documentation for the compiler internal APIs. (Currently only available for `x86_64-unknown-linux-gnu`.) [1.47.0-cfg]: https://docs.microsoft.com/en-us/windows/win32/secbp/control-flow-guard [76980]: rust-lang/rust#76980 [75048]: rust-lang/rust#75048 [74163]: rust-lang/rust#74163 [71237]: rust-lang/rust#71237 [74869]: rust-lang/rust#74869 [73858]: rust-lang/rust#73858 [75716]: rust-lang/rust#75716 [75908]: rust-lang/rust#75908 [75516]: rust-lang/rust#75516 [75560]: rust-lang/rust#75560 [75568]: rust-lang/rust#75568 [75366]: rust-lang/rust#75366 [75204]: rust-lang/rust#75204 [74650]: rust-lang/rust#74650 [74419]: rust-lang/rust#74419 [73964]: rust-lang/rust#73964 [74021]: rust-lang/rust#74021 [74060]: rust-lang/rust#74060 [73893]: rust-lang/rust#73893 [73526]: rust-lang/rust#73526 [73583]: rust-lang/rust#73583 [73084]: rust-lang/rust#73084 [73197]: rust-lang/rust#73197 [72488]: rust-lang/rust#72488 [cargo/8456]: rust-lang/cargo#8456 [cargo/8478]: rust-lang/cargo#8478 [cargo/8485]: rust-lang/cargo#8485 [cargo/8500]: rust-lang/cargo#8500 [cargo/8571]: rust-lang/cargo#8571 [`Ident::new_raw`]: https://doc.rust-lang.org/nightly/proc_macro/struct.Ident.html#method.new_raw [`Range::is_empty`]: https://doc.rust-lang.org/nightly/std/ops/struct.Range.html#method.is_empty [`RangeInclusive::is_empty`]: https://doc.rust-lang.org/nightly/std/ops/struct.RangeInclusive.html#method.is_empty [`Result::as_deref_mut`]: https://doc.rust-lang.org/nightly/std/result/enum.Result.html#method.as_deref_mut [`Result::as_deref`]: https://doc.rust-lang.org/nightly/std/result/enum.Result.html#method.as_deref [`TypeId::of`]: https://doc.rust-lang.org/nightly/std/any/struct.TypeId.html#method.of [`Vec::leak`]: https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.leak [`f32::TAU`]: https://doc.rust-lang.org/nightly/std/f32/consts/constant.TAU.html [`f64::TAU`]: https://doc.rust-lang.org/nightly/std/f64/consts/constant.TAU.html [`pointer::offset_from`]: https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.offset_from
This increases the minimum
{i686,x86_64}-unknown-linux-gnu
platformfrom RHEL/CentOS 5 (glibc 2.5 and kernel 2.6.18) to a slightly newer
Debian 6
squeeze
(glibc 2.11 and kernel 2.6.32). While that release isalready EOL, it happens to match the minimum common versions of two
enterprise distros that do still need Rust support -- RHEL 6 (glibc 2.12
and kernel 2.6.32) and SLES 11 SP4 (glibc 2.11 and kernel 3.0).
Closes #62516.