From 2a69c525b8f746c3fce2ca53806af5ce555d8adf Mon Sep 17 00:00:00 2001 From: "Mark D. Roth" Date: Wed, 27 Oct 2021 15:46:00 -0700 Subject: [PATCH] don't build RLS on mobile (#27838) * don't build RLS on mobile * buildifier * fix build rules to avoid "Illegal ambiguous match" bazel error --- BUILD | 55 +++++++++++-------- .../plugin_registry/grpc_plugin_registry.cc | 4 ++ test/core/client_channel/BUILD | 1 + test/cpp/end2end/BUILD | 1 + 4 files changed, 37 insertions(+), 24 deletions(-) diff --git a/BUILD b/BUILD index b0131bf9f41..05882229b13 100644 --- a/BUILD +++ b/BUILD @@ -44,7 +44,7 @@ config_setting( ) config_setting( - name = "grpc_no_xds_define", + name = "grpc_no_xds", values = {"define": "grpc_no_xds=true"}, ) @@ -58,25 +58,20 @@ config_setting( values = {"apple_platform_type": "ios"}, ) -# Fuzzers can be built as fuzzers or as tests -config_setting( - name = "grpc_build_fuzzers", - values = {"define": "grpc_build_fuzzers=true"}, -) - selects.config_setting_group( - name = "grpc_no_xds", + name = "grpc_mobile", match_any = [ - ":grpc_no_xds_define", - # In addition to disabling XDS support when --define=grpc_no_xds=true is - # specified, we also disable it on mobile platforms where it is not - # likely to be needed and where reducing the binary size is more - # important. ":android", ":ios", ], ) +# Fuzzers can be built as fuzzers or as tests +config_setting( + name = "grpc_build_fuzzers", + values = {"define": "grpc_build_fuzzers=true"}, +) + config_setting( name = "grpc_allow_exceptions", values = {"define": "GRPC_ALLOW_EXCEPTIONS=1"}, @@ -368,6 +363,16 @@ grpc_cc_library( ], ) +GRPC_XDS_TARGETS = [ + "grpc_lb_policy_cds", + "grpc_lb_policy_xds_cluster_impl", + "grpc_lb_policy_xds_cluster_manager", + "grpc_lb_policy_xds_cluster_resolver", + "grpc_resolver_xds", + "grpc_resolver_c2p", + "grpc_xds_server_config_fetcher", +] + grpc_cc_library( name = "grpc", srcs = [ @@ -375,22 +380,25 @@ grpc_cc_library( "src/core/plugin_registry/grpc_plugin_registry.cc", ], defines = select({ + # On mobile, don't build RLS or xDS. + "grpc_mobile": [ + "GRPC_NO_XDS", + "GRPC_NO_RLS", + ], + # Don't build xDS if --define=grpc_no_xds=true is used. "grpc_no_xds": ["GRPC_NO_XDS"], + # By default, build both RLS and xDS. "//conditions:default": [], }), language = "c++", public_hdrs = GRPC_PUBLIC_HDRS + GRPC_SECURE_PUBLIC_HDRS, select_deps = { - "grpc_no_xds": [], - "//conditions:default": [ - "grpc_lb_policy_cds", - "grpc_lb_policy_xds_cluster_impl", - "grpc_lb_policy_xds_cluster_manager", - "grpc_lb_policy_xds_cluster_resolver", - "grpc_resolver_xds", - "grpc_resolver_c2p", - "grpc_xds_server_config_fetcher", - ], + # On mobile, don't build RLS or xDS. + "grpc_mobile": [], + # Don't build xDS if --define=grpc_no_xds=true is used. + "grpc_no_xds": ["grpc_lb_policy_rls"], + # By default, build both RLS and xDS. + "//conditions:default": ["grpc_lb_policy_rls"] + GRPC_XDS_TARGETS, }, standalone = True, visibility = [ @@ -402,7 +410,6 @@ grpc_cc_library( "grpc_base", "grpc_common", "grpc_lb_policy_grpclb_secure", - "grpc_lb_policy_rls", "grpc_secure", "grpc_trace", "grpc_transport_chttp2_client_secure", diff --git a/src/core/plugin_registry/grpc_plugin_registry.cc b/src/core/plugin_registry/grpc_plugin_registry.cc index 734c585da23..8fb0d54ff7c 100644 --- a/src/core/plugin_registry/grpc_plugin_registry.cc +++ b/src/core/plugin_registry/grpc_plugin_registry.cc @@ -54,8 +54,10 @@ void FaultInjectionFilterInit(void); void FaultInjectionFilterShutdown(void); void GrpcLbPolicyRingHashInit(void); void GrpcLbPolicyRingHashShutdown(void); +#ifndef GRPC_NO_RLS void RlsLbPluginInit(); void RlsLbPluginShutdown(); +#endif // !GRPC_NO_RLS void ServiceConfigParserInit(void); void ServiceConfigParserShutdown(void); } // namespace grpc_core @@ -101,8 +103,10 @@ void grpc_register_built_in_plugins(void) { grpc_register_plugin(grpc_resolver_fake_init, grpc_resolver_fake_shutdown); grpc_register_plugin(grpc_lb_policy_grpclb_init, grpc_lb_policy_grpclb_shutdown); +#ifndef GRPC_NO_RLS grpc_register_plugin(grpc_core::RlsLbPluginInit, grpc_core::RlsLbPluginShutdown); +#endif // !GRPC_NO_RLS grpc_register_plugin(grpc_lb_policy_priority_init, grpc_lb_policy_priority_shutdown); grpc_register_plugin(grpc_lb_policy_weighted_target_init, diff --git a/test/core/client_channel/BUILD b/test/core/client_channel/BUILD index e9e4c75ec39..c5b6b05b723 100644 --- a/test/core/client_channel/BUILD +++ b/test/core/client_channel/BUILD @@ -66,6 +66,7 @@ grpc_cc_test( "gtest", ], language = "C++", + tags = ["no_test_ios"], deps = [ "//:grpc", "//test/core/util:grpc_test_util", diff --git a/test/cpp/end2end/BUILD b/test/cpp/end2end/BUILD index e19c3927d36..e59d371b80c 100644 --- a/test/cpp/end2end/BUILD +++ b/test/cpp/end2end/BUILD @@ -484,6 +484,7 @@ grpc_cc_test( "gtest", "absl/types:optional", ], + tags = ["no_test_ios"], deps = [ ":counted_service", ":test_service_impl",