← Back to context

Comment by zozbot234

2 years ago

Could this be upstreamed to Rust proper, at least as a no_std (core+alloc only) target (given the known quirks in std support)? The requirements for the lowest level of support ("tier 3") seem like they would allow this.

Without std there is nothing to do, i586-pc-windows-msvc/gnu already work just fine - the PE format hasn't changed, really. Just don't use APIs that don't exist on the OS version you're targeting and you're good to go!

  • Does it still require the hack for exception handling? I remember there being a missing symbol from Windows NT, for SEH or something.

    • Panic unwinding needs VS2005 libraries, which has a minimum supported OS version of 98. So if that's your target OS it'll work.

      For 95 you'll need to go down to VS2003, which breaks unwinding (but panic = abort works fine).

      If you want unwinding on 95 you need to patch out the IsDebuggerPresent function import from the 2005 msvc runtime still, yeah.