aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Lin <tony-lin@outlook.com>2019-04-10 11:21:17 +0000
committerTony Lin <tony-lin@outlook.com>2019-04-10 11:21:17 +0000
commit6166c1509a2d137bac94fbf5bd65e888d4696aad (patch)
tree7778c7b3e964c09a56e04b462350af5df118880d
parent8c3e093d0509fb0c7cc325692834fc1583a05390 (diff)
downloadvcpkg-6166c1509a2d137bac94fbf5bd65e888d4696aad.tar.gz
vcpkg-6166c1509a2d137bac94fbf5bd65e888d4696aad.zip
Enable pcre2:arm64-windows
Update sljitConfigInternal.h for ARM64
-rw-r--r--ports/pcre2/fix-arm64-config.patch29
-rw-r--r--ports/pcre2/portfile.cmake2
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}