Skip to content

MinGW builds are broken when unwinding currently #10289

@alexcrichton

Description

@alexcrichton

First discovered in bytecodealliance/wasmtime-go#241 which is one of the main users of MinGW builds (AFAIK Go doesn't have MSVC integration). I've bisected through Github Actions (couldn't do so locally) and discovered the following:

  • Wasmtime is currently built with the github actions windows-2022 runner which uses gcc 12.2.0 from MinGW/MSYS2/something.
  • When these precompiled artifacts are used in wasmtime-go in tests test can fail with exception 0xc0000028 which stands for STATUS_BAD_STACK (aka resurrection of STATUS_BAD_STACK on Windows on trap #1967)
  • Bisection showed the following properties:

So it looks like our workaround of -D__USE_MINGW_SETJMP_NON_SEH, used to fix another bug in MinGW gcc is perhaps triggering some other bug in MinGW which is seemingly fixed with more recent GCC versions.

Overall I personally wish we could just drop this target and not worry about it, but I'm unaware of how to integrate with Go on Windows any other way...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions