https://bugs.winehq.org/show_bug.cgi?id=50625
--- Comment #19 from Martin Storsjö martin@martin.st --- Can you clarify what distribution (+version) and architecture configuration of it that you're building on?
The core issue shown in the configure log is this:
configure:16584: checking for unw_step configure:16602: gcc -o conftest -g -O2 -mthumb -mfloat-abi=hard conftest.c
&5
/tmp/cc8aT0B2.o: In function `main': /home/admin/wine-6.22/conftest.c:112: undefined reference to `_ULarm_step' collect2: error: ld returned 1 exit status
On an aarch64 install of Ubuntu 20.04, I've installed the libunwind-dev:armhf package, and I configure my build like this: CC="arm-linux-gnueabihf-gcc" ../wine/configure --host=arm-linux-gnueabihf
With such a build, with Wine 6.22, my current suite of exception handling tests pass.
As your build just runs plain "gcc", I would guess that it's a 32 bit distribution. But that doesn't explain the linking error - it sounds like libunwind is built/packaged differently on that architecture. (Building libunwind from source is quite quick and straightforward though.)
However the testcase you've attached here does even when Wine is correctly configured and built with libunwind, as the __CxxFrameHandler function still isn't implemented. If you'd make a build that is linked against the static CRT (/MT instead of /MD) it should work - I tried building it from the source you provided that way, and then it passes.
I can try to have a look at whether it's feasible to implement that function - but I'm not sure if there are other architecture specific bits in the msvcp140.dll and how well that DLL is supported on non-x86 architectures overall.