[roll] Roll fuchsia [libc] Update riscv64 setjmp/longjmp for shadow-call-stack pointer in gp

The compiler is changing from using s2 (x18) to using gp (x3) for
shadow-call-stack. This updates setjmp and longjmp to work with
this.  This requires adding another word to jmp_buf because
previously s2 was saved as the shadow-call-stack pointer while gp
was not saved as it's fixed in the old ABI, but now both must be
saved because gp is the shadow-call-stack pointer and s2 is
call-saved.

This also fixes a couple of bugs in the original implementation:
 * The shadow-call-stack pointer was saved but not restored.
 * The fs0 and s11 slots overlapped, so s11 was clobbered and the
   jmp_buf was one word smaller than it should have been.

Original-Bug: 123949
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/837298
Original-Revision: 43a8d54086a29b35a51b60c9ccfd4642eebb28e3
GitOrigin-RevId: 397ade26b33b1d6c49d6b271ff85bd2c7f8ec598
Change-Id: Iff93db3f5fc60dfcc852bc12845c1a12d99c8cc8
1 file changed
tree: 4a3daa2bb0536683bb9d9f162b38a7de51b319a0
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
  14. 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.