X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2Fbfd-in2.h;h=e4711b39b2148be0d4a9b325c20606bf246cf5e5;hb=5a0a214415f6190b75ffe8b807008009e5d70ad6;hp=89ff05e9aa86e14de80e0a21df61faf3b8c9b2fd;hpb=3fde5a36df2955b5a443e8da6f30fdf3b3b2769e;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 89ff05e9aa..e4711b39b2 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1,5 +1,6 @@ /* Main header file for the bfd library -- portable access to object files. - Copyright 1990, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000 + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, + 2000, 2001 Free Software Foundation, Inc. Contributed by Cygnus Support. @@ -808,6 +809,7 @@ bfd_make_writable PARAMS ((bfd *abfd)); boolean bfd_make_readable PARAMS ((bfd *abfd)); + /* Byte swapping macros for user section data. */ #define bfd_put_8(abfd, val, ptr) \ @@ -860,6 +862,7 @@ bfd_make_readable PARAMS ((bfd *abfd)); : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \ : (abort (), (void) 0)) + /* Byte swapping macros for file header data. */ #define bfd_h_put_8(abfd, val, ptr) \ @@ -1099,6 +1102,15 @@ typedef struct sec references found to any symbol in the section. */ #define SEC_CLINK 0x10000000 + /* Attempt to merge identical entities in the section. + Entity size is given in the entsize field. */ +#define SEC_MERGE 0x20000000 + + /* If given with SEC_MERGE, entities to merge are zero terminated + strings where entsize specifies character size instead of fixed + size entries. */ +#define SEC_STRINGS 0x40000000 + /* End of section flags. */ /* Some internal packed boolean fields. */ @@ -1211,6 +1223,10 @@ typedef struct sec unsigned int lineno_count; + /* Entity size for merging purposes. */ + + unsigned int entsize; + /* Optional information about a COMDAT entry; NULL if not COMDAT. */ struct bfd_comdat_info *comdat; @@ -1314,16 +1330,14 @@ boolean bfd_set_section_size PARAMS ((bfd *abfd, asection *sec, bfd_size_type val)); boolean -bfd_set_section_contents - PARAMS ((bfd *abfd, +bfd_set_section_contents PARAMS ((bfd *abfd, asection *section, PTR data, file_ptr offset, bfd_size_type count)); boolean -bfd_get_section_contents - PARAMS ((bfd *abfd, asection *section, PTR location, +bfd_get_section_contents PARAMS ((bfd *abfd, asection *section, PTR location, file_ptr offset, bfd_size_type count)); boolean @@ -1333,8 +1347,7 @@ bfd_copy_private_section_data PARAMS ((bfd *ibfd, asection *isec, bfd *obfd, ase BFD_SEND (obfd, _bfd_copy_private_section_data, \ (ibfd, isection, obfd, osection)) void -_bfd_strip_section_from_output - PARAMS ((struct bfd_link_info *info, asection *section)); +_bfd_strip_section_from_output PARAMS ((struct bfd_link_info *info, asection *section)); enum bfd_architecture { @@ -1349,6 +1362,10 @@ enum bfd_architecture #define bfd_mach_m68040 6 #define bfd_mach_m68060 7 #define bfd_mach_cpu32 8 +#define bfd_mach_mcf5200 9 +#define bfd_mach_mcf5206e 10 +#define bfd_mach_mcf5307 11 +#define bfd_mach_mcf5407 12 bfd_arch_vax, /* DEC Vax */ bfd_arch_i960, /* Intel 960 */ /* The order of the following is important. @@ -1425,6 +1442,7 @@ enum bfd_architecture #define bfd_mach_h8300 1 #define bfd_mach_h8300h 2 #define bfd_mach_h8300s 3 + bfd_arch_pdp11, /* DEC PDP-11 */ bfd_arch_powerpc, /* PowerPC */ #define bfd_mach_ppc 0 #define bfd_mach_ppc_403 403 @@ -1518,6 +1536,10 @@ enum bfd_architecture #define bfd_mach_avr4 4 #define bfd_mach_avr5 5 bfd_arch_cris, /* Axis CRIS */ + bfd_arch_s390, /* IBM s390 */ +#define bfd_mach_s390_esa 0 +#define bfd_mach_s390_esame 1 + bfd_arch_openrisc, /* OpenRISC */ bfd_arch_last }; @@ -1574,14 +1596,12 @@ const bfd_arch_info_type * bfd_get_arch_info PARAMS ((bfd *abfd)); const bfd_arch_info_type * -bfd_lookup_arch - PARAMS ((enum bfd_architecture +bfd_lookup_arch PARAMS ((enum bfd_architecture arch, unsigned long machine)); const char * -bfd_printable_arch_mach - PARAMS ((enum bfd_architecture arch, unsigned long machine)); +bfd_printable_arch_mach PARAMS ((enum bfd_architecture arch, unsigned long machine)); unsigned int bfd_octets_per_byte PARAMS ((bfd *abfd)); @@ -1621,6 +1641,7 @@ typedef enum bfd_reloc_status } bfd_reloc_status_type; + typedef struct reloc_cache_entry { /* A pointer into the canonical table of pointers */ @@ -1767,25 +1788,21 @@ struct reloc_howto_struct } \ } unsigned int -bfd_get_reloc_size PARAMS ((reloc_howto_type *)); +bfd_get_reloc_size PARAMS ((reloc_howto_type *)); typedef struct relent_chain { arelent relent; struct relent_chain *next; } arelent_chain; bfd_reloc_status_type - -bfd_check_overflow - PARAMS ((enum complain_overflow how, +bfd_check_overflow PARAMS ((enum complain_overflow how, unsigned int bitsize, unsigned int rightshift, unsigned int addrsize, bfd_vma relocation)); bfd_reloc_status_type - -bfd_perform_relocation - PARAMS ((bfd *abfd, +bfd_perform_relocation PARAMS ((bfd *abfd, arelent *reloc_entry, PTR data, asection *input_section, @@ -1793,9 +1810,7 @@ bfd_perform_relocation char **error_message)); bfd_reloc_status_type - -bfd_install_relocation - PARAMS ((bfd *abfd, +bfd_install_relocation PARAMS ((bfd *abfd, arelent *reloc_entry, PTR data, bfd_vma data_start, asection *input_section, @@ -1804,6 +1819,7 @@ bfd_install_relocation enum bfd_reloc_code_real { _dummy_first_bfd_reloc_code_real, + /* Basic absolute relocations of N bits. */ BFD_RELOC_64, BFD_RELOC_32, @@ -2057,6 +2073,7 @@ to compensate for the borrow when the low bits are added. */ BFD_RELOC_MIPS_GOT_OFST, BFD_RELOC_MIPS_GOT_DISP, + /* i386/elf relocations */ BFD_RELOC_386_GOT32, BFD_RELOC_386_PLT32, @@ -2091,6 +2108,10 @@ to compensate for the borrow when the low bits are added. */ BFD_RELOC_NS32K_DISP_16_PCREL, BFD_RELOC_NS32K_DISP_32_PCREL, +/* PDP11 relocations */ + BFD_RELOC_PDP11_DISP_8_PCREL, + BFD_RELOC_PDP11_DISP_6_PCREL, + /* Picojava relocs. Not all of these appear in object files. */ BFD_RELOC_PJ_CODE_HI16, BFD_RELOC_PJ_CODE_LO16, @@ -2377,6 +2398,7 @@ bits placed non-contigously in the instruction. */ /* This is a 16 bit offset from the call table base pointer. */ BFD_RELOC_V850_CALLT_16_16_OFFSET, + /* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the instruction. */ BFD_RELOC_MN10300_32_PCREL, @@ -2520,6 +2542,57 @@ value of SUBI insn. */ into 22 bits. */ BFD_RELOC_AVR_CALL, +/* Direct 12 bit. */ + BFD_RELOC_390_12, + +/* 12 bit GOT offset. */ + BFD_RELOC_390_GOT12, + +/* 32 bit PC relative PLT address. */ + BFD_RELOC_390_PLT32, + +/* Copy symbol at runtime. */ + BFD_RELOC_390_COPY, + +/* Create GOT entry. */ + BFD_RELOC_390_GLOB_DAT, + +/* Create PLT entry. */ + BFD_RELOC_390_JMP_SLOT, + +/* Adjust by program base. */ + BFD_RELOC_390_RELATIVE, + +/* 32 bit PC relative offset to GOT. */ + BFD_RELOC_390_GOTPC, + +/* 16 bit GOT offset. */ + BFD_RELOC_390_GOT16, + +/* PC relative 16 bit shifted by 1. */ + BFD_RELOC_390_PC16DBL, + +/* 16 bit PC rel. PLT shifted by 1. */ + BFD_RELOC_390_PLT16DBL, + +/* PC relative 32 bit shifted by 1. */ + BFD_RELOC_390_PC32DBL, + +/* 32 bit PC rel. PLT shifted by 1. */ + BFD_RELOC_390_PLT32DBL, + +/* 32 bit PC rel. GOT shifted by 1. */ + BFD_RELOC_390_GOTPCDBL, + +/* 64 bit GOT offset. */ + BFD_RELOC_390_GOT64, + +/* 64 bit PC relative PLT address. */ + BFD_RELOC_390_PLT64, + +/* 32 bit rel. offset to GOT entry. */ + BFD_RELOC_390_GOTENT, + /* These two relocations are used by the linker to determine which of the entries in a C++ virtual function table are actually used. When the --gc-sections option is given, the linker will zero out the entries @@ -2626,6 +2699,33 @@ This is the 3 bits of a value. */ BFD_RELOC_CRIS_UNSIGNED_6, BFD_RELOC_CRIS_UNSIGNED_4, +/* Relocs used in ELF shared libraries for CRIS. */ + BFD_RELOC_CRIS_COPY, + BFD_RELOC_CRIS_GLOB_DAT, + BFD_RELOC_CRIS_JUMP_SLOT, + BFD_RELOC_CRIS_RELATIVE, + +/* 32-bit offset to symbol-entry within GOT. */ + BFD_RELOC_CRIS_32_GOT, + +/* 16-bit offset to symbol-entry within GOT. */ + BFD_RELOC_CRIS_16_GOT, + +/* 32-bit offset to symbol-entry within GOT, with PLT handling. */ + BFD_RELOC_CRIS_32_GOTPLT, + +/* 16-bit offset to symbol-entry within GOT, with PLT handling. */ + BFD_RELOC_CRIS_16_GOTPLT, + +/* 32-bit offset to symbol, relative to GOT. */ + BFD_RELOC_CRIS_32_GOTREL, + +/* 32-bit offset to symbol with PLT entry, relative to GOT. */ + BFD_RELOC_CRIS_32_PLT_GOTREL, + +/* 32-bit offset to symbol with PLT entry, relative to this relocation. */ + BFD_RELOC_CRIS_32_PLT_PCREL, + /* Intel i860 Relocations. */ BFD_RELOC_860_COPY, BFD_RELOC_860_GLOB_DAT, @@ -2659,14 +2759,18 @@ This is the 3 bits of a value. */ BFD_RELOC_860_HIGH, BFD_RELOC_860_HIGOT, BFD_RELOC_860_HIGOTOFF, + +/* OpenRISC Relocations. */ + BFD_RELOC_OPENRISC_ABS_26, + BFD_RELOC_OPENRISC_REL_26, BFD_RELOC_UNUSED }; typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; reloc_howto_type * - -bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); +bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); const char * -bfd_get_reloc_code_name PARAMS ((bfd_reloc_code_real_type code)); +bfd_get_reloc_code_name PARAMS ((bfd_reloc_code_real_type code)); + typedef struct symbol_cache_entry { @@ -2804,7 +2908,7 @@ bfd_is_local_label_name PARAMS ((bfd *abfd, const char *name)); BFD_SEND (abfd, _bfd_canonicalize_symtab,\ (abfd, location)) boolean -bfd_set_symtab PARAMS ((bfd *abfd, asymbol **location, unsigned int count)); +bfd_set_symtab PARAMS ((bfd *abfd, asymbol **location, unsigned int count)); void bfd_print_symbol_vandf PARAMS ((PTR file, asymbol *symbol)); @@ -2817,7 +2921,7 @@ int bfd_decode_symclass PARAMS ((asymbol *symbol)); boolean -bfd_is_undefined_symclass PARAMS ((int symclass)); +bfd_is_undefined_symclass PARAMS ((int symclass)); void bfd_symbol_info PARAMS ((asymbol *symbol, symbol_info *ret)); @@ -3009,52 +3113,50 @@ typedef enum bfd_error } bfd_error_type; bfd_error_type -bfd_get_error PARAMS ((void)); +bfd_get_error PARAMS ((void)); void -bfd_set_error PARAMS ((bfd_error_type error_tag)); +bfd_set_error PARAMS ((bfd_error_type error_tag)); CONST char * -bfd_errmsg PARAMS ((bfd_error_type error_tag)); +bfd_errmsg PARAMS ((bfd_error_type error_tag)); void -bfd_perror PARAMS ((CONST char *message)); +bfd_perror PARAMS ((CONST char *message)); typedef void (*bfd_error_handler_type) PARAMS ((const char *, ...)); bfd_error_handler_type -bfd_set_error_handler PARAMS ((bfd_error_handler_type)); +bfd_set_error_handler PARAMS ((bfd_error_handler_type)); void -bfd_set_error_program_name PARAMS ((const char *)); +bfd_set_error_program_name PARAMS ((const char *)); bfd_error_handler_type -bfd_get_error_handler PARAMS ((void)); +bfd_get_error_handler PARAMS ((void)); long bfd_get_reloc_upper_bound PARAMS ((bfd *abfd, asection *sect)); long -bfd_canonicalize_reloc - PARAMS ((bfd *abfd, +bfd_canonicalize_reloc PARAMS ((bfd *abfd, asection *sec, arelent **loc, asymbol **syms)); void -bfd_set_reloc - PARAMS ((bfd *abfd, asection *sec, arelent **rel, unsigned int count) - +bfd_set_reloc PARAMS ((bfd *abfd, asection *sec, arelent **rel, unsigned int count) + ); boolean bfd_set_file_flags PARAMS ((bfd *abfd, flagword flags)); int -bfd_get_arch_size PARAMS ((bfd *abfd)); +bfd_get_arch_size PARAMS ((bfd *abfd)); int -bfd_get_sign_extend_vma PARAMS ((bfd *abfd)); +bfd_get_sign_extend_vma PARAMS ((bfd *abfd)); boolean bfd_set_start_address PARAMS ((bfd *abfd, bfd_vma vma)); @@ -3108,6 +3210,7 @@ bfd_set_private_flags PARAMS ((bfd *abfd, flagword flags)); #define bfd_debug_info_accumulate(abfd, section) \ BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section)) + #define bfd_stat_arch_elt(abfd, stat) \ BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat)) @@ -3171,8 +3274,7 @@ int bfd_core_file_failing_signal PARAMS ((bfd *abfd)); boolean -core_file_matches_executable_p - PARAMS ((bfd *core_bfd, bfd *exec_bfd)); +core_file_matches_executable_p PARAMS ((bfd *core_bfd, bfd *exec_bfd)); #define BFD_SEND(bfd, message, arglist) \ ((*((bfd)->xvec->message)) arglist) @@ -3471,7 +3573,7 @@ CAT(NAME,_canonicalize_dynamic_reloc) } bfd_target; boolean -bfd_set_default_target PARAMS ((const char *name)); +bfd_set_default_target PARAMS ((const char *name)); const bfd_target * bfd_find_target PARAMS ((CONST char *target_name, bfd *abfd)); @@ -3480,7 +3582,7 @@ const char ** bfd_target_list PARAMS ((void)); const bfd_target * -bfd_search_for_target PARAMS ((int (* search_func) (const bfd_target *, void *), void *)); +bfd_search_for_target PARAMS ((int (* search_func) (const bfd_target *, void *), void *)); boolean bfd_check_format PARAMS ((bfd *abfd, bfd_format format));