ntdll: Use local unwinding reimplementations for Unix libraries on ARM64

Currently, unwinding the unix libraries (or full ELF builds) requires having libunwind available.

When starting up a wine environment, an exception of type RPC_S_SERVER_UNAVAILABLE gets thrown - and if libunwind isn't available, this breaks the startup. Thus, currently on ARM64, libunwind is essentially mandatory.

Additionally, at least on ARM, libunwind seems brittle (commits in latest git master breaks the unwinding use cases in Wine, see e.g. https://github.com/libunwind/libunwind/pull/203#issuecomment-984126066.

This MR tries to resolve all of this, by including the preexisting DWARF parser from x86_64 in the aarch64 version too. This bit was mostly quite straightforward.

With these changes, unwinding on ARM64 seems to work fine, even without libunwind.

CC @julliard @rbernon @AndreRH

Edited by Martin Storsjö

Merge request reports

Loading