Scott Graham d5ead4d70f Upstream lightly modified Chromium BUILD.gn files
Unreferenced, and not working at all in Crashpad-standalone.

Copied from Chromium at 52a9831d81f2099ef9f50fcdaca5853019262c35 to have
a point where a roll back into Chromium should be a no-op (with Chromium's
build/secondary/third_party/crashpad/... removed).

I'm not sure what we want to do about the various gni references into
Chromium (e.g. //build/config/sanitizers/sanitizers.gni, //testing/test.gni,
etc.) but I guess the sooner they live in Crashpad rather than in Chromium
the sooner we can figure out the sort of knobs and dials we need.

Bug: crashpad:79
Change-Id: Id99c29123bcd4174ee2bcc128c2be87e3c94fa3f
Reviewed-on: https://chromium-review.googlesource.com/777819
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2017-11-20 18:08:23 +00:00
..
2014-09-12 12:13:27 -04:00
2014-09-12 12:13:27 -04:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Name: Apple cctools
Short Name: cctools
URL: https://opensource.apple.com/source/cctools/
URL: https://opensource.apple.com/tarballs/cctools/
Version: 855 (from Xcode 5.1)
License: APSL 2.0
License File: cctools/APPLE_LICENSE
Security Critical: no

Description:
cctools contains portions of Apples compiler toolchain, including common tools
like ar, as, nm, strings, and strip, and platform-specific tools like lipo and
otool. It also contains support libraries such as libmacho, which contains
interfaces for dealing with Mach-O images.

libmacho is available on macOS as a runtime library that is part of libSystem,
but versions of libmacho included in operating system versions prior to Mac OS X
10.7 did not include the getsectiondata() and getsegmentdata() functions. This
library is present here to provide implementations of these functions for
systems that do not have them.

Crashpad code is not expected to use this library directly. It should use the
getsectiondata() and getsegmentdata() wrappers in compat, which will use
system-provided implementations if present at runtime, and will otherwise fall
back to the implementations in this library.

Local Modifications:
 - Only cctools/APPLE_LICENSE, cctools/libmacho/getsecbyname.c, and
   cctools/include/mach-o/getsect.h are included.
 - getsecbyname.c and getsect.h have been trimmed to remove everything other
   than the getsectiondata() and getsegmentdata() functions. The #include guards
   in getsect.h have been made unique.
 - getsectiondata() is renamed to crashpad_getsectiondata(), and
   getsegmentdata() is renamed to crashpad_getsegmentdata().
 - These functions are only declared and defined if the deployment target is
   older than 10.7. This library is not needed otherwise, because in that case,
   the system always provides implementations in runtime libraries.
 - Originally, each of these two functions were implemented twice: once for
   32-bit code and once for 64-bit code. Aside from the types and constants
   used, the two implementations were completely identical. This has been
   simplified to have a shared implementation that relies on local typedefs and
   constants being defined properly. This change was only made in
   getsecbyname.c. getsect.h was not changed to avoid leaking new definitions
   beyond this header.