diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java index 9346cbcf712421..53d4c71914f01c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java @@ -730,11 +730,6 @@ public Artifact getDynamicLibrarySymlink(Artifact library, boolean preserveName) /* prefixConsumer= */ true); } - @StarlarkMethod(name = "linker_scripts", structField = true, documented = false) - public Sequence getLinkerScriptsForStarlark() { - return StarlarkList.immutableCopyOf(getLinkerScripts()); - } - /** Returns any linker scripts found in the "deps" attribute of the rule. */ List getLinkerScripts() { return ruleContext.getPrerequisiteArtifacts("deps").filter(CppFileTypes.LINKER_SCRIPT).list(); diff --git a/src/main/starlark/builtins_bzl/common/cc/cc_binary.bzl b/src/main/starlark/builtins_bzl/common/cc/cc_binary.bzl index b7d4f9bf8a6f78..c8970cc3fc4395 100644 --- a/src/main/starlark/builtins_bzl/common/cc/cc_binary.bzl +++ b/src/main/starlark/builtins_bzl/common/cc/cc_binary.bzl @@ -481,7 +481,7 @@ def _create_transitive_linking_actions( owner = ctx.label, libraries = depset(libraries_for_current_cc_linking_context), user_link_flags = cc_helper.linkopts(ctx, additional_make_variable_substitutions, cc_toolchain) + additional_linkopts, - additional_inputs = depset(common.linker_scripts + compilation_context.transitive_compilation_prerequisites().to_list()), + additional_inputs = depset(cc_helper.linker_scripts(ctx) + compilation_context.transitive_compilation_prerequisites().to_list()), ) current_cc_linking_context = cc_common.create_linking_context(linker_inputs = depset([linker_inputs])) diff --git a/src/main/starlark/builtins_bzl/common/cc/cc_helper.bzl b/src/main/starlark/builtins_bzl/common/cc/cc_helper.bzl index 33fdd5a1e59591..98f27a234d553f 100644 --- a/src/main/starlark/builtins_bzl/common/cc/cc_helper.bzl +++ b/src/main/starlark/builtins_bzl/common/cc/cc_helper.bzl @@ -61,6 +61,10 @@ ios_cpus = struct( MACOS_TARGET_CPUS = ["darwin_x86_64", "darwin_arm64", "darwin_arm64e", "darwin"], ) +cpp_file_types = struct( + LINKER_SCRIPT = ["ld", "lds", "ldscript"], +) + SYSROOT_FLAG = "--sysroot=" def _build_linking_context_from_libraries(ctx, libraries): @@ -1283,6 +1287,14 @@ def _defines(ctx, additional_make_variable_substitutions): def _local_defines(ctx, additional_make_variable_substitutions): return _defines_attribute(ctx, additional_make_variable_substitutions, "local_defines") +def _linker_scripts(ctx): + result = [] + for dep in ctx.attr.deps: + for f in dep.files.to_list(): + if f.extension in cpp_file_types.LINKER_SCRIPT: + result.append(f) + return result + cc_helper = struct( merge_cc_debug_contexts = _merge_cc_debug_contexts, is_code_coverage_enabled = _is_code_coverage_enabled, @@ -1341,4 +1353,5 @@ cc_helper = struct( linkopts = _linkopts, defines = _defines, local_defines = _local_defines, + linker_scripts = _linker_scripts, )