Mark Mentovai ab4978b51e 10.6 SDK compatibility.
TEST=util_test MachOImageReader.* (and all others with a 10.6 SDK build)
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/561933004
2014-09-12 12:13:27 -04:00
..
2014-09-12 12:13:27 -04: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 Mac OS X 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.