diff --git a/bp2build/cc_library_shared_conversion_test.go b/bp2build/cc_library_shared_conversion_test.go index b1a9240f8..6253de6c7 100644 --- a/bp2build/cc_library_shared_conversion_test.go +++ b/bp2build/cc_library_shared_conversion_test.go @@ -338,22 +338,30 @@ cc_library_shared { }) } -func TestCcLibrarySharedVersionScript(t *testing.T) { +func TestCcLibrarySharedVersionScriptAndDynamicList(t *testing.T) { runCcLibrarySharedTestCase(t, Bp2buildTestCase{ - Description: "cc_library_shared version script", + Description: "cc_library_shared version script and dynamic list", Filesystem: map[string]string{ "version_script": "", + "dynamic.list": "", }, Blueprint: soongCcLibrarySharedPreamble + ` cc_library_shared { name: "foo_shared", version_script: "version_script", + dynamic_list: "dynamic.list", include_build_directory: false, }`, ExpectedBazelTargets: []string{ MakeBazelTarget("cc_library_shared", "foo_shared", AttrNameToString{ - "additional_linker_inputs": `["version_script"]`, - "linkopts": `["-Wl,--version-script,$(location version_script)"]`, + "additional_linker_inputs": `[ + "version_script", + "dynamic.list", + ]`, + "linkopts": `[ + "-Wl,--version-script,$(location version_script)", + "-Wl,--dynamic-list,$(location dynamic.list)", + ]`, }), }, }) diff --git a/cc/bp2build.go b/cc/bp2build.go index 972a82895..9804d6f08 100644 --- a/cc/bp2build.go +++ b/cc/bp2build.go @@ -1019,18 +1019,20 @@ func (la *linkerAttributes) bp2buildForAxisAndConfig(ctx android.BazelConversion axisFeatures = append(axisFeatures, "-static_flag") } } + additionalLinkerInputs := bazel.LabelList{} if props.Version_script != nil { label := android.BazelLabelForModuleSrcSingle(ctx, *props.Version_script) - la.additionalLinkerInputs.SetSelectValue(axis, config, bazel.LabelList{Includes: []bazel.Label{label}}) + additionalLinkerInputs.Add(&label) linkerFlags = append(linkerFlags, fmt.Sprintf("-Wl,--version-script,$(location %s)", label.Label)) } if props.Dynamic_list != nil { label := android.BazelLabelForModuleSrcSingle(ctx, *props.Dynamic_list) - la.additionalLinkerInputs.SetSelectValue(axis, config, bazel.LabelList{Includes: []bazel.Label{label}}) + additionalLinkerInputs.Add(&label) linkerFlags = append(linkerFlags, fmt.Sprintf("-Wl,--dynamic-list,$(location %s)", label.Label)) } + la.additionalLinkerInputs.SetSelectValue(axis, config, additionalLinkerInputs) la.linkopts.SetSelectValue(axis, config, parseCommandLineFlags(linkerFlags, false, filterOutClangUnknownCflags)) la.useLibcrt.SetSelectValue(axis, config, props.libCrt())