Windows on arm always uses thumb mode, and doesn't have most of the mechanisms that are used in e.g. ELF for distinguishing between arm and thumb.
Details
Diff Detail
Event Timeline
Seems reasonable. Just out of curiosity, is this restriction enforced in some way? E.g., if I manually do a bx to an arm address, will the system kill me?
No, such simple cases do work (or at least they used to), but the linker doesn't really have any means to e.g. set the x bit in bl/blx instructions properly. And allegedly, in earlier versions, the kernel didn't switch modes correctly when entering the kernel, so entering the kernel from arm code, would try to execute the kernel's code in arm mode, effectively crashing the system (https://reviews.llvm.org/D43005#1018582 for reference). I think that aspect is fixed these days, but it's pretty much unsupported on most levels where the interworking requires some support from the tools or frameworks.
This is failing for me with:
(lldb) disassemble -b -n entry error: Unable to find Disassembler plug-in for the 'armv7' architecture.
I assume that's because I run with LLVM_TARGETS_TO_BUILD:STRING=X86;AArch64 in my CMake configuration. Do we have a way to make this test condition on the ARM target being enabled or do we have the ARM target as a hard requirement for the test suit?
Oops, sorry about that.
Do we have a way to make this test condition on the ARM target being enabled or do we have the ARM target as a hard requirement for the test suit?
The ARM target should definitely not be a hard requirement. Is the test skipped for you if you add a # REQUIRES: arm line?