Skip to content

Conversation

@dragonmux
Copy link

In this PR we aim too address the state of Clang-cl (cross-)builds for Windows AArch64. This involves special-casing clang-cl to take extra warnings options that aren't valid for MSVC, and special-casing the MSVC carve-out in configure_cc() of the build.rs.

Clang-cl builds do actually work and produce viable binaries with these tweaks, thus allowing cross-building from Linux for Windows to work once again, something we do for the build and release process for bmputil and particularly as we release AArch64 binaries but do not have AArch64 Windows machines.

There are warnings that are still highlighted by Clang-cl about unsafe buffer accesses, however we feel these are out of scope for getting builds to work at all to start with. As a result, the force warnings into errors logic needs the condition && target.os != WINDOWS added to stop the warnings being fatal when building from a Git clone and so spuriously failing the build.

The build restriction for Windows AArch64 are still in place for MSVC, as it's unknown
what the state of this compiler is, however clang-cl builds just fine and produces working
crate binaries. This allows Windows cross-builds from Linux to work again and produce viable
binaries. The warnings produced highlight some unsafe buffer usage from the native code,
however these are the only notable output.
…rything` to clang(-cl)

C11 and C99 compat warnings just generate useless noise
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants