2014-09-11 15:11:50 -04:00
|
|
|
|
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 Apple’s 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.
|
|
|
|
|
|
2016-11-07 09:01:20 -05:00
|
|
|
|
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.
|
2014-09-11 15:11:50 -04:00
|
|
|
|
|
2014-09-12 12:13:27 -04:00
|
|
|
|
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.
|
|
|
|
|
|
2014-09-11 15:11:50 -04:00
|
|
|
|
Local Modifications:
|
|
|
|
|
- Only cctools/APPLE_LICENSE, cctools/libmacho/getsecbyname.c, and
|
|
|
|
|
cctools/include/mach-o/getsect.h are included.
|
2014-09-12 12:13:27 -04:00
|
|
|
|
- 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.
|