|  | @@ -352,6 +352,7 @@ CXXFLAGS += -std=c++11
 | 
	
		
			
				|  |  |  ifeq ($(SYSTEM),Darwin)
 | 
	
		
			
				|  |  |  CXXFLAGS += -stdlib=libc++
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  | +CXXFLAGS += -Wnon-virtual-dtor
 | 
	
		
			
				|  |  |  CPPFLAGS += -g -Wall -Wextra -Werror -Wno-long-long -Wno-unused-parameter -DOSATOMIC_USE_INLINED=1 -Wno-deprecated-declarations -Ithird_party/nanopb -DPB_FIELD_32BIT
 | 
	
		
			
				|  |  |  COREFLAGS += -fno-rtti -fno-exceptions
 | 
	
		
			
				|  |  |  LDFLAGS += -g
 | 
	
	
		
			
				|  | @@ -437,8 +438,8 @@ Q = @
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  CORE_VERSION = 6.0.0-dev
 | 
	
		
			
				|  |  | -CPP_VERSION = 1.15.0-dev
 | 
	
		
			
				|  |  | -CSHARP_VERSION = 1.15.0-dev
 | 
	
		
			
				|  |  | +CPP_VERSION = 1.16.0-dev
 | 
	
		
			
				|  |  | +CSHARP_VERSION = 1.16.0-dev
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
 | 
	
		
			
				|  |  |  CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
 | 
	
	
		
			
				|  | @@ -767,11 +768,20 @@ else
 | 
	
		
			
				|  |  |  LDLIBS_SECURE += $(addprefix -l, $(LIBS_SECURE))
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +# gpr .pc file
 | 
	
		
			
				|  |  | +PC_NAME = gpr
 | 
	
		
			
				|  |  | +PC_DESCRIPTION = gRPC platform support library
 | 
	
		
			
				|  |  | +PC_CFLAGS =
 | 
	
		
			
				|  |  | +PC_REQUIRES_PRIVATE = $(PC_REQUIRES_GPR)
 | 
	
		
			
				|  |  | +PC_LIBS_PRIVATE = $(PC_LIBS_GPR)
 | 
	
		
			
				|  |  | +PC_LIB = -lgpr
 | 
	
		
			
				|  |  | +GPR_PC_FILE := $(CORE_PC_TEMPLATE)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  # grpc .pc file
 | 
	
		
			
				|  |  |  PC_NAME = gRPC
 | 
	
		
			
				|  |  |  PC_DESCRIPTION = high performance general RPC framework
 | 
	
		
			
				|  |  |  PC_CFLAGS =
 | 
	
		
			
				|  |  | -PC_REQUIRES_PRIVATE = $(PC_REQUIRES_GRPC) $(PC_REQUIRES_SECURE)
 | 
	
		
			
				|  |  | +PC_REQUIRES_PRIVATE = gpr $(PC_REQUIRES_GRPC) $(PC_REQUIRES_SECURE)
 | 
	
		
			
				|  |  |  PC_LIBS_PRIVATE = $(PC_LIBS_GRPC) $(PC_LIBS_SECURE)
 | 
	
		
			
				|  |  |  PC_LIB = -lgrpc
 | 
	
		
			
				|  |  |  GRPC_PC_FILE := $(CORE_PC_TEMPLATE)
 | 
	
	
		
			
				|  | @@ -780,7 +790,7 @@ GRPC_PC_FILE := $(CORE_PC_TEMPLATE)
 | 
	
		
			
				|  |  |  PC_NAME = gRPC unsecure
 | 
	
		
			
				|  |  |  PC_DESCRIPTION = high performance general RPC framework without SSL
 | 
	
		
			
				|  |  |  PC_CFLAGS =
 | 
	
		
			
				|  |  | -PC_REQUIRES_PRIVATE = $(PC_REQUIRES_GRPC)
 | 
	
		
			
				|  |  | +PC_REQUIRES_PRIVATE = gpr $(PC_REQUIRES_GRPC)
 | 
	
		
			
				|  |  |  PC_LIBS_PRIVATE = $(PC_LIBS_GRPC)
 | 
	
		
			
				|  |  |  PC_LIB = -lgrpc
 | 
	
		
			
				|  |  |  GRPC_UNSECURE_PC_FILE := $(CORE_PC_TEMPLATE)
 | 
	
	
		
			
				|  | @@ -969,6 +979,7 @@ avl_test: $(BINDIR)/$(CONFIG)/avl_test
 | 
	
		
			
				|  |  |  bad_server_response_test: $(BINDIR)/$(CONFIG)/bad_server_response_test
 | 
	
		
			
				|  |  |  bin_decoder_test: $(BINDIR)/$(CONFIG)/bin_decoder_test
 | 
	
		
			
				|  |  |  bin_encoder_test: $(BINDIR)/$(CONFIG)/bin_encoder_test
 | 
	
		
			
				|  |  | +buffer_list_test: $(BINDIR)/$(CONFIG)/buffer_list_test
 | 
	
		
			
				|  |  |  channel_create_test: $(BINDIR)/$(CONFIG)/channel_create_test
 | 
	
		
			
				|  |  |  check_epollexclusive: $(BINDIR)/$(CONFIG)/check_epollexclusive
 | 
	
		
			
				|  |  |  chttp2_hpack_encoder_test: $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test
 | 
	
	
		
			
				|  | @@ -987,7 +998,6 @@ dualstack_socket_test: $(BINDIR)/$(CONFIG)/dualstack_socket_test
 | 
	
		
			
				|  |  |  endpoint_pair_test: $(BINDIR)/$(CONFIG)/endpoint_pair_test
 | 
	
		
			
				|  |  |  error_test: $(BINDIR)/$(CONFIG)/error_test
 | 
	
		
			
				|  |  |  ev_epollex_linux_test: $(BINDIR)/$(CONFIG)/ev_epollex_linux_test
 | 
	
		
			
				|  |  | -ev_epollsig_linux_test: $(BINDIR)/$(CONFIG)/ev_epollsig_linux_test
 | 
	
		
			
				|  |  |  fake_resolver_test: $(BINDIR)/$(CONFIG)/fake_resolver_test
 | 
	
		
			
				|  |  |  fake_transport_security_test: $(BINDIR)/$(CONFIG)/fake_transport_security_test
 | 
	
		
			
				|  |  |  fd_conservation_posix_test: $(BINDIR)/$(CONFIG)/fd_conservation_posix_test
 | 
	
	
		
			
				|  | @@ -1044,6 +1054,7 @@ httpcli_format_request_test: $(BINDIR)/$(CONFIG)/httpcli_format_request_test
 | 
	
		
			
				|  |  |  httpcli_test: $(BINDIR)/$(CONFIG)/httpcli_test
 | 
	
		
			
				|  |  |  httpscli_test: $(BINDIR)/$(CONFIG)/httpscli_test
 | 
	
		
			
				|  |  |  init_test: $(BINDIR)/$(CONFIG)/init_test
 | 
	
		
			
				|  |  | +inproc_callback_test: $(BINDIR)/$(CONFIG)/inproc_callback_test
 | 
	
		
			
				|  |  |  invalid_call_argument_test: $(BINDIR)/$(CONFIG)/invalid_call_argument_test
 | 
	
		
			
				|  |  |  json_fuzzer_test: $(BINDIR)/$(CONFIG)/json_fuzzer_test
 | 
	
		
			
				|  |  |  json_rewrite: $(BINDIR)/$(CONFIG)/json_rewrite
 | 
	
	
		
			
				|  | @@ -1068,9 +1079,9 @@ parse_address_test: $(BINDIR)/$(CONFIG)/parse_address_test
 | 
	
		
			
				|  |  |  percent_decode_fuzzer: $(BINDIR)/$(CONFIG)/percent_decode_fuzzer
 | 
	
		
			
				|  |  |  percent_encode_fuzzer: $(BINDIR)/$(CONFIG)/percent_encode_fuzzer
 | 
	
		
			
				|  |  |  percent_encoding_test: $(BINDIR)/$(CONFIG)/percent_encoding_test
 | 
	
		
			
				|  |  | -pollset_set_test: $(BINDIR)/$(CONFIG)/pollset_set_test
 | 
	
		
			
				|  |  |  resolve_address_posix_test: $(BINDIR)/$(CONFIG)/resolve_address_posix_test
 | 
	
		
			
				|  |  | -resolve_address_test: $(BINDIR)/$(CONFIG)/resolve_address_test
 | 
	
		
			
				|  |  | +resolve_address_using_ares_resolver_test: $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_test
 | 
	
		
			
				|  |  | +resolve_address_using_native_resolver_test: $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_test
 | 
	
		
			
				|  |  |  resource_quota_test: $(BINDIR)/$(CONFIG)/resource_quota_test
 | 
	
		
			
				|  |  |  secure_channel_create_test: $(BINDIR)/$(CONFIG)/secure_channel_create_test
 | 
	
		
			
				|  |  |  secure_endpoint_test: $(BINDIR)/$(CONFIG)/secure_endpoint_test
 | 
	
	
		
			
				|  | @@ -1149,6 +1160,7 @@ check_gcp_environment_linux_test: $(BINDIR)/$(CONFIG)/check_gcp_environment_linu
 | 
	
		
			
				|  |  |  check_gcp_environment_windows_test: $(BINDIR)/$(CONFIG)/check_gcp_environment_windows_test
 | 
	
		
			
				|  |  |  chttp2_settings_timeout_test: $(BINDIR)/$(CONFIG)/chttp2_settings_timeout_test
 | 
	
		
			
				|  |  |  cli_call_test: $(BINDIR)/$(CONFIG)/cli_call_test
 | 
	
		
			
				|  |  | +client_callback_end2end_test: $(BINDIR)/$(CONFIG)/client_callback_end2end_test
 | 
	
		
			
				|  |  |  client_channel_stress_test: $(BINDIR)/$(CONFIG)/client_channel_stress_test
 | 
	
		
			
				|  |  |  client_crash_test: $(BINDIR)/$(CONFIG)/client_crash_test
 | 
	
		
			
				|  |  |  client_crash_test_server: $(BINDIR)/$(CONFIG)/client_crash_test_server
 | 
	
	
		
			
				|  | @@ -1398,9 +1410,9 @@ plugins: $(PROTOC_PLUGINS)
 | 
	
		
			
				|  |  |  privatelibs: privatelibs_c privatelibs_cxx
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  privatelibs_c:  $(LIBDIR)/$(CONFIG)/libalts_test_util.a $(LIBDIR)/$(CONFIG)/libcxxabi.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libares.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a
 | 
	
		
			
				|  |  | -pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc
 | 
	
		
			
				|  |  | +pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc $(LIBDIR)/$(CONFIG)/pkgconfig/gpr.pc
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc
 | 
	
		
			
				|  |  | +pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc $(LIBDIR)/$(CONFIG)/pkgconfig/gpr.pc
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  pc_cxx: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc++.pc
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1424,6 +1436,7 @@ buildtests_c: privatelibs_c \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/bad_server_response_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/bin_decoder_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/bin_encoder_test \
 | 
	
		
			
				|  |  | +  $(BINDIR)/$(CONFIG)/buffer_list_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/channel_create_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/chttp2_hpack_encoder_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/chttp2_stream_map_test \
 | 
	
	
		
			
				|  | @@ -1440,7 +1453,6 @@ buildtests_c: privatelibs_c \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/endpoint_pair_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/error_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/ev_epollex_linux_test \
 | 
	
		
			
				|  |  | -  $(BINDIR)/$(CONFIG)/ev_epollsig_linux_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/fake_resolver_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/fake_transport_security_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/fd_conservation_posix_test \
 | 
	
	
		
			
				|  | @@ -1491,6 +1503,7 @@ buildtests_c: privatelibs_c \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/httpcli_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/httpscli_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/init_test \
 | 
	
		
			
				|  |  | +  $(BINDIR)/$(CONFIG)/inproc_callback_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/invalid_call_argument_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/json_rewrite \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/json_rewrite_test \
 | 
	
	
		
			
				|  | @@ -1509,9 +1522,9 @@ buildtests_c: privatelibs_c \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/num_external_connectivity_watchers_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/parse_address_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/percent_encoding_test \
 | 
	
		
			
				|  |  | -  $(BINDIR)/$(CONFIG)/pollset_set_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/resolve_address_posix_test \
 | 
	
		
			
				|  |  | -  $(BINDIR)/$(CONFIG)/resolve_address_test \
 | 
	
		
			
				|  |  | +  $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_test \
 | 
	
		
			
				|  |  | +  $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/resource_quota_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/secure_channel_create_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/secure_endpoint_test \
 | 
	
	
		
			
				|  | @@ -1652,6 +1665,7 @@ buildtests_cxx: privatelibs_cxx \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/check_gcp_environment_windows_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/chttp2_settings_timeout_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/cli_call_test \
 | 
	
		
			
				|  |  | +  $(BINDIR)/$(CONFIG)/client_callback_end2end_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/client_channel_stress_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/client_crash_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/client_crash_test_server \
 | 
	
	
		
			
				|  | @@ -1832,6 +1846,7 @@ buildtests_cxx: privatelibs_cxx \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/check_gcp_environment_windows_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/chttp2_settings_timeout_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/cli_call_test \
 | 
	
		
			
				|  |  | +  $(BINDIR)/$(CONFIG)/client_callback_end2end_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/client_channel_stress_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/client_crash_test \
 | 
	
		
			
				|  |  |    $(BINDIR)/$(CONFIG)/client_crash_test_server \
 | 
	
	
		
			
				|  | @@ -1939,6 +1954,8 @@ test_c: buildtests_c
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/bin_decoder_test || ( echo test bin_decoder_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing bin_encoder_test"
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/bin_encoder_test || ( echo test bin_encoder_test failed ; exit 1 )
 | 
	
		
			
				|  |  | +	$(E) "[RUN]     Testing buffer_list_test"
 | 
	
		
			
				|  |  | +	$(Q) $(BINDIR)/$(CONFIG)/buffer_list_test || ( echo test buffer_list_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing channel_create_test"
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/channel_create_test || ( echo test channel_create_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing chttp2_hpack_encoder_test"
 | 
	
	
		
			
				|  | @@ -1971,8 +1988,6 @@ test_c: buildtests_c
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/error_test || ( echo test error_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing ev_epollex_linux_test"
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/ev_epollex_linux_test || ( echo test ev_epollex_linux_test failed ; exit 1 )
 | 
	
		
			
				|  |  | -	$(E) "[RUN]     Testing ev_epollsig_linux_test"
 | 
	
		
			
				|  |  | -	$(Q) $(BINDIR)/$(CONFIG)/ev_epollsig_linux_test || ( echo test ev_epollsig_linux_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing fake_resolver_test"
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/fake_resolver_test || ( echo test fake_resolver_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing fake_transport_security_test"
 | 
	
	
		
			
				|  | @@ -2067,6 +2082,8 @@ test_c: buildtests_c
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/httpscli_test || ( echo test httpscli_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing init_test"
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/init_test || ( echo test init_test failed ; exit 1 )
 | 
	
		
			
				|  |  | +	$(E) "[RUN]     Testing inproc_callback_test"
 | 
	
		
			
				|  |  | +	$(Q) $(BINDIR)/$(CONFIG)/inproc_callback_test || ( echo test inproc_callback_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing invalid_call_argument_test"
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/invalid_call_argument_test || ( echo test invalid_call_argument_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing json_rewrite_test"
 | 
	
	
		
			
				|  | @@ -2097,12 +2114,12 @@ test_c: buildtests_c
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/parse_address_test || ( echo test parse_address_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing percent_encoding_test"
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/percent_encoding_test || ( echo test percent_encoding_test failed ; exit 1 )
 | 
	
		
			
				|  |  | -	$(E) "[RUN]     Testing pollset_set_test"
 | 
	
		
			
				|  |  | -	$(Q) $(BINDIR)/$(CONFIG)/pollset_set_test || ( echo test pollset_set_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing resolve_address_posix_test"
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/resolve_address_posix_test || ( echo test resolve_address_posix_test failed ; exit 1 )
 | 
	
		
			
				|  |  | -	$(E) "[RUN]     Testing resolve_address_test"
 | 
	
		
			
				|  |  | -	$(Q) $(BINDIR)/$(CONFIG)/resolve_address_test || ( echo test resolve_address_test failed ; exit 1 )
 | 
	
		
			
				|  |  | +	$(E) "[RUN]     Testing resolve_address_using_ares_resolver_test"
 | 
	
		
			
				|  |  | +	$(Q) $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_test || ( echo test resolve_address_using_ares_resolver_test failed ; exit 1 )
 | 
	
		
			
				|  |  | +	$(E) "[RUN]     Testing resolve_address_using_native_resolver_test"
 | 
	
		
			
				|  |  | +	$(Q) $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_test || ( echo test resolve_address_using_native_resolver_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing resource_quota_test"
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/resource_quota_test || ( echo test resource_quota_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing secure_channel_create_test"
 | 
	
	
		
			
				|  | @@ -2285,6 +2302,8 @@ test_cxx: buildtests_cxx
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/chttp2_settings_timeout_test || ( echo test chttp2_settings_timeout_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing cli_call_test"
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/cli_call_test || ( echo test cli_call_test failed ; exit 1 )
 | 
	
		
			
				|  |  | +	$(E) "[RUN]     Testing client_callback_end2end_test"
 | 
	
		
			
				|  |  | +	$(Q) $(BINDIR)/$(CONFIG)/client_callback_end2end_test || ( echo test client_callback_end2end_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing client_channel_stress_test"
 | 
	
		
			
				|  |  |  	$(Q) $(BINDIR)/$(CONFIG)/client_channel_stress_test || ( echo test client_channel_stress_test failed ; exit 1 )
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing client_crash_test"
 | 
	
	
		
			
				|  | @@ -2519,6 +2538,11 @@ cache.mk::
 | 
	
		
			
				|  |  |  	$(E) "[MAKE]    Generating $@"
 | 
	
		
			
				|  |  |  	$(Q) echo "$(CACHE_MK)" | tr , '\n' >$@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +$(LIBDIR)/$(CONFIG)/pkgconfig/gpr.pc:
 | 
	
		
			
				|  |  | +	$(E) "[MAKE]    Generating $@"
 | 
	
		
			
				|  |  | +	$(Q) mkdir -p $(@D)
 | 
	
		
			
				|  |  | +	$(Q) echo "$(GPR_PC_FILE)" | tr , '\n' >$@
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc:
 | 
	
		
			
				|  |  |  	$(E) "[MAKE]    Generating $@"
 | 
	
		
			
				|  |  |  	$(Q) mkdir -p $(@D)
 | 
	
	
		
			
				|  | @@ -3129,6 +3153,7 @@ install-grpc-cli: grpc_cli
 | 
	
		
			
				|  |  |  install-pkg-config_c: pc_c pc_c_unsecure
 | 
	
		
			
				|  |  |  	$(E) "[INSTALL] Installing C pkg-config files"
 | 
	
		
			
				|  |  |  	$(Q) $(INSTALL) -d $(prefix)/lib/pkgconfig
 | 
	
		
			
				|  |  | +	$(Q) $(INSTALL) -m 0644 $(LIBDIR)/$(CONFIG)/pkgconfig/gpr.pc $(prefix)/lib/pkgconfig/gpr.pc
 | 
	
		
			
				|  |  |  	$(Q) $(INSTALL) -m 0644 $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc $(prefix)/lib/pkgconfig/grpc.pc
 | 
	
		
			
				|  |  |  	$(Q) $(INSTALL) -m 0644 $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc $(prefix)/lib/pkgconfig/grpc_unsecure.pc
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -3441,6 +3466,7 @@ LIBGRPC_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/http/format_request.cc \
 | 
	
		
			
				|  |  |      src/core/lib/http/httpcli.cc \
 | 
	
		
			
				|  |  |      src/core/lib/http/parser.cc \
 | 
	
		
			
				|  |  | +    src/core/lib/iomgr/buffer_list.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/call_combiner.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/combiner.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/endpoint.cc \
 | 
	
	
		
			
				|  | @@ -3450,7 +3476,6 @@ LIBGRPC_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/error.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_epoll1_linux.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_epollex_linux.cc \
 | 
	
		
			
				|  |  | -    src/core/lib/iomgr/ev_epollsig_linux.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_poll_posix.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_posix.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_windows.cc \
 | 
	
	
		
			
				|  | @@ -3461,6 +3486,7 @@ LIBGRPC_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_fallback.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_host_name_max.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_sysconf.cc \
 | 
	
		
			
				|  |  | +    src/core/lib/iomgr/internal_errqueue.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iocp_windows.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iomgr.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iomgr_custom.cc \
 | 
	
	
		
			
				|  | @@ -3722,7 +3748,7 @@ LIBGRPC_SRC = \
 | 
	
		
			
				|  |  |      src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc \
 | 
	
		
			
				|  |  |      src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc \
 | 
	
		
			
				|  |  |      src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc \
 | 
	
		
			
				|  |  | -    src/cpp/ext/filters/census/grpc_context.cc \
 | 
	
		
			
				|  |  | +    src/core/ext/filters/census/grpc_context.cc \
 | 
	
		
			
				|  |  |      src/core/ext/filters/max_age/max_age_filter.cc \
 | 
	
		
			
				|  |  |      src/core/ext/filters/message_size/message_size_filter.cc \
 | 
	
		
			
				|  |  |      src/core/ext/filters/http/client_authority_filter.cc \
 | 
	
	
		
			
				|  | @@ -3846,6 +3872,7 @@ LIBGRPC_CRONET_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/http/format_request.cc \
 | 
	
		
			
				|  |  |      src/core/lib/http/httpcli.cc \
 | 
	
		
			
				|  |  |      src/core/lib/http/parser.cc \
 | 
	
		
			
				|  |  | +    src/core/lib/iomgr/buffer_list.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/call_combiner.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/combiner.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/endpoint.cc \
 | 
	
	
		
			
				|  | @@ -3855,7 +3882,6 @@ LIBGRPC_CRONET_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/error.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_epoll1_linux.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_epollex_linux.cc \
 | 
	
		
			
				|  |  | -    src/core/lib/iomgr/ev_epollsig_linux.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_poll_posix.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_posix.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_windows.cc \
 | 
	
	
		
			
				|  | @@ -3866,6 +3892,7 @@ LIBGRPC_CRONET_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_fallback.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_host_name_max.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_sysconf.cc \
 | 
	
		
			
				|  |  | +    src/core/lib/iomgr/internal_errqueue.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iocp_windows.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iomgr.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iomgr_custom.cc \
 | 
	
	
		
			
				|  | @@ -4236,6 +4263,7 @@ LIBGRPC_TEST_UTIL_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/http/format_request.cc \
 | 
	
		
			
				|  |  |      src/core/lib/http/httpcli.cc \
 | 
	
		
			
				|  |  |      src/core/lib/http/parser.cc \
 | 
	
		
			
				|  |  | +    src/core/lib/iomgr/buffer_list.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/call_combiner.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/combiner.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/endpoint.cc \
 | 
	
	
		
			
				|  | @@ -4245,7 +4273,6 @@ LIBGRPC_TEST_UTIL_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/error.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_epoll1_linux.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_epollex_linux.cc \
 | 
	
		
			
				|  |  | -    src/core/lib/iomgr/ev_epollsig_linux.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_poll_posix.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_posix.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_windows.cc \
 | 
	
	
		
			
				|  | @@ -4256,6 +4283,7 @@ LIBGRPC_TEST_UTIL_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_fallback.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_host_name_max.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_sysconf.cc \
 | 
	
		
			
				|  |  | +    src/core/lib/iomgr/internal_errqueue.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iocp_windows.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iomgr.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iomgr_custom.cc \
 | 
	
	
		
			
				|  | @@ -4535,6 +4563,7 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/http/format_request.cc \
 | 
	
		
			
				|  |  |      src/core/lib/http/httpcli.cc \
 | 
	
		
			
				|  |  |      src/core/lib/http/parser.cc \
 | 
	
		
			
				|  |  | +    src/core/lib/iomgr/buffer_list.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/call_combiner.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/combiner.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/endpoint.cc \
 | 
	
	
		
			
				|  | @@ -4544,7 +4573,6 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/error.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_epoll1_linux.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_epollex_linux.cc \
 | 
	
		
			
				|  |  | -    src/core/lib/iomgr/ev_epollsig_linux.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_poll_posix.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_posix.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_windows.cc \
 | 
	
	
		
			
				|  | @@ -4555,6 +4583,7 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_fallback.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_host_name_max.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_sysconf.cc \
 | 
	
		
			
				|  |  | +    src/core/lib/iomgr/internal_errqueue.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iocp_windows.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iomgr.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iomgr_custom.cc \
 | 
	
	
		
			
				|  | @@ -4800,6 +4829,7 @@ LIBGRPC_UNSECURE_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/http/format_request.cc \
 | 
	
		
			
				|  |  |      src/core/lib/http/httpcli.cc \
 | 
	
		
			
				|  |  |      src/core/lib/http/parser.cc \
 | 
	
		
			
				|  |  | +    src/core/lib/iomgr/buffer_list.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/call_combiner.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/combiner.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/endpoint.cc \
 | 
	
	
		
			
				|  | @@ -4809,7 +4839,6 @@ LIBGRPC_UNSECURE_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/error.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_epoll1_linux.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_epollex_linux.cc \
 | 
	
		
			
				|  |  | -    src/core/lib/iomgr/ev_epollsig_linux.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_poll_posix.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_posix.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_windows.cc \
 | 
	
	
		
			
				|  | @@ -4820,6 +4849,7 @@ LIBGRPC_UNSECURE_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_fallback.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_host_name_max.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_sysconf.cc \
 | 
	
		
			
				|  |  | +    src/core/lib/iomgr/internal_errqueue.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iocp_windows.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iomgr.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iomgr_custom.cc \
 | 
	
	
		
			
				|  | @@ -5009,7 +5039,7 @@ LIBGRPC_UNSECURE_SRC = \
 | 
	
		
			
				|  |  |      third_party/nanopb/pb_encode.c \
 | 
	
		
			
				|  |  |      src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc \
 | 
	
		
			
				|  |  |      src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc \
 | 
	
		
			
				|  |  | -    src/cpp/ext/filters/census/grpc_context.cc \
 | 
	
		
			
				|  |  | +    src/core/ext/filters/census/grpc_context.cc \
 | 
	
		
			
				|  |  |      src/core/ext/filters/max_age/max_age_filter.cc \
 | 
	
		
			
				|  |  |      src/core/ext/filters/message_size/message_size_filter.cc \
 | 
	
		
			
				|  |  |      src/core/ext/filters/http/client_authority_filter.cc \
 | 
	
	
		
			
				|  | @@ -5296,6 +5326,7 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/support/async_unary_call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/byte_buffer.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/channel_arguments.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/support/client_callback.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/config.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/proto_buffer_reader.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/proto_buffer_writer.h \
 | 
	
	
		
			
				|  | @@ -5393,8 +5424,11 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/byte_buffer.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/call_hook.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/callback_common.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/channel_interface.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/client_callback.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/client_context.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/client_interceptor.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/client_unary_call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/completion_queue.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/completion_queue_tag.h \
 | 
	
	
		
			
				|  | @@ -5402,6 +5436,7 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/core_codegen_interface.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/create_auth_context.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/grpc_library.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/interceptor.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/metadata_map.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/method_handler_impl.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/rpc_method.h \
 | 
	
	
		
			
				|  | @@ -5628,6 +5663,7 @@ LIBGRPC++_CRONET_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/http/format_request.cc \
 | 
	
		
			
				|  |  |      src/core/lib/http/httpcli.cc \
 | 
	
		
			
				|  |  |      src/core/lib/http/parser.cc \
 | 
	
		
			
				|  |  | +    src/core/lib/iomgr/buffer_list.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/call_combiner.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/combiner.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/endpoint.cc \
 | 
	
	
		
			
				|  | @@ -5637,7 +5673,6 @@ LIBGRPC++_CRONET_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/error.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_epoll1_linux.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_epollex_linux.cc \
 | 
	
		
			
				|  |  | -    src/core/lib/iomgr/ev_epollsig_linux.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_poll_posix.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_posix.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/ev_windows.cc \
 | 
	
	
		
			
				|  | @@ -5648,6 +5683,7 @@ LIBGRPC++_CRONET_SRC = \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_fallback.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_host_name_max.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/gethostname_sysconf.cc \
 | 
	
		
			
				|  |  | +    src/core/lib/iomgr/internal_errqueue.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iocp_windows.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iomgr.cc \
 | 
	
		
			
				|  |  |      src/core/lib/iomgr/iomgr_custom.cc \
 | 
	
	
		
			
				|  | @@ -5785,7 +5821,7 @@ LIBGRPC++_CRONET_SRC = \
 | 
	
		
			
				|  |  |      src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc \
 | 
	
		
			
				|  |  |      src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc \
 | 
	
		
			
				|  |  |      src/core/ext/transport/chttp2/server/chttp2_server.cc \
 | 
	
		
			
				|  |  | -    src/cpp/ext/filters/census/grpc_context.cc \
 | 
	
		
			
				|  |  | +    src/core/ext/filters/census/grpc_context.cc \
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpc++/alarm.h \
 | 
	
	
		
			
				|  | @@ -5870,6 +5906,7 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/support/async_unary_call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/byte_buffer.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/channel_arguments.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/support/client_callback.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/config.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/proto_buffer_reader.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/proto_buffer_writer.h \
 | 
	
	
		
			
				|  | @@ -5967,8 +6004,11 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/byte_buffer.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/call_hook.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/callback_common.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/channel_interface.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/client_callback.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/client_context.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/client_interceptor.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/client_unary_call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/completion_queue.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/completion_queue_tag.h \
 | 
	
	
		
			
				|  | @@ -5976,6 +6016,7 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/core_codegen_interface.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/create_auth_context.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/grpc_library.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/interceptor.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/metadata_map.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/method_handler_impl.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/rpc_method.h \
 | 
	
	
		
			
				|  | @@ -6357,8 +6398,11 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/byte_buffer.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/call_hook.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/callback_common.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/channel_interface.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/client_callback.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/client_context.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/client_interceptor.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/client_unary_call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/completion_queue.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/completion_queue_tag.h \
 | 
	
	
		
			
				|  | @@ -6366,6 +6410,7 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/core_codegen_interface.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/create_auth_context.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/grpc_library.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/interceptor.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/metadata_map.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/method_handler_impl.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/rpc_method.h \
 | 
	
	
		
			
				|  | @@ -6511,8 +6556,11 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/byte_buffer.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/call_hook.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/callback_common.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/channel_interface.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/client_callback.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/client_context.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/client_interceptor.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/client_unary_call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/completion_queue.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/completion_queue_tag.h \
 | 
	
	
		
			
				|  | @@ -6520,6 +6568,7 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/core_codegen_interface.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/create_auth_context.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/grpc_library.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/interceptor.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/metadata_map.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/method_handler_impl.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/rpc_method.h \
 | 
	
	
		
			
				|  | @@ -6736,6 +6785,7 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/support/async_unary_call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/byte_buffer.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/channel_arguments.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/support/client_callback.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/config.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/proto_buffer_reader.h \
 | 
	
		
			
				|  |  |      include/grpcpp/support/proto_buffer_writer.h \
 | 
	
	
		
			
				|  | @@ -6833,8 +6883,11 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/byte_buffer.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/call_hook.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/callback_common.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/channel_interface.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/client_callback.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/client_context.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/client_interceptor.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/client_unary_call.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/completion_queue.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/completion_queue_tag.h \
 | 
	
	
		
			
				|  | @@ -6842,6 +6895,7 @@ PUBLIC_HEADERS_CXX += \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/core_codegen_interface.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/create_auth_context.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/grpc_library.h \
 | 
	
		
			
				|  |  | +    include/grpcpp/impl/codegen/interceptor.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/metadata_map.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/method_handler_impl.h \
 | 
	
		
			
				|  |  |      include/grpcpp/impl/codegen/rpc_method.h \
 | 
	
	
		
			
				|  | @@ -10682,6 +10736,38 @@ endif
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +BUFFER_LIST_TEST_SRC = \
 | 
	
		
			
				|  |  | +    test/core/iomgr/buffer_list_test.cc \
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +BUFFER_LIST_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(BUFFER_LIST_TEST_SRC))))
 | 
	
		
			
				|  |  | +ifeq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# You can't build secure targets if you don't have OpenSSL.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/buffer_list_test: openssl_dep_error
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/buffer_list_test: $(BUFFER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | +	$(E) "[LD]      Linking $@"
 | 
	
		
			
				|  |  | +	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  | +	$(Q) $(LD) $(LDFLAGS) $(BUFFER_LIST_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/buffer_list_test
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +$(OBJDIR)/$(CONFIG)/test/core/iomgr/buffer_list_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +deps_buffer_list_test: $(BUFFER_LIST_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +ifneq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  | +ifneq ($(NO_DEPS),true)
 | 
	
		
			
				|  |  | +-include $(BUFFER_LIST_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  CHANNEL_CREATE_TEST_SRC = \
 | 
	
		
			
				|  |  |      test/core/surface/channel_create_test.cc \
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -11258,38 +11344,6 @@ endif
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -EV_EPOLLSIG_LINUX_TEST_SRC = \
 | 
	
		
			
				|  |  | -    test/core/iomgr/ev_epollsig_linux_test.cc \
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -EV_EPOLLSIG_LINUX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(EV_EPOLLSIG_LINUX_TEST_SRC))))
 | 
	
		
			
				|  |  | -ifeq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -# You can't build secure targets if you don't have OpenSSL.
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -$(BINDIR)/$(CONFIG)/ev_epollsig_linux_test: openssl_dep_error
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -else
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -$(BINDIR)/$(CONFIG)/ev_epollsig_linux_test: $(EV_EPOLLSIG_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | -	$(E) "[LD]      Linking $@"
 | 
	
		
			
				|  |  | -	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  | -	$(Q) $(LD) $(LDFLAGS) $(EV_EPOLLSIG_LINUX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/ev_epollsig_linux_test
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -endif
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -$(OBJDIR)/$(CONFIG)/test/core/iomgr/ev_epollsig_linux_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -deps_ev_epollsig_linux_test: $(EV_EPOLLSIG_LINUX_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -ifneq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  | -ifneq ($(NO_DEPS),true)
 | 
	
		
			
				|  |  | --include $(EV_EPOLLSIG_LINUX_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | -endif
 | 
	
		
			
				|  |  | -endif
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  FAKE_RESOLVER_TEST_SRC = \
 | 
	
		
			
				|  |  |      test/core/client_channel/resolvers/fake_resolver_test.cc \
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -13100,6 +13154,38 @@ endif
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +INPROC_CALLBACK_TEST_SRC = \
 | 
	
		
			
				|  |  | +    test/core/end2end/inproc_callback_test.cc \
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +INPROC_CALLBACK_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INPROC_CALLBACK_TEST_SRC))))
 | 
	
		
			
				|  |  | +ifeq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# You can't build secure targets if you don't have OpenSSL.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/inproc_callback_test: openssl_dep_error
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/inproc_callback_test: $(INPROC_CALLBACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | +	$(E) "[LD]      Linking $@"
 | 
	
		
			
				|  |  | +	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  | +	$(Q) $(LD) $(LDFLAGS) $(INPROC_CALLBACK_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/inproc_callback_test
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +$(OBJDIR)/$(CONFIG)/test/core/end2end/inproc_callback_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +deps_inproc_callback_test: $(INPROC_CALLBACK_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +ifneq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  | +ifneq ($(NO_DEPS),true)
 | 
	
		
			
				|  |  | +-include $(INPROC_CALLBACK_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  INVALID_CALL_ARGUMENT_TEST_SRC = \
 | 
	
		
			
				|  |  |      test/core/end2end/invalid_call_argument_test.cc \
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -13868,98 +13954,98 @@ endif
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -POLLSET_SET_TEST_SRC = \
 | 
	
		
			
				|  |  | -    test/core/iomgr/pollset_set_test.cc \
 | 
	
		
			
				|  |  | +RESOLVE_ADDRESS_POSIX_TEST_SRC = \
 | 
	
		
			
				|  |  | +    test/core/iomgr/resolve_address_posix_test.cc \
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -POLLSET_SET_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(POLLSET_SET_TEST_SRC))))
 | 
	
		
			
				|  |  | +RESOLVE_ADDRESS_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_POSIX_TEST_SRC))))
 | 
	
		
			
				|  |  |  ifeq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # You can't build secure targets if you don't have OpenSSL.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -$(BINDIR)/$(CONFIG)/pollset_set_test: openssl_dep_error
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/resolve_address_posix_test: openssl_dep_error
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  else
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -$(BINDIR)/$(CONFIG)/pollset_set_test: $(POLLSET_SET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/resolve_address_posix_test: $(RESOLVE_ADDRESS_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  |  	$(E) "[LD]      Linking $@"
 | 
	
		
			
				|  |  |  	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  | -	$(Q) $(LD) $(LDFLAGS) $(POLLSET_SET_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/pollset_set_test
 | 
	
		
			
				|  |  | +	$(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_posix_test
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -$(OBJDIR)/$(CONFIG)/test/core/iomgr/pollset_set_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | +$(OBJDIR)/$(CONFIG)/test/core/iomgr/resolve_address_posix_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -deps_pollset_set_test: $(POLLSET_SET_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | +deps_resolve_address_posix_test: $(RESOLVE_ADDRESS_POSIX_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ifneq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  |  ifneq ($(NO_DEPS),true)
 | 
	
		
			
				|  |  | --include $(POLLSET_SET_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | +-include $(RESOLVE_ADDRESS_POSIX_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -RESOLVE_ADDRESS_POSIX_TEST_SRC = \
 | 
	
		
			
				|  |  | -    test/core/iomgr/resolve_address_posix_test.cc \
 | 
	
		
			
				|  |  | +RESOLVE_ADDRESS_USING_ARES_RESOLVER_TEST_SRC = \
 | 
	
		
			
				|  |  | +    test/core/iomgr/resolve_address_test.cc \
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -RESOLVE_ADDRESS_POSIX_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_POSIX_TEST_SRC))))
 | 
	
		
			
				|  |  | +RESOLVE_ADDRESS_USING_ARES_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_USING_ARES_RESOLVER_TEST_SRC))))
 | 
	
		
			
				|  |  |  ifeq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # You can't build secure targets if you don't have OpenSSL.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -$(BINDIR)/$(CONFIG)/resolve_address_posix_test: openssl_dep_error
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_test: openssl_dep_error
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  else
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -$(BINDIR)/$(CONFIG)/resolve_address_posix_test: $(RESOLVE_ADDRESS_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_test: $(RESOLVE_ADDRESS_USING_ARES_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  |  	$(E) "[LD]      Linking $@"
 | 
	
		
			
				|  |  |  	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  | -	$(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_POSIX_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_posix_test
 | 
	
		
			
				|  |  | +	$(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_USING_ARES_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_using_ares_resolver_test
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -$(OBJDIR)/$(CONFIG)/test/core/iomgr/resolve_address_posix_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | +$(OBJDIR)/$(CONFIG)/test/core/iomgr/resolve_address_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -deps_resolve_address_posix_test: $(RESOLVE_ADDRESS_POSIX_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | +deps_resolve_address_using_ares_resolver_test: $(RESOLVE_ADDRESS_USING_ARES_RESOLVER_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ifneq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  |  ifneq ($(NO_DEPS),true)
 | 
	
		
			
				|  |  | --include $(RESOLVE_ADDRESS_POSIX_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | +-include $(RESOLVE_ADDRESS_USING_ARES_RESOLVER_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -RESOLVE_ADDRESS_TEST_SRC = \
 | 
	
		
			
				|  |  | +RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_TEST_SRC = \
 | 
	
		
			
				|  |  |      test/core/iomgr/resolve_address_test.cc \
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -RESOLVE_ADDRESS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_TEST_SRC))))
 | 
	
		
			
				|  |  | +RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_TEST_SRC))))
 | 
	
		
			
				|  |  |  ifeq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # You can't build secure targets if you don't have OpenSSL.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -$(BINDIR)/$(CONFIG)/resolve_address_test: openssl_dep_error
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_test: openssl_dep_error
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  else
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -$(BINDIR)/$(CONFIG)/resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_test: $(RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  |  	$(E) "[LD]      Linking $@"
 | 
	
		
			
				|  |  |  	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  | -	$(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_test
 | 
	
		
			
				|  |  | +	$(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/resolve_address_using_native_resolver_test
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  $(OBJDIR)/$(CONFIG)/test/core/iomgr/resolve_address_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -deps_resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | +deps_resolve_address_using_native_resolver_test: $(RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ifneq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  |  ifneq ($(NO_DEPS),true)
 | 
	
		
			
				|  |  | --include $(RESOLVE_ADDRESS_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | +-include $(RESOLVE_ADDRESS_USING_NATIVE_RESOLVER_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -16977,6 +17063,49 @@ endif
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +CLIENT_CALLBACK_END2END_TEST_SRC = \
 | 
	
		
			
				|  |  | +    test/cpp/end2end/client_callback_end2end_test.cc \
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +CLIENT_CALLBACK_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_CALLBACK_END2END_TEST_SRC))))
 | 
	
		
			
				|  |  | +ifeq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# You can't build secure targets if you don't have OpenSSL.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/client_callback_end2end_test: openssl_dep_error
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +ifeq ($(NO_PROTOBUF),true)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.5.0+.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/client_callback_end2end_test: protobuf_dep_error
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +$(BINDIR)/$(CONFIG)/client_callback_end2end_test: $(PROTOBUF_DEP) $(CLIENT_CALLBACK_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | +	$(E) "[LD]      Linking $@"
 | 
	
		
			
				|  |  | +	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  | +	$(Q) $(LDXX) $(LDFLAGS) $(CLIENT_CALLBACK_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_callback_end2end_test
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_callback_end2end_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +deps_client_callback_end2end_test: $(CLIENT_CALLBACK_END2END_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +ifneq ($(NO_SECURE),true)
 | 
	
		
			
				|  |  | +ifneq ($(NO_DEPS),true)
 | 
	
		
			
				|  |  | +-include $(CLIENT_CALLBACK_END2END_TEST_OBJS:.o=.dep)
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  CLIENT_CHANNEL_STRESS_TEST_SRC = \
 | 
	
		
			
				|  |  |      $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.pb.cc $(GENDIR)/src/proto/grpc/lb/v1/load_balancer.grpc.pb.cc \
 | 
	
		
			
				|  |  |      test/cpp/client/client_channel_stress_test.cc \
 |