You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit moves the `*-pc-windows-gnu` targets (e.g. the MinGW targets) to
use SEH-based unwinding instead of libunwind-based unwinding. There are a number
of ramifications on these targets as a result:
* Binary distributions of the standard library are no longer tied to a
particular compiler toolchain. The MinGW toolchains typically ship with either
SEH, Dwarf, or SjLj based unwinding and are binary-incompatible, but with SEH
unwinding we'll be able to link with any of the toolchains.
* The GNU implementation is now much closer to the MSVC implementation, reducing
the amount of duplicated code we'll have to maintain (yay!).
* Due to the loss of the libunwind stack unwinder the libbacktrace library is no
longer used on Windows. The same unwinding code for MSVC is now used for GNU
as well, and unfortunately this has empirically led to worse stack traces in
the past. In theory, though, this should be fixed for both MSVC and GNU at the
same time!
* Due to the lack of a need for frame unwind info registration, the `rsend.o`
and `rsbegin.o` startup object files are no longer built. Additionally the
`crt2.o` and `dllcrt2.o` files are no longer distributed. It's assumed that
the linker in use will inject these as usual. The `-nostdlib` flag is no
longer passed to the linker to indicate this.
This change also opened up the possibility to reorganize a few modules, so the
following changes were also made:
* The `custom_unwind_resume` option and all support code was removed from trans
as this is no longer necessary.
* The `sys_common::unwind` module was refactored to have the platform-specific
portions live in `sys::unwind`.
* A similar refactoring was applied to backtrace writing (just shuffling some
files around).
* Documentation was updated in shuffled modules to reflect the current state of
affairs.
0 commit comments