[roll] Roll fuchsia [starnix/usercopy] Introduce ASM `hermetic_zero`

Currently, we build `hermetic_zero` from C++ source, but the hermetic
zero error path assumes certain behaviour of the `hermetic_zero`
implementation (see `hermetic_copy_error`. Compiling from C++ source
is brittle because the generated assembly may change across toolchain
updates. In fact, we have observed breakages several times.

Now that the `hermetic_zero` is stable and we are not iterating on it
anymore, provide an assembly variant of it that we can build from so
that future toolchain updates do not break the build and, most
importantly, we can explicitly provide the hermetic zero error path
the guarantees/behaviours it expects.

Note that we keep the `hermetic_zero` C++ source in tree as a reference.
A later change will remove its `hermetic_code_blob` target from the
regular build graph and likely move it to a test-only build target.

Original-Bug: b/338636637
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1045755
Original-Revision: d4946c76d610f7ed056e0d59770247001e7ea2f9
GitOrigin-RevId: 85e97c767c78cf6b1b179f3637a662ccae34130f
Change-Id: I1903931463e06bd67311188b700ff6e0dcc5be80
1 file changed
tree: 5b9b8a1373c63a1e45cb9596cea85c43e1c2164d
  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.