1
Fork 0

Document the mingw -lmsvcrt hack better

This commit is contained in:
Segev Finer 2018-01-17 01:18:04 +02:00 committed by GitHub
parent bfde33f2fb
commit 1606341697
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -59,7 +59,15 @@ pub fn opts() -> TargetOptions {
"-lmingw32".to_string(), "-lmingw32".to_string(),
"-lgcc".to_string(), // alas, mingw* libraries above depend on libgcc "-lgcc".to_string(), // alas, mingw* libraries above depend on libgcc
"-lmsvcrt".to_string(), "-lmsvcrt".to_string(),
"-lmsvcrt".to_string(), // mingw is insane...? // mingw's msvcrt is a weird hybrid import library and static library.
// And it seems that the linker fails to use import symbols from msvcrt
// that are required from functions in msvcrt in certain cases. For example
// `_fmode` that is used by an implementation of `__p__fmode` in x86_64.
// Listing the library twice seems to fix that, and seems to also be done
// by mingw's gcc (Though not sure if it's done on purpose, or by mistake).
//
// See https://github.com/rust-lang/rust/pull/47483
"-lmsvcrt".to_string(),
"-luser32".to_string(), "-luser32".to_string(),
"-lkernel32".to_string(), "-lkernel32".to_string(),
]); ]);