[roll] Roll fuchsia [ld] Let PT_INTERP string determine fuchsia.ldsvc.Loader/Config message

This makes the startup dynamic linker look at the executable's
PT_INTERP string (which presumably was used to find the dynamic
linker's own binary now running).  If it is the canonical string
expected, but has a `.../` prefix, then `...` is taken as the
string to send in the Config() FIDL message to the loader service
that directs it to look in alternate places for DT_NEEDED files.

This also cleans up all the packaging and test logic related to
libprefix in accordance with this scheme.  The startup dynamic
linker is packaged using the libprefix of dependent executables
without regard to the variant where ld-startup itself was built.
The test packaging now uses the libprefix under the per-test lib/
subdirectories so they more closely resemble libprefix use in
normal Fuchsia packages.  The test fixture logic now looks up the
PT_INTERP in each test_executable() to drive its expectations
about Config() messages as well as where to find the files to
prime the mock for expected LoadObject() requests.  In the
special cases where there is no matching PT_INTERP to use, the
tests use the TestElfLoadSet machinery to find libprefix records
stored at build time.

The ld-stub packaging is made canonical and never uses libprefix,
as it's really just data not accessed via the loader service.
Instead, it goes into lib/ but with a name that represents the
ELF layout and machine so that one remote dynamic linker package
can serve disparate ld::RemoteDynamicLinker instantiations.

Original-Fixed: 42084623
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1211524
Original-Revision: c3a8d0b1b1d23f181ba51ef1a41aef6877cb0cbf
GitOrigin-RevId: 106ce8162244136b92e058cd5159dc18d28e82c5
Change-Id: Ia37e12fca34ee5881b42246fa1c7c857a94649af
1 file changed
tree: 05b4e59f4310b515bcdb1a3d9802bfe7266b4c67
  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 in one of the communication channels documented at get involved.

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.