[win][arm64] Disable MSVC Linker 'Arm Hazard' warning#140758
[win][arm64] Disable MSVC Linker 'Arm Hazard' warning#140758bors merged 1 commit intorust-lang:masterfrom
Conversation
|
These commits modify compiler targets. |
jieyouxu
left a comment
There was a problem hiding this comment.
undocumented
/arm64hazardfreeflag.
Incredible. Feel free to r=me with or without the commit nit.
compiler/rustc_target/src/spec/targets/aarch64_pc_windows_msvc.rs
Outdated
Show resolved
Hide resolved
|
r? jieyouxu |
|
@bors r=jieyouxu rollup |
|
@dpaoliello: 🔑 Insufficient privileges: Not in reviewers |
|
@dpaoliello: 🔑 Insufficient privileges: not in try users |
|
Oops |
[win][arm64] Disable MSVC Linker 'Arm Hazard' warning While trying to get the aarch64-msvc build working correctly (rust-lang#140136), I observed the following test failure: From <rust-lang#140136 (comment)> ``` = note: main.main.d17f5fbe6225cf88-cgu.0.rcgu.o : fatal error LNK1322: cannot avoid potential ARM hazard (Cortex-A53 MPCore processor bug #843419) in section 0x57; please consider using compiler option /Gy if it was not used ``` This is warning of a code sequence that triggers a bug in Cortex-A53 processors: <https://developer.arm.com/documentation/epm048406/latest> However, since Windows 10 isn't supported on the Cortex-A53, this warning is not required, so it can be suppressed using the undocumented `/arm64hazardfree` flag.
Rollup of 15 pull requests Successful merges: - rust-lang#138736 (Sanitizers target modificators) - rust-lang#140260 (Only prefer param-env candidates if they remain non-global after norm) - rust-lang#140523 (Better error message for late/early lifetime param mismatch) - rust-lang#140579 (Remove estebank from automated review assignment) - rust-lang#140641 (detect additional uses of opaques after writeback) - rust-lang#140711 (Do not discard constraints on overflow if there was candidate ambiguity) - rust-lang#140716 (Improve `-Zremap-path-scope` tests with dependency) - rust-lang#140755 ([win][arm64] Disable various DebugInfo tests that don't work on Arm64 Windows) - rust-lang#140756 ([arm64] Pointer auth test should link with C static library statically) - rust-lang#140758 ([win][arm64] Disable MSVC Linker 'Arm Hazard' warning) - rust-lang#140759 ([win][arm64] Disable std::fs tests that require symlinks) - rust-lang#140762 (rustdoc-json: Remove newlines from attributes) - rust-lang#140764 (style: Never break within a nullary function call `func()` or a unit literal `()`) - rust-lang#140769 (Add `DefPathData::OpaqueLifetime` to avoid conflicts for remapped opaque lifetimes) - rust-lang#140773 (triagebot: Better message for changes to `tests/rustdoc-json`) r? `@ghost` `@rustbot` modify labels: rollup
[win][arm64] Disable MSVC Linker 'Arm Hazard' warning While trying to get the aarch64-msvc build working correctly (rust-lang#140136), I observed the following test failure: From <rust-lang#140136 (comment)> ``` = note: main.main.d17f5fbe6225cf88-cgu.0.rcgu.o : fatal error LNK1322: cannot avoid potential ARM hazard (Cortex-A53 MPCore processor bug #843419) in section 0x57; please consider using compiler option /Gy if it was not used ``` This is warning of a code sequence that triggers a bug in Cortex-A53 processors: <https://developer.arm.com/documentation/epm048406/latest> However, since Windows 10 isn't supported on the Cortex-A53, this warning is not required, so it can be suppressed using the undocumented `/arm64hazardfree` flag.
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#140716 (Improve `-Zremap-path-scope` tests with dependency) - rust-lang#140732 (make it possible to run in-tree rustfmt with `x run rustfmt`) - rust-lang#140736 (trait selection: check `&` before suggest remove deref) - rust-lang#140755 ([win][arm64] Disable various DebugInfo tests that don't work on Arm64 Windows) - rust-lang#140756 ([arm64] Pointer auth test should link with C static library statically) - rust-lang#140758 ([win][arm64] Disable MSVC Linker 'Arm Hazard' warning) - rust-lang#140759 ([win][arm64] Disable std::fs tests that require symlinks) r? `@ghost` `@rustbot` modify labels: rollup
…iaskrgr Rollup of 5 pull requests Successful merges: - rust-lang#140736 (trait selection: check `&` before suggest remove deref) - rust-lang#140755 ([win][arm64] Disable various DebugInfo tests that don't work on Arm64 Windows) - rust-lang#140756 ([arm64] Pointer auth test should link with C static library statically) - rust-lang#140758 ([win][arm64] Disable MSVC Linker 'Arm Hazard' warning) - rust-lang#140759 ([win][arm64] Disable std::fs tests that require symlinks) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#140758 - dpaoliello:armhazard, r=jieyouxu [win][arm64] Disable MSVC Linker 'Arm Hazard' warning While trying to get the aarch64-msvc build working correctly (rust-lang#140136), I observed the following test failure: From <rust-lang#140136 (comment)> ``` = note: main.main.d17f5fbe6225cf88-cgu.0.rcgu.o : fatal error LNK1322: cannot avoid potential ARM hazard (Cortex-A53 MPCore processor bug #843419) in section 0x57; please consider using compiler option /Gy if it was not used ``` This is warning of a code sequence that triggers a bug in Cortex-A53 processors: <https://developer.arm.com/documentation/epm048406/latest> However, since Windows 10 isn't supported on the Cortex-A53, this warning is not required, so it can be suppressed using the undocumented `/arm64hazardfree` flag.
|
We enable rust-lld on windows-arm64 using I think this PR might've broken rust-lld, because now we're seeing: |
Ugh, we might need to try |
|
Reproduced the issue locally and confirmed that using a dash fixes it. Fix: #140977 |
[win] Use a dash instead of slash for linker to avoid breaking lld rust-lang#140758 added the `/arm64hazardfree` linker arg for aarch64-pc-windows-msvc, unfortunately this breaks linking with `lld` as it 1) doesn't understand the arguments and 2) assumes that unknown args that start with `/` are input files. Fix is to use a dash for the arg: `-arm64hazardfree` r? `@wesleywiser`
[win] Use a dash instead of slash for linker to avoid breaking lld rust-lang#140758 added the `/arm64hazardfree` linker arg for aarch64-pc-windows-msvc, unfortunately this breaks linking with `lld` as it 1) doesn't understand the arguments and 2) assumes that unknown args that start with `/` are input files. Fix is to use a dash for the arg: `-arm64hazardfree` r? `@wesleywiser`
[win] Use a dash instead of slash for linker to avoid breaking lld rust-lang#140758 added the `/arm64hazardfree` linker arg for aarch64-pc-windows-msvc, unfortunately this breaks linking with `lld` as it 1) doesn't understand the arguments and 2) assumes that unknown args that start with `/` are input files. Fix is to use a dash for the arg: `-arm64hazardfree` r? `@wesleywiser`
[win][arm64] Remove 'Arm64 Hazard' undocumented MSVC option and instead disable problematic test PR rust-lang#140758 added the undocumented `/arm64hazardfree` MSVC linker flag to work around a test failure where LLVM generated code that would trip a hazard in an outdated ARM processor. Adding this flag caused issues with LLD, as it doesn't recognize it. Rethinking the issue, using the undocumented flag seems like the incorrect solution: there's no guarantee that the flag won't be removed in the future, or change its meaning. Instead, I've disabled the problematic test for Arm64 Windows and have filed a bug with the MSVC team to have the check removed: <https://developercommunity.microsoft.com/t/Remove-checking-for-and-fixing-Cortex-A/10905134> This PR supersedes rust-lang#140977 r? `@jieyouxu`
[win][arm64] Remove 'Arm64 Hazard' undocumented MSVC option and instead disable problematic test PR rust-lang#140758 added the undocumented `/arm64hazardfree` MSVC linker flag to work around a test failure where LLVM generated code that would trip a hazard in an outdated ARM processor. Adding this flag caused issues with LLD, as it doesn't recognize it. Rethinking the issue, using the undocumented flag seems like the incorrect solution: there's no guarantee that the flag won't be removed in the future, or change its meaning. Instead, I've disabled the problematic test for Arm64 Windows and have filed a bug with the MSVC team to have the check removed: <https://developercommunity.microsoft.com/t/Remove-checking-for-and-fixing-Cortex-A/10905134> This PR supersedes rust-lang#140977 r? ``@jieyouxu``
[win][arm64] Remove 'Arm64 Hazard' undocumented MSVC option and instead disable problematic test PR rust-lang#140758 added the undocumented `/arm64hazardfree` MSVC linker flag to work around a test failure where LLVM generated code that would trip a hazard in an outdated ARM processor. Adding this flag caused issues with LLD, as it doesn't recognize it. Rethinking the issue, using the undocumented flag seems like the incorrect solution: there's no guarantee that the flag won't be removed in the future, or change its meaning. Instead, I've disabled the problematic test for Arm64 Windows and have filed a bug with the MSVC team to have the check removed: <https://developercommunity.microsoft.com/t/Remove-checking-for-and-fixing-Cortex-A/10905134> This PR supersedes rust-lang#140977 r? ```@jieyouxu```
Rollup merge of rust-lang#141045 - dpaoliello:noarmhazard, r=jieyouxu [win][arm64] Remove 'Arm64 Hazard' undocumented MSVC option and instead disable problematic test PR rust-lang#140758 added the undocumented `/arm64hazardfree` MSVC linker flag to work around a test failure where LLVM generated code that would trip a hazard in an outdated ARM processor. Adding this flag caused issues with LLD, as it doesn't recognize it. Rethinking the issue, using the undocumented flag seems like the incorrect solution: there's no guarantee that the flag won't be removed in the future, or change its meaning. Instead, I've disabled the problematic test for Arm64 Windows and have filed a bug with the MSVC team to have the check removed: <https://developercommunity.microsoft.com/t/Remove-checking-for-and-fixing-Cortex-A/10905134> This PR supersedes rust-lang#140977 r? ```@jieyouxu```
While trying to get the aarch64-msvc build working correctly (#140136), I observed the following test failure:
From #140136 (comment)
This is warning of a code sequence that triggers a bug in Cortex-A53 processors: https://developer.arm.com/documentation/epm048406/latest
However, since Windows 10 isn't supported on the Cortex-A53, this warning is not required, so it can be suppressed using the undocumented
/arm64hazardfreeflag.