X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Fmach-o.h;h=e4005bdb34da2e5e63a2e6fcde3213e65177ba45;hb=62e6599087efba193e0156d89ee65fb74fc99cb2;hp=c09e274f0ce8762b2dd4fb4f27e25ba9ca834aaa;hpb=219d1afa89d0d53ca93a684cac341f16470f3ca0;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/mach-o.h b/bfd/mach-o.h index c09e274f0c..e4005bdb34 100644 --- a/bfd/mach-o.h +++ b/bfd/mach-o.h @@ -1,5 +1,5 @@ /* Mach-O support for BFD. - Copyright (C) 1999-2018 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -21,7 +21,6 @@ #ifndef _BFD_MACH_O_H_ #define _BFD_MACH_O_H_ -#include "bfd.h" #include "mach-o/loader.h" #include "mach-o/external.h" @@ -113,6 +112,18 @@ bfd_mach_o_segment_command; #define BFD_MACH_O_PROT_WRITE 0x02 #define BFD_MACH_O_PROT_EXECUTE 0x04 +/* Target platforms. */ +#define BFD_MACH_O_PLATFORM_MACOS 1 +#define BFD_MACH_O_PLATFORM_IOS 2 +#define BFD_MACH_O_PLATFORM_TVOS 3 +#define BFD_MACH_O_PLATFORM_WATCHOS 4 +#define BFD_MACH_O_PLATFORM_BRIDGEOS 5 + +/* Build tools. */ +#define BFD_MACH_O_TOOL_CLANG 1 +#define BFD_MACH_O_TOOL_SWIFT 2 +#define BFD_MACH_O_TOOL_LD 3 + /* Expanded internal representation of a relocation entry. */ typedef struct bfd_mach_o_reloc_info { @@ -519,10 +530,8 @@ bfd_mach_o_dyld_info_command; typedef struct bfd_mach_o_version_min_command { - unsigned char rel; - unsigned char maj; - unsigned char min; - unsigned int reserved; + uint32_t version; + uint32_t sdk; } bfd_mach_o_version_min_command; @@ -551,6 +560,30 @@ typedef struct bfd_mach_o_source_version_command } bfd_mach_o_source_version_command; +typedef struct bfd_mach_o_note_command +{ + char data_owner[16]; + bfd_uint64_t offset; + bfd_uint64_t size; +} +bfd_mach_o_note_command; + +typedef struct bfd_mach_o_build_version_tool +{ + uint32_t tool; + uint32_t version; +} +bfd_mach_o_build_version_tool; + +typedef struct bfd_mach_o_build_version_command +{ + uint32_t platform; + uint32_t minos; + uint32_t sdk; + uint32_t ntools; +} +bfd_mach_o_build_version_command; + typedef struct bfd_mach_o_load_command { /* Next command in the single linked list. */ @@ -584,6 +617,8 @@ typedef struct bfd_mach_o_load_command bfd_mach_o_fvmlib_command fvmlib; bfd_mach_o_main_command main; bfd_mach_o_source_version_command source_version; + bfd_mach_o_note_command note; + bfd_mach_o_build_version_command build_version; } command; } bfd_mach_o_load_command; @@ -617,10 +652,10 @@ typedef struct mach_o_data_struct /* A place to stash dwarf2 info for this bfd. */ void *dwarf2_find_line_info; - /* BFD of .dSYM file. */ + /* BFD of .dSYM file. */ bfd *dsym_bfd; - /* Cache of dynamic relocs. */ + /* Cache of dynamic relocs. */ arelent *dyn_reloc_cache; } bfd_mach_o_data_struct; @@ -659,6 +694,7 @@ bfd_boolean bfd_mach_o_bfd_copy_private_section_data (bfd *, asection *, bfd *, asection *); bfd_boolean bfd_mach_o_bfd_copy_private_header_data (bfd *, bfd *); bfd_boolean bfd_mach_o_bfd_set_private_flags (bfd *, flagword); +bfd_boolean bfd_mach_o_bfd_print_private_bfd_data (bfd *, void *); long bfd_mach_o_get_symtab_upper_bound (bfd *); long bfd_mach_o_canonicalize_symtab (bfd *, asymbol **); long bfd_mach_o_get_synthetic_symtab (bfd *, long, asymbol **, long,