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

Promote aarch64-pc-windows-msvc to Tier 2 Development Platform #75914

Merged
merged 1 commit into from
Oct 12, 2020

Conversation

arlosi
Copy link
Contributor

@arlosi arlosi commented Aug 25, 2020

Adds a GitHub Actions CI build for aarch64-pc-windows-msvc via cross-compilation on an x86_64 host.

This promotes aarch64-pc-windows-msvc from a Tier 2 Compilation Target (std) to a Tier 2 Development Platform (std+rustc+cargo+tools).

Fixes #72881

r? @pietroalbini

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Aug 25, 2020
@pietroalbini
Copy link
Member

You need to run this command locally to generate the actual CI config from the template you changed:

./x.py run src/tools/expand-yaml-anchors

src/ci/github-actions/ci.yml Outdated Show resolved Hide resolved
@pietroalbini
Copy link
Member

@rust-lang/compiler @rust-lang/infra this promotes aarch64-pc-windows-msvc from a Tier 2 Compilation Target (std) to a Tier 2 Development Platform (std+rustc+cargo+tools). It will need signoff from both teams.

For the infra team, we'll decide during the next meeting.

@rustbot modify labels: T-infra, T-compiler, I-nominated

@rustbot rustbot added I-nominated T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Aug 25, 2020
@pietroalbini
Copy link
Member

The infrastructure team approved allocating a dedicated builder for this!

@pietroalbini
Copy link
Member

@bors try

@bors
Copy link
Contributor

bors commented Aug 26, 2020

⌛ Trying commit cfdc7689639605bc5332a3f5f8bd644499a965a7 with merge 63a672856df98c5a4b77c62b4cd4969477768c49...

@bors
Copy link
Contributor

bors commented Aug 26, 2020

☀️ Try build successful - checks-actions, checks-azure
Build commit: 63a672856df98c5a4b77c62b4cd4969477768c49 (63a672856df98c5a4b77c62b4cd4969477768c49)

@arlosi
Copy link
Contributor Author

arlosi commented Aug 26, 2020

Looks like it worked 🎉!

rustc std cargo

I'll modify the PR to place it in auto instead of try.

@ehuss
Copy link
Contributor

ehuss commented Aug 26, 2020

Can you update this line in the docs to add a checkmark in the third column to indicate this target is available as a host target?

`aarch64-pc-windows-msvc` | ✓ | | ARM64 Windows MSVC

@arlosi
Copy link
Contributor Author

arlosi commented Aug 26, 2020

Since this is a cross-build, it also produced and uploaded artifacts for x86_64-pc-windows-msvc. Is that going to be an issue?

@ehuss
Copy link
Contributor

ehuss commented Aug 26, 2020

I was going to ask about that. Why does this have --host=x86_64-pc-windows-msvc? None of the other aarch64 dist builders do that.

@pietroalbini
Copy link
Member

Yep, @ehuss is correct, --host aarch64-pc-windows-msvc --target aarch64-pc-windows-msvc should work fine, and it shouldn't publish extra artifacts.

Also, aarch64-pc-windows-msvc needs to be removed from the --targets of dist-x86_64-msvc.

@arlosi
Copy link
Contributor Author

arlosi commented Aug 27, 2020

I also checked locally and doing --host aarch64-pc-windows-msvc only produced aarch64 artifacts. PR is updated to remove the extra host from the aarch64 builder, and remove the extra target from the x86_64 builder.

@pnkfelix
Copy link
Member

pnkfelix commented Aug 27, 2020

I'm throwing a link to #74820 on here because I suspect we'll want to better understand that bug before we can stabilize a Tier 1 ARM target. (But this is only Tier 2 so that is fine.)

@arlosi arlosi changed the title Add aarch64-pc-windows-msvc to CI Promote aarch64-pc-windows-msvc to Tier 2 Development Platform Aug 27, 2020
@pietroalbini
Copy link
Member

@pnkfelix hmm, that's on ARMv7 instead of AArch64.

@pnkfelix
Copy link
Member

pnkfelix commented Aug 27, 2020

@pnkfelix hmm, that's on ARMv7 instead of AArch64.

Hmm okay good point

