diff --git a/bazel/BUILD b/bazel/BUILD index c8bb5f64da90f..146f74bdd5221 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 12487aee0bd25..cce13bd8e97a7 100644 --- a/bazel/envoy_library.bzl +++ b/bazel/envoy_library.bzl @@ -57,6 +57,7 @@ def envoy_cc_extension( tags = [], extra_visibility = [], visibility = EXTENSION_CONFIG_VISIBILITY, + alwayslink = 1, **kwargs): if "//visibility:public" not in visibility: visibility = visibility + extra_visibility @@ -66,6 +67,7 @@ def envoy_cc_extension( name = name, tags = tags, visibility = visibility, + alwayslink = alwayslink, **kwargs ) native.cc_library( @@ -83,6 +85,7 @@ def envoy_cc_contrib_extension( tags = [], extra_visibility = [], visibility = CONTRIB_EXTENSION_PACKAGE_VISIBILITY, + alwayslink = 1, **kwargs): envoy_cc_extension(name, tags, extra_visibility, visibility, **kwargs) @@ -101,10 +104,19 @@ def envoy_cc_library( strip_include_prefix = None, include_prefix = None, textual_hdrs = None, + 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 alwayslink == None: + alwayslink = select({ + repository + "//bazel:disable_library_autolink": 0, + "//conditions:default": 1, + }) + native.cc_library( name = name, srcs = srcs, @@ -122,7 +134,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 611324b94cb54..57582758906e5 100644 --- a/changelogs/current.yaml +++ b/changelogs/current.yaml @@ -55,6 +55,9 @@ removed_config_or_runtime: removed ``envoy.reloadable_features.override_request_timeout_by_gateway_timeout`` 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 1c96ee887c44a..d0ff8fdfacf9e 100644 --- a/ci/osx-build-config/extensions_build_config.bzl +++ b/ci/osx-build-config/extensions_build_config.bzl @@ -17,3 +17,7 @@ WINDOWS_EXTENSIONS = {} EXTENSION_CONFIG_VISIBILITY = ["//:extension_config"] EXTENSION_PACKAGE_VISIBILITY = ["//:extension_library"] CONTRIB_EXTENSION_PACKAGE_VISIBILITY = ["//:contrib_library"] + +# 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/contrib/generic_proxy/filters/network/source/BUILD b/contrib/generic_proxy/filters/network/source/BUILD index f37fb5a22dee7..dd3b53e7413a3 100644 --- a/contrib/generic_proxy/filters/network/source/BUILD +++ b/contrib/generic_proxy/filters/network/source/BUILD @@ -85,4 +85,5 @@ envoy_cc_library( "//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 7931c53cd6dee..b9556d1fe2a67 100644 --- a/source/common/common/BUILD +++ b/source/common/common/BUILD @@ -8,6 +8,10 @@ load( "envoy_package", "envoy_pch_library", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -341,6 +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_ALWAYSLINK, ) envoy_cc_library( 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..ba0b8049115fc 100644 --- a/source/common/grpc/BUILD +++ b/source/common/grpc/BUILD @@ -5,6 +5,10 @@ load( "envoy_package", "envoy_select_google_grpc", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -205,6 +209,7 @@ envoy_cc_library( "//source/common/config:datasource_lib", "@envoy_api//envoy/config/core/v3:pkg_cc_proto", ], + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/http/match_delegate/BUILD b/source/common/http/match_delegate/BUILD index 84cbea53861b9..2e1fbaa93e01f 100644 --- a/source/common/http/match_delegate/BUILD +++ b/source/common/http/match_delegate/BUILD @@ -3,6 +3,10 @@ load( "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -21,4 +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_ALWAYSLINK, ) diff --git a/source/common/http/matching/BUILD b/source/common/http/matching/BUILD index 87837d2e6ff34..4eabed5fb7d46 100644 --- a/source/common/http/matching/BUILD +++ b/source/common/http/matching/BUILD @@ -3,6 +3,10 @@ load( "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -27,4 +31,5 @@ envoy_cc_library( "//source/common/http:header_utility_lib", "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", ], + alwayslink = LEGACY_ALWAYSLINK, ) diff --git a/source/common/network/BUILD b/source/common/network/BUILD index e14c45f0cda99..e76f6fca90afc 100644 --- a/source/common/network/BUILD +++ b/source/common/network/BUILD @@ -3,6 +3,10 @@ load( "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -157,6 +161,7 @@ envoy_cc_library( "//envoy/network:transport_socket_interface", "//envoy/registry", ], + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( @@ -228,6 +233,7 @@ envoy_cc_library( "//envoy/registry", "//envoy/server:bootstrap_extension_config_interface", ], + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( @@ -254,6 +260,7 @@ envoy_cc_library( "//source/common/event:dispatcher_includes", "@envoy_api//envoy/extensions/network/socket_interface/v3:pkg_cc_proto", ], + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/network/matching/BUILD b/source/common/network/matching/BUILD index ca64ff93342ce..cf7033e46745f 100644 --- a/source/common/network/matching/BUILD +++ b/source/common/network/matching/BUILD @@ -3,6 +3,10 @@ load( "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -28,4 +32,5 @@ envoy_cc_library( "//source/common/network:utility_lib", "@envoy_api//envoy/extensions/matching/common_inputs/network/v3:pkg_cc_proto", ], + alwayslink = LEGACY_ALWAYSLINK, ) diff --git a/source/common/quic/BUILD b/source/common/quic/BUILD index d8fd4460dbb24..990f4bbc74cf3 100644 --- a/source/common/quic/BUILD +++ b/source/common/quic/BUILD @@ -3,6 +3,10 @@ load( "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -431,6 +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_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 9e848686d8c53..5160a42a4f504 100644 --- a/source/common/router/BUILD +++ b/source/common/router/BUILD @@ -3,6 +3,10 @@ load( "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -78,6 +82,7 @@ envoy_cc_library( "@envoy_api//envoy/type/matcher/v3:pkg_cc_proto", "@envoy_api//envoy/type/v3:pkg_cc_proto", ], + alwayslink = LEGACY_ALWAYSLINK, ) envoy_cc_library( @@ -362,6 +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_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/ssl/matching/BUILD b/source/common/ssl/matching/BUILD index 4c7f7e7583177..25de1502208d1 100644 --- a/source/common/ssl/matching/BUILD +++ b/source/common/ssl/matching/BUILD @@ -3,6 +3,10 @@ load( "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -18,4 +22,5 @@ envoy_cc_library( "//envoy/network:filter_interface", "@envoy_api//envoy/extensions/matching/common_inputs/ssl/v3:pkg_cc_proto", ], + alwayslink = LEGACY_ALWAYSLINK, ) diff --git a/source/common/upstream/BUILD b/source/common/upstream/BUILD index 50206adf02562..117589ffd01d7 100644 --- a/source/common/upstream/BUILD +++ b/source/common/upstream/BUILD @@ -4,6 +4,10 @@ load( "envoy_package", "envoy_select_enable_http3", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -357,6 +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_ALWAYSLINK, ) envoy_cc_library( @@ -377,6 +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_ALWAYSLINK, ) envoy_cc_library( @@ -480,6 +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_ALWAYSLINK, ) envoy_cc_library( @@ -594,6 +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_ALWAYSLINK, ) envoy_cc_library( @@ -606,6 +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_ALWAYSLINK, ) envoy_cc_library( diff --git a/source/common/watchdog/BUILD b/source/common/watchdog/BUILD index ce5210c0c245d..2481ac8dab53e 100644 --- a/source/common/watchdog/BUILD +++ b/source/common/watchdog/BUILD @@ -3,6 +3,10 @@ load( "envoy_cc_library", "envoy_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -35,4 +39,5 @@ envoy_cc_library( "//source/common/protobuf:message_validator_lib", "@envoy_api//envoy/watchdog/v3:pkg_cc_proto", ], + alwayslink = LEGACY_ALWAYSLINK, ) 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..8eff9ec555eb5 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", @@ -33,9 +33,10 @@ envoy_cc_library( "//source/server:listener_manager_lib", "@envoy_api//envoy/extensions/bootstrap/internal_listener/v3:pkg_cc_proto", ], + alwayslink = 1, ) -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..12903ef33fe58 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", + "LEGACY_ALWAYSLINK", +) + licenses(["notice"]) # Apache 2 envoy_extension_package() @@ -19,6 +24,7 @@ envoy_cc_library( "@proxy_wasm_cpp_sdk//:api_lib", "@proxy_wasm_cpp_sdk//:common_lib", ], + alwayslink = 1, ) envoy_cc_library( @@ -32,6 +38,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 f97b97e7a4f61..2169d2eb42f73 100644 --- a/source/extensions/extensions_build_config.bzl +++ b/source/extensions/extensions_build_config.bzl @@ -376,3 +376,7 @@ 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"] + +# 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_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..0f91338b37fdd 100644 --- a/source/extensions/filters/network/dubbo_proxy/BUILD +++ b/source/extensions/filters/network/dubbo_proxy/BUILD @@ -46,6 +46,7 @@ envoy_cc_library( "//envoy/buffer:buffer_interface", "//source/common/singleton:const_singleton", ], + alwayslink = 1, ) envoy_cc_library( @@ -77,6 +78,7 @@ envoy_cc_library( ":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 e92f5d740c0df..f75fc1d75d628 100644 --- a/source/extensions/filters/network/dubbo_proxy/router/BUILD +++ b/source/extensions/filters/network/dubbo_proxy/router/BUILD @@ -49,6 +49,7 @@ envoy_cc_library( "//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 a8160b82c59f0..3ec89e0d86bdd 100644 --- a/source/extensions/filters/network/thrift_proxy/BUILD +++ b/source/extensions/filters/network/thrift_proxy/BUILD @@ -206,6 +206,7 @@ envoy_cc_library( ":twitter_protocol_lib", "//source/common/common:macros", ], + alwayslink = 1, ) envoy_cc_library( @@ -221,6 +222,7 @@ envoy_cc_library( ":protocol_interface", "//source/common/common:macros", ], + alwayslink = 1, ) envoy_cc_library( @@ -237,6 +239,7 @@ envoy_cc_library( ":protocol_interface", "//source/common/common:macros", ], + alwayslink = 1, ) envoy_cc_library( @@ -254,6 +257,7 @@ envoy_cc_library( ":thrift_object_lib", "//source/common/common:macros", ], + alwayslink = 1, ) envoy_cc_library( @@ -351,6 +355,7 @@ envoy_cc_library( ":unframed_transport_lib", "//source/common/common:assert_lib", ], + alwayslink = 1, ) envoy_cc_library( @@ -366,6 +371,7 @@ envoy_cc_library( ":transport_interface", "//source/common/common:assert_lib", ], + alwayslink = 1, ) envoy_cc_library( @@ -382,6 +388,7 @@ envoy_cc_library( ":transport_interface", "//source/common/common:assert_lib", ], + alwayslink = 1, ) envoy_cc_library( @@ -397,4 +404,5 @@ envoy_cc_library( ":transport_interface", "//source/common/common:assert_lib", ], + alwayslink = 1, ) 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..e48338fe36fba 100644 --- a/source/extensions/grpc_credentials/example/BUILD +++ b/source/extensions/grpc_credentials/example/BUILD @@ -28,4 +28,5 @@ envoy_cc_library( "//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 4f1013c84a776..d379daeaea3b3 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", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -37,6 +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_ALWAYSLINK, ) envoy_cc_extension( diff --git a/source/extensions/quic/crypto_stream/BUILD b/source/extensions/quic/crypto_stream/BUILD index 60db832707b4f..3795489dfcc61 100644 --- a/source/extensions/quic/crypto_stream/BUILD +++ b/source/extensions/quic/crypto_stream/BUILD @@ -4,6 +4,10 @@ load( "envoy_cc_library", "envoy_extension_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -25,6 +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_ALWAYSLINK, ) envoy_cc_extension( @@ -57,4 +62,5 @@ envoy_cc_library( deps = [ "//source/common/quic:envoy_quic_crypto_stream_factory_lib", ], + alwayslink = LEGACY_ALWAYSLINK, ) diff --git a/source/extensions/quic/proof_source/BUILD b/source/extensions/quic/proof_source/BUILD index 87dfd8b6023bf..f2d51ed0089a2 100644 --- a/source/extensions/quic/proof_source/BUILD +++ b/source/extensions/quic/proof_source/BUILD @@ -4,6 +4,10 @@ load( "envoy_cc_library", "envoy_extension_package", ) +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) licenses(["notice"]) # Apache 2 @@ -25,6 +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_ALWAYSLINK, ) envoy_cc_extension( diff --git a/source/extensions/stat_sinks/wasm/BUILD b/source/extensions/stat_sinks/wasm/BUILD index ce5f63bfb6168..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( @@ -34,4 +35,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..c79416930672a 100644 --- a/source/extensions/transport_sockets/tls/cert_validator/BUILD +++ b/source/extensions/transport_sockets/tls/cert_validator/BUILD @@ -47,4 +47,5 @@ envoy_cc_library( "@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 7dbdc09c5d1e6..d9b33eead08d8 100644 --- a/test/extensions/access_loggers/wasm/test_data/BUILD +++ b/test/extensions/access_loggers/wasm/test_data/BUILD @@ -1,15 +1,20 @@ load( "//bazel:envoy_build_system.bzl", - "envoy_cc_library", + "envoy_cc_test_library", "envoy_package", ) + +load( + "@envoy_build_config//:extensions_build_config.bzl", + "LEGACY_ALWAYSLINK", +) load("//bazel/wasm:wasm.bzl", "envoy_wasm_cc_binary") 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",