pw_build_info: Use pw_linker_script rule in Bazel
To handle GNU build id addition to linux linker script. This
harmonize the declaration of linker scripts with other modules.
It includes the linker script as a dependency of build_id library.
Change-Id: If5d44e689b8cb579af944054b188e33dac3c6bf4
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/241892
Pigweed-Auto-Submit: Armando Montanez <amontanez@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed-service-accounts.iam.gserviceaccount.com>
Docs-Not-Needed: Armando Montanez <amontanez@google.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
Reviewed-by: Ted Pudlik <tpudlik@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
diff --git a/pw_build_info/BUILD.bazel b/pw_build_info/BUILD.bazel
index 405412f..109c3f2 100644
--- a/pw_build_info/BUILD.bazel
+++ b/pw_build_info/BUILD.bazel
@@ -12,6 +12,7 @@
# License for the specific language governing permissions and limitations under
# the License.
+load("//pw_build:pw_linker_script.bzl", "pw_linker_script")
load("//pw_build:python.bzl", "pw_py_binary")
load(
"//pw_build_info:substitute_workspace_status.bzl",
@@ -35,32 +36,33 @@
],
)
+# When building for Linux, the linker provides a default linker script.
+# The add_build_id_to_default_script.ld wrapper includes the
+# build_id_linker_snippet.ld script in a way that appends to the
+# default linker script instead of overriding it.
+pw_linker_script(
+ name = "build_id_linker_script",
+ linker_script = "add_build_id_to_default_linker_script.ld",
+ target_compatible_with = ["@platforms//os:linux"],
+)
+
cc_library(
name = "build_id",
srcs = [
"build_id.cc",
"util.cc",
],
+ linkopts = [
+ "-Lpw_build_info",
+ "-Wl,--build-id=sha1",
+ ],
# Automatically add the gnu build ID linker sections when building for
# Linux. macOS and Windows executables are not supported, and embedded
# targets must manually add the snippet to their linker script in a
# read-only section.
- linkopts = select({
- # When building for Linux, the linker provides a default linker script.
- # The add_build_id_to_default_script.ld wrapper includes the
- # build_id_linker_snippet.ld script in a way that appends to the
- # default linker script instead of overriding it.
- "@platforms//os:linux": [
- "-T$(location add_build_id_to_default_linker_script.ld)",
- ],
- "//conditions:default": [],
- }) + [
- "-Lpw_build_info",
- "-Wl,--build-id=sha1",
- ],
deps = select({
"@platforms//os:linux": [
- ":add_build_id_to_default_linker_script.ld",
+ ":build_id_linker_script",
":build_id_linker_snippet.ld",
],
"//conditions:default": [],