Skip to content
Snippets Groups Projects
Commit fee6371a authored by Martin Storsjö's avatar Martin Storsjö
Browse files

ci: Disable branch protection for the current Windows/ARM64 builds

Clang does support the flag and gladly generates the instructions
for return address signing, but it doesn't generate matching unwind
info for it.

If a return address is signed, unwinding through it would fail unless
the signing is reversed at the right place. The ARM64 SEH unwind info
format has no public documentation on how to handle return address
signing currently.

This issue isn't noticeable on any current public Windows on ARM64
devices or servers, as the CPUs don't implement the return address
signing instructions (which then are handled as no-ops). However,
binaries with those instructions would fail subtly (seemingly work
fine, but fail whenever unwinding the stack) on newer CPUs.

Therefore, disable it in the CI configuration, as long as that uses
a version of Clang that doesn't generate correct unwind info for this
case.
parent d2b9059d
No related branches found
No related tags found
1 merge request!2662ci: Disable branch protection for the current Windows/ARM64 builds
Pipeline #272266 passed with stage
in 42 minutes and 15 seconds
......@@ -171,6 +171,9 @@ win64-arm-llvm:
variables:
<<: *variables-win64-arm
UWP_EXTRA_BUILD_FLAGS: -u -x -S 0x0A000006
# Clang <= 15 produces incorrect unwind info for code with
# branch protection enabled on Windows.
CONFIGFLAGS: --disable-branch-protection
uwp64-libvlc-llvm:
extends: .win-common
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment