Add DLL and ARM64 builds to MinGW workflow#274
Conversation
|
Thanks @tobiasherzke. We dug into the clangarm64 unit-test segfault to decide whether it's safe to skip. Summary of what we found (reproduced on a throwaway diagnostic workflow running the Root cause: an upstream LLVM-MinGW aarch64 A symbolized lldb backtrace shows the crash on the first async socket operation, when an outlet starts serving: asio stores its per-thread call stack in a Partial mitigation: forcing native Windows TLS with Conclusion: disabling the tests on clangarm64 is justified — they're catching a toolchain miscompilation, not a library defect — and it's consistent with your report that the DLL works fine as an openMHA dependency (real-app usage doesn't stress the same rapid cross-DLL init/cancellation path the suite hammers). We're parking the build-matrix decision for now rather than merging immediately, but wanted to record this so the test-skip is a documented, understood choice. When we pick this back up, the suggestion would be to keep the clangarm64 artifacts with tests skipped (ideally with a comment pointing here + a TODO to revisit as the toolchain matures), and consider adding |
Extension of existing Msys2 MinGW workflow to also build liblsl as a DLL, and to also build for the Windows ARM64 target.
For openMHA, I would need a MinGW-compiled liblsl as DLL rather than as static library.
This pull request is divided into two commits:
The first commit extends the existing MinGW build matrix to support DLL builds and the Msys2 "clangarm64" target.
The second commit extends the same workflow in order to add these artifacts to releases.
I had to disable running the unit tests for the "clangarm64" target, as the tests would cause segfaults. Using the compiled clangarm64 liblsl DLL as a dependency for openMHA on Windows ARM64, however, worked fine for me.