From 3262138672841ca0173a750c4291a6dde43891b1 Mon Sep 17 00:00:00 2001 From: Alyssa Wilk Date: Tue, 25 Oct 2022 19:02:15 -0400 Subject: [PATCH 1/8] build: removing alwayslink from Enovy CC libraries Signed-off-by: Alyssa Wilk --- bazel/envoy_build_system.bzl | 2 ++ bazel/envoy_library.bzl | 21 ++++++++++++++++++- changelogs/current.yaml | 4 ++++ source/common/common/BUILD | 3 ++- source/common/crypto/BUILD | 2 ++ source/common/grpc/BUILD | 3 ++- source/common/http/match_delegate/BUILD | 4 ++-- source/common/http/matching/BUILD | 3 ++- source/common/network/BUILD | 7 ++++--- source/common/network/matching/BUILD | 3 ++- source/common/quic/BUILD | 3 ++- source/common/router/BUILD | 5 +++-- source/common/ssl/matching/BUILD | 4 ++-- source/common/upstream/BUILD | 11 +++++----- source/common/watchdog/BUILD | 3 ++- source/extensions/access_loggers/wasm/BUILD | 1 + .../bootstrap/internal_listener/BUILD | 4 ++-- source/extensions/common/wasm/BUILD | 6 +++++- source/extensions/common/wasm/ext/BUILD | 2 ++ source/extensions/extensions_build_config.bzl | 7 +++++++ source/extensions/filters/http/wasm/BUILD | 1 + .../filters/network/dubbo_proxy/BUILD | 4 ++-- .../filters/network/dubbo_proxy/router/BUILD | 3 ++- .../filters/network/thrift_proxy/BUILD | 16 +++++++------- source/extensions/filters/network/wasm/BUILD | 1 + .../extensions/grpc_credentials/example/BUILD | 4 ++-- .../quic/connection_id_generator/BUILD | 2 +- source/extensions/quic/crypto_stream/BUILD | 5 ++--- source/extensions/quic/proof_source/BUILD | 3 +-- source/extensions/stat_sinks/wasm/BUILD | 1 + .../tls/cert_validator/BUILD | 4 ++-- .../access_loggers/wasm/test_data/BUILD | 4 ++-- .../extensions/bootstrap/wasm/test_data/BUILD | 8 +++---- test/extensions/common/wasm/test_data/BUILD | 8 +++---- .../filters/http/wasm/test_data/BUILD | 4 ++-- .../filters/network/wasm/test_data/BUILD | 4 ++-- test/extensions/stats_sinks/wasm/BUILD | 1 + .../stats_sinks/wasm/test_data/BUILD | 4 ++-- 38 files changed, 114 insertions(+), 61 deletions(-) diff --git a/bazel/envoy_build_system.bzl b/bazel/envoy_build_system.bzl index f87903151df8d..0eefac12f2c87 100644 --- a/bazel/envoy_build_system.bzl +++ b/bazel/envoy_build_system.bzl @@ -7,6 +7,7 @@ load( ":envoy_library.bzl", _envoy_basic_cc_library = "envoy_basic_cc_library", _envoy_cc_contrib_extension = "envoy_cc_contrib_extension", + _envoy_cc_core_extension = "envoy_cc_core_extension", _envoy_cc_extension = "envoy_cc_extension", _envoy_cc_library = "envoy_cc_library", _envoy_cc_linux_library = "envoy_cc_linux_library", @@ -227,6 +228,7 @@ envoy_cc_binary = _envoy_cc_binary # Library wrappers (from envoy_library.bzl) envoy_basic_cc_library = _envoy_basic_cc_library envoy_cc_extension = _envoy_cc_extension +envoy_cc_core_extension = _envoy_cc_core_extension envoy_cc_contrib_extension = _envoy_cc_contrib_extension envoy_cc_library = _envoy_cc_library envoy_cc_linux_library = _envoy_cc_linux_library diff --git a/bazel/envoy_library.bzl b/bazel/envoy_library.bzl index 12487aee0bd25..71b51d8c863f4 100644 --- a/bazel/envoy_library.bzl +++ b/bazel/envoy_library.bzl @@ -12,6 +12,8 @@ load( "@envoy_build_config//:extensions_build_config.bzl", "CONTRIB_EXTENSION_PACKAGE_VISIBILITY", "EXTENSION_CONFIG_VISIBILITY", + "EXTENSION_DEFAULT_ALWAYSLINK", + "LIBRARY_DEFAULT_ALWAYSLINK", ) # As above, but wrapped in list form for adding to dep lists. This smell seems needed as @@ -52,11 +54,25 @@ def envoy_basic_cc_library(name, deps = [], external_deps = [], **kargs): **kargs ) +# Extensions that Envoy will currently not work without. These have public visibility. +def envoy_cc_core_extension( + name, + tags = [], + visibility = ["//visibility:public"], + **kwargs): + envoy_cc_extension( + name = name, + tags = tags, + visibility = visibility, + **kwargs + ) + def envoy_cc_extension( name, tags = [], extra_visibility = [], visibility = EXTENSION_CONFIG_VISIBILITY, + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, **kwargs): if "//visibility:public" not in visibility: visibility = visibility + extra_visibility @@ -66,6 +82,7 @@ def envoy_cc_extension( name = name, tags = tags, visibility = visibility, + alwayslink = alwayslink, **kwargs ) native.cc_library( @@ -83,6 +100,7 @@ def envoy_cc_contrib_extension( tags = [], extra_visibility = [], visibility = CONTRIB_EXTENSION_PACKAGE_VISIBILITY, + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, **kwargs): envoy_cc_extension(name, tags, extra_visibility, visibility, **kwargs) @@ -101,6 +119,7 @@ def envoy_cc_library( strip_include_prefix = None, include_prefix = None, textual_hdrs = None, + alwayslink = LIBRARY_DEFAULT_ALWAYSLINK, defines = []): if tcmalloc_dep: deps += tcmalloc_external_deps(repository) @@ -122,7 +141,7 @@ def envoy_cc_library( envoy_external_dep_path("abseil_strings"), envoy_external_dep_path("fmtlib"), ], - alwayslink = 1, + alwayslink = alwayslink, linkstatic = envoy_linkstatic(), strip_include_prefix = strip_include_prefix, include_prefix = include_prefix, diff --git a/changelogs/current.yaml b/changelogs/current.yaml index 02c61a9a48c0b..7ff1f1a87f99d 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -3,6 +3,10 @@ date: Pending behavior_changes: # *Changes that are expected to cause an incompatibility if applicable; deployment changes are likely required* + - area: build + change: | + changed envoy libraries to not always link. This can be reverted by setting LIBRARY_DEFAULT_ALWAYSLINK = 1 in extensions_build_config.bzl + minor_behavior_changes: # *Changes that may cause incompatibilities for some users, but should not for most* diff --git a/source/common/common/BUILD b/source/common/common/BUILD index 7931c53cd6dee..c98d61bf16b5b 100644 --- a/source/common/common/BUILD +++ b/source/common/common/BUILD @@ -1,6 +1,7 @@ load( "//bazel:envoy_build_system.bzl", "envoy_basic_cc_library", + "envoy_cc_core_extension", "envoy_cc_library", "envoy_cc_platform_dep", "envoy_cc_posix_library", @@ -326,7 +327,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "regex_lib", srcs = ["regex.cc"], hdrs = ["regex.h"], diff --git a/source/common/crypto/BUILD b/source/common/crypto/BUILD index 0b6e29babbd23..1baf0903f6182 100644 --- a/source/common/crypto/BUILD +++ b/source/common/crypto/BUILD @@ -28,4 +28,6 @@ envoy_cc_library( "//source/common/common:assert_lib", "//source/common/singleton:threadsafe_singleton", ], + # for the singleton + alwayslink = 1, ) diff --git a/source/common/grpc/BUILD b/source/common/grpc/BUILD index 670068dd7f221..f5f82fe7c1877 100644 --- a/source/common/grpc/BUILD +++ b/source/common/grpc/BUILD @@ -1,5 +1,6 @@ load( "//bazel:envoy_build_system.bzl", + "envoy_cc_core_extension", "envoy_cc_library", "envoy_google_grpc_external_deps", "envoy_package", @@ -193,7 +194,7 @@ envoy_cc_library( ] + envoy_google_grpc_external_deps(), ) -envoy_cc_library( +envoy_cc_core_extension( name = "google_grpc_creds_lib", srcs = ["google_grpc_creds_impl.cc"], hdrs = ["google_grpc_creds_impl.h"], diff --git a/source/common/http/match_delegate/BUILD b/source/common/http/match_delegate/BUILD index 84cbea53861b9..56f1db5591735 100644 --- a/source/common/http/match_delegate/BUILD +++ b/source/common/http/match_delegate/BUILD @@ -1,6 +1,6 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_library", + "envoy_cc_core_extension", "envoy_package", ) @@ -8,7 +8,7 @@ licenses(["notice"]) # Apache 2 envoy_package() -envoy_cc_library( +envoy_cc_core_extension( name = "config", srcs = ["config.cc"], hdrs = ["config.h"], diff --git a/source/common/http/matching/BUILD b/source/common/http/matching/BUILD index 87837d2e6ff34..f22731aaca852 100644 --- a/source/common/http/matching/BUILD +++ b/source/common/http/matching/BUILD @@ -1,5 +1,6 @@ load( "//bazel:envoy_build_system.bzl", + "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", ) @@ -17,7 +18,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "inputs_lib", srcs = ["inputs.cc"], hdrs = ["inputs.h"], diff --git a/source/common/network/BUILD b/source/common/network/BUILD index e14c45f0cda99..d260b8f924fe5 100644 --- a/source/common/network/BUILD +++ b/source/common/network/BUILD @@ -1,5 +1,6 @@ load( "//bazel:envoy_build_system.bzl", + "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", ) @@ -140,7 +141,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "default_client_connection_factory", srcs = [ "default_client_connection_factory.cc", @@ -219,7 +220,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "socket_interface_lib", hdrs = ["socket_interface.h"], deps = [ @@ -230,7 +231,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "default_socket_interface_lib", srcs = [ "io_socket_handle_impl.cc", diff --git a/source/common/network/matching/BUILD b/source/common/network/matching/BUILD index ca64ff93342ce..287f5bef681af 100644 --- a/source/common/network/matching/BUILD +++ b/source/common/network/matching/BUILD @@ -1,5 +1,6 @@ load( "//bazel:envoy_build_system.bzl", + "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", ) @@ -16,7 +17,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "inputs_lib", srcs = ["inputs.cc"], hdrs = ["inputs.h"], diff --git a/source/common/quic/BUILD b/source/common/quic/BUILD index d8fd4460dbb24..380f0bd0a8c5d 100644 --- a/source/common/quic/BUILD +++ b/source/common/quic/BUILD @@ -1,5 +1,6 @@ load( "//bazel:envoy_build_system.bzl", + "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", ) @@ -414,7 +415,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "quic_transport_socket_factory_lib", srcs = ["quic_transport_socket_factory.cc"], hdrs = ["quic_transport_socket_factory.h"], diff --git a/source/common/router/BUILD b/source/common/router/BUILD index 9e848686d8c53..5ad67c526eb36 100644 --- a/source/common/router/BUILD +++ b/source/common/router/BUILD @@ -1,5 +1,6 @@ load( "//bazel:envoy_build_system.bzl", + "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", ) @@ -27,7 +28,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "config_lib", srcs = ["config_impl.cc"], hdrs = ["config_impl.h"], @@ -332,7 +333,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "upstream_codec_filter_lib", srcs = [ "upstream_codec_filter.cc", diff --git a/source/common/ssl/matching/BUILD b/source/common/ssl/matching/BUILD index 4c7f7e7583177..a435a22cfec45 100644 --- a/source/common/ssl/matching/BUILD +++ b/source/common/ssl/matching/BUILD @@ -1,6 +1,6 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_library", + "envoy_cc_core_extension", "envoy_package", ) @@ -8,7 +8,7 @@ licenses(["notice"]) # Apache 2 envoy_package() -envoy_cc_library( +envoy_cc_core_extension( name = "inputs_lib", srcs = ["inputs.cc"], hdrs = ["inputs.h"], diff --git a/source/common/upstream/BUILD b/source/common/upstream/BUILD index 50206adf02562..dbcc6b0e95471 100644 --- a/source/common/upstream/BUILD +++ b/source/common/upstream/BUILD @@ -1,5 +1,6 @@ load( "//bazel:envoy_build_system.bzl", + "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", "envoy_select_enable_http3", @@ -337,7 +338,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "logical_dns_cluster_lib", srcs = ["logical_dns_cluster.cc"], hdrs = ["logical_dns_cluster.h"], @@ -359,7 +360,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "original_dst_cluster_lib", srcs = ["original_dst_cluster.cc"], hdrs = ["original_dst_cluster.h"], @@ -450,7 +451,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "eds_lib", srcs = ["eds.cc"], hdrs = ["eds.h"], @@ -584,7 +585,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "static_cluster_lib", srcs = ["static_cluster.cc"], hdrs = ["static_cluster.h"], @@ -596,7 +597,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "strict_dns_cluster_lib", srcs = ["strict_dns_cluster.cc"], hdrs = ["strict_dns_cluster.h"], diff --git a/source/common/watchdog/BUILD b/source/common/watchdog/BUILD index ce5210c0c245d..abcace5e3c143 100644 --- a/source/common/watchdog/BUILD +++ b/source/common/watchdog/BUILD @@ -1,5 +1,6 @@ load( "//bazel:envoy_build_system.bzl", + "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", ) @@ -23,7 +24,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_core_extension( name = "abort_action_config", srcs = ["abort_action_config.cc"], hdrs = ["abort_action_config.h"], diff --git a/source/extensions/access_loggers/wasm/BUILD b/source/extensions/access_loggers/wasm/BUILD index 3ea6a5ba7c0fb..5765746237c43 100644 --- a/source/extensions/access_loggers/wasm/BUILD +++ b/source/extensions/access_loggers/wasm/BUILD @@ -19,6 +19,7 @@ envoy_cc_library( "//source/common/http:header_map_lib", "//source/extensions/common/wasm:wasm_lib", ], + alwayslink = 1, ) envoy_cc_extension( diff --git a/source/extensions/bootstrap/internal_listener/BUILD b/source/extensions/bootstrap/internal_listener/BUILD index cb2db85312f7d..8ad8aef1ec98b 100644 --- a/source/extensions/bootstrap/internal_listener/BUILD +++ b/source/extensions/bootstrap/internal_listener/BUILD @@ -19,7 +19,7 @@ envoy_cc_extension( ], ) -envoy_cc_library( +envoy_cc_extension( name = "internal_listener_registry", srcs = [ "internal_listener_registry.cc", @@ -35,7 +35,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "client_connection_factory", srcs = [ "client_connection_factory.cc", diff --git a/source/extensions/common/wasm/BUILD b/source/extensions/common/wasm/BUILD index 5cc45cd98cc7a..0b9ad7e976288 100644 --- a/source/extensions/common/wasm/BUILD +++ b/source/extensions/common/wasm/BUILD @@ -1,5 +1,6 @@ load( "//bazel:envoy_build_system.bzl", + "envoy_cc_extension", "envoy_cc_library", "envoy_extension_package", ) @@ -17,6 +18,7 @@ envoy_cc_library( "//envoy/config:typed_config_interface", "@proxy_wasm_cpp_host//:wasm_vm_headers", ], + alwayslink = 1, ) # NB: Used to break the circular dependency between wasm_lib and null_plugin_lib. @@ -49,9 +51,10 @@ envoy_cc_library( "@proxy_wasm_cpp_host//:headers", "@proxy_wasm_cpp_sdk//:common_lib", ], + alwayslink = 1, ) -envoy_cc_library( +envoy_cc_extension( name = "wasm_lib", srcs = [ "context.cc", @@ -109,4 +112,5 @@ envoy_cc_library( ], }, ), + alwayslink = 1, ) diff --git a/source/extensions/common/wasm/ext/BUILD b/source/extensions/common/wasm/ext/BUILD index 6363ae9404ca7..c42895a0526ba 100644 --- a/source/extensions/common/wasm/ext/BUILD +++ b/source/extensions/common/wasm/ext/BUILD @@ -19,6 +19,7 @@ envoy_cc_library( "@proxy_wasm_cpp_sdk//:api_lib", "@proxy_wasm_cpp_sdk//:common_lib", ], + alwayslink = 1, ) envoy_cc_library( @@ -32,6 +33,7 @@ envoy_cc_library( "//source/common/grpc:async_client_lib", "@envoy_api//envoy/config/core/v3:pkg_cc_proto", ], + alwayslink = 1, ) # NB: this target is compiled to Wasm. Hence the generic rule. diff --git a/source/extensions/extensions_build_config.bzl b/source/extensions/extensions_build_config.bzl index 00bf915a9dfdf..95e4d2aa77c8f 100644 --- a/source/extensions/extensions_build_config.bzl +++ b/source/extensions/extensions_build_config.bzl @@ -375,3 +375,10 @@ EXTENSIONS = { EXTENSION_CONFIG_VISIBILITY = ["//:extension_config", "//:contrib_library", "//:examples_library"] EXTENSION_PACKAGE_VISIBILITY = ["//:extension_library", "//:contrib_library", "//:examples_library"] CONTRIB_EXTENSION_PACKAGE_VISIBILITY = ["//:contrib_library"] + +# As part of build minimization for Envoy Mobile, Envoy libraries were changed to not always link. +# This allows folks importing Envoy to easily revert that change by settting LIBRARY_DEFAULT_ALWAYSLINK to 1 +LIBRARY_DEFAULT_ALWAYSLINK = 0 + +# For any users who want to further disable alwayslink, this can be set to 0. +EXTENSION_DEFAULT_ALWAYSLINK = 1 diff --git a/source/extensions/filters/http/wasm/BUILD b/source/extensions/filters/http/wasm/BUILD index 4b5bb15995a31..b9eb2641e9abb 100644 --- a/source/extensions/filters/http/wasm/BUILD +++ b/source/extensions/filters/http/wasm/BUILD @@ -22,6 +22,7 @@ envoy_cc_library( "//source/extensions/common/wasm:wasm_lib", "@envoy_api//envoy/extensions/filters/http/wasm/v3:pkg_cc_proto", ], + alwayslink = 1, ) envoy_cc_extension( diff --git a/source/extensions/filters/network/dubbo_proxy/BUILD b/source/extensions/filters/network/dubbo_proxy/BUILD index 71bffff76c7eb..c5feb2f807638 100644 --- a/source/extensions/filters/network/dubbo_proxy/BUILD +++ b/source/extensions/filters/network/dubbo_proxy/BUILD @@ -37,7 +37,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "dubbo_protocol_impl_lib", srcs = ["dubbo_protocol_impl.cc"], hdrs = ["dubbo_protocol_impl.h"], @@ -66,7 +66,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "dubbo_hessian2_serializer_impl_lib", srcs = ["dubbo_hessian2_serializer_impl.cc"], hdrs = [ diff --git a/source/extensions/filters/network/dubbo_proxy/router/BUILD b/source/extensions/filters/network/dubbo_proxy/router/BUILD index e92f5d740c0df..3c90543bc0d79 100644 --- a/source/extensions/filters/network/dubbo_proxy/router/BUILD +++ b/source/extensions/filters/network/dubbo_proxy/router/BUILD @@ -1,5 +1,6 @@ load( "//bazel:envoy_build_system.bzl", + "envoy_cc_extension", "envoy_cc_library", "envoy_extension_package", ) @@ -37,7 +38,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "config", srcs = ["config.cc"], hdrs = ["config.h"], diff --git a/source/extensions/filters/network/thrift_proxy/BUILD b/source/extensions/filters/network/thrift_proxy/BUILD index a8160b82c59f0..6ad5377c40604 100644 --- a/source/extensions/filters/network/thrift_proxy/BUILD +++ b/source/extensions/filters/network/thrift_proxy/BUILD @@ -190,7 +190,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "auto_protocol_lib", srcs = [ "auto_protocol_impl.cc", @@ -208,7 +208,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "binary_protocol_lib", srcs = [ "binary_protocol_impl.cc", @@ -223,7 +223,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "compact_protocol_lib", srcs = [ "compact_protocol_impl.cc", @@ -239,7 +239,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "twitter_protocol_lib", srcs = [ "twitter_protocol_impl.cc", @@ -332,7 +332,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "auto_transport_lib", srcs = [ "auto_transport_impl.cc", @@ -353,7 +353,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "framed_transport_lib", srcs = [ "framed_transport_impl.cc", @@ -368,7 +368,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "header_transport_lib", srcs = [ "header_transport_impl.cc", @@ -384,7 +384,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "unframed_transport_lib", srcs = [ "unframed_transport_impl.cc", diff --git a/source/extensions/filters/network/wasm/BUILD b/source/extensions/filters/network/wasm/BUILD index 8b3bb8ac01fb4..c3cee216c2e9f 100644 --- a/source/extensions/filters/network/wasm/BUILD +++ b/source/extensions/filters/network/wasm/BUILD @@ -22,6 +22,7 @@ envoy_cc_library( "//source/extensions/filters/network:well_known_names", "@envoy_api//envoy/extensions/filters/network/wasm/v3:pkg_cc_proto", ], + alwayslink = 1, ) envoy_cc_extension( diff --git a/source/extensions/grpc_credentials/example/BUILD b/source/extensions/grpc_credentials/example/BUILD index 01c0e4e8ea23a..9eab16ca5bc21 100644 --- a/source/extensions/grpc_credentials/example/BUILD +++ b/source/extensions/grpc_credentials/example/BUILD @@ -1,6 +1,6 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_library", + "envoy_cc_extension", "envoy_extension_package", ) @@ -10,7 +10,7 @@ licenses(["notice"]) # Apache 2 envoy_extension_package() -envoy_cc_library( +envoy_cc_extension( name = "config", srcs = ["config.cc"], hdrs = ["config.h"], diff --git a/source/extensions/quic/connection_id_generator/BUILD b/source/extensions/quic/connection_id_generator/BUILD index 4f1013c84a776..aeb4451e18def 100644 --- a/source/extensions/quic/connection_id_generator/BUILD +++ b/source/extensions/quic/connection_id_generator/BUILD @@ -26,7 +26,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_extension( name = "envoy_deterministic_connection_id_generator_config_lib", srcs = ["envoy_deterministic_connection_id_generator_config.cc"], hdrs = ["envoy_deterministic_connection_id_generator_config.h"], diff --git a/source/extensions/quic/crypto_stream/BUILD b/source/extensions/quic/crypto_stream/BUILD index 60db832707b4f..94f15961182a6 100644 --- a/source/extensions/quic/crypto_stream/BUILD +++ b/source/extensions/quic/crypto_stream/BUILD @@ -1,7 +1,6 @@ load( "//bazel:envoy_build_system.bzl", "envoy_cc_extension", - "envoy_cc_library", "envoy_extension_package", ) @@ -11,7 +10,7 @@ licenses(["notice"]) # Apache 2 envoy_extension_package() -envoy_cc_library( +envoy_cc_extension( name = "envoy_quic_crypto_server_stream_lib", srcs = ["envoy_quic_crypto_server_stream.cc"], hdrs = ["envoy_quic_crypto_server_stream.h"], @@ -45,7 +44,7 @@ envoy_cc_extension( ), ) -envoy_cc_library( +envoy_cc_extension( name = "envoy_quic_crypto_client_stream_lib", srcs = ["envoy_quic_crypto_client_stream.cc"], hdrs = ["envoy_quic_crypto_client_stream.h"], diff --git a/source/extensions/quic/proof_source/BUILD b/source/extensions/quic/proof_source/BUILD index 87dfd8b6023bf..ec018f481ce4c 100644 --- a/source/extensions/quic/proof_source/BUILD +++ b/source/extensions/quic/proof_source/BUILD @@ -1,7 +1,6 @@ load( "//bazel:envoy_build_system.bzl", "envoy_cc_extension", - "envoy_cc_library", "envoy_extension_package", ) @@ -11,7 +10,7 @@ licenses(["notice"]) # Apache 2 envoy_extension_package() -envoy_cc_library( +envoy_cc_extension( name = "envoy_quic_proof_source_factory_impl_lib", srcs = ["envoy_quic_proof_source_factory_impl.cc"], hdrs = ["envoy_quic_proof_source_factory_impl.h"], diff --git a/source/extensions/stat_sinks/wasm/BUILD b/source/extensions/stat_sinks/wasm/BUILD index ce5f63bfb6168..d5179a5be9e46 100644 --- a/source/extensions/stat_sinks/wasm/BUILD +++ b/source/extensions/stat_sinks/wasm/BUILD @@ -34,4 +34,5 @@ envoy_cc_library( "//source/extensions/common/wasm:wasm_lib", "@envoy_api//envoy/extensions/filters/network/wasm/v3:pkg_cc_proto", ], + alwayslink = 1, ) diff --git a/source/extensions/transport_sockets/tls/cert_validator/BUILD b/source/extensions/transport_sockets/tls/cert_validator/BUILD index 9b827c538104b..b709fb27610ee 100644 --- a/source/extensions/transport_sockets/tls/cert_validator/BUILD +++ b/source/extensions/transport_sockets/tls/cert_validator/BUILD @@ -1,6 +1,6 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_library", + "envoy_cc_core_extension", "envoy_extension_package", ) @@ -8,7 +8,7 @@ licenses(["notice"]) # Apache 2 envoy_extension_package() -envoy_cc_library( +envoy_cc_core_extension( name = "cert_validator_lib", srcs = [ "default_validator.cc", diff --git a/test/extensions/access_loggers/wasm/test_data/BUILD b/test/extensions/access_loggers/wasm/test_data/BUILD index 7dbdc09c5d1e6..b4090ca57f534 100644 --- a/test/extensions/access_loggers/wasm/test_data/BUILD +++ b/test/extensions/access_loggers/wasm/test_data/BUILD @@ -1,6 +1,6 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_library", + "envoy_cc_test_library", "envoy_package", ) load("//bazel/wasm:wasm.bzl", "envoy_wasm_cc_binary") @@ -9,7 +9,7 @@ licenses(["notice"]) # Apache 2 envoy_package() -envoy_cc_library( +envoy_cc_test_library( name = "test_cpp_plugin", srcs = [ "test_cpp.cc", diff --git a/test/extensions/bootstrap/wasm/test_data/BUILD b/test/extensions/bootstrap/wasm/test_data/BUILD index 7caf434c47713..e5fca0841f8e1 100644 --- a/test/extensions/bootstrap/wasm/test_data/BUILD +++ b/test/extensions/bootstrap/wasm/test_data/BUILD @@ -1,6 +1,6 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_library", + "envoy_cc_test_library", "envoy_package", ) load("//bazel/wasm:wasm.bzl", "envoy_wasm_cc_binary", "wasm_rust_binary") @@ -19,7 +19,7 @@ wasm_rust_binary( ], ) -envoy_cc_library( +envoy_cc_test_library( name = "speed_cpp_plugin", srcs = [ "speed_cpp.cc", @@ -35,7 +35,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_test_library( name = "start_cpp_plugin", srcs = [ "start_cpp.cc", @@ -51,7 +51,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_test_library( name = "stats_cpp_plugin", srcs = [ "stats_cpp.cc", diff --git a/test/extensions/common/wasm/test_data/BUILD b/test/extensions/common/wasm/test_data/BUILD index 35af4271860db..4a3760381f05a 100644 --- a/test/extensions/common/wasm/test_data/BUILD +++ b/test/extensions/common/wasm/test_data/BUILD @@ -1,6 +1,6 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_library", + "envoy_cc_test_library", "envoy_package", ) load("//bazel:envoy_select.bzl", "envoy_select_wasm_v8_bool") @@ -17,7 +17,7 @@ wasm_rust_binary( precompile = envoy_select_wasm_v8_bool(), ) -envoy_cc_library( +envoy_cc_test_library( name = "test_cpp_plugin", srcs = [ "test_cpp.cc", @@ -33,7 +33,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_test_library( name = "test_context_cpp_plugin", srcs = [ "test_context_cpp.cc", @@ -50,7 +50,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_test_library( name = "test_restriction_cpp_plugin", srcs = [ "test_restriction_cpp.cc", diff --git a/test/extensions/filters/http/wasm/test_data/BUILD b/test/extensions/filters/http/wasm/test_data/BUILD index c6d1f956a59e5..ff6c6b137c35a 100644 --- a/test/extensions/filters/http/wasm/test_data/BUILD +++ b/test/extensions/filters/http/wasm/test_data/BUILD @@ -1,7 +1,7 @@ load("@rules_proto//proto:defs.bzl", "proto_library") load( "//bazel:envoy_build_system.bzl", - "envoy_cc_library", + "envoy_cc_test_library", "envoy_package", ) load("//bazel/wasm:wasm.bzl", "envoy_wasm_cc_binary", "wasm_rust_binary") @@ -112,7 +112,7 @@ wasm_rust_binary( ], ) -envoy_cc_library( +envoy_cc_test_library( name = "test_cpp_plugin", srcs = [ "test_async_call_cpp.cc", diff --git a/test/extensions/filters/network/wasm/test_data/BUILD b/test/extensions/filters/network/wasm/test_data/BUILD index 5281609f62ae3..ba975cbba2563 100644 --- a/test/extensions/filters/network/wasm/test_data/BUILD +++ b/test/extensions/filters/network/wasm/test_data/BUILD @@ -1,6 +1,6 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_library", + "envoy_cc_test_library", "envoy_package", ) load("//bazel/wasm:wasm.bzl", "envoy_wasm_cc_binary", "wasm_rust_binary") @@ -45,7 +45,7 @@ wasm_rust_binary( ], ) -envoy_cc_library( +envoy_cc_test_library( name = "test_cpp_plugin", srcs = [ "test_close_stream_cpp.cc", diff --git a/test/extensions/stats_sinks/wasm/BUILD b/test/extensions/stats_sinks/wasm/BUILD index 06de37b40f37c..8f40393ed055a 100644 --- a/test/extensions/stats_sinks/wasm/BUILD +++ b/test/extensions/stats_sinks/wasm/BUILD @@ -42,6 +42,7 @@ envoy_extension_cc_test( deps = [ "//source/common/stats:stats_lib", "//source/extensions/common/wasm:wasm_lib", + "//source/extensions/wasm_runtime/null:config", "//test/extensions/common/wasm:wasm_runtime", "//test/extensions/stats_sinks/wasm/test_data:test_context_cpp_plugin", "//test/mocks/stats:stats_mocks", diff --git a/test/extensions/stats_sinks/wasm/test_data/BUILD b/test/extensions/stats_sinks/wasm/test_data/BUILD index f2dca30447bc7..ac1a122048129 100644 --- a/test/extensions/stats_sinks/wasm/test_data/BUILD +++ b/test/extensions/stats_sinks/wasm/test_data/BUILD @@ -1,6 +1,6 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_library", + "envoy_cc_test_library", "envoy_package", ) load("//bazel/wasm:wasm.bzl", "envoy_wasm_cc_binary") @@ -9,7 +9,7 @@ licenses(["notice"]) # Apache 2 envoy_package() -envoy_cc_library( +envoy_cc_test_library( name = "test_context_cpp_plugin", srcs = [ "test_context_cpp.cc", From 93fabeb39c82ce2a11363283ee90c7391c323339 Mon Sep 17 00:00:00 2001 From: Alyssa Wilk Date: Wed, 26 Oct 2022 10:14:51 -0400 Subject: [PATCH 2/8] fix contrib, flip defaults Signed-off-by: Alyssa Wilk --- changelogs/current.yaml | 4 ---- contrib/generic_proxy/filters/network/source/BUILD | 4 ++-- source/extensions/extensions_build_config.bzl | 3 +-- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/changelogs/current.yaml b/changelogs/current.yaml index 7ff1f1a87f99d..02c61a9a48c0b 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -3,10 +3,6 @@ date: Pending behavior_changes: # *Changes that are expected to cause an incompatibility if applicable; deployment changes are likely required* - - area: build - change: | - changed envoy libraries to not always link. This can be reverted by setting LIBRARY_DEFAULT_ALWAYSLINK = 1 in extensions_build_config.bzl - minor_behavior_changes: # *Changes that may cause incompatibilities for some users, but should not for most* diff --git a/contrib/generic_proxy/filters/network/source/BUILD b/contrib/generic_proxy/filters/network/source/BUILD index f37fb5a22dee7..e7d5447561cc5 100644 --- a/contrib/generic_proxy/filters/network/source/BUILD +++ b/contrib/generic_proxy/filters/network/source/BUILD @@ -48,7 +48,7 @@ envoy_cc_contrib_extension( ], ) -envoy_cc_library( +envoy_cc_contrib_extension( name = "route_lib", srcs = [ "route.cc", @@ -72,7 +72,7 @@ envoy_cc_library( ], ) -envoy_cc_library( +envoy_cc_contrib_extension( name = "match_lib", srcs = [ "match.cc", diff --git a/source/extensions/extensions_build_config.bzl b/source/extensions/extensions_build_config.bzl index 95e4d2aa77c8f..b1099c582694c 100644 --- a/source/extensions/extensions_build_config.bzl +++ b/source/extensions/extensions_build_config.bzl @@ -376,8 +376,7 @@ EXTENSION_CONFIG_VISIBILITY = ["//:extension_config", "//:contrib_library", "//: EXTENSION_PACKAGE_VISIBILITY = ["//:extension_library", "//:contrib_library", "//:examples_library"] CONTRIB_EXTENSION_PACKAGE_VISIBILITY = ["//:contrib_library"] -# As part of build minimization for Envoy Mobile, Envoy libraries were changed to not always link. -# This allows folks importing Envoy to easily revert that change by settting LIBRARY_DEFAULT_ALWAYSLINK to 1 +# Set this variable to true to disable alwayslink for envoy_cc_library. LIBRARY_DEFAULT_ALWAYSLINK = 0 # For any users who want to further disable alwayslink, this can be set to 0. From 2538964200777fde8d2bf68ea739540c198446e1 Mon Sep 17 00:00:00 2001 From: Alyssa Wilk Date: Thu, 27 Oct 2022 13:06:19 -0400 Subject: [PATCH 3/8] reworking Signed-off-by: Alyssa Wilk --- bazel/envoy_build_system.bzl | 2 -- bazel/envoy_library.bzl | 13 ---------- .../filters/network/source/BUILD | 5 ++-- source/common/common/BUILD | 8 +++++-- source/common/grpc/BUILD | 8 +++++-- source/common/http/match_delegate/BUILD | 9 +++++-- source/common/http/matching/BUILD | 8 +++++-- source/common/network/BUILD | 14 +++++++---- source/common/network/matching/BUILD | 8 +++++-- source/common/quic/BUILD | 8 +++++-- source/common/router/BUILD | 11 ++++++--- source/common/ssl/matching/BUILD | 9 +++++-- source/common/upstream/BUILD | 20 +++++++++++----- source/common/watchdog/BUILD | 8 +++++-- .../bootstrap/internal_listener/BUILD | 1 + source/extensions/common/wasm/ext/BUILD | 5 ++++ source/extensions/extensions_build_config.bzl | 1 + .../filters/network/dubbo_proxy/BUILD | 6 +++-- .../filters/network/dubbo_proxy/router/BUILD | 4 ++-- .../filters/network/thrift_proxy/BUILD | 24 ++++++++++++------- .../extensions/grpc_credentials/example/BUILD | 5 ++-- .../quic/connection_id_generator/BUILD | 7 +++++- source/extensions/quic/crypto_stream/BUILD | 11 +++++++-- source/extensions/quic/proof_source/BUILD | 8 ++++++- source/extensions/stat_sinks/wasm/BUILD | 1 + .../tls/cert_validator/BUILD | 5 ++-- .../access_loggers/wasm/test_data/BUILD | 5 ++++ 27 files changed, 148 insertions(+), 66 deletions(-) diff --git a/bazel/envoy_build_system.bzl b/bazel/envoy_build_system.bzl index 0eefac12f2c87..f87903151df8d 100644 --- a/bazel/envoy_build_system.bzl +++ b/bazel/envoy_build_system.bzl @@ -7,7 +7,6 @@ load( ":envoy_library.bzl", _envoy_basic_cc_library = "envoy_basic_cc_library", _envoy_cc_contrib_extension = "envoy_cc_contrib_extension", - _envoy_cc_core_extension = "envoy_cc_core_extension", _envoy_cc_extension = "envoy_cc_extension", _envoy_cc_library = "envoy_cc_library", _envoy_cc_linux_library = "envoy_cc_linux_library", @@ -228,7 +227,6 @@ envoy_cc_binary = _envoy_cc_binary # Library wrappers (from envoy_library.bzl) envoy_basic_cc_library = _envoy_basic_cc_library envoy_cc_extension = _envoy_cc_extension -envoy_cc_core_extension = _envoy_cc_core_extension envoy_cc_contrib_extension = _envoy_cc_contrib_extension envoy_cc_library = _envoy_cc_library envoy_cc_linux_library = _envoy_cc_linux_library diff --git a/bazel/envoy_library.bzl b/bazel/envoy_library.bzl index 71b51d8c863f4..3a23d50652a73 100644 --- a/bazel/envoy_library.bzl +++ b/bazel/envoy_library.bzl @@ -54,19 +54,6 @@ def envoy_basic_cc_library(name, deps = [], external_deps = [], **kargs): **kargs ) -# Extensions that Envoy will currently not work without. These have public visibility. -def envoy_cc_core_extension( - name, - tags = [], - visibility = ["//visibility:public"], - **kwargs): - envoy_cc_extension( - name = name, - tags = tags, - visibility = visibility, - **kwargs - ) - def envoy_cc_extension( name, tags = [], diff --git a/contrib/generic_proxy/filters/network/source/BUILD b/contrib/generic_proxy/filters/network/source/BUILD index e7d5447561cc5..dd3b53e7413a3 100644 --- a/contrib/generic_proxy/filters/network/source/BUILD +++ b/contrib/generic_proxy/filters/network/source/BUILD @@ -48,7 +48,7 @@ envoy_cc_contrib_extension( ], ) -envoy_cc_contrib_extension( +envoy_cc_library( name = "route_lib", srcs = [ "route.cc", @@ -72,7 +72,7 @@ envoy_cc_contrib_extension( ], ) -envoy_cc_contrib_extension( +envoy_cc_library( name = "match_lib", srcs = [ "match.cc", @@ -85,4 +85,5 @@ envoy_cc_contrib_extension( "//source/common/matcher:matcher_lib", "@envoy_api//contrib/envoy/extensions/filters/network/generic_proxy/matcher/v3:pkg_cc_proto", ], + alwayslink = 1, ) diff --git a/source/common/common/BUILD b/source/common/common/BUILD index c98d61bf16b5b..33f8c9c6a5ada 100644 --- a/source/common/common/BUILD +++ b/source/common/common/BUILD @@ -1,7 +1,6 @@ load( "//bazel:envoy_build_system.bzl", "envoy_basic_cc_library", - "envoy_cc_core_extension", "envoy_cc_library", "envoy_cc_platform_dep", "envoy_cc_posix_library", @@ -9,6 +8,10 @@ load( "envoy_package", "envoy_pch_library", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -327,7 +330,7 @@ envoy_cc_library( ], ) -envoy_cc_core_extension( +envoy_cc_library( name = "regex_lib", srcs = ["regex.cc"], hdrs = ["regex.h"], @@ -342,6 +345,7 @@ envoy_cc_core_extension( "@envoy_api//envoy/extensions/regex_engines/v3:pkg_cc_proto", "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/grpc/BUILD b/source/common/grpc/BUILD index f5f82fe7c1877..d7a8dc24a4200 100644 --- a/source/common/grpc/BUILD +++ b/source/common/grpc/BUILD @@ -1,11 +1,14 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_core_extension", "envoy_cc_library", "envoy_google_grpc_external_deps", "envoy_package", "envoy_select_google_grpc", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -194,7 +197,7 @@ envoy_cc_library( ] + envoy_google_grpc_external_deps(), ) -envoy_cc_core_extension( +envoy_cc_library( name = "google_grpc_creds_lib", srcs = ["google_grpc_creds_impl.cc"], hdrs = ["google_grpc_creds_impl.h"], @@ -206,6 +209,7 @@ envoy_cc_core_extension( "//source/common/config:datasource_lib", "@envoy_api//envoy/config/core/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/http/match_delegate/BUILD b/source/common/http/match_delegate/BUILD index 56f1db5591735..fb0167effc17d 100644 --- a/source/common/http/match_delegate/BUILD +++ b/source/common/http/match_delegate/BUILD @@ -1,14 +1,18 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_core_extension", + "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 envoy_package() -envoy_cc_core_extension( +envoy_cc_library( name = "config", srcs = ["config.cc"], hdrs = ["config.h"], @@ -21,4 +25,5 @@ envoy_cc_core_extension( "@envoy_api//envoy/extensions/common/matching/v3:pkg_cc_proto", "@envoy_api//envoy/extensions/filters/common/matcher/action/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) diff --git a/source/common/http/matching/BUILD b/source/common/http/matching/BUILD index f22731aaca852..d9635652553b5 100644 --- a/source/common/http/matching/BUILD +++ b/source/common/http/matching/BUILD @@ -1,9 +1,12 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -18,7 +21,7 @@ envoy_cc_library( ], ) -envoy_cc_core_extension( +envoy_cc_library( name = "inputs_lib", srcs = ["inputs.cc"], hdrs = ["inputs.h"], @@ -28,4 +31,5 @@ envoy_cc_core_extension( "//source/common/http:header_utility_lib", "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) diff --git a/source/common/network/BUILD b/source/common/network/BUILD index d260b8f924fe5..755fd3ac1199b 100644 --- a/source/common/network/BUILD +++ b/source/common/network/BUILD @@ -1,9 +1,12 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -141,7 +144,7 @@ envoy_cc_library( ], ) -envoy_cc_core_extension( +envoy_cc_library( name = "default_client_connection_factory", srcs = [ "default_client_connection_factory.cc", @@ -158,6 +161,7 @@ envoy_cc_core_extension( "//envoy/network:transport_socket_interface", "//envoy/registry", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) envoy_cc_library( @@ -220,7 +224,7 @@ envoy_cc_library( ], ) -envoy_cc_core_extension( +envoy_cc_library( name = "socket_interface_lib", hdrs = ["socket_interface.h"], deps = [ @@ -229,9 +233,10 @@ envoy_cc_core_extension( "//envoy/registry", "//envoy/server:bootstrap_extension_config_interface", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) -envoy_cc_core_extension( +envoy_cc_library( name = "default_socket_interface_lib", srcs = [ "io_socket_handle_impl.cc", @@ -255,6 +260,7 @@ envoy_cc_core_extension( "//source/common/event:dispatcher_includes", "@envoy_api//envoy/extensions/network/socket_interface/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/network/matching/BUILD b/source/common/network/matching/BUILD index 287f5bef681af..6a31fba207a04 100644 --- a/source/common/network/matching/BUILD +++ b/source/common/network/matching/BUILD @@ -1,9 +1,12 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -17,7 +20,7 @@ envoy_cc_library( ], ) -envoy_cc_core_extension( +envoy_cc_library( name = "inputs_lib", srcs = ["inputs.cc"], hdrs = ["inputs.h"], @@ -29,4 +32,5 @@ envoy_cc_core_extension( "//source/common/network:utility_lib", "@envoy_api//envoy/extensions/matching/common_inputs/network/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) diff --git a/source/common/quic/BUILD b/source/common/quic/BUILD index 380f0bd0a8c5d..b98cf827804c5 100644 --- a/source/common/quic/BUILD +++ b/source/common/quic/BUILD @@ -1,9 +1,12 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -415,7 +418,7 @@ envoy_cc_library( ], ) -envoy_cc_core_extension( +envoy_cc_library( name = "quic_transport_socket_factory_lib", srcs = ["quic_transport_socket_factory.cc"], hdrs = ["quic_transport_socket_factory.h"], @@ -432,6 +435,7 @@ envoy_cc_core_extension( "@com_github_google_quiche//:quic_core_crypto_crypto_handshake_lib", "@envoy_api//envoy/extensions/transport_sockets/quic/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) # Create a single target that contains all the libraries that register factories. diff --git a/source/common/router/BUILD b/source/common/router/BUILD index 5ad67c526eb36..f8c842ff8a8d4 100644 --- a/source/common/router/BUILD +++ b/source/common/router/BUILD @@ -1,9 +1,12 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -28,7 +31,7 @@ envoy_cc_library( ], ) -envoy_cc_core_extension( +envoy_cc_library( name = "config_lib", srcs = ["config_impl.cc"], hdrs = ["config_impl.h"], @@ -79,6 +82,7 @@ envoy_cc_core_extension( "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", "@envoy_api//envoy/type/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) envoy_cc_library( @@ -333,7 +337,7 @@ envoy_cc_library( ], ) -envoy_cc_core_extension( +envoy_cc_library( name = "upstream_codec_filter_lib", srcs = [ "upstream_codec_filter.cc", @@ -363,6 +367,7 @@ envoy_cc_core_extension( "//source/extensions/filters/http/common:factory_base_lib", "@envoy_api//envoy/extensions/filters/http/upstream_codec/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/ssl/matching/BUILD b/source/common/ssl/matching/BUILD index a435a22cfec45..fdd950608236c 100644 --- a/source/common/ssl/matching/BUILD +++ b/source/common/ssl/matching/BUILD @@ -1,14 +1,18 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_core_extension", + "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 envoy_package() -envoy_cc_core_extension( +envoy_cc_library( name = "inputs_lib", srcs = ["inputs.cc"], hdrs = ["inputs.h"], @@ -18,4 +22,5 @@ envoy_cc_core_extension( "//envoy/network:filter_interface", "@envoy_api//envoy/extensions/matching/common_inputs/ssl/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) diff --git a/source/common/upstream/BUILD b/source/common/upstream/BUILD index dbcc6b0e95471..898538223655b 100644 --- a/source/common/upstream/BUILD +++ b/source/common/upstream/BUILD @@ -1,10 +1,13 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", "envoy_select_enable_http3", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -338,7 +341,7 @@ envoy_cc_library( ], ) -envoy_cc_core_extension( +envoy_cc_library( name = "logical_dns_cluster_lib", srcs = ["logical_dns_cluster.cc"], hdrs = ["logical_dns_cluster.h"], @@ -358,9 +361,10 @@ envoy_cc_core_extension( "@envoy_api//envoy/config/core/v3:pkg_cc_proto", "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) -envoy_cc_core_extension( +envoy_cc_library( name = "original_dst_cluster_lib", srcs = ["original_dst_cluster.cc"], hdrs = ["original_dst_cluster.h"], @@ -378,6 +382,7 @@ envoy_cc_core_extension( "@envoy_api//envoy/config/core/v3:pkg_cc_proto", "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) envoy_cc_library( @@ -451,7 +456,7 @@ envoy_cc_library( ], ) -envoy_cc_core_extension( +envoy_cc_library( name = "eds_lib", srcs = ["eds.cc"], hdrs = ["eds.h"], @@ -481,6 +486,7 @@ envoy_cc_core_extension( "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", "@envoy_api//envoy/service/discovery/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) envoy_cc_library( @@ -585,7 +591,7 @@ envoy_cc_library( ], ) -envoy_cc_core_extension( +envoy_cc_library( name = "static_cluster_lib", srcs = ["static_cluster.cc"], hdrs = ["static_cluster.h"], @@ -595,9 +601,10 @@ envoy_cc_core_extension( "@envoy_api//envoy/config/cluster/v3:pkg_cc_proto", "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) -envoy_cc_core_extension( +envoy_cc_library( name = "strict_dns_cluster_lib", srcs = ["strict_dns_cluster.cc"], hdrs = ["strict_dns_cluster.h"], @@ -607,6 +614,7 @@ envoy_cc_core_extension( "@envoy_api//envoy/config/cluster/v3:pkg_cc_proto", "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/watchdog/BUILD b/source/common/watchdog/BUILD index abcace5e3c143..8a477b75ed3bb 100644 --- a/source/common/watchdog/BUILD +++ b/source/common/watchdog/BUILD @@ -1,9 +1,12 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_core_extension", "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -24,7 +27,7 @@ envoy_cc_library( ], ) -envoy_cc_core_extension( +envoy_cc_library( name = "abort_action_config", srcs = ["abort_action_config.cc"], hdrs = ["abort_action_config.h"], @@ -36,4 +39,5 @@ envoy_cc_core_extension( "//source/common/protobuf:message_validator_lib", "@envoy_api//envoy/watchdog/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) diff --git a/source/extensions/bootstrap/internal_listener/BUILD b/source/extensions/bootstrap/internal_listener/BUILD index 8ad8aef1ec98b..8eff9ec555eb5 100644 --- a/source/extensions/bootstrap/internal_listener/BUILD +++ b/source/extensions/bootstrap/internal_listener/BUILD @@ -33,6 +33,7 @@ envoy_cc_extension( "//source/server:listener_manager_lib", "@envoy_api//envoy/extensions/bootstrap/internal_listener/v3:pkg_cc_proto", ], + alwayslink = 1, ) envoy_cc_extension( diff --git a/source/extensions/common/wasm/ext/BUILD b/source/extensions/common/wasm/ext/BUILD index c42895a0526ba..79f4ceab56f4e 100644 --- a/source/extensions/common/wasm/ext/BUILD +++ b/source/extensions/common/wasm/ext/BUILD @@ -5,6 +5,11 @@ load( "envoy_extension_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) + licenses(["notice"]) # Apache 2 envoy_extension_package() diff --git a/source/extensions/extensions_build_config.bzl b/source/extensions/extensions_build_config.bzl index b1099c582694c..81b96c0e20713 100644 --- a/source/extensions/extensions_build_config.bzl +++ b/source/extensions/extensions_build_config.bzl @@ -380,4 +380,5 @@ CONTRIB_EXTENSION_PACKAGE_VISIBILITY = ["//:contrib_library"] LIBRARY_DEFAULT_ALWAYSLINK = 0 # For any users who want to further disable alwayslink, this can be set to 0. +# TODO(alyssawilk) audit uses of this in source/ and migrate all libraries to extensions. EXTENSION_DEFAULT_ALWAYSLINK = 1 diff --git a/source/extensions/filters/network/dubbo_proxy/BUILD b/source/extensions/filters/network/dubbo_proxy/BUILD index c5feb2f807638..0f91338b37fdd 100644 --- a/source/extensions/filters/network/dubbo_proxy/BUILD +++ b/source/extensions/filters/network/dubbo_proxy/BUILD @@ -37,7 +37,7 @@ envoy_cc_library( ], ) -envoy_cc_extension( +envoy_cc_library( name = "dubbo_protocol_impl_lib", srcs = ["dubbo_protocol_impl.cc"], hdrs = ["dubbo_protocol_impl.h"], @@ -46,6 +46,7 @@ envoy_cc_extension( "//envoy/buffer:buffer_interface", "//source/common/singleton:const_singleton", ], + alwayslink = 1, ) envoy_cc_library( @@ -66,7 +67,7 @@ envoy_cc_library( ], ) -envoy_cc_extension( +envoy_cc_library( name = "dubbo_hessian2_serializer_impl_lib", srcs = ["dubbo_hessian2_serializer_impl.cc"], hdrs = [ @@ -77,6 +78,7 @@ envoy_cc_extension( ":serializer_interface", "//source/common/singleton:const_singleton", ], + alwayslink = 1, ) envoy_cc_library( diff --git a/source/extensions/filters/network/dubbo_proxy/router/BUILD b/source/extensions/filters/network/dubbo_proxy/router/BUILD index 3c90543bc0d79..f75fc1d75d628 100644 --- a/source/extensions/filters/network/dubbo_proxy/router/BUILD +++ b/source/extensions/filters/network/dubbo_proxy/router/BUILD @@ -1,6 +1,5 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_extension", "envoy_cc_library", "envoy_extension_package", ) @@ -38,7 +37,7 @@ envoy_cc_library( ], ) -envoy_cc_extension( +envoy_cc_library( name = "config", srcs = ["config.cc"], hdrs = ["config.h"], @@ -50,6 +49,7 @@ envoy_cc_extension( "//source/extensions/filters/network/dubbo_proxy/filters:filter_config_interface", "@envoy_api//envoy/extensions/filters/network/dubbo_proxy/router/v3:pkg_cc_proto", ], + alwayslink = 1, ) envoy_cc_library( diff --git a/source/extensions/filters/network/thrift_proxy/BUILD b/source/extensions/filters/network/thrift_proxy/BUILD index 6ad5377c40604..3ec89e0d86bdd 100644 --- a/source/extensions/filters/network/thrift_proxy/BUILD +++ b/source/extensions/filters/network/thrift_proxy/BUILD @@ -190,7 +190,7 @@ envoy_cc_library( ], ) -envoy_cc_extension( +envoy_cc_library( name = "auto_protocol_lib", srcs = [ "auto_protocol_impl.cc", @@ -206,9 +206,10 @@ envoy_cc_extension( ":twitter_protocol_lib", "//source/common/common:macros", ], + alwayslink = 1, ) -envoy_cc_extension( +envoy_cc_library( name = "binary_protocol_lib", srcs = [ "binary_protocol_impl.cc", @@ -221,9 +222,10 @@ envoy_cc_extension( ":protocol_interface", "//source/common/common:macros", ], + alwayslink = 1, ) -envoy_cc_extension( +envoy_cc_library( name = "compact_protocol_lib", srcs = [ "compact_protocol_impl.cc", @@ -237,9 +239,10 @@ envoy_cc_extension( ":protocol_interface", "//source/common/common:macros", ], + alwayslink = 1, ) -envoy_cc_extension( +envoy_cc_library( name = "twitter_protocol_lib", srcs = [ "twitter_protocol_impl.cc", @@ -254,6 +257,7 @@ envoy_cc_extension( ":thrift_object_lib", "//source/common/common:macros", ], + alwayslink = 1, ) envoy_cc_library( @@ -332,7 +336,7 @@ envoy_cc_library( ], ) -envoy_cc_extension( +envoy_cc_library( name = "auto_transport_lib", srcs = [ "auto_transport_impl.cc", @@ -351,9 +355,10 @@ envoy_cc_extension( ":unframed_transport_lib", "//source/common/common:assert_lib", ], + alwayslink = 1, ) -envoy_cc_extension( +envoy_cc_library( name = "framed_transport_lib", srcs = [ "framed_transport_impl.cc", @@ -366,9 +371,10 @@ envoy_cc_extension( ":transport_interface", "//source/common/common:assert_lib", ], + alwayslink = 1, ) -envoy_cc_extension( +envoy_cc_library( name = "header_transport_lib", srcs = [ "header_transport_impl.cc", @@ -382,9 +388,10 @@ envoy_cc_extension( ":transport_interface", "//source/common/common:assert_lib", ], + alwayslink = 1, ) -envoy_cc_extension( +envoy_cc_library( name = "unframed_transport_lib", srcs = [ "unframed_transport_impl.cc", @@ -397,4 +404,5 @@ envoy_cc_extension( ":transport_interface", "//source/common/common:assert_lib", ], + alwayslink = 1, ) diff --git a/source/extensions/grpc_credentials/example/BUILD b/source/extensions/grpc_credentials/example/BUILD index 9eab16ca5bc21..e48338fe36fba 100644 --- a/source/extensions/grpc_credentials/example/BUILD +++ b/source/extensions/grpc_credentials/example/BUILD @@ -1,6 +1,6 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_extension", + "envoy_cc_library", "envoy_extension_package", ) @@ -10,7 +10,7 @@ licenses(["notice"]) # Apache 2 envoy_extension_package() -envoy_cc_extension( +envoy_cc_library( name = "config", srcs = ["config.cc"], hdrs = ["config.h"], @@ -28,4 +28,5 @@ envoy_cc_extension( "//source/common/grpc:google_grpc_creds_lib", "@envoy_api//envoy/config/core/v3:pkg_cc_proto", ], + alwayslink = 1, ) diff --git a/source/extensions/quic/connection_id_generator/BUILD b/source/extensions/quic/connection_id_generator/BUILD index aeb4451e18def..15903ad3e012f 100644 --- a/source/extensions/quic/connection_id_generator/BUILD +++ b/source/extensions/quic/connection_id_generator/BUILD @@ -4,6 +4,10 @@ load( "envoy_cc_library", "envoy_extension_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -26,7 +30,7 @@ envoy_cc_library( ], ) -envoy_cc_extension( +envoy_cc_library( name = "envoy_deterministic_connection_id_generator_config_lib", srcs = ["envoy_deterministic_connection_id_generator_config.cc"], hdrs = ["envoy_deterministic_connection_id_generator_config.h"], @@ -37,6 +41,7 @@ envoy_cc_extension( "//source/common/quic:envoy_quic_connection_id_generator_factory_interface", "@envoy_api//envoy/extensions/quic/connection_id_generator/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) envoy_cc_extension( diff --git a/source/extensions/quic/crypto_stream/BUILD b/source/extensions/quic/crypto_stream/BUILD index 94f15961182a6..811abaa979e74 100644 --- a/source/extensions/quic/crypto_stream/BUILD +++ b/source/extensions/quic/crypto_stream/BUILD @@ -1,8 +1,13 @@ load( "//bazel:envoy_build_system.bzl", "envoy_cc_extension", + "envoy_cc_library", "envoy_extension_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -10,7 +15,7 @@ licenses(["notice"]) # Apache 2 envoy_extension_package() -envoy_cc_extension( +envoy_cc_library( name = "envoy_quic_crypto_server_stream_lib", srcs = ["envoy_quic_crypto_server_stream.cc"], hdrs = ["envoy_quic_crypto_server_stream.h"], @@ -24,6 +29,7 @@ envoy_cc_extension( "//source/common/quic:envoy_quic_crypto_stream_factory_lib", "@envoy_api//envoy/extensions/quic/crypto_stream/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) envoy_cc_extension( @@ -44,7 +50,7 @@ envoy_cc_extension( ), ) -envoy_cc_extension( +envoy_cc_library( name = "envoy_quic_crypto_client_stream_lib", srcs = ["envoy_quic_crypto_client_stream.cc"], hdrs = ["envoy_quic_crypto_client_stream.h"], @@ -56,4 +62,5 @@ envoy_cc_extension( deps = [ "//source/common/quic:envoy_quic_crypto_stream_factory_lib", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) diff --git a/source/extensions/quic/proof_source/BUILD b/source/extensions/quic/proof_source/BUILD index ec018f481ce4c..0198d0819e616 100644 --- a/source/extensions/quic/proof_source/BUILD +++ b/source/extensions/quic/proof_source/BUILD @@ -1,8 +1,13 @@ load( "//bazel:envoy_build_system.bzl", "envoy_cc_extension", + "envoy_cc_library", "envoy_extension_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -10,7 +15,7 @@ licenses(["notice"]) # Apache 2 envoy_extension_package() -envoy_cc_extension( +envoy_cc_library( name = "envoy_quic_proof_source_factory_impl_lib", srcs = ["envoy_quic_proof_source_factory_impl.cc"], hdrs = ["envoy_quic_proof_source_factory_impl.h"], @@ -24,6 +29,7 @@ envoy_cc_extension( "//source/common/quic:envoy_quic_proof_source_lib", "@envoy_api//envoy/extensions/quic/proof_source/v3:pkg_cc_proto", ], + alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, ) envoy_cc_extension( diff --git a/source/extensions/stat_sinks/wasm/BUILD b/source/extensions/stat_sinks/wasm/BUILD index d5179a5be9e46..71c6a09f50ef2 100644 --- a/source/extensions/stat_sinks/wasm/BUILD +++ b/source/extensions/stat_sinks/wasm/BUILD @@ -24,6 +24,7 @@ envoy_cc_extension( "//source/server:configuration_lib", "@envoy_api//envoy/extensions/stat_sinks/wasm/v3:pkg_cc_proto", ], + alwayslink = 1, ) envoy_cc_library( diff --git a/source/extensions/transport_sockets/tls/cert_validator/BUILD b/source/extensions/transport_sockets/tls/cert_validator/BUILD index b709fb27610ee..c79416930672a 100644 --- a/source/extensions/transport_sockets/tls/cert_validator/BUILD +++ b/source/extensions/transport_sockets/tls/cert_validator/BUILD @@ -1,6 +1,6 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_core_extension", + "envoy_cc_library", "envoy_extension_package", ) @@ -8,7 +8,7 @@ licenses(["notice"]) # Apache 2 envoy_extension_package() -envoy_cc_core_extension( +envoy_cc_library( name = "cert_validator_lib", srcs = [ "default_validator.cc", @@ -47,4 +47,5 @@ envoy_cc_core_extension( "@envoy_api//envoy/extensions/transport_sockets/tls/v3:pkg_cc_proto", "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", ], + alwayslink = 1, ) diff --git a/test/extensions/access_loggers/wasm/test_data/BUILD b/test/extensions/access_loggers/wasm/test_data/BUILD index b4090ca57f534..c73c5e666735b 100644 --- a/test/extensions/access_loggers/wasm/test_data/BUILD +++ b/test/extensions/access_loggers/wasm/test_data/BUILD @@ -3,6 +3,11 @@ load( "envoy_cc_test_library", "envoy_package", ) + +load( + "@envoy_build_config//:extensions_build_config.bzl", + "EXTENSION_DEFAULT_ALWAYSLINK", +) load("//bazel/wasm:wasm.bzl", "envoy_wasm_cc_binary") licenses(["notice"]) # Apache 2 From 1a9d2be90408da5c531008088164242cdb5ab43b Mon Sep 17 00:00:00 2001 From: Alyssa Wilk Date: Thu, 27 Oct 2022 13:56:10 -0400 Subject: [PATCH 4/8] macos build Signed-off-by: Alyssa Wilk --- ci/osx-build-config/extensions_build_config.bzl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ci/osx-build-config/extensions_build_config.bzl b/ci/osx-build-config/extensions_build_config.bzl index 1c96ee887c44a..b2b1497dac601 100644 --- a/ci/osx-build-config/extensions_build_config.bzl +++ b/ci/osx-build-config/extensions_build_config.bzl @@ -17,3 +17,10 @@ WINDOWS_EXTENSIONS = {} EXTENSION_CONFIG_VISIBILITY = ["//:extension_config"] EXTENSION_PACKAGE_VISIBILITY = ["//:extension_library"] CONTRIB_EXTENSION_PACKAGE_VISIBILITY = ["//:contrib_library"] + +# Set this variable to true to disable alwayslink for envoy_cc_library. +LIBRARY_DEFAULT_ALWAYSLINK = 0 + +# For any users who want to further disable alwayslink, this can be set to 0. +# TODO(alyssawilk) audit uses of this in source/ and migrate all libraries to extensions. +EXTENSION_DEFAULT_ALWAYSLINK = 1 From 745b93d19c707d45ab9f16e54db6d45756699f80 Mon Sep 17 00:00:00 2001 From: Alyssa Wilk Date: Thu, 27 Oct 2022 13:57:51 -0400 Subject: [PATCH 5/8] making PR a no op Signed-off-by: Alyssa Wilk --- ci/osx-build-config/extensions_build_config.bzl | 2 +- source/extensions/extensions_build_config.bzl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/osx-build-config/extensions_build_config.bzl b/ci/osx-build-config/extensions_build_config.bzl index b2b1497dac601..a159122d50fa4 100644 --- a/ci/osx-build-config/extensions_build_config.bzl +++ b/ci/osx-build-config/extensions_build_config.bzl @@ -19,7 +19,7 @@ EXTENSION_PACKAGE_VISIBILITY = ["//:extension_library"] CONTRIB_EXTENSION_PACKAGE_VISIBILITY = ["//:contrib_library"] # Set this variable to true to disable alwayslink for envoy_cc_library. -LIBRARY_DEFAULT_ALWAYSLINK = 0 +LIBRARY_DEFAULT_ALWAYSLINK = 1 # For any users who want to further disable alwayslink, this can be set to 0. # TODO(alyssawilk) audit uses of this in source/ and migrate all libraries to extensions. diff --git a/source/extensions/extensions_build_config.bzl b/source/extensions/extensions_build_config.bzl index 81b96c0e20713..db1c5b178dceb 100644 --- a/source/extensions/extensions_build_config.bzl +++ b/source/extensions/extensions_build_config.bzl @@ -377,7 +377,7 @@ EXTENSION_PACKAGE_VISIBILITY = ["//:extension_library", "//:contrib_library", "/ CONTRIB_EXTENSION_PACKAGE_VISIBILITY = ["//:contrib_library"] # Set this variable to true to disable alwayslink for envoy_cc_library. -LIBRARY_DEFAULT_ALWAYSLINK = 0 +LIBRARY_DEFAULT_ALWAYSLINK = 1 # For any users who want to further disable alwayslink, this can be set to 0. # TODO(alyssawilk) audit uses of this in source/ and migrate all libraries to extensions. From 55f5d44a5d25caa7cd824033f2171d3b68577555 Mon Sep 17 00:00:00 2001 From: Alyssa Wilk Date: Thu, 27 Oct 2022 14:54:06 -0400 Subject: [PATCH 6/8] keith++ Signed-off-by: Alyssa Wilk --- bazel/BUILD | 5 +++++ bazel/README.md | 1 + bazel/envoy_library.bzl | 15 ++++++++++----- changelogs/current.yaml | 3 +++ ci/do_ci.sh | 5 ++++- ci/osx-build-config/extensions_build_config.bzl | 9 +++------ source/common/common/BUILD | 4 ++-- source/common/grpc/BUILD | 4 ++-- source/common/http/match_delegate/BUILD | 4 ++-- source/common/http/matching/BUILD | 4 ++-- source/common/network/BUILD | 8 ++++---- source/common/network/matching/BUILD | 4 ++-- source/common/quic/BUILD | 4 ++-- source/common/router/BUILD | 6 +++--- source/common/ssl/matching/BUILD | 4 ++-- source/common/upstream/BUILD | 12 ++++++------ source/common/watchdog/BUILD | 4 ++-- source/extensions/common/wasm/ext/BUILD | 2 +- source/extensions/extensions_build_config.bzl | 5 +---- .../extensions/quic/connection_id_generator/BUILD | 4 ++-- source/extensions/quic/crypto_stream/BUILD | 6 +++--- source/extensions/quic/proof_source/BUILD | 4 ++-- .../access_loggers/wasm/test_data/BUILD | 2 +- 23 files changed, 65 insertions(+), 54 deletions(-) diff --git a/bazel/BUILD b/bazel/BUILD index 31bb1ea4016be..971be4837ec44 100644 --- a/bazel/BUILD +++ b/bazel/BUILD @@ -291,6 +291,11 @@ config_setting( values = {"define": "signal_trace=disabled"}, ) +config_setting( + name = "disable_library_autolink", + values = {"define": "library_autolink=disabled"}, +) + config_setting( name = "disable_object_dump_on_signal_trace", values = {"define": "object_dump_on_signal_trace=disabled"}, diff --git a/bazel/README.md b/bazel/README.md index 97ee7308b365a..5d1a3f7d41f4f 100644 --- a/bazel/README.md +++ b/bazel/README.md @@ -687,6 +687,7 @@ The following optional features can be disabled on the Bazel build command-line: tcmalloc with `--define tcmalloc=gperftools` which is the default for builds other than x86_64 and aarch64. * deprecated features with `--define deprecated_features=disabled` * http3/quic with --//bazel:http3=False +* autolinking libraries with --define=library_autolink=disabled * admin HTML home page with `--define=admin_html=disabled` ## Enabling optional features diff --git a/bazel/envoy_library.bzl b/bazel/envoy_library.bzl index 3a23d50652a73..1814b7c4338d7 100644 --- a/bazel/envoy_library.bzl +++ b/bazel/envoy_library.bzl @@ -12,8 +12,6 @@ load( "@envoy_build_config//:extensions_build_config.bzl", "CONTRIB_EXTENSION_PACKAGE_VISIBILITY", "EXTENSION_CONFIG_VISIBILITY", - "EXTENSION_DEFAULT_ALWAYSLINK", - "LIBRARY_DEFAULT_ALWAYSLINK", ) # As above, but wrapped in list form for adding to dep lists. This smell seems needed as @@ -59,7 +57,7 @@ def envoy_cc_extension( tags = [], extra_visibility = [], visibility = EXTENSION_CONFIG_VISIBILITY, - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = 1, **kwargs): if "//visibility:public" not in visibility: visibility = visibility + extra_visibility @@ -87,7 +85,7 @@ def envoy_cc_contrib_extension( tags = [], extra_visibility = [], visibility = CONTRIB_EXTENSION_PACKAGE_VISIBILITY, - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = 1, **kwargs): envoy_cc_extension(name, tags, extra_visibility, visibility, **kwargs) @@ -106,10 +104,17 @@ def envoy_cc_library( strip_include_prefix = None, include_prefix = None, textual_hdrs = None, - alwayslink = LIBRARY_DEFAULT_ALWAYSLINK, + alwayslink = None, defines = []): if tcmalloc_dep: deps += tcmalloc_external_deps(repository) + # If alwayslink is not specified, allow turning it off via --define=library_autolink=disabled + # alwayslink is defaulted on for envoy_cc_extensions to ensure the REGISTRY macros work. + if not(alwayslink): + alwayslink = select({ + repository + "//bazel:disable_library_autolink": 0, + "//conditions:default": 1, + }) native.cc_library( name = name, diff --git a/changelogs/current.yaml b/changelogs/current.yaml index 02c61a9a48c0b..b56c4a799a766 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -38,6 +38,9 @@ removed_config_or_runtime: removed ``envoy.reloadable_features.http1_lazy_read_disable`` and legacy code paths. new_features: +- area: build + change: | + added an option ``--define=library_autolink=disabled`` to disable autolinking libraries - area: generic_proxy change: | added :ref:`dubbo codec support ` to the diff --git a/ci/do_ci.sh b/ci/do_ci.sh index 70a2f4726d79a..b179df0c8e0a8 100755 --- a/ci/do_ci.sh +++ b/ci/do_ci.sh @@ -286,7 +286,10 @@ elif [[ "$CI_TARGET" == "bazel.gcc" ]]; then elif [[ "$CI_TARGET" == "bazel.debug" ]]; then setup_clang_toolchain echo "Testing ${TEST_TARGETS[*]}" - bazel test "${BAZEL_BUILD_OPTIONS[@]}" -c dbg "${TEST_TARGETS[@]}" + # Make sure that there are no regressions to building Envoy with autolink disabled. + EXTRA_OPTIONS=( + "--define" "library_autolink=disabled") + bazel test "${BAZEL_BUILD_OPTIONS[@]}" "${EXTRA_OPTIONS[@]}" -c dbg "${TEST_TARGETS[@]}" echo "bazel debug build with tests..." bazel_envoy_binary_build debug diff --git a/ci/osx-build-config/extensions_build_config.bzl b/ci/osx-build-config/extensions_build_config.bzl index a159122d50fa4..d0ff8fdfacf9e 100644 --- a/ci/osx-build-config/extensions_build_config.bzl +++ b/ci/osx-build-config/extensions_build_config.bzl @@ -18,9 +18,6 @@ EXTENSION_CONFIG_VISIBILITY = ["//:extension_config"] EXTENSION_PACKAGE_VISIBILITY = ["//:extension_library"] CONTRIB_EXTENSION_PACKAGE_VISIBILITY = ["//:contrib_library"] -# Set this variable to true to disable alwayslink for envoy_cc_library. -LIBRARY_DEFAULT_ALWAYSLINK = 1 - -# For any users who want to further disable alwayslink, this can be set to 0. -# TODO(alyssawilk) audit uses of this in source/ and migrate all libraries to extensions. -EXTENSION_DEFAULT_ALWAYSLINK = 1 +# As part of (https://github.com/envoyproxy/envoy-mobile/issues/175) we turned down alwayslink for envoy libraries +# This tracks libraries that should be registered as extensions. +LEGACY_ALWAYSLINK = 1 diff --git a/source/common/common/BUILD b/source/common/common/BUILD index 33f8c9c6a5ada..5da4ff02012e6 100644 --- a/source/common/common/BUILD +++ b/source/common/common/BUILD @@ -10,7 +10,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -345,7 +345,7 @@ envoy_cc_library( "@envoy_api//envoy/extensions/regex_engines/v3:pkg_cc_proto", "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_library( diff --git a/source/common/grpc/BUILD b/source/common/grpc/BUILD index d7a8dc24a4200..9da4cc44f2255 100644 --- a/source/common/grpc/BUILD +++ b/source/common/grpc/BUILD @@ -7,7 +7,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -209,7 +209,7 @@ envoy_cc_library( "//source/common/config:datasource_lib", "@envoy_api//envoy/config/core/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_library( diff --git a/source/common/http/match_delegate/BUILD b/source/common/http/match_delegate/BUILD index fb0167effc17d..818485a98fcd0 100644 --- a/source/common/http/match_delegate/BUILD +++ b/source/common/http/match_delegate/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -25,5 +25,5 @@ envoy_cc_library( "@envoy_api//envoy/extensions/common/matching/v3:pkg_cc_proto", "@envoy_api//envoy/extensions/filters/common/matcher/action/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) diff --git a/source/common/http/matching/BUILD b/source/common/http/matching/BUILD index d9635652553b5..cac932b0fac41 100644 --- a/source/common/http/matching/BUILD +++ b/source/common/http/matching/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -31,5 +31,5 @@ envoy_cc_library( "//source/common/http:header_utility_lib", "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) diff --git a/source/common/network/BUILD b/source/common/network/BUILD index 755fd3ac1199b..1275b1c54b227 100644 --- a/source/common/network/BUILD +++ b/source/common/network/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -161,7 +161,7 @@ envoy_cc_library( "//envoy/network:transport_socket_interface", "//envoy/registry", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_library( @@ -233,7 +233,7 @@ envoy_cc_library( "//envoy/registry", "//envoy/server:bootstrap_extension_config_interface", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_library( @@ -260,7 +260,7 @@ envoy_cc_library( "//source/common/event:dispatcher_includes", "@envoy_api//envoy/extensions/network/socket_interface/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_library( diff --git a/source/common/network/matching/BUILD b/source/common/network/matching/BUILD index 6a31fba207a04..a0c7c23f36e9e 100644 --- a/source/common/network/matching/BUILD +++ b/source/common/network/matching/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -32,5 +32,5 @@ envoy_cc_library( "//source/common/network:utility_lib", "@envoy_api//envoy/extensions/matching/common_inputs/network/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) diff --git a/source/common/quic/BUILD b/source/common/quic/BUILD index b98cf827804c5..3e52645bf7804 100644 --- a/source/common/quic/BUILD +++ b/source/common/quic/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -435,7 +435,7 @@ envoy_cc_library( "@com_github_google_quiche//:quic_core_crypto_crypto_handshake_lib", "@envoy_api//envoy/extensions/transport_sockets/quic/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) # Create a single target that contains all the libraries that register factories. diff --git a/source/common/router/BUILD b/source/common/router/BUILD index f8c842ff8a8d4..bfc81be8e6e4a 100644 --- a/source/common/router/BUILD +++ b/source/common/router/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -82,7 +82,7 @@ envoy_cc_library( "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", "@envoy_api//envoy/type/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_library( @@ -367,7 +367,7 @@ envoy_cc_library( "//source/extensions/filters/http/common:factory_base_lib", "@envoy_api//envoy/extensions/filters/http/upstream_codec/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_library( diff --git a/source/common/ssl/matching/BUILD b/source/common/ssl/matching/BUILD index fdd950608236c..7eeca54aac771 100644 --- a/source/common/ssl/matching/BUILD +++ b/source/common/ssl/matching/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -22,5 +22,5 @@ envoy_cc_library( "//envoy/network:filter_interface", "@envoy_api//envoy/extensions/matching/common_inputs/ssl/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) diff --git a/source/common/upstream/BUILD b/source/common/upstream/BUILD index 898538223655b..779cd106af29d 100644 --- a/source/common/upstream/BUILD +++ b/source/common/upstream/BUILD @@ -6,7 +6,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -361,7 +361,7 @@ envoy_cc_library( "@envoy_api//envoy/config/core/v3:pkg_cc_proto", "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_library( @@ -382,7 +382,7 @@ envoy_cc_library( "@envoy_api//envoy/config/core/v3:pkg_cc_proto", "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_library( @@ -486,7 +486,7 @@ envoy_cc_library( "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", "@envoy_api//envoy/service/discovery/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_library( @@ -601,7 +601,7 @@ envoy_cc_library( "@envoy_api//envoy/config/cluster/v3:pkg_cc_proto", "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_library( @@ -614,7 +614,7 @@ envoy_cc_library( "@envoy_api//envoy/config/cluster/v3:pkg_cc_proto", "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_library( diff --git a/source/common/watchdog/BUILD b/source/common/watchdog/BUILD index 8a477b75ed3bb..68b18f759666b 100644 --- a/source/common/watchdog/BUILD +++ b/source/common/watchdog/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -39,5 +39,5 @@ envoy_cc_library( "//source/common/protobuf:message_validator_lib", "@envoy_api//envoy/watchdog/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) diff --git a/source/extensions/common/wasm/ext/BUILD b/source/extensions/common/wasm/ext/BUILD index 79f4ceab56f4e..c999c7e6ac53a 100644 --- a/source/extensions/common/wasm/ext/BUILD +++ b/source/extensions/common/wasm/ext/BUILD @@ -7,7 +7,7 @@ load( load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 diff --git a/source/extensions/extensions_build_config.bzl b/source/extensions/extensions_build_config.bzl index db1c5b178dceb..5d30c8f10975b 100644 --- a/source/extensions/extensions_build_config.bzl +++ b/source/extensions/extensions_build_config.bzl @@ -377,8 +377,5 @@ EXTENSION_PACKAGE_VISIBILITY = ["//:extension_library", "//:contrib_library", "/ CONTRIB_EXTENSION_PACKAGE_VISIBILITY = ["//:contrib_library"] # Set this variable to true to disable alwayslink for envoy_cc_library. -LIBRARY_DEFAULT_ALWAYSLINK = 1 - -# For any users who want to further disable alwayslink, this can be set to 0. # TODO(alyssawilk) audit uses of this in source/ and migrate all libraries to extensions. -EXTENSION_DEFAULT_ALWAYSLINK = 1 +LEGACY_AUTOLINK = 1 diff --git a/source/extensions/quic/connection_id_generator/BUILD b/source/extensions/quic/connection_id_generator/BUILD index 15903ad3e012f..13864012dcdcb 100644 --- a/source/extensions/quic/connection_id_generator/BUILD +++ b/source/extensions/quic/connection_id_generator/BUILD @@ -6,7 +6,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -41,7 +41,7 @@ envoy_cc_library( "//source/common/quic:envoy_quic_connection_id_generator_factory_interface", "@envoy_api//envoy/extensions/quic/connection_id_generator/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_extension( diff --git a/source/extensions/quic/crypto_stream/BUILD b/source/extensions/quic/crypto_stream/BUILD index 811abaa979e74..0884802cfd989 100644 --- a/source/extensions/quic/crypto_stream/BUILD +++ b/source/extensions/quic/crypto_stream/BUILD @@ -6,7 +6,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -29,7 +29,7 @@ envoy_cc_library( "//source/common/quic:envoy_quic_crypto_stream_factory_lib", "@envoy_api//envoy/extensions/quic/crypto_stream/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_extension( @@ -62,5 +62,5 @@ envoy_cc_library( deps = [ "//source/common/quic:envoy_quic_crypto_stream_factory_lib", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) diff --git a/source/extensions/quic/proof_source/BUILD b/source/extensions/quic/proof_source/BUILD index 0198d0819e616..27c6e9098123e 100644 --- a/source/extensions/quic/proof_source/BUILD +++ b/source/extensions/quic/proof_source/BUILD @@ -6,7 +6,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) licenses(["notice"]) # Apache 2 @@ -29,7 +29,7 @@ envoy_cc_library( "//source/common/quic:envoy_quic_proof_source_lib", "@envoy_api//envoy/extensions/quic/proof_source/v3:pkg_cc_proto", ], - alwayslink = EXTENSION_DEFAULT_ALWAYSLINK, + alwayslink = LEGACY_AUTOLINK, ) envoy_cc_extension( diff --git a/test/extensions/access_loggers/wasm/test_data/BUILD b/test/extensions/access_loggers/wasm/test_data/BUILD index c73c5e666735b..ec94a6f81edd3 100644 --- a/test/extensions/access_loggers/wasm/test_data/BUILD +++ b/test/extensions/access_loggers/wasm/test_data/BUILD @@ -6,7 +6,7 @@ load( load( "@envoy_build_config//:extensions_build_config.bzl", - "EXTENSION_DEFAULT_ALWAYSLINK", + "LEGACY_AUTOLINK", ) load("//bazel/wasm:wasm.bzl", "envoy_wasm_cc_binary") From 2be95d9b1e762a51c30fdb7e0ae65db423d5b173 Mon Sep 17 00:00:00 2001 From: Alyssa Wilk Date: Thu, 27 Oct 2022 15:55:38 -0400 Subject: [PATCH 7/8] format and fix Signed-off-by: Alyssa Wilk --- bazel/envoy_library.bzl | 7 ++++--- source/common/common/BUILD | 4 ++-- source/common/grpc/BUILD | 4 ++-- source/common/http/match_delegate/BUILD | 4 ++-- source/common/http/matching/BUILD | 4 ++-- source/common/network/BUILD | 8 ++++---- source/common/network/matching/BUILD | 4 ++-- source/common/quic/BUILD | 4 ++-- source/common/router/BUILD | 6 +++--- source/common/ssl/matching/BUILD | 4 ++-- source/common/upstream/BUILD | 12 ++++++------ source/common/watchdog/BUILD | 4 ++-- source/extensions/common/wasm/ext/BUILD | 2 +- source/extensions/extensions_build_config.bzl | 2 +- source/extensions/quic/connection_id_generator/BUILD | 4 ++-- source/extensions/quic/crypto_stream/BUILD | 6 +++--- source/extensions/quic/proof_source/BUILD | 4 ++-- test/extensions/access_loggers/wasm/test_data/BUILD | 2 +- 18 files changed, 43 insertions(+), 42 deletions(-) diff --git a/bazel/envoy_library.bzl b/bazel/envoy_library.bzl index 1814b7c4338d7..944516ef2073c 100644 --- a/bazel/envoy_library.bzl +++ b/bazel/envoy_library.bzl @@ -108,12 +108,13 @@ def envoy_cc_library( defines = []): if tcmalloc_dep: deps += tcmalloc_external_deps(repository) + # If alwayslink is not specified, allow turning it off via --define=library_autolink=disabled # alwayslink is defaulted on for envoy_cc_extensions to ensure the REGISTRY macros work. - if not(alwayslink): + if not (alwayslink): alwayslink = select({ - repository + "//bazel:disable_library_autolink": 0, - "//conditions:default": 1, + repository + "//bazel:disable_library_autolink": 0, + "//conditions:default": 1, }) native.cc_library( diff --git a/source/common/common/BUILD b/source/common/common/BUILD index 5da4ff02012e6..b9556d1fe2a67 100644 --- a/source/common/common/BUILD +++ b/source/common/common/BUILD @@ -10,7 +10,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -345,7 +345,7 @@ envoy_cc_library( "@envoy_api//envoy/extensions/regex_engines/v3:pkg_cc_proto", "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/grpc/BUILD b/source/common/grpc/BUILD index 9da4cc44f2255..ba0b8049115fc 100644 --- a/source/common/grpc/BUILD +++ b/source/common/grpc/BUILD @@ -7,7 +7,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -209,7 +209,7 @@ envoy_cc_library( "//source/common/config:datasource_lib", "@envoy_api//envoy/config/core/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/http/match_delegate/BUILD b/source/common/http/match_delegate/BUILD index 818485a98fcd0..2e1fbaa93e01f 100644 --- a/source/common/http/match_delegate/BUILD +++ b/source/common/http/match_delegate/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -25,5 +25,5 @@ envoy_cc_library( "@envoy_api//envoy/extensions/common/matching/v3:pkg_cc_proto", "@envoy_api//envoy/extensions/filters/common/matcher/action/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) diff --git a/source/common/http/matching/BUILD b/source/common/http/matching/BUILD index cac932b0fac41..4eabed5fb7d46 100644 --- a/source/common/http/matching/BUILD +++ b/source/common/http/matching/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -31,5 +31,5 @@ envoy_cc_library( "//source/common/http:header_utility_lib", "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) diff --git a/source/common/network/BUILD b/source/common/network/BUILD index 1275b1c54b227..e76f6fca90afc 100644 --- a/source/common/network/BUILD +++ b/source/common/network/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -161,7 +161,7 @@ envoy_cc_library( "//envoy/network:transport_socket_interface", "//envoy/registry", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( @@ -233,7 +233,7 @@ envoy_cc_library( "//envoy/registry", "//envoy/server:bootstrap_extension_config_interface", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( @@ -260,7 +260,7 @@ envoy_cc_library( "//source/common/event:dispatcher_includes", "@envoy_api//envoy/extensions/network/socket_interface/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/network/matching/BUILD b/source/common/network/matching/BUILD index a0c7c23f36e9e..cf7033e46745f 100644 --- a/source/common/network/matching/BUILD +++ b/source/common/network/matching/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -32,5 +32,5 @@ envoy_cc_library( "//source/common/network:utility_lib", "@envoy_api//envoy/extensions/matching/common_inputs/network/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) diff --git a/source/common/quic/BUILD b/source/common/quic/BUILD index 3e52645bf7804..990f4bbc74cf3 100644 --- a/source/common/quic/BUILD +++ b/source/common/quic/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -435,7 +435,7 @@ envoy_cc_library( "@com_github_google_quiche//:quic_core_crypto_crypto_handshake_lib", "@envoy_api//envoy/extensions/transport_sockets/quic/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) # Create a single target that contains all the libraries that register factories. diff --git a/source/common/router/BUILD b/source/common/router/BUILD index bfc81be8e6e4a..5160a42a4f504 100644 --- a/source/common/router/BUILD +++ b/source/common/router/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -82,7 +82,7 @@ envoy_cc_library( "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", "@envoy_api//envoy/type/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( @@ -367,7 +367,7 @@ envoy_cc_library( "//source/extensions/filters/http/common:factory_base_lib", "@envoy_api//envoy/extensions/filters/http/upstream_codec/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/ssl/matching/BUILD b/source/common/ssl/matching/BUILD index 7eeca54aac771..25de1502208d1 100644 --- a/source/common/ssl/matching/BUILD +++ b/source/common/ssl/matching/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -22,5 +22,5 @@ envoy_cc_library( "//envoy/network:filter_interface", "@envoy_api//envoy/extensions/matching/common_inputs/ssl/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) diff --git a/source/common/upstream/BUILD b/source/common/upstream/BUILD index 779cd106af29d..117589ffd01d7 100644 --- a/source/common/upstream/BUILD +++ b/source/common/upstream/BUILD @@ -6,7 +6,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -361,7 +361,7 @@ envoy_cc_library( "@envoy_api//envoy/config/core/v3:pkg_cc_proto", "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( @@ -382,7 +382,7 @@ envoy_cc_library( "@envoy_api//envoy/config/core/v3:pkg_cc_proto", "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( @@ -486,7 +486,7 @@ envoy_cc_library( "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", "@envoy_api//envoy/service/discovery/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( @@ -601,7 +601,7 @@ envoy_cc_library( "@envoy_api//envoy/config/cluster/v3:pkg_cc_proto", "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( @@ -614,7 +614,7 @@ envoy_cc_library( "@envoy_api//envoy/config/cluster/v3:pkg_cc_proto", "@envoy_api//envoy/config/endpoint/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/watchdog/BUILD b/source/common/watchdog/BUILD index 68b18f759666b..2481ac8dab53e 100644 --- a/source/common/watchdog/BUILD +++ b/source/common/watchdog/BUILD @@ -5,7 +5,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -39,5 +39,5 @@ envoy_cc_library( "//source/common/protobuf:message_validator_lib", "@envoy_api//envoy/watchdog/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) diff --git a/source/extensions/common/wasm/ext/BUILD b/source/extensions/common/wasm/ext/BUILD index c999c7e6ac53a..12903ef33fe58 100644 --- a/source/extensions/common/wasm/ext/BUILD +++ b/source/extensions/common/wasm/ext/BUILD @@ -7,7 +7,7 @@ load( load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 diff --git a/source/extensions/extensions_build_config.bzl b/source/extensions/extensions_build_config.bzl index 5d30c8f10975b..17e26ac8375bd 100644 --- a/source/extensions/extensions_build_config.bzl +++ b/source/extensions/extensions_build_config.bzl @@ -378,4 +378,4 @@ CONTRIB_EXTENSION_PACKAGE_VISIBILITY = ["//:contrib_library"] # Set this variable to true to disable alwayslink for envoy_cc_library. # TODO(alyssawilk) audit uses of this in source/ and migrate all libraries to extensions. -LEGACY_AUTOLINK = 1 +LEGACY_ALWAYSLINK = 1 diff --git a/source/extensions/quic/connection_id_generator/BUILD b/source/extensions/quic/connection_id_generator/BUILD index 13864012dcdcb..d379daeaea3b3 100644 --- a/source/extensions/quic/connection_id_generator/BUILD +++ b/source/extensions/quic/connection_id_generator/BUILD @@ -6,7 +6,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -41,7 +41,7 @@ envoy_cc_library( "//source/common/quic:envoy_quic_connection_id_generator_factory_interface", "@envoy_api//envoy/extensions/quic/connection_id_generator/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_extension( diff --git a/source/extensions/quic/crypto_stream/BUILD b/source/extensions/quic/crypto_stream/BUILD index 0884802cfd989..3795489dfcc61 100644 --- a/source/extensions/quic/crypto_stream/BUILD +++ b/source/extensions/quic/crypto_stream/BUILD @@ -6,7 +6,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -29,7 +29,7 @@ envoy_cc_library( "//source/common/quic:envoy_quic_crypto_stream_factory_lib", "@envoy_api//envoy/extensions/quic/crypto_stream/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_extension( @@ -62,5 +62,5 @@ envoy_cc_library( deps = [ "//source/common/quic:envoy_quic_crypto_stream_factory_lib", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) diff --git a/source/extensions/quic/proof_source/BUILD b/source/extensions/quic/proof_source/BUILD index 27c6e9098123e..f2d51ed0089a2 100644 --- a/source/extensions/quic/proof_source/BUILD +++ b/source/extensions/quic/proof_source/BUILD @@ -6,7 +6,7 @@ load( ) load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) licenses(["notice"]) # Apache 2 @@ -29,7 +29,7 @@ envoy_cc_library( "//source/common/quic:envoy_quic_proof_source_lib", "@envoy_api//envoy/extensions/quic/proof_source/v3:pkg_cc_proto", ], - alwayslink = LEGACY_AUTOLINK, + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_extension( diff --git a/test/extensions/access_loggers/wasm/test_data/BUILD b/test/extensions/access_loggers/wasm/test_data/BUILD index ec94a6f81edd3..d9b33eead08d8 100644 --- a/test/extensions/access_loggers/wasm/test_data/BUILD +++ b/test/extensions/access_loggers/wasm/test_data/BUILD @@ -6,7 +6,7 @@ load( load( "@envoy_build_config//:extensions_build_config.bzl", - "LEGACY_AUTOLINK", + "LEGACY_ALWAYSLINK", ) load("//bazel/wasm:wasm.bzl", "envoy_wasm_cc_binary") From 771c1cc93946a71b253aecc795a34dbfc936c347 Mon Sep 17 00:00:00 2001 From: Alyssa Wilk Date: Mon, 31 Oct 2022 09:20:15 -0400 Subject: [PATCH 8/8] format and comments Signed-off-by: Alyssa Wilk --- bazel/envoy_library.bzl | 2 +- changelogs/current.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bazel/envoy_library.bzl b/bazel/envoy_library.bzl index 944516ef2073c..cce13bd8e97a7 100644 --- a/bazel/envoy_library.bzl +++ b/bazel/envoy_library.bzl @@ -111,7 +111,7 @@ def envoy_cc_library( # If alwayslink is not specified, allow turning it off via --define=library_autolink=disabled # alwayslink is defaulted on for envoy_cc_extensions to ensure the REGISTRY macros work. - if not (alwayslink): + if alwayslink == None: alwayslink = select({ repository + "//bazel:disable_library_autolink": 0, "//conditions:default": 1, diff --git a/changelogs/current.yaml b/changelogs/current.yaml index 2434562298fd6..57582758906e5 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -57,7 +57,7 @@ removed_config_or_runtime: new_features: - area: build change: | - added an option ``--define=library_autolink=disabled`` to disable autolinking libraries + added an option ``--define=library_autolink=disabled`` to disable autolinking libraries. - area: generic_proxy change: | added :ref:`dubbo codec support ` to the