summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTastaturtaste <joshua.moellers@gmx.net>2022-08-04 01:10:32 +0200
committerTastaturtaste <joshua.moellers@gmx.net>2022-08-04 01:10:32 +0200
commit2ec8995d01e8190d56220552538234215fa3d293 (patch)
tree1e5033112c76ea087005b2563c8e072ddbd789d3
parent7d55e3846db1b4af5ed3ca0bde9e71ac3b82fd67 (diff)
downloadrust-libc-2ec8995d01e8190d56220552538234215fa3d293.tar.gz
Fix for https://github.com/rust-lang/libc/issues/2860
-rw-r--r--src/windows/mod.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/windows/mod.rs b/src/windows/mod.rs
index 08cba4edd0..acb0de9895 100644
--- a/src/windows/mod.rs
+++ b/src/windows/mod.rs
@@ -277,6 +277,16 @@ impl ::Clone for fpos_t {
}
}
+// Special handling for all print and scan type functions because of https://github.com/rust-lang/libc/issues/2860
+#[cfg_attr(
+ all(windows, target_env = "msvc"),
+ link(name = "legacy_stdio_definitions")
+)]
+extern "C" {
+ pub fn printf(format: *const c_char, ...) -> ::c_int;
+ pub fn fprintf(stream: *mut FILE, format: *const c_char, ...) -> ::c_int;
+}
+
extern "C" {
pub fn isalnum(c: c_int) -> c_int;
pub fn isalpha(c: c_int) -> c_int;
@@ -319,8 +329,6 @@ extern "C" {
pub fn feof(stream: *mut FILE) -> c_int;
pub fn ferror(stream: *mut FILE) -> c_int;
pub fn perror(s: *const c_char);
- pub fn printf(format: *const c_char, ...) -> ::c_int;
- pub fn fprintf(stream: *mut FILE, format: *const c_char, ...) -> ::c_int;
pub fn atoi(s: *const c_char) -> c_int;
pub fn strtod(s: *const c_char, endp: *mut *mut c_char) -> c_double;
pub fn strtof(s: *const c_char, endp: *mut *mut c_char) -> c_float;