From 20e8f918446d9d864add8f17c82e7344c471f098 Mon Sep 17 00:00:00 2001 From: Billy O'Neal Date: Sat, 16 May 2026 01:42:57 -0700 Subject: [PATCH] [rpclib] Avoid stdext::checked_array_iterator. (#51802) --- .../avoid-stdext-checked-array-iterator.diff | 13 +++++++ ports/rpclib/fix-arm64-windows.diff | 37 +++++++++++++++++++ ports/rpclib/portfile.cmake | 3 ++ ports/rpclib/vcpkg.json | 2 +- scripts/ci.baseline.txt | 2 - scripts/ci.feature.baseline.txt | 1 - versions/baseline.json | 2 +- versions/r-/rpclib.json | 5 +++ 8 files changed, 60 insertions(+), 5 deletions(-) create mode 100644 ports/rpclib/avoid-stdext-checked-array-iterator.diff create mode 100644 ports/rpclib/fix-arm64-windows.diff diff --git a/ports/rpclib/avoid-stdext-checked-array-iterator.diff b/ports/rpclib/avoid-stdext-checked-array-iterator.diff new file mode 100644 index 0000000000..fbff2b928b --- /dev/null +++ b/ports/rpclib/avoid-stdext-checked-array-iterator.diff @@ -0,0 +1,13 @@ +diff --git a/dependencies/include/format.h b/dependencies/include/format.h +index 3683993..e88b214 100644 +--- a/dependencies/include/format.h ++++ b/dependencies/include/format.h +@@ -53,7 +53,7 @@ typedef long long intmax_t; + # include + #endif + +-#ifdef _SECURE_SCL ++#if defined(_SECURE_SCL) && defined(_MSC_VER) && _MSC_VER < 1951 + # define FMT_SECURE_SCL _SECURE_SCL + #else + # define FMT_SECURE_SCL 0 diff --git a/ports/rpclib/fix-arm64-windows.diff b/ports/rpclib/fix-arm64-windows.diff new file mode 100644 index 0000000000..64d36807ae --- /dev/null +++ b/ports/rpclib/fix-arm64-windows.diff @@ -0,0 +1,37 @@ +diff --git a/include/rpc/msgpack/predef/architecture/arm.h b/include/rpc/msgpack/predef/architecture/arm.h +index 20a1e6b..82f8a9b 100644 +--- a/include/rpc/msgpack/predef/architecture/arm.h ++++ b/include/rpc/msgpack/predef/architecture/arm.h +@@ -27,11 +27,13 @@ http://www.boost.org/LICENSE_1_0.txt) + [[`__TARGET_ARCH_ARM`] [__predef_detection__]] + [[`__TARGET_ARCH_THUMB`] [__predef_detection__]] + [[`_M_ARM`] [__predef_detection__]] ++ [[`_M_ARM64`] [__predef_detection__]] + + [[`__arm64`] [8.0.0]] + [[`__TARGET_ARCH_ARM`] [V.0.0]] + [[`__TARGET_ARCH_THUMB`] [V.0.0]] + [[`_M_ARM`] [V.0.0]] ++ [[`_M_ARM64`] [V.0.0]] + ] + */ + +@@ -39,7 +41,7 @@ http://www.boost.org/LICENSE_1_0.txt) + + #if defined(__arm__) || defined(__arm64) || defined(__thumb__) || \ + defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \ +- defined(_M_ARM) ++ defined(_M_ARM) || defined(_M_ARM64) + # undef MSGPACK_ARCH_ARM + # if !defined(MSGPACK_ARCH_ARM) && defined(__arm64) + # define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(8,0,0) +@@ -53,6 +55,9 @@ http://www.boost.org/LICENSE_1_0.txt) + # if !defined(MSGPACK_ARCH_ARM) && defined(_M_ARM) + # define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(_M_ARM,0,0) + # endif ++# if !defined(MSGPACK_ARCH_ARM) && defined(_M_ARM64) ++# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(_M_ARM64,0,0) ++# endif + # if !defined(MSGPACK_ARCH_ARM) + # define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER_AVAILABLE + # endif diff --git a/ports/rpclib/portfile.cmake b/ports/rpclib/portfile.cmake index f0d8ae2288..7048867fbe 100644 --- a/ports/rpclib/portfile.cmake +++ b/ports/rpclib/portfile.cmake @@ -6,6 +6,9 @@ vcpkg_from_github( REF v2.3.0 SHA512 9C65AE5D000CD66E39498667DC826A4E8A2C28EB4138CFFE3AA09D5DDC22575551B9FA6CE9D951343213B9583F947899CB18B58130AEAEE36DAB5881EA496272 HEAD_REF master + PATCHES + avoid-stdext-checked-array-iterator.diff # https://github.com/rpclib/rpclib/pull/325 + fix-arm64-windows.diff # https://github.com/rpclib/rpclib/pull/326 ) vcpkg_cmake_configure( diff --git a/ports/rpclib/vcpkg.json b/ports/rpclib/vcpkg.json index 0223a67b07..e0ed23e0d8 100644 --- a/ports/rpclib/vcpkg.json +++ b/ports/rpclib/vcpkg.json @@ -1,7 +1,7 @@ { "name": "rpclib", "version-semver": "2.3.0", - "port-version": 2, + "port-version": 3, "description": "a RPC library for C++, providing both a client and server implementation. It is built using modern C++14.", "homepage": "https://github.com/rpclib/rpclib", "dependencies": [ diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index d0519b1e87..839efa3bb1 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1055,8 +1055,6 @@ rmqcpp:x64-windows-static-md=fail rmqcpp:x64-windows-static=fail rmqcpp:x64-windows=fail rmqcpp:x86-windows=fail -rpclib:arm64-windows-static-md=fail -rpclib:arm64-windows=fail rtmidi:arm-neon-android=fail rtmidi:arm64-android=fail rtmidi:x64-android=fail diff --git a/scripts/ci.feature.baseline.txt b/scripts/ci.feature.baseline.txt index f6ab1c8c26..32ba0c0303 100644 --- a/scripts/ci.feature.baseline.txt +++ b/scripts/ci.feature.baseline.txt @@ -1281,7 +1281,6 @@ ripper37-libbase[wx]:arm64-linux=cascade ripper37-libbase[wx](android)=cascade robotraconteur:arm64-linux=cascade robotraconteur-companion:arm64-linux=cascade -rpclib:arm64-windows=fail rsocket:arm64-linux=cascade rsocket:arm64-windows=cascade rsocket:x86-windows=cascade diff --git a/versions/baseline.json b/versions/baseline.json index 0e4e46460f..6e51f325dc 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -8866,7 +8866,7 @@ }, "rpclib": { "baseline": "2.3.0", - "port-version": 2 + "port-version": 3 }, "rply": { "baseline": "1.1.4", diff --git a/versions/r-/rpclib.json b/versions/r-/rpclib.json index a675c04fb5..fe4cfde971 100644 --- a/versions/r-/rpclib.json +++ b/versions/r-/rpclib.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "2681af7a439d2e7455b991b376e7dd529108b9df", + "version-semver": "2.3.0", + "port-version": 3 + }, { "git-tree": "0bf42157905ee1aa4686ab978e6a17f650f78434", "version-semver": "2.3.0",