diff --git a/library/core/src/ffi/mod.rs b/library/core/src/ffi/mod.rs
index 3627e844222..cbdae2ac766 100644
--- a/library/core/src/ffi/mod.rs
+++ b/library/core/src/ffi/mod.rs
@@ -609,3 +609,13 @@ extern "rust-intrinsic" {
     #[rustc_nounwind]
     fn va_arg<T: sealed_trait::VaArgSafe>(ap: &mut VaListImpl<'_>) -> T;
 }
+
+// Link the MSVC default lib
+#[cfg(all(windows, target_env = "msvc"))]
+#[link(
+    name = "/defaultlib:msvcrt",
+    modifiers = "+verbatim",
+    cfg(not(target_feature = "crt-static"))
+)]
+#[link(name = "/defaultlib:libcmt", modifiers = "+verbatim", cfg(target_feature = "crt-static"))]
+extern "C" {}
diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs
index d2618c8bb2b..154565b6fee 100644
--- a/library/core/src/lib.rs
+++ b/library/core/src/lib.rs
@@ -178,6 +178,7 @@
 #![feature(ip_bits)]
 #![feature(is_ascii_octdigit)]
 #![feature(isqrt)]
+#![feature(link_cfg)]
 #![feature(maybe_uninit_uninit_array)]
 #![feature(non_null_convenience)]
 #![feature(offset_of_enum)]