Fix mini_core printf linking on windows

Link against legacy_stdio_definitions on windows which provides printf as a linkable symbol.
This commit is contained in:
Afonso Bordado 2022-08-01 09:57:43 +01:00
parent 46fa744e69
commit 8f5330e28c

View File

@ -575,11 +575,19 @@ pub mod intrinsics {
}
pub mod libc {
// With the new Universal CRT, msvc has switched to all the printf functions being inline wrapper
// functions. legacy_stdio_definitions.lib which provides the printf wrapper functions as normal
// symbols to link against.
#[cfg_attr(unix, link(name = "c"))]
#[cfg_attr(target_env="msvc", link(name="legacy_stdio_definitions"))]
extern "C" {
pub fn printf(format: *const i8, ...) -> i32;
}
#[cfg_attr(unix, link(name = "c"))]
#[cfg_attr(target_env = "msvc", link(name = "msvcrt"))]
extern "C" {
pub fn puts(s: *const i8) -> i32;
pub fn printf(format: *const i8, ...) -> i32;
pub fn malloc(size: usize) -> *mut u8;
pub fn free(ptr: *mut u8);
pub fn memcpy(dst: *mut u8, src: *const u8, size: usize);