[roll] Roll fuchsia [ld] Use RemoteDecodedModule as const

This is a reland of commit 6a36af92ea293d9605c7014730d9d266be77f2a5
with fixes to elfldltl::SegmentWithVmo::AlignSegments for the
partial-page bss zeroing case.  This case was previously not tested
explicitly and only got tested by happenstance on the coverage and
profile builds.  A preceding change adds the partial-page-bss test
case to explicitly test this case in all builds.  This uncovered a
bug in the AlignSegments function's new support for dropping the
ZX_VMO_RIGHT_WRITE right from the per-segment VMO handles.  It was
wrongly presuming too many handle rights would be present on the
zx_vmo_create_child handle.  In fact, the handles for freshly
creaeted child VMOs have a set of rights that depends on the handle
rights of the parent VMO, in this case the file VMO from the
filesystem.  The filesystem doesn't yield VMO handles with all the
rights in ZX_DEFAULT_VMO_RIGHTS.

Original change's description:
> [ld] Use RemoteDecodedModule as const
>
> This completes pure refactoring part of separating the
> ld::RemoteDecodedModule and ld::RemoteLoadModule objects.  The
> RemoteLoadModule still creates and owns the RemoteDecodedModule
> object, but after decoding it's used only via a const pointer.
>
> Original-Bug: 326524302
> Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1004913

Original-Bug: 326524302
Cq-Include-Trybots: luci.turquoise.global.try:run-postsubmit-tryjobs
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1011932
Original-Revision: abaca8f305824aa1ccfca644a3decb2ace8147c1
GitOrigin-RevId: 47d73348034d5536fc68794809cd8a205f0aac0d
Change-Id: I4bfbcc2d705a7f098b072248c496a4593d2f58e5
1 file changed
tree: 7b0f6d0088a6e00d6afd169ce07c2bf15e46ec6d
  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.