libbfd.h revision 104834
189857Sobrien/* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically 289857Sobrien generated from "libbfd-in.h", "init.c", "libbfd.c", "cache.c", 389857Sobrien "reloc.c", "archures.c" and "elf.c". 489857Sobrien Run "make headers" in your build bfd/ to regenerate. */ 589857Sobrien 633965Sjdp/* libbfd.h -- Declarations used by bfd library *implementation*. 733965Sjdp (This include file is not for users of the library.) 878828Sobrien Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 9104834Sobrien 2000, 2001, 2002 1060484Sobrien Free Software Foundation, Inc. 1133965Sjdp Written by Cygnus Support. 1233965Sjdp 1333965SjdpThis file is part of BFD, the Binary File Descriptor library. 1433965Sjdp 1533965SjdpThis program is free software; you can redistribute it and/or modify 1633965Sjdpit under the terms of the GNU General Public License as published by 1733965Sjdpthe Free Software Foundation; either version 2 of the License, or 1833965Sjdp(at your option) any later version. 1933965Sjdp 2033965SjdpThis program is distributed in the hope that it will be useful, 2133965Sjdpbut WITHOUT ANY WARRANTY; without even the implied warranty of 2233965SjdpMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2333965SjdpGNU General Public License for more details. 2433965Sjdp 2533965SjdpYou should have received a copy of the GNU General Public License 2633965Sjdpalong with this program; if not, write to the Free Software 2733965SjdpFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 2833965Sjdp 2933965Sjdp/* Align an address upward to a boundary, expressed as a number of bytes. 3038889Sjdp E.g. align to an 8-byte boundary with argument of 8. Take care never 3138889Sjdp to wrap around if the address is within boundary-1 of the end of the 3238889Sjdp address space. */ 3389857Sobrien#define BFD_ALIGN(this, boundary) \ 3489857Sobrien ((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this)) \ 3589857Sobrien ? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \ 3638889Sjdp : ~ (bfd_vma) 0) 3733965Sjdp 3833965Sjdp/* If you want to read and write large blocks, you might want to do it 3933965Sjdp in quanta of this amount */ 4033965Sjdp#define DEFAULT_BUFFERSIZE 8192 4133965Sjdp 4233965Sjdp/* Set a tdata field. Can't use the other macros for this, since they 4333965Sjdp do casts, and casting to the left of assignment isn't portable. */ 4433965Sjdp#define set_tdata(bfd, v) ((bfd)->tdata.any = (PTR) (v)) 4533965Sjdp 4633965Sjdp/* If BFD_IN_MEMORY is set for a BFD, then the iostream fields points 4733965Sjdp to an instance of this structure. */ 4833965Sjdp 4933965Sjdpstruct bfd_in_memory 5033965Sjdp{ 5133965Sjdp /* Size of buffer. */ 5233965Sjdp bfd_size_type size; 5333965Sjdp /* Buffer holding contents of BFD. */ 5433965Sjdp bfd_byte *buffer; 5533965Sjdp}; 5633965Sjdp 5733965Sjdp/* tdata for an archive. For an input archive, cache 5833965Sjdp needs to be free()'d. For an output archive, symdefs do. */ 5933965Sjdp 6033965Sjdpstruct artdata { 6133965Sjdp file_ptr first_file_filepos; 6233965Sjdp /* Speed up searching the armap */ 6333965Sjdp struct ar_cache *cache; 6477298Sobrien bfd *archive_head; /* Only interesting in output routines */ 6533965Sjdp carsym *symdefs; /* the symdef entries */ 6677298Sobrien symindex symdef_count; /* how many there are */ 6733965Sjdp char *extended_names; /* clever intel extension */ 6833965Sjdp /* when more compilers are standard C, this can be a time_t */ 6933965Sjdp long armap_timestamp; /* Timestamp value written into armap. 7033965Sjdp This is used for BSD archives to check 7133965Sjdp that the timestamp is recent enough 7233965Sjdp for the BSD linker to not complain, 7333965Sjdp just before we finish writing an 7433965Sjdp archive. */ 7533965Sjdp file_ptr armap_datepos; /* Position within archive to seek to 7633965Sjdp rewrite the date field. */ 7733965Sjdp PTR tdata; /* Backend specific information. */ 7833965Sjdp}; 7933965Sjdp 8033965Sjdp#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data) 8133965Sjdp 8233965Sjdp/* Goes in bfd's arelt_data slot */ 8333965Sjdpstruct areltdata { 8477298Sobrien char * arch_header; /* it's actually a string */ 8577298Sobrien unsigned int parsed_size; /* octets of filesize not including ar_hdr */ 8677298Sobrien char *filename; /* null-terminated */ 8733965Sjdp}; 8833965Sjdp 8933965Sjdp#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size) 9033965Sjdp 9189857Sobrienextern PTR bfd_malloc PARAMS ((bfd_size_type)); 9289857Sobrienextern PTR bfd_realloc PARAMS ((PTR, bfd_size_type)); 9389857Sobrienextern PTR bfd_zmalloc PARAMS ((bfd_size_type)); 9433965Sjdp 9533965Sjdpextern bfd_error_handler_type _bfd_error_handler; 9633965Sjdp 9733965Sjdp/* These routines allocate and free things on the BFD's objalloc. */ 9833965Sjdp 9989857Sobrienextern PTR bfd_alloc PARAMS ((bfd *, bfd_size_type)); 10089857Sobrienextern PTR bfd_zalloc PARAMS ((bfd *, bfd_size_type)); 10133965Sjdpextern void bfd_release PARAMS ((bfd *, PTR)); 10233965Sjdp 10333965Sjdpbfd * _bfd_create_empty_archive_element_shell PARAMS ((bfd *obfd)); 10489857Sobrienbfd * _bfd_look_for_bfd_in_cache PARAMS ((bfd *, file_ptr)); 10533965Sjdpboolean _bfd_add_bfd_to_archive_cache PARAMS ((bfd *, file_ptr, bfd *)); 10633965Sjdpboolean _bfd_generic_mkarchive PARAMS ((bfd *abfd)); 10733965Sjdpconst bfd_target *bfd_generic_archive_p PARAMS ((bfd *abfd)); 10833965Sjdpboolean bfd_slurp_armap PARAMS ((bfd *abfd)); 10933965Sjdpboolean bfd_slurp_bsd_armap_f2 PARAMS ((bfd *abfd)); 11033965Sjdp#define bfd_slurp_bsd_armap bfd_slurp_armap 11133965Sjdp#define bfd_slurp_coff_armap bfd_slurp_armap 11233965Sjdpboolean _bfd_slurp_extended_name_table PARAMS ((bfd *abfd)); 11333965Sjdpextern boolean _bfd_construct_extended_name_table 11433965Sjdp PARAMS ((bfd *, boolean, char **, bfd_size_type *)); 11533965Sjdpboolean _bfd_write_archive_contents PARAMS ((bfd *abfd)); 11633965Sjdpboolean _bfd_compute_and_write_armap PARAMS ((bfd *, unsigned int elength)); 11733965Sjdpbfd *_bfd_get_elt_at_filepos PARAMS ((bfd *archive, file_ptr filepos)); 11833965Sjdpextern bfd *_bfd_generic_get_elt_at_index PARAMS ((bfd *, symindex)); 11933965Sjdpbfd * _bfd_new_bfd PARAMS ((void)); 12089857Sobrienvoid _bfd_delete_bfd PARAMS ((bfd *)); 12133965Sjdp 12233965Sjdpboolean bfd_false PARAMS ((bfd *ignore)); 12333965Sjdpboolean bfd_true PARAMS ((bfd *ignore)); 12433965SjdpPTR bfd_nullvoidptr PARAMS ((bfd *ignore)); 12533965Sjdpint bfd_0 PARAMS ((bfd *ignore)); 12633965Sjdpunsigned int bfd_0u PARAMS ((bfd *ignore)); 12733965Sjdplong bfd_0l PARAMS ((bfd *ignore)); 12833965Sjdplong _bfd_n1 PARAMS ((bfd *ignore)); 12933965Sjdpvoid bfd_void PARAMS ((bfd *ignore)); 13033965Sjdp 13133965Sjdpbfd *_bfd_new_bfd_contained_in PARAMS ((bfd *)); 13233965Sjdpconst bfd_target *_bfd_dummy_target PARAMS ((bfd *abfd)); 13333965Sjdp 13477298Sobrienvoid bfd_dont_truncate_arname PARAMS ((bfd *abfd, const char *filename, 13533965Sjdp char *hdr)); 13677298Sobrienvoid bfd_bsd_truncate_arname PARAMS ((bfd *abfd, const char *filename, 13733965Sjdp char *hdr)); 13877298Sobrienvoid bfd_gnu_truncate_arname PARAMS ((bfd *abfd, const char *filename, 13933965Sjdp char *hdr)); 14033965Sjdp 14133965Sjdpboolean bsd_write_armap PARAMS ((bfd *arch, unsigned int elength, 14233965Sjdp struct orl *map, unsigned int orl_count, int stridx)); 14333965Sjdp 14433965Sjdpboolean coff_write_armap PARAMS ((bfd *arch, unsigned int elength, 14533965Sjdp struct orl *map, unsigned int orl_count, int stridx)); 14633965Sjdp 14733965Sjdpextern PTR _bfd_generic_read_ar_hdr PARAMS ((bfd *)); 14833965Sjdp 14933965Sjdpextern PTR _bfd_generic_read_ar_hdr_mag PARAMS ((bfd *, const char *)); 15033965Sjdp 15133965Sjdpbfd * bfd_generic_openr_next_archived_file PARAMS ((bfd *archive, 15233965Sjdp bfd *last_file)); 15333965Sjdp 15433965Sjdpint bfd_generic_stat_arch_elt PARAMS ((bfd *, struct stat *)); 15533965Sjdp 15633965Sjdp#define _bfd_read_ar_hdr(abfd) \ 15733965Sjdp BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd)) 15833965Sjdp 15933965Sjdp/* Generic routines to use for BFD_JUMP_TABLE_GENERIC. Use 16033965Sjdp BFD_JUMP_TABLE_GENERIC (_bfd_generic). */ 16133965Sjdp 16233965Sjdp#define _bfd_generic_close_and_cleanup bfd_true 16333965Sjdp#define _bfd_generic_bfd_free_cached_info bfd_true 16433965Sjdp#define _bfd_generic_new_section_hook \ 16533965Sjdp ((boolean (*) PARAMS ((bfd *, asection *))) bfd_true) 16633965Sjdpextern boolean _bfd_generic_get_section_contents 16789857Sobrien PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); 16833965Sjdpextern boolean _bfd_generic_get_section_contents_in_window 16933965Sjdp PARAMS ((bfd *, asection *, bfd_window *, file_ptr, bfd_size_type)); 17033965Sjdp 17133965Sjdp/* Generic routines to use for BFD_JUMP_TABLE_COPY. Use 17233965Sjdp BFD_JUMP_TABLE_COPY (_bfd_generic). */ 17333965Sjdp 17433965Sjdp#define _bfd_generic_bfd_copy_private_bfd_data \ 17533965Sjdp ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) 17633965Sjdp#define _bfd_generic_bfd_merge_private_bfd_data \ 17733965Sjdp ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) 17833965Sjdp#define _bfd_generic_bfd_set_private_flags \ 17933965Sjdp ((boolean (*) PARAMS ((bfd *, flagword))) bfd_true) 18033965Sjdp#define _bfd_generic_bfd_copy_private_section_data \ 18133965Sjdp ((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true) 18233965Sjdp#define _bfd_generic_bfd_copy_private_symbol_data \ 18333965Sjdp ((boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true) 18433965Sjdp#define _bfd_generic_bfd_print_private_bfd_data \ 18533965Sjdp ((boolean (*) PARAMS ((bfd *, PTR))) bfd_true) 18633965Sjdp 18733965Sjdp/* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file 18833965Sjdp support. Use BFD_JUMP_TABLE_CORE (_bfd_nocore). */ 18933965Sjdp 19033965Sjdpextern char *_bfd_nocore_core_file_failing_command PARAMS ((bfd *)); 19133965Sjdpextern int _bfd_nocore_core_file_failing_signal PARAMS ((bfd *)); 19233965Sjdpextern boolean _bfd_nocore_core_file_matches_executable_p 19333965Sjdp PARAMS ((bfd *, bfd *)); 19433965Sjdp 19533965Sjdp/* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive 19633965Sjdp file support. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive). */ 19733965Sjdp 19833965Sjdp#define _bfd_noarchive_slurp_armap bfd_false 19933965Sjdp#define _bfd_noarchive_slurp_extended_name_table bfd_false 20033965Sjdp#define _bfd_noarchive_construct_extended_name_table \ 20133965Sjdp ((boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ 20233965Sjdp bfd_false) 20333965Sjdp#define _bfd_noarchive_truncate_arname \ 20433965Sjdp ((void (*) PARAMS ((bfd *, const char *, char *))) bfd_void) 20533965Sjdp#define _bfd_noarchive_write_armap \ 20633965Sjdp ((boolean (*) \ 20733965Sjdp PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \ 20833965Sjdp bfd_false) 20933965Sjdp#define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr 21033965Sjdp#define _bfd_noarchive_openr_next_archived_file \ 21133965Sjdp ((bfd *(*) PARAMS ((bfd *, bfd *))) bfd_nullvoidptr) 21233965Sjdp#define _bfd_noarchive_get_elt_at_index \ 21333965Sjdp ((bfd *(*) PARAMS ((bfd *, symindex))) bfd_nullvoidptr) 21433965Sjdp#define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt 21533965Sjdp#define _bfd_noarchive_update_armap_timestamp bfd_false 21633965Sjdp 21733965Sjdp/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get BSD style 21833965Sjdp archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd). */ 21933965Sjdp 22033965Sjdp#define _bfd_archive_bsd_slurp_armap bfd_slurp_bsd_armap 22133965Sjdp#define _bfd_archive_bsd_slurp_extended_name_table \ 22233965Sjdp _bfd_slurp_extended_name_table 22333965Sjdpextern boolean _bfd_archive_bsd_construct_extended_name_table 22433965Sjdp PARAMS ((bfd *, char **, bfd_size_type *, const char **)); 22533965Sjdp#define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname 22633965Sjdp#define _bfd_archive_bsd_write_armap bsd_write_armap 22733965Sjdp#define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr 22833965Sjdp#define _bfd_archive_bsd_openr_next_archived_file \ 22933965Sjdp bfd_generic_openr_next_archived_file 23033965Sjdp#define _bfd_archive_bsd_get_elt_at_index _bfd_generic_get_elt_at_index 23133965Sjdp#define _bfd_archive_bsd_generic_stat_arch_elt \ 23233965Sjdp bfd_generic_stat_arch_elt 23333965Sjdpextern boolean _bfd_archive_bsd_update_armap_timestamp PARAMS ((bfd *)); 23433965Sjdp 23533965Sjdp/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style 23633965Sjdp archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff). */ 23733965Sjdp 23833965Sjdp#define _bfd_archive_coff_slurp_armap bfd_slurp_coff_armap 23933965Sjdp#define _bfd_archive_coff_slurp_extended_name_table \ 24033965Sjdp _bfd_slurp_extended_name_table 24133965Sjdpextern boolean _bfd_archive_coff_construct_extended_name_table 24233965Sjdp PARAMS ((bfd *, char **, bfd_size_type *, const char **)); 24333965Sjdp#define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname 24433965Sjdp#define _bfd_archive_coff_write_armap coff_write_armap 24533965Sjdp#define _bfd_archive_coff_read_ar_hdr _bfd_generic_read_ar_hdr 24633965Sjdp#define _bfd_archive_coff_openr_next_archived_file \ 24733965Sjdp bfd_generic_openr_next_archived_file 24833965Sjdp#define _bfd_archive_coff_get_elt_at_index _bfd_generic_get_elt_at_index 24933965Sjdp#define _bfd_archive_coff_generic_stat_arch_elt \ 25033965Sjdp bfd_generic_stat_arch_elt 25133965Sjdp#define _bfd_archive_coff_update_armap_timestamp bfd_true 25233965Sjdp 25333965Sjdp/* Routines to use for BFD_JUMP_TABLE_SYMBOLS where there is no symbol 25433965Sjdp support. Use BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols). */ 25533965Sjdp 25633965Sjdp#define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1 25733965Sjdp#define _bfd_nosymbols_get_symtab \ 25833965Sjdp ((long (*) PARAMS ((bfd *, asymbol **))) _bfd_n1) 25989857Sobrien#define _bfd_nosymbols_make_empty_symbol _bfd_generic_make_empty_symbol 26033965Sjdp#define _bfd_nosymbols_print_symbol \ 26133965Sjdp ((void (*) PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type))) bfd_void) 26233965Sjdp#define _bfd_nosymbols_get_symbol_info \ 26333965Sjdp ((void (*) PARAMS ((bfd *, asymbol *, symbol_info *))) bfd_void) 26433965Sjdp#define _bfd_nosymbols_bfd_is_local_label_name \ 26533965Sjdp ((boolean (*) PARAMS ((bfd *, const char *))) bfd_false) 26633965Sjdp#define _bfd_nosymbols_get_lineno \ 26733965Sjdp ((alent *(*) PARAMS ((bfd *, asymbol *))) bfd_nullvoidptr) 26833965Sjdp#define _bfd_nosymbols_find_nearest_line \ 26933965Sjdp ((boolean (*) \ 27033965Sjdp PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, \ 27133965Sjdp const char **, unsigned int *))) \ 27233965Sjdp bfd_false) 27333965Sjdp#define _bfd_nosymbols_bfd_make_debug_symbol \ 27433965Sjdp ((asymbol *(*) PARAMS ((bfd *, PTR, unsigned long))) bfd_nullvoidptr) 27533965Sjdp#define _bfd_nosymbols_read_minisymbols \ 27633965Sjdp ((long (*) PARAMS ((bfd *, boolean, PTR *, unsigned int *))) _bfd_n1) 27733965Sjdp#define _bfd_nosymbols_minisymbol_to_symbol \ 27833965Sjdp ((asymbol *(*) PARAMS ((bfd *, boolean, const PTR, asymbol *))) \ 27933965Sjdp bfd_nullvoidptr) 28033965Sjdp 28133965Sjdp/* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc 28233965Sjdp support. Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs). */ 28333965Sjdp 28433965Sjdp#define _bfd_norelocs_get_reloc_upper_bound \ 28533965Sjdp ((long (*) PARAMS ((bfd *, asection *))) _bfd_n1) 28633965Sjdp#define _bfd_norelocs_canonicalize_reloc \ 28733965Sjdp ((long (*) PARAMS ((bfd *, asection *, arelent **, asymbol **))) _bfd_n1) 28833965Sjdp#define _bfd_norelocs_bfd_reloc_type_lookup \ 28933965Sjdp ((reloc_howto_type *(*) PARAMS ((bfd *, bfd_reloc_code_real_type))) \ 29033965Sjdp bfd_nullvoidptr) 29133965Sjdp 29233965Sjdp/* Routines to use for BFD_JUMP_TABLE_WRITE for targets which may not 29333965Sjdp be written. Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite). */ 29433965Sjdp 29533965Sjdp#define _bfd_nowrite_set_arch_mach \ 29633965Sjdp ((boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \ 29733965Sjdp bfd_false) 29833965Sjdp#define _bfd_nowrite_set_section_contents \ 29933965Sjdp ((boolean (*) PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \ 30033965Sjdp bfd_false) 30133965Sjdp 30233965Sjdp/* Generic routines to use for BFD_JUMP_TABLE_WRITE. Use 30333965Sjdp BFD_JUMP_TABLE_WRITE (_bfd_generic). */ 30433965Sjdp 30533965Sjdp#define _bfd_generic_set_arch_mach bfd_default_set_arch_mach 30633965Sjdpextern boolean _bfd_generic_set_section_contents 30733965Sjdp PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); 30833965Sjdp 30933965Sjdp/* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not 31033965Sjdp support linking. Use BFD_JUMP_TABLE_LINK (_bfd_nolink). */ 31133965Sjdp 31233965Sjdp#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, boolean))) bfd_0) 31333965Sjdp#define _bfd_nolink_bfd_get_relocated_section_contents \ 31433965Sjdp ((bfd_byte *(*) \ 31533965Sjdp PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, \ 31633965Sjdp bfd_byte *, boolean, asymbol **))) \ 31733965Sjdp bfd_nullvoidptr) 31833965Sjdp#define _bfd_nolink_bfd_relax_section \ 31933965Sjdp ((boolean (*) \ 32033965Sjdp PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *))) \ 32133965Sjdp bfd_false) 32260484Sobrien#define _bfd_nolink_bfd_gc_sections \ 32360484Sobrien ((boolean (*) \ 32460484Sobrien PARAMS ((bfd *, struct bfd_link_info *))) \ 32560484Sobrien bfd_false) 32689857Sobrien#define _bfd_nolink_bfd_merge_sections \ 32789857Sobrien ((boolean (*) \ 32889857Sobrien PARAMS ((bfd *, struct bfd_link_info *))) \ 32989857Sobrien bfd_false) 330104834Sobrien#define _bfd_nolink_bfd_discard_group \ 331104834Sobrien ((boolean (*) \ 332104834Sobrien PARAMS ((bfd *, struct sec *))) \ 333104834Sobrien bfd_false) 33433965Sjdp#define _bfd_nolink_bfd_link_hash_table_create \ 33533965Sjdp ((struct bfd_link_hash_table *(*) PARAMS ((bfd *))) bfd_nullvoidptr) 336104834Sobrien#define _bfd_nolink_bfd_link_hash_table_free \ 337104834Sobrien ((void (*) PARAMS ((struct bfd_link_hash_table *))) bfd_void) 33833965Sjdp#define _bfd_nolink_bfd_link_add_symbols \ 33933965Sjdp ((boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) 340104834Sobrien#define _bfd_nolink_bfd_link_just_syms \ 341104834Sobrien ((void (*) PARAMS ((asection *, struct bfd_link_info *))) bfd_void) 34233965Sjdp#define _bfd_nolink_bfd_final_link \ 34333965Sjdp ((boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) 34433965Sjdp#define _bfd_nolink_bfd_link_split_section \ 34533965Sjdp ((boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false) 34633965Sjdp 34733965Sjdp/* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not 34833965Sjdp have dynamic symbols or relocs. Use BFD_JUMP_TABLE_DYNAMIC 34933965Sjdp (_bfd_nodynamic). */ 35033965Sjdp 35133965Sjdp#define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1 35233965Sjdp#define _bfd_nodynamic_canonicalize_dynamic_symtab \ 35333965Sjdp ((long (*) PARAMS ((bfd *, asymbol **))) _bfd_n1) 35433965Sjdp#define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1 35533965Sjdp#define _bfd_nodynamic_canonicalize_dynamic_reloc \ 35633965Sjdp ((long (*) PARAMS ((bfd *, arelent **, asymbol **))) _bfd_n1) 35733965Sjdp 35833965Sjdp/* Generic routine to determine of the given symbol is a local 35933965Sjdp label. */ 36033965Sjdpextern boolean bfd_generic_is_local_label_name PARAMS ((bfd *, const char *)); 36133965Sjdp 36233965Sjdp/* Generic minisymbol routines. */ 36333965Sjdpextern long _bfd_generic_read_minisymbols 36433965Sjdp PARAMS ((bfd *, boolean, PTR *, unsigned int *)); 36533965Sjdpextern asymbol *_bfd_generic_minisymbol_to_symbol 36633965Sjdp PARAMS ((bfd *, boolean, const PTR, asymbol *)); 36733965Sjdp 36833965Sjdp/* Find the nearest line using .stab/.stabstr sections. */ 36933965Sjdpextern boolean _bfd_stab_section_find_nearest_line 37033965Sjdp PARAMS ((bfd *, asymbol **, asection *, bfd_vma, boolean *, const char **, 37133965Sjdp const char **, unsigned int *, PTR *)); 37233965Sjdp 37360484Sobrien/* Find the neaderst line using DWARF 1 debugging information. */ 37460484Sobrienextern boolean _bfd_dwarf1_find_nearest_line 37560484Sobrien PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, 37660484Sobrien const char **, unsigned int *)); 37760484Sobrien 37838889Sjdp/* Find the nearest line using DWARF 2 debugging information. */ 37938889Sjdpextern boolean _bfd_dwarf2_find_nearest_line 38038889Sjdp PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, 38177298Sobrien const char **, unsigned int *, unsigned int, 38277298Sobrien PTR *)); 38338889Sjdp 38489857Sobrien/* Create a new section entry. */ 38589857Sobrienextern struct bfd_hash_entry *bfd_section_hash_newfunc 38689857Sobrien PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); 38789857Sobrien 38833965Sjdp/* A routine to create entries for a bfd_link_hash_table. */ 38933965Sjdpextern struct bfd_hash_entry *_bfd_link_hash_newfunc 39033965Sjdp PARAMS ((struct bfd_hash_entry *entry, 39133965Sjdp struct bfd_hash_table *table, 39233965Sjdp const char *string)); 39333965Sjdp 39433965Sjdp/* Initialize a bfd_link_hash_table. */ 39533965Sjdpextern boolean _bfd_link_hash_table_init 39633965Sjdp PARAMS ((struct bfd_link_hash_table *, bfd *, 39733965Sjdp struct bfd_hash_entry *(*) (struct bfd_hash_entry *, 39833965Sjdp struct bfd_hash_table *, 39933965Sjdp const char *))); 40033965Sjdp 40133965Sjdp/* Generic link hash table creation routine. */ 40233965Sjdpextern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create 40333965Sjdp PARAMS ((bfd *)); 40433965Sjdp 405104834Sobrien/* Generic link hash table destruction routine. */ 406104834Sobrienextern void _bfd_generic_link_hash_table_free 407104834Sobrien PARAMS ((struct bfd_link_hash_table *)); 408104834Sobrien 40933965Sjdp/* Generic add symbol routine. */ 41033965Sjdpextern boolean _bfd_generic_link_add_symbols 41133965Sjdp PARAMS ((bfd *, struct bfd_link_info *)); 41233965Sjdp 41333965Sjdp/* Generic add symbol routine. This version is used by targets for 41433965Sjdp which the linker must collect constructors and destructors by name, 41533965Sjdp as the collect2 program does. */ 41633965Sjdpextern boolean _bfd_generic_link_add_symbols_collect 41733965Sjdp PARAMS ((bfd *, struct bfd_link_info *)); 41833965Sjdp 41933965Sjdp/* Generic archive add symbol routine. */ 42033965Sjdpextern boolean _bfd_generic_link_add_archive_symbols 42133965Sjdp PARAMS ((bfd *, struct bfd_link_info *, 42233965Sjdp boolean (*checkfn) (bfd *, struct bfd_link_info *, boolean *))); 42333965Sjdp 42433965Sjdp/* Forward declaration to avoid prototype errors. */ 42533965Sjdptypedef struct bfd_link_hash_entry _bfd_link_hash_entry; 42633965Sjdp 42733965Sjdp/* Generic routine to add a single symbol. */ 42833965Sjdpextern boolean _bfd_generic_link_add_one_symbol 42933965Sjdp PARAMS ((struct bfd_link_info *, bfd *, const char *name, flagword, 43033965Sjdp asection *, bfd_vma, const char *, boolean copy, 43133965Sjdp boolean constructor, struct bfd_link_hash_entry **)); 43233965Sjdp 433104834Sobrien/* Generic routine to mark section as supplying symbols only. */ 434104834Sobrienextern void _bfd_generic_link_just_syms 435104834Sobrien PARAMS ((asection *, struct bfd_link_info *)); 436104834Sobrien 43733965Sjdp/* Generic link routine. */ 43833965Sjdpextern boolean _bfd_generic_final_link 43933965Sjdp PARAMS ((bfd *, struct bfd_link_info *)); 44033965Sjdp 44133965Sjdpextern boolean _bfd_generic_link_split_section 44233965Sjdp PARAMS ((bfd *, struct sec *)); 44333965Sjdp 44433965Sjdp/* Generic reloc_link_order processing routine. */ 44533965Sjdpextern boolean _bfd_generic_reloc_link_order 44633965Sjdp PARAMS ((bfd *, struct bfd_link_info *, asection *, 44733965Sjdp struct bfd_link_order *)); 44833965Sjdp 44933965Sjdp/* Default link order processing routine. */ 45033965Sjdpextern boolean _bfd_default_link_order 45133965Sjdp PARAMS ((bfd *, struct bfd_link_info *, asection *, 45233965Sjdp struct bfd_link_order *)); 45333965Sjdp 45433965Sjdp/* Count the number of reloc entries in a link order list. */ 45533965Sjdpextern unsigned int _bfd_count_link_order_relocs 45633965Sjdp PARAMS ((struct bfd_link_order *)); 45733965Sjdp 45833965Sjdp/* Final link relocation routine. */ 45933965Sjdpextern bfd_reloc_status_type _bfd_final_link_relocate 46033965Sjdp PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, 46189857Sobrien bfd_vma, bfd_vma, bfd_vma)); 46233965Sjdp 46333965Sjdp/* Relocate a particular location by a howto and a value. */ 46433965Sjdpextern bfd_reloc_status_type _bfd_relocate_contents 46533965Sjdp PARAMS ((reloc_howto_type *, bfd *, bfd_vma, bfd_byte *)); 46633965Sjdp 46733965Sjdp/* Link stabs in sections in the first pass. */ 46833965Sjdp 46933965Sjdpextern boolean _bfd_link_section_stabs 47033965Sjdp PARAMS ((bfd *, PTR *, asection *, asection *, PTR *)); 47133965Sjdp 47289857Sobrien/* Eliminate stabs for discarded functions and symbols. */ 47389857Sobrienextern boolean _bfd_discard_section_stabs 47489857Sobrien PARAMS ((bfd *, asection *, PTR, 47589857Sobrien boolean (*) (bfd_vma, PTR), PTR)); 47689857Sobrien 47733965Sjdp/* Write out the .stab section when linking stabs in sections. */ 47833965Sjdp 47933965Sjdpextern boolean _bfd_write_section_stabs 48033965Sjdp PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_byte *)); 48133965Sjdp 48233965Sjdp/* Write out the .stabstr string table when linking stabs in sections. */ 48333965Sjdp 48433965Sjdpextern boolean _bfd_write_stab_strings PARAMS ((bfd *, PTR *)); 48533965Sjdp 48633965Sjdp/* Find an offset within a .stab section when linking stabs in 48733965Sjdp sections. */ 48833965Sjdp 48933965Sjdpextern bfd_vma _bfd_stab_section_offset 49033965Sjdp PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_vma)); 49133965Sjdp 49289857Sobrien/* Attempt to merge a SEC_MERGE section. */ 49389857Sobrien 49489857Sobrienextern boolean _bfd_merge_section 49589857Sobrien PARAMS ((bfd *, PTR *, asection *, PTR *)); 49689857Sobrien 49789857Sobrien/* Attempt to merge SEC_MERGE sections. */ 49889857Sobrien 49989857Sobrienextern boolean _bfd_merge_sections 50089857Sobrien PARAMS ((bfd *, PTR, void (*)(bfd *, asection *))); 50189857Sobrien 50289857Sobrien/* Write out a merged section. */ 50389857Sobrien 50489857Sobrienextern boolean _bfd_write_merged_section 50589857Sobrien PARAMS ((bfd *, asection *, PTR)); 50689857Sobrien 50789857Sobrien/* Find an offset within a modified SEC_MERGE section. */ 50889857Sobrien 50989857Sobrienextern bfd_vma _bfd_merged_section_offset 51089857Sobrien PARAMS ((bfd *, asection **, PTR, bfd_vma, bfd_vma)); 51189857Sobrien 51233965Sjdp/* Create a string table. */ 51333965Sjdpextern struct bfd_strtab_hash *_bfd_stringtab_init PARAMS ((void)); 51433965Sjdp 51533965Sjdp/* Create an XCOFF .debug section style string table. */ 51633965Sjdpextern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init PARAMS ((void)); 51733965Sjdp 51833965Sjdp/* Free a string table. */ 51933965Sjdpextern void _bfd_stringtab_free PARAMS ((struct bfd_strtab_hash *)); 52033965Sjdp 52133965Sjdp/* Get the size of a string table. */ 52233965Sjdpextern bfd_size_type _bfd_stringtab_size PARAMS ((struct bfd_strtab_hash *)); 52333965Sjdp 52433965Sjdp/* Add a string to a string table. */ 52533965Sjdpextern bfd_size_type _bfd_stringtab_add 52633965Sjdp PARAMS ((struct bfd_strtab_hash *, const char *, boolean hash, 52733965Sjdp boolean copy)); 52833965Sjdp 52933965Sjdp/* Write out a string table. */ 53033965Sjdpextern boolean _bfd_stringtab_emit PARAMS ((bfd *, struct bfd_strtab_hash *)); 53160484Sobrien 53260484Sobrien/* Check that endianness of input and output file match. */ 53360484Sobrienextern boolean _bfd_generic_verify_endian_match PARAMS ((bfd *, bfd *)); 53433965Sjdp 53533965Sjdp/* Macros to tell if bfds are read or write enabled. 53633965Sjdp 53733965Sjdp Note that bfds open for read may be scribbled into if the fd passed 53833965Sjdp to bfd_fdopenr is actually open both for read and write 53933965Sjdp simultaneously. However an output bfd will never be open for 54033965Sjdp read. Therefore sometimes you want to check bfd_read_p or 54133965Sjdp !bfd_read_p, and only sometimes bfd_write_p. 54233965Sjdp*/ 54333965Sjdp 54433965Sjdp#define bfd_read_p(abfd) ((abfd)->direction == read_direction || (abfd)->direction == both_direction) 54533965Sjdp#define bfd_write_p(abfd) ((abfd)->direction == write_direction || (abfd)->direction == both_direction) 54633965Sjdp 54733965Sjdpvoid bfd_assert PARAMS ((const char*,int)); 54833965Sjdp 54933965Sjdp#define BFD_ASSERT(x) \ 55033965Sjdp{ if (!(x)) bfd_assert(__FILE__,__LINE__); } 55133965Sjdp 55233965Sjdp#define BFD_FAIL() \ 55333965Sjdp{ bfd_assert(__FILE__,__LINE__); } 55433965Sjdp 55560484Sobrienextern void _bfd_abort PARAMS ((const char *, int, const char *)) 55660484Sobrien ATTRIBUTE_NORETURN; 55760484Sobrien 55860484Sobrien/* if gcc >= 2.6, we can give a function name, too */ 55960484Sobrien#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6) 56060484Sobrien#define __PRETTY_FUNCTION__ ((char *) NULL) 56160484Sobrien#endif 56260484Sobrien 56360484Sobrien#undef abort 56460484Sobrien#define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__) 56560484Sobrien 56633965SjdpFILE * bfd_cache_lookup_worker PARAMS ((bfd *)); 56733965Sjdp 56833965Sjdpextern bfd *bfd_last_cache; 56933965Sjdp 57033965Sjdp/* List of supported target vectors, and the default vector (if 57133965Sjdp bfd_default_vector[0] is NULL, there is no default). */ 57278828Sobrienextern const bfd_target * const *bfd_target_vector; 57333965Sjdpextern const bfd_target *bfd_default_vector[]; 57433965Sjdp 57533965Sjdp/* Functions shared by the ECOFF and MIPS ELF backends, which have no 57633965Sjdp other common header files. */ 57733965Sjdp 57833965Sjdp#if defined(__STDC__) || defined(ALMOST_STDC) 57933965Sjdpstruct ecoff_find_line; 58033965Sjdp#endif 58133965Sjdp 58233965Sjdpextern boolean _bfd_ecoff_locate_line 58333965Sjdp PARAMS ((bfd *, asection *, bfd_vma, struct ecoff_debug_info * const, 58433965Sjdp const struct ecoff_debug_swap * const, struct ecoff_find_line *, 58533965Sjdp const char **, const char **, unsigned int *)); 58633965Sjdpextern boolean _bfd_ecoff_get_accumulated_pdr PARAMS ((PTR, bfd_byte *)); 58733965Sjdpextern boolean _bfd_ecoff_get_accumulated_sym PARAMS ((PTR, bfd_byte *)); 58833965Sjdpextern boolean _bfd_ecoff_get_accumulated_ss PARAMS ((PTR, bfd_byte *)); 58933965Sjdp 59033965Sjdpextern bfd_vma _bfd_get_gp_value PARAMS ((bfd *)); 59133965Sjdpextern void _bfd_set_gp_value PARAMS ((bfd *, bfd_vma)); 59233965Sjdp 59333965Sjdp/* Function shared by the COFF and ELF SH backends, which have no 59433965Sjdp other common header files. */ 59533965Sjdp 59633965Sjdpextern boolean _bfd_sh_align_load_span 59733965Sjdp PARAMS ((bfd *, asection *, bfd_byte *, 59833965Sjdp boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma), 59933965Sjdp PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, boolean *)); 60033965Sjdp 601104834Sobrien/* Extracted from init.c. */ 602104834Sobrien/* Extracted from libbfd.c. */ 60394536Sobrienboolean 60489857Sobrienbfd_write_bigendian_4byte_int PARAMS ((bfd *, unsigned int)); 60533965Sjdp 60677298Sobrienunsigned int 60733965Sjdpbfd_log2 PARAMS ((bfd_vma x)); 60833965Sjdp 609104834Sobrien/* Extracted from cache.c. */ 61033965Sjdp#define BFD_CACHE_MAX_OPEN 10 61133965Sjdpextern bfd *bfd_last_cache; 61233965Sjdp 61333965Sjdp#define bfd_cache_lookup(x) \ 61433965Sjdp ((x)==bfd_last_cache? \ 61577298Sobrien (FILE*) (bfd_last_cache->iostream): \ 61633965Sjdp bfd_cache_lookup_worker(x)) 61777298Sobrienboolean 61877298Sobrienbfd_cache_init PARAMS ((bfd *abfd)); 61933965Sjdp 62077298Sobrienboolean 62177298Sobrienbfd_cache_close PARAMS ((bfd *abfd)); 62233965Sjdp 62377298SobrienFILE* 62433965Sjdpbfd_open_file PARAMS ((bfd *abfd)); 62533965Sjdp 62633965SjdpFILE * 62733965Sjdpbfd_cache_lookup_worker PARAMS ((bfd *abfd)); 62833965Sjdp 629104834Sobrien/* Extracted from reloc.c. */ 63033965Sjdp#ifdef _BFD_MAKE_TABLE_bfd_reloc_code_real 63133965Sjdp 63233965Sjdpstatic const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", 63333965Sjdp 63433965Sjdp "BFD_RELOC_64", 63533965Sjdp "BFD_RELOC_32", 63633965Sjdp "BFD_RELOC_26", 63733965Sjdp "BFD_RELOC_24", 63833965Sjdp "BFD_RELOC_16", 63933965Sjdp "BFD_RELOC_14", 64033965Sjdp "BFD_RELOC_8", 64133965Sjdp "BFD_RELOC_64_PCREL", 64233965Sjdp "BFD_RELOC_32_PCREL", 64333965Sjdp "BFD_RELOC_24_PCREL", 64433965Sjdp "BFD_RELOC_16_PCREL", 64533965Sjdp "BFD_RELOC_12_PCREL", 64633965Sjdp "BFD_RELOC_8_PCREL", 64733965Sjdp "BFD_RELOC_32_GOT_PCREL", 64833965Sjdp "BFD_RELOC_16_GOT_PCREL", 64933965Sjdp "BFD_RELOC_8_GOT_PCREL", 65033965Sjdp "BFD_RELOC_32_GOTOFF", 65133965Sjdp "BFD_RELOC_16_GOTOFF", 65233965Sjdp "BFD_RELOC_LO16_GOTOFF", 65333965Sjdp "BFD_RELOC_HI16_GOTOFF", 65433965Sjdp "BFD_RELOC_HI16_S_GOTOFF", 65533965Sjdp "BFD_RELOC_8_GOTOFF", 65689857Sobrien "BFD_RELOC_64_PLT_PCREL", 65733965Sjdp "BFD_RELOC_32_PLT_PCREL", 65833965Sjdp "BFD_RELOC_24_PLT_PCREL", 65933965Sjdp "BFD_RELOC_16_PLT_PCREL", 66033965Sjdp "BFD_RELOC_8_PLT_PCREL", 66189857Sobrien "BFD_RELOC_64_PLTOFF", 66233965Sjdp "BFD_RELOC_32_PLTOFF", 66333965Sjdp "BFD_RELOC_16_PLTOFF", 66433965Sjdp "BFD_RELOC_LO16_PLTOFF", 66533965Sjdp "BFD_RELOC_HI16_PLTOFF", 66633965Sjdp "BFD_RELOC_HI16_S_PLTOFF", 66733965Sjdp "BFD_RELOC_8_PLTOFF", 66833965Sjdp "BFD_RELOC_68K_GLOB_DAT", 66933965Sjdp "BFD_RELOC_68K_JMP_SLOT", 67033965Sjdp "BFD_RELOC_68K_RELATIVE", 67133965Sjdp "BFD_RELOC_32_BASEREL", 67233965Sjdp "BFD_RELOC_16_BASEREL", 67333965Sjdp "BFD_RELOC_LO16_BASEREL", 67433965Sjdp "BFD_RELOC_HI16_BASEREL", 67533965Sjdp "BFD_RELOC_HI16_S_BASEREL", 67633965Sjdp "BFD_RELOC_8_BASEREL", 67733965Sjdp "BFD_RELOC_RVA", 67833965Sjdp "BFD_RELOC_8_FFnn", 67933965Sjdp "BFD_RELOC_32_PCREL_S2", 68033965Sjdp "BFD_RELOC_16_PCREL_S2", 68133965Sjdp "BFD_RELOC_23_PCREL_S2", 68233965Sjdp "BFD_RELOC_HI22", 68333965Sjdp "BFD_RELOC_LO10", 68433965Sjdp "BFD_RELOC_GPREL16", 68533965Sjdp "BFD_RELOC_GPREL32", 68633965Sjdp "BFD_RELOC_I960_CALLJ", 68733965Sjdp "BFD_RELOC_NONE", 68833965Sjdp "BFD_RELOC_SPARC_WDISP22", 68933965Sjdp "BFD_RELOC_SPARC22", 69033965Sjdp "BFD_RELOC_SPARC13", 69133965Sjdp "BFD_RELOC_SPARC_GOT10", 69233965Sjdp "BFD_RELOC_SPARC_GOT13", 69333965Sjdp "BFD_RELOC_SPARC_GOT22", 69433965Sjdp "BFD_RELOC_SPARC_PC10", 69533965Sjdp "BFD_RELOC_SPARC_PC22", 69633965Sjdp "BFD_RELOC_SPARC_WPLT30", 69733965Sjdp "BFD_RELOC_SPARC_COPY", 69833965Sjdp "BFD_RELOC_SPARC_GLOB_DAT", 69933965Sjdp "BFD_RELOC_SPARC_JMP_SLOT", 70033965Sjdp "BFD_RELOC_SPARC_RELATIVE", 70178828Sobrien "BFD_RELOC_SPARC_UA16", 70233965Sjdp "BFD_RELOC_SPARC_UA32", 70378828Sobrien "BFD_RELOC_SPARC_UA64", 70433965Sjdp "BFD_RELOC_SPARC_BASE13", 70533965Sjdp "BFD_RELOC_SPARC_BASE22", 70633965Sjdp "BFD_RELOC_SPARC_10", 70733965Sjdp "BFD_RELOC_SPARC_11", 70833965Sjdp "BFD_RELOC_SPARC_OLO10", 70933965Sjdp "BFD_RELOC_SPARC_HH22", 71033965Sjdp "BFD_RELOC_SPARC_HM10", 71133965Sjdp "BFD_RELOC_SPARC_LM22", 71233965Sjdp "BFD_RELOC_SPARC_PC_HH22", 71333965Sjdp "BFD_RELOC_SPARC_PC_HM10", 71433965Sjdp "BFD_RELOC_SPARC_PC_LM22", 71533965Sjdp "BFD_RELOC_SPARC_WDISP16", 71633965Sjdp "BFD_RELOC_SPARC_WDISP19", 71733965Sjdp "BFD_RELOC_SPARC_7", 71833965Sjdp "BFD_RELOC_SPARC_6", 71933965Sjdp "BFD_RELOC_SPARC_5", 72089857Sobrien "BFD_RELOC_SPARC_PLT32", 72138889Sjdp "BFD_RELOC_SPARC_PLT64", 72238889Sjdp "BFD_RELOC_SPARC_HIX22", 72338889Sjdp "BFD_RELOC_SPARC_LOX10", 72438889Sjdp "BFD_RELOC_SPARC_H44", 72538889Sjdp "BFD_RELOC_SPARC_M44", 72638889Sjdp "BFD_RELOC_SPARC_L44", 72738889Sjdp "BFD_RELOC_SPARC_REGISTER", 72860484Sobrien "BFD_RELOC_SPARC_REV32", 72933965Sjdp "BFD_RELOC_ALPHA_GPDISP_HI16", 73033965Sjdp "BFD_RELOC_ALPHA_GPDISP_LO16", 73133965Sjdp "BFD_RELOC_ALPHA_GPDISP", 73233965Sjdp "BFD_RELOC_ALPHA_LITERAL", 73333965Sjdp "BFD_RELOC_ALPHA_ELF_LITERAL", 73433965Sjdp "BFD_RELOC_ALPHA_LITUSE", 73533965Sjdp "BFD_RELOC_ALPHA_HINT", 73633965Sjdp "BFD_RELOC_ALPHA_LINKAGE", 73733965Sjdp "BFD_RELOC_ALPHA_CODEADDR", 73889857Sobrien "BFD_RELOC_ALPHA_GPREL_HI16", 73989857Sobrien "BFD_RELOC_ALPHA_GPREL_LO16", 74091041Sobrien "BFD_RELOC_ALPHA_BRSGP", 741104834Sobrien "BFD_RELOC_ALPHA_TLSGD", 742104834Sobrien "BFD_RELOC_ALPHA_TLSLDM", 743104834Sobrien "BFD_RELOC_ALPHA_DTPMOD64", 744104834Sobrien "BFD_RELOC_ALPHA_GOTDTPREL16", 745104834Sobrien "BFD_RELOC_ALPHA_DTPREL64", 746104834Sobrien "BFD_RELOC_ALPHA_DTPREL_HI16", 747104834Sobrien "BFD_RELOC_ALPHA_DTPREL_LO16", 748104834Sobrien "BFD_RELOC_ALPHA_DTPREL16", 749104834Sobrien "BFD_RELOC_ALPHA_GOTTPREL16", 750104834Sobrien "BFD_RELOC_ALPHA_TPREL64", 751104834Sobrien "BFD_RELOC_ALPHA_TPREL_HI16", 752104834Sobrien "BFD_RELOC_ALPHA_TPREL_LO16", 753104834Sobrien "BFD_RELOC_ALPHA_TPREL16", 75433965Sjdp "BFD_RELOC_MIPS_JMP", 75533965Sjdp "BFD_RELOC_MIPS16_JMP", 75633965Sjdp "BFD_RELOC_MIPS16_GPREL", 75733965Sjdp "BFD_RELOC_HI16", 75833965Sjdp "BFD_RELOC_HI16_S", 75933965Sjdp "BFD_RELOC_LO16", 76033965Sjdp "BFD_RELOC_PCREL_HI16_S", 76133965Sjdp "BFD_RELOC_PCREL_LO16", 76233965Sjdp "BFD_RELOC_MIPS_LITERAL", 76333965Sjdp "BFD_RELOC_MIPS_GOT16", 76433965Sjdp "BFD_RELOC_MIPS_CALL16", 76533965Sjdp "BFD_RELOC_MIPS_GOT_HI16", 76633965Sjdp "BFD_RELOC_MIPS_GOT_LO16", 76733965Sjdp "BFD_RELOC_MIPS_CALL_HI16", 76833965Sjdp "BFD_RELOC_MIPS_CALL_LO16", 76960484Sobrien "BFD_RELOC_MIPS_SUB", 77060484Sobrien "BFD_RELOC_MIPS_GOT_PAGE", 77160484Sobrien "BFD_RELOC_MIPS_GOT_OFST", 77260484Sobrien "BFD_RELOC_MIPS_GOT_DISP", 77378828Sobrien "BFD_RELOC_MIPS_SHIFT5", 77478828Sobrien "BFD_RELOC_MIPS_SHIFT6", 77578828Sobrien "BFD_RELOC_MIPS_INSERT_A", 77678828Sobrien "BFD_RELOC_MIPS_INSERT_B", 77778828Sobrien "BFD_RELOC_MIPS_DELETE", 77878828Sobrien "BFD_RELOC_MIPS_HIGHEST", 77978828Sobrien "BFD_RELOC_MIPS_HIGHER", 78078828Sobrien "BFD_RELOC_MIPS_SCN_DISP", 78178828Sobrien "BFD_RELOC_MIPS_REL16", 78278828Sobrien "BFD_RELOC_MIPS_RELGOT", 78378828Sobrien "BFD_RELOC_MIPS_JALR", 784104834Sobrien "BFD_RELOC_FRV_LABEL16", 785104834Sobrien "BFD_RELOC_FRV_LABEL24", 786104834Sobrien "BFD_RELOC_FRV_LO16", 787104834Sobrien "BFD_RELOC_FRV_HI16", 788104834Sobrien "BFD_RELOC_FRV_GPREL12", 789104834Sobrien "BFD_RELOC_FRV_GPRELU12", 790104834Sobrien "BFD_RELOC_FRV_GPREL32", 791104834Sobrien "BFD_RELOC_FRV_GPRELHI", 792104834Sobrien "BFD_RELOC_FRV_GPRELLO", 79338889Sjdp 79433965Sjdp "BFD_RELOC_386_GOT32", 79533965Sjdp "BFD_RELOC_386_PLT32", 79633965Sjdp "BFD_RELOC_386_COPY", 79733965Sjdp "BFD_RELOC_386_GLOB_DAT", 79833965Sjdp "BFD_RELOC_386_JUMP_SLOT", 79933965Sjdp "BFD_RELOC_386_RELATIVE", 80033965Sjdp "BFD_RELOC_386_GOTOFF", 80133965Sjdp "BFD_RELOC_386_GOTPC", 802104834Sobrien "BFD_RELOC_386_TLS_TPOFF", 803104834Sobrien "BFD_RELOC_386_TLS_IE", 804104834Sobrien "BFD_RELOC_386_TLS_GOTIE", 805104834Sobrien "BFD_RELOC_386_TLS_LE", 806104834Sobrien "BFD_RELOC_386_TLS_GD", 807104834Sobrien "BFD_RELOC_386_TLS_LDM", 808104834Sobrien "BFD_RELOC_386_TLS_LDO_32", 809104834Sobrien "BFD_RELOC_386_TLS_IE_32", 810104834Sobrien "BFD_RELOC_386_TLS_LE_32", 811104834Sobrien "BFD_RELOC_386_TLS_DTPMOD32", 812104834Sobrien "BFD_RELOC_386_TLS_DTPOFF32", 813104834Sobrien "BFD_RELOC_386_TLS_TPOFF32", 81477298Sobrien "BFD_RELOC_X86_64_GOT32", 81577298Sobrien "BFD_RELOC_X86_64_PLT32", 81677298Sobrien "BFD_RELOC_X86_64_COPY", 81777298Sobrien "BFD_RELOC_X86_64_GLOB_DAT", 81877298Sobrien "BFD_RELOC_X86_64_JUMP_SLOT", 81977298Sobrien "BFD_RELOC_X86_64_RELATIVE", 82077298Sobrien "BFD_RELOC_X86_64_GOTPCREL", 82177298Sobrien "BFD_RELOC_X86_64_32S", 82233965Sjdp "BFD_RELOC_NS32K_IMM_8", 82333965Sjdp "BFD_RELOC_NS32K_IMM_16", 82433965Sjdp "BFD_RELOC_NS32K_IMM_32", 82533965Sjdp "BFD_RELOC_NS32K_IMM_8_PCREL", 82633965Sjdp "BFD_RELOC_NS32K_IMM_16_PCREL", 82733965Sjdp "BFD_RELOC_NS32K_IMM_32_PCREL", 82833965Sjdp "BFD_RELOC_NS32K_DISP_8", 82933965Sjdp "BFD_RELOC_NS32K_DISP_16", 83033965Sjdp "BFD_RELOC_NS32K_DISP_32", 83133965Sjdp "BFD_RELOC_NS32K_DISP_8_PCREL", 83233965Sjdp "BFD_RELOC_NS32K_DISP_16_PCREL", 83333965Sjdp "BFD_RELOC_NS32K_DISP_32_PCREL", 83489857Sobrien "BFD_RELOC_PDP11_DISP_8_PCREL", 83589857Sobrien "BFD_RELOC_PDP11_DISP_6_PCREL", 83660484Sobrien "BFD_RELOC_PJ_CODE_HI16", 83760484Sobrien "BFD_RELOC_PJ_CODE_LO16", 83860484Sobrien "BFD_RELOC_PJ_CODE_DIR16", 83960484Sobrien "BFD_RELOC_PJ_CODE_DIR32", 84060484Sobrien "BFD_RELOC_PJ_CODE_REL16", 84160484Sobrien "BFD_RELOC_PJ_CODE_REL32", 84233965Sjdp "BFD_RELOC_PPC_B26", 84333965Sjdp "BFD_RELOC_PPC_BA26", 84433965Sjdp "BFD_RELOC_PPC_TOC16", 84533965Sjdp "BFD_RELOC_PPC_B16", 84633965Sjdp "BFD_RELOC_PPC_B16_BRTAKEN", 84733965Sjdp "BFD_RELOC_PPC_B16_BRNTAKEN", 84833965Sjdp "BFD_RELOC_PPC_BA16", 84933965Sjdp "BFD_RELOC_PPC_BA16_BRTAKEN", 85033965Sjdp "BFD_RELOC_PPC_BA16_BRNTAKEN", 85133965Sjdp "BFD_RELOC_PPC_COPY", 85233965Sjdp "BFD_RELOC_PPC_GLOB_DAT", 85333965Sjdp "BFD_RELOC_PPC_JMP_SLOT", 85433965Sjdp "BFD_RELOC_PPC_RELATIVE", 85533965Sjdp "BFD_RELOC_PPC_LOCAL24PC", 85633965Sjdp "BFD_RELOC_PPC_EMB_NADDR32", 85733965Sjdp "BFD_RELOC_PPC_EMB_NADDR16", 85833965Sjdp "BFD_RELOC_PPC_EMB_NADDR16_LO", 85933965Sjdp "BFD_RELOC_PPC_EMB_NADDR16_HI", 86033965Sjdp "BFD_RELOC_PPC_EMB_NADDR16_HA", 86133965Sjdp "BFD_RELOC_PPC_EMB_SDAI16", 86233965Sjdp "BFD_RELOC_PPC_EMB_SDA2I16", 86333965Sjdp "BFD_RELOC_PPC_EMB_SDA2REL", 86433965Sjdp "BFD_RELOC_PPC_EMB_SDA21", 86533965Sjdp "BFD_RELOC_PPC_EMB_MRKREF", 86633965Sjdp "BFD_RELOC_PPC_EMB_RELSEC16", 86733965Sjdp "BFD_RELOC_PPC_EMB_RELST_LO", 86833965Sjdp "BFD_RELOC_PPC_EMB_RELST_HI", 86933965Sjdp "BFD_RELOC_PPC_EMB_RELST_HA", 87033965Sjdp "BFD_RELOC_PPC_EMB_BIT_FLD", 87133965Sjdp "BFD_RELOC_PPC_EMB_RELSDA", 87289857Sobrien "BFD_RELOC_PPC64_HIGHER", 87389857Sobrien "BFD_RELOC_PPC64_HIGHER_S", 87489857Sobrien "BFD_RELOC_PPC64_HIGHEST", 87589857Sobrien "BFD_RELOC_PPC64_HIGHEST_S", 87689857Sobrien "BFD_RELOC_PPC64_TOC16_LO", 87789857Sobrien "BFD_RELOC_PPC64_TOC16_HI", 87889857Sobrien "BFD_RELOC_PPC64_TOC16_HA", 87989857Sobrien "BFD_RELOC_PPC64_TOC", 88089857Sobrien "BFD_RELOC_PPC64_PLTGOT16", 88189857Sobrien "BFD_RELOC_PPC64_PLTGOT16_LO", 88289857Sobrien "BFD_RELOC_PPC64_PLTGOT16_HI", 88389857Sobrien "BFD_RELOC_PPC64_PLTGOT16_HA", 88489857Sobrien "BFD_RELOC_PPC64_ADDR16_DS", 88589857Sobrien "BFD_RELOC_PPC64_ADDR16_LO_DS", 88689857Sobrien "BFD_RELOC_PPC64_GOT16_DS", 88789857Sobrien "BFD_RELOC_PPC64_GOT16_LO_DS", 88889857Sobrien "BFD_RELOC_PPC64_PLT16_LO_DS", 88989857Sobrien "BFD_RELOC_PPC64_SECTOFF_DS", 89089857Sobrien "BFD_RELOC_PPC64_SECTOFF_LO_DS", 89189857Sobrien "BFD_RELOC_PPC64_TOC16_DS", 89289857Sobrien "BFD_RELOC_PPC64_TOC16_LO_DS", 89389857Sobrien "BFD_RELOC_PPC64_PLTGOT16_DS", 89489857Sobrien "BFD_RELOC_PPC64_PLTGOT16_LO_DS", 89560484Sobrien "BFD_RELOC_I370_D12", 89633965Sjdp "BFD_RELOC_CTOR", 89733965Sjdp "BFD_RELOC_ARM_PCREL_BRANCH", 89877298Sobrien "BFD_RELOC_ARM_PCREL_BLX", 89977298Sobrien "BFD_RELOC_THUMB_PCREL_BLX", 90033965Sjdp "BFD_RELOC_ARM_IMMEDIATE", 90160484Sobrien "BFD_RELOC_ARM_ADRL_IMMEDIATE", 90233965Sjdp "BFD_RELOC_ARM_OFFSET_IMM", 90333965Sjdp "BFD_RELOC_ARM_SHIFT_IMM", 90433965Sjdp "BFD_RELOC_ARM_SWI", 90533965Sjdp "BFD_RELOC_ARM_MULTI", 90633965Sjdp "BFD_RELOC_ARM_CP_OFF_IMM", 90733965Sjdp "BFD_RELOC_ARM_ADR_IMM", 90833965Sjdp "BFD_RELOC_ARM_LDR_IMM", 90933965Sjdp "BFD_RELOC_ARM_LITERAL", 91033965Sjdp "BFD_RELOC_ARM_IN_POOL", 91133965Sjdp "BFD_RELOC_ARM_OFFSET_IMM8", 91233965Sjdp "BFD_RELOC_ARM_HWLITERAL", 91333965Sjdp "BFD_RELOC_ARM_THUMB_ADD", 91433965Sjdp "BFD_RELOC_ARM_THUMB_IMM", 91533965Sjdp "BFD_RELOC_ARM_THUMB_SHIFT", 91633965Sjdp "BFD_RELOC_ARM_THUMB_OFFSET", 91760484Sobrien "BFD_RELOC_ARM_GOT12", 91860484Sobrien "BFD_RELOC_ARM_GOT32", 91960484Sobrien "BFD_RELOC_ARM_JUMP_SLOT", 92060484Sobrien "BFD_RELOC_ARM_COPY", 92160484Sobrien "BFD_RELOC_ARM_GLOB_DAT", 92260484Sobrien "BFD_RELOC_ARM_PLT32", 92360484Sobrien "BFD_RELOC_ARM_RELATIVE", 92460484Sobrien "BFD_RELOC_ARM_GOTOFF", 92560484Sobrien "BFD_RELOC_ARM_GOTPC", 92633965Sjdp "BFD_RELOC_SH_PCDISP8BY2", 92733965Sjdp "BFD_RELOC_SH_PCDISP12BY2", 92833965Sjdp "BFD_RELOC_SH_IMM4", 92933965Sjdp "BFD_RELOC_SH_IMM4BY2", 93033965Sjdp "BFD_RELOC_SH_IMM4BY4", 93133965Sjdp "BFD_RELOC_SH_IMM8", 93233965Sjdp "BFD_RELOC_SH_IMM8BY2", 93333965Sjdp "BFD_RELOC_SH_IMM8BY4", 93433965Sjdp "BFD_RELOC_SH_PCRELIMM8BY2", 93533965Sjdp "BFD_RELOC_SH_PCRELIMM8BY4", 93633965Sjdp "BFD_RELOC_SH_SWITCH16", 93733965Sjdp "BFD_RELOC_SH_SWITCH32", 93833965Sjdp "BFD_RELOC_SH_USES", 93933965Sjdp "BFD_RELOC_SH_COUNT", 94033965Sjdp "BFD_RELOC_SH_ALIGN", 94133965Sjdp "BFD_RELOC_SH_CODE", 94233965Sjdp "BFD_RELOC_SH_DATA", 94333965Sjdp "BFD_RELOC_SH_LABEL", 94477298Sobrien "BFD_RELOC_SH_LOOP_START", 94577298Sobrien "BFD_RELOC_SH_LOOP_END", 94677298Sobrien "BFD_RELOC_SH_COPY", 94777298Sobrien "BFD_RELOC_SH_GLOB_DAT", 94877298Sobrien "BFD_RELOC_SH_JMP_SLOT", 94977298Sobrien "BFD_RELOC_SH_RELATIVE", 95077298Sobrien "BFD_RELOC_SH_GOTPC", 95199461Sobrien "BFD_RELOC_SH_GOT_LOW16", 95299461Sobrien "BFD_RELOC_SH_GOT_MEDLOW16", 95399461Sobrien "BFD_RELOC_SH_GOT_MEDHI16", 95499461Sobrien "BFD_RELOC_SH_GOT_HI16", 95599461Sobrien "BFD_RELOC_SH_GOTPLT_LOW16", 95699461Sobrien "BFD_RELOC_SH_GOTPLT_MEDLOW16", 95799461Sobrien "BFD_RELOC_SH_GOTPLT_MEDHI16", 95899461Sobrien "BFD_RELOC_SH_GOTPLT_HI16", 95999461Sobrien "BFD_RELOC_SH_PLT_LOW16", 96099461Sobrien "BFD_RELOC_SH_PLT_MEDLOW16", 96199461Sobrien "BFD_RELOC_SH_PLT_MEDHI16", 96299461Sobrien "BFD_RELOC_SH_PLT_HI16", 96399461Sobrien "BFD_RELOC_SH_GOTOFF_LOW16", 96499461Sobrien "BFD_RELOC_SH_GOTOFF_MEDLOW16", 96599461Sobrien "BFD_RELOC_SH_GOTOFF_MEDHI16", 96699461Sobrien "BFD_RELOC_SH_GOTOFF_HI16", 96799461Sobrien "BFD_RELOC_SH_GOTPC_LOW16", 96899461Sobrien "BFD_RELOC_SH_GOTPC_MEDLOW16", 96999461Sobrien "BFD_RELOC_SH_GOTPC_MEDHI16", 97099461Sobrien "BFD_RELOC_SH_GOTPC_HI16", 97199461Sobrien "BFD_RELOC_SH_COPY64", 97299461Sobrien "BFD_RELOC_SH_GLOB_DAT64", 97399461Sobrien "BFD_RELOC_SH_JMP_SLOT64", 97499461Sobrien "BFD_RELOC_SH_RELATIVE64", 97599461Sobrien "BFD_RELOC_SH_GOT10BY4", 97699461Sobrien "BFD_RELOC_SH_GOT10BY8", 97799461Sobrien "BFD_RELOC_SH_GOTPLT10BY4", 97899461Sobrien "BFD_RELOC_SH_GOTPLT10BY8", 97999461Sobrien "BFD_RELOC_SH_GOTPLT32", 98099461Sobrien "BFD_RELOC_SH_SHMEDIA_CODE", 98199461Sobrien "BFD_RELOC_SH_IMMU5", 98299461Sobrien "BFD_RELOC_SH_IMMS6", 98399461Sobrien "BFD_RELOC_SH_IMMS6BY32", 98499461Sobrien "BFD_RELOC_SH_IMMU6", 98599461Sobrien "BFD_RELOC_SH_IMMS10", 98699461Sobrien "BFD_RELOC_SH_IMMS10BY2", 98799461Sobrien "BFD_RELOC_SH_IMMS10BY4", 98899461Sobrien "BFD_RELOC_SH_IMMS10BY8", 98999461Sobrien "BFD_RELOC_SH_IMMS16", 99099461Sobrien "BFD_RELOC_SH_IMMU16", 99199461Sobrien "BFD_RELOC_SH_IMM_LOW16", 99299461Sobrien "BFD_RELOC_SH_IMM_LOW16_PCREL", 99399461Sobrien "BFD_RELOC_SH_IMM_MEDLOW16", 99499461Sobrien "BFD_RELOC_SH_IMM_MEDLOW16_PCREL", 99599461Sobrien "BFD_RELOC_SH_IMM_MEDHI16", 99699461Sobrien "BFD_RELOC_SH_IMM_MEDHI16_PCREL", 99799461Sobrien "BFD_RELOC_SH_IMM_HI16", 99899461Sobrien "BFD_RELOC_SH_IMM_HI16_PCREL", 99999461Sobrien "BFD_RELOC_SH_PT_16", 100038889Sjdp "BFD_RELOC_THUMB_PCREL_BRANCH9", 100138889Sjdp "BFD_RELOC_THUMB_PCREL_BRANCH12", 100238889Sjdp "BFD_RELOC_THUMB_PCREL_BRANCH23", 100338889Sjdp "BFD_RELOC_ARC_B22_PCREL", 100438889Sjdp "BFD_RELOC_ARC_B26", 100533965Sjdp "BFD_RELOC_D10V_10_PCREL_R", 100633965Sjdp "BFD_RELOC_D10V_10_PCREL_L", 100733965Sjdp "BFD_RELOC_D10V_18", 100833965Sjdp "BFD_RELOC_D10V_18_PCREL", 100960484Sobrien "BFD_RELOC_D30V_6", 101060484Sobrien "BFD_RELOC_D30V_9_PCREL", 101160484Sobrien "BFD_RELOC_D30V_9_PCREL_R", 101260484Sobrien "BFD_RELOC_D30V_15", 101360484Sobrien "BFD_RELOC_D30V_15_PCREL", 101460484Sobrien "BFD_RELOC_D30V_15_PCREL_R", 101560484Sobrien "BFD_RELOC_D30V_21", 101660484Sobrien "BFD_RELOC_D30V_21_PCREL", 101760484Sobrien "BFD_RELOC_D30V_21_PCREL_R", 101860484Sobrien "BFD_RELOC_D30V_32", 101960484Sobrien "BFD_RELOC_D30V_32_PCREL", 1020104834Sobrien "BFD_RELOC_DLX_HI16_S", 1021104834Sobrien "BFD_RELOC_DLX_LO16", 1022104834Sobrien "BFD_RELOC_DLX_JMP26", 102333965Sjdp "BFD_RELOC_M32R_24", 102433965Sjdp "BFD_RELOC_M32R_10_PCREL", 102533965Sjdp "BFD_RELOC_M32R_18_PCREL", 102633965Sjdp "BFD_RELOC_M32R_26_PCREL", 102733965Sjdp "BFD_RELOC_M32R_HI16_ULO", 102833965Sjdp "BFD_RELOC_M32R_HI16_SLO", 102933965Sjdp "BFD_RELOC_M32R_LO16", 103033965Sjdp "BFD_RELOC_M32R_SDA16", 103138889Sjdp "BFD_RELOC_V850_9_PCREL", 103238889Sjdp "BFD_RELOC_V850_22_PCREL", 103338889Sjdp "BFD_RELOC_V850_SDA_16_16_OFFSET", 103438889Sjdp "BFD_RELOC_V850_SDA_15_16_OFFSET", 103538889Sjdp "BFD_RELOC_V850_ZDA_16_16_OFFSET", 103638889Sjdp "BFD_RELOC_V850_ZDA_15_16_OFFSET", 103738889Sjdp "BFD_RELOC_V850_TDA_6_8_OFFSET", 103838889Sjdp "BFD_RELOC_V850_TDA_7_8_OFFSET", 103938889Sjdp "BFD_RELOC_V850_TDA_7_7_OFFSET", 104038889Sjdp "BFD_RELOC_V850_TDA_16_16_OFFSET", 104160484Sobrien "BFD_RELOC_V850_TDA_4_5_OFFSET", 104260484Sobrien "BFD_RELOC_V850_TDA_4_4_OFFSET", 104360484Sobrien "BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET", 104460484Sobrien "BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET", 104560484Sobrien "BFD_RELOC_V850_CALLT_6_7_OFFSET", 104660484Sobrien "BFD_RELOC_V850_CALLT_16_16_OFFSET", 104733965Sjdp 104833965Sjdp "BFD_RELOC_MN10300_32_PCREL", 104933965Sjdp "BFD_RELOC_MN10300_16_PCREL", 105038889Sjdp "BFD_RELOC_TIC30_LDP", 105177298Sobrien "BFD_RELOC_TIC54X_PARTLS7", 105277298Sobrien "BFD_RELOC_TIC54X_PARTMS9", 105377298Sobrien "BFD_RELOC_TIC54X_23", 105477298Sobrien "BFD_RELOC_TIC54X_16_OF_23", 105577298Sobrien "BFD_RELOC_TIC54X_MS7_OF_23", 105660484Sobrien "BFD_RELOC_FR30_48", 105760484Sobrien "BFD_RELOC_FR30_20", 105860484Sobrien "BFD_RELOC_FR30_6_IN_4", 105960484Sobrien "BFD_RELOC_FR30_8_IN_8", 106060484Sobrien "BFD_RELOC_FR30_9_IN_8", 106160484Sobrien "BFD_RELOC_FR30_10_IN_8", 106260484Sobrien "BFD_RELOC_FR30_9_PCREL", 106360484Sobrien "BFD_RELOC_FR30_12_PCREL", 106460484Sobrien "BFD_RELOC_MCORE_PCREL_IMM8BY4", 106560484Sobrien "BFD_RELOC_MCORE_PCREL_IMM11BY2", 106660484Sobrien "BFD_RELOC_MCORE_PCREL_IMM4BY2", 106760484Sobrien "BFD_RELOC_MCORE_PCREL_32", 106860484Sobrien "BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2", 106960484Sobrien "BFD_RELOC_MCORE_RVA", 107089857Sobrien "BFD_RELOC_MMIX_GETA", 107189857Sobrien "BFD_RELOC_MMIX_GETA_1", 107289857Sobrien "BFD_RELOC_MMIX_GETA_2", 107389857Sobrien "BFD_RELOC_MMIX_GETA_3", 107489857Sobrien "BFD_RELOC_MMIX_CBRANCH", 107589857Sobrien "BFD_RELOC_MMIX_CBRANCH_J", 107689857Sobrien "BFD_RELOC_MMIX_CBRANCH_1", 107789857Sobrien "BFD_RELOC_MMIX_CBRANCH_2", 107889857Sobrien "BFD_RELOC_MMIX_CBRANCH_3", 107989857Sobrien "BFD_RELOC_MMIX_PUSHJ", 108089857Sobrien "BFD_RELOC_MMIX_PUSHJ_1", 108189857Sobrien "BFD_RELOC_MMIX_PUSHJ_2", 108289857Sobrien "BFD_RELOC_MMIX_PUSHJ_3", 108389857Sobrien "BFD_RELOC_MMIX_JMP", 108489857Sobrien "BFD_RELOC_MMIX_JMP_1", 108589857Sobrien "BFD_RELOC_MMIX_JMP_2", 108689857Sobrien "BFD_RELOC_MMIX_JMP_3", 108789857Sobrien "BFD_RELOC_MMIX_ADDR19", 108889857Sobrien "BFD_RELOC_MMIX_ADDR27", 108989857Sobrien "BFD_RELOC_MMIX_REG_OR_BYTE", 109089857Sobrien "BFD_RELOC_MMIX_REG", 109189857Sobrien "BFD_RELOC_MMIX_BASE_PLUS_OFFSET", 109289857Sobrien "BFD_RELOC_MMIX_LOCAL", 109360484Sobrien "BFD_RELOC_AVR_7_PCREL", 109460484Sobrien "BFD_RELOC_AVR_13_PCREL", 109560484Sobrien "BFD_RELOC_AVR_16_PM", 109660484Sobrien "BFD_RELOC_AVR_LO8_LDI", 109760484Sobrien "BFD_RELOC_AVR_HI8_LDI", 109860484Sobrien "BFD_RELOC_AVR_HH8_LDI", 109960484Sobrien "BFD_RELOC_AVR_LO8_LDI_NEG", 110060484Sobrien "BFD_RELOC_AVR_HI8_LDI_NEG", 110160484Sobrien "BFD_RELOC_AVR_HH8_LDI_NEG", 110260484Sobrien "BFD_RELOC_AVR_LO8_LDI_PM", 110360484Sobrien "BFD_RELOC_AVR_HI8_LDI_PM", 110460484Sobrien "BFD_RELOC_AVR_HH8_LDI_PM", 110560484Sobrien "BFD_RELOC_AVR_LO8_LDI_PM_NEG", 110660484Sobrien "BFD_RELOC_AVR_HI8_LDI_PM_NEG", 110760484Sobrien "BFD_RELOC_AVR_HH8_LDI_PM_NEG", 110860484Sobrien "BFD_RELOC_AVR_CALL", 110989857Sobrien "BFD_RELOC_390_12", 111089857Sobrien "BFD_RELOC_390_GOT12", 111189857Sobrien "BFD_RELOC_390_PLT32", 111289857Sobrien "BFD_RELOC_390_COPY", 111389857Sobrien "BFD_RELOC_390_GLOB_DAT", 111489857Sobrien "BFD_RELOC_390_JMP_SLOT", 111589857Sobrien "BFD_RELOC_390_RELATIVE", 111689857Sobrien "BFD_RELOC_390_GOTPC", 111789857Sobrien "BFD_RELOC_390_GOT16", 111889857Sobrien "BFD_RELOC_390_PC16DBL", 111989857Sobrien "BFD_RELOC_390_PLT16DBL", 112089857Sobrien "BFD_RELOC_390_PC32DBL", 112189857Sobrien "BFD_RELOC_390_PLT32DBL", 112289857Sobrien "BFD_RELOC_390_GOTPCDBL", 112389857Sobrien "BFD_RELOC_390_GOT64", 112489857Sobrien "BFD_RELOC_390_PLT64", 112589857Sobrien "BFD_RELOC_390_GOTENT", 112660484Sobrien "BFD_RELOC_VTABLE_INHERIT", 112760484Sobrien "BFD_RELOC_VTABLE_ENTRY", 112877298Sobrien "BFD_RELOC_IA64_IMM14", 112977298Sobrien "BFD_RELOC_IA64_IMM22", 113077298Sobrien "BFD_RELOC_IA64_IMM64", 113177298Sobrien "BFD_RELOC_IA64_DIR32MSB", 113277298Sobrien "BFD_RELOC_IA64_DIR32LSB", 113377298Sobrien "BFD_RELOC_IA64_DIR64MSB", 113477298Sobrien "BFD_RELOC_IA64_DIR64LSB", 113577298Sobrien "BFD_RELOC_IA64_GPREL22", 113677298Sobrien "BFD_RELOC_IA64_GPREL64I", 113777298Sobrien "BFD_RELOC_IA64_GPREL32MSB", 113877298Sobrien "BFD_RELOC_IA64_GPREL32LSB", 113977298Sobrien "BFD_RELOC_IA64_GPREL64MSB", 114077298Sobrien "BFD_RELOC_IA64_GPREL64LSB", 114177298Sobrien "BFD_RELOC_IA64_LTOFF22", 114277298Sobrien "BFD_RELOC_IA64_LTOFF64I", 114377298Sobrien "BFD_RELOC_IA64_PLTOFF22", 114477298Sobrien "BFD_RELOC_IA64_PLTOFF64I", 114577298Sobrien "BFD_RELOC_IA64_PLTOFF64MSB", 114677298Sobrien "BFD_RELOC_IA64_PLTOFF64LSB", 114777298Sobrien "BFD_RELOC_IA64_FPTR64I", 114877298Sobrien "BFD_RELOC_IA64_FPTR32MSB", 114977298Sobrien "BFD_RELOC_IA64_FPTR32LSB", 115077298Sobrien "BFD_RELOC_IA64_FPTR64MSB", 115177298Sobrien "BFD_RELOC_IA64_FPTR64LSB", 115277298Sobrien "BFD_RELOC_IA64_PCREL21B", 115377298Sobrien "BFD_RELOC_IA64_PCREL21BI", 115477298Sobrien "BFD_RELOC_IA64_PCREL21M", 115577298Sobrien "BFD_RELOC_IA64_PCREL21F", 115677298Sobrien "BFD_RELOC_IA64_PCREL22", 115777298Sobrien "BFD_RELOC_IA64_PCREL60B", 115877298Sobrien "BFD_RELOC_IA64_PCREL64I", 115977298Sobrien "BFD_RELOC_IA64_PCREL32MSB", 116077298Sobrien "BFD_RELOC_IA64_PCREL32LSB", 116177298Sobrien "BFD_RELOC_IA64_PCREL64MSB", 116277298Sobrien "BFD_RELOC_IA64_PCREL64LSB", 116377298Sobrien "BFD_RELOC_IA64_LTOFF_FPTR22", 116477298Sobrien "BFD_RELOC_IA64_LTOFF_FPTR64I", 116589857Sobrien "BFD_RELOC_IA64_LTOFF_FPTR32MSB", 116689857Sobrien "BFD_RELOC_IA64_LTOFF_FPTR32LSB", 116777298Sobrien "BFD_RELOC_IA64_LTOFF_FPTR64MSB", 116877298Sobrien "BFD_RELOC_IA64_LTOFF_FPTR64LSB", 116977298Sobrien "BFD_RELOC_IA64_SEGREL32MSB", 117077298Sobrien "BFD_RELOC_IA64_SEGREL32LSB", 117177298Sobrien "BFD_RELOC_IA64_SEGREL64MSB", 117277298Sobrien "BFD_RELOC_IA64_SEGREL64LSB", 117377298Sobrien "BFD_RELOC_IA64_SECREL32MSB", 117477298Sobrien "BFD_RELOC_IA64_SECREL32LSB", 117577298Sobrien "BFD_RELOC_IA64_SECREL64MSB", 117677298Sobrien "BFD_RELOC_IA64_SECREL64LSB", 117777298Sobrien "BFD_RELOC_IA64_REL32MSB", 117877298Sobrien "BFD_RELOC_IA64_REL32LSB", 117977298Sobrien "BFD_RELOC_IA64_REL64MSB", 118077298Sobrien "BFD_RELOC_IA64_REL64LSB", 118177298Sobrien "BFD_RELOC_IA64_LTV32MSB", 118277298Sobrien "BFD_RELOC_IA64_LTV32LSB", 118377298Sobrien "BFD_RELOC_IA64_LTV64MSB", 118477298Sobrien "BFD_RELOC_IA64_LTV64LSB", 118577298Sobrien "BFD_RELOC_IA64_IPLTMSB", 118677298Sobrien "BFD_RELOC_IA64_IPLTLSB", 118777298Sobrien "BFD_RELOC_IA64_COPY", 1188104834Sobrien "BFD_RELOC_IA64_LTOFF22X", 1189104834Sobrien "BFD_RELOC_IA64_LDXMOV", 1190104834Sobrien "BFD_RELOC_IA64_TPREL14", 119177298Sobrien "BFD_RELOC_IA64_TPREL22", 1192104834Sobrien "BFD_RELOC_IA64_TPREL64I", 119377298Sobrien "BFD_RELOC_IA64_TPREL64MSB", 119477298Sobrien "BFD_RELOC_IA64_TPREL64LSB", 1195104834Sobrien "BFD_RELOC_IA64_LTOFF_TPREL22", 1196104834Sobrien "BFD_RELOC_IA64_DTPMOD64MSB", 1197104834Sobrien "BFD_RELOC_IA64_DTPMOD64LSB", 1198104834Sobrien "BFD_RELOC_IA64_LTOFF_DTPMOD22", 1199104834Sobrien "BFD_RELOC_IA64_DTPREL14", 1200104834Sobrien "BFD_RELOC_IA64_DTPREL22", 1201104834Sobrien "BFD_RELOC_IA64_DTPREL64I", 1202104834Sobrien "BFD_RELOC_IA64_DTPREL32MSB", 1203104834Sobrien "BFD_RELOC_IA64_DTPREL32LSB", 1204104834Sobrien "BFD_RELOC_IA64_DTPREL64MSB", 1205104834Sobrien "BFD_RELOC_IA64_DTPREL64LSB", 1206104834Sobrien "BFD_RELOC_IA64_LTOFF_DTPREL22", 120777298Sobrien "BFD_RELOC_M68HC11_HI8", 120877298Sobrien "BFD_RELOC_M68HC11_LO8", 120977298Sobrien "BFD_RELOC_M68HC11_3B", 121077298Sobrien "BFD_RELOC_CRIS_BDISP8", 121177298Sobrien "BFD_RELOC_CRIS_UNSIGNED_5", 121277298Sobrien "BFD_RELOC_CRIS_SIGNED_6", 121377298Sobrien "BFD_RELOC_CRIS_UNSIGNED_6", 121477298Sobrien "BFD_RELOC_CRIS_UNSIGNED_4", 121589857Sobrien "BFD_RELOC_CRIS_COPY", 121689857Sobrien "BFD_RELOC_CRIS_GLOB_DAT", 121789857Sobrien "BFD_RELOC_CRIS_JUMP_SLOT", 121889857Sobrien "BFD_RELOC_CRIS_RELATIVE", 121989857Sobrien "BFD_RELOC_CRIS_32_GOT", 122089857Sobrien "BFD_RELOC_CRIS_16_GOT", 122189857Sobrien "BFD_RELOC_CRIS_32_GOTPLT", 122289857Sobrien "BFD_RELOC_CRIS_16_GOTPLT", 122389857Sobrien "BFD_RELOC_CRIS_32_GOTREL", 122489857Sobrien "BFD_RELOC_CRIS_32_PLT_GOTREL", 122589857Sobrien "BFD_RELOC_CRIS_32_PLT_PCREL", 122677298Sobrien "BFD_RELOC_860_COPY", 122777298Sobrien "BFD_RELOC_860_GLOB_DAT", 122877298Sobrien "BFD_RELOC_860_JUMP_SLOT", 122977298Sobrien "BFD_RELOC_860_RELATIVE", 123077298Sobrien "BFD_RELOC_860_PC26", 123177298Sobrien "BFD_RELOC_860_PLT26", 123277298Sobrien "BFD_RELOC_860_PC16", 123377298Sobrien "BFD_RELOC_860_LOW0", 123477298Sobrien "BFD_RELOC_860_SPLIT0", 123577298Sobrien "BFD_RELOC_860_LOW1", 123677298Sobrien "BFD_RELOC_860_SPLIT1", 123777298Sobrien "BFD_RELOC_860_LOW2", 123877298Sobrien "BFD_RELOC_860_SPLIT2", 123977298Sobrien "BFD_RELOC_860_LOW3", 124077298Sobrien "BFD_RELOC_860_LOGOT0", 124177298Sobrien "BFD_RELOC_860_SPGOT0", 124277298Sobrien "BFD_RELOC_860_LOGOT1", 124377298Sobrien "BFD_RELOC_860_SPGOT1", 124477298Sobrien "BFD_RELOC_860_LOGOTOFF0", 124577298Sobrien "BFD_RELOC_860_SPGOTOFF0", 124677298Sobrien "BFD_RELOC_860_LOGOTOFF1", 124777298Sobrien "BFD_RELOC_860_SPGOTOFF1", 124877298Sobrien "BFD_RELOC_860_LOGOTOFF2", 124977298Sobrien "BFD_RELOC_860_LOGOTOFF3", 125077298Sobrien "BFD_RELOC_860_LOPC", 125177298Sobrien "BFD_RELOC_860_HIGHADJ", 125277298Sobrien "BFD_RELOC_860_HAGOT", 125377298Sobrien "BFD_RELOC_860_HAGOTOFF", 125477298Sobrien "BFD_RELOC_860_HAPC", 125577298Sobrien "BFD_RELOC_860_HIGH", 125677298Sobrien "BFD_RELOC_860_HIGOT", 125777298Sobrien "BFD_RELOC_860_HIGOTOFF", 125889857Sobrien "BFD_RELOC_OPENRISC_ABS_26", 125989857Sobrien "BFD_RELOC_OPENRISC_REL_26", 126089857Sobrien "BFD_RELOC_H8_DIR16A8", 126189857Sobrien "BFD_RELOC_H8_DIR16R8", 126289857Sobrien "BFD_RELOC_H8_DIR24A8", 126389857Sobrien "BFD_RELOC_H8_DIR24R8", 126489857Sobrien "BFD_RELOC_H8_DIR32A16", 126589857Sobrien "BFD_RELOC_XSTORMY16_REL_12", 126689857Sobrien "BFD_RELOC_XSTORMY16_24", 126789857Sobrien "BFD_RELOC_XSTORMY16_FPTR16", 1268104834Sobrien "BFD_RELOC_VAX_GLOB_DAT", 1269104834Sobrien "BFD_RELOC_VAX_JMP_SLOT", 1270104834Sobrien "BFD_RELOC_VAX_RELATIVE", 127133965Sjdp "@@overflow: BFD_RELOC_UNUSED@@", 127233965Sjdp}; 127333965Sjdp#endif 127433965Sjdp 127533965Sjdpreloc_howto_type * 127677298Sobrienbfd_default_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); 127733965Sjdp 127877298Sobrienboolean 127977298Sobrienbfd_generic_relax_section PARAMS ((bfd *abfd, 128033965Sjdp asection *section, 128133965Sjdp struct bfd_link_info *, 128233965Sjdp boolean *)); 128333965Sjdp 128477298Sobrienboolean 128577298Sobrienbfd_generic_gc_sections PARAMS ((bfd *, struct bfd_link_info *)); 128660484Sobrien 128789857Sobrienboolean 128889857Sobrienbfd_generic_merge_sections PARAMS ((bfd *, struct bfd_link_info *)); 128989857Sobrien 129033965Sjdpbfd_byte * 129177298Sobrienbfd_generic_get_relocated_section_contents PARAMS ((bfd *abfd, 129233965Sjdp struct bfd_link_info *link_info, 129333965Sjdp struct bfd_link_order *link_order, 129433965Sjdp bfd_byte *data, 129533965Sjdp boolean relocateable, 129633965Sjdp asymbol **symbols)); 129733965Sjdp 1298104834Sobrien/* Extracted from archures.c. */ 129933965Sjdpextern const bfd_arch_info_type bfd_default_arch_struct; 130077298Sobrienboolean 130133965Sjdpbfd_default_set_arch_mach PARAMS ((bfd *abfd, 130233965Sjdp enum bfd_architecture arch, 130333965Sjdp unsigned long mach)); 130433965Sjdp 130533965Sjdpconst bfd_arch_info_type * 130677298Sobrienbfd_default_compatible PARAMS ((const bfd_arch_info_type *a, 130733965Sjdp const bfd_arch_info_type *b)); 130833965Sjdp 130977298Sobrienboolean 131033965Sjdpbfd_default_scan PARAMS ((const struct bfd_arch_info *info, const char *string)); 131133965Sjdp 1312104834Sobrien/* Extracted from elf.c. */ 131333965Sjdpstruct elf_internal_shdr * 131477298Sobrienbfd_elf_find_section PARAMS ((bfd *abfd, char *name)); 131533965Sjdp 1316