mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 13:27:26 +08:00
Add support for new load commands added by Apple to the MACH-O file format.
bfd * mach-o.h: Add new enums for BFD_MACH_O_PLATFORM_MACOS, BFD_MACH_O_PLATFORM_IOS, BFD_MACH_O_PLATFORM_TVOS, BFD_MACH_O_PLATFORM_WATCHOS, BFD_MACH_O_PLATFORM_BRIDGEOS, BFD_MACH_O_TOOL_CLANG, BFD_MACH_O_TOOL_SWIFT, BFD_MACH_O_TOOL_LD. (struct bfd_mach_o_note_command): New. (struct bfd_mach_o_build_version_tool): New. (struct bfd_mach_o_build_version_command): New. (bfd_mach_o_read_version_min): Don't split version into a few fields. Rename reserved to sdk. * mach-o.c (bfd_mach_o_read_version_min): Don't split version into a few fields. Rename reserved to sdk. (bfd_mach_o_read_command): Handle LC_VERSION_MIN_TVOS, LC_NOTE, LC_BUILD_VERSION. (bfd_mach_o_read_note): New. (bfd_mach_o_read_build_version): New. PR 23728 binutils* od-macho.c (printf_version): New. (dump_load_command): Use it to print version. Print sdk version. Print version info for watchOS and tvOS. Print LC_NOTE, LC_BUILD_VERSION. (dump_buld_version): New. (bfd_mach_o_platform_name): New (bfd_mach_o_tool_name): New * mach-o/external.h (mach_o_nversion_min_command_external): Rename reserved to sdk. (mach_o_note_command_external): New. (mach_o_build_version_command_external): New. * mach-o/loader.h (BFD_MACH_O_LC_VERSION_MIN_TVOS): Define. (BFD_MACH_O_LC_NOTE): Define.
This commit is contained in:

committed by
Nick Clifton

