From 58cfacf3fb894aa6f45b7bee1a67b370d657008e Mon Sep 17 00:00:00 2001 From: Keith Smiley Date: Sun, 21 Sep 2025 21:34:27 -0700 Subject: [PATCH 1/2] Only build objects when supports_start_end_lib is enabled Fixes https://github.com/bazelbuild/rules_cc/issues/419 --- cc/private/rules_impl/cc_library.bzl | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/cc/private/rules_impl/cc_library.bzl b/cc/private/rules_impl/cc_library.bzl index e2dbcf36..2305ec9a 100755 --- a/cc/private/rules_impl/cc_library.bzl +++ b/cc/private/rules_impl/cc_library.bzl @@ -238,14 +238,25 @@ def _cc_library_impl(ctx): libraries = libraries_to_link, ) + supports_start_end_lib = cc_common.is_enabled( + feature_configuration = feature_configuration, + feature_name = "supports_start_end_lib", + ) + files_builder = [] if linking_outputs.library_to_link != None: artifacts_to_build = linking_outputs.library_to_link - if artifacts_to_build.static_library != None: - files_builder.append(artifacts_to_build.static_library) + if supports_start_end_lib and (artifacts_to_build.objects or artifacts_to_build.pic_objects): + if artifacts_to_build.pic_objects: + files_builder.extend(artifacts_to_build.pic_objects) + elif artifacts_to_build.objects: + files_builder.extend(artifacts_to_build.objects) + else: + if artifacts_to_build.static_library != None: + files_builder.append(artifacts_to_build.static_library) - if artifacts_to_build.pic_static_library != None: - files_builder.append(artifacts_to_build.pic_static_library) + if artifacts_to_build.pic_static_library != None: + files_builder.append(artifacts_to_build.pic_static_library) if not cc_common.is_enabled( feature_configuration = feature_configuration, From 0628e0430338f7c6de8bf44cc650df98a8e4d9db Mon Sep 17 00:00:00 2001 From: Keith Smiley Date: Mon, 22 Sep 2025 09:56:15 -0700 Subject: [PATCH 2/2] output groups --- cc/private/rules_impl/cc_library.bzl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cc/private/rules_impl/cc_library.bzl b/cc/private/rules_impl/cc_library.bzl index 2305ec9a..093d7702 100755 --- a/cc/private/rules_impl/cc_library.bzl +++ b/cc/private/rules_impl/cc_library.bzl @@ -254,9 +254,11 @@ def _cc_library_impl(ctx): else: if artifacts_to_build.static_library != None: files_builder.append(artifacts_to_build.static_library) + output_group_builder["static_library"] = depset([artifacts_to_build.static_library]) if artifacts_to_build.pic_static_library != None: files_builder.append(artifacts_to_build.pic_static_library) + output_group_builder["pic_static_library"] = depset([artifacts_to_build.static_library]) if not cc_common.is_enabled( feature_configuration = feature_configuration,