From c353abdd5356679a534ce4de4d9287f5f04c34a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20M=C3=A1rquez=20P=C3=A9rez=20Mu=C3=B1=C3=ADz=20D?= =?UTF-8?q?=C3=ADaz=20Puras=20Thaureaux?= Date: Fri, 10 Mar 2023 20:57:38 +0000 Subject: [PATCH] Revert "Revert "Produce _alwayslink sibling targets through bp2b..." Revert submission 2473787-revert-2467901-b/267214124-TLTTMLWFDS Reason for revert: Fixed compilation errors Reverted changes: /q/submissionid:2473787-revert-2467901-b/267214124-TLTTMLWFDS Test: TOLIST Bug: 271943047 Bug: 267214124 Change-Id: Ib08440377f6645cf26de4bda748d82c4dcd0b43a --- .../cc_prebuilt_library_conversion_test.go | 28 +++++++++++++++++-- bp2build/cc_prebuilt_library_static_test.go | 14 ++++++++-- cc/prebuilt.go | 6 ++++ 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/bp2build/cc_prebuilt_library_conversion_test.go b/bp2build/cc_prebuilt_library_conversion_test.go index 2fe158eec..c5a6dfd6a 100644 --- a/bp2build/cc_prebuilt_library_conversion_test.go +++ b/bp2build/cc_prebuilt_library_conversion_test.go @@ -39,6 +39,10 @@ cc_prebuilt_library { MakeBazelTarget("cc_prebuilt_library_static", "libtest_bp2build_cc_library_static", AttrNameToString{ "static_library": `"libf.so"`, }), + MakeBazelTarget("cc_prebuilt_library_static", "libtest_bp2build_cc_library_static_alwayslink", AttrNameToString{ + "static_library": `"libf.so"`, + "alwayslink": "True", + }), MakeBazelTarget("cc_prebuilt_library_shared", "libtest", AttrNameToString{ "shared_library": `"libf.so"`, }), @@ -71,8 +75,14 @@ cc_prebuilt_library { "//build/bazel/platforms/arch:arm": "libg.so", "//build/bazel/platforms/arch:arm64": "libf.so", "//conditions:default": None, - })`, - }), + })`}), + MakeBazelTarget("cc_prebuilt_library_static", "libtest_bp2build_cc_library_static_alwayslink", AttrNameToString{ + "alwayslink": "True", + "static_library": `select({ + "//build/bazel/platforms/arch:arm": "libg.so", + "//build/bazel/platforms/arch:arm64": "libf.so", + "//conditions:default": None, + })`}), MakeBazelTarget("cc_prebuilt_library_shared", "libtest", AttrNameToString{ "shared_library": `select({ "//build/bazel/platforms/arch:arm": "libg.so", @@ -109,6 +119,12 @@ cc_prebuilt_library { "export_includes": `["testdir/1/"]`, "export_system_includes": `["testdir/2/"]`, }), + MakeBazelTarget("cc_prebuilt_library_static", "libtest_bp2build_cc_library_static_alwayslink", AttrNameToString{ + "static_library": `"libf.so"`, + "export_includes": `["testdir/1/"]`, + "export_system_includes": `["testdir/2/"]`, + "alwayslink": "True", + }), // TODO(b/229374533): When fixed, update this test MakeBazelTarget("cc_prebuilt_library_shared", "libtest", AttrNameToString{ "shared_library": `"libf.so"`, @@ -188,6 +204,10 @@ cc_prebuilt_library { MakeBazelTarget("cc_prebuilt_library_static", "libtest_bp2build_cc_library_static", AttrNameToString{ "static_library": `"libf.so"`, }), + MakeBazelTarget("cc_prebuilt_library_static", "libtest_bp2build_cc_library_static_alwayslink", AttrNameToString{ + "static_library": `"libf.so"`, + "alwayslink": "True", + }), MakeBazelTarget("cc_prebuilt_library_shared", "libtest", AttrNameToString{ "shared_library": `"libg.so"`, }), @@ -245,6 +265,10 @@ cc_prebuilt_library { // makeBazelTarget("cc_prebuilt_library_static", "libtest_bp2build_cc_library_static", attrNameToString{ // "static_library": `"libf.so"`, // }), +// makeBazelTarget("cc_prebuilt_library_static", "libtest_bp2build_cc_library_static_always", attrNameToString{ +// "static_library": `"libf.so"`, +// "alwayslink": "True", +// }), // }, // }) //} diff --git a/bp2build/cc_prebuilt_library_static_test.go b/bp2build/cc_prebuilt_library_static_test.go index 6116b0094..17da8132a 100644 --- a/bp2build/cc_prebuilt_library_static_test.go +++ b/bp2build/cc_prebuilt_library_static_test.go @@ -39,6 +39,10 @@ cc_prebuilt_library_static { MakeBazelTarget("cc_prebuilt_library_static", "libtest", AttrNameToString{ "static_library": `"libf.so"`, }), + MakeBazelTarget("cc_prebuilt_library_static", "libtest_alwayslink", AttrNameToString{ + "static_library": `"libf.so"`, + "alwayslink": "True", + }), }, }) } @@ -68,8 +72,14 @@ cc_prebuilt_library_static { "//build/bazel/platforms/arch:arm": "libg.so", "//build/bazel/platforms/arch:arm64": "libf.so", "//conditions:default": None, - })`, - }), + })`}), + MakeBazelTarget("cc_prebuilt_library_static", "libtest_alwayslink", AttrNameToString{ + "alwayslink": "True", + "static_library": `select({ + "//build/bazel/platforms/arch:arm": "libg.so", + "//build/bazel/platforms/arch:arm64": "libf.so", + "//conditions:default": None, + })`}), }, }) } diff --git a/cc/prebuilt.go b/cc/prebuilt.go index bb517eadb..5b7ba4346 100644 --- a/cc/prebuilt.go +++ b/cc/prebuilt.go @@ -352,6 +352,7 @@ type bazelPrebuiltLibraryStaticAttributes struct { Static_library bazel.LabelAttribute Export_includes bazel.StringListAttribute Export_system_includes bazel.StringListAttribute + Alwayslink bazel.BoolAttribute } // TODO(b/228623543): The below is not entirely true until the bug is fixed. For now, both targets are always generated @@ -389,6 +390,11 @@ func prebuiltLibraryStaticBp2Build(ctx android.TopDownMutatorContext, module *Mo tags := android.ApexAvailableTags(module) ctx.CreateBazelTargetModuleWithRestrictions(props, android.CommonAttributes{Name: name, Tags: tags}, attrs, prebuiltAttrs.Enabled) + + _true := true + alwayslinkAttrs := *attrs + alwayslinkAttrs.Alwayslink.SetValue(&_true) + ctx.CreateBazelTargetModuleWithRestrictions(props, android.CommonAttributes{Name: name + "_alwayslink", Tags: tags}, &alwayslinkAttrs, prebuiltAttrs.Enabled) } type bazelPrebuiltLibrarySharedAttributes struct {