(Not that we understand what's going on in #74820 anyway...)

@spastorino
Copy link
Member

This was discussed during T-compiler meeting. Should we remove nomination or T-infra needs the nomination for some reason?. cc @pietroalbini

@pietroalbini
Copy link
Member

Infra doesn't need I-nominated, we already discussed this too.

@arlosi
Copy link
Contributor Author

arlosi commented Aug 31, 2020

@pnkfelix do we still need to do this (from the compiler meeting)?

remove T-infra, do @rfcbot fcp merge, and then readd T-infra

@arlosi
Copy link
Contributor Author

arlosi commented Sep 8, 2020

Could someone remove T-infra, do @rfcbot fcp merge, and then readd T-infra as discussed in the compiler meeting?

@jonas-schievink jonas-schievink added the relnotes Marks issues that should be documented in the release notes of the next release. label Sep 13, 2020
…compilation on an x86_64 host.

This promotes aarch64-pc-windows-msvc from a Tier 2 Compilation Target (std) to a Tier 2 Development Platform (std+rustc+cargo+tools).

Fixes rust-lang#72881
@rfcbot rfcbot added final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. and removed proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off. labels Oct 1, 2020
@rfcbot
Copy link

rfcbot commented Oct 1, 2020

🔔 This is now entering its final comment period, as per the review above. 🔔

@Alovchin91
Copy link

Alovchin91 commented Oct 2, 2020

@arlosi I would LOVE to have this merged! Is there anything left to do on this PR? (I see it needs a conflict resolution right now)

@arlosi
Copy link
Contributor Author

arlosi commented Oct 2, 2020

We need to wait for the end of the FCP (9 more calendar days). Assuming there are no objections, we should be able to merge it in then.

I did resolve the conflicts a few days ago. I didn't run the modify labels command because the labels looked correct already.

@Alovchin91
Copy link

Thanks for the explanation! Hope to see it merged soon after FCP 😄

@rfcbot rfcbot added finished-final-comment-period The final comment period is finished for this PR / Issue. and removed final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. labels Oct 11, 2020
@rfcbot
Copy link

rfcbot commented Oct 11, 2020

The final comment period, with a disposition to merge, as per the review above, is now complete.

As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed.

The RFC will be merged soon.

@rfcbot rfcbot added the to-announce Announce this issue on triage meeting label Oct 11, 2020
@pietroalbini
Copy link
Member

@bors r+ rollup=iffy

Thanks!

@bors
Copy link
Contributor

bors commented Oct 12, 2020

📌 Commit 0a4dc8b has been approved by pietroalbini

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 12, 2020
@bors
Copy link
Contributor

bors commented Oct 12, 2020

⌛ Testing commit 0a4dc8b with merge d9b9316...

@bors
Copy link
Contributor

bors commented Oct 12, 2020

☀️ Test successful - checks-actions, checks-azure
Approved by: pietroalbini
Pushing d9b9316 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Oct 12, 2020
@bors bors merged commit d9b9316 into rust-lang:master Oct 12, 2020
@rustbot rustbot added this to the 1.49.0 milestone Oct 12, 2020
@spastorino spastorino removed the to-announce Announce this issue on triage meeting label Oct 15, 2020
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Feb 14, 2021
Pkgsrc changes:
 * Adjust patches, convert tabs to spaces so that tests pass.
 * Remove patches which are no longer needed (upstream changed)
 * Minor adjustments for SunOS, e.g. disable stack probes.
 * Adjust cargo checksum patching accordingly.
 * Remove commented-out use of PATCHELF on NetBSD, which doesn't work anyway...

Upstream changes:

Version 1.49.0 (2020-12-31)
============================

Language
-----------------------

- [Unions can now implement `Drop`, and you can now have a field in a union
  with `ManuallyDrop<T>`.][77547]
- [You can now cast uninhabited enums to integers.][76199]
- [You can now bind by reference and by move in patterns.][76119] This
  allows you to selectively borrow individual components of a type. E.g.
  ```rust
  #[derive(Debug)]
  struct Person {
      name: String,
      age: u8,
  }

  let person = Person {
      name: String::from("Alice"),
      age: 20,
  };

  // `name` is moved out of person, but `age` is referenced.
  let Person { name, ref age } = person;
  println!("{} {}", name, age);
  ```

Compiler
-----------------------

- [Added tier 1\* support for `aarch64-unknown-linux-gnu`.][78228]
- [Added tier 2 support for `aarch64-apple-darwin`.][75991]
- [Added tier 2 support for `aarch64-pc-windows-msvc`.][75914]
- [Added tier 3 support for `mipsel-unknown-none`.][78676]
- [Raised the minimum supported LLVM version to LLVM 9.][78848]
- [Output from threads spawned in tests is now captured.][78227]
- [Change os and vendor values to "none" and "unknown" for some targets][78951]

\* Refer to Rust's [platform support page][forge-platform-support] for more
information on Rust's tiered platform support.

Libraries
-----------------------

- [`RangeInclusive` now checks for exhaustion when calling `contains`
  and indexing.][78109]
- [`ToString::to_string` now no longer shrinks the internal buffer
  in the default implementation.][77997]
- [`ops::{Index, IndexMut}` are now implemented for fixed sized
  arrays of any length.][74989]

Stabilized APIs
---------------

- [`slice::select_nth_unstable`]
- [`slice::select_nth_unstable_by`]
- [`slice::select_nth_unstable_by_key`]

The following previously stable methods are now `const`.

- [`Poll::is_ready`]
- [`Poll::is_pending`]

Cargo
-----------------------
- [Building a crate with `cargo-package` should now be independently
  reproducible.][cargo/8864]
- [`cargo-tree` now marks proc-macro crates.][cargo/8765]
- [Added `CARGO_PRIMARY_PACKAGE` build-time environment
  variable.]  [cargo/8758] This variable will be set if the crate
  being built is one the user selected to build, either with `-p`
  or through defaults.
- [You can now use glob patterns when specifying packages &
  targets.][cargo/8752]


Compatibility Notes
-------------------
- [Demoted `i686-unknown-freebsd` from host tier 2 to target tier
  2 support.][78746]
- [Macros that end with a semi-colon are now treated as statements
  even if they expand to nothing.][78376]
- [Rustc will now check for the validity of some built-in attributes
  on enum variants.][77015] Previously such invalid or unused
  attributes could be ignored.
- Leading whitespace is stripped more uniformly in documentation
  comments, which may change behavior. You read [this post about
  the changes][rustdoc-ws-post] for more details.
- [Trait bounds are no longer inferred for associated types.][79904]

Internal Only
-------------
These changes provide no direct user facing benefits, but represent
significant improvements to the internals and overall performance
of rustc and related tools.

- [rustc's internal crates are now compiled using the `initial-exec` Thread
  Local Storage model.][78201]
- [Calculate visibilities once in resolve.][78077]
- [Added `system` to the `llvm-libunwind` bootstrap config option.][77703]
- [Added `--color` for configuring terminal color support to bootstrap.][79004]


[75991]: rust-lang/rust#75991
[78951]: rust-lang/rust#78951
[78848]: rust-lang/rust#78848
[78746]: rust-lang/rust#78746
[78376]: rust-lang/rust#78376
[78228]: rust-lang/rust#78228
[78227]: rust-lang/rust#78227
[78201]: rust-lang/rust#78201
[78109]: rust-lang/rust#78109
[78077]: rust-lang/rust#78077
[77997]: rust-lang/rust#77997
[77703]: rust-lang/rust#77703
[77547]: rust-lang/rust#77547
[77015]: rust-lang/rust#77015
[76199]: rust-lang/rust#76199
[76119]: rust-lang/rust#76119
[75914]: rust-lang/rust#75914
[74989]: rust-lang/rust#74989
[79004]: rust-lang/rust#79004
[78676]: rust-lang/rust#78676
[79904]: rust-lang/rust#79904
[cargo/8864]: rust-lang/cargo#8864
[cargo/8765]: rust-lang/cargo#8765
[cargo/8758]: rust-lang/cargo#8758
[cargo/8752]: rust-lang/cargo#8752
[`slice::select_nth_unstable`]: https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable
[`slice::select_nth_unstable_by`]: https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable_by
[`slice::select_nth_unstable_by_key`]: https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.select_nth_unstable_by_key
[`hint::spin_loop`]: https://doc.rust-lang.org/stable/std/hint/fn.spin_loop.html
[`Poll::is_ready`]: https://doc.rust-lang.org/stable/std/task/enum.Poll.html#method.is_ready
[`Poll::is_pending`]: https://doc.rust-lang.org/stable/std/task/enum.Poll.html#method.is_pending
[rustdoc-ws-post]: https://blog.guillaume-gomez.fr/articles/2020-11-11+New+doc+comment+handling+in+rustdoc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. finished-final-comment-period The final comment period is finished for this PR / Issue. merged-by-bors This PR was explicitly merged by bors. O-Arm Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state O-windows Operating system: Windows relnotes Marks issues that should be documented in the release notes of the next release. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

No rustc or cargo for aarch64-pc-windows-msvc