Mark Mentovai 3332ae3546 compat: Provide <elf.h> and <mach-o/loader.h> for everyone
I’m working on something that I’m not ready to share, but maintaining
these compat headers in my local branch is becoming annoying because
“git cl format” keeps reformatting them since they were added since my
local branch point.

Because these headers are non-trivial, they’re brought nearly unmodified
from upstream into third_party, with forwarding from the appropriate
locations in compat.

<elf.h> comes from glibc 2.29 (2019-01-31) and was modified to remove
the #include of <features.h> and to replace the use of __BEGIN_DECLS and
__END_DECLS with the proper conditional extern "C" construct.

<mach-o/loader.h> comes from xnu 4903.221.2 (macOS 10.14.1, 2018-10-30)
and was modified to remove the unused #includes of
<mach/machine/thread_status.h> and <architecture/byte_order.h>. Rather
than taking <mach/machine.h> and <mach/vm_prot.h> with a spider web of
other dependencies from xnu, compat has cut-back versions of these
headers that provide only the required typedefs.

This also includes an update of apple_cf to 1153.18 (OS X 10.10.3,
2015-04-08), the last public release of CF-Lite. The change doesn’t do
much for our purposes, but it restores the file to an Apple-shipped
state, trailing whitespace and all.

This also canonically formats BUILD.gn. 48ee086ca4c4c didn’t format it.

Change-Id: Ib4f28ad53d9757bd0eed838e148c51172bfe30b1
Reviewed-on: https://chromium-review.googlesource.com/c/1489795
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2019-02-26 22:48:14 +00:00
..

Name: XNU
Short Name: xnu
URL: https://opensource.apple.com/source/xnu/
URL: https://opensource.apple.com/tarballs/xnu/
Version: 4903.221.2 (from macOS 10.14.1)
License: APSL 2.0
License File: APPLE_LICENSE
Security Critical: no

Description:
XNU is the operating system kernel used on macOS and other Apple systems.

Local Modifications:
 - Only EXTERNAL_HEADERS/mach-o/loader.h is included. Its #includes of
   <mach/machine/thread_status.h> and <architecture/byte_order.h> have been
   removed as unnecessary. Note that its #includes of <mach/machine.h> and
   <mach/vm_prot.h> have been retained but these headers have not been provided.
   External headers must be made available to provide the cpu_type_t,
   cpu_subtype_t, and vm_prot_t types.