diff options
| -rw-r--r-- | ports/pcre2/fix-arm64-config.patch | 29 | ||||
| -rw-r--r-- | ports/pcre2/portfile.cmake | 2 |
2 files changed, 30 insertions, 1 deletions
diff --git a/ports/pcre2/fix-arm64-config.patch b/ports/pcre2/fix-arm64-config.patch new file mode 100644 index 000000000..bba95718a --- /dev/null +++ b/ports/pcre2/fix-arm64-config.patch @@ -0,0 +1,29 @@ +diff --git a/src/sljit/sljitConfigInternal.h b/src/sljit/sljitConfigInternal.h
+index cc0810f..964afe8 100644
+--- a/src/sljit/sljitConfigInternal.h
++++ b/src/sljit/sljitConfigInternal.h
+@@ -151,6 +151,8 @@
+ #define SLJIT_CONFIG_X86_64 1
+ #elif defined(_ARM_)
+ #define SLJIT_CONFIG_ARM_V5 1
++#elif defined(_M_ARM64)
++#define SLJIT_CONFIG_ARM_64 1
+ #else
+ #define SLJIT_CONFIG_X86_32 1
+ #endif
+@@ -324,9 +326,15 @@
+
+ #else
+
++#if defined(__linux__)
+ /* Calls __ARM_NR_cacheflush on ARM-Linux. */
+ #define SLJIT_CACHE_FLUSH(from, to) \
+ __clear_cache((char*)(from), (char*)(to))
++#elif(_WIN32)
++#pragma comment(lib, "kernel32.lib")
++#define SLJIT_CACHE_FLUSH(from, to) \
++ FlushInstructionCache(GetCurrentProcess(), (void*)(from), (uintptr_t)(to - from));
++#endif
+
+ #endif
+
diff --git a/ports/pcre2/portfile.cmake b/ports/pcre2/portfile.cmake index e2f5a702a..82b9014d1 100644 --- a/ports/pcre2/portfile.cmake +++ b/ports/pcre2/portfile.cmake @@ -10,7 +10,7 @@ vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE ${ARCHIVE} PATCHES fix-space.patch -) + fix-arm64-config.patch) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} |
