From 25712afd94404a6204845f9fbb38dcbf1ba4b882 Mon Sep 17 00:00:00 2001 From: Chris Denton Date: Fri, 30 Apr 2021 16:24:49 +0100 Subject: [PATCH] Add `#[link]` attributes to dll imports This avoids using jmp stubs when calling functions exported from a dll. --- library/std/src/sys/windows/c.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/library/std/src/sys/windows/c.rs b/library/std/src/sys/windows/c.rs index 7ea6048e94a8..57885c9bcf92 100644 --- a/library/std/src/sys/windows/c.rs +++ b/library/std/src/sys/windows/c.rs @@ -688,6 +688,7 @@ if #[cfg(not(target_vendor = "uwp"))] { pub const TOKEN_READ: DWORD = 0x20008; + #[link(name="kernel32")] extern "system" { #[link_name = "SystemFunction036"] pub fn RtlGenRandom(RandomBuffer: *mut u8, RandomBufferLength: ULONG) -> BOOLEAN; @@ -744,6 +745,7 @@ if #[cfg(target_vendor = "uwp")] { pub Directory: BOOLEAN, } + #[link(name="kernel32")] extern "system" { pub fn GetFileInformationByHandleEx(hFile: HANDLE, fileInfoClass: FILE_INFO_BY_HANDLE_CLASS, @@ -756,6 +758,7 @@ if #[cfg(target_vendor = "uwp")] { } // Shared between Desktop & UWP +#[link(name = "kernel32")] extern "system" { pub fn WSAStartup(wVersionRequested: WORD, lpWSAData: LPWSADATA) -> c_int; pub fn WSACleanup() -> c_int;