[roll] Roll fuchsia [bazel_sdk] Add FuchsiaUnstrippedBinaryInfo provider.

Add a new provider that records the location of an unstripped ELF
binary, its Fuchsia package install location, and optional location
of the corresponding stripped binary, if available as a prebuilt.

Add fuchsia_unstripped_binary() rule to record one such value
through a target definition. This will be used in a future CL
for SDK prebuilt library atoms.

Also introduce find_and_process_unstripped_binaries() to collect
all FuchsiaUnstrippedBinaryInfo values from a DAG of dependencies
(using an aspect, similar to GN metadata collection), then:

- Strip all binaries that need it.

- Populating a .build-id/ directory with symlinks to the original
  unstripped binaries (based on their GNU build-id value).

- Provide a FuchsiaPackageResourcesInfo and a FuchsiaDebugSymbolInfo
  to expose the stripped binaries and the .build-id directory
  to dependents.

+ Ensure that forward_providers() will never forward a
  FuchsiaUnstrippedBinaryInfo provider to dependents, as this
  would create duplicate values in the build graph, creating
  conflicts.

+ Add FUCHSIA_DEBUG_SYMBOL_ATTRS constant to
  fucshia_debug_symbols.bzl and use it for all rule definitions
  that need to call strip_resources() in their implementation
  function.

Original-Bug: 339038603
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1047132
Original-Revision: 955ab1f2e9ce36dcb08af875f5e94d8c044b5de5
GitOrigin-RevId: b2cdadc54860a9aaa11965edfd2eb059042b64a0
Change-Id: Ib6ca74ffc517ec53ebf2fe44e880be7e133efe7b
1 file changed
tree: 87440f120eb1b8e13222f28ca8b7aa1b448093e5
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.