From 5b4873a7597648998285c191a7a7a05fdec15ad4 Mon Sep 17 00:00:00 2001 From: Simonas Kazlauskas Date: Sat, 2 Oct 2021 22:10:00 +0300 Subject: [PATCH] Run the #85441 regression test on MSVC only On MinGW toolchains the various features (such as function sections) necessary to eliminate dead function references are disabled due to various bugs. This means that the windows sockets library will most likely remain linked to any mingw toolchain built program that also utilizes libstd. That said, I made an attempt to also enable `function-sections` and `--gc-sections` during my experiments, but the symbol references remained, sadly. --- library/std/src/sys/windows/net.rs | 6 +++--- src/test/run-make/issue-85441/Makefile | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/std/src/sys/windows/net.rs b/library/std/src/sys/windows/net.rs index 84a5a389e0d..9c631e7e51c 100644 --- a/library/std/src/sys/windows/net.rs +++ b/library/std/src/sys/windows/net.rs @@ -29,12 +29,12 @@ pub mod netc { pub struct Socket(OwnedSocket); -static WSA: SyncOnceCell i32> = SyncOnceCell::new(); +static WSA_CLEANUP: SyncOnceCell i32> = SyncOnceCell::new(); /// Checks whether the Windows socket interface has been started already, and /// if not, starts it. pub fn init() { - let _ = WSA.get_or_init(|| unsafe { + let _ = WSA_CLEANUP.get_or_init(|| unsafe { let mut data: c::WSADATA = mem::zeroed(); let ret = c::WSAStartup( 0x202, // version 2.2 @@ -51,7 +51,7 @@ pub fn init() { pub fn cleanup() { // only perform cleanup if network functionality was actually initialized - if let Some(cleanup) = WSA.get() { + if let Some(cleanup) = WSA_CLEANUP.get() { unsafe { cleanup(); } diff --git a/src/test/run-make/issue-85441/Makefile b/src/test/run-make/issue-85441/Makefile index 0de956d3aee..c7ae708c173 100644 --- a/src/test/run-make/issue-85441/Makefile +++ b/src/test/run-make/issue-85441/Makefile @@ -1,4 +1,4 @@ -# only-windows +# only-windows-msvc -include ../../run-make-fulldeps/tools.mk