Closed
Description
High priority tasks
- Either make
kind=static-nobundle
stable, or changekind=static
to behave likekind=static-nobundle
. - Add support for linking the debug CRT.
- Handle linking in a manifest. Need to re-fix Windows manifest embedding. rust#11207
- Support linking to object files, and resource files. Extended linking kinds #1489
- Allow rustc to emit idata sections instead of depending on import libraries. Produce idata content for dll/dylib import on windows rust#30027
- Mechanism for dealing with Structured Exception Handling. Add some mechanism for catching structured exceptions on Windows rust#38963
- Improve handle inheritance when spawning processes. Consider different way of inheriting handles in child processes on Windows rust#38227
- Make
env_clear
actually work.env_clear
does not work on Windows rust#31259 - Stop messing up console handling. Windows / Colors are displayed as codes cargo#4722 WinConsole's tty check is inaccurate Stebalien/term#62
Lower priority tasks
- Improve the quality of PDB debug info. https://github.com/Microsoft/microsoft-pdb
- Support inter-crate
dllimport
properly, or just get rid of thedylib
crate type. Correctly handle dllimport on Windows rust#27438 - Fix library creation so that libraries compiled by
cl
with/GL
can be linked properly. Or just stopkind=static
from bundling. MSVC: support LTCG native libraries in rlibs rust#26003 - Improve the location of metadata for DLLs. Metadata for DLLs should actually go in the LIB import library on Windows rust#29511
- Removed unused import libraries in the
-msvc
distribution.-msvc
distribution has unused import libraries rust#31816 - Support the calling convention for methods, which is different than the calling convention for functions. Need calling convention for stdcall methods (different from functions!) #1342
- Provide an option to choose the target NT version.
- Support targeting drivers.
- Support targeting store apps.
- Deprecate the old makefiles. run-make is still hanging around.
- Use the correct extension for msvc object files. --emit=obj for Windows msvc producing .o instead of .obj rust#37207
- Make cross compilation to Windows, or between Windows architectures easier.
- Make MinGW static libraries use the correct extension. Windows: Static libraries should end with .a not .lib when using MinGW/GCC rust#43749
- Make
Command
work better. Command::spawn has weird rules for finding binaries on Windows rust#37519 - Automatic long path handling. Automatically insert
\\?\
where needed on Windows rust#32689 - Add way to re-export C symbols. https://github.com/rust-lang/rust/issues/36342
Completed tasks
- Support linking to system static libraries. Implement kind="static-nobundle" (RFC 1717) rust#38426
- Add support for statically linking the CRT. Can't statically link MSVC runtime libc#290 Choosing which CRT to link to #1684 Enable customizing the linkage of a platform's C runtime #1721
- Provide an option to choose the subsystem. Windows subsystem support #1665
- Support FFI
dllimport
properly. Use #[link(kind)] to fix imports from native libs on Windows #1717 - Variable and type information in PDB debug info.
- Support
dllexport
. Add support for DllExport on Windows rust#7196 - Emit PDB debug info on msvc. Emit windows-specific debug info rust#19533
- Get rid of the dependency on
libgcc
and use native/llvm unwinding stuff. - Teach
librustc_back
how to invokelink.exe
. - Add code to figure out where MSVC and the Windows SDK is installed.
- Upgrade the Rust build system to be able to build code using the MSVC toolchain rather than the GNU toolchain.
- Add code so that the Rust standard library can be built using only APIs available on XP or Vista. Rethink supporting Windows XP rust#12842
- Do all IO using WinAPI rather than libc, since libc is just a layer of overhead on top of WinAPI anyway.
- Fix the naming of static libraries. Windows: Static libraries should end with .lib not .a when using the MSVC ABI install rust#29508
- Eliminate dependency on gcc for building compiler-rt for msvc targets.
- Implement unwinding MSVC: Implement 32-bit Unwinding rust#25869
- Make it easy to install multiple targets. Handled by rustup.rs.
- Upload Rust docs for Windows to the website, so it isn't just linux docs up there. std::os::windows missing on http://doc.rust-lang.org/nightly/std/os/ rust#24658
- Provide fallback implementations to missing APIs on XP/Vista so that code will still run correctly and not panic. Investigate fallback implementations on Windows XP rust#26654
- Make ASLR work on mingw. use ASLR on Windows rust#16514 use high entropy ASLR on 64-bit Windows rust#16593
Wishlist
- Use
lld
for cross compilation to Windows with a new pure Rust target without any CRT bits at all. migrate to the LLVM toolchain rust#9367
Related links
- Make
Command
behave better. Command::spawn has weird rules for finding binaries on Windows rust#37519