Repository: rust
Issue: run-make: audit the `ignore-{windows,msvc,windows-msvc}` tests
Labels: A-testsuite,O-windows,T-compiler,C-bug,A-run-make

There are several `ignore-msvc`/`ignore-windows`/`ignore-windows-msvc` Makefile and rmake.rs (tests that are ported to pure Rust files) run-make tests that have those `ignore-*`s because of several common challenges:

1. Can't figure out how to build the proper e.g. import lib for dynamic lib to satisfy link.exe.
2. Can't figure out the msvc build invocations to generate the desired output artifacts.
3. Debug info or object symbol differences versus mingw or linux or apple.
4. Weird appearance of unexpected symbols or lack of expected symbols.

It would be great and super helpful if Windows experts could take a look at them, and see if some of the `ignore-*`s can be resolved or otherwise how we can expand the tests to cover msvc as well, or have proper reasons why they must be `ignore-*`'d. The test suite is quite tricky to run on Windows, see <https://rustc-dev-guide.rust-lang.org/tests/running.html?highlight=run-make#windows>, seems to require msys2 + make, binutils, diffutils for the remaining Makefiles.

`ignore-msvc`:

- [x] tests/run-make/used/rmake.rs (https://github.com/rust-lang/rust/pull/128603)
- [ ] tests/run-make/no-alloc-shim/Makefile
- [ ] tests/run-make/staticlib-dylib-linkage/rmake.rs (https://github.com/rust-lang/rust/pull/128823)
- [x] tests/run-make/no-duplicate-libs/rmake.rs (https://github.com/rust-lang/rust/pull/128649)
- [x] tests/run-make/link-dedup/rmake.rs (https://github.com/rust-lang/rust/pull/128638)
- [x] tests/run-make/rust-lld/rmake.rs (https://github.com/rust-lang/rust/pull/128656)
- [x] tests/run-make/link-args-order/rmake.rs (https://github.com/rust-lang/rust/pull/128647)
- [x] tests/run-make/zero-extend-abi-param-passing/rmake.rs (https://github.com/rust-lang/rust/pull/128649)

`ignore-windows-msvc`:

- [ ] tests/run-make/redundant-libs/rmake.rs (https://github.com/rust-lang/rust/pull/128804)
- [x] tests/run-make/symbol-visibility/rmake.rs (https://github.com/rust-lang/rust/pull/128607)
- [ ] tests/run-make/extern-fn-reachable/Makefile
- [ ] tests/run-make/native-link-modifier-bundle/Makefile

`ignore-windows`:

- [ ] tests/run-make/naked-symbol-visibility/rmake.rs
- [ ] tests/run-make/dep-info/Makefile
- [ ] tests/run-make/short-ice/rmake.rs
- [ ] tests/run-make/incr-add-rust-src-component/Makefile (symlink)
- [ ] tests/run-make/extern-fn-reachable/Makefile
- [ ] tests/run-make/dep-info/Makefile
- [ ] tests/run-make/dep-info-spaces/Makefile
- [ ] tests/run-make/lto-avoid-object-duplication/rmake.rs
- [ ] tests/run-make/translation/Makefile (symlink)
- [ ] tests/run-make/native-link-modifier-bundle/Makefile
- [ ] tests/run-make/textrel-on-minimal-lib/rmake.rs
- [ ] tests/run-make/remap-path-prefix-dwarf/Makefile
- [ ] tests/run-make/libs-through-symlinks/Makefile (symlink)
- [ ] tests/run-make/redundant-libs/Makefile
- [ ] tests/run-make/reproducible-build-2/rmake.rs (the symlink part might be possible with `needs-symlink`, unsure about reproducible paths)
- [ ] tests/run-make/fmt-write-bloat/rmake.rs (`no_std` test) (https://github.com/rust-lang/rust/pull/128807)