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

Currently, we build `hermetic_copy_until_null_byte` from C++ source, but
the hermetic copy error path assumes certain behaviour of the
`hermetic_copy_until_null_byte` 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_copy_until_null_byte` 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 copy error path
the guarantees/behaviours it expects.

Note that we keep the `hermetic_copy_until_null_byte` 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/+/1045874
Original-Revision: cee1122aa32273ce31308b401425c321e612dba8
GitOrigin-RevId: d543cc40bd9930ac328b74c02e8b4d24bd216988
Change-Id: I874a88fa064fe9c8236dab643ed8ab729b10f2c8
1 file changed
tree: fa99cdd9d2a13514948a3e55a6b8290cdbb2e41c
  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.