parent
35ee2dc2e4
commit
fc7b364aba
@ -161,32 +161,34 @@ typedef enum bfd_mach_o_load_command_type
|
||||
/* Load a dynamically linked shared library that is allowed to be
|
||||
missing (weak). */
|
||||
BFD_MACH_O_LC_LOAD_WEAK_DYLIB = 0x18,
|
||||
BFD_MACH_O_LC_SEGMENT_64 = 0x19, /* 64-bit segment of this file to be
|
||||
mapped. */
|
||||
BFD_MACH_O_LC_ROUTINES_64 = 0x1a, /* Address of the dyld init routine
|
||||
in a dylib. */
|
||||
BFD_MACH_O_LC_UUID = 0x1b, /* 128-bit UUID of the executable. */
|
||||
BFD_MACH_O_LC_RPATH = 0x1c, /* Run path addiions. */
|
||||
BFD_MACH_O_LC_CODE_SIGNATURE = 0x1d, /* Local of code signature. */
|
||||
BFD_MACH_O_LC_SEGMENT_SPLIT_INFO = 0x1e, /* Local of info to split seg. */
|
||||
BFD_MACH_O_LC_REEXPORT_DYLIB = 0x1f, /* Load and re-export lib. */
|
||||
BFD_MACH_O_LC_LAZY_LOAD_DYLIB = 0x20, /* Delay load of lib until use. */
|
||||
BFD_MACH_O_LC_ENCRYPTION_INFO = 0x21, /* Encrypted segment info. */
|
||||
BFD_MACH_O_LC_DYLD_INFO = 0x22, /* Compressed dyld information. */
|
||||
BFD_MACH_O_LC_LOAD_UPWARD_DYLIB = 0x23, /* Load upward dylib. */
|
||||
BFD_MACH_O_LC_VERSION_MIN_MACOSX = 0x24, /* Minimal MacOSX version. */
|
||||
BFD_MACH_O_LC_VERSION_MIN_IPHONEOS = 0x25, /* Minimal IOS version. */
|
||||
BFD_MACH_O_LC_FUNCTION_STARTS = 0x26, /* Compressed table of func start. */
|
||||
BFD_MACH_O_LC_DYLD_ENVIRONMENT = 0x27, /* Env variable string for dyld. */
|
||||
BFD_MACH_O_LC_MAIN = 0x28, /* Entry point. */
|
||||
BFD_MACH_O_LC_DATA_IN_CODE = 0x29, /* Table of non-instructions. */
|
||||
BFD_MACH_O_LC_SOURCE_VERSION = 0x2a, /* Source version. */
|
||||
BFD_MACH_O_LC_DYLIB_CODE_SIGN_DRS = 0x2b, /* DRs from dylibs. */
|
||||
BFD_MACH_O_LC_ENCRYPTION_INFO_64 = 0x2c, /* Encrypted 64 bit seg info. */
|
||||
BFD_MACH_O_LC_LINKER_OPTIONS = 0x2d, /* Linker options. */
|
||||
BFD_MACH_O_LC_LINKER_OPTIMIZATION_HINT = 0x2e, /* Optimization hints. */
|
||||
BFD_MACH_O_LC_VERSION_MIN_WATCHOS = 0x30, /* Minimal WatchOS version. */
|
||||
BFD_MACH_O_LC_BUILD_VERSION = 0x32 /* Records linker, SDK, OS, and tools version used. */
|
||||
BFD_MACH_O_LC_SEGMENT_64 = 0x19, /* 64-bit segment of this file to be
|
||||
mapped. */
|
||||
BFD_MACH_O_LC_ROUTINES_64 = 0x1a, /* Address of the dyld init routine
|
||||
in a dylib. */
|
||||
BFD_MACH_O_LC_UUID = 0x1b, /* 128-bit UUID of the executable. */
|
||||
BFD_MACH_O_LC_RPATH = 0x1c, /* Run path addiions. */
|
||||
BFD_MACH_O_LC_CODE_SIGNATURE = 0x1d, /* Local of code signature. */
|
||||
BFD_MACH_O_LC_SEGMENT_SPLIT_INFO = 0x1e, /* Local of info to split seg. */
|
||||
BFD_MACH_O_LC_REEXPORT_DYLIB = 0x1f, /* Load and re-export lib. */
|
||||
BFD_MACH_O_LC_LAZY_LOAD_DYLIB = 0x20, /* Delay load of lib until use. */
|
||||
BFD_MACH_O_LC_ENCRYPTION_INFO = 0x21, /* Encrypted segment info. */
|
||||
BFD_MACH_O_LC_DYLD_INFO = 0x22, /* Compressed dyld information. */
|
||||
BFD_MACH_O_LC_LOAD_UPWARD_DYLIB = 0x23, /* Load upward dylib. */
|
||||
BFD_MACH_O_LC_VERSION_MIN_MACOSX = 0x24, /* Minimal MacOSX version. */
|
||||
BFD_MACH_O_LC_VERSION_MIN_IPHONEOS = 0x25, /* Minimal IOS version. */
|
||||
BFD_MACH_O_LC_FUNCTION_STARTS = 0x26, /* Compressed table of func start. */
|
||||
BFD_MACH_O_LC_DYLD_ENVIRONMENT = 0x27, /* Env variable string for dyld. */
|
||||
BFD_MACH_O_LC_MAIN = 0x28, /* Entry point. */
|
||||
BFD_MACH_O_LC_DATA_IN_CODE = 0x29, /* Table of non-instructions. */
|
||||
BFD_MACH_O_LC_SOURCE_VERSION = 0x2a, /* Source version. */
|
||||
BFD_MACH_O_LC_DYLIB_CODE_SIGN_DRS = 0x2b, /* DRs from dylibs. */
|
||||
BFD_MACH_O_LC_ENCRYPTION_INFO_64 = 0x2c, /* Encrypted 64 bit seg info. */
|
||||
BFD_MACH_O_LC_LINKER_OPTIONS = 0x2d, /* Linker options. */
|
||||
BFD_MACH_O_LC_LINKER_OPTIMIZATION_HINT = 0x2e,/* Optimization hints. */
|
||||
BFD_MACH_O_LC_VERSION_MIN_TVOS = 0x2f, /* Minimal tvOS version. */
|
||||
BFD_MACH_O_LC_VERSION_MIN_WATCHOS = 0x30, /* Minimal WatchOS version. */
|
||||
BFD_MACH_O_LC_NOTE = 0x31, /* Region of arbitrary data. */
|
||||
BFD_MACH_O_LC_BUILD_VERSION = 0x32, /* Generic build version. */
|
||||
}
|
||||
bfd_mach_o_load_command_type;
|
||||
|
||||
|
Reference in New Issue
Block a user