[roll] Roll fuchsia [kernel][phys] Prevent ElfImages from being destroyed

In this test, we add a bunch of local ElfImages to the global module
list in gSymbolize. These ElfImages are destroyed at the end of their
respective scopes, but the module list still has pointers to them which
are referenced in Symbolize::module_for_vaddr_range which is used
whenever we would do a cfi check via indirect calls via FILE::Write.

Since we don't really have a way of "unloading" modules and I'm not sure
if we want to expose a method for removing them from the modules list in
Symbolize, this instead makes the ElfImages persistent by wrapping them
with NoDestructor and making them static. Likewise we need to make the
storage for the modules persistent so we make that a global array.

Original-Fixed: 454696559
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1402621
Original-Revision: 39e0e706ee437f85ebd0089253ac58fc0e1246a2
GitOrigin-RevId: c8bdef67f8e547fc68ffb2cf78fa326c46981d22
Change-Id: If87049347b48300a5aeed2f383852b5b6741c5b3
1 file changed
tree: c3d07204ff228bc4109e6fe570f1259c03d2c444
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. flower
  6. jiri.lock
  7. MILESTONE
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. test_durations
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.