Properly null terminate strings in mono_dwarf_escape_path (). Fixes #13050.
Share byref arguments in runtime invoke signatures with int&. Remove the restrictions on sharing runtime invoke wrappers of valuetype instance methods, its not longer needed.
Remove the async hacks from the gsharedvt code, gsharedvt can now handle async methods, and the infrastructure methods they use.
Make all Mini back ends use mono-hwcap for CPU feature detection.

Also some related cleanup as a result of this.
Check for sys/auxv.h and only use it if available.
Remove the JIT-ed CPUID hack from mono-hwcap-x86.

A proper workaround for the 32-bit PIC issue exists: Using xchg to
unclobber EBX which is used by the compiler. This means we can just
use inline assembly to issue the instruction, eliminating the hack
where we JIT-compiled a function to do the CPUID.

This patch also makes it so that we use MSVC's __cpuid intrinsic
on both 32-bit and 64-bit x86 since it's available on both.
Remove now-unneeded mono_aot_only guard around mono_hwcap_init ().

We no longer use the code manager in any of the hwcap implementations,
so we don't need to disable the hwcap infrastructure in full-aot mode.
Add a MONO_VERBOSE_HWCAP environment variable.

This causes detected hardware features to be printed to stdout.
configure: Remove obsolete FIXME comment.
PowerPC build fix in mono-hwcap-ppc.
Use GCC atomics when USE_GCC_ATOMIC_OPS is defined.

We still prefer Windows.h functions when compiling for Windows, and
MSVC intrinsics for memory barriers when compiling with MSVC.
Enable GCC atomics on x86 and amd64.
Enable GCC atomics on ppc and ppc64.
Enable GCC atomics on arm.
Enable GCC atomics on mips.