Skip to content

Commit 91a580a

Browse files
authored
Fix interface_library-only libraries_to_link for cc_shared_library (bazelbuild#15046)
Take into account libraries_to_link which just contain an interface libary when building the runfiles of cc_shared_library. A library_to_link with only an interface library can come about in a cc_import rule for example where one can set system_provided=True PiperOrigin-RevId: 434705871
1 parent 6cd6a27 commit 91a580a

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/main/starlark/builtins_bzl/common/cc/experimental_cc_shared_library.bzl

+8-2
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,10 @@ def _build_link_once_static_libs_map(merged_shared_library_infos):
147147
return link_once_static_libs_map
148148

149149
def _is_dynamic_only(library_to_link):
150-
if library_to_link.static_library == None and library_to_link.pic_static_library == None:
150+
if (library_to_link.static_library == None and
151+
library_to_link.pic_static_library == None and
152+
(library_to_link.objects == None or len(library_to_link.objects) == 0) and
153+
(library_to_link.pic_objects == None or len(library_to_link.pic_objects) == 0)):
151154
return True
152155
return False
153156

@@ -503,7 +506,10 @@ def _cc_shared_library_impl(ctx):
503506

504507
precompiled_only_dynamic_libraries_runfiles = []
505508
for precompiled_dynamic_library in precompiled_only_dynamic_libraries:
506-
precompiled_only_dynamic_libraries_runfiles.append(precompiled_dynamic_library.dynamic_library)
509+
# precompiled_dynamic_library.dynamic_library could be None if the library to link just contains
510+
# an interface library which is valid if the actual library is obtained from the system.
511+
if precompiled_dynamic_library.dynamic_library != None:
512+
precompiled_only_dynamic_libraries_runfiles.append(precompiled_dynamic_library.dynamic_library)
507513
if precompiled_dynamic_library.resolved_symlink_dynamic_library != None:
508514
precompiled_only_dynamic_libraries_runfiles.append(precompiled_dynamic_library.resolved_symlink_dynamic_library)
509515

0 commit comments

Comments
 (0)