std: Add Win64 support
Some extern blobs are duplicated without "stdcall" abi, since Win64 does not use any calling convention. (Giving any abi to them causes llvm producing wrong bytecode.)
This commit is contained in:
@@ -252,6 +252,7 @@ mod dl {
|
||||
FreeLibrary(handle); ()
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "x86")]
|
||||
#[link_name = "kernel32"]
|
||||
extern "stdcall" {
|
||||
fn SetLastError(error: u32);
|
||||
@@ -261,4 +262,15 @@ mod dl {
|
||||
fn GetProcAddress(handle: *libc::c_void, name: *libc::c_char) -> *libc::c_void;
|
||||
fn FreeLibrary(handle: *libc::c_void);
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
#[link_name = "kernel32"]
|
||||
extern {
|
||||
fn SetLastError(error: u32);
|
||||
fn LoadLibraryW(name: *u16) -> *libc::c_void;
|
||||
fn GetModuleHandleExW(dwFlags: libc::DWORD, name: *u16,
|
||||
handle: **libc::c_void) -> *libc::c_void;
|
||||
fn GetProcAddress(handle: *libc::c_void, name: *libc::c_char) -> *libc::c_void;
|
||||
fn FreeLibrary(handle: *libc::c_void);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user