OLD | NEW |
1 Name: Apple cctools | 1 Name: Apple cctools |
2 Short Name: cctools | 2 Short Name: cctools |
3 URL: https://opensource.apple.com/source/cctools/ | 3 URL: https://opensource.apple.com/source/cctools/ |
4 URL: https://opensource.apple.com/tarballs/cctools/ | 4 URL: https://opensource.apple.com/tarballs/cctools/ |
5 Version: 855 (from Xcode 5.1) | 5 Version: 855 (from Xcode 5.1) |
6 License: APSL 2.0 | 6 License: APSL 2.0 |
7 License File: cctools/APPLE_LICENSE | 7 License File: cctools/APPLE_LICENSE |
8 Security Critical: no | 8 Security Critical: no |
9 | 9 |
10 Description: | 10 Description: |
11 cctools contains portions of Apple’s compiler toolchain, including common tools | 11 cctools contains portions of Apple’s compiler toolchain, including common tools |
12 like ar, as, nm, strings, and strip, and platform-specific tools like lipo and | 12 like ar, as, nm, strings, and strip, and platform-specific tools like lipo and |
13 otool. It also contains support libraries such as libmacho, which contains | 13 otool. It also contains support libraries such as libmacho, which contains |
14 interfaces for dealing with Mach-O images. | 14 interfaces for dealing with Mach-O images. |
15 | 15 |
16 libmacho is available on Mac OS X as a runtime library that is part of | 16 libmacho is available on Mac OS X as a runtime library that is part of |
17 libSystem, but versions of libmacho included in operating system versions prior | 17 libSystem, but versions of libmacho included in operating system versions prior |
18 to Mac OS X 10.7 did not include the getsectiondata() and getsegmentdata() | 18 to Mac OS X 10.7 did not include the getsectiondata() and getsegmentdata() |
19 functions. This library is present here to provide implementations of these | 19 functions. This library is present here to provide implementations of these |
20 functions for systems that do not have them. | 20 functions for systems that do not have them. |
21 | 21 |
| 22 Crashpad code is not expected to use this library directly. It should use the |
| 23 getsectiondata() and getsegmentdata() wrappers in compat, which will use |
| 24 system-provided implementations if present at runtime, and will otherwise fall |
| 25 back to the implementations in this library. |
| 26 |
22 Local Modifications: | 27 Local Modifications: |
23 - Only cctools/APPLE_LICENSE, cctools/libmacho/getsecbyname.c, and | 28 - Only cctools/APPLE_LICENSE, cctools/libmacho/getsecbyname.c, and |
24 cctools/include/mach-o/getsect.h are included. | 29 cctools/include/mach-o/getsect.h are included. |
| 30 - getsecbyname.c and getsect.h have been trimmed to remove everything other |
| 31 than the getsectiondata() and getsegmentdata() functions. The #include guards |
| 32 in getsect.h have been made unique. |
| 33 - getsectiondata() is renamed to crashpad_getsectiondata(), and |
| 34 getsegmentdata() is renamed to crashpad_getsegmentdata(). |
| 35 - These functions are only declared and defined if the deployment target is |
| 36 older than 10.7. This library is not needed otherwise, because in that case, |
| 37 the system always provides implementations in runtime libraries. |
| 38 - Originally, each of these two functions were implemented twice: once for |
| 39 32-bit code and once for 64-bit code. Aside from the types and constants |
| 40 used, the two implementations were completely identical. This has been |
| 41 simplified to have a shared implementation that relies on local typedefs and |
| 42 constants being defined properly. This change was only made in |
| 43 getsecbyname.c. getsect.h was not changed to avoid leaking new definitions |
| 44 beyond this header. |
OLD | NEW |