define UNW_AARCH64 aliases conditionally (#84591)
authorVladimir Sadov <vsadov@microsoft.com>
Tue, 11 Apr 2023 18:52:49 +0000 (11:52 -0700)
committerGitHub <noreply@github.com>
Tue, 11 Apr 2023 18:52:49 +0000 (11:52 -0700)
src/coreclr/pal/src/config.h.in
src/coreclr/pal/src/configure.cmake
src/coreclr/pal/src/exception/seh-unwind.cpp

index 50d12de47da1db7a2734ca66bb8a42485e0422a3..8c0d159a82e59e196ede6aeb4279d77a949d4de5 100644 (file)
@@ -67,6 +67,7 @@
 #cmakedefine01 HAVE_SCHED_SETAFFINITY
 #cmakedefine HAVE_UNW_GET_SAVE_LOC
 #cmakedefine HAVE_UNW_GET_ACCESSORS
+#cmakedefine HAVE_UNW_AARCH64_X19
 #cmakedefine01 HAVE_XSWDEV
 #cmakedefine01 HAVE_XSW_USAGE
 #cmakedefine01 HAVE_PUBLIC_XSTATE_STRUCT
index 99c53c3f35e4506ff2bb0f3ddd7f37f4b88c403f..2d8a9eadd0505229f1f08fd8deaa0c3043911035 100644 (file)
@@ -1032,6 +1032,15 @@ int main(int argc, char **argv)
 check_symbol_exists(unw_get_save_loc libunwind.h HAVE_UNW_GET_SAVE_LOC)
 check_symbol_exists(unw_get_accessors libunwind.h HAVE_UNW_GET_ACCESSORS)
 
+check_cxx_source_compiles("
+#include <libunwind.h>
+
+int main(int argc, char **argv)
+{
+    int flag = (int)UNW_AARCH64_X19;
+    return 0;
+}" HAVE_UNW_AARCH64_X19)
+
 if(NOT CLR_CMAKE_USE_SYSTEM_LIBUNWIND)
   list(REMOVE_AT CMAKE_REQUIRED_INCLUDES 0 1)
 endif()
index b3a4ca23726bb206af5e22b8e043999a7d33f981..1a9773f3a8579fae3dbe79eece77b3c503a9c810 100644 (file)
@@ -54,7 +54,7 @@ Abstract:
 
 #endif // HOST_UNIX
 
-#if defined(TARGET_OSX) && defined(HOST_ARM64)
+#if defined(TARGET_OSX) && defined(HOST_ARM64) && !defined(HAVE_UNW_AARCH64_X19)
 // MacOS uses ARM64 instead of AARCH64 to describe these registers
 // Create aliases to reuse more code
 enum