From 4f21db493956147a9bd3f515f4f269e355dccd71 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 14 Mar 2025 12:28:36 +1100 Subject: [PATCH 1/6] simplify generate_def.py --- recipe/generate_def.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/generate_def.py b/recipe/generate_def.py index f517a3df..3416a122 100644 --- a/recipe/generate_def.py +++ b/recipe/generate_def.py @@ -58,14 +58,14 @@ # from another object, but since we do a union, it doesn't matter); # Static symbols aren't visible to the linker, so even if we put # them in the .def file, they would not be found; save the hassle. - if "UNDEF" in line or "Static" in line: + if any(x in line for x in ["UNDEF", "Static", "Label"]): continue # get pure symbol, i.e. what comes after "|", minus spaces, and removing potentially # trailing demangled names (e.g. "(`upb_FieldType_CType'::`2'::c_type)" above); # don't use [-1] because some demangled symbols contain `operator|` symbol = line.split("|")[1].strip().split()[0] - # skip labels and metadata - if "Label" in line or any(symbol.startswith(x) for x in [".", "$", "@", "??", "?$", "__"]): + # skip internal symbols; prefix to #symbols as of v1.71: {"??": 57072, "?$": 102, "__": 84} + if any(symbol.startswith(x) for x in ["??", "?$", "__"]): continue # skip opencensus for now; re-evaluate together with #220 if "opencensus" in symbol.lower(): From 7b0cfb336f10a58d99da84eba11b31c550df06c6 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 14 Mar 2025 12:37:46 +1100 Subject: [PATCH 2/6] fix `GRPC{,XX}_DLL_EXPORTS` for `grpc++_*` targets --- ...-set-_DLL_EXPORTS-when-building-and-.patch | 54 ++++++++--- ...ing-linkages-for-gRPC_BUILD_TESTS-ON.patch | 22 ++--- ...-add-enable_testing-so-tests-get-run.patch | 4 +- ...s-for-tests-only-if-gRPC_BUILD_TESTS.patch | 4 +- ...nd-utf8_range-use-protobuf-s-version.patch | 16 ++-- ...ildtests_cxx-target-to-end2end-tests.patch | 90 +++++++++---------- .../0012-build-grpcio-tools-from-source.patch | 2 +- ...-linkage-to-openssl-to-grpc_unsecure.patch | 4 +- ...ol-explosion-with-autogenerated-expo.patch | 4 +- ...e-GRPC_DLL-instances-where-necessary.patch | 2 +- 10 files changed, 116 insertions(+), 86 deletions(-) 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 6a346f99..2e4f3028 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 @@ -1,15 +1,15 @@ -From b52e1b28dcf98f6a9a1127c0f72bfc9caf38d903 Mon Sep 17 00:00:00 2001 +From 3ac8eedcac80613588f8b426b25cf7518db2862b Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 29 Feb 2024 20:31:21 +1100 Subject: [PATCH 06/15] for main targets, set *_DLL_EXPORTS when building and *_DLL_IMPORTS in interface --- - CMakeLists.txt | 36 ++++++++++-------------------------- - 1 file changed, 10 insertions(+), 26 deletions(-) + CMakeLists.txt | 52 ++++++++++++++------------------------------------ + 1 file changed, 14 insertions(+), 38 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index aa48ccb04c..fb3f60850b 100644 +index aa48ccb04c..1766735441 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2092,10 +2092,8 @@ if(WIN32 AND MSVC) @@ -20,7 +20,7 @@ index aa48ccb04c..fb3f60850b 100644 - PRIVATE - "GPR_DLL_EXPORTS" - ) -+ set_target_properties(gpr PROPERTIES DEFINE_SYMBOL "GPR_DLL_EXPORTS") ++ target_compile_definitions(gpr PRIVATE "GPR_DLL_EXPORTS") + target_compile_definitions(gpr INTERFACE "GPR_DLL_IMPORTS") endif() if(gRPC_INSTALL) @@ -34,7 +34,7 @@ index aa48ccb04c..fb3f60850b 100644 - "GRPC_DLL_EXPORTS" - "GPR_DLL_IMPORTS" - ) -+ set_target_properties(grpc PROPERTIES DEFINE_SYMBOL "GRPC_DLL_EXPORTS") ++ target_compile_definitions(grpc PRIVATE "GRPC_DLL_EXPORTS") + target_compile_definitions(grpc INTERFACE "GRPC_DLL_IMPORTS") endif() if(gRPC_INSTALL) @@ -48,7 +48,7 @@ index aa48ccb04c..fb3f60850b 100644 - "GRPC_DLL_EXPORTS" - "GPR_DLL_IMPORTS" - ) -+ set_target_properties(grpc_unsecure PROPERTIES DEFINE_SYMBOL "GRPC_DLL_EXPORTS") ++ target_compile_definitions(grpc_unsecure PRIVATE "GRPC_DLL_EXPORTS") + target_compile_definitions(grpc_unsecure INTERFACE "GRPC_DLL_IMPORTS") endif() if(gRPC_INSTALL) @@ -63,12 +63,27 @@ index aa48ccb04c..fb3f60850b 100644 - "GPR_DLL_IMPORTS" - "GRPC_DLL_IMPORTS" - ) -+ set_target_properties(grpc++ PROPERTIES DEFINE_SYMBOL "GRPCXX_DLL_EXPORTS") -+ target_compile_definitions(grpc++ INTERFACE "GRPCXX_DLL_IMPORTS") ++ target_compile_definitions(grpc++ PRIVATE "GRPC_DLL_IMPORTS" "GRPCXX_DLL_EXPORTS") ++ target_compile_definitions(grpc++ INTERFACE "GRPC_DLL_IMPORTS" "GRPCXX_DLL_IMPORTS") endif() if(gRPC_INSTALL) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++.pdb -@@ -5306,12 +5294,8 @@ if(WIN32 AND MSVC) +@@ -4994,12 +4982,8 @@ if(WIN32 AND MSVC) + COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" + ) + if(BUILD_SHARED_LIBS) +- target_compile_definitions(grpc++_reflection +- PRIVATE +- "GPR_DLL_IMPORTS" +- "GRPC_DLL_IMPORTS" +- "GRPCXX_DLL_IMPORTS" +- ) ++ target_compile_definitions(grpc++_reflection PRIVATE "GRPC_DLL_IMPORTS" "GRPCXX_DLL_EXPORTS") ++ target_compile_definitions(grpc++_reflection INTERFACE "GRPC_DLL_IMPORTS" "GRPCXX_DLL_IMPORTS") + endif() + if(gRPC_INSTALL) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_reflection.pdb +@@ -5306,12 +5290,8 @@ if(WIN32 AND MSVC) COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) if(BUILD_SHARED_LIBS) @@ -78,8 +93,23 @@ index aa48ccb04c..fb3f60850b 100644 - "GPR_DLL_IMPORTS" - "GRPC_DLL_IMPORTS" - ) -+ set_target_properties(grpc++_unsecure PROPERTIES DEFINE_SYMBOL "GRPCXX_DLL_EXPORTS") -+ target_compile_definitions(grpc++_unsecure INTERFACE "GRPCXX_DLL_IMPORTS") ++ target_compile_definitions(grpc++_unsecure PRIVATE "GRPC_DLL_IMPORTS" "GRPCXX_DLL_EXPORTS") ++ target_compile_definitions(grpc++_unsecure INTERFACE "GRPC_DLL_IMPORTS" "GRPCXX_DLL_IMPORTS") endif() if(gRPC_INSTALL) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_unsecure.pdb +@@ -6057,12 +6037,8 @@ if(WIN32 AND MSVC) + COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" + ) + if(BUILD_SHARED_LIBS) +- target_compile_definitions(grpcpp_channelz +- PRIVATE +- "GPR_DLL_IMPORTS" +- "GRPC_DLL_IMPORTS" +- "GRPCXX_DLL_IMPORTS" +- ) ++ target_compile_definitions(grpcpp_channelz PRIVATE "GRPC_DLL_IMPORTS" "GRPCXX_DLL_EXPORTS") ++ target_compile_definitions(grpcpp_channelz INTERFACE "GRPC_DLL_IMPORTS" "GRPCXX_DLL_IMPORTS") + endif() + if(gRPC_INSTALL) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpcpp_channelz.pdb 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 c49c5f51..b07f0e4d 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 @@ -1,4 +1,4 @@ -From 1a8f40a423a7381590bbe6aef170c1cb247f2d8d Mon Sep 17 00:00:00 2001 +From 90613fc7c920bee58acbb8c10c5b324a14f1e4d7 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 26 Sep 2023 18:25:54 +1100 Subject: [PATCH 07/15] add missing linkages for gRPC_BUILD_TESTS=ON @@ -8,10 +8,10 @@ Subject: [PATCH 07/15] add missing linkages for gRPC_BUILD_TESTS=ON 1 file changed, 9 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index fb3f60850b..dbc8ac939c 100644 +index 1766735441..a3b0b709cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -8089,6 +8089,7 @@ target_include_directories(authorization_matchers_test +@@ -8081,6 +8081,7 @@ target_include_directories(authorization_matchers_test ) target_link_libraries(authorization_matchers_test @@ -19,7 +19,7 @@ index fb3f60850b..dbc8ac939c 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -16810,6 +16811,7 @@ target_include_directories(grpc_authorization_engine_test +@@ -16802,6 +16803,7 @@ target_include_directories(grpc_authorization_engine_test ) target_link_libraries(grpc_authorization_engine_test @@ -27,7 +27,7 @@ index fb3f60850b..dbc8ac939c 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -19199,6 +19201,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -19191,6 +19193,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ) target_link_libraries(httpcli_test @@ -35,7 +35,7 @@ index fb3f60850b..dbc8ac939c 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc++_test_util -@@ -21188,6 +21191,7 @@ target_include_directories(matchers_test +@@ -21180,6 +21183,7 @@ target_include_directories(matchers_test ) target_link_libraries(matchers_test @@ -43,7 +43,7 @@ index fb3f60850b..dbc8ac939c 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -26610,6 +26614,7 @@ target_include_directories(resolve_address_using_ares_resolver_test +@@ -26602,6 +26606,7 @@ target_include_directories(resolve_address_using_ares_resolver_test ) target_link_libraries(resolve_address_using_ares_resolver_test @@ -51,7 +51,7 @@ index fb3f60850b..dbc8ac939c 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -26714,6 +26719,7 @@ target_include_directories(resolve_address_using_native_resolver_test +@@ -26706,6 +26711,7 @@ target_include_directories(resolve_address_using_native_resolver_test ) target_link_libraries(resolve_address_using_native_resolver_test @@ -59,7 +59,7 @@ index fb3f60850b..dbc8ac939c 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -39712,6 +39718,7 @@ target_include_directories(xds_common_types_test +@@ -39704,6 +39710,7 @@ target_include_directories(xds_common_types_test ) target_link_libraries(xds_common_types_test @@ -67,7 +67,7 @@ index fb3f60850b..dbc8ac939c 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc++ -@@ -40371,6 +40378,7 @@ target_include_directories(xds_credentials_test +@@ -40363,6 +40370,7 @@ target_include_directories(xds_credentials_test ) target_link_libraries(xds_credentials_test @@ -75,7 +75,7 @@ index fb3f60850b..dbc8ac939c 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -45336,6 +45344,7 @@ target_include_directories(xds_listener_resource_type_test +@@ -45328,6 +45336,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 f8d02f57..a75ce2ed 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 @@ -1,4 +1,4 @@ -From c80cd00b33125db5e62805554bcf46a9f9f89bb1 Mon Sep 17 00:00:00 2001 +From d17b32bf4e431368e9808e742a7631c8b03255c6 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 28 Feb 2025 22:07:19 +1100 Subject: [PATCH 08/15] add enable_testing so tests get run @@ -8,7 +8,7 @@ Subject: [PATCH 08/15] add enable_testing so tests get run 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index dbc8ac939c..72ee817a05 100644 +index a3b0b709cf..d94d969069 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,10 @@ option(gRPC_BUILD_TESTS "Build tests" OFF) diff --git a/recipe/patches/0009-Build-protobufs-for-tests-only-if-gRPC_BUILD_TESTS.patch b/recipe/patches/0009-Build-protobufs-for-tests-only-if-gRPC_BUILD_TESTS.patch index 895774d5..eb13c770 100644 --- a/recipe/patches/0009-Build-protobufs-for-tests-only-if-gRPC_BUILD_TESTS.patch +++ b/recipe/patches/0009-Build-protobufs-for-tests-only-if-gRPC_BUILD_TESTS.patch @@ -1,4 +1,4 @@ -From 5e660b8727fd0386388b7b13ac310fbe60786f7c Mon Sep 17 00:00:00 2001 +From 94cc9152fb775197ccb17fbb41635ec77f5541ab Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Thu, 28 Nov 2024 20:40:54 +0100 Subject: [PATCH 09/15] Build protobufs for tests only if gRPC_BUILD_TESTS @@ -8,7 +8,7 @@ Subject: [PATCH 09/15] Build protobufs for tests only if gRPC_BUILD_TESTS 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 72ee817a05..b69b216f3d 100644 +index d94d969069..0c8eb06d37 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -720,6 +720,9 @@ protobuf_generate_grpc_cpp_with_import_path_correction( diff --git a/recipe/patches/0010-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch b/recipe/patches/0010-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch index d2e1d4cb..992be05d 100644 --- a/recipe/patches/0010-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch +++ b/recipe/patches/0010-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch @@ -1,4 +1,4 @@ -From 1e2008eb800e4cc2aa9935fcd9c970a61d09544c Mon Sep 17 00:00:00 2001 +From 0604c1e137468bc20576f92d352ad9c83f0046bf Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 28 Feb 2025 15:09:41 +1100 Subject: [PATCH 10/15] unvendor upb and utf8_range, use protobuf's version @@ -9,7 +9,7 @@ Subject: [PATCH 10/15] unvendor upb and utf8_range, use protobuf's version 2 files changed, 16 insertions(+), 510 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index b69b216f3d..f6b263e764 100644 +index 0c8eb06d37..ed2331df0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -346,11 +346,15 @@ else() @@ -544,7 +544,7 @@ index b69b216f3d..f6b263e764 100644 if(gRPC_BUILD_TESTS) if(gRPC_BUILD_CODEGEN) -@@ -5870,8 +5380,6 @@ target_include_directories(grpc_authorization_provider +@@ -5866,8 +5376,6 @@ target_include_directories(grpc_authorization_provider ) target_link_libraries(grpc_authorization_provider ${_gRPC_ALLTARGETS_LIBRARIES} @@ -553,7 +553,7 @@ index b69b216f3d..f6b263e764 100644 ${_gRPC_RE2_LIBRARIES} ${_gRPC_ZLIB_LIBRARIES} absl::config -@@ -51135,8 +50643,8 @@ generate_pkgconfig( +@@ -51127,8 +50635,8 @@ generate_pkgconfig( "${gRPC_CORE_VERSION}" "absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits 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_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr" "libcares openssl re2 zlib" @@ -564,7 +564,7 @@ index b69b216f3d..f6b263e764 100644 "grpc.pc") # grpc_unsecure .pc file -@@ -51146,8 +50654,8 @@ generate_pkgconfig( +@@ -51138,8 +50646,8 @@ generate_pkgconfig( "${gRPC_CORE_VERSION}" "absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits 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_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr" "libcares zlib" @@ -575,7 +575,7 @@ index b69b216f3d..f6b263e764 100644 "grpc_unsecure.pc") # grpc++ .pc file -@@ -51157,8 +50665,8 @@ generate_pkgconfig( +@@ -51149,8 +50657,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_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_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr grpc" "libcares openssl re2 zlib" @@ -586,7 +586,7 @@ index b69b216f3d..f6b263e764 100644 "grpc++.pc") # grpc++_unsecure .pc file -@@ -51168,8 +50676,8 @@ generate_pkgconfig( +@@ -51160,8 +50668,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_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_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr grpc_unsecure" "libcares zlib" @@ -597,7 +597,7 @@ index b69b216f3d..f6b263e764 100644 "grpc++_unsecure.pc") # grpcpp_otel_plugin .pc file -@@ -51179,6 +50687,6 @@ generate_pkgconfig( +@@ -51171,6 +50679,6 @@ 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_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_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr grpc grpc++ opentelemetry_api" "libcares openssl re2 zlib" diff --git a/recipe/patches/0011-reduce-buildtests_cxx-target-to-end2end-tests.patch b/recipe/patches/0011-reduce-buildtests_cxx-target-to-end2end-tests.patch index b5052b5c..4a60dfcf 100644 --- a/recipe/patches/0011-reduce-buildtests_cxx-target-to-end2end-tests.patch +++ b/recipe/patches/0011-reduce-buildtests_cxx-target-to-end2end-tests.patch @@ -1,4 +1,4 @@ -From 41bcad7889bdb4f6ce7edf38594ad1cc3e1f64ad Mon Sep 17 00:00:00 2001 +From 418aef191c1269ec7de1b63cd1a0ba5b47485042 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 2 Mar 2025 08:22:39 +1100 Subject: [PATCH 11/15] reduce buildtests_cxx target to end2end tests @@ -15,7 +15,7 @@ Plus four support libraries (`grpc{,++}_test{,_config,_util}`) and the vendored 1 file changed, 50 insertions(+), 688 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index f6b263e764..31d10c10a6 100644 +index ed2331df0a..643e5298dd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,11 +47,12 @@ set(gRPC_INSTALL_SHAREDIR "share/grpc" CACHE STRING "Installation directory for @@ -793,7 +793,7 @@ index f6b263e764..31d10c10a6 100644 add_library(gtest third_party/googletest/googlemock/src/gmock-cardinalities.cc -@@ -4555,7 +3917,7 @@ if(gRPC_INSTALL) +@@ -4551,7 +3913,7 @@ if(gRPC_INSTALL) endif() endif() @@ -802,7 +802,7 @@ index f6b263e764..31d10c10a6 100644 add_library(grpc++_test src/cpp/client/channel_test_peer.cc -@@ -4628,7 +3990,7 @@ foreach(_hdr +@@ -4624,7 +3986,7 @@ foreach(_hdr endforeach() endif() @@ -811,7 +811,7 @@ index f6b263e764..31d10c10a6 100644 add_library(grpc++_test_config test/cpp/util/test_config_cc.cc -@@ -4680,7 +4042,7 @@ target_link_libraries(grpc++_test_config +@@ -4676,7 +4038,7 @@ target_link_libraries(grpc++_test_config endif() @@ -820,7 +820,7 @@ index f6b263e764..31d10c10a6 100644 add_library(grpc++_test_util src/core/util/subprocess_posix.cc -@@ -5969,7 +5331,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -5961,7 +5323,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -829,7 +829,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(admin_services_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.pb.cc -@@ -7384,7 +6746,7 @@ target_link_libraries(arena_test +@@ -7376,7 +6738,7 @@ target_link_libraries(arena_test endif() @@ -838,7 +838,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(async_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc -@@ -11378,7 +10740,7 @@ target_link_libraries(client_authority_filter_test +@@ -11370,7 +10732,7 @@ target_link_libraries(client_authority_filter_test endif() @@ -847,7 +847,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(client_callback_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -11623,7 +10985,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -11615,7 +10977,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -856,7 +856,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(client_interceptors_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -11700,7 +11062,7 @@ target_link_libraries(client_interceptors_end2end_test +@@ -11692,7 +11054,7 @@ target_link_libraries(client_interceptors_end2end_test endif() @@ -865,7 +865,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(client_lb_end2end_test -@@ -12628,7 +11990,7 @@ target_link_libraries(connectivity_test +@@ -12620,7 +11982,7 @@ target_link_libraries(connectivity_test endif() @@ -874,7 +874,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(context_allocator_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -13726,7 +13088,7 @@ target_link_libraries(empty_batch_test +@@ -13718,7 +13080,7 @@ target_link_libraries(empty_batch_test endif() @@ -883,7 +883,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -15814,7 +15176,7 @@ target_link_libraries(gcp_authentication_filter_test +@@ -15806,7 +15168,7 @@ target_link_libraries(gcp_authentication_filter_test endif() @@ -892,7 +892,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(generic_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -16384,7 +15746,7 @@ target_link_libraries(grpc_authorization_policy_provider_test +@@ -16376,7 +15738,7 @@ target_link_libraries(grpc_authorization_policy_provider_test endif() @@ -901,7 +901,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(grpc_authz_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -17432,7 +16794,7 @@ target_link_libraries(grpclb_api_test +@@ -17424,7 +16786,7 @@ target_link_libraries(grpclb_api_test endif() @@ -910,7 +910,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(grpclb_end2end_test -@@ -17862,7 +17224,7 @@ target_link_libraries(headers_bad_client_test +@@ -17854,7 +17216,7 @@ target_link_libraries(headers_bad_client_test endif() @@ -919,7 +919,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(health_service_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc -@@ -18771,7 +18133,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -18763,7 +18125,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -928,7 +928,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(hybrid_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -21127,7 +20489,7 @@ target_link_libraries(memory_quota_test +@@ -21119,7 +20481,7 @@ target_link_libraries(memory_quota_test endif() @@ -937,7 +937,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(message_allocator_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -22296,7 +21658,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -22288,7 +21650,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -946,7 +946,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(orca_service_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_service.pb.cc -@@ -23673,7 +23035,7 @@ target_link_libraries(poll_test +@@ -23665,7 +23027,7 @@ target_link_libraries(poll_test endif() @@ -955,7 +955,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(port_sharing_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -25386,7 +24748,7 @@ target_link_libraries(random_early_detection_test +@@ -25378,7 +24740,7 @@ target_link_libraries(random_early_detection_test endif() @@ -964,7 +964,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(raw_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -26242,7 +25604,7 @@ target_link_libraries(resolve_address_using_native_resolver_test +@@ -26234,7 +25596,7 @@ target_link_libraries(resolve_address_using_native_resolver_test endif() @@ -973,7 +973,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(resource_quota_end2end_stress_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -29394,7 +28756,7 @@ target_link_libraries(ring_hash_test +@@ -29386,7 +28748,7 @@ target_link_libraries(ring_hash_test endif() @@ -982,7 +982,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(rls_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls.pb.cc -@@ -30428,7 +29790,7 @@ target_link_libraries(server_finishes_request_test +@@ -30420,7 +29782,7 @@ target_link_libraries(server_finishes_request_test endif() @@ -991,7 +991,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(server_interceptors_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -30804,7 +30166,7 @@ target_link_libraries(server_test +@@ -30796,7 +30158,7 @@ target_link_libraries(server_test endif() @@ -1000,7 +1000,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(service_config_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -33168,7 +32530,7 @@ target_link_libraries(test_core_channelz_channelz_test +@@ -33160,7 +32522,7 @@ target_link_libraries(test_core_channelz_channelz_test endif() @@ -1009,7 +1009,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(test_core_end2end_channelz_test ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc -@@ -33681,7 +33043,7 @@ target_link_libraries(test_cpp_client_credentials_test +@@ -33673,7 +33035,7 @@ target_link_libraries(test_cpp_client_credentials_test endif() @@ -1018,7 +1018,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(test_cpp_end2end_ssl_credentials_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -37309,7 +36671,7 @@ target_link_libraries(xds_client_test +@@ -37301,7 +36663,7 @@ target_link_libraries(xds_client_test endif() @@ -1027,7 +1027,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_cluster_end2end_test -@@ -38352,7 +37714,7 @@ target_link_libraries(xds_cluster_resource_type_test +@@ -38344,7 +37706,7 @@ target_link_libraries(xds_cluster_resource_type_test endif() @@ -1036,7 +1036,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_cluster_type_end2end_test -@@ -39242,7 +38604,7 @@ target_link_libraries(xds_common_types_test +@@ -39234,7 +38596,7 @@ target_link_libraries(xds_common_types_test endif() @@ -1045,7 +1045,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_core_end2end_test -@@ -39773,7 +39135,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -39765,7 +39127,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1054,7 +1054,7 @@ index f6b263e764..31d10c10a6 100644 add_executable(xds_credentials_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -39900,7 +39262,7 @@ target_link_libraries(xds_credentials_test +@@ -39892,7 +39254,7 @@ target_link_libraries(xds_credentials_test endif() @@ -1063,7 +1063,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_csds_end2end_test -@@ -40523,7 +39885,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -40515,7 +39877,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1072,7 +1072,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_enabled_server_end2end_test -@@ -41368,7 +40730,7 @@ target_link_libraries(xds_endpoint_resource_type_test +@@ -41360,7 +40722,7 @@ target_link_libraries(xds_endpoint_resource_type_test endif() @@ -1081,7 +1081,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_fallback_end2end_test -@@ -41898,7 +41260,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -41890,7 +41252,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1090,7 +1090,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) add_executable(xds_fault_injection_end2end_test -@@ -42436,7 +41798,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) +@@ -42428,7 +41790,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1099,7 +1099,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_gcp_authn_end2end_test -@@ -42970,7 +42332,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -42962,7 +42324,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1108,7 +1108,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_http_connect_end2end_test -@@ -45171,7 +44533,7 @@ target_link_libraries(xds_metadata_test +@@ -45163,7 +44525,7 @@ target_link_libraries(xds_metadata_test endif() @@ -1117,7 +1117,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_outlier_detection_end2end_test -@@ -45709,7 +45071,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -45701,7 +45063,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1126,7 +1126,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_override_host_end2end_test -@@ -46338,7 +45700,7 @@ target_link_libraries(xds_override_host_test +@@ -46330,7 +45692,7 @@ target_link_libraries(xds_override_host_test endif() @@ -1135,7 +1135,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_pick_first_end2end_test -@@ -46877,7 +46239,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -46869,7 +46231,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1144,7 +1144,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_ring_hash_end2end_test -@@ -47412,7 +46774,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -47404,7 +46766,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1153,7 +1153,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_rls_end2end_test -@@ -48353,7 +47715,7 @@ target_link_libraries(xds_route_config_resource_type_test +@@ -48345,7 +47707,7 @@ target_link_libraries(xds_route_config_resource_type_test endif() @@ -1162,7 +1162,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_routing_end2end_test -@@ -48891,7 +48253,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -48883,7 +48245,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1171,7 +1171,7 @@ index f6b263e764..31d10c10a6 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_security_end2end_test -@@ -50025,7 +49387,7 @@ target_link_libraries(xds_stats_watcher_test +@@ -50017,7 +49379,7 @@ target_link_libraries(xds_stats_watcher_test endif() diff --git a/recipe/patches/0012-build-grpcio-tools-from-source.patch b/recipe/patches/0012-build-grpcio-tools-from-source.patch index 5e8fef21..c8c7ebd9 100644 --- a/recipe/patches/0012-build-grpcio-tools-from-source.patch +++ b/recipe/patches/0012-build-grpcio-tools-from-source.patch @@ -1,4 +1,4 @@ -From 6bdcff13fe6ef5c5fc18b50f0a12cf37343917c6 Mon Sep 17 00:00:00 2001 +From 19ddf760fec5c9aa91fba9f9ea02ba7d6bc462cb Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 4 Mar 2025 08:53:30 +1100 Subject: [PATCH 12/15] build grpcio-tools from source diff --git a/recipe/patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch b/recipe/patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch index b4fe1dcd..7cc12900 100644 --- a/recipe/patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch +++ b/recipe/patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch @@ -1,4 +1,4 @@ -From 2aeef12d417bd880de8004aaf8ceaeaf26a82361 Mon Sep 17 00:00:00 2001 +From 0be50ffaf8c05054a2e1bcde00bcf472d55a7bca Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 1 Mar 2025 08:06:28 +1100 Subject: [PATCH 13/15] add linkage to openssl to grpc_unsecure @@ -12,7 +12,7 @@ https://github.com/grpc/grpc/blob/v1.69.0/src/core/tsi/ssl_transport_security_ut 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 31d10c10a6..e533337cdf 100644 +index 643e5298dd..facd85260d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3029,6 +3029,7 @@ add_library(grpc_unsecure diff --git a/recipe/patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch b/recipe/patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch index a3294482..ad29866b 100644 --- a/recipe/patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch +++ b/recipe/patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch @@ -1,4 +1,4 @@ -From 37e86c55123f8285c5db9ca3953bc236aad85882 Mon Sep 17 00:00:00 2001 +From 616d625aa7707335c633575dea0f0c97339b5dd1 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 5 Mar 2025 13:21:01 +1100 Subject: [PATCH 14/15] reduce grpc symbol explosion with autogenerated export @@ -38,7 +38,7 @@ other consumers end up linking to them. 1 file changed, 24 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index e533337cdf..86c06eb89b 100644 +index facd85260d..328b1fd650 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2396,6 +2396,30 @@ add_library(grpc diff --git a/recipe/patches/0015-update-GRPC_DLL-instances-where-necessary.patch b/recipe/patches/0015-update-GRPC_DLL-instances-where-necessary.patch index 21c33d43..3deddf8f 100644 --- a/recipe/patches/0015-update-GRPC_DLL-instances-where-necessary.patch +++ b/recipe/patches/0015-update-GRPC_DLL-instances-where-necessary.patch @@ -1,4 +1,4 @@ -From a1b3b6828b80bc9b669aedc51c085992b05ed8f3 Mon Sep 17 00:00:00 2001 +From 609a2b7fd345c7d29dba3dd4e23e5836ca58c4fc Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 2 Mar 2025 07:16:19 +1100 Subject: [PATCH 15/15] update GRPC_DLL instances where necessary From 2570b753137d823a60e7456577ebdac36be30c6a Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 14 Mar 2025 12:40:25 +1100 Subject: [PATCH 3/6] add some exports for classes needed by google-cloud --- recipe/meta.yaml | 3 +- .../patches/0001-windows-ssl-lib-names.patch | 2 +- recipe/patches/0002-fix-win-setup-cmds.patch | 2 +- .../0003-Link-against-grpc-and-abseil.patch | 2 +- .../0004-force-protoc-executable.patch | 2 +- ...inkages-of-grpc-_unsecure-as-private.patch | 2 +- ...-set-_DLL_EXPORTS-when-building-and-.patch | 2 +- ...ing-linkages-for-gRPC_BUILD_TESTS-ON.patch | 2 +- ...-add-enable_testing-so-tests-get-run.patch | 2 +- ...s-for-tests-only-if-gRPC_BUILD_TESTS.patch | 2 +- ...nd-utf8_range-use-protobuf-s-version.patch | 2 +- ...ildtests_cxx-target-to-end2end-tests.patch | 2 +- .../0012-build-grpcio-tools-from-source.patch | 2 +- ...-linkage-to-openssl-to-grpc_unsecure.patch | 2 +- ...ol-explosion-with-autogenerated-expo.patch | 2 +- ...e-GRPC_DLL-instances-where-necessary.patch | 2 +- ...DLL-exports-for-symbols-needed-by-gc.patch | 67 +++++++++++++++++++ 17 files changed, 84 insertions(+), 16 deletions(-) create mode 100644 recipe/patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 1a7d4986..f0afbf3b 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -46,6 +46,7 @@ source: - patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch # [win] - patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch - patches/0015-update-GRPC_DLL-instances-where-necessary.patch + - patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch {% if build_platform == target_platform and not win %} - folder: third_party/benchmark @@ -74,7 +75,7 @@ source: {% endif %} build: - number: 0 + number: 1 outputs: - name: libgrpc diff --git a/recipe/patches/0001-windows-ssl-lib-names.patch b/recipe/patches/0001-windows-ssl-lib-names.patch index 74fe3e5c..2200377a 100644 --- a/recipe/patches/0001-windows-ssl-lib-names.patch +++ b/recipe/patches/0001-windows-ssl-lib-names.patch @@ -1,7 +1,7 @@ From a1f2bdb936cf0720b3e6a825276089e40a47499a Mon Sep 17 00:00:00 2001 From: Jonathan Helmus Date: Mon, 17 Feb 2020 15:45:06 -0600 -Subject: [PATCH 01/15] windows ssl lib names +Subject: [PATCH 01/16] windows ssl lib names Co-Authored-By: Julien Schueller Co-Authored-By: Nicholas Bollweg diff --git a/recipe/patches/0002-fix-win-setup-cmds.patch b/recipe/patches/0002-fix-win-setup-cmds.patch index 4c5d5b6b..d2fbb481 100644 --- a/recipe/patches/0002-fix-win-setup-cmds.patch +++ b/recipe/patches/0002-fix-win-setup-cmds.patch @@ -1,7 +1,7 @@ From a41de15b2b9cc889582212d65bc545e7c3b50cc5 Mon Sep 17 00:00:00 2001 From: Mike Sarahan Date: Tue, 18 Feb 2020 13:53:05 -0600 -Subject: [PATCH 02/15] fix win setup cmds +Subject: [PATCH 02/16] fix win setup cmds Co-Authored-By: Julien Schueller Co-Authored-By: Nicholas Bollweg diff --git a/recipe/patches/0003-Link-against-grpc-and-abseil.patch b/recipe/patches/0003-Link-against-grpc-and-abseil.patch index c870bceb..17412015 100644 --- a/recipe/patches/0003-Link-against-grpc-and-abseil.patch +++ b/recipe/patches/0003-Link-against-grpc-and-abseil.patch @@ -1,7 +1,7 @@ From f671ec44b769d0463dfae979d9e223400d49132c Mon Sep 17 00:00:00 2001 From: Marius van Niekerk Date: Mon, 13 Jun 2022 17:13:07 -0400 -Subject: [PATCH 03/15] Link against grpc and abseil +Subject: [PATCH 03/16] Link against grpc and abseil Co-Authored-By: H. Vetinari --- diff --git a/recipe/patches/0004-force-protoc-executable.patch b/recipe/patches/0004-force-protoc-executable.patch index 2f5a9d5d..b37e309f 100644 --- a/recipe/patches/0004-force-protoc-executable.patch +++ b/recipe/patches/0004-force-protoc-executable.patch @@ -1,7 +1,7 @@ From 50ba587ddae9dc56a66e8213d6ec1c132a247688 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Fri, 11 Sep 2020 14:20:04 +0200 -Subject: [PATCH 04/15] force protoc executable +Subject: [PATCH 04/16] force protoc executable --- cmake/protobuf.cmake | 17 ++--------------- 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 06ea94dc..46359c1e 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 @@ -1,7 +1,7 @@ From 61600719d36d394f9e02a23cf85926b9e31bfcfc Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 23 Aug 2022 11:45:20 +0200 -Subject: [PATCH 05/15] mark linkages of grpc{,_unsecure} as private +Subject: [PATCH 05/16] mark linkages of grpc{,_unsecure} as private except openssl & gpr, which are needed by dependents 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 2e4f3028..615df7f6 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 @@ -1,7 +1,7 @@ From 3ac8eedcac80613588f8b426b25cf7518db2862b Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 29 Feb 2024 20:31:21 +1100 -Subject: [PATCH 06/15] for main targets, set *_DLL_EXPORTS when building and +Subject: [PATCH 06/16] for main targets, set *_DLL_EXPORTS when building and *_DLL_IMPORTS in interface --- 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 b07f0e4d..ba6547d4 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 @@ -1,7 +1,7 @@ From 90613fc7c920bee58acbb8c10c5b324a14f1e4d7 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 26 Sep 2023 18:25:54 +1100 -Subject: [PATCH 07/15] add missing linkages for gRPC_BUILD_TESTS=ON +Subject: [PATCH 07/16] add missing linkages for gRPC_BUILD_TESTS=ON --- CMakeLists.txt | 9 +++++++++ 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 a75ce2ed..b69b0368 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 @@ -1,7 +1,7 @@ From d17b32bf4e431368e9808e742a7631c8b03255c6 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 28 Feb 2025 22:07:19 +1100 -Subject: [PATCH 08/15] add enable_testing so tests get run +Subject: [PATCH 08/16] add enable_testing so tests get run --- CMakeLists.txt | 4 ++++ diff --git a/recipe/patches/0009-Build-protobufs-for-tests-only-if-gRPC_BUILD_TESTS.patch b/recipe/patches/0009-Build-protobufs-for-tests-only-if-gRPC_BUILD_TESTS.patch index eb13c770..9115b1db 100644 --- a/recipe/patches/0009-Build-protobufs-for-tests-only-if-gRPC_BUILD_TESTS.patch +++ b/recipe/patches/0009-Build-protobufs-for-tests-only-if-gRPC_BUILD_TESTS.patch @@ -1,7 +1,7 @@ From 94cc9152fb775197ccb17fbb41635ec77f5541ab Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Thu, 28 Nov 2024 20:40:54 +0100 -Subject: [PATCH 09/15] Build protobufs for tests only if gRPC_BUILD_TESTS +Subject: [PATCH 09/16] Build protobufs for tests only if gRPC_BUILD_TESTS --- CMakeLists.txt | 4 +++- diff --git a/recipe/patches/0010-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch b/recipe/patches/0010-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch index 992be05d..6c6bdeaa 100644 --- a/recipe/patches/0010-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch +++ b/recipe/patches/0010-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch @@ -1,7 +1,7 @@ From 0604c1e137468bc20576f92d352ad9c83f0046bf Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 28 Feb 2025 15:09:41 +1100 -Subject: [PATCH 10/15] unvendor upb and utf8_range, use protobuf's version +Subject: [PATCH 10/16] unvendor upb and utf8_range, use protobuf's version --- CMakeLists.txt | 522 ++---------------------------------------------- diff --git a/recipe/patches/0011-reduce-buildtests_cxx-target-to-end2end-tests.patch b/recipe/patches/0011-reduce-buildtests_cxx-target-to-end2end-tests.patch index 4a60dfcf..1822ccdd 100644 --- a/recipe/patches/0011-reduce-buildtests_cxx-target-to-end2end-tests.patch +++ b/recipe/patches/0011-reduce-buildtests_cxx-target-to-end2end-tests.patch @@ -1,7 +1,7 @@ From 418aef191c1269ec7de1b63cd1a0ba5b47485042 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 2 Mar 2025 08:22:39 +1100 -Subject: [PATCH 11/15] reduce buildtests_cxx target to end2end tests +Subject: [PATCH 11/16] reduce buildtests_cxx target to end2end tests as of v1.69, the whole set of tests takes extremely long to build (>6h), so reduce it to only "end2end" tests. This has the advantage of being diff --git a/recipe/patches/0012-build-grpcio-tools-from-source.patch b/recipe/patches/0012-build-grpcio-tools-from-source.patch index c8c7ebd9..cb6f0bb8 100644 --- a/recipe/patches/0012-build-grpcio-tools-from-source.patch +++ b/recipe/patches/0012-build-grpcio-tools-from-source.patch @@ -1,7 +1,7 @@ From 19ddf760fec5c9aa91fba9f9ea02ba7d6bc462cb Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 4 Mar 2025 08:53:30 +1100 -Subject: [PATCH 12/15] build grpcio-tools from source +Subject: [PATCH 12/16] build grpcio-tools from source --- tools/distrib/python/grpcio_tools/setup.py | 43 ++++++++++++++++------ diff --git a/recipe/patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch b/recipe/patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch index 7cc12900..1f04aedc 100644 --- a/recipe/patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch +++ b/recipe/patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch @@ -1,7 +1,7 @@ From 0be50ffaf8c05054a2e1bcde00bcf472d55a7bca Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 1 Mar 2025 08:06:28 +1100 -Subject: [PATCH 13/15] add linkage to openssl to grpc_unsecure +Subject: [PATCH 13/16] add linkage to openssl to grpc_unsecure grpc_unsecure actually requires ParsePemCertificateChain / ParsePemPrivateKey from that TU in ValidatePemKeyCertPair, see diff --git a/recipe/patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch b/recipe/patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch index ad29866b..e543541e 100644 --- a/recipe/patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch +++ b/recipe/patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch @@ -1,7 +1,7 @@ From 616d625aa7707335c633575dea0f0c97339b5dd1 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 5 Mar 2025 13:21:01 +1100 -Subject: [PATCH 14/15] reduce grpc symbol explosion with autogenerated export +Subject: [PATCH 14/16] reduce grpc symbol explosion with autogenerated export definitions file Basically, WINDOWS_EXPORT_ALL_SYMBOLS is a nuclear option that includes all symbols diff --git a/recipe/patches/0015-update-GRPC_DLL-instances-where-necessary.patch b/recipe/patches/0015-update-GRPC_DLL-instances-where-necessary.patch index 3deddf8f..302acfc1 100644 --- a/recipe/patches/0015-update-GRPC_DLL-instances-where-necessary.patch +++ b/recipe/patches/0015-update-GRPC_DLL-instances-where-necessary.patch @@ -1,7 +1,7 @@ From 609a2b7fd345c7d29dba3dd4e23e5836ca58c4fc Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 2 Mar 2025 07:16:19 +1100 -Subject: [PATCH 15/15] update GRPC_DLL instances where necessary +Subject: [PATCH 15/16] update GRPC_DLL instances where necessary --- include/grpc/event_engine/event_engine.h | 2 +- diff --git a/recipe/patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch b/recipe/patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch new file mode 100644 index 00000000..3e8714dd --- /dev/null +++ b/recipe/patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch @@ -0,0 +1,67 @@ +From 2a13446a8ba1ca096d2701039267b82c531f924c Mon Sep 17 00:00:00 2001 +From: "H. Vetinari" +Date: Fri, 14 Mar 2025 12:27:58 +1100 +Subject: [PATCH 16/16] add some GRPCXX_DLL exports for symbols needed by gcp + +--- + include/grpcpp/impl/rpc_service_method.h | 3 ++- + include/grpcpp/support/client_callback.h | 4 ++-- + include/grpcpp/support/method_handler.h | 2 +- + 3 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/include/grpcpp/impl/rpc_service_method.h b/include/grpcpp/impl/rpc_service_method.h +index 1b9911eca4..f551a7d606 100644 +--- a/include/grpcpp/impl/rpc_service_method.h ++++ b/include/grpcpp/impl/rpc_service_method.h +@@ -19,6 +19,7 @@ + #ifndef GRPCPP_IMPL_RPC_SERVICE_METHOD_H + #define GRPCPP_IMPL_RPC_SERVICE_METHOD_H + ++#include + #include + #include + #include +@@ -86,7 +87,7 @@ class MethodHandler { + class RpcServiceMethod : public RpcMethod { + public: + /// Takes ownership of the handler +- RpcServiceMethod(const char* name, RpcMethod::RpcType type, ++ GRPCXX_DLL RpcServiceMethod(const char* name, RpcMethod::RpcType type, + MethodHandler* handler) + : RpcMethod(name, type), + server_tag_(nullptr), +diff --git a/include/grpcpp/support/client_callback.h b/include/grpcpp/support/client_callback.h +index b3818eada6..f10fcf4d18 100644 +--- a/include/grpcpp/support/client_callback.h ++++ b/include/grpcpp/support/client_callback.h +@@ -49,7 +49,7 @@ class RpcMethod; + template +-void CallbackUnaryCall(grpc::ChannelInterface* channel, ++GRPCXX_DLL void CallbackUnaryCall(grpc::ChannelInterface* channel, + const grpc::internal::RpcMethod& method, + grpc::ClientContext* context, + const InputMessage* request, OutputMessage* result, +@@ -1203,7 +1203,7 @@ class ClientCallbackUnaryImpl final : public ClientCallbackUnary { + std::atomic callbacks_outstanding_{2}; + }; + +-class ClientCallbackUnaryFactory { ++GRPCXX_DLL class ClientCallbackUnaryFactory { + public: + template +diff --git a/include/grpcpp/support/method_handler.h b/include/grpcpp/support/method_handler.h +index a61843bdb8..3791d5a78c 100644 +--- a/include/grpcpp/support/method_handler.h ++++ b/include/grpcpp/support/method_handler.h +@@ -99,7 +99,7 @@ template + class RpcMethodHandler : public grpc::internal::MethodHandler { + public: +- RpcMethodHandler( ++ GRPCXX_DLL RpcMethodHandler( + std::function + func, From 64dd76070c822e3d2f2995f45cf4930042fcd17d Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 14 Mar 2025 18:39:23 +1100 Subject: [PATCH 4/6] move CallbackUnaryCall from header to library on win --- recipe/meta.yaml | 2 +- ...DLL-exports-for-symbols-needed-by-gc.patch | 57 ++++++++++++++++--- 2 files changed, 50 insertions(+), 9 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index f0afbf3b..6dcfb16b 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -46,7 +46,7 @@ source: - patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch # [win] - patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch - patches/0015-update-GRPC_DLL-instances-where-necessary.patch - - patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch + - patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch # [win] {% if build_platform == target_platform and not win %} - folder: third_party/benchmark diff --git a/recipe/patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch b/recipe/patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch index 3e8714dd..720757eb 100644 --- a/recipe/patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch +++ b/recipe/patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch @@ -1,13 +1,16 @@ -From 2a13446a8ba1ca096d2701039267b82c531f924c Mon Sep 17 00:00:00 2001 +From daff5526aae5c6364983e52f67da6ab890c96b7f Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 14 Mar 2025 12:27:58 +1100 Subject: [PATCH 16/16] add some GRPCXX_DLL exports for symbols needed by gcp +also move CallbackUnaryCall to .cc, otherwise we get clashes between something +that's supposed to be dllimported, yet having a definition in the header --- - include/grpcpp/impl/rpc_service_method.h | 3 ++- - include/grpcpp/support/client_callback.h | 4 ++-- - include/grpcpp/support/method_handler.h | 2 +- - 3 files changed, 5 insertions(+), 4 deletions(-) + include/grpcpp/impl/rpc_service_method.h | 3 ++- + include/grpcpp/support/client_callback.h | 13 +++---------- + include/grpcpp/support/method_handler.h | 2 +- + src/cpp/client/client_callback.cc | 16 ++++++++++++++++ + 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/include/grpcpp/impl/rpc_service_method.h b/include/grpcpp/impl/rpc_service_method.h index 1b9911eca4..f551a7d606 100644 @@ -31,10 +34,10 @@ index 1b9911eca4..f551a7d606 100644 : RpcMethod(name, type), server_tag_(nullptr), diff --git a/include/grpcpp/support/client_callback.h b/include/grpcpp/support/client_callback.h -index b3818eada6..f10fcf4d18 100644 +index b3818eada6..e9c706c163 100644 --- a/include/grpcpp/support/client_callback.h +++ b/include/grpcpp/support/client_callback.h -@@ -49,7 +49,7 @@ class RpcMethod; +@@ -49,18 +49,11 @@ class RpcMethod; template @@ -43,7 +46,19 @@ index b3818eada6..f10fcf4d18 100644 const grpc::internal::RpcMethod& method, grpc::ClientContext* context, const InputMessage* request, OutputMessage* result, -@@ -1203,7 +1203,7 @@ class ClientCallbackUnaryImpl final : public ClientCallbackUnary { +- std::function on_completion) { +- static_assert(std::is_base_of::value, +- "Invalid input message specification"); +- static_assert(std::is_base_of::value, +- "Invalid output message specification"); +- CallbackUnaryCallImpl x( +- channel, method, context, request, result, on_completion); +-} ++ std::function on_completion); + + template + class CallbackUnaryCallImpl { +@@ -1203,7 +1196,7 @@ class ClientCallbackUnaryImpl final : public ClientCallbackUnary { std::atomic callbacks_outstanding_{2}; }; @@ -65,3 +80,29 @@ index a61843bdb8..3791d5a78c 100644 std::function func, +diff --git a/src/cpp/client/client_callback.cc b/src/cpp/client/client_callback.cc +index 85e3ec4569..a8e3b3e2b8 100644 +--- a/src/cpp/client/client_callback.cc ++++ b/src/cpp/client/client_callback.cc +@@ -28,5 +28,21 @@ bool ClientReactor::InternalTrailersOnly(const grpc_call* call) const { + return grpc_call_is_trailers_only(call); + } + ++template ++void CallbackUnaryCall(grpc::ChannelInterface* channel, ++ const grpc::internal::RpcMethod& method, ++ grpc::ClientContext* context, ++ const InputMessage* request, OutputMessage* result, ++ std::function on_completion) { ++ static_assert(std::is_base_of::value, ++ "Invalid input message specification"); ++ static_assert(std::is_base_of::value, ++ "Invalid output message specification"); ++ CallbackUnaryCallImpl x( ++ channel, method, context, request, result, on_completion); ++} ++ + } // namespace internal + } // namespace grpc From a1a1d40ed6e5316fd1b7260bbfe17f14adb81719 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 14 Mar 2025 20:31:44 +1100 Subject: [PATCH 5/6] iterate --- ...-set-_DLL_EXPORTS-when-building-and-.patch | 40 ++------- ...ing-linkages-for-gRPC_BUILD_TESTS-ON.patch | 22 ++--- ...-add-enable_testing-so-tests-get-run.patch | 4 +- ...s-for-tests-only-if-gRPC_BUILD_TESTS.patch | 4 +- ...nd-utf8_range-use-protobuf-s-version.patch | 16 ++-- ...ildtests_cxx-target-to-end2end-tests.patch | 90 +++++++++---------- .../0012-build-grpcio-tools-from-source.patch | 2 +- ...-linkage-to-openssl-to-grpc_unsecure.patch | 4 +- ...ol-explosion-with-autogenerated-expo.patch | 4 +- ...e-GRPC_DLL-instances-where-necessary.patch | 2 +- ...DLL-exports-for-symbols-needed-by-gc.patch | 2 +- 11 files changed, 80 insertions(+), 110 deletions(-) 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 615df7f6..f41c5857 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 @@ -1,15 +1,15 @@ -From 3ac8eedcac80613588f8b426b25cf7518db2862b Mon Sep 17 00:00:00 2001 +From b6a184e18b663c5c655488cf9266f8923827356b Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 29 Feb 2024 20:31:21 +1100 Subject: [PATCH 06/16] for main targets, set *_DLL_EXPORTS when building and *_DLL_IMPORTS in interface --- - CMakeLists.txt | 52 ++++++++++++++------------------------------------ - 1 file changed, 14 insertions(+), 38 deletions(-) + CMakeLists.txt | 36 ++++++++++-------------------------- + 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index aa48ccb04c..1766735441 100644 +index aa48ccb04c..4bd0b0cac2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2092,10 +2092,8 @@ if(WIN32 AND MSVC) @@ -68,22 +68,7 @@ index aa48ccb04c..1766735441 100644 endif() if(gRPC_INSTALL) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++.pdb -@@ -4994,12 +4982,8 @@ if(WIN32 AND MSVC) - COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" - ) - if(BUILD_SHARED_LIBS) -- target_compile_definitions(grpc++_reflection -- PRIVATE -- "GPR_DLL_IMPORTS" -- "GRPC_DLL_IMPORTS" -- "GRPCXX_DLL_IMPORTS" -- ) -+ target_compile_definitions(grpc++_reflection PRIVATE "GRPC_DLL_IMPORTS" "GRPCXX_DLL_EXPORTS") -+ target_compile_definitions(grpc++_reflection INTERFACE "GRPC_DLL_IMPORTS" "GRPCXX_DLL_IMPORTS") - endif() - if(gRPC_INSTALL) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_reflection.pdb -@@ -5306,12 +5290,8 @@ if(WIN32 AND MSVC) +@@ -5306,12 +5294,8 @@ if(WIN32 AND MSVC) COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) if(BUILD_SHARED_LIBS) @@ -98,18 +83,3 @@ index aa48ccb04c..1766735441 100644 endif() if(gRPC_INSTALL) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc++_unsecure.pdb -@@ -6057,12 +6037,8 @@ if(WIN32 AND MSVC) - COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" - ) - if(BUILD_SHARED_LIBS) -- target_compile_definitions(grpcpp_channelz -- PRIVATE -- "GPR_DLL_IMPORTS" -- "GRPC_DLL_IMPORTS" -- "GRPCXX_DLL_IMPORTS" -- ) -+ target_compile_definitions(grpcpp_channelz PRIVATE "GRPC_DLL_IMPORTS" "GRPCXX_DLL_EXPORTS") -+ target_compile_definitions(grpcpp_channelz INTERFACE "GRPC_DLL_IMPORTS" "GRPCXX_DLL_IMPORTS") - endif() - if(gRPC_INSTALL) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpcpp_channelz.pdb 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 ba6547d4..1826cfdd 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 @@ -1,4 +1,4 @@ -From 90613fc7c920bee58acbb8c10c5b324a14f1e4d7 Mon Sep 17 00:00:00 2001 +From 2574106452e727e15f61b9537da2f38c128eb1b8 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 26 Sep 2023 18:25:54 +1100 Subject: [PATCH 07/16] add missing linkages for gRPC_BUILD_TESTS=ON @@ -8,10 +8,10 @@ Subject: [PATCH 07/16] add missing linkages for gRPC_BUILD_TESTS=ON 1 file changed, 9 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1766735441..a3b0b709cf 100644 +index 4bd0b0cac2..0c782cde52 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -8081,6 +8081,7 @@ target_include_directories(authorization_matchers_test +@@ -8089,6 +8089,7 @@ target_include_directories(authorization_matchers_test ) target_link_libraries(authorization_matchers_test @@ -19,7 +19,7 @@ index 1766735441..a3b0b709cf 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -16802,6 +16803,7 @@ target_include_directories(grpc_authorization_engine_test +@@ -16810,6 +16811,7 @@ target_include_directories(grpc_authorization_engine_test ) target_link_libraries(grpc_authorization_engine_test @@ -27,7 +27,7 @@ index 1766735441..a3b0b709cf 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -19191,6 +19193,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -19199,6 +19201,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) ) target_link_libraries(httpcli_test @@ -35,7 +35,7 @@ index 1766735441..a3b0b709cf 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc++_test_util -@@ -21180,6 +21183,7 @@ target_include_directories(matchers_test +@@ -21188,6 +21191,7 @@ target_include_directories(matchers_test ) target_link_libraries(matchers_test @@ -43,7 +43,7 @@ index 1766735441..a3b0b709cf 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -26602,6 +26606,7 @@ target_include_directories(resolve_address_using_ares_resolver_test +@@ -26610,6 +26614,7 @@ target_include_directories(resolve_address_using_ares_resolver_test ) target_link_libraries(resolve_address_using_ares_resolver_test @@ -51,7 +51,7 @@ index 1766735441..a3b0b709cf 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -26706,6 +26711,7 @@ target_include_directories(resolve_address_using_native_resolver_test +@@ -26714,6 +26719,7 @@ target_include_directories(resolve_address_using_native_resolver_test ) target_link_libraries(resolve_address_using_native_resolver_test @@ -59,7 +59,7 @@ index 1766735441..a3b0b709cf 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -39704,6 +39710,7 @@ target_include_directories(xds_common_types_test +@@ -39712,6 +39718,7 @@ target_include_directories(xds_common_types_test ) target_link_libraries(xds_common_types_test @@ -67,7 +67,7 @@ index 1766735441..a3b0b709cf 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc++ -@@ -40363,6 +40370,7 @@ target_include_directories(xds_credentials_test +@@ -40371,6 +40378,7 @@ target_include_directories(xds_credentials_test ) target_link_libraries(xds_credentials_test @@ -75,7 +75,7 @@ index 1766735441..a3b0b709cf 100644 ${_gRPC_ALLTARGETS_LIBRARIES} gtest grpc_test_util -@@ -45328,6 +45336,7 @@ target_include_directories(xds_listener_resource_type_test +@@ -45336,6 +45344,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 b69b0368..d86bdfab 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 @@ -1,4 +1,4 @@ -From d17b32bf4e431368e9808e742a7631c8b03255c6 Mon Sep 17 00:00:00 2001 +From 404ea6b43dda4f7ce3a118070cf9c7ef62716be2 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 28 Feb 2025 22:07:19 +1100 Subject: [PATCH 08/16] add enable_testing so tests get run @@ -8,7 +8,7 @@ Subject: [PATCH 08/16] add enable_testing so tests get run 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index a3b0b709cf..d94d969069 100644 +index 0c782cde52..3a61b4d88b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,10 @@ option(gRPC_BUILD_TESTS "Build tests" OFF) diff --git a/recipe/patches/0009-Build-protobufs-for-tests-only-if-gRPC_BUILD_TESTS.patch b/recipe/patches/0009-Build-protobufs-for-tests-only-if-gRPC_BUILD_TESTS.patch index 9115b1db..21d97403 100644 --- a/recipe/patches/0009-Build-protobufs-for-tests-only-if-gRPC_BUILD_TESTS.patch +++ b/recipe/patches/0009-Build-protobufs-for-tests-only-if-gRPC_BUILD_TESTS.patch @@ -1,4 +1,4 @@ -From 94cc9152fb775197ccb17fbb41635ec77f5541ab Mon Sep 17 00:00:00 2001 +From b653b4eac8fb6da5e72064cfaf501123c3a808c1 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Thu, 28 Nov 2024 20:40:54 +0100 Subject: [PATCH 09/16] Build protobufs for tests only if gRPC_BUILD_TESTS @@ -8,7 +8,7 @@ Subject: [PATCH 09/16] Build protobufs for tests only if gRPC_BUILD_TESTS 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index d94d969069..0c8eb06d37 100644 +index 3a61b4d88b..2e231c7491 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -720,6 +720,9 @@ protobuf_generate_grpc_cpp_with_import_path_correction( diff --git a/recipe/patches/0010-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch b/recipe/patches/0010-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch index 6c6bdeaa..d455605c 100644 --- a/recipe/patches/0010-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch +++ b/recipe/patches/0010-unvendor-upb-and-utf8_range-use-protobuf-s-version.patch @@ -1,4 +1,4 @@ -From 0604c1e137468bc20576f92d352ad9c83f0046bf Mon Sep 17 00:00:00 2001 +From 825a9cbda464425f22fd6dc887dae18126bca5be Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 28 Feb 2025 15:09:41 +1100 Subject: [PATCH 10/16] unvendor upb and utf8_range, use protobuf's version @@ -9,7 +9,7 @@ Subject: [PATCH 10/16] unvendor upb and utf8_range, use protobuf's version 2 files changed, 16 insertions(+), 510 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 0c8eb06d37..ed2331df0a 100644 +index 2e231c7491..9654b4416d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -346,11 +346,15 @@ else() @@ -544,7 +544,7 @@ index 0c8eb06d37..ed2331df0a 100644 if(gRPC_BUILD_TESTS) if(gRPC_BUILD_CODEGEN) -@@ -5866,8 +5376,6 @@ target_include_directories(grpc_authorization_provider +@@ -5870,8 +5380,6 @@ target_include_directories(grpc_authorization_provider ) target_link_libraries(grpc_authorization_provider ${_gRPC_ALLTARGETS_LIBRARIES} @@ -553,7 +553,7 @@ index 0c8eb06d37..ed2331df0a 100644 ${_gRPC_RE2_LIBRARIES} ${_gRPC_ZLIB_LIBRARIES} absl::config -@@ -51127,8 +50635,8 @@ generate_pkgconfig( +@@ -51135,8 +50643,8 @@ generate_pkgconfig( "${gRPC_CORE_VERSION}" "absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits 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_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr" "libcares openssl re2 zlib" @@ -564,7 +564,7 @@ index 0c8eb06d37..ed2331df0a 100644 "grpc.pc") # grpc_unsecure .pc file -@@ -51138,8 +50646,8 @@ generate_pkgconfig( +@@ -51146,8 +50654,8 @@ generate_pkgconfig( "${gRPC_CORE_VERSION}" "absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits 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_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr" "libcares zlib" @@ -575,7 +575,7 @@ index 0c8eb06d37..ed2331df0a 100644 "grpc_unsecure.pc") # grpc++ .pc file -@@ -51149,8 +50657,8 @@ generate_pkgconfig( +@@ -51157,8 +50665,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_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_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr grpc" "libcares openssl re2 zlib" @@ -586,7 +586,7 @@ index 0c8eb06d37..ed2331df0a 100644 "grpc++.pc") # grpc++_unsecure .pc file -@@ -51160,8 +50668,8 @@ generate_pkgconfig( +@@ -51168,8 +50676,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_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_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr grpc_unsecure" "libcares zlib" @@ -597,7 +597,7 @@ index 0c8eb06d37..ed2331df0a 100644 "grpc++_unsecure.pc") # grpcpp_otel_plugin .pc file -@@ -51171,6 +50679,6 @@ generate_pkgconfig( +@@ -51179,6 +50687,6 @@ 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_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_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr grpc grpc++ opentelemetry_api" "libcares openssl re2 zlib" diff --git a/recipe/patches/0011-reduce-buildtests_cxx-target-to-end2end-tests.patch b/recipe/patches/0011-reduce-buildtests_cxx-target-to-end2end-tests.patch index 1822ccdd..35665379 100644 --- a/recipe/patches/0011-reduce-buildtests_cxx-target-to-end2end-tests.patch +++ b/recipe/patches/0011-reduce-buildtests_cxx-target-to-end2end-tests.patch @@ -1,4 +1,4 @@ -From 418aef191c1269ec7de1b63cd1a0ba5b47485042 Mon Sep 17 00:00:00 2001 +From 5778a21aa4f44beffd79002c3ac4a038ac97c61c Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 2 Mar 2025 08:22:39 +1100 Subject: [PATCH 11/16] reduce buildtests_cxx target to end2end tests @@ -15,7 +15,7 @@ Plus four support libraries (`grpc{,++}_test{,_config,_util}`) and the vendored 1 file changed, 50 insertions(+), 688 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index ed2331df0a..643e5298dd 100644 +index 9654b4416d..77f95ed57f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,11 +47,12 @@ set(gRPC_INSTALL_SHAREDIR "share/grpc" CACHE STRING "Installation directory for @@ -793,7 +793,7 @@ index ed2331df0a..643e5298dd 100644 add_library(gtest third_party/googletest/googlemock/src/gmock-cardinalities.cc -@@ -4551,7 +3913,7 @@ if(gRPC_INSTALL) +@@ -4555,7 +3917,7 @@ if(gRPC_INSTALL) endif() endif() @@ -802,7 +802,7 @@ index ed2331df0a..643e5298dd 100644 add_library(grpc++_test src/cpp/client/channel_test_peer.cc -@@ -4624,7 +3986,7 @@ foreach(_hdr +@@ -4628,7 +3990,7 @@ foreach(_hdr endforeach() endif() @@ -811,7 +811,7 @@ index ed2331df0a..643e5298dd 100644 add_library(grpc++_test_config test/cpp/util/test_config_cc.cc -@@ -4676,7 +4038,7 @@ target_link_libraries(grpc++_test_config +@@ -4680,7 +4042,7 @@ target_link_libraries(grpc++_test_config endif() @@ -820,7 +820,7 @@ index ed2331df0a..643e5298dd 100644 add_library(grpc++_test_util src/core/util/subprocess_posix.cc -@@ -5961,7 +5323,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -5969,7 +5331,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -829,7 +829,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(admin_services_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/csds.pb.cc -@@ -7376,7 +6738,7 @@ target_link_libraries(arena_test +@@ -7384,7 +6746,7 @@ target_link_libraries(arena_test endif() @@ -838,7 +838,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(async_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc -@@ -11370,7 +10732,7 @@ target_link_libraries(client_authority_filter_test +@@ -11378,7 +10740,7 @@ target_link_libraries(client_authority_filter_test endif() @@ -847,7 +847,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(client_callback_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -11615,7 +10977,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -11623,7 +10985,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -856,7 +856,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(client_interceptors_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -11692,7 +11054,7 @@ target_link_libraries(client_interceptors_end2end_test +@@ -11700,7 +11062,7 @@ target_link_libraries(client_interceptors_end2end_test endif() @@ -865,7 +865,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(client_lb_end2end_test -@@ -12620,7 +11982,7 @@ target_link_libraries(connectivity_test +@@ -12628,7 +11990,7 @@ target_link_libraries(connectivity_test endif() @@ -874,7 +874,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(context_allocator_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -13718,7 +13080,7 @@ target_link_libraries(empty_batch_test +@@ -13726,7 +13088,7 @@ target_link_libraries(empty_batch_test endif() @@ -883,7 +883,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -15806,7 +15168,7 @@ target_link_libraries(gcp_authentication_filter_test +@@ -15814,7 +15176,7 @@ target_link_libraries(gcp_authentication_filter_test endif() @@ -892,7 +892,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(generic_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -16376,7 +15738,7 @@ target_link_libraries(grpc_authorization_policy_provider_test +@@ -16384,7 +15746,7 @@ target_link_libraries(grpc_authorization_policy_provider_test endif() @@ -901,7 +901,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(grpc_authz_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -17424,7 +16786,7 @@ target_link_libraries(grpclb_api_test +@@ -17432,7 +16794,7 @@ target_link_libraries(grpclb_api_test endif() @@ -910,7 +910,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(grpclb_end2end_test -@@ -17854,7 +17216,7 @@ target_link_libraries(headers_bad_client_test +@@ -17862,7 +17224,7 @@ target_link_libraries(headers_bad_client_test endif() @@ -919,7 +919,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(health_service_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/health/v1/health.pb.cc -@@ -18763,7 +18125,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -18771,7 +18133,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -928,7 +928,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(hybrid_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -21119,7 +20481,7 @@ target_link_libraries(memory_quota_test +@@ -21127,7 +20489,7 @@ target_link_libraries(memory_quota_test endif() @@ -937,7 +937,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(message_allocator_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -22288,7 +21650,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -22296,7 +21658,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -946,7 +946,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(orca_service_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_service.pb.cc -@@ -23665,7 +23027,7 @@ target_link_libraries(poll_test +@@ -23673,7 +23035,7 @@ target_link_libraries(poll_test endif() @@ -955,7 +955,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(port_sharing_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -25378,7 +24740,7 @@ target_link_libraries(random_early_detection_test +@@ -25386,7 +24748,7 @@ target_link_libraries(random_early_detection_test endif() @@ -964,7 +964,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(raw_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -26234,7 +25596,7 @@ target_link_libraries(resolve_address_using_native_resolver_test +@@ -26242,7 +25604,7 @@ target_link_libraries(resolve_address_using_native_resolver_test endif() @@ -973,7 +973,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(resource_quota_end2end_stress_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -29386,7 +28748,7 @@ target_link_libraries(ring_hash_test +@@ -29394,7 +28756,7 @@ target_link_libraries(ring_hash_test endif() @@ -982,7 +982,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(rls_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/lookup/v1/rls.pb.cc -@@ -30420,7 +29782,7 @@ target_link_libraries(server_finishes_request_test +@@ -30428,7 +29790,7 @@ target_link_libraries(server_finishes_request_test endif() @@ -991,7 +991,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(server_interceptors_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -30796,7 +30158,7 @@ target_link_libraries(server_test +@@ -30804,7 +30166,7 @@ target_link_libraries(server_test endif() @@ -1000,7 +1000,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(service_config_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc -@@ -33160,7 +32522,7 @@ target_link_libraries(test_core_channelz_channelz_test +@@ -33168,7 +32530,7 @@ target_link_libraries(test_core_channelz_channelz_test endif() @@ -1009,7 +1009,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(test_core_end2end_channelz_test ${_gRPC_PROTO_GENS_DIR}/src/core/ext/transport/chaotic_good/chaotic_good_frame.pb.cc -@@ -33673,7 +33035,7 @@ target_link_libraries(test_cpp_client_credentials_test +@@ -33681,7 +33043,7 @@ target_link_libraries(test_cpp_client_credentials_test endif() @@ -1018,7 +1018,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(test_cpp_end2end_ssl_credentials_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -37301,7 +36663,7 @@ target_link_libraries(xds_client_test +@@ -37309,7 +36671,7 @@ target_link_libraries(xds_client_test endif() @@ -1027,7 +1027,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_cluster_end2end_test -@@ -38344,7 +37706,7 @@ target_link_libraries(xds_cluster_resource_type_test +@@ -38352,7 +37714,7 @@ target_link_libraries(xds_cluster_resource_type_test endif() @@ -1036,7 +1036,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_cluster_type_end2end_test -@@ -39234,7 +38596,7 @@ target_link_libraries(xds_common_types_test +@@ -39242,7 +38604,7 @@ target_link_libraries(xds_common_types_test endif() @@ -1045,7 +1045,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_core_end2end_test -@@ -39765,7 +39127,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -39773,7 +39135,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1054,7 +1054,7 @@ index ed2331df0a..643e5298dd 100644 add_executable(xds_credentials_end2end_test ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc -@@ -39892,7 +39254,7 @@ target_link_libraries(xds_credentials_test +@@ -39900,7 +39262,7 @@ target_link_libraries(xds_credentials_test endif() @@ -1063,7 +1063,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_csds_end2end_test -@@ -40515,7 +39877,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -40523,7 +39885,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1072,7 +1072,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_enabled_server_end2end_test -@@ -41360,7 +40722,7 @@ target_link_libraries(xds_endpoint_resource_type_test +@@ -41368,7 +40730,7 @@ target_link_libraries(xds_endpoint_resource_type_test endif() @@ -1081,7 +1081,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_fallback_end2end_test -@@ -41890,7 +41252,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -41898,7 +41260,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1090,7 +1090,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) add_executable(xds_fault_injection_end2end_test -@@ -42428,7 +41790,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) +@@ -42436,7 +41798,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1099,7 +1099,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_gcp_authn_end2end_test -@@ -42962,7 +42324,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -42970,7 +42332,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1108,7 +1108,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_http_connect_end2end_test -@@ -45163,7 +44525,7 @@ target_link_libraries(xds_metadata_test +@@ -45171,7 +44533,7 @@ target_link_libraries(xds_metadata_test endif() @@ -1117,7 +1117,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_outlier_detection_end2end_test -@@ -45701,7 +45063,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -45709,7 +45071,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1126,7 +1126,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_override_host_end2end_test -@@ -46330,7 +45692,7 @@ target_link_libraries(xds_override_host_test +@@ -46338,7 +45700,7 @@ target_link_libraries(xds_override_host_test endif() @@ -1135,7 +1135,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_pick_first_end2end_test -@@ -46869,7 +46231,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -46877,7 +46239,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1144,7 +1144,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_ring_hash_end2end_test -@@ -47404,7 +46766,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -47412,7 +46774,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1153,7 +1153,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_rls_end2end_test -@@ -48345,7 +47707,7 @@ target_link_libraries(xds_route_config_resource_type_test +@@ -48353,7 +47715,7 @@ target_link_libraries(xds_route_config_resource_type_test endif() @@ -1162,7 +1162,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_routing_end2end_test -@@ -48883,7 +48245,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) +@@ -48891,7 +48253,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) endif() endif() @@ -1171,7 +1171,7 @@ index ed2331df0a..643e5298dd 100644 if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX) add_executable(xds_security_end2end_test -@@ -50017,7 +49379,7 @@ target_link_libraries(xds_stats_watcher_test +@@ -50025,7 +49387,7 @@ target_link_libraries(xds_stats_watcher_test endif() diff --git a/recipe/patches/0012-build-grpcio-tools-from-source.patch b/recipe/patches/0012-build-grpcio-tools-from-source.patch index cb6f0bb8..b1dcdb62 100644 --- a/recipe/patches/0012-build-grpcio-tools-from-source.patch +++ b/recipe/patches/0012-build-grpcio-tools-from-source.patch @@ -1,4 +1,4 @@ -From 19ddf760fec5c9aa91fba9f9ea02ba7d6bc462cb Mon Sep 17 00:00:00 2001 +From 444b5a7225d2121cc5ffca19e8397f0652116beb Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 4 Mar 2025 08:53:30 +1100 Subject: [PATCH 12/16] build grpcio-tools from source diff --git a/recipe/patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch b/recipe/patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch index 1f04aedc..a4cc0bba 100644 --- a/recipe/patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch +++ b/recipe/patches/0013-add-linkage-to-openssl-to-grpc_unsecure.patch @@ -1,4 +1,4 @@ -From 0be50ffaf8c05054a2e1bcde00bcf472d55a7bca Mon Sep 17 00:00:00 2001 +From 3cdda15b6bb09062417e229f2cc923cdccb86d9d Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sat, 1 Mar 2025 08:06:28 +1100 Subject: [PATCH 13/16] add linkage to openssl to grpc_unsecure @@ -12,7 +12,7 @@ https://github.com/grpc/grpc/blob/v1.69.0/src/core/tsi/ssl_transport_security_ut 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 643e5298dd..facd85260d 100644 +index 77f95ed57f..e8b8f0ed29 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3029,6 +3029,7 @@ add_library(grpc_unsecure diff --git a/recipe/patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch b/recipe/patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch index e543541e..bc32423b 100644 --- a/recipe/patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch +++ b/recipe/patches/0014-reduce-grpc-symbol-explosion-with-autogenerated-expo.patch @@ -1,4 +1,4 @@ -From 616d625aa7707335c633575dea0f0c97339b5dd1 Mon Sep 17 00:00:00 2001 +From 51ce3916498bd730747f5a07e52075f4a3e11ad0 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 5 Mar 2025 13:21:01 +1100 Subject: [PATCH 14/16] reduce grpc symbol explosion with autogenerated export @@ -38,7 +38,7 @@ other consumers end up linking to them. 1 file changed, 24 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index facd85260d..328b1fd650 100644 +index e8b8f0ed29..d39f232f94 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2396,6 +2396,30 @@ add_library(grpc diff --git a/recipe/patches/0015-update-GRPC_DLL-instances-where-necessary.patch b/recipe/patches/0015-update-GRPC_DLL-instances-where-necessary.patch index 302acfc1..c0074929 100644 --- a/recipe/patches/0015-update-GRPC_DLL-instances-where-necessary.patch +++ b/recipe/patches/0015-update-GRPC_DLL-instances-where-necessary.patch @@ -1,4 +1,4 @@ -From 609a2b7fd345c7d29dba3dd4e23e5836ca58c4fc Mon Sep 17 00:00:00 2001 +From 8d5565ecbd8abc79bed0f26fd09c19ab1c2b93a8 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Sun, 2 Mar 2025 07:16:19 +1100 Subject: [PATCH 15/16] update GRPC_DLL instances where necessary diff --git a/recipe/patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch b/recipe/patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch index 720757eb..6c46422e 100644 --- a/recipe/patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch +++ b/recipe/patches/0016-add-some-GRPCXX_DLL-exports-for-symbols-needed-by-gc.patch @@ -1,4 +1,4 @@ -From daff5526aae5c6364983e52f67da6ab890c96b7f Mon Sep 17 00:00:00 2001 +From 94c967993f6f1fe0c6e162a8362b9f2274afa68f Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 14 Mar 2025 12:27:58 +1100 Subject: [PATCH 16/16] add some GRPCXX_DLL exports for symbols needed by gcp From f848fd92453ce94e7f24e13922af7df957c569a0 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 14 Mar 2025 20:32:21 +1100 Subject: [PATCH 6/6] debug: skip non-windows --- recipe/meta.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 6dcfb16b..d963e2bd 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -76,6 +76,8 @@ source: build: number: 1 + # debug + skip: true # [not win] outputs: - name: libgrpc