mirror of
https://github.com/rust-lang/rust.git
synced 2025-01-18 02:34:37 +00:00
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.
This commit is contained in:
parent
b7d2b465b9
commit
5b4873a759
@ -29,12 +29,12 @@ pub mod netc {
|
||||
|
||||
pub struct Socket(OwnedSocket);
|
||||
|
||||
static WSA: SyncOnceCell<unsafe extern "system" fn() -> i32> = SyncOnceCell::new();
|
||||
static WSA_CLEANUP: SyncOnceCell<unsafe extern "system" fn() -> 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();
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
# only-windows
|
||||
# only-windows-msvc
|
||||
|
||||
-include ../../run-make-fulldeps/tools.mk
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user