[roll] Roll fuchsia [starnix] enable aarch32 support

This change introduces support for 32-bit restricted
tasks in starnix (arch32). In particular, only arm arch32,
aarch32, tasks are supported.  This change contains just
enough to run a hello_debian dynamically linked binary.

This change adds:
- feature flag "arch32" to enable/disable and a build arg
- a new set of hello_debian statically linked targets
- 32-bit hello_debian/cpp
- aarch32 support: enable, thumb, register mapping
- arch32 toolchain targets
- "arch32" loader support
- arch32 system call table and lookup
- always use 8 bits of aslr memory in arch32 mode
- linux uapi arm and toolchain support
- very basic set of aarch32 system calls
- vdso32 support
- limited memory mapping enforcement using user_vmar size.

This is a reland of
https://fuchsia-review.googlesource.com/c/fuchsia/+/1162212 with
ensuring we never compile the 32 bits vdso with lto.

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1165453
Original-Revision: 909fcabcabda3475f94ce916050e3cc9e634f934
GitOrigin-RevId: 979558e32fae4ba9f29f09f4edd382014777e445
Change-Id: I48ff800db2a673612fe2863cf0df9175f711cce8
1 file changed
tree: 0ecf51697570ef2eee41e2975fb69aa124372bea
  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.