X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Fbfd-in2.h;h=c1ad8c796131f806c5e629292cf96ab652dd82fb;hb=c5e38e547e14e9f282c9d98a7c70272cecdcac10;hp=4e13bef7d8f4cb6eb573a9f7b29caea58aeb2189;hpb=6ad2759d497ce67f352700cee4eec040c4b0683c;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 4e13bef7d8..c1ad8c7961 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -2,7 +2,7 @@ generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c", "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c", - "linker.c" and "simple.c". + "linker.c", "simple.c" and "compress.c". Run "make headers" in your build bfd/ to regenerate. */ /* Main header file for the bfd library -- portable access to object files. @@ -238,7 +238,10 @@ typedef const struct reloc_howto_struct reloc_howto_type; #define bfd_asymbol_name(x) ((x)->name) /*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/ #define bfd_asymbol_bfd(x) ((x)->the_bfd) -#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour) +#define bfd_asymbol_flavour(x) \ + (((x)->flags & BSF_SYNTHETIC) != 0 \ + ? bfd_target_unknown_flavour \ + : bfd_asymbol_bfd (x)->xvec->flavour) /* A canonical archive symbol. */ /* This is a type pun with struct ranlib on purpose! */ @@ -506,6 +509,7 @@ extern void warn_deprecated (const char *, const char *, int, const char *); #define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags) #define bfd_my_archive(abfd) ((abfd)->my_archive) #define bfd_has_map(abfd) ((abfd)->has_armap) +#define bfd_is_thin_archive(abfd) ((abfd)->is_thin_archive) #define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types) #define bfd_usrdata(abfd) ((abfd)->usrdata) @@ -718,6 +722,8 @@ extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); +extern void bfd_elf_m68k_set_target_options (struct bfd_link_info *, int); + extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); @@ -889,6 +895,17 @@ extern bfd_boolean bfd_arm_update_notes extern unsigned int bfd_arm_get_mach_from_notes (bfd *, const char *); +/* ARM stub generation support. Called from the linker. */ +extern int elf32_arm_setup_section_lists + (bfd *, struct bfd_link_info *); +extern void elf32_arm_next_input_section + (struct bfd_link_info *, struct bfd_section *); +extern bfd_boolean elf32_arm_size_stubs + (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma, + struct bfd_section * (*) (const char *, struct bfd_section *), void (*) (void)); +extern bfd_boolean elf32_arm_build_stubs + (struct bfd_link_info *); + /* TI COFF load page support. */ extern void bfd_ticoff_set_section_load_page (struct bfd_section *, int); @@ -1834,6 +1851,7 @@ enum bfd_architecture #define bfd_mach_ppc_rs64iii 643 #define bfd_mach_ppc_7400 7400 #define bfd_mach_ppc_e500 500 +#define bfd_mach_ppc_e500mc 5001 bfd_arch_rs6000, /* IBM RS/6000 */ #define bfd_mach_rs6k 6000 #define bfd_mach_rs6k_rs1 6001 @@ -2398,6 +2416,11 @@ relocation types already defined. */ BFD_RELOC_SPARC_UA16, BFD_RELOC_SPARC_UA32, BFD_RELOC_SPARC_UA64, + BFD_RELOC_SPARC_GOTDATA_HIX22, + BFD_RELOC_SPARC_GOTDATA_LOX10, + BFD_RELOC_SPARC_GOTDATA_OP_HIX22, + BFD_RELOC_SPARC_GOTDATA_OP_LOX10, + BFD_RELOC_SPARC_GOTDATA_OP, /* I think these are specific to SPARC a.out (e.g., Sun 4). */ BFD_RELOC_SPARC_BASE13, @@ -4482,6 +4505,9 @@ typedef struct bfd_symbol with the expression tree serialized in the symbol name. */ #define BSF_SRELC 0x100000 + /* This symbol was created by bfd_get_synthetic_symtab. */ +#define BSF_SYNTHETIC 0x200000 + flagword flags; /* A pointer to the section to which this symbol is @@ -4659,6 +4685,13 @@ struct bfd origin, with origin set to 0 for non archive files. */ ufile_ptr origin; + /* The origin in the archive of the proxy entry. This will + normally be the same as origin, except for thin archives, + when it will contain the current offset of the proxy in the + thin archive rather than the offset of the bfd in its actual + container. */ + ufile_ptr proxy_origin; + /* A hash table for section names. */ struct bfd_hash_table section_htab; @@ -4692,6 +4725,8 @@ struct bfd struct bfd *my_archive; /* The containing archive BFD. */ struct bfd *archive_next; /* The next BFD in the archive. */ struct bfd *archive_head; /* The first BFD in the archive. */ + struct bfd *nested_archives; /* List of nested archive in a flattened + thin archive. */ /* A chain of BFD structures involved in a link. */ struct bfd *link_next; @@ -4774,6 +4809,9 @@ struct bfd /* Have archive map. */ unsigned int has_armap : 1; + + /* Set if this is a thin archive. */ + unsigned int is_thin_archive : 1; }; typedef enum bfd_error @@ -5430,6 +5468,10 @@ void bfd_section_already_linked (bfd *abfd, asection *sec, bfd_byte *bfd_simple_get_relocated_section_contents (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table); +/* Extracted from compress.c. */ +bfd_boolean bfd_uncompress_section_contents + (bfd_byte **buffer, bfd_size_type *size); + #ifdef __cplusplus } #endif