diff --git a/cc/private/toolchain/unix_cc_toolchain_config.bzl b/cc/private/toolchain/unix_cc_toolchain_config.bzl index 3db2bce3d..0ece0d614 100644 --- a/cc/private/toolchain/unix_cc_toolchain_config.bzl +++ b/cc/private/toolchain/unix_cc_toolchain_config.bzl @@ -923,6 +923,7 @@ def _impl(ctx): ) set_install_name_feature = feature( name = "set_soname", + enabled = True, flag_sets = [ flag_set( actions = [ diff --git a/cc/toolchains/args/soname_flags/BUILD b/cc/toolchains/args/soname_flags/BUILD index 304cccecb..1f92f97e4 100644 --- a/cc/toolchains/args/soname_flags/BUILD +++ b/cc/toolchains/args/soname_flags/BUILD @@ -1,16 +1,23 @@ load("//cc/toolchains:args.bzl", "cc_args") load("//cc/toolchains:feature.bzl", "cc_feature") +load("//cc/toolchains:feature_set.bzl", "cc_feature_set") -cc_feature( +cc_feature_set( name = "feature", - args = select({ - "//cc/settings:apple_constraint": [":apple_set_install_name"], + all_of = select({ + "//cc/settings:apple_constraint": [":set_install_name_feature"], + "@platforms//os:linux": [":set_soname_feature"], "//conditions:default": [], }), - feature_name = "_soname_flags", # Doesn't override legacy feature, but shouldn't be disabled visibility = ["//visibility:public"], ) +cc_feature( + name = "set_install_name_feature", + args = [":apple_set_install_name"], + feature_name = "set_install_name", # Doesn't override legacy feature, but shouldn't be disabled, mirrors default toolchain name +) + cc_args( name = "apple_set_install_name", actions = ["//cc/toolchains/actions:dynamic_library_link_actions"], @@ -23,7 +30,7 @@ cc_args( cc_feature( name = "set_soname_feature", args = [":set_soname"], - feature_name = "set_soname", + feature_name = "set_soname", # Feature name is important and read by rules_cc visibility = ["//visibility:public"], ) diff --git a/tests/builtins_bzl/cc/cc_shared_library/test/BUILD b/tests/builtins_bzl/cc/cc_shared_library/test/BUILD index d6949cdfa..30d3ae107 100644 --- a/tests/builtins_bzl/cc/cc_shared_library/test/BUILD +++ b/tests/builtins_bzl/cc/cc_shared_library/test/BUILD @@ -410,7 +410,11 @@ filegroup( cc_shared_library( name = "renamed_so_file", - features = ["windows_export_all_symbols"], + features = [ + # This library is copied to a different basename above. + "-set_soname", + "windows_export_all_symbols", + ], shared_lib_name = "renamed_so_file.so", deps = [ ":direct_so_file_cc_lib2",