[roll] Roll fuchsia [roll] Roll llvm-project/libc [libc] Add struct cmsghdr and associated macros (#193756)

The macros are the main source of subtlety. The interesting aspects are:
- some implementations CMSG_ALIGN the size of struct cmsghdr, but this
is a noop. Instead of doing that, I added an assertion in the test.
- POSIX permits CMSG_NXTHDR to return null if the buffer has no space
for the data array, and this behavior differs between implementations.
This implementation does not do that in order to match CMSG_FIRSTHDR,
which doesn't have such an option.
- some implementations redirect the CMSG_NXTHDR macro to an (extern or
static inline) function. I implemented this inside the macro to avoid
having to define a (private ?) entry point for that function.

---------

Co-authored-by: Jeff Bailey <jbailey@raspberryginger.com>
GitOrigin-RevId: 89894b67484694aeaaec9c6bac6a09d71c347e6f
Original-Revision: 047efa7d043187dc625e1abfaaadb6e461b0279a

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1590069
Original-Revision: 6983da25711bf4f75f61d26967bc613e1feae4db
GitOrigin-RevId: 80510c8240f469106e6dec16bd9f2d26c9dc1720
Change-Id: I04c6ec0ede811e50e4319b59e65d0f7f899c0af3
1 file changed
tree: 5a58898343661a0302a5fca99531d91d8d10dcdd
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cobalt
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. 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.