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 macOS as a runtime library that is part of libSystem, |
17 libSystem, but versions of libmacho included in operating system versions prior | 17 but versions of libmacho included in operating system versions prior to Mac OS X |
18 to Mac OS X 10.7 did not include the getsectiondata() and getsegmentdata() | 18 10.7 did not include the getsectiondata() and getsegmentdata() functions. This |
19 functions. This library is present here to provide implementations of these | 19 library is present here to provide implementations of these functions for |
20 functions for systems that do not have them. | 20 systems that do not have them. |
21 | 21 |
22 Crashpad code is not expected to use this library directly. It should use the | 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 | 23 getsectiondata() and getsegmentdata() wrappers in compat, which will use |
24 system-provided implementations if present at runtime, and will otherwise fall | 24 system-provided implementations if present at runtime, and will otherwise fall |
25 back to the implementations in this library. | 25 back to the implementations in this library. |
26 | 26 |
27 Local Modifications: | 27 Local Modifications: |
28 - Only cctools/APPLE_LICENSE, cctools/libmacho/getsecbyname.c, and | 28 - Only cctools/APPLE_LICENSE, cctools/libmacho/getsecbyname.c, and |
29 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 | 30 - getsecbyname.c and getsect.h have been trimmed to remove everything other |
31 than the getsectiondata() and getsegmentdata() functions. The #include guards | 31 than the getsectiondata() and getsegmentdata() functions. The #include guards |
32 in getsect.h have been made unique. | 32 in getsect.h have been made unique. |
33 - getsectiondata() is renamed to crashpad_getsectiondata(), and | 33 - getsectiondata() is renamed to crashpad_getsectiondata(), and |
34 getsegmentdata() is renamed to crashpad_getsegmentdata(). | 34 getsegmentdata() is renamed to crashpad_getsegmentdata(). |
35 - These functions are only declared and defined if the deployment target is | 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, | 36 older than 10.7. This library is not needed otherwise, because in that case, |
37 the system always provides implementations in runtime libraries. | 37 the system always provides implementations in runtime libraries. |
38 - Originally, each of these two functions were implemented twice: once for | 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 | 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 | 40 used, the two implementations were completely identical. This has been |
41 simplified to have a shared implementation that relies on local typedefs and | 41 simplified to have a shared implementation that relies on local typedefs and |
42 constants being defined properly. This change was only made in | 42 constants being defined properly. This change was only made in |
43 getsecbyname.c. getsect.h was not changed to avoid leaking new definitions | 43 getsecbyname.c. getsect.h was not changed to avoid leaking new definitions |
44 beyond this header. | 44 beyond this header. |
OLD | NEW |