- Linking a .lib that provides dynamic symbols and not bundling it into the .rlib.
dllimportis applied to externs, and the .lib is passed along to every linker invocation that uses that .rlib. If turned into a .dll, the symbols from the .lib are not re-exported. Currently corresponds tokind=dylib. - Linking a .lib that provides static symbols and not bundling it into the .rlib.
dllimportis not applied to externs, and the .lib is only passed to the first immediate linker invocation. If turned into a .dll, the symbols from the .lib are re-exported withdllexport. - Linking a .lib that provides dynamic symbols and bundling it into the .rlib.
dllimportis applied to externs, but the .lib is not passed to the linker. If turned into a .dll, the symbols from the .lib are re-exported withdllexportbut still pointing at the original .dll, not the Rust .dll. - Linking a .lib that provides static symbols and bundling it into the .rlib.
dllimportis not applied to the externs, and the .lib is not passed to the linker. If turned into a .dll, the symbols from the .lib are re-exported withdllexport. Currently corresponds tokind=static.
What I would really like is a kind that corresponds to #2.