| win_64 |
From 3a15d27b0b7930391d3f6cfafad374e3b590ee63 Mon Sep 17 00:00:00 2001
From: Julien Jerphanion
Date: Mon, 1 Jun 2026 08:20:13 +0200
Subject: [PATCH 3/4] Rebase patches
Signed-off-by: Julien Jerphanion
---
.../patches/0001-windows-ssl-lib-names.patch | 4 +-
recipe/patches/0002-fix-win-setup-cmds.patch | 12 +-
.../0003-Link-against-grpc-and-abseil.patch | 10 +-
.../0004-force-protoc-executable.patch | 2 +-
...inkages-of-grpc-_unsecure-as-private.patch | 6 +-
...-set-_DLL_EXPORTS-when-building-and-.patch | 12 +-
...ing-linkages-for-gRPC_BUILD_TESTS-ON.patch | 24 ++--
...-add-enable_testing-so-tests-get-run.patch | 2 +-
...nd-utf8_range-use-protobuf-s-version.patch | 127 +++++++++++++++---
...ildtests_cxx-target-to-end2end-tests.patch | 95 +++++++------
.../0011-build-grpcio-tools-from-source.patch | 61 +++++++--
...ol-explosion-with-autogenerated-expo.patch | 6 +-
...e-GRPC_DLL-instances-where-necessary.patch | 46 +++----
.../0014-use-protobuf-s-libutf8_range.patch | 4 +-
.../patches/0015-disable-grpc-_unsecure.patch | 42 +++---
...alize_absl-into-separate-cython-modu.patch | 14 +-
...c-registration-across-shared-librari.patch | 12 +-
17 files changed, 311 insertions(+), 168 deletions(-)
diff --git a/recipe/patches/0001-windows-ssl-lib-names.patch b/recipe/patches/0001-windows-ssl-lib-names.patch
index 67fa1212..b259341f 100644
--- a/recipe/patches/0001-windows-ssl-lib-names.patch
+++ b/recipe/patches/0001-windows-ssl-lib-names.patch
@@ -11,10 +11,10 @@ Co-Authored-By: Marius van Niekerk
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/setup.py b/setup.py
-index f02499a2a3..44b54a1472 100644
+index 28860ec..7f46c44 100644
--- a/setup.py
+++ b/setup.py
-@@ -380,10 +380,10 @@ if "win32" in sys.platform:
+@@ -381,10 +381,10 @@ if "win32" in sys.platform:
"ws2_32",
)
if BUILD_WITH_SYSTEM_OPENSSL:
diff --git a/recipe/patches/0002-fix-win-setup-cmds.patch b/recipe/patches/0002-fix-win-setup-cmds.patch
index b68ee504..a57bbf9c 100644
--- a/recipe/patches/0002-fix-win-setup-cmds.patch
+++ b/recipe/patches/0002-fix-win-setup-cmds.patch
@@ -12,10 +12,10 @@ Co-Authored-By: H. Vetinari
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/setup.py b/setup.py
-index 44b54a1472..1a3f29bc26 100644
+index 7f46c44..d8e9bc2 100644
--- a/setup.py
+++ b/setup.py
-@@ -203,6 +203,9 @@ ENABLE_DOCUMENTATION_BUILD = _env_bool_value(
+@@ -201,6 +201,9 @@ ENABLE_DOCUMENTATION_BUILD = _env_bool_value(
def check_linker_need_libatomic():
@@ -25,13 +25,13 @@ index 44b54a1472..1a3f29bc26 100644
"""Test if linker on system needs libatomic."""
code_test = (
b"#include \n"
-@@ -266,9 +269,6 @@ if EXTRA_ENV_COMPILE_ARGS is None:
+@@ -264,9 +267,6 @@ if EXTRA_ENV_COMPILE_ARGS is None:
# MSVC by defaults uses C++14 and C89 so both needs to be configured.
EXTRA_ENV_COMPILE_ARGS += " /std:c++17"
EXTRA_ENV_COMPILE_ARGS += " /std:c11"
- # We need to statically link the C++ Runtime, only the C runtime is
- # available dynamically
- EXTRA_ENV_COMPILE_ARGS += " /MT"
- elif "linux" in sys.platform:
- # GCC by defaults uses C17 so only C++17 needs to be specified.
- EXTRA_ENV_COMPILE_ARGS += " -std=c++17"
+ # Required to build upb from protobuf 33.x
+ # https://github.com/grpc/grpc/issues/41951
+ EXTRA_ENV_COMPILE_ARGS += " /Zc:preprocessor"
diff --git a/recipe/patches/0003-Link-against-grpc-and-abseil.patch b/recipe/patches/0003-Link-against-grpc-and-abseil.patch
index f66dcd3e..5f5591b9 100644
--- a/recipe/patches/0003-Link-against-grpc-and-abseil.patch
+++ b/recipe/patches/0003-Link-against-grpc-and-abseil.patch
@@ -9,10 +9,10 @@ Co-Authored-By: H. Vetinari
1 file changed, 19 insertions(+), 5 deletions(-)
diff --git a/setup.py b/setup.py
-index 1a3f29bc26..1ea1d60c71 100644
+index d8e9bc2..dbd69dc 100644
--- a/setup.py
+++ b/setup.py
-@@ -174,6 +174,8 @@ BUILD_WITH_STATIC_LIBSTDCXX = _env_bool_value(
+@@ -172,6 +172,8 @@ BUILD_WITH_STATIC_LIBSTDCXX = _env_bool_value(
"GRPC_PYTHON_BUILD_WITH_STATIC_LIBSTDCXX", "False"
)
@@ -21,7 +21,7 @@ index 1a3f29bc26..1ea1d60c71 100644
# For local development use only: This skips building gRPC Core and its
# dependencies, including protobuf and boringssl. This allows "incremental"
# compilation by first building gRPC Core using make, then building only the
-@@ -391,10 +393,20 @@ if BUILD_WITH_SYSTEM_CARES:
+@@ -392,10 +394,20 @@ if BUILD_WITH_SYSTEM_CARES:
if BUILD_WITH_SYSTEM_RE2:
EXTENSION_LIBRARIES += ("re2",)
if BUILD_WITH_SYSTEM_ABSL:
@@ -46,7 +46,7 @@ index 1a3f29bc26..1ea1d60c71 100644
DEFINE_MACROS = (("_WIN32_WINNT", 0x600),)
asm_files = []
-@@ -506,6 +518,9 @@ def cython_extensions_and_necessity():
+@@ -507,6 +519,9 @@ def cython_extensions_and_necessity():
prefix + "libgrpc.a",
]
core_c_files = []
@@ -56,7 +56,7 @@ index 1a3f29bc26..1ea1d60c71 100644
else:
core_c_files = list(CORE_C_FILES)
extra_objects = []
-@@ -517,7 +532,6 @@ def cython_extensions_and_necessity():
+@@ -518,7 +533,6 @@ def cython_extensions_and_necessity():
+ list(GRPCIO_CC_SRCS)
+ core_c_files
+ asm_files
diff --git a/recipe/patches/0004-force-protoc-executable.patch b/recipe/patches/0004-force-protoc-executable.patch
index 177c1de0..471f99ac 100644
--- a/recipe/patches/0004-force-protoc-executable.patch
+++ b/recipe/patches/0004-force-protoc-executable.patch
@@ -8,7 +8,7 @@ Subject: [PATCH 04/17] force protoc executable
1 file changed, 2 insertions(+), 15 deletions(-)
diff --git a/cmake/protobuf.cmake b/cmake/protobuf.cmake
-index ad80ca6e46..7bae8d95bd 100644
+index ad80ca6..7bae8d9 100644
--- a/cmake/protobuf.cmake
+++ b/cmake/protobuf.cmake
@@ -70,21 +70,8 @@ elseif(gRPC_PROTOBUF_PROVIDER STREQUAL "package")
diff --git a/recipe/patches/0005-mark-linkages-of-grpc-_unsecure-as-private.patch b/recipe/patches/0005-mark-linkages-of-grpc-_unsecure-as-private.patch
index 7233b442..e810066c 100644
--- a/recipe/patches/0005-mark-linkages-of-grpc-_unsecure-as-private.patch
+++ b/recipe/patches/0005-mark-linkages-of-grpc-_unsecure-as-private.patch
@@ -13,10 +13,10 @@ Co-Authored-By: Mark Harfouche
1 file changed, 58 insertions(+), 48 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e36e2fe59c..8980faabe5 100644
+index c72bd40..cd53f12 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -3143,34 +3143,39 @@ target_include_directories(grpc
+@@ -3173,34 +3173,39 @@ target_include_directories(grpc
${_gRPC_ZLIB_INCLUDE_DIR}
)
target_link_libraries(grpc
@@ -82,7 +82,7 @@ index e36e2fe59c..8980faabe5 100644
endif()
foreach(_hdr
-@@ -3882,31 +3887,36 @@ target_include_directories(grpc_unsecure
+@@ -3914,31 +3919,36 @@ target_include_directories(grpc_unsecure
${_gRPC_ZLIB_INCLUDE_DIR}
)
target_link_libraries(grpc_unsecure
diff --git a/recipe/patches/0006-for-main-targets-set-_DLL_EXPORTS-when-building-and-.patch b/recipe/patches/0006-for-main-targets-set-_DLL_EXPORTS-when-building-and-.patch
index cec303a3..c3f6afd2 100644
--- a/recipe/patches/0006-for-main-targets-set-_DLL_EXPORTS-when-building-and-.patch
+++ b/recipe/patches/0006-for-main-targets-set-_DLL_EXPORTS-when-building-and-.patch
@@ -9,10 +9,10 @@ Subject: [PATCH 06/17] for main targets, set *_DLL_EXPORTS when building and
1 file changed, 10 insertions(+), 26 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8980faabe5..7404369196 100644
+index cd53f12..9c800b1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -2097,10 +2097,8 @@ if(WIN32 AND MSVC)
+@@ -2118,10 +2118,8 @@ if(WIN32 AND MSVC)
COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
)
if(BUILD_SHARED_LIBS)
@@ -25,7 +25,7 @@ index 8980faabe5..7404369196 100644
endif()
if(gRPC_INSTALL)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gpr.pdb
-@@ -3116,11 +3114,8 @@ if(WIN32 AND MSVC)
+@@ -3146,11 +3144,8 @@ if(WIN32 AND MSVC)
COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
)
if(BUILD_SHARED_LIBS)
@@ -39,7 +39,7 @@ index 8980faabe5..7404369196 100644
endif()
if(gRPC_INSTALL)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc.pdb
-@@ -3860,11 +3855,8 @@ if(WIN32 AND MSVC)
+@@ -3892,11 +3887,8 @@ if(WIN32 AND MSVC)
COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
)
if(BUILD_SHARED_LIBS)
@@ -53,7 +53,7 @@ index 8980faabe5..7404369196 100644
endif()
if(gRPC_INSTALL)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc_unsecure.pdb
-@@ -4881,12 +4873,8 @@ if(WIN32 AND MSVC)
+@@ -5007,12 +4999,8 @@ if(WIN32 AND MSVC)
COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
)
if(BUILD_SHARED_LIBS)
@@ -68,7 +68,7 @@ index 8980faabe5..7404369196 100644
endif()
if(gRPC_INSTALL)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++.pdb
-@@ -5623,12 +5611,8 @@ if(WIN32 AND MSVC)
+@@ -5755,12 +5743,8 @@ if(WIN32 AND MSVC)
COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
)
if(BUILD_SHARED_LIBS)
diff --git a/recipe/patches/0007-add-missing-linkages-for-gRPC_BUILD_TESTS-ON.patch b/recipe/patches/0007-add-missing-linkages-for-gRPC_BUILD_TESTS-ON.patch
index 829065c4..d0435bdb 100644
--- a/recipe/patches/0007-add-missing-linkages-for-gRPC_BUILD_TESTS-ON.patch
+++ b/recipe/patches/0007-add-missing-linkages-for-gRPC_BUILD_TESTS-ON.patch
@@ -14,10 +14,10 @@ For some tests, re2 and c-ares have just been forgotten as dependencies.
1 file changed, 11 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7404369196..14dbbbd712 100644
+index 9c800b1..b9ee9cc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -3305,6 +3305,7 @@ target_link_libraries(grpc_test_util
+@@ -3336,6 +3336,7 @@ target_link_libraries(grpc_test_util
${_gRPC_ALLTARGETS_LIBRARIES}
absl::failure_signal_handler
absl::stacktrace
@@ -25,7 +25,7 @@ index 7404369196..14dbbbd712 100644
absl::symbolize
absl::log_initialize
grpc
-@@ -3379,6 +3380,7 @@ target_link_libraries(grpc_test_util_unsecure
+@@ -3410,6 +3411,7 @@ target_link_libraries(grpc_test_util_unsecure
${_gRPC_ALLTARGETS_LIBRARIES}
absl::failure_signal_handler
absl::stacktrace
@@ -33,7 +33,7 @@ index 7404369196..14dbbbd712 100644
absl::symbolize
absl::log_initialize
grpc_unsecure
-@@ -8560,6 +8562,7 @@ target_include_directories(authorization_matchers_test
+@@ -8697,6 +8699,7 @@ target_include_directories(authorization_matchers_test
)
target_link_libraries(authorization_matchers_test
@@ -41,7 +41,7 @@ index 7404369196..14dbbbd712 100644
${_gRPC_ALLTARGETS_LIBRARIES}
gtest
grpc_test_util
-@@ -18950,6 +18953,7 @@ target_include_directories(grpc_authorization_engine_test
+@@ -19207,6 +19210,7 @@ target_include_directories(grpc_authorization_engine_test
)
target_link_libraries(grpc_authorization_engine_test
@@ -49,7 +49,7 @@ index 7404369196..14dbbbd712 100644
${_gRPC_ALLTARGETS_LIBRARIES}
gtest
grpc_test_util
-@@ -21219,6 +21223,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
+@@ -21476,6 +21480,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
)
target_link_libraries(httpcli_test
@@ -57,7 +57,7 @@ index 7404369196..14dbbbd712 100644
${_gRPC_ALLTARGETS_LIBRARIES}
gtest
grpc++_test_util
-@@ -24525,6 +24530,7 @@ target_include_directories(matchers_test
+@@ -24783,6 +24788,7 @@ target_include_directories(matchers_test
)
target_link_libraries(matchers_test
@@ -65,7 +65,7 @@ index 7404369196..14dbbbd712 100644
${_gRPC_ALLTARGETS_LIBRARIES}
gtest
grpc_test_util
-@@ -30013,6 +30019,7 @@ target_include_directories(resolve_address_using_ares_resolver_test
+@@ -30271,6 +30277,7 @@ target_include_directories(resolve_address_using_ares_resolver_test
)
target_link_libraries(resolve_address_using_ares_resolver_test
@@ -73,7 +73,7 @@ index 7404369196..14dbbbd712 100644
${_gRPC_ALLTARGETS_LIBRARIES}
gtest
grpc_test_util
-@@ -30101,6 +30108,7 @@ target_include_directories(resolve_address_using_native_resolver_test
+@@ -30359,6 +30366,7 @@ target_include_directories(resolve_address_using_native_resolver_test
)
target_link_libraries(resolve_address_using_native_resolver_test
@@ -81,7 +81,7 @@ index 7404369196..14dbbbd712 100644
${_gRPC_ALLTARGETS_LIBRARIES}
gtest
grpc_test_util
-@@ -41093,6 +41101,7 @@ target_include_directories(xds_common_types_test
+@@ -41393,6 +41401,7 @@ target_include_directories(xds_common_types_test
)
target_link_libraries(xds_common_types_test
@@ -89,7 +89,7 @@ index 7404369196..14dbbbd712 100644
${_gRPC_ALLTARGETS_LIBRARIES}
gtest
absl::fixed_array
-@@ -41759,6 +41768,7 @@ target_include_directories(xds_credentials_test
+@@ -42622,6 +42631,7 @@ target_include_directories(xds_credentials_test
)
target_link_libraries(xds_credentials_test
@@ -97,7 +97,7 @@ index 7404369196..14dbbbd712 100644
${_gRPC_ALLTARGETS_LIBRARIES}
gtest
grpc_test_util
-@@ -46930,6 +46940,7 @@ target_include_directories(xds_listener_resource_type_test
+@@ -47809,6 +47819,7 @@ target_include_directories(xds_listener_resource_type_test
)
target_link_libraries(xds_listener_resource_type_test
diff --git a/recipe/patches/0008-add-enable_testing-so-tests-get-run.patch b/recipe/patches/0008-add-enable_testing-so-tests-get-run.patch
index 4bb7a4d8..016059bc 100644
--- a/recipe/patches/0008-add-enable_testing-so-tests-get-run.patch
+++ b/recipe/patches/0008-add-enable_testing-so-tests-get-run.patch
@@ -8,7 +8,7 @@ Subject: [PATCH 08/17] add enable_testing so tests get run
1 file changed, 4 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 14dbbbd712..70ea3bf4e3 100644
+index b9ee9cc..df0b7af 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,6 +51,10 @@ option(gRPC_BUILD_TESTS "Build tests" OFF)
diff --git a/recipe/patches/0009-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch b/recipe/patches/0009-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch
index 2d88124c..76275d77 100644
--- a/recipe/patches/0009-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch
+++ b/recipe/patches/0009-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch
@@ -9,7 +9,7 @@ Subject: [PATCH 09/17] unvendor upb and utf8_range, use protobuf's version
2 files changed, 16 insertions(+), 684 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 70ea3bf4e3..baaf005bf6 100644
+index df0b7af..b8e930b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -354,11 +354,15 @@ else()
@@ -29,7 +29,7 @@ index 70ea3bf4e3..baaf005bf6 100644
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX)
find_library(LIBRT rt)
if(LIBRT)
-@@ -3146,8 +3150,6 @@ target_link_libraries(grpc
+@@ -3176,8 +3180,6 @@ target_link_libraries(grpc
PRIVATE ${_gRPC_ALLTARGETS_LIBRARIES}
# vendored libs
PRIVATE ${_gRPC_ADDRESS_SORTING_LIBRARIES}
@@ -38,7 +38,7 @@ index 70ea3bf4e3..baaf005bf6 100644
# external dependencies used within grpc
PRIVATE ${_gRPC_CARES_LIBRARIES}
PRIVATE ${_gRPC_RE2_LIBRARIES}
-@@ -3889,7 +3891,6 @@ target_link_libraries(grpc_unsecure
+@@ -3921,7 +3923,6 @@ target_link_libraries(grpc_unsecure
PRIVATE ${_gRPC_ALLTARGETS_LIBRARIES}
# vendored libs
PRIVATE ${_gRPC_ADDRESS_SORTING_LIBRARIES}
@@ -46,7 +46,7 @@ index 70ea3bf4e3..baaf005bf6 100644
# external dependencies used within grpc
PRIVATE ${_gRPC_ZLIB_LIBRARIES}
PRIVATE ${_gRPC_CARES_LIBRARIES}
-@@ -4058,672 +4059,6 @@ target_link_libraries(gtest
+@@ -4091,763 +4092,6 @@ target_link_libraries(gtest
endif()
@@ -65,6 +65,9 @@ index 70ea3bf4e3..baaf005bf6 100644
- set_target_properties(upb_base_lib PROPERTIES COMPILE_PDB_NAME "upb_base_lib"
- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
- )
+- target_compile_options(upb_base_lib PRIVATE
+- /Zc:preprocessor
+- )
- if(gRPC_INSTALL)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_base_lib.pdb
- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
@@ -101,6 +104,60 @@ index 70ea3bf4e3..baaf005bf6 100644
-endif()
-
-
+-add_library(upb_descriptor_lib
+- src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
+-)
+-
+-target_compile_features(upb_descriptor_lib PUBLIC cxx_std_17)
+-
+-set_target_properties(upb_descriptor_lib PROPERTIES
+- VERSION ${gRPC_CORE_VERSION}
+- SOVERSION ${gRPC_CORE_SOVERSION}
+-)
+-
+-if(WIN32 AND MSVC)
+- set_target_properties(upb_descriptor_lib PROPERTIES COMPILE_PDB_NAME "upb_descriptor_lib"
+- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
+- )
+- target_compile_options(upb_descriptor_lib PRIVATE
+- /Zc:preprocessor
+- )
+- if(gRPC_INSTALL)
+- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_descriptor_lib.pdb
+- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
+- )
+- endif()
+-endif()
+-
+-target_include_directories(upb_descriptor_lib
+- PUBLIC $ $
+- PRIVATE
+- ${CMAKE_CURRENT_SOURCE_DIR}
+- ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR}
+- ${_gRPC_RE2_INCLUDE_DIR}
+- ${_gRPC_SSL_INCLUDE_DIR}
+- ${_gRPC_UPB_GENERATED_DIR}
+- ${_gRPC_UPB_GRPC_GENERATED_DIR}
+- ${_gRPC_UPB_INCLUDE_DIR}
+- ${_gRPC_XXHASH_INCLUDE_DIR}
+- ${_gRPC_ZLIB_INCLUDE_DIR}
+-)
+-target_link_libraries(upb_descriptor_lib
+- ${_gRPC_ALLTARGETS_LIBRARIES}
+-)
+-
+-
+-
+-if(gRPC_INSTALL)
+- install(TARGETS upb_descriptor_lib EXPORT gRPCTargets
+- RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
+- BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
+- LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
+- ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
+- )
+-endif()
+-
+-
-add_library(upb_hash_lib
- third_party/upb/upb/hash/common.c
-)
@@ -116,6 +173,9 @@ index 70ea3bf4e3..baaf005bf6 100644
- set_target_properties(upb_hash_lib PROPERTIES COMPILE_PDB_NAME "upb_hash_lib"
- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
- )
+- target_compile_options(upb_hash_lib PRIVATE
+- /Zc:preprocessor
+- )
- if(gRPC_INSTALL)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_hash_lib.pdb
- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
@@ -170,6 +230,9 @@ index 70ea3bf4e3..baaf005bf6 100644
- set_target_properties(upb_json_lib PROPERTIES COMPILE_PDB_NAME "upb_json_lib"
- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
- )
+- target_compile_options(upb_json_lib PRIVATE
+- /Zc:preprocessor
+- )
- if(gRPC_INSTALL)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_json_lib.pdb
- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
@@ -226,6 +289,9 @@ index 70ea3bf4e3..baaf005bf6 100644
- set_target_properties(upb_lex_lib PROPERTIES COMPILE_PDB_NAME "upb_lex_lib"
- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
- )
+- target_compile_options(upb_lex_lib PRIVATE
+- /Zc:preprocessor
+- )
- if(gRPC_INSTALL)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_lex_lib.pdb
- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
@@ -278,6 +344,9 @@ index 70ea3bf4e3..baaf005bf6 100644
- set_target_properties(upb_mem_lib PROPERTIES COMPILE_PDB_NAME "upb_mem_lib"
- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
- )
+- target_compile_options(upb_mem_lib PRIVATE
+- /Zc:preprocessor
+- )
- if(gRPC_INSTALL)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_mem_lib.pdb
- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
@@ -336,6 +405,9 @@ index 70ea3bf4e3..baaf005bf6 100644
- set_target_properties(upb_message_lib PROPERTIES COMPILE_PDB_NAME "upb_message_lib"
- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
- )
+- target_compile_options(upb_message_lib PRIVATE
+- /Zc:preprocessor
+- )
- if(gRPC_INSTALL)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_message_lib.pdb
- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
@@ -379,6 +451,9 @@ index 70ea3bf4e3..baaf005bf6 100644
- third_party/upb/upb/mini_descriptor/internal/base92.c
- third_party/upb/upb/mini_descriptor/internal/encode.c
- third_party/upb/upb/mini_descriptor/link.c
+- third_party/upb/upb/wire/decode_fast/select.c
+- third_party/upb/upb/wire/eps_copy_input_stream.c
+- third_party/upb/upb/wire/reader.c
-)
-
-target_compile_features(upb_mini_descriptor_lib PUBLIC cxx_std_17)
@@ -392,6 +467,9 @@ index 70ea3bf4e3..baaf005bf6 100644
- set_target_properties(upb_mini_descriptor_lib PROPERTIES COMPILE_PDB_NAME "upb_mini_descriptor_lib"
- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
- )
+- target_compile_options(upb_mini_descriptor_lib PRIVATE
+- /Zc:preprocessor
+- )
- if(gRPC_INSTALL)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_mini_descriptor_lib.pdb
- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
@@ -415,6 +493,7 @@ index 70ea3bf4e3..baaf005bf6 100644
-target_link_libraries(upb_mini_descriptor_lib
- ${_gRPC_ALLTARGETS_LIBRARIES}
- upb_mini_table_lib
+- absl::strings
-)
-
-
@@ -446,6 +525,9 @@ index 70ea3bf4e3..baaf005bf6 100644
- set_target_properties(upb_mini_table_lib PROPERTIES COMPILE_PDB_NAME "upb_mini_table_lib"
- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
- )
+- target_compile_options(upb_mini_table_lib PRIVATE
+- /Zc:preprocessor
+- )
- if(gRPC_INSTALL)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_mini_table_lib.pdb
- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
@@ -484,7 +566,6 @@ index 70ea3bf4e3..baaf005bf6 100644
-
-
-add_library(upb_reflection_lib
-- src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c
- third_party/upb/upb/message/copy.c
- third_party/upb/upb/message/merge.c
- third_party/upb/upb/reflection/def_pool.c
@@ -517,6 +598,9 @@ index 70ea3bf4e3..baaf005bf6 100644
- set_target_properties(upb_reflection_lib PROPERTIES COMPILE_PDB_NAME "upb_reflection_lib"
- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
- )
+- target_compile_options(upb_reflection_lib PRIVATE
+- /Zc:preprocessor
+- )
- if(gRPC_INSTALL)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_reflection_lib.pdb
- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
@@ -540,6 +624,7 @@ index 70ea3bf4e3..baaf005bf6 100644
-target_link_libraries(upb_reflection_lib
- ${_gRPC_ALLTARGETS_LIBRARIES}
- upb_mini_descriptor_lib
+- upb_descriptor_lib
- upb_wire_lib
-)
-
@@ -571,6 +656,9 @@ index 70ea3bf4e3..baaf005bf6 100644
- set_target_properties(upb_textformat_lib PROPERTIES COMPILE_PDB_NAME "upb_textformat_lib"
- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
- )
+- target_compile_options(upb_textformat_lib PRIVATE
+- /Zc:preprocessor
+- )
- if(gRPC_INSTALL)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_textformat_lib.pdb
- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
@@ -614,7 +702,7 @@ index 70ea3bf4e3..baaf005bf6 100644
- third_party/upb/upb/wire/decode.c
- third_party/upb/upb/wire/encode.c
- third_party/upb/upb/wire/eps_copy_input_stream.c
-- third_party/upb/upb/wire/internal/decode_fast.c
+- third_party/upb/upb/wire/internal/decoder.c
- third_party/upb/upb/wire/reader.c
-)
-
@@ -629,6 +717,9 @@ index 70ea3bf4e3..baaf005bf6 100644
- set_target_properties(upb_wire_lib PROPERTIES COMPILE_PDB_NAME "upb_wire_lib"
- COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
- )
+- target_compile_options(upb_wire_lib PRIVATE
+- /Zc:preprocessor
+- )
- if(gRPC_INSTALL)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb_wire_lib.pdb
- DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
@@ -719,7 +810,7 @@ index 70ea3bf4e3..baaf005bf6 100644
if(gRPC_BUILD_TESTS)
-@@ -6224,7 +5559,6 @@ target_include_directories(grpc_authorization_provider
+@@ -6361,7 +5605,6 @@ target_include_directories(grpc_authorization_provider
)
target_link_libraries(grpc_authorization_provider
${_gRPC_ALLTARGETS_LIBRARIES}
@@ -727,62 +818,62 @@ index 70ea3bf4e3..baaf005bf6 100644
${_gRPC_RE2_LIBRARIES}
${_gRPC_ZLIB_LIBRARIES}
absl::no_destructor
-@@ -54046,8 +53380,8 @@ generate_pkgconfig(
+@@ -54925,8 +54168,8 @@ generate_pkgconfig(
"${gRPC_CORE_VERSION}"
"absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr"
"libcares openssl re2 zlib"
- "-lgrpc"
-- "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib"
+- "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_descriptor_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib"
+ "-lgrpc -lupb"
+ "-laddress_sorting"
"grpc.pc")
# grpc_unsecure .pc file
-@@ -54057,8 +53391,8 @@ generate_pkgconfig(
+@@ -54936,8 +54179,8 @@ generate_pkgconfig(
"${gRPC_CORE_VERSION}"
"absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr"
"libcares zlib"
- "-lgrpc_unsecure"
-- "-laddress_sorting -lupb_textformat_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib"
+- "-laddress_sorting -lupb_textformat_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_descriptor_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib"
+ "-lgrpc_unsecure -lupb"
+ "-laddress_sorting"
"grpc_unsecure.pc")
# grpc++ .pc file
-@@ -54068,8 +53402,8 @@ generate_pkgconfig(
+@@ -54947,8 +54190,8 @@ generate_pkgconfig(
"${gRPC_CPP_VERSION}"
"absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_dynamic_annotations absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_layout absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_prefetch absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_strings_internal absl_synchronization absl_time absl_type_traits absl_utility gpr grpc"
"libcares openssl re2 zlib"
- "-lgrpc++"
-- "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib"
+- "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_descriptor_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib"
+ "-lgrpc++ -lupb"
+ "-laddress_sorting"
"grpc++.pc")
# grpc++_unsecure .pc file
-@@ -54079,8 +53413,8 @@ generate_pkgconfig(
+@@ -54958,8 +54201,8 @@ generate_pkgconfig(
"${gRPC_CPP_VERSION}"
"absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_dynamic_annotations absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_layout absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_prefetch absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_strings_internal absl_synchronization absl_time absl_type_traits absl_utility gpr grpc_unsecure"
"libcares zlib"
- "-lgrpc++_unsecure"
-- "-laddress_sorting -lupb_textformat_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib"
+- "-laddress_sorting -lupb_textformat_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_descriptor_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib"
+ "-lgrpc++_unsecure -lupb"
+ "-laddress_sorting"
"grpc++_unsecure.pc")
if(gRPC_BUILD_GRPCPP_OTEL_PLUGIN)
-@@ -54091,7 +53425,7 @@ if(gRPC_BUILD_GRPCPP_OTEL_PLUGIN)
+@@ -54970,7 +54213,7 @@ if(gRPC_BUILD_GRPCPP_OTEL_PLUGIN)
"${gRPC_CPP_VERSION}"
"absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_dynamic_annotations absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_layout absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_prefetch absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_strings_internal absl_synchronization absl_time absl_type_traits absl_utility gpr grpc grpc++ opentelemetry_api"
"libcares openssl re2 zlib"
- "-lgrpcpp_otel_plugin"
-- "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib"
+- "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_descriptor_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib"
+ "-lgrpcpp_otel_plugin -lupb"
+ "-laddress_sorting"
"grpcpp_otel_plugin.pc")
endif()
diff --git a/cmake/upb.cmake b/cmake/upb.cmake
-index 9156e5f48f..e6fa81932d 100644
+index 9156e5f..e6fa819 100644
--- a/cmake/upb.cmake
+++ b/cmake/upb.cmake
@@ -12,9 +12,7 @@
diff --git a/recipe/patches/0010-reduce-buildtests_cxx-target-to-end2end-tests.patch b/recipe/patches/0010-reduce-buildtests_cxx-target-to-end2end-tests.patch
index b2176974..825847b7 100644
--- a/recipe/patches/0010-reduce-buildtests_cxx-target-to-end2end-tests.patch
+++ b/recipe/patches/0010-reduce-buildtests_cxx-target-to-end2end-tests.patch
@@ -81,7 +81,7 @@ to compile, compare with the timings below.
1 file changed, 43 insertions(+), 724 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index baaf005bf6..5641fd7c1f 100644
+index b8e930b..fad7fd4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -47,11 +47,12 @@ set(gRPC_INSTALL_SHAREDIR "share/grpc" CACHE STRING "Installation directory for
@@ -98,7 +98,7 @@ index baaf005bf6..5641fd7c1f 100644
enable_testing()
endif()
-@@ -705,7 +706,7 @@ protobuf_generate_grpc_cpp_with_import_path_correction(
+@@ -710,7 +711,7 @@ protobuf_generate_grpc_cpp_with_import_path_correction(
# This enables CMake to build the project without requiring submodules
# in the third_party directory as long as test builds are disabled.
@@ -107,7 +107,7 @@ index baaf005bf6..5641fd7c1f 100644
protobuf_generate_grpc_cpp_with_import_path_correction(
src/proto/grpc/testing/benchmark_service.proto src/proto/grpc/testing/benchmark_service.proto
)
-@@ -1262,170 +1263,16 @@ endif()
+@@ -1276,173 +1277,16 @@ endif()
if(gRPC_BUILD_TESTS)
add_custom_target(buildtests_c)
@@ -158,9 +158,11 @@ index baaf005bf6..5641fd7c1f 100644
- add_dependencies(buildtests_cxx backend_metrics_lb_policy_test)
- add_dependencies(buildtests_cxx backoff_test)
- add_dependencies(buildtests_cxx bad_server_response_test)
+- add_dependencies(buildtests_cxx bad_ssl_alpn_server)
- if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
- add_dependencies(buildtests_cxx bad_ssl_alpn_test)
- endif()
+- add_dependencies(buildtests_cxx bad_ssl_cert_server)
- if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
- add_dependencies(buildtests_cxx bad_ssl_cert_test)
- endif()
@@ -189,6 +191,7 @@ index baaf005bf6..5641fd7c1f 100644
- add_dependencies(buildtests_cxx call_utils_test)
- add_dependencies(buildtests_cxx cancel_ares_query_test)
- add_dependencies(buildtests_cxx cancel_callback_test)
+- add_dependencies(buildtests_cxx cds_test)
- add_dependencies(buildtests_cxx cel_authorization_engine_test)
- add_dependencies(buildtests_cxx certificate_provider_registry_test)
- add_dependencies(buildtests_cxx certificate_provider_store_test)
@@ -278,7 +281,7 @@ index baaf005bf6..5641fd7c1f 100644
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_dependencies(buildtests_cxx end2end_chaotic_good_no_logging_test)
endif()
-@@ -1443,553 +1290,25 @@ if(gRPC_BUILD_TESTS)
+@@ -1460,557 +1304,25 @@ if(gRPC_BUILD_TESTS)
add_dependencies(buildtests_cxx end2end_posix_no_logging_test)
add_dependencies(buildtests_cxx end2end_posix_test)
add_dependencies(buildtests_cxx end2end_test)
@@ -599,6 +602,7 @@ index baaf005bf6..5641fd7c1f 100644
- add_dependencies(buildtests_cxx server_test)
add_dependencies(buildtests_cxx service_config_end2end_test)
- add_dependencies(buildtests_cxx service_config_test)
+- add_dependencies(buildtests_cxx session_endpoint_test)
- add_dependencies(buildtests_cxx settings_timeout_manager_test)
- add_dependencies(buildtests_cxx settings_timeout_test)
- add_dependencies(buildtests_cxx shared_bit_gen_test)
@@ -765,6 +769,9 @@ index baaf005bf6..5641fd7c1f 100644
- endif()
- add_dependencies(buildtests_cxx xds_common_types_test)
- if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
+- add_dependencies(buildtests_cxx xds_composite_filter_end2end_test)
+- endif()
+- if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
- add_dependencies(buildtests_cxx xds_core_end2end_test)
- endif()
- add_dependencies(buildtests_cxx xds_credentials_end2end_test)
@@ -832,7 +839,7 @@ index baaf005bf6..5641fd7c1f 100644
add_custom_target(buildtests
DEPENDS buildtests_c buildtests_cxx)
-@@ -3246,7 +2565,7 @@ if(gRPC_INSTALL)
+@@ -3277,7 +2589,7 @@ if(gRPC_INSTALL)
)
endif()
@@ -841,7 +848,7 @@ index baaf005bf6..5641fd7c1f 100644
add_library(grpc_test_util
test/core/event_engine/test_init.cc
-@@ -3985,7 +3304,7 @@ if(gRPC_INSTALL)
+@@ -4018,7 +3330,7 @@ if(gRPC_INSTALL)
)
endif()
@@ -850,7 +857,7 @@ index baaf005bf6..5641fd7c1f 100644
add_library(gtest
third_party/googletest/googlemock/src/gmock-cardinalities.cc
-@@ -4705,7 +4024,7 @@ if(gRPC_INSTALL)
+@@ -4744,7 +4056,7 @@ if(gRPC_INSTALL)
endif()
endif()
@@ -859,7 +866,7 @@ index baaf005bf6..5641fd7c1f 100644
add_library(grpc++_test
src/cpp/client/channel_test_peer.cc
-@@ -4778,7 +4097,7 @@ foreach(_hdr
+@@ -4817,7 +4129,7 @@ foreach(_hdr
endforeach()
endif()
@@ -868,7 +875,7 @@ index baaf005bf6..5641fd7c1f 100644
add_library(grpc++_test_config
test/cpp/util/test_config_cc.cc
-@@ -4830,7 +4149,7 @@ target_link_libraries(grpc++_test_config
+@@ -4869,7 +4181,7 @@ target_link_libraries(grpc++_test_config
endif()
@@ -877,7 +884,7 @@ index baaf005bf6..5641fd7c1f 100644
add_library(grpc++_test_util
src/core/util/subprocess_posix.cc
-@@ -6210,7 +5529,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
+@@ -6256,7 +5568,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
endif()
endif()
@@ -886,7 +893,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(admin_services_end2end_test
${_gRPC_PROTO_GENS_DIR}/cel/expr/checked.pb.cc
-@@ -7701,7 +7020,7 @@ target_link_libraries(arena_test
+@@ -7747,7 +7059,7 @@ target_link_libraries(arena_test
endif()
@@ -895,7 +902,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(async_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc
-@@ -11621,7 +10940,7 @@ target_link_libraries(client_authority_filter_test
+@@ -11786,7 +11098,7 @@ target_link_libraries(client_authority_filter_test
endif()
@@ -904,7 +911,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(client_callback_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
-@@ -11858,7 +11177,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
+@@ -12023,7 +11335,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
endif()
endif()
@@ -913,7 +920,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(client_interceptors_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
-@@ -11931,7 +11250,7 @@ target_link_libraries(client_interceptors_end2end_test
+@@ -12096,7 +11408,7 @@ target_link_libraries(client_interceptors_end2end_test
endif()
@@ -922,7 +929,7 @@ index baaf005bf6..5641fd7c1f 100644
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_executable(client_lb_end2end_test
-@@ -12688,7 +12007,7 @@ target_link_libraries(connectivity_state_test
+@@ -12853,7 +12165,7 @@ target_link_libraries(connectivity_state_test
endif()
@@ -931,7 +938,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(context_allocator_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
-@@ -13607,7 +12926,7 @@ target_link_libraries(duplicate_header_bad_client_test
+@@ -13772,7 +13084,7 @@ target_link_libraries(duplicate_header_bad_client_test
endif()
@@ -940,7 +947,7 @@ index baaf005bf6..5641fd7c1f 100644
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_executable(end2end_chaotic_good_no_logging_test
-@@ -13712,7 +13031,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
+@@ -13877,7 +13189,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
endif()
endif()
@@ -949,7 +956,7 @@ index baaf005bf6..5641fd7c1f 100644
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_executable(end2end_chaotic_good_test
-@@ -13906,7 +13225,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
+@@ -14071,7 +13383,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
endif()
endif()
@@ -958,7 +965,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(end2end_http2_no_logging_test
${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc
-@@ -14009,7 +13328,7 @@ target_link_libraries(end2end_http2_no_logging_test
+@@ -14174,7 +13486,7 @@ target_link_libraries(end2end_http2_no_logging_test
endif()
@@ -967,7 +974,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(end2end_http2_security_no_logging_test
${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc
-@@ -14112,7 +13431,7 @@ target_link_libraries(end2end_http2_security_no_logging_test
+@@ -14277,7 +13589,7 @@ target_link_libraries(end2end_http2_security_no_logging_test
endif()
@@ -976,7 +983,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(end2end_http2_security_test
${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc
-@@ -14304,7 +13623,7 @@ target_link_libraries(end2end_http2_security_test
+@@ -14469,7 +13781,7 @@ target_link_libraries(end2end_http2_security_test
endif()
@@ -985,7 +992,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(end2end_http2_test
${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc
-@@ -14496,7 +13815,7 @@ target_link_libraries(end2end_http2_test
+@@ -14661,7 +13973,7 @@ target_link_libraries(end2end_http2_test
endif()
@@ -994,7 +1001,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(end2end_inproc_no_logging_test
${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc
-@@ -14599,7 +13918,7 @@ target_link_libraries(end2end_inproc_no_logging_test
+@@ -14764,7 +14076,7 @@ target_link_libraries(end2end_inproc_no_logging_test
endif()
@@ -1003,7 +1010,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(end2end_inproc_test
${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc
-@@ -14791,7 +14110,7 @@ target_link_libraries(end2end_inproc_test
+@@ -14956,7 +14268,7 @@ target_link_libraries(end2end_inproc_test
endif()
@@ -1012,7 +1019,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(end2end_ph2_no_logging_test
${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc
-@@ -15189,7 +14508,7 @@ target_link_libraries(end2end_posix_no_logging_test
+@@ -15354,7 +14666,7 @@ target_link_libraries(end2end_posix_no_logging_test
endif()
@@ -1021,7 +1028,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(end2end_posix_test
${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc
-@@ -15381,7 +14700,7 @@ target_link_libraries(end2end_posix_test
+@@ -15546,7 +14858,7 @@ target_link_libraries(end2end_posix_test
endif()
@@ -1030,7 +1037,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
-@@ -17839,7 +17158,7 @@ target_link_libraries(gcp_authentication_filter_test
+@@ -18005,7 +17317,7 @@ target_link_libraries(gcp_authentication_filter_test
endif()
@@ -1039,7 +1046,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(generic_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
-@@ -18342,7 +17661,7 @@ target_link_libraries(grpc_authorization_policy_provider_test
+@@ -18508,7 +17820,7 @@ target_link_libraries(grpc_authorization_policy_provider_test
endif()
@@ -1048,7 +1055,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(grpc_authz_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
-@@ -19354,7 +18673,7 @@ target_link_libraries(grpclb_api_test
+@@ -19520,7 +18832,7 @@ target_link_libraries(grpclb_api_test
endif()
@@ -1057,7 +1064,7 @@ index baaf005bf6..5641fd7c1f 100644
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_executable(grpclb_end2end_test
-@@ -19844,7 +19163,7 @@ target_link_libraries(headers_bad_client_test
+@@ -20010,7 +19322,7 @@ target_link_libraries(headers_bad_client_test
endif()
@@ -1066,7 +1073,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(health_service_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc
-@@ -20617,7 +19936,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
+@@ -20783,7 +20095,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
endif()
endif()
@@ -1075,7 +1082,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(hybrid_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
-@@ -23962,7 +23281,7 @@ target_link_libraries(memory_quota_test
+@@ -24129,7 +23441,7 @@ target_link_libraries(memory_quota_test
endif()
@@ -1084,7 +1091,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(memory_usage_test
src/core/lib/debug/trace.cc
-@@ -24969,7 +24288,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
+@@ -25136,7 +24448,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
endif()
endif()
@@ -1093,7 +1100,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(orca_service_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_service.pb.cc
-@@ -26445,7 +25764,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
+@@ -26612,7 +25924,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
endif()
endif()
@@ -1102,7 +1109,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(port_sharing_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
-@@ -28847,7 +28166,7 @@ target_link_libraries(random_early_detection_test
+@@ -29014,7 +28326,7 @@ target_link_libraries(random_early_detection_test
endif()
@@ -1111,7 +1118,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(raw_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
-@@ -29455,7 +28774,7 @@ target_link_libraries(resolve_address_using_native_resolver_test
+@@ -29622,7 +28934,7 @@ target_link_libraries(resolve_address_using_native_resolver_test
endif()
@@ -1120,7 +1127,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(resource_quota_end2end_stress_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
-@@ -29772,7 +29091,7 @@ target_link_libraries(ring_hash_test
+@@ -29939,7 +29251,7 @@ target_link_libraries(ring_hash_test
endif()
@@ -1129,7 +1136,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(rls_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls.pb.cc
-@@ -30784,7 +30103,7 @@ target_link_libraries(server_early_return_test
+@@ -30949,7 +30261,7 @@ target_link_libraries(server_early_return_test
endif()
@@ -1138,7 +1145,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(server_interceptors_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
-@@ -31062,7 +30381,7 @@ target_link_libraries(server_test
+@@ -31227,7 +30539,7 @@ target_link_libraries(server_test
endif()
@@ -1147,7 +1154,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(service_config_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc
-@@ -31720,7 +31039,7 @@ target_link_libraries(sorted_pack_test
+@@ -31928,7 +31240,7 @@ target_link_libraries(sorted_pack_test
endif()
@@ -1156,7 +1163,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(spiffe_bundle_map_end2end_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
-@@ -33494,7 +32813,7 @@ target_link_libraries(test_core_credentials_transport_ssl_ssl_credentials_test
+@@ -33702,7 +33014,7 @@ target_link_libraries(test_core_credentials_transport_ssl_ssl_credentials_test
endif()
@@ -1165,7 +1172,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(test_core_credentials_transport_tls_tls_credentials_test
test/core/credentials/transport/tls/tls_credentials_test.cc
-@@ -34073,7 +33392,7 @@ target_link_libraries(test_cpp_client_credentials_test
+@@ -34281,7 +33593,7 @@ target_link_libraries(test_cpp_client_credentials_test
endif()
@@ -1174,7 +1181,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(test_cpp_end2end_ssl_credentials_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
-@@ -34145,7 +33464,7 @@ target_link_libraries(test_cpp_end2end_ssl_credentials_test
+@@ -34353,7 +33665,7 @@ target_link_libraries(test_cpp_end2end_ssl_credentials_test
endif()
@@ -1183,7 +1190,7 @@ index baaf005bf6..5641fd7c1f 100644
add_executable(test_cpp_end2end_tls_credentials_test
${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc
-@@ -35141,7 +34460,7 @@ target_link_libraries(tls_key_export_test
+@@ -35349,7 +34661,7 @@ target_link_libraries(tls_key_export_test
endif()
diff --git a/recipe/patches/0011-build-grpcio-tools-from-source.patch b/recipe/patches/0011-build-grpcio-tools-from-source.patch
index 26d623ea..e929dd10 100644
--- a/recipe/patches/0011-build-grpcio-tools-from-source.patch
+++ b/recipe/patches/0011-build-grpcio-tools-from-source.patch
@@ -9,7 +9,7 @@ Subject: [PATCH 11/17] build grpcio-tools from source
2 files changed, 51 insertions(+), 28 deletions(-)
diff --git a/tools/distrib/python/grpcio_tools/protoc_lib_deps.py b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py
-index dde29ffc1a..d0487ecd43 100644
+index 21245be..8aeb7eb 100644
--- a/tools/distrib/python/grpcio_tools/protoc_lib_deps.py
+++ b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py
@@ -383,21 +383,21 @@ CC_FILES=[
@@ -49,8 +49,53 @@ index dde29ffc1a..d0487ecd43 100644
]
CC_INCLUDES=[
+diff --git a/tools/distrib/python/grpcio_tools/protoc_lib_deps.py.rej b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py.rej
+new file mode 100644
+index 0000000..e2a9c30
+--- /dev/null
++++ b/tools/distrib/python/grpcio_tools/protoc_lib_deps.py.rej
+@@ -0,0 +1,39 @@
++--- tools/distrib/python/grpcio_tools/protoc_lib_deps.py
+++++ tools/distrib/python/grpcio_tools/protoc_lib_deps.py
++@@ -383,21 +383,21 @@ CC_FILES=[
++ ]
++
++ PROTO_FILES=[
++- 'go/google/protobuf/go_features.proto',
++- 'java/core/src/main/resources/google/protobuf/java_features.proto',
++- 'src/google/protobuf/any.proto',
++- 'src/google/protobuf/api.proto',
++- 'src/google/protobuf/compiler/plugin.proto',
++- 'src/google/protobuf/cpp_features.proto',
++- 'src/google/protobuf/descriptor.proto',
++- 'src/google/protobuf/duration.proto',
++- 'src/google/protobuf/empty.proto',
++- 'src/google/protobuf/field_mask.proto',
++- 'src/google/protobuf/source_context.proto',
++- 'src/google/protobuf/struct.proto',
++- 'src/google/protobuf/timestamp.proto',
++- 'src/google/protobuf/type.proto',
++- 'src/google/protobuf/wrappers.proto'
+++ 'google/protobuf/go_features.proto',
+++ 'google/protobuf/java_features.proto',
+++ 'google/protobuf/any.proto',
+++ 'google/protobuf/api.proto',
+++ 'google/protobuf/compiler/plugin.proto',
+++ 'google/protobuf/cpp_features.proto',
+++ 'google/protobuf/descriptor.proto',
+++ 'google/protobuf/duration.proto',
+++ 'google/protobuf/empty.proto',
+++ 'google/protobuf/field_mask.proto',
+++ 'google/protobuf/source_context.proto',
+++ 'google/protobuf/struct.proto',
+++ 'google/protobuf/timestamp.proto',
+++ 'google/protobuf/type.proto',
+++ 'google/protobuf/wrappers.proto'
++ ]
++
++ CC_INCLUDES=[
diff --git a/tools/distrib/python/grpcio_tools/setup.py b/tools/distrib/python/grpcio_tools/setup.py
-index a6ee913718..57c761221c 100644
+index 7370e97..3a8bb79 100644
--- a/tools/distrib/python/grpcio_tools/setup.py
+++ b/tools/distrib/python/grpcio_tools/setup.py
@@ -15,6 +15,7 @@
@@ -73,10 +118,10 @@ index a6ee913718..57c761221c 100644
- # available dynamically
- EXTRA_ENV_COMPILE_ARGS += " /MT"
+ EXTRA_ENV_COMPILE_ARGS += " /MD"
- elif "linux" in sys.platform:
- # GCC by defaults uses C17 so only C++17 needs to be specified.
- EXTRA_ENV_COMPILE_ARGS += " -std=c++17"
-@@ -244,15 +242,17 @@ EXTRA_LINK_ARGS = shlex.split(EXTRA_ENV_LINK_ARGS)
+ # Required to build upb from protobuf 33.x
+ # https://github.com/grpc/grpc/issues/41951
+ EXTRA_ENV_COMPILE_ARGS += " /Zc:preprocessor"
+@@ -247,15 +245,17 @@ EXTRA_LINK_ARGS = shlex.split(EXTRA_ENV_LINK_ARGS)
if BUILD_WITH_STATIC_LIBSTDCXX:
EXTRA_LINK_ARGS.append("-static-libstdc++")
@@ -98,7 +143,7 @@ index a6ee913718..57c761221c 100644
GRPC_PYTHON_TOOLS_PACKAGE = "grpc_tools"
GRPC_PYTHON_PROTO_RESOURCES_NAME = "_proto"
-@@ -295,16 +295,38 @@ def package_data():
+@@ -298,16 +298,38 @@ def package_data():
return {GRPC_PYTHON_TOOLS_PACKAGE: proto_files}
@@ -139,7 +184,7 @@ index a6ee913718..57c761221c 100644
] + CC_FILES
plugin_ext = Extension(
-@@ -312,10 +334,11 @@ def extension_modules():
+@@ -315,10 +337,11 @@ def extension_modules():
sources=plugin_sources,
include_dirs=[
".",
diff --git a/recipe/patches/0012-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch b/recipe/patches/0012-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch
index 5037e756..e65ef917 100644
--- a/recipe/patches/0012-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch
+++ b/recipe/patches/0012-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch
@@ -38,10 +38,10 @@ other consumers end up linking to them.
1 file changed, 48 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 5641fd7c1f..95257bfcc2 100644
+index fad7fd4..1d80a76 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -2429,6 +2429,30 @@ add_library(grpc
+@@ -2452,6 +2452,30 @@ add_library(grpc
src/core/xds/xds_client/xds_client.cc
)
@@ -72,7 +72,7 @@ index 5641fd7c1f..95257bfcc2 100644
target_compile_features(grpc PUBLIC cxx_std_17)
set_target_properties(grpc PROPERTIES
-@@ -3170,6 +3194,30 @@ add_library(grpc_unsecure
+@@ -3195,6 +3219,30 @@ add_library(grpc_unsecure
${gRPC_ADDITIONAL_DLL_SRC}
)
diff --git a/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch b/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch
index 7b99ed97..dc59db94 100644
--- a/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch
+++ b/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch
@@ -28,7 +28,7 @@ Subject: [PATCH 13/17] update GRPC_DLL instances where necessary
21 files changed, 29 insertions(+), 29 deletions(-)
diff --git a/include/grpc/event_engine/event_engine.h b/include/grpc/event_engine/event_engine.h
-index 47bdc8f7d7..db7442832c 100644
+index 47bdc8f..db74428 100644
--- a/include/grpc/event_engine/event_engine.h
+++ b/include/grpc/event_engine/event_engine.h
@@ -148,7 +148,7 @@ class EventEngine : public std::enable_shared_from_this,
@@ -41,7 +41,7 @@ index 47bdc8f7d7..db7442832c 100644
/// Thin wrapper around a platform-specific sockaddr type. A sockaddr struct
/// exists on all platforms that gRPC supports.
diff --git a/src/core/config/core_configuration.h b/src/core/config/core_configuration.h
-index a169f3efc2..64ec1c6964 100644
+index a169f3e..64ec1c6 100644
--- a/src/core/config/core_configuration.h
+++ b/src/core/config/core_configuration.h
@@ -40,7 +40,7 @@ namespace grpc_core {
@@ -54,7 +54,7 @@ index a169f3efc2..64ec1c6964 100644
CoreConfiguration(const CoreConfiguration&) = delete;
CoreConfiguration& operator=(const CoreConfiguration&) = delete;
diff --git a/src/core/credentials/call/json_util.h b/src/core/credentials/call/json_util.h
-index da7ff0a771..d1f6a52fdf 100644
+index da7ff0a..d1f6a52 100644
--- a/src/core/credentials/call/json_util.h
+++ b/src/core/credentials/call/json_util.h
@@ -31,7 +31,7 @@
@@ -67,7 +67,7 @@ index da7ff0a771..d1f6a52fdf 100644
grpc_error_handle* error);
diff --git a/src/core/credentials/transport/tls/spiffe_utils.h b/src/core/credentials/transport/tls/spiffe_utils.h
-index 9bf4b6dd59..f4cdb63489 100644
+index 9bf4b6d..f4cdb63 100644
--- a/src/core/credentials/transport/tls/spiffe_utils.h
+++ b/src/core/credentials/transport/tls/spiffe_utils.h
@@ -80,7 +80,7 @@ class SpiffeBundleKey final {
@@ -89,7 +89,7 @@ index 9bf4b6dd59..f4cdb63489 100644
static const JsonLoaderInterface* JsonLoader(const JsonArgs&);
void JsonPostLoad(const Json& json, const JsonArgs&,
diff --git a/src/core/ext/transport/chttp2/server/chttp2_server.h b/src/core/ext/transport/chttp2/server/chttp2_server.h
-index f0f50f9ff2..193105a427 100644
+index f0f50f9..193105a 100644
--- a/src/core/ext/transport/chttp2/server/chttp2_server.h
+++ b/src/core/ext/transport/chttp2/server/chttp2_server.h
@@ -234,7 +234,7 @@ class PassiveListenerImpl final : public PassiveListener {
@@ -102,7 +102,7 @@ index f0f50f9ff2..193105a427 100644
void ListenerDestroyed() ABSL_LOCKS_EXCLUDED(mu_);
diff --git a/src/core/ext/transport/inproc/inproc_transport.h b/src/core/ext/transport/inproc/inproc_transport.h
-index 05030d6e40..b1a9fe8e9a 100644
+index 05030d6..b1a9fe8 100644
--- a/src/core/ext/transport/inproc/inproc_transport.h
+++ b/src/core/ext/transport/inproc/inproc_transport.h
@@ -21,7 +21,7 @@
@@ -115,7 +115,7 @@ index 05030d6e40..b1a9fe8e9a 100644
void* reserved);
diff --git a/src/core/lib/channel/channel_args.h b/src/core/lib/channel/channel_args.h
-index cfbc1b1b90..8bfc2c1e21 100644
+index cfbc1b1..8bfc2c1 100644
--- a/src/core/lib/channel/channel_args.h
+++ b/src/core/lib/channel/channel_args.h
@@ -413,8 +413,8 @@ class ChannelArgs {
@@ -130,7 +130,7 @@ index cfbc1b1b90..8bfc2c1e21 100644
ChannelArgs& operator=(const ChannelArgs&);
ChannelArgs(ChannelArgs&&) noexcept;
diff --git a/src/core/lib/debug/trace_flags.h b/src/core/lib/debug/trace_flags.h
-index 362f44ab25..a2be3f6080 100644
+index 362f44a..a2be3f6 100644
--- a/src/core/lib/debug/trace_flags.h
+++ b/src/core/lib/debug/trace_flags.h
@@ -50,7 +50,7 @@ extern DebugOnlyTraceFlag work_serializer_trace;
@@ -143,7 +143,7 @@ index 362f44ab25..a2be3f6080 100644
extern TraceFlag bdp_estimator_trace;
extern TraceFlag call_trace;
diff --git a/src/core/lib/experiments/config.h b/src/core/lib/experiments/config.h
-index e74f7c6b71..8262e87816 100644
+index e74f7c6..8262e87 100644
--- a/src/core/lib/experiments/config.h
+++ b/src/core/lib/experiments/config.h
@@ -64,7 +64,7 @@ class ExperimentFlags {
@@ -165,7 +165,7 @@ index e74f7c6b71..8262e87816 100644
// Return true if experiment \a experiment_id is enabled.
diff --git a/src/core/lib/iomgr/iomgr.h b/src/core/lib/iomgr/iomgr.h
-index 280471fae8..506c6e3682 100644
+index 280471f..506c6e3 100644
--- a/src/core/lib/iomgr/iomgr.h
+++ b/src/core/lib/iomgr/iomgr.h
@@ -42,7 +42,7 @@ void grpc_iomgr_shutdown_background_closure();
@@ -178,7 +178,7 @@ index 280471fae8..506c6e3682 100644
/// Returns true if the caller is a worker thread for any background poller.
bool grpc_iomgr_is_any_background_poller_thread();
diff --git a/src/core/lib/iomgr/socket_mutator.h b/src/core/lib/iomgr/socket_mutator.h
-index 9ce180b345..17f484660c 100644
+index 9ce180b..17f4846 100644
--- a/src/core/lib/iomgr/socket_mutator.h
+++ b/src/core/lib/iomgr/socket_mutator.h
@@ -67,7 +67,7 @@ void grpc_socket_mutator_init(grpc_socket_mutator* mutator,
@@ -191,7 +191,7 @@ index 9ce180b345..17f484660c 100644
/// Perform the file descriptor mutation operation of \a mutator on \a fd
bool grpc_socket_mutator_mutate_fd(grpc_socket_mutator* mutator, int fd,
diff --git a/src/core/lib/promise/activity.h b/src/core/lib/promise/activity.h
-index 9de57809a5..9f63417587 100644
+index 9de5780..9f63417 100644
--- a/src/core/lib/promise/activity.h
+++ b/src/core/lib/promise/activity.h
@@ -75,7 +75,7 @@ struct Unwakeable final : public Wakeable {
@@ -204,7 +204,7 @@ index 9de57809a5..9f63417587 100644
static Unwakeable* unwakeable() {
return NoDestructSingleton::Get();
diff --git a/src/core/lib/resource_quota/thread_quota.h b/src/core/lib/resource_quota/thread_quota.h
-index 35a0514089..98bd1e68c1 100644
+index 35a0514..98bd1e6 100644
--- a/src/core/lib/resource_quota/thread_quota.h
+++ b/src/core/lib/resource_quota/thread_quota.h
@@ -45,7 +45,7 @@ class ThreadQuota : public RefCounted {
@@ -217,10 +217,10 @@ index 35a0514089..98bd1e68c1 100644
private:
Mutex mu_;
diff --git a/src/core/lib/surface/call.h b/src/core/lib/surface/call.h
-index 459ade1827..af7867ada8 100644
+index 76a9476..ec6d7f5 100644
--- a/src/core/lib/surface/call.h
+++ b/src/core/lib/surface/call.h
-@@ -310,9 +310,9 @@ grpc_compression_algorithm grpc_call_compression_for_level(
+@@ -316,9 +316,9 @@ grpc_compression_algorithm grpc_call_compression_for_level(
// Did this client call receive a trailers-only response
// TODO(markdroth): This is currently available only to the C++ API.
// Move to surface API if requested by other languages.
@@ -233,7 +233,7 @@ index 459ade1827..af7867ada8 100644
#endif // GRPC_SRC_CORE_LIB_SURFACE_CALL_H
diff --git a/src/core/lib/surface/completion_queue.h b/src/core/lib/surface/completion_queue.h
-index d99c7a248c..d68ce75f8c 100644
+index d99c7a2..d68ce75 100644
--- a/src/core/lib/surface/completion_queue.h
+++ b/src/core/lib/surface/completion_queue.h
@@ -55,8 +55,8 @@ void grpc_cq_internal_unref(grpc_completion_queue* cq, const char* reason,
@@ -262,7 +262,7 @@ index d99c7a248c..d68ce75f8c 100644
void (*done)(void* done_arg, grpc_cq_completion* storage),
void* done_arg, grpc_cq_completion* storage,
diff --git a/src/core/transport/auth_context.h b/src/core/transport/auth_context.h
-index 33c6dc6057..22a61a1a99 100644
+index 33c6dc6..22a61a1 100644
--- a/src/core/transport/auth_context.h
+++ b/src/core/transport/auth_context.h
@@ -49,7 +49,7 @@ struct grpc_auth_property_array {
@@ -275,10 +275,10 @@ index 33c6dc6057..22a61a1a99 100644
#define GRPC_AUTH_CONTEXT_ARG "grpc.auth_context"
diff --git a/src/core/tsi/ssl_transport_security.h b/src/core/tsi/ssl_transport_security.h
-index 18068db93c..205d7ac7aa 100644
+index 7626a43..cddc0f9 100644
--- a/src/core/tsi/ssl_transport_security.h
+++ b/src/core/tsi/ssl_transport_security.h
-@@ -453,7 +453,7 @@ tsi_result tsi_ssl_get_cert_chain_contents(STACK_OF(X509) * peer_chain,
+@@ -461,7 +461,7 @@ tsi_result tsi_ssl_get_cert_chain_contents(STACK_OF(X509) * peer_chain,
tsi_peer_property* property);
namespace tsi {
@@ -288,7 +288,7 @@ index 18068db93c..205d7ac7aa 100644
#endif // GRPC_SRC_CORE_TSI_SSL_TRANSPORT_SECURITY_H
diff --git a/src/core/util/json/json_reader.cc b/src/core/util/json/json_reader.cc
-index d422cbb26a..795e355b57 100644
+index d422cbb..795e355 100644
--- a/src/core/util/json/json_reader.cc
+++ b/src/core/util/json/json_reader.cc
@@ -942,7 +942,7 @@ absl::StatusOr JsonReader::Parse(absl::string_view input) {
@@ -301,7 +301,7 @@ index d422cbb26a..795e355b57 100644
}
diff --git a/src/core/util/json/json_reader.h b/src/core/util/json/json_reader.h
-index 7ba5220a5e..c92f9c2d7c 100644
+index 7ba5220..c92f9c2 100644
--- a/src/core/util/json/json_reader.h
+++ b/src/core/util/json/json_reader.h
@@ -26,7 +26,7 @@
@@ -314,7 +314,7 @@ index 7ba5220a5e..c92f9c2d7c 100644
} // namespace grpc_core
diff --git a/src/core/util/load_file.h b/src/core/util/load_file.h
-index 26163f5100..8efaf085e6 100644
+index 26163f5..8efaf08 100644
--- a/src/core/util/load_file.h
+++ b/src/core/util/load_file.h
@@ -26,7 +26,7 @@ namespace grpc_core {
@@ -327,7 +327,7 @@ index 26163f5100..8efaf085e6 100644
} // namespace grpc_core
diff --git a/src/core/util/time.h b/src/core/util/time.h
-index 1de2b4ff99..209f23af56 100644
+index 1de2b4f..209f23a 100644
--- a/src/core/util/time.h
+++ b/src/core/util/time.h
@@ -104,7 +104,7 @@ class Timestamp {
diff --git a/recipe/patches/0014-use-protobuf-s-libutf8_range.patch b/recipe/patches/0014-use-protobuf-s-libutf8_range.patch
index 71edcac7..e4fcdb39 100644
--- a/recipe/patches/0014-use-protobuf-s-libutf8_range.patch
+++ b/recipe/patches/0014-use-protobuf-s-libutf8_range.patch
@@ -8,10 +8,10 @@ Subject: [PATCH 14/17] use protobuf's libutf8_range
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 95257bfcc2..e1fdb7ab9b 100644
+index 1d80a76..3217c58 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -5058,7 +5058,7 @@ target_include_directories(grpc_plugin_support
+@@ -5098,7 +5098,7 @@ target_include_directories(grpc_plugin_support
)
target_link_libraries(grpc_plugin_support
${_gRPC_ALLTARGETS_LIBRARIES}
diff --git a/recipe/patches/0015-disable-grpc-_unsecure.patch b/recipe/patches/0015-disable-grpc-_unsecure.patch
index d255fc89..015bb00c 100644
--- a/recipe/patches/0015-disable-grpc-_unsecure.patch
+++ b/recipe/patches/0015-disable-grpc-_unsecure.patch
@@ -19,10 +19,10 @@ the avoidance of which is the entire point of `grpc_unsecure`.
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e1fdb7ab9b..f0e0be66df 100644
+index 3217c58..4fd8f40 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -2665,7 +2665,7 @@ endif()
+@@ -2689,7 +2689,7 @@ endif()
endif()
@@ -31,7 +31,7 @@ index e1fdb7ab9b..f0e0be66df 100644
add_library(grpc_test_util_unsecure
test/core/event_engine/test_init.cc
-@@ -2741,6 +2741,7 @@ endif()
+@@ -2765,6 +2765,7 @@ endif()
endif()
@@ -39,7 +39,7 @@ index e1fdb7ab9b..f0e0be66df 100644
add_library(grpc_unsecure
src/core/call/call_arena_allocator.cc
src/core/call/call_filters.cc
-@@ -3284,6 +3285,7 @@ target_link_libraries(grpc_unsecure
+@@ -3309,6 +3310,7 @@ target_link_libraries(grpc_unsecure
if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
target_link_libraries(grpc_unsecure PUBLIC "-framework CoreFoundation")
endif()
@@ -47,7 +47,7 @@ index e1fdb7ab9b..f0e0be66df 100644
foreach(_hdr
include/grpc/byte_buffer.h
-@@ -3343,7 +3345,7 @@ foreach(_hdr
+@@ -3369,7 +3371,7 @@ foreach(_hdr
endforeach()
@@ -56,15 +56,15 @@ index e1fdb7ab9b..f0e0be66df 100644
install(TARGETS grpc_unsecure EXPORT gRPCTargets
RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
-@@ -4262,6 +4264,7 @@ target_link_libraries(grpc++_test_util
+@@ -4294,6 +4296,7 @@ target_link_libraries(grpc++_test_util
endif()
+if(FALSE)
add_library(grpc++_unsecure
- src/cpp/client/call_credentials.cc
- src/cpp/client/channel_cc.cc
-@@ -4354,6 +4357,7 @@ target_link_libraries(grpc++_unsecure
+ src/core/client_channel/virtual_channel.cc
+ src/cpp/client/call_context_registry.cc
+@@ -4388,6 +4391,7 @@ target_link_libraries(grpc++_unsecure
grpc_unsecure
${_gRPC_PROTOBUF_LIBRARIES}
)
@@ -72,7 +72,7 @@ index e1fdb7ab9b..f0e0be66df 100644
foreach(_hdr
include/grpc++/alarm.h
-@@ -4572,7 +4576,7 @@ foreach(_hdr
+@@ -4610,7 +4614,7 @@ foreach(_hdr
endforeach()
@@ -81,7 +81,7 @@ index e1fdb7ab9b..f0e0be66df 100644
install(TARGETS grpc++_unsecure EXPORT gRPCTargets
RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
BUNDLE DESTINATION ${gRPC_INSTALL_BINDIR}
-@@ -5525,7 +5529,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
+@@ -5564,7 +5568,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
endif()
endif()
@@ -90,7 +90,7 @@ index e1fdb7ab9b..f0e0be66df 100644
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_executable(address_sorting_test_unsecure
-@@ -6156,7 +6160,7 @@ target_link_libraries(admin_services_end2end_test
+@@ -6195,7 +6199,7 @@ target_link_libraries(admin_services_end2end_test
endif()
@@ -99,7 +99,7 @@ index e1fdb7ab9b..f0e0be66df 100644
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_executable(alarm_test
-@@ -16247,7 +16251,7 @@ target_link_libraries(filter_fusion_test
+@@ -16406,7 +16410,7 @@ target_link_libraries(filter_fusion_test
endif()
@@ -108,7 +108,7 @@ index e1fdb7ab9b..f0e0be66df 100644
add_executable(filter_test_test
${_gRPC_PROTO_GENS_DIR}/test/core/event_engine/fuzzing_event_engine/fuzzing_event_engine.pb.cc
-@@ -25182,7 +25186,7 @@ target_link_libraries(parser_test
+@@ -25342,7 +25346,7 @@ target_link_libraries(parser_test
endif()
@@ -117,7 +117,7 @@ index e1fdb7ab9b..f0e0be66df 100644
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_executable(party_mpsc_test
-@@ -25226,7 +25230,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
+@@ -25386,7 +25390,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
endif()
endif()
@@ -126,7 +126,7 @@ index e1fdb7ab9b..f0e0be66df 100644
add_executable(party_test
test/core/promise/party_test.cc
-@@ -29760,7 +29764,7 @@ target_link_libraries(server_builder_plugin_test
+@@ -29920,7 +29924,7 @@ target_link_libraries(server_builder_plugin_test
endif()
@@ -135,7 +135,7 @@ index e1fdb7ab9b..f0e0be66df 100644
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_executable(server_builder_test
-@@ -29836,7 +29840,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
+@@ -29995,7 +29999,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
endif()
endif()
@@ -144,7 +144,7 @@ index e1fdb7ab9b..f0e0be66df 100644
if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_executable(server_builder_with_socket_mutator_test
-@@ -52751,6 +52755,7 @@ generate_pkgconfig(
+@@ -53532,6 +53536,7 @@ generate_pkgconfig(
"-laddress_sorting"
"grpc.pc")
@@ -152,7 +152,7 @@ index e1fdb7ab9b..f0e0be66df 100644
# grpc_unsecure .pc file
generate_pkgconfig(
"gRPC unsecure"
-@@ -52761,6 +52766,7 @@ generate_pkgconfig(
+@@ -53542,6 +53547,7 @@ generate_pkgconfig(
"-lgrpc_unsecure -lupb"
"-laddress_sorting"
"grpc_unsecure.pc")
@@ -160,7 +160,7 @@ index e1fdb7ab9b..f0e0be66df 100644
# grpc++ .pc file
generate_pkgconfig(
-@@ -52773,6 +52779,7 @@ generate_pkgconfig(
+@@ -53554,6 +53560,7 @@ generate_pkgconfig(
"-laddress_sorting"
"grpc++.pc")
@@ -168,7 +168,7 @@ index e1fdb7ab9b..f0e0be66df 100644
# grpc++_unsecure .pc file
generate_pkgconfig(
"gRPC++ unsecure"
-@@ -52783,6 +52790,7 @@ generate_pkgconfig(
+@@ -53564,6 +53571,7 @@ generate_pkgconfig(
"-lgrpc++_unsecure -lupb"
"-laddress_sorting"
"grpc++_unsecure.pc")
diff --git a/recipe/patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch b/recipe/patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch
index fbaaa2dd..d2a3e983 100644
--- a/recipe/patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch
+++ b/recipe/patches/0016-break-out-_initialize_absl-into-separate-cython-modu.patch
@@ -15,10 +15,10 @@ Subject: [PATCH 16/17] break out _initialize_absl into separate cython module
rename src/python/grpcio/grpc/_cython/{_cygrpc/absl.pyx.pxi => cygrpc_absl_init.pyx} (98%)
diff --git a/setup.py b/setup.py
-index 1ea1d60c71..3d59bfc61b 100644
+index dbd69dc..ed32051 100644
--- a/setup.py
+++ b/setup.py
-@@ -307,7 +307,7 @@ if BUILD_WITH_STATIC_LIBSTDCXX:
+@@ -308,7 +308,7 @@ if BUILD_WITH_STATIC_LIBSTDCXX:
CYTHON_EXTENSION_PACKAGE_NAMES = ()
@@ -27,7 +27,7 @@ index 1ea1d60c71..3d59bfc61b 100644
GRPCIO_CC_SRCS = ()
-@@ -533,6 +533,7 @@ def cython_extensions_and_necessity():
+@@ -534,6 +534,7 @@ def cython_extensions_and_necessity():
+ core_c_files
+ asm_files
),
@@ -36,7 +36,7 @@ index 1ea1d60c71..3d59bfc61b 100644
libraries=list(EXTENSION_LIBRARIES),
define_macros=list(DEFINE_MACROS),
diff --git a/src/python/grpcio/grpc/__init__.py b/src/python/grpcio/grpc/__init__.py
-index 0722c3212e..aad6d94826 100644
+index e053e4f..5cbf218 100644
--- a/src/python/grpcio/grpc/__init__.py
+++ b/src/python/grpcio/grpc/__init__.py
@@ -19,6 +19,9 @@ import enum
@@ -50,7 +50,7 @@ index 0722c3212e..aad6d94826 100644
from grpc._cython import cygrpc as _cygrpc
from grpc._runtime_protos import protos
diff --git a/src/python/grpcio/grpc/_cython/cygrpc.pxd b/src/python/grpcio/grpc/_cython/cygrpc.pxd
-index 2cf29d0816..38d5500ae4 100644
+index 2cf29d0..38d5500 100644
--- a/src/python/grpcio/grpc/_cython/cygrpc.pxd
+++ b/src/python/grpcio/grpc/_cython/cygrpc.pxd
@@ -17,8 +17,6 @@ cimport cpython
@@ -63,7 +63,7 @@ index 2cf29d0816..38d5500ae4 100644
include "_cygrpc/call.pxd.pxi"
include "_cygrpc/channel.pxd.pxi"
diff --git a/src/python/grpcio/grpc/_cython/cygrpc.pyx b/src/python/grpcio/grpc/_cython/cygrpc.pyx
-index b3acae4aa3..79cd0f878d 100644
+index b3acae4..79cd0f8 100644
--- a/src/python/grpcio/grpc/_cython/cygrpc.pyx
+++ b/src/python/grpcio/grpc/_cython/cygrpc.pyx
@@ -37,7 +37,6 @@ _LOGGER = logging.getLogger(__name__)
@@ -82,7 +82,7 @@ diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/absl.pyx.pxi b/src/python/gr
similarity index 98%
rename from src/python/grpcio/grpc/_cython/_cygrpc/absl.pyx.pxi
rename to src/python/grpcio/grpc/_cython/cygrpc_absl_init.pyx
-index f38a8f5b57..859bd062f1 100644
+index f38a8f5..859bd06 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/absl.pyx.pxi
+++ b/src/python/grpcio/grpc/_cython/cygrpc_absl_init.pyx
@@ -12,6 +12,7 @@
diff --git a/recipe/patches/0017-fix-double-metric-registration-across-shared-librari.patch b/recipe/patches/0017-fix-double-metric-registration-across-shared-librari.patch
index 8bc40d7c..17d86dc9 100644
--- a/recipe/patches/0017-fix-double-metric-registration-across-shared-librari.patch
+++ b/recipe/patches/0017-fix-double-metric-registration-across-shared-librari.patch
@@ -26,10 +26,10 @@ Co-Authored-By: Claude Opus 4.6
4 files changed, 49 insertions(+), 28 deletions(-)
diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
-index 11487ce647..9643c5e883 100644
+index 0a7828b..6744f46 100644
--- a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
+++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
-@@ -3424,7 +3424,7 @@ static void benign_reclaimer_locked(
+@@ -3431,7 +3431,7 @@ static void benign_reclaimer_locked(
// Channel with no active streams: send a goaway to try and make it
// disconnect cleanly
t->resource_quota_telemetry_storage->Increment(
@@ -38,7 +38,7 @@ index 11487ce647..9643c5e883 100644
GRPC_TRACE_LOG(resource_quota, INFO)
<< "HTTP2: " << t->peer_string.as_string_view()
<< " - send goaway to free memory";
-@@ -3456,7 +3456,7 @@ static void destructive_reclaimer_locked(
+@@ -3463,7 +3463,7 @@ static void destructive_reclaimer_locked(
<< "HTTP2: " << t->peer_string.as_string_view()
<< " - abandon stream id " << s->id;
t->resource_quota_telemetry_storage->Increment(
@@ -48,7 +48,7 @@ index 11487ce647..9643c5e883 100644
t.get(), s,
grpc_error_set_int(
diff --git a/src/core/ext/transport/chttp2/transport/parsing.cc b/src/core/ext/transport/chttp2/transport/parsing.cc
-index 6c1bab488d..00a66b6295 100644
+index 46d4419..05696d8 100644
--- a/src/core/ext/transport/chttp2/transport/parsing.cc
+++ b/src/core/ext/transport/chttp2/transport/parsing.cc
@@ -676,7 +676,7 @@ static grpc_error_handle init_header_frame_parser(grpc_chttp2_transport* t,
@@ -61,7 +61,7 @@ index 6c1bab488d..00a66b6295 100644
grpc_slice_buffer_add(
&t->qbuf, grpc_chttp2_rst_stream_create(
diff --git a/src/core/lib/resource_quota/memory_quota.cc b/src/core/lib/resource_quota/memory_quota.cc
-index 3f2521a679..4e06f9deac 100644
+index 3f2521a..4e06f9d 100644
--- a/src/core/lib/resource_quota/memory_quota.cc
+++ b/src/core/lib/resource_quota/memory_quota.cc
@@ -717,9 +717,9 @@ BasicMemoryQuota::PressureInfo BasicMemoryQuota::GetPressureInfo() {
@@ -77,7 +77,7 @@ index 3f2521a679..4e06f9deac 100644
}
diff --git a/src/core/lib/resource_quota/telemetry.h b/src/core/lib/resource_quota/telemetry.h
-index 058471e3c9..e16bb53675 100644
+index 058471e..e16bb53 100644
--- a/src/core/lib/resource_quota/telemetry.h
+++ b/src/core/lib/resource_quota/telemetry.h
@@ -25,29 +25,50 @@ class ResourceQuotaDomain final : public InstrumentDomain {
From 5eb88efdaa1108deee5c13494964092dff461725 Mon Sep 17 00:00:00 2001
From: Julien Jerphanion
Date: Mon, 1 Jun 2026 13:59:32 +0200
Subject: [PATCH 4/4] patch: update GRPC_DLL instances where necessary
Signed-off-by: Julien Jerphanion
---
...e-GRPC_DLL-instances-where-necessary.patch | 79 ++++++++++++-------
1 file changed, 50 insertions(+), 29 deletions(-)
diff --git a/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch b/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch
index dc59db94..a1e85bef 100644
--- a/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch
+++ b/recipe/patches/0013-update-GRPC_DLL-instances-where-necessary.patch
@@ -10,7 +10,8 @@ Subject: [PATCH 13/17] update GRPC_DLL instances where necessary
src/core/credentials/transport/tls/spiffe_utils.h | 4 ++--
src/core/ext/transport/chttp2/server/chttp2_server.h | 2 +-
src/core/ext/transport/inproc/inproc_transport.h | 2 +-
- src/core/lib/channel/channel_args.h | 4 ++--
+ src/core/lib/channel/channel_args.h | 12 ++++++------
+ src/core/lib/iomgr/endpoint.h | 2 +-
src/core/lib/debug/trace_flags.h | 2 +-
src/core/lib/experiments/config.h | 4 ++--
src/core/lib/iomgr/iomgr.h | 2 +-
@@ -25,10 +26,9 @@ Subject: [PATCH 13/17] update GRPC_DLL instances where necessary
src/core/util/json/json_reader.h | 2 +-
src/core/util/load_file.h | 2 +-
src/core/util/time.h | 4 ++--
- 21 files changed, 29 insertions(+), 29 deletions(-)
-
+ 22 files changed, 37 insertions(+), 37 deletions(-)
diff --git a/include/grpc/event_engine/event_engine.h b/include/grpc/event_engine/event_engine.h
-index 47bdc8f..db74428 100644
+index 47bdc8f7d7..db7442832c 100644
--- a/include/grpc/event_engine/event_engine.h
+++ b/include/grpc/event_engine/event_engine.h
@@ -148,7 +148,7 @@ class EventEngine : public std::enable_shared_from_this,
@@ -41,7 +41,7 @@ index 47bdc8f..db74428 100644
/// Thin wrapper around a platform-specific sockaddr type. A sockaddr struct
/// exists on all platforms that gRPC supports.
diff --git a/src/core/config/core_configuration.h b/src/core/config/core_configuration.h
-index a169f3e..64ec1c6 100644
+index a169f3efc2..64ec1c6964 100644
--- a/src/core/config/core_configuration.h
+++ b/src/core/config/core_configuration.h
@@ -40,7 +40,7 @@ namespace grpc_core {
@@ -54,7 +54,7 @@ index a169f3e..64ec1c6 100644
CoreConfiguration(const CoreConfiguration&) = delete;
CoreConfiguration& operator=(const CoreConfiguration&) = delete;
diff --git a/src/core/credentials/call/json_util.h b/src/core/credentials/call/json_util.h
-index da7ff0a..d1f6a52 100644
+index da7ff0a771..d1f6a52fdf 100644
--- a/src/core/credentials/call/json_util.h
+++ b/src/core/credentials/call/json_util.h
@@ -31,7 +31,7 @@
@@ -67,7 +67,7 @@ index da7ff0a..d1f6a52 100644
grpc_error_handle* error);
diff --git a/src/core/credentials/transport/tls/spiffe_utils.h b/src/core/credentials/transport/tls/spiffe_utils.h
-index 9bf4b6d..f4cdb63 100644
+index 9bf4b6dd59..f4cdb63489 100644
--- a/src/core/credentials/transport/tls/spiffe_utils.h
+++ b/src/core/credentials/transport/tls/spiffe_utils.h
@@ -80,7 +80,7 @@ class SpiffeBundleKey final {
@@ -89,7 +89,7 @@ index 9bf4b6d..f4cdb63 100644
static const JsonLoaderInterface* JsonLoader(const JsonArgs&);
void JsonPostLoad(const Json& json, const JsonArgs&,
diff --git a/src/core/ext/transport/chttp2/server/chttp2_server.h b/src/core/ext/transport/chttp2/server/chttp2_server.h
-index f0f50f9..193105a 100644
+index f0f50f9ff2..193105a427 100644
--- a/src/core/ext/transport/chttp2/server/chttp2_server.h
+++ b/src/core/ext/transport/chttp2/server/chttp2_server.h
@@ -234,7 +234,7 @@ class PassiveListenerImpl final : public PassiveListener {
@@ -102,7 +102,7 @@ index f0f50f9..193105a 100644
void ListenerDestroyed() ABSL_LOCKS_EXCLUDED(mu_);
diff --git a/src/core/ext/transport/inproc/inproc_transport.h b/src/core/ext/transport/inproc/inproc_transport.h
-index 05030d6..b1a9fe8 100644
+index 05030d6e40..b1a9fe8e9a 100644
--- a/src/core/ext/transport/inproc/inproc_transport.h
+++ b/src/core/ext/transport/inproc/inproc_transport.h
@@ -21,7 +21,7 @@
@@ -115,22 +115,30 @@ index 05030d6..b1a9fe8 100644
void* reserved);
diff --git a/src/core/lib/channel/channel_args.h b/src/core/lib/channel/channel_args.h
-index cfbc1b1..8bfc2c1 100644
+index cfbc1b1b90..ee4414d26e 100644
--- a/src/core/lib/channel/channel_args.h
+++ b/src/core/lib/channel/channel_args.h
-@@ -413,8 +413,8 @@ class ChannelArgs {
+@@ -413,12 +413,12 @@ class ChannelArgs {
using CPtr =
std::unique_ptr;
- ChannelArgs();
- ~ChannelArgs();
+- ChannelArgs(const ChannelArgs&);
+- ChannelArgs& operator=(const ChannelArgs&);
+- ChannelArgs(ChannelArgs&&) noexcept;
+- ChannelArgs& operator=(ChannelArgs&&) noexcept;
+ GRPC_DLL ChannelArgs();
+ GRPC_DLL ~ChannelArgs();
- ChannelArgs(const ChannelArgs&);
- ChannelArgs& operator=(const ChannelArgs&);
- ChannelArgs(ChannelArgs&&) noexcept;
++ GRPC_DLL ChannelArgs(const ChannelArgs&);
++ GRPC_DLL ChannelArgs& operator=(const ChannelArgs&);
++ GRPC_DLL ChannelArgs(ChannelArgs&&) noexcept;
++ GRPC_DLL ChannelArgs& operator=(ChannelArgs&&) noexcept;
+
+ static ChannelArgs FromC(const grpc_channel_args* args);
+ static ChannelArgs FromC(const grpc_channel_args& args) {
diff --git a/src/core/lib/debug/trace_flags.h b/src/core/lib/debug/trace_flags.h
-index 362f44a..a2be3f6 100644
+index 362f44ab25..a2be3f6080 100644
--- a/src/core/lib/debug/trace_flags.h
+++ b/src/core/lib/debug/trace_flags.h
@@ -50,7 +50,7 @@ extern DebugOnlyTraceFlag work_serializer_trace;
@@ -143,7 +151,7 @@ index 362f44a..a2be3f6 100644
extern TraceFlag bdp_estimator_trace;
extern TraceFlag call_trace;
diff --git a/src/core/lib/experiments/config.h b/src/core/lib/experiments/config.h
-index e74f7c6..8262e87 100644
+index e74f7c6b71..8262e87816 100644
--- a/src/core/lib/experiments/config.h
+++ b/src/core/lib/experiments/config.h
@@ -64,7 +64,7 @@ class ExperimentFlags {
@@ -164,8 +172,21 @@ index e74f7c6..8262e87 100644
};
// Return true if experiment \a experiment_id is enabled.
+diff --git a/src/core/lib/iomgr/endpoint.h b/src/core/lib/iomgr/endpoint.h
+index 77fb0d3731..049738860b 100644
+--- a/src/core/lib/iomgr/endpoint.h
++++ b/src/core/lib/iomgr/endpoint.h
+@@ -87,7 +87,7 @@ void grpc_endpoint_write(
+
+ // Causes any pending and future read/write callbacks to run immediately with
+ // success==0
+-void grpc_endpoint_destroy(grpc_endpoint* ep);
++GRPC_DLL void grpc_endpoint_destroy(grpc_endpoint* ep);
+
+ // Add an endpoint to a pollset or pollset_set, so that when the pollset is
+ // polled, events from this endpoint are considered
diff --git a/src/core/lib/iomgr/iomgr.h b/src/core/lib/iomgr/iomgr.h
-index 280471f..506c6e3 100644
+index 280471fae8..506c6e3682 100644
--- a/src/core/lib/iomgr/iomgr.h
+++ b/src/core/lib/iomgr/iomgr.h
@@ -42,7 +42,7 @@ void grpc_iomgr_shutdown_background_closure();
@@ -178,7 +199,7 @@ index 280471f..506c6e3 100644
/// Returns true if the caller is a worker thread for any background poller.
bool grpc_iomgr_is_any_background_poller_thread();
diff --git a/src/core/lib/iomgr/socket_mutator.h b/src/core/lib/iomgr/socket_mutator.h
-index 9ce180b..17f4846 100644
+index 9ce180b345..17f484660c 100644
--- a/src/core/lib/iomgr/socket_mutator.h
+++ b/src/core/lib/iomgr/socket_mutator.h
@@ -67,7 +67,7 @@ void grpc_socket_mutator_init(grpc_socket_mutator* mutator,
@@ -191,7 +212,7 @@ index 9ce180b..17f4846 100644
/// Perform the file descriptor mutation operation of \a mutator on \a fd
bool grpc_socket_mutator_mutate_fd(grpc_socket_mutator* mutator, int fd,
diff --git a/src/core/lib/promise/activity.h b/src/core/lib/promise/activity.h
-index 9de5780..9f63417 100644
+index 9de57809a5..9f63417587 100644
--- a/src/core/lib/promise/activity.h
+++ b/src/core/lib/promise/activity.h
@@ -75,7 +75,7 @@ struct Unwakeable final : public Wakeable {
@@ -204,7 +225,7 @@ index 9de5780..9f63417 100644
static Unwakeable* unwakeable() {
return NoDestructSingleton::Get();
diff --git a/src/core/lib/resource_quota/thread_quota.h b/src/core/lib/resource_quota/thread_quota.h
-index 35a0514..98bd1e6 100644
+index 35a0514089..98bd1e68c1 100644
--- a/src/core/lib/resource_quota/thread_quota.h
+++ b/src/core/lib/resource_quota/thread_quota.h
@@ -45,7 +45,7 @@ class ThreadQuota : public RefCounted {
@@ -217,7 +238,7 @@ index 35a0514..98bd1e6 100644
private:
Mutex mu_;
diff --git a/src/core/lib/surface/call.h b/src/core/lib/surface/call.h
-index 76a9476..ec6d7f5 100644
+index 76a9476b93..ec6d7f5c69 100644
--- a/src/core/lib/surface/call.h
+++ b/src/core/lib/surface/call.h
@@ -316,9 +316,9 @@ grpc_compression_algorithm grpc_call_compression_for_level(
@@ -233,7 +254,7 @@ index 76a9476..ec6d7f5 100644
#endif // GRPC_SRC_CORE_LIB_SURFACE_CALL_H
diff --git a/src/core/lib/surface/completion_queue.h b/src/core/lib/surface/completion_queue.h
-index d99c7a2..d68ce75 100644
+index d99c7a248c..d68ce75f8c 100644
--- a/src/core/lib/surface/completion_queue.h
+++ b/src/core/lib/surface/completion_queue.h
@@ -55,8 +55,8 @@ void grpc_cq_internal_unref(grpc_completion_queue* cq, const char* reason,
@@ -262,7 +283,7 @@ index d99c7a2..d68ce75 100644
void (*done)(void* done_arg, grpc_cq_completion* storage),
void* done_arg, grpc_cq_completion* storage,
diff --git a/src/core/transport/auth_context.h b/src/core/transport/auth_context.h
-index 33c6dc6..22a61a1 100644
+index 33c6dc6057..22a61a1a99 100644
--- a/src/core/transport/auth_context.h
+++ b/src/core/transport/auth_context.h
@@ -49,7 +49,7 @@ struct grpc_auth_property_array {
@@ -275,7 +296,7 @@ index 33c6dc6..22a61a1 100644
#define GRPC_AUTH_CONTEXT_ARG "grpc.auth_context"
diff --git a/src/core/tsi/ssl_transport_security.h b/src/core/tsi/ssl_transport_security.h
-index 7626a43..cddc0f9 100644
+index 7626a4313e..cddc0f9ddc 100644
--- a/src/core/tsi/ssl_transport_security.h
+++ b/src/core/tsi/ssl_transport_security.h
@@ -461,7 +461,7 @@ tsi_result tsi_ssl_get_cert_chain_contents(STACK_OF(X509) * peer_chain,
@@ -288,7 +309,7 @@ index 7626a43..cddc0f9 100644
#endif // GRPC_SRC_CORE_TSI_SSL_TRANSPORT_SECURITY_H
diff --git a/src/core/util/json/json_reader.cc b/src/core/util/json/json_reader.cc
-index d422cbb..795e355 100644
+index d422cbb26a..795e355b57 100644
--- a/src/core/util/json/json_reader.cc
+++ b/src/core/util/json/json_reader.cc
@@ -942,7 +942,7 @@ absl::StatusOr JsonReader::Parse(absl::string_view input) {
@@ -301,7 +322,7 @@ index d422cbb..795e355 100644
}
diff --git a/src/core/util/json/json_reader.h b/src/core/util/json/json_reader.h
-index 7ba5220..c92f9c2 100644
+index 7ba5220a5e..c92f9c2d7c 100644
--- a/src/core/util/json/json_reader.h
+++ b/src/core/util/json/json_reader.h
@@ -26,7 +26,7 @@
@@ -314,7 +335,7 @@ index 7ba5220..c92f9c2 100644
} // namespace grpc_core
diff --git a/src/core/util/load_file.h b/src/core/util/load_file.h
-index 26163f5..8efaf08 100644
+index 26163f5100..8efaf085e6 100644
--- a/src/core/util/load_file.h
+++ b/src/core/util/load_file.h
@@ -26,7 +26,7 @@ namespace grpc_core {
@@ -327,7 +348,7 @@ index 26163f5..8efaf08 100644
} // namespace grpc_core
diff --git a/src/core/util/time.h b/src/core/util/time.h
-index 1de2b4f..209f23a 100644
+index 1de2b4ff99..209f23af56 100644
--- a/src/core/util/time.h
+++ b/src/core/util/time.h
@@ -104,7 +104,7 @@ class Timestamp {
@@ -347,4 +368,4 @@ index 1de2b4f..209f23a 100644
+ GRPC_DLL operator grpc_event_engine::experimental::EventEngine::Duration() const;
gpr_timespec as_timespec() const;
-
+
\ No newline at end of file
|