Skip to content

Commit

Permalink
Remove effectively unused is_shared parameter
Browse files Browse the repository at this point in the history
Summary:
After D41708290, the is_shared parameter has no effect. That is while code branches on it's value, the possible branches are identical.
We see that based on the value of `is_shared` a shared variant of projections may be called (ie. `default` vs `default_shared`, `stripped` vs
`stripped_shared`). Those shared variants are identical to the original.

This is an NFC that simplifies the code in preparation for the stacked changes.

Reviewed By: rmaz

Differential Revision: D57050799

fbshipit-source-id: 732aa37df4a233fa7f67a1514bd3eb4611a8adf0
  • Loading branch information
NuriAmari authored and facebook-github-bot committed May 10, 2024
1 parent 8faf571 commit 0093bea
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 27 deletions.
4 changes: 2 additions & 2 deletions prelude/android/android_binary_native_library_rules.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -1359,12 +1359,12 @@ def _create_all_relinkable_links(
final = final_platform_to_native_linkables[platform][soname]
original_args, _ = ctx.actions.write(
"{}/{}/original.args".format(platform, soname),
[unpack_link_args(args, True, LinkOrdering("topological")) for args in lib.link_args] if lib.link_args else "",
[unpack_link_args(args, LinkOrdering("topological")) for args in lib.link_args] if lib.link_args else "",
allow_args = True,
)
final_args, _ = ctx.actions.write(
"{}/{}/final.args".format(platform, soname),
[unpack_link_args(args, True, LinkOrdering("topological")) for args in final.link_args] if final.link_args else "",
[unpack_link_args(args, LinkOrdering("topological")) for args in final.link_args] if final.link_args else "",
allow_args = True,
)
debug_outputs["{}/{}/original.args".format(platform, soname)] = original_args
Expand Down
2 changes: 1 addition & 1 deletion prelude/cxx/cxx_library.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -1495,7 +1495,7 @@ def _shared_library(
if shared_interface_info != None and impl_params.shared_library_interface_target != None:
# collect the linker args which are required
# to correctly set symbol visibility.
link_args = [unpack_link_args(l, True) for l in links]
link_args = [unpack_link_args(link) for link in links]
exported_shlib = generate_tbd_with_symbols(ctx, soname, shared_interface_info.interfaces, link_args, impl_params.shared_library_interface_target)
elif not gnu_use_link_groups:
# TODO(agallagher): There's a bug in shlib intfs interacting with link
Expand Down
3 changes: 1 addition & 2 deletions prelude/cxx/cxx_link_utility.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ def make_link_args(
links: list[LinkArgs],
suffix = None,
output_short_path: [str, None] = None,
is_shared: [bool, None] = None,
link_ordering: [LinkOrdering, None] = None) -> LinkArgsOutput:
"""
Merges LinkArgs. Returns the args, files that must be present for those
Expand Down Expand Up @@ -120,7 +119,7 @@ def make_link_args(
hidden.append(pdb_artifact.as_output())

for link in links:
args.add(unpack_link_args(link, is_shared, link_ordering = link_ordering))
args.add(unpack_link_args(link, link_ordering = link_ordering))

filelists = filter(None, [unpack_link_args_filelist(link) for link in links])
hidden.extend(filelists)
Expand Down
1 change: 0 additions & 1 deletion prelude/cxx/link.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,6 @@ def cxx_link_into(
links_with_linker_map,
suffix = link_args_suffix,
output_short_path = output.short_path,
is_shared = result_type.value == "shared_library",
link_ordering = value_or(
opts.link_ordering,
# Fallback to toolchain default.
Expand Down
27 changes: 6 additions & 21 deletions prelude/linking/link_info.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -318,15 +318,7 @@ def _link_info_default_args(infos: LinkInfos):
info = infos.default
return link_info_to_args(info)

def _link_info_default_shared_link_args(infos: LinkInfos):
info = infos.default
return link_info_to_args(info)

def _link_info_stripped_args(infos: LinkInfos):
info = infos.stripped or infos.default
return link_info_to_args(info)

def _link_info_stripped_shared_link_args(infos: LinkInfos):
def _link_info_stripped_link_args(infos: LinkInfos):
info = infos.stripped or infos.default
return link_info_to_args(info)

Expand Down Expand Up @@ -357,10 +349,8 @@ LinkInfosTSet = transitive_set(
args_projections = {
"default": _link_info_default_args,
"default_filelist": _link_info_default_filelist,
"default_shared": _link_info_default_shared_link_args,
"stripped": _link_info_stripped_args,
"stripped": _link_info_stripped_link_args,
"stripped_filelist": _link_info_stripped_filelist,
"stripped_shared": _link_info_stripped_shared_link_args,
},
reductions = {
"has_default_filelist": _link_info_has_default_filelist,
Expand Down Expand Up @@ -630,19 +620,14 @@ def get_link_info(

return infos.default

def unpack_link_args(args: LinkArgs, is_shared: [bool, None] = None, link_ordering: [LinkOrdering, None] = None) -> ArgLike:
def unpack_link_args(args: LinkArgs, link_ordering: [LinkOrdering, None] = None) -> ArgLike:
if args.tset != None:
ordering = link_ordering.value if link_ordering else "preorder"

tset = args.tset.infos
if is_shared:
if args.tset.prefer_stripped:
return tset.project_as_args("stripped_shared", ordering = ordering)
return tset.project_as_args("default_shared", ordering = ordering)
else:
if args.tset.prefer_stripped:
return tset.project_as_args("stripped", ordering = ordering)
return tset.project_as_args("default", ordering = ordering)
if args.tset.prefer_stripped:
return tset.project_as_args("stripped", ordering = ordering)
return tset.project_as_args("default", ordering = ordering)

if args.infos != None:
return cmd_args([link_info_to_args(info) for info in args.infos])
Expand Down

0 comments on commit 0093bea

Please sign in to comment.