From ad86f1fb4da4f0b049bfd5f9fb05dcd52124ad33 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Wed, 9 Sep 2009 14:58:12 +0000 Subject: 2009-09-09 Tristan Gingold Handle DYLD_INFO introduced by Darwin10. * mach-o.h (bfd_mach_o_load_command_type): Add BFD_MACH_O_LC_DYLD_INFO. (bfd_mach_o_dyld_info_command): New type. (bfd_mach_o_load_command): Add dyld_info field. * mach-o.c (bfd_mach_o_scan_read_str): Reduce size of buf. (bfd_mach_o_scan_read_dyld_info): New function. (bfd_mach_o_scan_read_command): Handle BFD_MACH_O_LC_DYLD_INFO. (bfd_mach_o_bfd_print_private_bfd_data): Ditto. (bfd_mach_o_load_command_name): AddB FD_MACH_O_LC_DYLD_INFO. (bfd_mach_o_print_dyld_info): New function. --- bfd/mach-o.h | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'bfd/mach-o.h') diff --git a/bfd/mach-o.h b/bfd/mach-o.h index 0f48324..c1831e4 100644 --- a/bfd/mach-o.h +++ b/bfd/mach-o.h @@ -132,7 +132,8 @@ typedef enum bfd_mach_o_load_command_type 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_ENCRYPTION_INFO = 0x21, /* Encrypted segment info. */ + BFD_MACH_O_LC_DYLD_INFO = 0x22 /* Compressed dyld information. */ } bfd_mach_o_load_command_type; @@ -768,6 +769,30 @@ typedef struct bfd_mach_o_str_command } bfd_mach_o_str_command; +typedef struct bfd_mach_o_dyld_info_command +{ + /* File offset and size to rebase info. */ + unsigned int rebase_off; + unsigned int rebase_size; + + /* File offset and size of binding info. */ + unsigned int bind_off; + unsigned int bind_size; + + /* File offset and size of weak binding info. */ + unsigned int weak_bind_off; + unsigned int weak_bind_size; + + /* File offset and size of lazy binding info. */ + unsigned int lazy_bind_off; + unsigned int lazy_bind_size; + + /* File offset and size of export info. */ + unsigned int export_off; + unsigned int export_size; +} +bfd_mach_o_dyld_info_command; + typedef struct bfd_mach_o_load_command { bfd_mach_o_load_command_type type; @@ -786,6 +811,7 @@ typedef struct bfd_mach_o_load_command bfd_mach_o_uuid_command uuid; bfd_mach_o_linkedit_command linkedit; bfd_mach_o_str_command str; + bfd_mach_o_dyld_info_command dyld_info; } command; } -- cgit v1.1