Home | History | Annotate | Download | only in info
      1 This is bfd.info, produced by makeinfo version 4.8 from bfd.texinfo.
      2 
      3 INFO-DIR-SECTION Software development
      4 START-INFO-DIR-ENTRY
      5 * Bfd: (bfd).                   The Binary File Descriptor library.
      6 END-INFO-DIR-ENTRY
      7 
      8    This file documents the BFD library.
      9 
     10    Copyright (C) 1991-2014 Free Software Foundation, Inc.
     11 
     12    Permission is granted to copy, distribute and/or modify this document
     13 under the terms of the GNU Free Documentation License, Version 1.3 or
     14 any later version published by the Free Software Foundation; with the
     15 Invariant Sections being "GNU General Public License" and "Funding Free
     16 Software", the Front-Cover texts being (a) (see below), and with the
     17 Back-Cover Texts being (b) (see below).  A copy of the license is
     18 included in the section entitled "GNU Free Documentation License".
     19 
     20    (a) The FSF's Front-Cover Text is:
     21 
     22    A GNU Manual
     23 
     24    (b) The FSF's Back-Cover Text is:
     25 
     26    You have freedom to copy and modify this GNU Manual, like GNU
     27 software.  Copies published by the Free Software Foundation raise
     28 funds for GNU development.
     29 
     30 
     31 File: bfd.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
     32 
     33    This file documents the binary file descriptor library libbfd.
     34 
     35 * Menu:
     36 
     37 * Overview::			Overview of BFD
     38 * BFD front end::		BFD front end
     39 * BFD back ends::		BFD back ends
     40 * GNU Free Documentation License::  GNU Free Documentation License
     41 * BFD Index::		BFD Index
     42 
     43 
     44 File: bfd.info,  Node: Overview,  Next: BFD front end,  Prev: Top,  Up: Top
     45 
     46 1 Introduction
     47 **************
     48 
     49 BFD is a package which allows applications to use the same routines to
     50 operate on object files whatever the object file format.  A new object
     51 file format can be supported simply by creating a new BFD back end and
     52 adding it to the library.
     53 
     54    BFD is split into two parts: the front end, and the back ends (one
     55 for each object file format).
     56    * The front end of BFD provides the interface to the user. It manages
     57      memory and various canonical data structures. The front end also
     58      decides which back end to use and when to call back end routines.
     59 
     60    * The back ends provide BFD its view of the real world. Each back
     61      end provides a set of calls which the BFD front end can use to
     62      maintain its canonical form. The back ends also may keep around
     63      information for their own use, for greater efficiency.
     64 
     65 * Menu:
     66 
     67 * History::			History
     68 * How It Works::		How It Works
     69 * What BFD Version 2 Can Do::	What BFD Version 2 Can Do
     70 
     71 
     72 File: bfd.info,  Node: History,  Next: How It Works,  Prev: Overview,  Up: Overview
     73 
     74 1.1 History
     75 ===========
     76 
     77 One spur behind BFD was the desire, on the part of the GNU 960 team at
     78 Intel Oregon, for interoperability of applications on their COFF and
     79 b.out file formats.  Cygnus was providing GNU support for the team, and
     80 was contracted to provide the required functionality.
     81 
     82    The name came from a conversation David Wallace was having with
     83 Richard Stallman about the library: RMS said that it would be quite
     84 hard--David said "BFD".  Stallman was right, but the name stuck.
     85 
     86    At the same time, Ready Systems wanted much the same thing, but for
     87 different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k
     88 coff.
     89 
     90    BFD was first implemented by members of Cygnus Support; Steve
     91 Chamberlain (`sac (a] cygnus.com'), John Gilmore (`gnu (a] cygnus.com'), K.
     92 Richard Pixley (`rich (a] cygnus.com') and David Henkel-Wallace
     93 (`gumby (a] cygnus.com').
     94 
     95 
     96 File: bfd.info,  Node: How It Works,  Next: What BFD Version 2 Can Do,  Prev: History,  Up: Overview
     97 
     98 1.2 How To Use BFD
     99 ==================
    100 
    101 To use the library, include `bfd.h' and link with `libbfd.a'.
    102 
    103    BFD provides a common interface to the parts of an object file for a
    104 calling application.
    105 
    106    When an application successfully opens a target file (object,
    107 archive, or whatever), a pointer to an internal structure is returned.
    108 This pointer points to a structure called `bfd', described in `bfd.h'.
    109 Our convention is to call this pointer a BFD, and instances of it
    110 within code `abfd'.  All operations on the target object file are
    111 applied as methods to the BFD.  The mapping is defined within `bfd.h'
    112 in a set of macros, all beginning with `bfd_' to reduce namespace
    113 pollution.
    114 
    115    For example, this sequence does what you would probably expect:
    116 return the number of sections in an object file attached to a BFD
    117 `abfd'.
    118 
    119      #include "bfd.h"
    120 
    121      unsigned int number_of_sections (abfd)
    122      bfd *abfd;
    123      {
    124        return bfd_count_sections (abfd);
    125      }
    126 
    127    The abstraction used within BFD is that an object file has:
    128 
    129    * a header,
    130 
    131    * a number of sections containing raw data (*note Sections::),
    132 
    133    * a set of relocations (*note Relocations::), and
    134 
    135    * some symbol information (*note Symbols::).
    136    Also, BFDs opened for archives have the additional attribute of an
    137 index and contain subordinate BFDs. This approach is fine for a.out and
    138 coff, but loses efficiency when applied to formats such as S-records and
    139 IEEE-695.
    140 
    141 
    142 File: bfd.info,  Node: What BFD Version 2 Can Do,  Prev: How It Works,  Up: Overview
    143 
    144 1.3 What BFD Version 2 Can Do
    145 =============================
    146 
    147 When an object file is opened, BFD subroutines automatically determine
    148 the format of the input object file.  They then build a descriptor in
    149 memory with pointers to routines that will be used to access elements of
    150 the object file's data structures.
    151 
    152    As different information from the object files is required, BFD
    153 reads from different sections of the file and processes them.  For
    154 example, a very common operation for the linker is processing symbol
    155 tables.  Each BFD back end provides a routine for converting between
    156 the object file's representation of symbols and an internal canonical
    157 format. When the linker asks for the symbol table of an object file, it
    158 calls through a memory pointer to the routine from the relevant BFD
    159 back end which reads and converts the table into a canonical form.  The
    160 linker then operates upon the canonical form. When the link is finished
    161 and the linker writes the output file's symbol table, another BFD back
    162 end routine is called to take the newly created symbol table and
    163 convert it into the chosen output format.
    164 
    165 * Menu:
    166 
    167 * BFD information loss::	Information Loss
    168 * Canonical format::		The BFD	canonical object-file format
    169 
    170 
    171 File: bfd.info,  Node: BFD information loss,  Next: Canonical format,  Up: What BFD Version 2 Can Do
    172 
    173 1.3.1 Information Loss
    174 ----------------------
    175 
    176 _Information can be lost during output._ The output formats supported
    177 by BFD do not provide identical facilities, and information which can
    178 be described in one form has nowhere to go in another format. One
    179 example of this is alignment information in `b.out'. There is nowhere
    180 in an `a.out' format file to store alignment information on the
    181 contained data, so when a file is linked from `b.out' and an `a.out'
    182 image is produced, alignment information will not propagate to the
    183 output file. (The linker will still use the alignment information
    184 internally, so the link is performed correctly).
    185 
    186    Another example is COFF section names. COFF files may contain an
    187 unlimited number of sections, each one with a textual section name. If
    188 the target of the link is a format which does not have many sections
    189 (e.g., `a.out') or has sections without names (e.g., the Oasys format),
    190 the link cannot be done simply. You can circumvent this problem by
    191 describing the desired input-to-output section mapping with the linker
    192 command language.
    193 
    194    _Information can be lost during canonicalization._ The BFD internal
    195 canonical form of the external formats is not exhaustive; there are
    196 structures in input formats for which there is no direct representation
    197 internally.  This means that the BFD back ends cannot maintain all
    198 possible data richness through the transformation between external to
    199 internal and back to external formats.
    200 
    201    This limitation is only a problem when an application reads one
    202 format and writes another.  Each BFD back end is responsible for
    203 maintaining as much data as possible, and the internal BFD canonical
    204 form has structures which are opaque to the BFD core, and exported only
    205 to the back ends. When a file is read in one format, the canonical form
    206 is generated for BFD and the application. At the same time, the back
    207 end saves away any information which may otherwise be lost. If the data
    208 is then written back in the same format, the back end routine will be
    209 able to use the canonical form provided by the BFD core as well as the
    210 information it prepared earlier.  Since there is a great deal of
    211 commonality between back ends, there is no information lost when
    212 linking or copying big endian COFF to little endian COFF, or `a.out' to
    213 `b.out'.  When a mixture of formats is linked, the information is only
    214 lost from the files whose format differs from the destination.
    215 
    216 
    217 File: bfd.info,  Node: Canonical format,  Prev: BFD information loss,  Up: What BFD Version 2 Can Do
    218 
    219 1.3.2 The BFD canonical object-file format
    220 ------------------------------------------
    221 
    222 The greatest potential for loss of information occurs when there is the
    223 least overlap between the information provided by the source format,
    224 that stored by the canonical format, and that needed by the destination
    225 format. A brief description of the canonical form may help you
    226 understand which kinds of data you can count on preserving across
    227 conversions.  
    228 
    229 _files_
    230      Information stored on a per-file basis includes target machine
    231      architecture, particular implementation format type, a demand
    232      pageable bit, and a write protected bit.  Information like Unix
    233      magic numbers is not stored here--only the magic numbers' meaning,
    234      so a `ZMAGIC' file would have both the demand pageable bit and the
    235      write protected text bit set.  The byte order of the target is
    236      stored on a per-file basis, so that big- and little-endian object
    237      files may be used with one another.
    238 
    239 _sections_
    240      Each section in the input file contains the name of the section,
    241      the section's original address in the object file, size and
    242      alignment information, various flags, and pointers into other BFD
    243      data structures.
    244 
    245 _symbols_
    246      Each symbol contains a pointer to the information for the object
    247      file which originally defined it, its name, its value, and various
    248      flag bits.  When a BFD back end reads in a symbol table, it
    249      relocates all symbols to make them relative to the base of the
    250      section where they were defined.  Doing this ensures that each
    251      symbol points to its containing section.  Each symbol also has a
    252      varying amount of hidden private data for the BFD back end.  Since
    253      the symbol points to the original file, the private data format
    254      for that symbol is accessible.  `ld' can operate on a collection
    255      of symbols of wildly different formats without problems.
    256 
    257      Normal global and simple local symbols are maintained on output,
    258      so an output file (no matter its format) will retain symbols
    259      pointing to functions and to global, static, and common variables.
    260      Some symbol information is not worth retaining; in `a.out', type
    261      information is stored in the symbol table as long symbol names.
    262      This information would be useless to most COFF debuggers; the
    263      linker has command line switches to allow users to throw it away.
    264 
    265      There is one word of type information within the symbol, so if the
    266      format supports symbol type information within symbols (for
    267      example, COFF, IEEE, Oasys) and the type is simple enough to fit
    268      within one word (nearly everything but aggregates), the
    269      information will be preserved.
    270 
    271 _relocation level_
    272      Each canonical BFD relocation record contains a pointer to the
    273      symbol to relocate to, the offset of the data to relocate, the
    274      section the data is in, and a pointer to a relocation type
    275      descriptor. Relocation is performed by passing messages through
    276      the relocation type descriptor and the symbol pointer. Therefore,
    277      relocations can be performed on output data using a relocation
    278      method that is only available in one of the input formats. For
    279      instance, Oasys provides a byte relocation format.  A relocation
    280      record requesting this relocation type would point indirectly to a
    281      routine to perform this, so the relocation may be performed on a
    282      byte being written to a 68k COFF file, even though 68k COFF has no
    283      such relocation type.
    284 
    285 _line numbers_
    286      Object formats can contain, for debugging purposes, some form of
    287      mapping between symbols, source line numbers, and addresses in the
    288      output file.  These addresses have to be relocated along with the
    289      symbol information.  Each symbol with an associated list of line
    290      number records points to the first record of the list.  The head
    291      of a line number list consists of a pointer to the symbol, which
    292      allows finding out the address of the function whose line number
    293      is being described. The rest of the list is made up of pairs:
    294      offsets into the section and line numbers. Any format which can
    295      simply derive this information can pass it successfully between
    296      formats (COFF, IEEE and Oasys).
    297 
    298 
    299 File: bfd.info,  Node: BFD front end,  Next: BFD back ends,  Prev: Overview,  Up: Top
    300 
    301 2 BFD Front End
    302 ***************
    303 
    304 * Menu:
    305 
    306 * typedef bfd::
    307 * Error reporting::
    308 * Miscellaneous::
    309 * Memory Usage::
    310 * Initialization::
    311 * Sections::
    312 * Symbols::
    313 * Archives::
    314 * Formats::
    315 * Relocations::
    316 * Core Files::
    317 * Targets::
    318 * Architectures::
    319 * Opening and Closing::
    320 * Internal::
    321 * File Caching::
    322 * Linker Functions::
    323 * Hash Tables::
    324 
    325 
    326 File: bfd.info,  Node: typedef bfd,  Next: Error reporting,  Prev: BFD front end,  Up: BFD front end
    327 
    328 2.1 `typedef bfd'
    329 =================
    330 
    331 A BFD has type `bfd'; objects of this type are the cornerstone of any
    332 application using BFD. Using BFD consists of making references though
    333 the BFD and to data in the BFD.
    334 
    335    Here is the structure that defines the type `bfd'.  It contains the
    336 major data about the file and pointers to the rest of the data.
    337 
    338 
    339      enum bfd_direction
    340        {
    341          no_direction = 0,
    342          read_direction = 1,
    343          write_direction = 2,
    344          both_direction = 3
    345        };
    346 
    347      struct bfd
    348      {
    349        /* The filename the application opened the BFD with.  */
    350        const char *filename;
    351 
    352        /* A pointer to the target jump table.  */
    353        const struct bfd_target *xvec;
    354 
    355        /* The IOSTREAM, and corresponding IO vector that provide access
    356           to the file backing the BFD.  */
    357        void *iostream;
    358        const struct bfd_iovec *iovec;
    359 
    360        /* The caching routines use these to maintain a
    361           least-recently-used list of BFDs.  */
    362        struct bfd *lru_prev, *lru_next;
    363 
    364        /* When a file is closed by the caching routines, BFD retains
    365           state information on the file here...  */
    366        ufile_ptr where;
    367 
    368        /* File modified time, if mtime_set is TRUE.  */
    369        long mtime;
    370 
    371        /* A unique identifier of the BFD  */
    372        unsigned int id;
    373 
    374        /* The format which belongs to the BFD. (object, core, etc.)  */
    375        ENUM_BITFIELD (bfd_format) format : 3;
    376 
    377        /* The direction with which the BFD was opened.  */
    378        ENUM_BITFIELD (bfd_direction) direction : 2;
    379 
    380        /* Format_specific flags.  */
    381        flagword flags : 17;
    382 
    383        /* Values that may appear in the flags field of a BFD.  These also
    384           appear in the object_flags field of the bfd_target structure, where
    385           they indicate the set of flags used by that backend (not all flags
    386           are meaningful for all object file formats) (FIXME: at the moment,
    387           the object_flags values have mostly just been copied from backend
    388           to another, and are not necessarily correct).  */
    389 
    390      #define BFD_NO_FLAGS   0x00
    391 
    392        /* BFD contains relocation entries.  */
    393      #define HAS_RELOC      0x01
    394 
    395        /* BFD is directly executable.  */
    396      #define EXEC_P         0x02
    397 
    398        /* BFD has line number information (basically used for F_LNNO in a
    399           COFF header).  */
    400      #define HAS_LINENO     0x04
    401 
    402        /* BFD has debugging information.  */
    403      #define HAS_DEBUG      0x08
    404 
    405        /* BFD has symbols.  */
    406      #define HAS_SYMS       0x10
    407 
    408        /* BFD has local symbols (basically used for F_LSYMS in a COFF
    409           header).  */
    410      #define HAS_LOCALS     0x20
    411 
    412        /* BFD is a dynamic object.  */
    413      #define DYNAMIC        0x40
    414 
    415        /* Text section is write protected (if D_PAGED is not set, this is
    416           like an a.out NMAGIC file) (the linker sets this by default, but
    417           clears it for -r or -N).  */
    418      #define WP_TEXT        0x80
    419 
    420        /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
    421           linker sets this by default, but clears it for -r or -n or -N).  */
    422      #define D_PAGED        0x100
    423 
    424        /* BFD is relaxable (this means that bfd_relax_section may be able to
    425           do something) (sometimes bfd_relax_section can do something even if
    426           this is not set).  */
    427      #define BFD_IS_RELAXABLE 0x200
    428 
    429        /* This may be set before writing out a BFD to request using a
    430           traditional format.  For example, this is used to request that when
    431           writing out an a.out object the symbols not be hashed to eliminate
    432           duplicates.  */
    433      #define BFD_TRADITIONAL_FORMAT 0x400
    434 
    435        /* This flag indicates that the BFD contents are actually cached
    436           in memory.  If this is set, iostream points to a bfd_in_memory
    437           struct.  */
    438      #define BFD_IN_MEMORY 0x800
    439 
    440        /* This BFD has been created by the linker and doesn't correspond
    441           to any input file.  */
    442      #define BFD_LINKER_CREATED 0x1000
    443 
    444        /* This may be set before writing out a BFD to request that it
    445           be written using values for UIDs, GIDs, timestamps, etc. that
    446           will be consistent from run to run.  */
    447      #define BFD_DETERMINISTIC_OUTPUT 0x2000
    448 
    449        /* Compress sections in this BFD.  */
    450      #define BFD_COMPRESS 0x4000
    451 
    452        /* Decompress sections in this BFD.  */
    453      #define BFD_DECOMPRESS 0x8000
    454 
    455        /* BFD is a dummy, for plugins.  */
    456      #define BFD_PLUGIN 0x10000
    457 
    458        /* Flags bits to be saved in bfd_preserve_save.  */
    459      #define BFD_FLAGS_SAVED \
    460        (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_PLUGIN)
    461 
    462        /* Flags bits which are for BFD use only.  */
    463      #define BFD_FLAGS_FOR_BFD_USE_MASK \
    464        (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
    465         | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT)
    466 
    467        /* Is the file descriptor being cached?  That is, can it be closed as
    468           needed, and re-opened when accessed later?  */
    469        unsigned int cacheable : 1;
    470 
    471        /* Marks whether there was a default target specified when the
    472           BFD was opened. This is used to select which matching algorithm
    473           to use to choose the back end.  */
    474        unsigned int target_defaulted : 1;
    475 
    476        /* ... and here: (``once'' means at least once).  */
    477        unsigned int opened_once : 1;
    478 
    479        /* Set if we have a locally maintained mtime value, rather than
    480           getting it from the file each time.  */
    481        unsigned int mtime_set : 1;
    482 
    483        /* Flag set if symbols from this BFD should not be exported.  */
    484        unsigned int no_export : 1;
    485 
    486        /* Remember when output has begun, to stop strange things
    487           from happening.  */
    488        unsigned int output_has_begun : 1;
    489 
    490        /* Have archive map.  */
    491        unsigned int has_armap : 1;
    492 
    493        /* Set if this is a thin archive.  */
    494        unsigned int is_thin_archive : 1;
    495 
    496        /* Set if only required symbols should be added in the link hash table for
    497           this object.  Used by VMS linkers.  */
    498        unsigned int selective_search : 1;
    499 
    500        /* Set if this is the linker output BFD.  */
    501        unsigned int is_linker_output : 1;
    502 
    503        /* Currently my_archive is tested before adding origin to
    504           anything. I believe that this can become always an add of
    505           origin, with origin set to 0 for non archive files.  */
    506        ufile_ptr origin;
    507 
    508        /* The origin in the archive of the proxy entry.  This will
    509           normally be the same as origin, except for thin archives,
    510           when it will contain the current offset of the proxy in the
    511           thin archive rather than the offset of the bfd in its actual
    512           container.  */
    513        ufile_ptr proxy_origin;
    514 
    515        /* A hash table for section names.  */
    516        struct bfd_hash_table section_htab;
    517 
    518        /* Pointer to linked list of sections.  */
    519        struct bfd_section *sections;
    520 
    521        /* The last section on the section list.  */
    522        struct bfd_section *section_last;
    523 
    524        /* The number of sections.  */
    525        unsigned int section_count;
    526 
    527        /* A field used by _bfd_generic_link_add_archive_symbols.  This will
    528           be used only for archive elements.  */
    529        int archive_pass;
    530 
    531        /* Stuff only useful for object files:
    532           The start address.  */
    533        bfd_vma start_address;
    534 
    535        /* Symbol table for output BFD (with symcount entries).
    536           Also used by the linker to cache input BFD symbols.  */
    537        struct bfd_symbol  **outsymbols;
    538 
    539        /* Used for input and output.  */
    540        unsigned int symcount;
    541 
    542        /* Used for slurped dynamic symbol tables.  */
    543        unsigned int dynsymcount;
    544 
    545        /* Pointer to structure which contains architecture information.  */
    546        const struct bfd_arch_info *arch_info;
    547 
    548        /* Stuff only useful for archives.  */
    549        void *arelt_data;
    550        struct bfd *my_archive;      /* The containing archive BFD.  */
    551        struct bfd *archive_next;    /* The next BFD in the archive.  */
    552        struct bfd *archive_head;    /* The first BFD in the archive.  */
    553        struct bfd *nested_archives; /* List of nested archive in a flattened
    554                                        thin archive.  */
    555 
    556        union {
    557          /* For input BFDs, a chain of BFDs involved in a link.  */
    558          struct bfd *next;
    559          /* For output BFD, the linker hash table.  */
    560          struct bfd_link_hash_table *hash;
    561        } link;
    562 
    563        /* Used by the back end to hold private data.  */
    564        union
    565          {
    566            struct aout_data_struct *aout_data;
    567            struct artdata *aout_ar_data;
    568            struct _oasys_data *oasys_obj_data;
    569            struct _oasys_ar_data *oasys_ar_data;
    570            struct coff_tdata *coff_obj_data;
    571            struct pe_tdata *pe_obj_data;
    572            struct xcoff_tdata *xcoff_obj_data;
    573            struct ecoff_tdata *ecoff_obj_data;
    574            struct ieee_data_struct *ieee_data;
    575            struct ieee_ar_data_struct *ieee_ar_data;
    576            struct srec_data_struct *srec_data;
    577            struct verilog_data_struct *verilog_data;
    578            struct ihex_data_struct *ihex_data;
    579            struct tekhex_data_struct *tekhex_data;
    580            struct elf_obj_tdata *elf_obj_data;
    581            struct nlm_obj_tdata *nlm_obj_data;
    582            struct bout_data_struct *bout_data;
    583            struct mmo_data_struct *mmo_data;
    584            struct sun_core_struct *sun_core_data;
    585            struct sco5_core_struct *sco5_core_data;
    586            struct trad_core_struct *trad_core_data;
    587            struct som_data_struct *som_data;
    588            struct hpux_core_struct *hpux_core_data;
    589            struct hppabsd_core_struct *hppabsd_core_data;
    590            struct sgi_core_struct *sgi_core_data;
    591            struct lynx_core_struct *lynx_core_data;
    592            struct osf_core_struct *osf_core_data;
    593            struct cisco_core_struct *cisco_core_data;
    594            struct versados_data_struct *versados_data;
    595            struct netbsd_core_struct *netbsd_core_data;
    596            struct mach_o_data_struct *mach_o_data;
    597            struct mach_o_fat_data_struct *mach_o_fat_data;
    598            struct plugin_data_struct *plugin_data;
    599            struct bfd_pef_data_struct *pef_data;
    600            struct bfd_pef_xlib_data_struct *pef_xlib_data;
    601            struct bfd_sym_data_struct *sym_data;
    602            void *any;
    603          }
    604        tdata;
    605 
    606        /* Used by the application to hold private data.  */
    607        void *usrdata;
    608 
    609        /* Where all the allocated stuff under this BFD goes.  This is a
    610           struct objalloc *, but we use void * to avoid requiring the inclusion
    611           of objalloc.h.  */
    612        void *memory;
    613      };
    614 
    615      /* See note beside bfd_set_section_userdata.  */
    616      static inline bfd_boolean
    617      bfd_set_cacheable (bfd * abfd, bfd_boolean val)
    618      {
    619        abfd->cacheable = val;
    620        return TRUE;
    621      }
    622 
    623 
    624 File: bfd.info,  Node: Error reporting,  Next: Miscellaneous,  Prev: typedef bfd,  Up: BFD front end
    625 
    626 2.2 Error reporting
    627 ===================
    628 
    629 Most BFD functions return nonzero on success (check their individual
    630 documentation for precise semantics).  On an error, they call
    631 `bfd_set_error' to set an error condition that callers can check by
    632 calling `bfd_get_error'.  If that returns `bfd_error_system_call', then
    633 check `errno'.
    634 
    635    The easiest way to report a BFD error to the user is to use
    636 `bfd_perror'.
    637 
    638 2.2.1 Type `bfd_error_type'
    639 ---------------------------
    640 
    641 The values returned by `bfd_get_error' are defined by the enumerated
    642 type `bfd_error_type'.
    643 
    644 
    645      typedef enum bfd_error
    646      {
    647        bfd_error_no_error = 0,
    648        bfd_error_system_call,
    649        bfd_error_invalid_target,
    650        bfd_error_wrong_format,
    651        bfd_error_wrong_object_format,
    652        bfd_error_invalid_operation,
    653        bfd_error_no_memory,
    654        bfd_error_no_symbols,
    655        bfd_error_no_armap,
    656        bfd_error_no_more_archived_files,
    657        bfd_error_malformed_archive,
    658        bfd_error_missing_dso,
    659        bfd_error_file_not_recognized,
    660        bfd_error_file_ambiguously_recognized,
    661        bfd_error_no_contents,
    662        bfd_error_nonrepresentable_section,
    663        bfd_error_no_debug_section,
    664        bfd_error_bad_value,
    665        bfd_error_file_truncated,
    666        bfd_error_file_too_big,
    667        bfd_error_on_input,
    668        bfd_error_invalid_error_code
    669      }
    670      bfd_error_type;
    671    
    672 2.2.1.1 `bfd_get_error'
    673 .......................
    674 
    675 *Synopsis*
    676      bfd_error_type bfd_get_error (void);
    677    *Description*
    678 Return the current BFD error condition.
    679 
    680 2.2.1.2 `bfd_set_error'
    681 .......................
    682 
    683 *Synopsis*
    684      void bfd_set_error (bfd_error_type error_tag, ...);
    685    *Description*
    686 Set the BFD error condition to be ERROR_TAG.  If ERROR_TAG is
    687 bfd_error_on_input, then this function takes two more parameters, the
    688 input bfd where the error occurred, and the bfd_error_type error.
    689 
    690 2.2.1.3 `bfd_errmsg'
    691 ....................
    692 
    693 *Synopsis*
    694      const char *bfd_errmsg (bfd_error_type error_tag);
    695    *Description*
    696 Return a string describing the error ERROR_TAG, or the system error if
    697 ERROR_TAG is `bfd_error_system_call'.
    698 
    699 2.2.1.4 `bfd_perror'
    700 ....................
    701 
    702 *Synopsis*
    703      void bfd_perror (const char *message);
    704    *Description*
    705 Print to the standard error stream a string describing the last BFD
    706 error that occurred, or the last system error if the last BFD error was
    707 a system call failure.  If MESSAGE is non-NULL and non-empty, the error
    708 string printed is preceded by MESSAGE, a colon, and a space.  It is
    709 followed by a newline.
    710 
    711 2.2.2 BFD error handler
    712 -----------------------
    713 
    714 Some BFD functions want to print messages describing the problem.  They
    715 call a BFD error handler function.  This function may be overridden by
    716 the program.
    717 
    718    The BFD error handler acts like printf.
    719 
    720 
    721      typedef void (*bfd_error_handler_type) (const char *, ...);
    722    
    723 2.2.2.1 `bfd_set_error_handler'
    724 ...............................
    725 
    726 *Synopsis*
    727      bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
    728    *Description*
    729 Set the BFD error handler function.  Returns the previous function.
    730 
    731 2.2.2.2 `bfd_set_error_program_name'
    732 ....................................
    733 
    734 *Synopsis*
    735      void bfd_set_error_program_name (const char *);
    736    *Description*
    737 Set the program name to use when printing a BFD error.  This is printed
    738 before the error message followed by a colon and space.  The string
    739 must not be changed after it is passed to this function.
    740 
    741 2.2.2.3 `bfd_get_error_handler'
    742 ...............................
    743 
    744 *Synopsis*
    745      bfd_error_handler_type bfd_get_error_handler (void);
    746    *Description*
    747 Return the BFD error handler function.
    748 
    749 2.2.3 BFD assert handler
    750 ------------------------
    751 
    752 If BFD finds an internal inconsistency, the bfd assert handler is
    753 called with information on the BFD version, BFD source file and line.
    754 If this happens, most programs linked against BFD are expected to want
    755 to exit with an error, or mark the current BFD operation as failed, so
    756 it is recommended to override the default handler, which just calls
    757 _bfd_error_handler and continues.
    758 
    759 
    760      typedef void (*bfd_assert_handler_type) (const char *bfd_formatmsg,
    761                                               const char *bfd_version,
    762                                               const char *bfd_file,
    763                                               int bfd_line);
    764    
    765 2.2.3.1 `bfd_set_assert_handler'
    766 ................................
    767 
    768 *Synopsis*
    769      bfd_assert_handler_type bfd_set_assert_handler (bfd_assert_handler_type);
    770    *Description*
    771 Set the BFD assert handler function.  Returns the previous function.
    772 
    773 2.2.3.2 `bfd_get_assert_handler'
    774 ................................
    775 
    776 *Synopsis*
    777      bfd_assert_handler_type bfd_get_assert_handler (void);
    778    *Description*
    779 Return the BFD assert handler function.
    780 
    781 
    782 File: bfd.info,  Node: Miscellaneous,  Next: Memory Usage,  Prev: Error reporting,  Up: BFD front end
    783 
    784 2.3 Miscellaneous
    785 =================
    786 
    787 2.3.1 Miscellaneous functions
    788 -----------------------------
    789 
    790 2.3.1.1 `bfd_get_reloc_upper_bound'
    791 ...................................
    792 
    793 *Synopsis*
    794      long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
    795    *Description*
    796 Return the number of bytes required to store the relocation information
    797 associated with section SECT attached to bfd ABFD.  If an error occurs,
    798 return -1.
    799 
    800 2.3.1.2 `bfd_canonicalize_reloc'
    801 ................................
    802 
    803 *Synopsis*
    804      long bfd_canonicalize_reloc
    805         (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
    806    *Description*
    807 Call the back end associated with the open BFD ABFD and translate the
    808 external form of the relocation information attached to SEC into the
    809 internal canonical form.  Place the table into memory at LOC, which has
    810 been preallocated, usually by a call to `bfd_get_reloc_upper_bound'.
    811 Returns the number of relocs, or -1 on error.
    812 
    813    The SYMS table is also needed for horrible internal magic reasons.
    814 
    815 2.3.1.3 `bfd_set_reloc'
    816 .......................
    817 
    818 *Synopsis*
    819      void bfd_set_reloc
    820         (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
    821    *Description*
    822 Set the relocation pointer and count within section SEC to the values
    823 REL and COUNT.  The argument ABFD is ignored.
    824 
    825 2.3.1.4 `bfd_set_file_flags'
    826 ............................
    827 
    828 *Synopsis*
    829      bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
    830    *Description*
    831 Set the flag word in the BFD ABFD to the value FLAGS.
    832 
    833    Possible errors are:
    834    * `bfd_error_wrong_format' - The target bfd was not of object format.
    835 
    836    * `bfd_error_invalid_operation' - The target bfd was open for
    837      reading.
    838 
    839    * `bfd_error_invalid_operation' - The flag word contained a bit
    840      which was not applicable to the type of file.  E.g., an attempt
    841      was made to set the `D_PAGED' bit on a BFD format which does not
    842      support demand paging.
    843 
    844 2.3.1.5 `bfd_get_arch_size'
    845 ...........................
    846 
    847 *Synopsis*
    848      int bfd_get_arch_size (bfd *abfd);
    849    *Description*
    850 Returns the normalized architecture address size, in bits, as
    851 determined by the object file's format.  By normalized, we mean either
    852 32 or 64.  For ELF, this information is included in the header.  Use
    853 bfd_arch_bits_per_address for number of bits in the architecture
    854 address.
    855 
    856    *Returns*
    857 Returns the arch size in bits if known, `-1' otherwise.
    858 
    859 2.3.1.6 `bfd_get_sign_extend_vma'
    860 .................................
    861 
    862 *Synopsis*
    863      int bfd_get_sign_extend_vma (bfd *abfd);
    864    *Description*
    865 Indicates if the target architecture "naturally" sign extends an
    866 address.  Some architectures implicitly sign extend address values when
    867 they are converted to types larger than the size of an address.  For
    868 instance, bfd_get_start_address() will return an address sign extended
    869 to fill a bfd_vma when this is the case.
    870 
    871    *Returns*
    872 Returns `1' if the target architecture is known to sign extend
    873 addresses, `0' if the target architecture is known to not sign extend
    874 addresses, and `-1' otherwise.
    875 
    876 2.3.1.7 `bfd_set_start_address'
    877 ...............................
    878 
    879 *Synopsis*
    880      bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
    881    *Description*
    882 Make VMA the entry point of output BFD ABFD.
    883 
    884    *Returns*
    885 Returns `TRUE' on success, `FALSE' otherwise.
    886 
    887 2.3.1.8 `bfd_get_gp_size'
    888 .........................
    889 
    890 *Synopsis*
    891      unsigned int bfd_get_gp_size (bfd *abfd);
    892    *Description*
    893 Return the maximum size of objects to be optimized using the GP
    894 register under MIPS ECOFF.  This is typically set by the `-G' argument
    895 to the compiler, assembler or linker.
    896 
    897 2.3.1.9 `bfd_set_gp_size'
    898 .........................
    899 
    900 *Synopsis*
    901      void bfd_set_gp_size (bfd *abfd, unsigned int i);
    902    *Description*
    903 Set the maximum size of objects to be optimized using the GP register
    904 under ECOFF or MIPS ELF.  This is typically set by the `-G' argument to
    905 the compiler, assembler or linker.
    906 
    907 2.3.1.10 `bfd_scan_vma'
    908 .......................
    909 
    910 *Synopsis*
    911      bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
    912    *Description*
    913 Convert, like `strtoul', a numerical expression STRING into a `bfd_vma'
    914 integer, and return that integer.  (Though without as many bells and
    915 whistles as `strtoul'.)  The expression is assumed to be unsigned
    916 (i.e., positive).  If given a BASE, it is used as the base for
    917 conversion.  A base of 0 causes the function to interpret the string in
    918 hex if a leading "0x" or "0X" is found, otherwise in octal if a leading
    919 zero is found, otherwise in decimal.
    920 
    921    If the value would overflow, the maximum `bfd_vma' value is returned.
    922 
    923 2.3.1.11 `bfd_copy_private_header_data'
    924 .......................................
    925 
    926 *Synopsis*
    927      bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
    928    *Description*
    929 Copy private BFD header information from the BFD IBFD to the the BFD
    930 OBFD.  This copies information that may require sections to exist, but
    931 does not require symbol tables.  Return `true' on success, `false' on
    932 error.  Possible error returns are:
    933 
    934    * `bfd_error_no_memory' - Not enough memory exists to create private
    935      data for OBFD.
    936 
    937      #define bfd_copy_private_header_data(ibfd, obfd) \
    938           BFD_SEND (obfd, _bfd_copy_private_header_data, \
    939                     (ibfd, obfd))
    940 
    941 2.3.1.12 `bfd_copy_private_bfd_data'
    942 ....................................
    943 
    944 *Synopsis*
    945      bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
    946    *Description*
    947 Copy private BFD information from the BFD IBFD to the the BFD OBFD.
    948 Return `TRUE' on success, `FALSE' on error.  Possible error returns are:
    949 
    950    * `bfd_error_no_memory' - Not enough memory exists to create private
    951      data for OBFD.
    952 
    953      #define bfd_copy_private_bfd_data(ibfd, obfd) \
    954           BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
    955                     (ibfd, obfd))
    956 
    957 2.3.1.13 `bfd_merge_private_bfd_data'
    958 .....................................
    959 
    960 *Synopsis*
    961      bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
    962    *Description*
    963 Merge private BFD information from the BFD IBFD to the the output file
    964 BFD OBFD when linking.  Return `TRUE' on success, `FALSE' on error.
    965 Possible error returns are:
    966 
    967    * `bfd_error_no_memory' - Not enough memory exists to create private
    968      data for OBFD.
    969 
    970      #define bfd_merge_private_bfd_data(ibfd, obfd) \
    971           BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
    972                     (ibfd, obfd))
    973 
    974 2.3.1.14 `bfd_set_private_flags'
    975 ................................
    976 
    977 *Synopsis*
    978      bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
    979    *Description*
    980 Set private BFD flag information in the BFD ABFD.  Return `TRUE' on
    981 success, `FALSE' on error.  Possible error returns are:
    982 
    983    * `bfd_error_no_memory' - Not enough memory exists to create private
    984      data for OBFD.
    985 
    986      #define bfd_set_private_flags(abfd, flags) \
    987           BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
    988 
    989 2.3.1.15 `Other functions'
    990 ..........................
    991 
    992 *Description*
    993 The following functions exist but have not yet been documented.
    994      #define bfd_sizeof_headers(abfd, info) \
    995             BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
    996 
    997      #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
    998             BFD_SEND (abfd, _bfd_find_nearest_line, \
    999                       (abfd, syms, sec, off, file, func, line, NULL))
   1000 
   1001      #define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
   1002                                                  line, disc) \
   1003             BFD_SEND (abfd, _bfd_find_nearest_line, \
   1004                       (abfd, syms, sec, off, file, func, line, disc))
   1005 
   1006      #define bfd_find_line(abfd, syms, sym, file, line) \
   1007             BFD_SEND (abfd, _bfd_find_line, \
   1008                       (abfd, syms, sym, file, line))
   1009 
   1010      #define bfd_find_inliner_info(abfd, file, func, line) \
   1011             BFD_SEND (abfd, _bfd_find_inliner_info, \
   1012                       (abfd, file, func, line))
   1013 
   1014      #define bfd_debug_info_start(abfd) \
   1015             BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
   1016 
   1017      #define bfd_debug_info_end(abfd) \
   1018             BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
   1019 
   1020      #define bfd_debug_info_accumulate(abfd, section) \
   1021             BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
   1022 
   1023      #define bfd_stat_arch_elt(abfd, stat) \
   1024             BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
   1025 
   1026      #define bfd_update_armap_timestamp(abfd) \
   1027             BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
   1028 
   1029      #define bfd_set_arch_mach(abfd, arch, mach)\
   1030             BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
   1031 
   1032      #define bfd_relax_section(abfd, section, link_info, again) \
   1033             BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
   1034 
   1035      #define bfd_gc_sections(abfd, link_info) \
   1036             BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
   1037 
   1038      #define bfd_lookup_section_flags(link_info, flag_info, section) \
   1039             BFD_SEND (abfd, _bfd_lookup_section_flags, (link_info, flag_info, section))
   1040 
   1041      #define bfd_merge_sections(abfd, link_info) \
   1042             BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
   1043 
   1044      #define bfd_is_group_section(abfd, sec) \
   1045             BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
   1046 
   1047      #define bfd_discard_group(abfd, sec) \
   1048             BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
   1049 
   1050      #define bfd_link_hash_table_create(abfd) \
   1051             BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
   1052 
   1053      #define bfd_link_add_symbols(abfd, info) \
   1054             BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
   1055 
   1056      #define bfd_link_just_syms(abfd, sec, info) \
   1057             BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
   1058 
   1059      #define bfd_final_link(abfd, info) \
   1060             BFD_SEND (abfd, _bfd_final_link, (abfd, info))
   1061 
   1062      #define bfd_free_cached_info(abfd) \
   1063             BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
   1064 
   1065      #define bfd_get_dynamic_symtab_upper_bound(abfd) \
   1066             BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
   1067 
   1068      #define bfd_print_private_bfd_data(abfd, file)\
   1069             BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
   1070 
   1071      #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
   1072             BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
   1073 
   1074      #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
   1075             BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
   1076                                                         dyncount, dynsyms, ret))
   1077 
   1078      #define bfd_get_dynamic_reloc_upper_bound(abfd) \
   1079             BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
   1080 
   1081      #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
   1082             BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
   1083 
   1084      extern bfd_byte *bfd_get_relocated_section_contents
   1085        (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
   1086         bfd_boolean, asymbol **);
   1087 
   1088 2.3.1.16 `bfd_alt_mach_code'
   1089 ............................
   1090 
   1091 *Synopsis*
   1092      bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
   1093    *Description*
   1094 When more than one machine code number is available for the same
   1095 machine type, this function can be used to switch between the preferred
   1096 one (alternative == 0) and any others.  Currently, only ELF supports
   1097 this feature, with up to two alternate machine codes.
   1098 
   1099 2.3.1.17 `bfd_emul_get_maxpagesize'
   1100 ...................................
   1101 
   1102 *Synopsis*
   1103      bfd_vma bfd_emul_get_maxpagesize (const char *);
   1104    *Description*
   1105 Returns the maximum page size, in bytes, as determined by emulation.
   1106 
   1107    *Returns*
   1108 Returns the maximum page size in bytes for ELF, 0 otherwise.
   1109 
   1110 2.3.1.18 `bfd_emul_set_maxpagesize'
   1111 ...................................
   1112 
   1113 *Synopsis*
   1114      void bfd_emul_set_maxpagesize (const char *, bfd_vma);
   1115    *Description*
   1116 For ELF, set the maximum page size for the emulation.  It is a no-op
   1117 for other formats.
   1118 
   1119 2.3.1.19 `bfd_emul_get_commonpagesize'
   1120 ......................................
   1121 
   1122 *Synopsis*
   1123      bfd_vma bfd_emul_get_commonpagesize (const char *);
   1124    *Description*
   1125 Returns the common page size, in bytes, as determined by emulation.
   1126 
   1127    *Returns*
   1128 Returns the common page size in bytes for ELF, 0 otherwise.
   1129 
   1130 2.3.1.20 `bfd_emul_set_commonpagesize'
   1131 ......................................
   1132 
   1133 *Synopsis*
   1134      void bfd_emul_set_commonpagesize (const char *, bfd_vma);
   1135    *Description*
   1136 For ELF, set the common page size for the emulation.  It is a no-op for
   1137 other formats.
   1138 
   1139 2.3.1.21 `bfd_demangle'
   1140 .......................
   1141 
   1142 *Synopsis*
   1143      char *bfd_demangle (bfd *, const char *, int);
   1144    *Description*
   1145 Wrapper around cplus_demangle.  Strips leading underscores and other
   1146 such chars that would otherwise confuse the demangler.  If passed a g++
   1147 v3 ABI mangled name, returns a buffer allocated with malloc holding the
   1148 demangled name.  Returns NULL otherwise and on memory alloc failure.
   1149 
   1150 2.3.1.22 `struct bfd_iovec'
   1151 ...........................
   1152 
   1153 *Description*
   1154 The `struct bfd_iovec' contains the internal file I/O class.  Each
   1155 `BFD' has an instance of this class and all file I/O is routed through
   1156 it (it is assumed that the instance implements all methods listed
   1157 below).
   1158      struct bfd_iovec
   1159      {
   1160        /* To avoid problems with macros, a "b" rather than "f"
   1161           prefix is prepended to each method name.  */
   1162        /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching
   1163           bytes starting at PTR.  Return the number of bytes actually
   1164           transfered (a read past end-of-file returns less than NBYTES),
   1165           or -1 (setting `bfd_error') if an error occurs.  */
   1166        file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
   1167        file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
   1168                            file_ptr nbytes);
   1169        /* Return the current IOSTREAM file offset, or -1 (setting `bfd_error'
   1170           if an error occurs.  */
   1171        file_ptr (*btell) (struct bfd *abfd);
   1172        /* For the following, on successful completion a value of 0 is returned.
   1173           Otherwise, a value of -1 is returned (and  `bfd_error' is set).  */
   1174        int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
   1175        int (*bclose) (struct bfd *abfd);
   1176        int (*bflush) (struct bfd *abfd);
   1177        int (*bstat) (struct bfd *abfd, struct stat *sb);
   1178        /* Mmap a part of the files. ADDR, LEN, PROT, FLAGS and OFFSET are the usual
   1179           mmap parameter, except that LEN and OFFSET do not need to be page
   1180           aligned.  Returns (void *)-1 on failure, mmapped address on success.
   1181           Also write in MAP_ADDR the address of the page aligned buffer and in
   1182           MAP_LEN the size mapped (a page multiple).  Use unmap with MAP_ADDR and
   1183           MAP_LEN to unmap.  */
   1184        void *(*bmmap) (struct bfd *abfd, void *addr, bfd_size_type len,
   1185                        int prot, int flags, file_ptr offset,
   1186                        void **map_addr, bfd_size_type *map_len);
   1187      };
   1188      extern const struct bfd_iovec _bfd_memory_iovec;
   1189 
   1190 2.3.1.23 `bfd_get_mtime'
   1191 ........................
   1192 
   1193 *Synopsis*
   1194      long bfd_get_mtime (bfd *abfd);
   1195    *Description*
   1196 Return the file modification time (as read from the file system, or
   1197 from the archive header for archive members).
   1198 
   1199 2.3.1.24 `bfd_get_size'
   1200 .......................
   1201 
   1202 *Synopsis*
   1203      file_ptr bfd_get_size (bfd *abfd);
   1204    *Description*
   1205 Return the file size (as read from file system) for the file associated
   1206 with BFD ABFD.
   1207 
   1208    The initial motivation for, and use of, this routine is not so we
   1209 can get the exact size of the object the BFD applies to, since that
   1210 might not be generally possible (archive members for example).  It
   1211 would be ideal if someone could eventually modify it so that such
   1212 results were guaranteed.
   1213 
   1214    Instead, we want to ask questions like "is this NNN byte sized
   1215 object I'm about to try read from file offset YYY reasonable?"  As as
   1216 example of where we might do this, some object formats use string
   1217 tables for which the first `sizeof (long)' bytes of the table contain
   1218 the size of the table itself, including the size bytes.  If an
   1219 application tries to read what it thinks is one of these string tables,
   1220 without some way to validate the size, and for some reason the size is
   1221 wrong (byte swapping error, wrong location for the string table, etc.),
   1222 the only clue is likely to be a read error when it tries to read the
   1223 table, or a "virtual memory exhausted" error when it tries to allocate
   1224 15 bazillon bytes of space for the 15 bazillon byte table it is about
   1225 to read.  This function at least allows us to answer the question, "is
   1226 the size reasonable?".
   1227 
   1228 2.3.1.25 `bfd_mmap'
   1229 ...................
   1230 
   1231 *Synopsis*
   1232      void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len,
   1233          int prot, int flags, file_ptr offset,
   1234          void **map_addr, bfd_size_type *map_len);
   1235    *Description*
   1236 Return mmap()ed region of the file, if possible and implemented.  LEN
   1237 and OFFSET do not need to be page aligned.  The page aligned address
   1238 and length are written to MAP_ADDR and MAP_LEN.
   1239 
   1240 
   1241 File: bfd.info,  Node: Memory Usage,  Next: Initialization,  Prev: Miscellaneous,  Up: BFD front end
   1242 
   1243 2.4 Memory Usage
   1244 ================
   1245 
   1246 BFD keeps all of its internal structures in obstacks. There is one
   1247 obstack per open BFD file, into which the current state is stored. When
   1248 a BFD is closed, the obstack is deleted, and so everything which has
   1249 been allocated by BFD for the closing file is thrown away.
   1250 
   1251    BFD does not free anything created by an application, but pointers
   1252 into `bfd' structures become invalid on a `bfd_close'; for example,
   1253 after a `bfd_close' the vector passed to `bfd_canonicalize_symtab' is
   1254 still around, since it has been allocated by the application, but the
   1255 data that it pointed to are lost.
   1256 
   1257    The general rule is to not close a BFD until all operations dependent
   1258 upon data from the BFD have been completed, or all the data from within
   1259 the file has been copied. To help with the management of memory, there
   1260 is a function (`bfd_alloc_size') which returns the number of bytes in
   1261 obstacks associated with the supplied BFD. This could be used to select
   1262 the greediest open BFD, close it to reclaim the memory, perform some
   1263 operation and reopen the BFD again, to get a fresh copy of the data
   1264 structures.
   1265 
   1266 
   1267 File: bfd.info,  Node: Initialization,  Next: Sections,  Prev: Memory Usage,  Up: BFD front end
   1268 
   1269 2.5 Initialization
   1270 ==================
   1271 
   1272 2.5.1 Initialization functions
   1273 ------------------------------
   1274 
   1275 These are the functions that handle initializing a BFD.
   1276 
   1277 2.5.1.1 `bfd_init'
   1278 ..................
   1279 
   1280 *Synopsis*
   1281      void bfd_init (void);
   1282    *Description*
   1283 This routine must be called before any other BFD function to initialize
   1284 magical internal data structures.
   1285 
   1286 
   1287 File: bfd.info,  Node: Sections,  Next: Symbols,  Prev: Initialization,  Up: BFD front end
   1288 
   1289 2.6 Sections
   1290 ============
   1291 
   1292 The raw data contained within a BFD is maintained through the section
   1293 abstraction.  A single BFD may have any number of sections.  It keeps
   1294 hold of them by pointing to the first; each one points to the next in
   1295 the list.
   1296 
   1297    Sections are supported in BFD in `section.c'.
   1298 
   1299 * Menu:
   1300 
   1301 * Section Input::
   1302 * Section Output::
   1303 * typedef asection::
   1304 * section prototypes::
   1305 
   1306 
   1307 File: bfd.info,  Node: Section Input,  Next: Section Output,  Prev: Sections,  Up: Sections
   1308 
   1309 2.6.1 Section input
   1310 -------------------
   1311 
   1312 When a BFD is opened for reading, the section structures are created
   1313 and attached to the BFD.
   1314 
   1315    Each section has a name which describes the section in the outside
   1316 world--for example, `a.out' would contain at least three sections,
   1317 called `.text', `.data' and `.bss'.
   1318 
   1319    Names need not be unique; for example a COFF file may have several
   1320 sections named `.data'.
   1321 
   1322    Sometimes a BFD will contain more than the "natural" number of
   1323 sections. A back end may attach other sections containing constructor
   1324 data, or an application may add a section (using `bfd_make_section') to
   1325 the sections attached to an already open BFD. For example, the linker
   1326 creates an extra section `COMMON' for each input file's BFD to hold
   1327 information about common storage.
   1328 
   1329    The raw data is not necessarily read in when the section descriptor
   1330 is created. Some targets may leave the data in place until a
   1331 `bfd_get_section_contents' call is made. Other back ends may read in
   1332 all the data at once.  For example, an S-record file has to be read
   1333 once to determine the size of the data. An IEEE-695 file doesn't
   1334 contain raw data in sections, but data and relocation expressions
   1335 intermixed, so the data area has to be parsed to get out the data and
   1336 relocations.
   1337 
   1338 
   1339 File: bfd.info,  Node: Section Output,  Next: typedef asection,  Prev: Section Input,  Up: Sections
   1340 
   1341 2.6.2 Section output
   1342 --------------------
   1343 
   1344 To write a new object style BFD, the various sections to be written
   1345 have to be created. They are attached to the BFD in the same way as
   1346 input sections; data is written to the sections using
   1347 `bfd_set_section_contents'.
   1348 
   1349    Any program that creates or combines sections (e.g., the assembler
   1350 and linker) must use the `asection' fields `output_section' and
   1351 `output_offset' to indicate the file sections to which each section
   1352 must be written.  (If the section is being created from scratch,
   1353 `output_section' should probably point to the section itself and
   1354 `output_offset' should probably be zero.)
   1355 
   1356    The data to be written comes from input sections attached (via
   1357 `output_section' pointers) to the output sections.  The output section
   1358 structure can be considered a filter for the input section: the output
   1359 section determines the vma of the output data and the name, but the
   1360 input section determines the offset into the output section of the data
   1361 to be written.
   1362 
   1363    E.g., to create a section "O", starting at 0x100, 0x123 long,
   1364 containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and
   1365 "B" at offset 0x20 (i.e., at vma 0x120) the `asection' structures would
   1366 look like:
   1367 
   1368         section name          "A"
   1369           output_offset   0x00
   1370           size            0x20
   1371           output_section ----------->  section name    "O"
   1372                                   |    vma             0x100
   1373         section name          "B" |    size            0x123
   1374           output_offset   0x20    |
   1375           size            0x103   |
   1376           output_section  --------|
   1377 
   1378 2.6.3 Link orders
   1379 -----------------
   1380 
   1381 The data within a section is stored in a "link_order".  These are much
   1382 like the fixups in `gas'.  The link_order abstraction allows a section
   1383 to grow and shrink within itself.
   1384 
   1385    A link_order knows how big it is, and which is the next link_order
   1386 and where the raw data for it is; it also points to a list of
   1387 relocations which apply to it.
   1388 
   1389    The link_order is used by the linker to perform relaxing on final
   1390 code.  The compiler creates code which is as big as necessary to make
   1391 it work without relaxing, and the user can select whether to relax.
   1392 Sometimes relaxing takes a lot of time.  The linker runs around the
   1393 relocations to see if any are attached to data which can be shrunk, if
   1394 so it does it on a link_order by link_order basis.
   1395 
   1396 
   1397 File: bfd.info,  Node: typedef asection,  Next: section prototypes,  Prev: Section Output,  Up: Sections
   1398 
   1399 2.6.4 typedef asection
   1400 ----------------------
   1401 
   1402 Here is the section structure:
   1403 
   1404 
   1405      typedef struct bfd_section
   1406      {
   1407        /* The name of the section; the name isn't a copy, the pointer is
   1408           the same as that passed to bfd_make_section.  */
   1409        const char *name;
   1410 
   1411        /* A unique sequence number.  */
   1412        int id;
   1413 
   1414        /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
   1415        int index;
   1416 
   1417        /* The next section in the list belonging to the BFD, or NULL.  */
   1418        struct bfd_section *next;
   1419 
   1420        /* The previous section in the list belonging to the BFD, or NULL.  */
   1421        struct bfd_section *prev;
   1422 
   1423        /* The field flags contains attributes of the section. Some
   1424           flags are read in from the object file, and some are
   1425           synthesized from other information.  */
   1426        flagword flags;
   1427 
   1428      #define SEC_NO_FLAGS   0x000
   1429 
   1430        /* Tells the OS to allocate space for this section when loading.
   1431           This is clear for a section containing debug information only.  */
   1432      #define SEC_ALLOC      0x001
   1433 
   1434        /* Tells the OS to load the section from the file when loading.
   1435           This is clear for a .bss section.  */
   1436      #define SEC_LOAD       0x002
   1437 
   1438        /* The section contains data still to be relocated, so there is
   1439           some relocation information too.  */
   1440      #define SEC_RELOC      0x004
   1441 
   1442        /* A signal to the OS that the section contains read only data.  */
   1443      #define SEC_READONLY   0x008
   1444 
   1445        /* The section contains code only.  */
   1446      #define SEC_CODE       0x010
   1447 
   1448        /* The section contains data only.  */
   1449      #define SEC_DATA       0x020
   1450 
   1451        /* The section will reside in ROM.  */
   1452      #define SEC_ROM        0x040
   1453 
   1454        /* The section contains constructor information. This section
   1455           type is used by the linker to create lists of constructors and
   1456           destructors used by `g++'. When a back end sees a symbol
   1457           which should be used in a constructor list, it creates a new
   1458           section for the type of name (e.g., `__CTOR_LIST__'), attaches
   1459           the symbol to it, and builds a relocation. To build the lists
   1460           of constructors, all the linker has to do is catenate all the
   1461           sections called `__CTOR_LIST__' and relocate the data
   1462           contained within - exactly the operations it would peform on
   1463           standard data.  */
   1464      #define SEC_CONSTRUCTOR 0x080
   1465 
   1466        /* The section has contents - a data section could be
   1467           `SEC_ALLOC' | `SEC_HAS_CONTENTS'; a debug section could be
   1468           `SEC_HAS_CONTENTS'  */
   1469      #define SEC_HAS_CONTENTS 0x100
   1470 
   1471        /* An instruction to the linker to not output the section
   1472           even if it has information which would normally be written.  */
   1473      #define SEC_NEVER_LOAD 0x200
   1474 
   1475        /* The section contains thread local data.  */
   1476      #define SEC_THREAD_LOCAL 0x400
   1477 
   1478        /* The section has GOT references.  This flag is only for the
   1479           linker, and is currently only used by the elf32-hppa back end.
   1480           It will be set if global offset table references were detected
   1481           in this section, which indicate to the linker that the section
   1482           contains PIC code, and must be handled specially when doing a
   1483           static link.  */
   1484      #define SEC_HAS_GOT_REF 0x800
   1485 
   1486        /* The section contains common symbols (symbols may be defined
   1487           multiple times, the value of a symbol is the amount of
   1488           space it requires, and the largest symbol value is the one
   1489           used).  Most targets have exactly one of these (which we
   1490           translate to bfd_com_section_ptr), but ECOFF has two.  */
   1491      #define SEC_IS_COMMON 0x1000
   1492 
   1493        /* The section contains only debugging information.  For
   1494           example, this is set for ELF .debug and .stab sections.
   1495           strip tests this flag to see if a section can be
   1496           discarded.  */
   1497      #define SEC_DEBUGGING 0x2000
   1498 
   1499        /* The contents of this section are held in memory pointed to
   1500           by the contents field.  This is checked by bfd_get_section_contents,
   1501           and the data is retrieved from memory if appropriate.  */
   1502      #define SEC_IN_MEMORY 0x4000
   1503 
   1504        /* The contents of this section are to be excluded by the
   1505           linker for executable and shared objects unless those
   1506           objects are to be further relocated.  */
   1507      #define SEC_EXCLUDE 0x8000
   1508 
   1509        /* The contents of this section are to be sorted based on the sum of
   1510           the symbol and addend values specified by the associated relocation
   1511           entries.  Entries without associated relocation entries will be
   1512           appended to the end of the section in an unspecified order.  */
   1513      #define SEC_SORT_ENTRIES 0x10000
   1514 
   1515        /* When linking, duplicate sections of the same name should be
   1516           discarded, rather than being combined into a single section as
   1517           is usually done.  This is similar to how common symbols are
   1518           handled.  See SEC_LINK_DUPLICATES below.  */
   1519      #define SEC_LINK_ONCE 0x20000
   1520 
   1521        /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
   1522           should handle duplicate sections.  */
   1523      #define SEC_LINK_DUPLICATES 0xc0000
   1524 
   1525        /* This value for SEC_LINK_DUPLICATES means that duplicate
   1526           sections with the same name should simply be discarded.  */
   1527      #define SEC_LINK_DUPLICATES_DISCARD 0x0
   1528 
   1529        /* This value for SEC_LINK_DUPLICATES means that the linker
   1530           should warn if there are any duplicate sections, although
   1531           it should still only link one copy.  */
   1532      #define SEC_LINK_DUPLICATES_ONE_ONLY 0x40000
   1533 
   1534        /* This value for SEC_LINK_DUPLICATES means that the linker
   1535           should warn if any duplicate sections are a different size.  */
   1536      #define SEC_LINK_DUPLICATES_SAME_SIZE 0x80000
   1537 
   1538        /* This value for SEC_LINK_DUPLICATES means that the linker
   1539           should warn if any duplicate sections contain different
   1540           contents.  */
   1541      #define SEC_LINK_DUPLICATES_SAME_CONTENTS \
   1542        (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
   1543 
   1544        /* This section was created by the linker as part of dynamic
   1545           relocation or other arcane processing.  It is skipped when
   1546           going through the first-pass output, trusting that someone
   1547           else up the line will take care of it later.  */
   1548      #define SEC_LINKER_CREATED 0x100000
   1549 
   1550        /* This section should not be subject to garbage collection.
   1551           Also set to inform the linker that this section should not be
   1552           listed in the link map as discarded.  */
   1553      #define SEC_KEEP 0x200000
   1554 
   1555        /* This section contains "short" data, and should be placed
   1556           "near" the GP.  */
   1557      #define SEC_SMALL_DATA 0x400000
   1558 
   1559        /* Attempt to merge identical entities in the section.
   1560           Entity size is given in the entsize field.  */
   1561      #define SEC_MERGE 0x800000
   1562 
   1563        /* If given with SEC_MERGE, entities to merge are zero terminated
   1564           strings where entsize specifies character size instead of fixed
   1565           size entries.  */
   1566      #define SEC_STRINGS 0x1000000
   1567 
   1568        /* This section contains data about section groups.  */
   1569      #define SEC_GROUP 0x2000000
   1570 
   1571        /* The section is a COFF shared library section.  This flag is
   1572           only for the linker.  If this type of section appears in
   1573           the input file, the linker must copy it to the output file
   1574           without changing the vma or size.  FIXME: Although this
   1575           was originally intended to be general, it really is COFF
   1576           specific (and the flag was renamed to indicate this).  It
   1577           might be cleaner to have some more general mechanism to
   1578           allow the back end to control what the linker does with
   1579           sections.  */
   1580      #define SEC_COFF_SHARED_LIBRARY 0x4000000
   1581 
   1582        /* This input section should be copied to output in reverse order
   1583           as an array of pointers.  This is for ELF linker internal use
   1584           only.  */
   1585      #define SEC_ELF_REVERSE_COPY 0x4000000
   1586 
   1587        /* This section contains data which may be shared with other
   1588           executables or shared objects. This is for COFF only.  */
   1589      #define SEC_COFF_SHARED 0x8000000
   1590 
   1591        /* When a section with this flag is being linked, then if the size of
   1592           the input section is less than a page, it should not cross a page
   1593           boundary.  If the size of the input section is one page or more,
   1594           it should be aligned on a page boundary.  This is for TI
   1595           TMS320C54X only.  */
   1596      #define SEC_TIC54X_BLOCK 0x10000000
   1597 
   1598        /* Conditionally link this section; do not link if there are no
   1599           references found to any symbol in the section.  This is for TI
   1600           TMS320C54X only.  */
   1601      #define SEC_TIC54X_CLINK 0x20000000
   1602 
   1603        /* Indicate that section has the no read flag set. This happens
   1604           when memory read flag isn't set. */
   1605      #define SEC_COFF_NOREAD 0x40000000
   1606 
   1607        /*  End of section flags.  */
   1608 
   1609        /* Some internal packed boolean fields.  */
   1610 
   1611        /* See the vma field.  */
   1612        unsigned int user_set_vma : 1;
   1613 
   1614        /* A mark flag used by some of the linker backends.  */
   1615        unsigned int linker_mark : 1;
   1616 
   1617        /* Another mark flag used by some of the linker backends.  Set for
   1618           output sections that have an input section.  */
   1619        unsigned int linker_has_input : 1;
   1620 
   1621        /* Mark flag used by some linker backends for garbage collection.  */
   1622        unsigned int gc_mark : 1;
   1623 
   1624        /* Section compression status.  */
   1625        unsigned int compress_status : 2;
   1626      #define COMPRESS_SECTION_NONE    0
   1627      #define COMPRESS_SECTION_DONE    1
   1628      #define DECOMPRESS_SECTION_SIZED 2
   1629 
   1630        /* The following flags are used by the ELF linker. */
   1631 
   1632        /* Mark sections which have been allocated to segments.  */
   1633        unsigned int segment_mark : 1;
   1634 
   1635        /* Type of sec_info information.  */
   1636        unsigned int sec_info_type:3;
   1637      #define SEC_INFO_TYPE_NONE      0
   1638      #define SEC_INFO_TYPE_STABS     1
   1639      #define SEC_INFO_TYPE_MERGE     2
   1640      #define SEC_INFO_TYPE_EH_FRAME  3
   1641      #define SEC_INFO_TYPE_JUST_SYMS 4
   1642      #define SEC_INFO_TYPE_TARGET    5
   1643 
   1644        /* Nonzero if this section uses RELA relocations, rather than REL.  */
   1645        unsigned int use_rela_p:1;
   1646 
   1647        /* Bits used by various backends.  The generic code doesn't touch
   1648           these fields.  */
   1649 
   1650        unsigned int sec_flg0:1;
   1651        unsigned int sec_flg1:1;
   1652        unsigned int sec_flg2:1;
   1653        unsigned int sec_flg3:1;
   1654        unsigned int sec_flg4:1;
   1655        unsigned int sec_flg5:1;
   1656 
   1657        /* End of internal packed boolean fields.  */
   1658 
   1659        /*  The virtual memory address of the section - where it will be
   1660            at run time.  The symbols are relocated against this.  The
   1661            user_set_vma flag is maintained by bfd; if it's not set, the
   1662            backend can assign addresses (for example, in `a.out', where
   1663            the default address for `.data' is dependent on the specific
   1664            target and various flags).  */
   1665        bfd_vma vma;
   1666 
   1667        /*  The load address of the section - where it would be in a
   1668            rom image; really only used for writing section header
   1669            information.  */
   1670        bfd_vma lma;
   1671 
   1672        /* The size of the section in octets, as it will be output.
   1673           Contains a value even if the section has no contents (e.g., the
   1674           size of `.bss').  */
   1675        bfd_size_type size;
   1676 
   1677        /* For input sections, the original size on disk of the section, in
   1678           octets.  This field should be set for any section whose size is
   1679           changed by linker relaxation.  It is required for sections where
   1680           the linker relaxation scheme doesn't cache altered section and
   1681           reloc contents (stabs, eh_frame, SEC_MERGE, some coff relaxing
   1682           targets), and thus the original size needs to be kept to read the
   1683           section multiple times.  For output sections, rawsize holds the
   1684           section size calculated on a previous linker relaxation pass.  */
   1685        bfd_size_type rawsize;
   1686 
   1687        /* The compressed size of the section in octets.  */
   1688        bfd_size_type compressed_size;
   1689 
   1690        /* Relaxation table. */
   1691        struct relax_table *relax;
   1692 
   1693        /* Count of used relaxation table entries. */
   1694        int relax_count;
   1695 
   1696 
   1697        /* If this section is going to be output, then this value is the
   1698           offset in *bytes* into the output section of the first byte in the
   1699           input section (byte ==> smallest addressable unit on the
   1700           target).  In most cases, if this was going to start at the
   1701           100th octet (8-bit quantity) in the output section, this value
   1702           would be 100.  However, if the target byte size is 16 bits
   1703           (bfd_octets_per_byte is "2"), this value would be 50.  */
   1704        bfd_vma output_offset;
   1705 
   1706        /* The output section through which to map on output.  */
   1707        struct bfd_section *output_section;
   1708 
   1709        /* The alignment requirement of the section, as an exponent of 2 -
   1710           e.g., 3 aligns to 2^3 (or 8).  */
   1711        unsigned int alignment_power;
   1712 
   1713        /* If an input section, a pointer to a vector of relocation
   1714           records for the data in this section.  */
   1715        struct reloc_cache_entry *relocation;
   1716 
   1717        /* If an output section, a pointer to a vector of pointers to
   1718           relocation records for the data in this section.  */
   1719        struct reloc_cache_entry **orelocation;
   1720 
   1721        /* The number of relocation records in one of the above.  */
   1722        unsigned reloc_count;
   1723 
   1724        /* Information below is back end specific - and not always used
   1725           or updated.  */
   1726 
   1727        /* File position of section data.  */
   1728        file_ptr filepos;
   1729 
   1730        /* File position of relocation info.  */
   1731        file_ptr rel_filepos;
   1732 
   1733        /* File position of line data.  */
   1734        file_ptr line_filepos;
   1735 
   1736        /* Pointer to data for applications.  */
   1737        void *userdata;
   1738 
   1739        /* If the SEC_IN_MEMORY flag is set, this points to the actual
   1740           contents.  */
   1741        unsigned char *contents;
   1742 
   1743        /* Attached line number information.  */
   1744        alent *lineno;
   1745 
   1746        /* Number of line number records.  */
   1747        unsigned int lineno_count;
   1748 
   1749        /* Entity size for merging purposes.  */
   1750        unsigned int entsize;
   1751 
   1752        /* Points to the kept section if this section is a link-once section,
   1753           and is discarded.  */
   1754        struct bfd_section *kept_section;
   1755 
   1756        /* When a section is being output, this value changes as more
   1757           linenumbers are written out.  */
   1758        file_ptr moving_line_filepos;
   1759 
   1760        /* What the section number is in the target world.  */
   1761        int target_index;
   1762 
   1763        void *used_by_bfd;
   1764 
   1765        /* If this is a constructor section then here is a list of the
   1766           relocations created to relocate items within it.  */
   1767        struct relent_chain *constructor_chain;
   1768 
   1769        /* The BFD which owns the section.  */
   1770        bfd *owner;
   1771 
   1772        /* A symbol which points at this section only.  */
   1773        struct bfd_symbol *symbol;
   1774        struct bfd_symbol **symbol_ptr_ptr;
   1775 
   1776        /* Early in the link process, map_head and map_tail are used to build
   1777           a list of input sections attached to an output section.  Later,
   1778           output sections use these fields for a list of bfd_link_order
   1779           structs.  */
   1780        union {
   1781          struct bfd_link_order *link_order;
   1782          struct bfd_section *s;
   1783        } map_head, map_tail;
   1784      } asection;
   1785 
   1786      /* Relax table contains information about instructions which can
   1787         be removed by relaxation -- replacing a long address with a
   1788         short address.  */
   1789      struct relax_table {
   1790        /* Address where bytes may be deleted. */
   1791        bfd_vma addr;
   1792 
   1793        /* Number of bytes to be deleted.  */
   1794        int size;
   1795      };
   1796 
   1797      /* Note: the following are provided as inline functions rather than macros
   1798         because not all callers use the return value.  A macro implementation
   1799         would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
   1800         compilers will complain about comma expressions that have no effect.  */
   1801      static inline bfd_boolean
   1802      bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
   1803      {
   1804        ptr->userdata = val;
   1805        return TRUE;
   1806      }
   1807 
   1808      static inline bfd_boolean
   1809      bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
   1810      {
   1811        ptr->vma = ptr->lma = val;
   1812        ptr->user_set_vma = TRUE;
   1813        return TRUE;
   1814      }
   1815 
   1816      static inline bfd_boolean
   1817      bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
   1818      {
   1819        ptr->alignment_power = val;
   1820        return TRUE;
   1821      }
   1822 
   1823      /* These sections are global, and are managed by BFD.  The application
   1824         and target back end are not permitted to change the values in
   1825         these sections.  */
   1826      extern asection _bfd_std_section[4];
   1827 
   1828      #define BFD_ABS_SECTION_NAME "*ABS*"
   1829      #define BFD_UND_SECTION_NAME "*UND*"
   1830      #define BFD_COM_SECTION_NAME "*COM*"
   1831      #define BFD_IND_SECTION_NAME "*IND*"
   1832 
   1833      /* Pointer to the common section.  */
   1834      #define bfd_com_section_ptr (&_bfd_std_section[0])
   1835      /* Pointer to the undefined section.  */
   1836      #define bfd_und_section_ptr (&_bfd_std_section[1])
   1837      /* Pointer to the absolute section.  */
   1838      #define bfd_abs_section_ptr (&_bfd_std_section[2])
   1839      /* Pointer to the indirect section.  */
   1840      #define bfd_ind_section_ptr (&_bfd_std_section[3])
   1841 
   1842      #define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
   1843      #define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
   1844      #define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
   1845 
   1846      #define bfd_is_const_section(SEC)              \
   1847       (   ((SEC) == bfd_abs_section_ptr)            \
   1848        || ((SEC) == bfd_und_section_ptr)            \
   1849        || ((SEC) == bfd_com_section_ptr)            \
   1850        || ((SEC) == bfd_ind_section_ptr))
   1851 
   1852      /* Macros to handle insertion and deletion of a bfd's sections.  These
   1853         only handle the list pointers, ie. do not adjust section_count,
   1854         target_index etc.  */
   1855      #define bfd_section_list_remove(ABFD, S) \
   1856        do                                                   \
   1857          {                                                  \
   1858            asection *_s = S;                                \
   1859            asection *_next = _s->next;                      \
   1860            asection *_prev = _s->prev;                      \
   1861            if (_prev)                                       \
   1862              _prev->next = _next;                           \
   1863            else                                             \
   1864              (ABFD)->sections = _next;                      \
   1865            if (_next)                                       \
   1866              _next->prev = _prev;                           \
   1867            else                                             \
   1868              (ABFD)->section_last = _prev;                  \
   1869          }                                                  \
   1870        while (0)
   1871      #define bfd_section_list_append(ABFD, S) \
   1872        do                                                   \
   1873          {                                                  \
   1874            asection *_s = S;                                \
   1875            bfd *_abfd = ABFD;                               \
   1876            _s->next = NULL;                                 \
   1877            if (_abfd->section_last)                         \
   1878              {                                              \
   1879                _s->prev = _abfd->section_last;              \
   1880                _abfd->section_last->next = _s;              \
   1881              }                                              \
   1882            else                                             \
   1883              {                                              \
   1884                _s->prev = NULL;                             \
   1885                _abfd->sections = _s;                        \
   1886              }                                              \
   1887            _abfd->section_last = _s;                        \
   1888          }                                                  \
   1889        while (0)
   1890      #define bfd_section_list_prepend(ABFD, S) \
   1891        do                                                   \
   1892          {                                                  \
   1893            asection *_s = S;                                \
   1894            bfd *_abfd = ABFD;                               \
   1895            _s->prev = NULL;                                 \
   1896            if (_abfd->sections)                             \
   1897              {                                              \
   1898                _s->next = _abfd->sections;                  \
   1899                _abfd->sections->prev = _s;                  \
   1900              }                                              \
   1901            else                                             \
   1902              {                                              \
   1903                _s->next = NULL;                             \
   1904                _abfd->section_last = _s;                    \
   1905              }                                              \
   1906            _abfd->sections = _s;                            \
   1907          }                                                  \
   1908        while (0)
   1909      #define bfd_section_list_insert_after(ABFD, A, S) \
   1910        do                                                   \
   1911          {                                                  \
   1912            asection *_a = A;                                \
   1913            asection *_s = S;                                \
   1914            asection *_next = _a->next;                      \
   1915            _s->next = _next;                                \
   1916            _s->prev = _a;                                   \
   1917            _a->next = _s;                                   \
   1918            if (_next)                                       \
   1919              _next->prev = _s;                              \
   1920            else                                             \
   1921              (ABFD)->section_last = _s;                     \
   1922          }                                                  \
   1923        while (0)
   1924      #define bfd_section_list_insert_before(ABFD, B, S) \
   1925        do                                                   \
   1926          {                                                  \
   1927            asection *_b = B;                                \
   1928            asection *_s = S;                                \
   1929            asection *_prev = _b->prev;                      \
   1930            _s->prev = _prev;                                \
   1931            _s->next = _b;                                   \
   1932            _b->prev = _s;                                   \
   1933            if (_prev)                                       \
   1934              _prev->next = _s;                              \
   1935            else                                             \
   1936              (ABFD)->sections = _s;                         \
   1937          }                                                  \
   1938        while (0)
   1939      #define bfd_section_removed_from_list(ABFD, S) \
   1940        ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
   1941 
   1942      #define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX)                   \
   1943        /* name, id,  index, next, prev, flags, user_set_vma,            */  \
   1944        { NAME,  IDX, 0,     NULL, NULL, FLAGS, 0,                           \
   1945                                                                             \
   1946        /* linker_mark, linker_has_input, gc_mark, decompress_status,    */  \
   1947           0,           0,                1,       0,                        \
   1948                                                                             \
   1949        /* segment_mark, sec_info_type, use_rela_p,                      */  \
   1950           0,            0,             0,                                   \
   1951                                                                             \
   1952        /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5,   */  \
   1953           0,        0,        0,        0,        0,        0,              \
   1954                                                                             \
   1955        /* vma, lma, size, rawsize, compressed_size, relax, relax_count, */  \
   1956           0,   0,   0,    0,       0,               0,     0,               \
   1957                                                                             \
   1958        /* output_offset, output_section, alignment_power,               */  \
   1959           0,             &SEC,           0,                                 \
   1960                                                                             \
   1961        /* relocation, orelocation, reloc_count, filepos, rel_filepos,   */  \
   1962           NULL,       NULL,        0,           0,       0,                 \
   1963                                                                             \
   1964        /* line_filepos, userdata, contents, lineno, lineno_count,       */  \
   1965           0,            NULL,     NULL,     NULL,   0,                      \
   1966                                                                             \
   1967        /* entsize, kept_section, moving_line_filepos,                    */ \
   1968           0,       NULL,          0,                                        \
   1969                                                                             \
   1970        /* target_index, used_by_bfd, constructor_chain, owner,          */  \
   1971           0,            NULL,        NULL,              NULL,               \
   1972                                                                             \
   1973        /* symbol,                    symbol_ptr_ptr,                    */  \
   1974           (struct bfd_symbol *) SYM, &SEC.symbol,                           \
   1975                                                                             \
   1976        /* map_head, map_tail                                            */  \
   1977           { NULL }, { NULL }                                                \
   1978          }
   1979 
   1980 
   1981 File: bfd.info,  Node: section prototypes,  Prev: typedef asection,  Up: Sections
   1982 
   1983 2.6.5 Section prototypes
   1984 ------------------------
   1985 
   1986 These are the functions exported by the section handling part of BFD.
   1987 
   1988 2.6.5.1 `bfd_section_list_clear'
   1989 ................................
   1990 
   1991 *Synopsis*
   1992      void bfd_section_list_clear (bfd *);
   1993    *Description*
   1994 Clears the section list, and also resets the section count and hash
   1995 table entries.
   1996 
   1997 2.6.5.2 `bfd_get_section_by_name'
   1998 .................................
   1999 
   2000 *Synopsis*
   2001      asection *bfd_get_section_by_name (bfd *abfd, const char *name);
   2002    *Description*
   2003 Return the most recently created section attached to ABFD named NAME.
   2004 Return NULL if no such section exists.
   2005 
   2006 2.6.5.3 `bfd_get_next_section_by_name'
   2007 ......................................
   2008 
   2009 *Synopsis*
   2010      asection *bfd_get_next_section_by_name (asection *sec);
   2011    *Description*
   2012 Given SEC is a section returned by `bfd_get_section_by_name', return
   2013 the next most recently created section attached to the same BFD with
   2014 the same name.  Return NULL if no such section exists.
   2015 
   2016 2.6.5.4 `bfd_get_linker_section'
   2017 ................................
   2018 
   2019 *Synopsis*
   2020      asection *bfd_get_linker_section (bfd *abfd, const char *name);
   2021    *Description*
   2022 Return the linker created section attached to ABFD named NAME.  Return
   2023 NULL if no such section exists.
   2024 
   2025 2.6.5.5 `bfd_get_section_by_name_if'
   2026 ....................................
   2027 
   2028 *Synopsis*
   2029      asection *bfd_get_section_by_name_if
   2030         (bfd *abfd,
   2031          const char *name,
   2032          bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
   2033          void *obj);
   2034    *Description*
   2035 Call the provided function FUNC for each section attached to the BFD
   2036 ABFD whose name matches NAME, passing OBJ as an argument. The function
   2037 will be called as if by
   2038 
   2039             func (abfd, the_section, obj);
   2040 
   2041    It returns the first section for which FUNC returns true, otherwise
   2042 `NULL'.
   2043 
   2044 2.6.5.6 `bfd_get_unique_section_name'
   2045 .....................................
   2046 
   2047 *Synopsis*
   2048      char *bfd_get_unique_section_name
   2049         (bfd *abfd, const char *templat, int *count);
   2050    *Description*
   2051 Invent a section name that is unique in ABFD by tacking a dot and a
   2052 digit suffix onto the original TEMPLAT.  If COUNT is non-NULL, then it
   2053 specifies the first number tried as a suffix to generate a unique name.
   2054 The value pointed to by COUNT will be incremented in this case.
   2055 
   2056 2.6.5.7 `bfd_make_section_old_way'
   2057 ..................................
   2058 
   2059 *Synopsis*
   2060      asection *bfd_make_section_old_way (bfd *abfd, const char *name);
   2061    *Description*
   2062 Create a new empty section called NAME and attach it to the end of the
   2063 chain of sections for the BFD ABFD. An attempt to create a section with
   2064 a name which is already in use returns its pointer without changing the
   2065 section chain.
   2066 
   2067    It has the funny name since this is the way it used to be before it
   2068 was rewritten....
   2069 
   2070    Possible errors are:
   2071    * `bfd_error_invalid_operation' - If output has already started for
   2072      this BFD.
   2073 
   2074    * `bfd_error_no_memory' - If memory allocation fails.
   2075 
   2076 2.6.5.8 `bfd_make_section_anyway_with_flags'
   2077 ............................................
   2078 
   2079 *Synopsis*
   2080      asection *bfd_make_section_anyway_with_flags
   2081         (bfd *abfd, const char *name, flagword flags);
   2082    *Description*
   2083 Create a new empty section called NAME and attach it to the end of the
   2084 chain of sections for ABFD.  Create a new section even if there is
   2085 already a section with that name.  Also set the attributes of the new
   2086 section to the value FLAGS.
   2087 
   2088    Return `NULL' and set `bfd_error' on error; possible errors are:
   2089    * `bfd_error_invalid_operation' - If output has already started for
   2090      ABFD.
   2091 
   2092    * `bfd_error_no_memory' - If memory allocation fails.
   2093 
   2094 2.6.5.9 `bfd_make_section_anyway'
   2095 .................................
   2096 
   2097 *Synopsis*
   2098      asection *bfd_make_section_anyway (bfd *abfd, const char *name);
   2099    *Description*
   2100 Create a new empty section called NAME and attach it to the end of the
   2101 chain of sections for ABFD.  Create a new section even if there is
   2102 already a section with that name.
   2103 
   2104    Return `NULL' and set `bfd_error' on error; possible errors are:
   2105    * `bfd_error_invalid_operation' - If output has already started for
   2106      ABFD.
   2107 
   2108    * `bfd_error_no_memory' - If memory allocation fails.
   2109 
   2110 2.6.5.10 `bfd_make_section_with_flags'
   2111 ......................................
   2112 
   2113 *Synopsis*
   2114      asection *bfd_make_section_with_flags
   2115         (bfd *, const char *name, flagword flags);
   2116    *Description*
   2117 Like `bfd_make_section_anyway', but return `NULL' (without calling
   2118 bfd_set_error ()) without changing the section chain if there is
   2119 already a section named NAME.  Also set the attributes of the new
   2120 section to the value FLAGS.  If there is an error, return `NULL' and set
   2121 `bfd_error'.
   2122 
   2123 2.6.5.11 `bfd_make_section'
   2124 ...........................
   2125 
   2126 *Synopsis*
   2127      asection *bfd_make_section (bfd *, const char *name);
   2128    *Description*
   2129 Like `bfd_make_section_anyway', but return `NULL' (without calling
   2130 bfd_set_error ()) without changing the section chain if there is
   2131 already a section named NAME.  If there is an error, return `NULL' and
   2132 set `bfd_error'.
   2133 
   2134 2.6.5.12 `bfd_set_section_flags'
   2135 ................................
   2136 
   2137 *Synopsis*
   2138      bfd_boolean bfd_set_section_flags
   2139         (bfd *abfd, asection *sec, flagword flags);
   2140    *Description*
   2141 Set the attributes of the section SEC in the BFD ABFD to the value
   2142 FLAGS. Return `TRUE' on success, `FALSE' on error. Possible error
   2143 returns are:
   2144 
   2145    * `bfd_error_invalid_operation' - The section cannot have one or
   2146      more of the attributes requested. For example, a .bss section in
   2147      `a.out' may not have the `SEC_HAS_CONTENTS' field set.
   2148 
   2149 2.6.5.13 `bfd_rename_section'
   2150 .............................
   2151 
   2152 *Synopsis*
   2153      void bfd_rename_section
   2154         (bfd *abfd, asection *sec, const char *newname);
   2155    *Description*
   2156 Rename section SEC in ABFD to NEWNAME.
   2157 
   2158 2.6.5.14 `bfd_map_over_sections'
   2159 ................................
   2160 
   2161 *Synopsis*
   2162      void bfd_map_over_sections
   2163         (bfd *abfd,
   2164          void (*func) (bfd *abfd, asection *sect, void *obj),
   2165          void *obj);
   2166    *Description*
   2167 Call the provided function FUNC for each section attached to the BFD
   2168 ABFD, passing OBJ as an argument. The function will be called as if by
   2169 
   2170             func (abfd, the_section, obj);
   2171 
   2172    This is the preferred method for iterating over sections; an
   2173 alternative would be to use a loop:
   2174 
   2175                asection *p;
   2176                for (p = abfd->sections; p != NULL; p = p->next)
   2177                   func (abfd, p, ...)
   2178 
   2179 2.6.5.15 `bfd_sections_find_if'
   2180 ...............................
   2181 
   2182 *Synopsis*
   2183      asection *bfd_sections_find_if
   2184         (bfd *abfd,
   2185          bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
   2186          void *obj);
   2187    *Description*
   2188 Call the provided function OPERATION for each section attached to the
   2189 BFD ABFD, passing OBJ as an argument. The function will be called as if
   2190 by
   2191 
   2192             operation (abfd, the_section, obj);
   2193 
   2194    It returns the first section for which OPERATION returns true.
   2195 
   2196 2.6.5.16 `bfd_set_section_size'
   2197 ...............................
   2198 
   2199 *Synopsis*
   2200      bfd_boolean bfd_set_section_size
   2201         (bfd *abfd, asection *sec, bfd_size_type val);
   2202    *Description*
   2203 Set SEC to the size VAL. If the operation is ok, then `TRUE' is
   2204 returned, else `FALSE'.
   2205 
   2206    Possible error returns:
   2207    * `bfd_error_invalid_operation' - Writing has started to the BFD, so
   2208      setting the size is invalid.
   2209 
   2210 2.6.5.17 `bfd_set_section_contents'
   2211 ...................................
   2212 
   2213 *Synopsis*
   2214      bfd_boolean bfd_set_section_contents
   2215         (bfd *abfd, asection *section, const void *data,
   2216          file_ptr offset, bfd_size_type count);
   2217    *Description*
   2218 Sets the contents of the section SECTION in BFD ABFD to the data
   2219 starting in memory at DATA. The data is written to the output section
   2220 starting at offset OFFSET for COUNT octets.
   2221 
   2222    Normally `TRUE' is returned, else `FALSE'. Possible error returns
   2223 are:
   2224    * `bfd_error_no_contents' - The output section does not have the
   2225      `SEC_HAS_CONTENTS' attribute, so nothing can be written to it.
   2226 
   2227    * and some more too
   2228    This routine is front end to the back end function
   2229 `_bfd_set_section_contents'.
   2230 
   2231 2.6.5.18 `bfd_get_section_contents'
   2232 ...................................
   2233 
   2234 *Synopsis*
   2235      bfd_boolean bfd_get_section_contents
   2236         (bfd *abfd, asection *section, void *location, file_ptr offset,
   2237          bfd_size_type count);
   2238    *Description*
   2239 Read data from SECTION in BFD ABFD into memory starting at LOCATION.
   2240 The data is read at an offset of OFFSET from the start of the input
   2241 section, and is read for COUNT bytes.
   2242 
   2243    If the contents of a constructor with the `SEC_CONSTRUCTOR' flag set
   2244 are requested or if the section does not have the `SEC_HAS_CONTENTS'
   2245 flag set, then the LOCATION is filled with zeroes. If no errors occur,
   2246 `TRUE' is returned, else `FALSE'.
   2247 
   2248 2.6.5.19 `bfd_malloc_and_get_section'
   2249 .....................................
   2250 
   2251 *Synopsis*
   2252      bfd_boolean bfd_malloc_and_get_section
   2253         (bfd *abfd, asection *section, bfd_byte **buf);
   2254    *Description*
   2255 Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by
   2256 this function.
   2257 
   2258 2.6.5.20 `bfd_copy_private_section_data'
   2259 ........................................
   2260 
   2261 *Synopsis*
   2262      bfd_boolean bfd_copy_private_section_data
   2263         (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
   2264    *Description*
   2265 Copy private section information from ISEC in the BFD IBFD to the
   2266 section OSEC in the BFD OBFD.  Return `TRUE' on success, `FALSE' on
   2267 error.  Possible error returns are:
   2268 
   2269    * `bfd_error_no_memory' - Not enough memory exists to create private
   2270      data for OSEC.
   2271 
   2272      #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
   2273           BFD_SEND (obfd, _bfd_copy_private_section_data, \
   2274                     (ibfd, isection, obfd, osection))
   2275 
   2276 2.6.5.21 `bfd_generic_is_group_section'
   2277 .......................................
   2278 
   2279 *Synopsis*
   2280      bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
   2281    *Description*
   2282 Returns TRUE if SEC is a member of a group.
   2283 
   2284 2.6.5.22 `bfd_generic_discard_group'
   2285 ....................................
   2286 
   2287 *Synopsis*
   2288      bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
   2289    *Description*
   2290 Remove all members of GROUP from the output.
   2291 
   2292 
   2293 File: bfd.info,  Node: Symbols,  Next: Archives,  Prev: Sections,  Up: BFD front end
   2294 
   2295 2.7 Symbols
   2296 ===========
   2297 
   2298 BFD tries to maintain as much symbol information as it can when it
   2299 moves information from file to file. BFD passes information to
   2300 applications though the `asymbol' structure. When the application
   2301 requests the symbol table, BFD reads the table in the native form and
   2302 translates parts of it into the internal format. To maintain more than
   2303 the information passed to applications, some targets keep some
   2304 information "behind the scenes" in a structure only the particular back
   2305 end knows about. For example, the coff back end keeps the original
   2306 symbol table structure as well as the canonical structure when a BFD is
   2307 read in. On output, the coff back end can reconstruct the output symbol
   2308 table so that no information is lost, even information unique to coff
   2309 which BFD doesn't know or understand. If a coff symbol table were read,
   2310 but were written through an a.out back end, all the coff specific
   2311 information would be lost. The symbol table of a BFD is not necessarily
   2312 read in until a canonicalize request is made. Then the BFD back end
   2313 fills in a table provided by the application with pointers to the
   2314 canonical information.  To output symbols, the application provides BFD
   2315 with a table of pointers to pointers to `asymbol's. This allows
   2316 applications like the linker to output a symbol as it was read, since
   2317 the "behind the scenes" information will be still available.
   2318 
   2319 * Menu:
   2320 
   2321 * Reading Symbols::
   2322 * Writing Symbols::
   2323 * Mini Symbols::
   2324 * typedef asymbol::
   2325 * symbol handling functions::
   2326 
   2327 
   2328 File: bfd.info,  Node: Reading Symbols,  Next: Writing Symbols,  Prev: Symbols,  Up: Symbols
   2329 
   2330 2.7.1 Reading symbols
   2331 ---------------------
   2332 
   2333 There are two stages to reading a symbol table from a BFD: allocating
   2334 storage, and the actual reading process. This is an excerpt from an
   2335 application which reads the symbol table:
   2336 
   2337               long storage_needed;
   2338               asymbol **symbol_table;
   2339               long number_of_symbols;
   2340               long i;
   2341 
   2342               storage_needed = bfd_get_symtab_upper_bound (abfd);
   2343 
   2344               if (storage_needed < 0)
   2345                 FAIL
   2346 
   2347               if (storage_needed == 0)
   2348                 return;
   2349 
   2350               symbol_table = xmalloc (storage_needed);
   2351                 ...
   2352               number_of_symbols =
   2353                  bfd_canonicalize_symtab (abfd, symbol_table);
   2354 
   2355               if (number_of_symbols < 0)
   2356                 FAIL
   2357 
   2358               for (i = 0; i < number_of_symbols; i++)
   2359                 process_symbol (symbol_table[i]);
   2360 
   2361    All storage for the symbols themselves is in an objalloc connected
   2362 to the BFD; it is freed when the BFD is closed.
   2363 
   2364 
   2365 File: bfd.info,  Node: Writing Symbols,  Next: Mini Symbols,  Prev: Reading Symbols,  Up: Symbols
   2366 
   2367 2.7.2 Writing symbols
   2368 ---------------------
   2369 
   2370 Writing of a symbol table is automatic when a BFD open for writing is
   2371 closed. The application attaches a vector of pointers to pointers to
   2372 symbols to the BFD being written, and fills in the symbol count. The
   2373 close and cleanup code reads through the table provided and performs
   2374 all the necessary operations. The BFD output code must always be
   2375 provided with an "owned" symbol: one which has come from another BFD,
   2376 or one which has been created using `bfd_make_empty_symbol'.  Here is an
   2377 example showing the creation of a symbol table with only one element:
   2378 
   2379             #include "sysdep.h"
   2380             #include "bfd.h"
   2381             int main (void)
   2382             {
   2383               bfd *abfd;
   2384               asymbol *ptrs[2];
   2385               asymbol *new;
   2386 
   2387               abfd = bfd_openw ("foo","a.out-sunos-big");
   2388               bfd_set_format (abfd, bfd_object);
   2389               new = bfd_make_empty_symbol (abfd);
   2390               new->name = "dummy_symbol";
   2391               new->section = bfd_make_section_old_way (abfd, ".text");
   2392               new->flags = BSF_GLOBAL;
   2393               new->value = 0x12345;
   2394 
   2395               ptrs[0] = new;
   2396               ptrs[1] = 0;
   2397 
   2398               bfd_set_symtab (abfd, ptrs, 1);
   2399               bfd_close (abfd);
   2400               return 0;
   2401             }
   2402 
   2403             ./makesym
   2404             nm foo
   2405             00012345 A dummy_symbol
   2406 
   2407    Many formats cannot represent arbitrary symbol information; for
   2408 instance, the `a.out' object format does not allow an arbitrary number
   2409 of sections. A symbol pointing to a section which is not one  of
   2410 `.text', `.data' or `.bss' cannot be described.
   2411 
   2412 
   2413 File: bfd.info,  Node: Mini Symbols,  Next: typedef asymbol,  Prev: Writing Symbols,  Up: Symbols
   2414 
   2415 2.7.3 Mini Symbols
   2416 ------------------
   2417 
   2418 Mini symbols provide read-only access to the symbol table.  They use
   2419 less memory space, but require more time to access.  They can be useful
   2420 for tools like nm or objdump, which may have to handle symbol tables of
   2421 extremely large executables.
   2422 
   2423    The `bfd_read_minisymbols' function will read the symbols into
   2424 memory in an internal form.  It will return a `void *' pointer to a
   2425 block of memory, a symbol count, and the size of each symbol.  The
   2426 pointer is allocated using `malloc', and should be freed by the caller
   2427 when it is no longer needed.
   2428 
   2429    The function `bfd_minisymbol_to_symbol' will take a pointer to a
   2430 minisymbol, and a pointer to a structure returned by
   2431 `bfd_make_empty_symbol', and return a `asymbol' structure.  The return
   2432 value may or may not be the same as the value from
   2433 `bfd_make_empty_symbol' which was passed in.
   2434 
   2435 
   2436 File: bfd.info,  Node: typedef asymbol,  Next: symbol handling functions,  Prev: Mini Symbols,  Up: Symbols
   2437 
   2438 2.7.4 typedef asymbol
   2439 ---------------------
   2440 
   2441 An `asymbol' has the form:
   2442 
   2443 
   2444      typedef struct bfd_symbol
   2445      {
   2446        /* A pointer to the BFD which owns the symbol. This information
   2447           is necessary so that a back end can work out what additional
   2448           information (invisible to the application writer) is carried
   2449           with the symbol.
   2450 
   2451           This field is *almost* redundant, since you can use section->owner
   2452           instead, except that some symbols point to the global sections
   2453           bfd_{abs,com,und}_section.  This could be fixed by making
   2454           these globals be per-bfd (or per-target-flavor).  FIXME.  */
   2455        struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field.  */
   2456 
   2457        /* The text of the symbol. The name is left alone, and not copied; the
   2458           application may not alter it.  */
   2459        const char *name;
   2460 
   2461        /* The value of the symbol.  This really should be a union of a
   2462           numeric value with a pointer, since some flags indicate that
   2463           a pointer to another symbol is stored here.  */
   2464        symvalue value;
   2465 
   2466        /* Attributes of a symbol.  */
   2467      #define BSF_NO_FLAGS           0x00
   2468 
   2469        /* The symbol has local scope; `static' in `C'. The value
   2470           is the offset into the section of the data.  */
   2471      #define BSF_LOCAL              (1 << 0)
   2472 
   2473        /* The symbol has global scope; initialized data in `C'. The
   2474           value is the offset into the section of the data.  */
   2475      #define BSF_GLOBAL             (1 << 1)
   2476 
   2477        /* The symbol has global scope and is exported. The value is
   2478           the offset into the section of the data.  */
   2479      #define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
   2480 
   2481        /* A normal C symbol would be one of:
   2482           `BSF_LOCAL', `BSF_COMMON',  `BSF_UNDEFINED' or
   2483           `BSF_GLOBAL'.  */
   2484 
   2485        /* The symbol is a debugging record. The value has an arbitrary
   2486           meaning, unless BSF_DEBUGGING_RELOC is also set.  */
   2487      #define BSF_DEBUGGING          (1 << 2)
   2488 
   2489        /* The symbol denotes a function entry point.  Used in ELF,
   2490           perhaps others someday.  */
   2491      #define BSF_FUNCTION           (1 << 3)
   2492 
   2493        /* Used by the linker.  */
   2494      #define BSF_KEEP               (1 << 5)
   2495      #define BSF_KEEP_G             (1 << 6)
   2496 
   2497        /* A weak global symbol, overridable without warnings by
   2498           a regular global symbol of the same name.  */
   2499      #define BSF_WEAK               (1 << 7)
   2500 
   2501        /* This symbol was created to point to a section, e.g. ELF's
   2502           STT_SECTION symbols.  */
   2503      #define BSF_SECTION_SYM        (1 << 8)
   2504 
   2505        /* The symbol used to be a common symbol, but now it is
   2506           allocated.  */
   2507      #define BSF_OLD_COMMON         (1 << 9)
   2508 
   2509        /* In some files the type of a symbol sometimes alters its
   2510           location in an output file - ie in coff a `ISFCN' symbol
   2511           which is also `C_EXT' symbol appears where it was
   2512           declared and not at the end of a section.  This bit is set
   2513           by the target BFD part to convey this information.  */
   2514      #define BSF_NOT_AT_END         (1 << 10)
   2515 
   2516        /* Signal that the symbol is the label of constructor section.  */
   2517      #define BSF_CONSTRUCTOR        (1 << 11)
   2518 
   2519        /* Signal that the symbol is a warning symbol.  The name is a
   2520           warning.  The name of the next symbol is the one to warn about;
   2521           if a reference is made to a symbol with the same name as the next
   2522           symbol, a warning is issued by the linker.  */
   2523      #define BSF_WARNING            (1 << 12)
   2524 
   2525        /* Signal that the symbol is indirect.  This symbol is an indirect
   2526           pointer to the symbol with the same name as the next symbol.  */
   2527      #define BSF_INDIRECT           (1 << 13)
   2528 
   2529        /* BSF_FILE marks symbols that contain a file name.  This is used
   2530           for ELF STT_FILE symbols.  */
   2531      #define BSF_FILE               (1 << 14)
   2532 
   2533        /* Symbol is from dynamic linking information.  */
   2534      #define BSF_DYNAMIC            (1 << 15)
   2535 
   2536        /* The symbol denotes a data object.  Used in ELF, and perhaps
   2537           others someday.  */
   2538      #define BSF_OBJECT             (1 << 16)
   2539 
   2540        /* This symbol is a debugging symbol.  The value is the offset
   2541           into the section of the data.  BSF_DEBUGGING should be set
   2542           as well.  */
   2543      #define BSF_DEBUGGING_RELOC    (1 << 17)
   2544 
   2545        /* This symbol is thread local.  Used in ELF.  */
   2546      #define BSF_THREAD_LOCAL       (1 << 18)
   2547 
   2548        /* This symbol represents a complex relocation expression,
   2549           with the expression tree serialized in the symbol name.  */
   2550      #define BSF_RELC               (1 << 19)
   2551 
   2552        /* This symbol represents a signed complex relocation expression,
   2553           with the expression tree serialized in the symbol name.  */
   2554      #define BSF_SRELC              (1 << 20)
   2555 
   2556        /* This symbol was created by bfd_get_synthetic_symtab.  */
   2557      #define BSF_SYNTHETIC          (1 << 21)
   2558 
   2559        /* This symbol is an indirect code object.  Unrelated to BSF_INDIRECT.
   2560           The dynamic linker will compute the value of this symbol by
   2561           calling the function that it points to.  BSF_FUNCTION must
   2562           also be also set.  */
   2563      #define BSF_GNU_INDIRECT_FUNCTION (1 << 22)
   2564        /* This symbol is a globally unique data object.  The dynamic linker
   2565           will make sure that in the entire process there is just one symbol
   2566           with this name and type in use.  BSF_OBJECT must also be set.  */
   2567      #define BSF_GNU_UNIQUE         (1 << 23)
   2568 
   2569        flagword flags;
   2570 
   2571        /* A pointer to the section to which this symbol is
   2572           relative.  This will always be non NULL, there are special
   2573           sections for undefined and absolute symbols.  */
   2574        struct bfd_section *section;
   2575 
   2576        /* Back end special data.  */
   2577        union
   2578          {
   2579            void *p;
   2580            bfd_vma i;
   2581          }
   2582        udata;
   2583      }
   2584      asymbol;
   2585 
   2586 
   2587 File: bfd.info,  Node: symbol handling functions,  Prev: typedef asymbol,  Up: Symbols
   2588 
   2589 2.7.5 Symbol handling functions
   2590 -------------------------------
   2591 
   2592 2.7.5.1 `bfd_get_symtab_upper_bound'
   2593 ....................................
   2594 
   2595 *Description*
   2596 Return the number of bytes required to store a vector of pointers to
   2597 `asymbols' for all the symbols in the BFD ABFD, including a terminal
   2598 NULL pointer. If there are no symbols in the BFD, then return 0.  If an
   2599 error occurs, return -1.
   2600      #define bfd_get_symtab_upper_bound(abfd) \
   2601           BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
   2602 
   2603 2.7.5.2 `bfd_is_local_label'
   2604 ............................
   2605 
   2606 *Synopsis*
   2607      bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
   2608    *Description*
   2609 Return TRUE if the given symbol SYM in the BFD ABFD is a compiler
   2610 generated local label, else return FALSE.
   2611 
   2612 2.7.5.3 `bfd_is_local_label_name'
   2613 .................................
   2614 
   2615 *Synopsis*
   2616      bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
   2617    *Description*
   2618 Return TRUE if a symbol with the name NAME in the BFD ABFD is a
   2619 compiler generated local label, else return FALSE.  This just checks
   2620 whether the name has the form of a local label.
   2621      #define bfd_is_local_label_name(abfd, name) \
   2622        BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
   2623 
   2624 2.7.5.4 `bfd_is_target_special_symbol'
   2625 ......................................
   2626 
   2627 *Synopsis*
   2628      bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
   2629    *Description*
   2630 Return TRUE iff a symbol SYM in the BFD ABFD is something special to
   2631 the particular target represented by the BFD.  Such symbols should
   2632 normally not be mentioned to the user.
   2633      #define bfd_is_target_special_symbol(abfd, sym) \
   2634        BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
   2635 
   2636 2.7.5.5 `bfd_canonicalize_symtab'
   2637 .................................
   2638 
   2639 *Description*
   2640 Read the symbols from the BFD ABFD, and fills in the vector LOCATION
   2641 with pointers to the symbols and a trailing NULL.  Return the actual
   2642 number of symbol pointers, not including the NULL.
   2643      #define bfd_canonicalize_symtab(abfd, location) \
   2644        BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
   2645 
   2646 2.7.5.6 `bfd_set_symtab'
   2647 ........................
   2648 
   2649 *Synopsis*
   2650      bfd_boolean bfd_set_symtab
   2651         (bfd *abfd, asymbol **location, unsigned int count);
   2652    *Description*
   2653 Arrange that when the output BFD ABFD is closed, the table LOCATION of
   2654 COUNT pointers to symbols will be written.
   2655 
   2656 2.7.5.7 `bfd_print_symbol_vandf'
   2657 ................................
   2658 
   2659 *Synopsis*
   2660      void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
   2661    *Description*
   2662 Print the value and flags of the SYMBOL supplied to the stream FILE.
   2663 
   2664 2.7.5.8 `bfd_make_empty_symbol'
   2665 ...............................
   2666 
   2667 *Description*
   2668 Create a new `asymbol' structure for the BFD ABFD and return a pointer
   2669 to it.
   2670 
   2671    This routine is necessary because each back end has private
   2672 information surrounding the `asymbol'. Building your own `asymbol' and
   2673 pointing to it will not create the private information, and will cause
   2674 problems later on.
   2675      #define bfd_make_empty_symbol(abfd) \
   2676        BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
   2677 
   2678 2.7.5.9 `_bfd_generic_make_empty_symbol'
   2679 ........................................
   2680 
   2681 *Synopsis*
   2682      asymbol *_bfd_generic_make_empty_symbol (bfd *);
   2683    *Description*
   2684 Create a new `asymbol' structure for the BFD ABFD and return a pointer
   2685 to it.  Used by core file routines, binary back-end and anywhere else
   2686 where no private info is needed.
   2687 
   2688 2.7.5.10 `bfd_make_debug_symbol'
   2689 ................................
   2690 
   2691 *Description*
   2692 Create a new `asymbol' structure for the BFD ABFD, to be used as a
   2693 debugging symbol.  Further details of its use have yet to be worked out.
   2694      #define bfd_make_debug_symbol(abfd,ptr,size) \
   2695        BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
   2696 
   2697 2.7.5.11 `bfd_decode_symclass'
   2698 ..............................
   2699 
   2700 *Description*
   2701 Return a character corresponding to the symbol class of SYMBOL, or '?'
   2702 for an unknown class.
   2703 
   2704    *Synopsis*
   2705      int bfd_decode_symclass (asymbol *symbol);
   2706    
   2707 2.7.5.12 `bfd_is_undefined_symclass'
   2708 ....................................
   2709 
   2710 *Description*
   2711 Returns non-zero if the class symbol returned by bfd_decode_symclass
   2712 represents an undefined symbol.  Returns zero otherwise.
   2713 
   2714    *Synopsis*
   2715      bfd_boolean bfd_is_undefined_symclass (int symclass);
   2716    
   2717 2.7.5.13 `bfd_symbol_info'
   2718 ..........................
   2719 
   2720 *Description*
   2721 Fill in the basic info about symbol that nm needs.  Additional info may
   2722 be added by the back-ends after calling this function.
   2723 
   2724    *Synopsis*
   2725      void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
   2726    
   2727 2.7.5.14 `bfd_copy_private_symbol_data'
   2728 .......................................
   2729 
   2730 *Synopsis*
   2731      bfd_boolean bfd_copy_private_symbol_data
   2732         (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
   2733    *Description*
   2734 Copy private symbol information from ISYM in the BFD IBFD to the symbol
   2735 OSYM in the BFD OBFD.  Return `TRUE' on success, `FALSE' on error.
   2736 Possible error returns are:
   2737 
   2738    * `bfd_error_no_memory' - Not enough memory exists to create private
   2739      data for OSEC.
   2740 
   2741      #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
   2742        BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
   2743                  (ibfd, isymbol, obfd, osymbol))
   2744 
   2745 
   2746 File: bfd.info,  Node: Archives,  Next: Formats,  Prev: Symbols,  Up: BFD front end
   2747 
   2748 2.8 Archives
   2749 ============
   2750 
   2751 *Description*
   2752 An archive (or library) is just another BFD.  It has a symbol table,
   2753 although there's not much a user program will do with it.
   2754 
   2755    The big difference between an archive BFD and an ordinary BFD is
   2756 that the archive doesn't have sections.  Instead it has a chain of BFDs
   2757 that are considered its contents.  These BFDs can be manipulated like
   2758 any other.  The BFDs contained in an archive opened for reading will
   2759 all be opened for reading.  You may put either input or output BFDs
   2760 into an archive opened for output; they will be handled correctly when
   2761 the archive is closed.
   2762 
   2763    Use `bfd_openr_next_archived_file' to step through the contents of
   2764 an archive opened for input.  You don't have to read the entire archive
   2765 if you don't want to!  Read it until you find what you want.
   2766 
   2767    A BFD returned by `bfd_openr_next_archived_file' can be closed
   2768 manually with `bfd_close'.  If you do not close it, then a second
   2769 iteration through the members of an archive may return the same BFD.
   2770 If you close the archive BFD, then all the member BFDs will
   2771 automatically be closed as well.
   2772 
   2773    Archive contents of output BFDs are chained through the
   2774 `archive_next' pointer in a BFD.  The first one is findable through the
   2775 `archive_head' slot of the archive.  Set it with `bfd_set_archive_head'
   2776 (q.v.).  A given BFD may be in only one open output archive at a time.
   2777 
   2778    As expected, the BFD archive code is more general than the archive
   2779 code of any given environment.  BFD archives may contain files of
   2780 different formats (e.g., a.out and coff) and even different
   2781 architectures.  You may even place archives recursively into archives!
   2782 
   2783    This can cause unexpected confusion, since some archive formats are
   2784 more expressive than others.  For instance, Intel COFF archives can
   2785 preserve long filenames; SunOS a.out archives cannot.  If you move a
   2786 file from the first to the second format and back again, the filename
   2787 may be truncated.  Likewise, different a.out environments have different
   2788 conventions as to how they truncate filenames, whether they preserve
   2789 directory names in filenames, etc.  When interoperating with native
   2790 tools, be sure your files are homogeneous.
   2791 
   2792    Beware: most of these formats do not react well to the presence of
   2793 spaces in filenames.  We do the best we can, but can't always handle
   2794 this case due to restrictions in the format of archives.  Many Unix
   2795 utilities are braindead in regards to spaces and such in filenames
   2796 anyway, so this shouldn't be much of a restriction.
   2797 
   2798    Archives are supported in BFD in `archive.c'.
   2799 
   2800 2.8.1 Archive functions
   2801 -----------------------
   2802 
   2803 2.8.1.1 `bfd_get_next_mapent'
   2804 .............................
   2805 
   2806 *Synopsis*
   2807      symindex bfd_get_next_mapent
   2808         (bfd *abfd, symindex previous, carsym **sym);
   2809    *Description*
   2810 Step through archive ABFD's symbol table (if it has one).  Successively
   2811 update SYM with the next symbol's information, returning that symbol's
   2812 (internal) index into the symbol table.
   2813 
   2814    Supply `BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first
   2815 one; returns `BFD_NO_MORE_SYMBOLS' when you've already got the last one.
   2816 
   2817    A `carsym' is a canonical archive symbol.  The only user-visible
   2818 element is its name, a null-terminated string.
   2819 
   2820 2.8.1.2 `bfd_set_archive_head'
   2821 ..............................
   2822 
   2823 *Synopsis*
   2824      bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
   2825    *Description*
   2826 Set the head of the chain of BFDs contained in the archive OUTPUT to
   2827 NEW_HEAD.
   2828 
   2829 2.8.1.3 `bfd_openr_next_archived_file'
   2830 ......................................
   2831 
   2832 *Synopsis*
   2833      bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
   2834    *Description*
   2835 Provided a BFD, ARCHIVE, containing an archive and NULL, open an input
   2836 BFD on the first contained element and returns that.  Subsequent calls
   2837 should pass the archive and the previous return value to return a
   2838 created BFD to the next contained element. NULL is returned when there
   2839 are no more.
   2840 
   2841 
   2842 File: bfd.info,  Node: Formats,  Next: Relocations,  Prev: Archives,  Up: BFD front end
   2843 
   2844 2.9 File formats
   2845 ================
   2846 
   2847 A format is a BFD concept of high level file contents type. The formats
   2848 supported by BFD are:
   2849 
   2850    * `bfd_object'
   2851    The BFD may contain data, symbols, relocations and debug info.
   2852 
   2853    * `bfd_archive'
   2854    The BFD contains other BFDs and an optional index.
   2855 
   2856    * `bfd_core'
   2857    The BFD contains the result of an executable core dump.
   2858 
   2859 2.9.1 File format functions
   2860 ---------------------------
   2861 
   2862 2.9.1.1 `bfd_check_format'
   2863 ..........................
   2864 
   2865 *Synopsis*
   2866      bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
   2867    *Description*
   2868 Verify if the file attached to the BFD ABFD is compatible with the
   2869 format FORMAT (i.e., one of `bfd_object', `bfd_archive' or `bfd_core').
   2870 
   2871    If the BFD has been set to a specific target before the call, only
   2872 the named target and format combination is checked. If the target has
   2873 not been set, or has been set to `default', then all the known target
   2874 backends is interrogated to determine a match.  If the default target
   2875 matches, it is used.  If not, exactly one target must recognize the
   2876 file, or an error results.
   2877 
   2878    The function returns `TRUE' on success, otherwise `FALSE' with one
   2879 of the following error codes:
   2880 
   2881    * `bfd_error_invalid_operation' - if `format' is not one of
   2882      `bfd_object', `bfd_archive' or `bfd_core'.
   2883 
   2884    * `bfd_error_system_call' - if an error occured during a read - even
   2885      some file mismatches can cause bfd_error_system_calls.
   2886 
   2887    * `file_not_recognised' - none of the backends recognised the file
   2888      format.
   2889 
   2890    * `bfd_error_file_ambiguously_recognized' - more than one backend
   2891      recognised the file format.
   2892 
   2893 2.9.1.2 `bfd_check_format_matches'
   2894 ..................................
   2895 
   2896 *Synopsis*
   2897      bfd_boolean bfd_check_format_matches
   2898         (bfd *abfd, bfd_format format, char ***matching);
   2899    *Description*
   2900 Like `bfd_check_format', except when it returns FALSE with `bfd_errno'
   2901 set to `bfd_error_file_ambiguously_recognized'.  In that case, if
   2902 MATCHING is not NULL, it will be filled in with a NULL-terminated list
   2903 of the names of the formats that matched, allocated with `malloc'.
   2904 Then the user may choose a format and try again.
   2905 
   2906    When done with the list that MATCHING points to, the caller should
   2907 free it.
   2908 
   2909 2.9.1.3 `bfd_set_format'
   2910 ........................
   2911 
   2912 *Synopsis*
   2913      bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
   2914    *Description*
   2915 This function sets the file format of the BFD ABFD to the format
   2916 FORMAT. If the target set in the BFD does not support the format
   2917 requested, the format is invalid, or the BFD is not open for writing,
   2918 then an error occurs.
   2919 
   2920 2.9.1.4 `bfd_format_string'
   2921 ...........................
   2922 
   2923 *Synopsis*
   2924      const char *bfd_format_string (bfd_format format);
   2925    *Description*
   2926 Return a pointer to a const string `invalid', `object', `archive',
   2927 `core', or `unknown', depending upon the value of FORMAT.
   2928 
   2929 
   2930 File: bfd.info,  Node: Relocations,  Next: Core Files,  Prev: Formats,  Up: BFD front end
   2931 
   2932 2.10 Relocations
   2933 ================
   2934 
   2935 BFD maintains relocations in much the same way it maintains symbols:
   2936 they are left alone until required, then read in en-masse and
   2937 translated into an internal form.  A common routine
   2938 `bfd_perform_relocation' acts upon the canonical form to do the fixup.
   2939 
   2940    Relocations are maintained on a per section basis, while symbols are
   2941 maintained on a per BFD basis.
   2942 
   2943    All that a back end has to do to fit the BFD interface is to create
   2944 a `struct reloc_cache_entry' for each relocation in a particular
   2945 section, and fill in the right bits of the structures.
   2946 
   2947 * Menu:
   2948 
   2949 * typedef arelent::
   2950 * howto manager::
   2951 
   2952 
   2953 File: bfd.info,  Node: typedef arelent,  Next: howto manager,  Prev: Relocations,  Up: Relocations
   2954 
   2955 2.10.1 typedef arelent
   2956 ----------------------
   2957 
   2958 This is the structure of a relocation entry:
   2959 
   2960 
   2961      typedef enum bfd_reloc_status
   2962      {
   2963        /* No errors detected.  */
   2964        bfd_reloc_ok,
   2965 
   2966        /* The relocation was performed, but there was an overflow.  */
   2967        bfd_reloc_overflow,
   2968 
   2969        /* The address to relocate was not within the section supplied.  */
   2970        bfd_reloc_outofrange,
   2971 
   2972        /* Used by special functions.  */
   2973        bfd_reloc_continue,
   2974 
   2975        /* Unsupported relocation size requested.  */
   2976        bfd_reloc_notsupported,
   2977 
   2978        /* Unused.  */
   2979        bfd_reloc_other,
   2980 
   2981        /* The symbol to relocate against was undefined.  */
   2982        bfd_reloc_undefined,
   2983 
   2984        /* The relocation was performed, but may not be ok - presently
   2985           generated only when linking i960 coff files with i960 b.out
   2986           symbols.  If this type is returned, the error_message argument
   2987           to bfd_perform_relocation will be set.  */
   2988        bfd_reloc_dangerous
   2989       }
   2990       bfd_reloc_status_type;
   2991 
   2992 
   2993      typedef struct reloc_cache_entry
   2994      {
   2995        /* A pointer into the canonical table of pointers.  */
   2996        struct bfd_symbol **sym_ptr_ptr;
   2997 
   2998        /* offset in section.  */
   2999        bfd_size_type address;
   3000 
   3001        /* addend for relocation value.  */
   3002        bfd_vma addend;
   3003 
   3004        /* Pointer to how to perform the required relocation.  */
   3005        reloc_howto_type *howto;
   3006 
   3007      }
   3008      arelent;
   3009    *Description*
   3010 Here is a description of each of the fields within an `arelent':
   3011 
   3012    * `sym_ptr_ptr'
   3013    The symbol table pointer points to a pointer to the symbol
   3014 associated with the relocation request.  It is the pointer into the
   3015 table returned by the back end's `canonicalize_symtab' action. *Note
   3016 Symbols::. The symbol is referenced through a pointer to a pointer so
   3017 that tools like the linker can fix up all the symbols of the same name
   3018 by modifying only one pointer. The relocation routine looks in the
   3019 symbol and uses the base of the section the symbol is attached to and
   3020 the value of the symbol as the initial relocation offset. If the symbol
   3021 pointer is zero, then the section provided is looked up.
   3022 
   3023    * `address'
   3024    The `address' field gives the offset in bytes from the base of the
   3025 section data which owns the relocation record to the first byte of
   3026 relocatable information. The actual data relocated will be relative to
   3027 this point; for example, a relocation type which modifies the bottom
   3028 two bytes of a four byte word would not touch the first byte pointed to
   3029 in a big endian world.
   3030 
   3031    * `addend'
   3032    The `addend' is a value provided by the back end to be added (!)  to
   3033 the relocation offset. Its interpretation is dependent upon the howto.
   3034 For example, on the 68k the code:
   3035 
   3036              char foo[];
   3037              main()
   3038                      {
   3039                      return foo[0x12345678];
   3040                      }
   3041 
   3042    Could be compiled into:
   3043 
   3044              linkw fp,#-4
   3045              moveb @#12345678,d0
   3046              extbl d0
   3047              unlk fp
   3048              rts
   3049 
   3050    This could create a reloc pointing to `foo', but leave the offset in
   3051 the data, something like:
   3052 
   3053      RELOCATION RECORDS FOR [.text]:
   3054      offset   type      value
   3055      00000006 32        _foo
   3056 
   3057      00000000 4e56 fffc          ; linkw fp,#-4
   3058      00000004 1039 1234 5678     ; moveb @#12345678,d0
   3059      0000000a 49c0               ; extbl d0
   3060      0000000c 4e5e               ; unlk fp
   3061      0000000e 4e75               ; rts
   3062 
   3063    Using coff and an 88k, some instructions don't have enough space in
   3064 them to represent the full address range, and pointers have to be
   3065 loaded in two parts. So you'd get something like:
   3066 
   3067              or.u     r13,r0,hi16(_foo+0x12345678)
   3068              ld.b     r2,r13,lo16(_foo+0x12345678)
   3069              jmp      r1
   3070 
   3071    This should create two relocs, both pointing to `_foo', and with
   3072 0x12340000 in their addend field. The data would consist of:
   3073 
   3074      RELOCATION RECORDS FOR [.text]:
   3075      offset   type      value
   3076      00000002 HVRT16    _foo+0x12340000
   3077      00000006 LVRT16    _foo+0x12340000
   3078 
   3079      00000000 5da05678           ; or.u r13,r0,0x5678
   3080      00000004 1c4d5678           ; ld.b r2,r13,0x5678
   3081      00000008 f400c001           ; jmp r1
   3082 
   3083    The relocation routine digs out the value from the data, adds it to
   3084 the addend to get the original offset, and then adds the value of
   3085 `_foo'. Note that all 32 bits have to be kept around somewhere, to cope
   3086 with carry from bit 15 to bit 16.
   3087 
   3088    One further example is the sparc and the a.out format. The sparc has
   3089 a similar problem to the 88k, in that some instructions don't have room
   3090 for an entire offset, but on the sparc the parts are created in odd
   3091 sized lumps. The designers of the a.out format chose to not use the
   3092 data within the section for storing part of the offset; all the offset
   3093 is kept within the reloc. Anything in the data should be ignored.
   3094 
   3095              save %sp,-112,%sp
   3096              sethi %hi(_foo+0x12345678),%g2
   3097              ldsb [%g2+%lo(_foo+0x12345678)],%i0
   3098              ret
   3099              restore
   3100 
   3101    Both relocs contain a pointer to `foo', and the offsets contain junk.
   3102 
   3103      RELOCATION RECORDS FOR [.text]:
   3104      offset   type      value
   3105      00000004 HI22      _foo+0x12345678
   3106      00000008 LO10      _foo+0x12345678
   3107 
   3108      00000000 9de3bf90     ; save %sp,-112,%sp
   3109      00000004 05000000     ; sethi %hi(_foo+0),%g2
   3110      00000008 f048a000     ; ldsb [%g2+%lo(_foo+0)],%i0
   3111      0000000c 81c7e008     ; ret
   3112      00000010 81e80000     ; restore
   3113 
   3114    * `howto'
   3115    The `howto' field can be imagined as a relocation instruction. It is
   3116 a pointer to a structure which contains information on what to do with
   3117 all of the other information in the reloc record and data section. A
   3118 back end would normally have a relocation instruction set and turn
   3119 relocations into pointers to the correct structure on input - but it
   3120 would be possible to create each howto field on demand.
   3121 
   3122 2.10.1.1 `enum complain_overflow'
   3123 .................................
   3124 
   3125 Indicates what sort of overflow checking should be done when performing
   3126 a relocation.
   3127 
   3128 
   3129      enum complain_overflow
   3130      {
   3131        /* Do not complain on overflow.  */
   3132        complain_overflow_dont,
   3133 
   3134        /* Complain if the value overflows when considered as a signed
   3135           number one bit larger than the field.  ie. A bitfield of N bits
   3136           is allowed to represent -2**n to 2**n-1.  */
   3137        complain_overflow_bitfield,
   3138 
   3139        /* Complain if the value overflows when considered as a signed
   3140           number.  */
   3141        complain_overflow_signed,
   3142 
   3143        /* Complain if the value overflows when considered as an
   3144           unsigned number.  */
   3145        complain_overflow_unsigned
   3146      };
   3147 
   3148 2.10.1.2 `reloc_howto_type'
   3149 ...........................
   3150 
   3151 The `reloc_howto_type' is a structure which contains all the
   3152 information that libbfd needs to know to tie up a back end's data.
   3153 
   3154      struct bfd_symbol;             /* Forward declaration.  */
   3155 
   3156      struct reloc_howto_struct
   3157      {
   3158        /*  The type field has mainly a documentary use - the back end can
   3159            do what it wants with it, though normally the back end's
   3160            external idea of what a reloc number is stored
   3161            in this field.  For example, a PC relative word relocation
   3162            in a coff environment has the type 023 - because that's
   3163            what the outside world calls a R_PCRWORD reloc.  */
   3164        unsigned int type;
   3165 
   3166        /*  The value the final relocation is shifted right by.  This drops
   3167            unwanted data from the relocation.  */
   3168        unsigned int rightshift;
   3169 
   3170        /*  The size of the item to be relocated.  This is *not* a
   3171            power-of-two measure.  To get the number of bytes operated
   3172            on by a type of relocation, use bfd_get_reloc_size.  */
   3173        int size;
   3174 
   3175        /*  The number of bits in the item to be relocated.  This is used
   3176            when doing overflow checking.  */
   3177        unsigned int bitsize;
   3178 
   3179        /*  The relocation is relative to the field being relocated.  */
   3180        bfd_boolean pc_relative;
   3181 
   3182        /*  The bit position of the reloc value in the destination.
   3183            The relocated value is left shifted by this amount.  */
   3184        unsigned int bitpos;
   3185 
   3186        /* What type of overflow error should be checked for when
   3187           relocating.  */
   3188        enum complain_overflow complain_on_overflow;
   3189 
   3190        /* If this field is non null, then the supplied function is
   3191           called rather than the normal function.  This allows really
   3192           strange relocation methods to be accommodated (e.g., i960 callj
   3193           instructions).  */
   3194        bfd_reloc_status_type (*special_function)
   3195          (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
   3196           bfd *, char **);
   3197 
   3198        /* The textual name of the relocation type.  */
   3199        char *name;
   3200 
   3201        /* Some formats record a relocation addend in the section contents
   3202           rather than with the relocation.  For ELF formats this is the
   3203           distinction between USE_REL and USE_RELA (though the code checks
   3204           for USE_REL == 1/0).  The value of this field is TRUE if the
   3205           addend is recorded with the section contents; when performing a
   3206           partial link (ld -r) the section contents (the data) will be
   3207           modified.  The value of this field is FALSE if addends are
   3208           recorded with the relocation (in arelent.addend); when performing
   3209           a partial link the relocation will be modified.
   3210           All relocations for all ELF USE_RELA targets should set this field
   3211           to FALSE (values of TRUE should be looked on with suspicion).
   3212           However, the converse is not true: not all relocations of all ELF
   3213           USE_REL targets set this field to TRUE.  Why this is so is peculiar
   3214           to each particular target.  For relocs that aren't used in partial
   3215           links (e.g. GOT stuff) it doesn't matter what this is set to.  */
   3216        bfd_boolean partial_inplace;
   3217 
   3218        /* src_mask selects the part of the instruction (or data) to be used
   3219           in the relocation sum.  If the target relocations don't have an
   3220           addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
   3221           dst_mask to extract the addend from the section contents.  If
   3222           relocations do have an addend in the reloc, eg. ELF USE_RELA, this
   3223           field should be zero.  Non-zero values for ELF USE_RELA targets are
   3224           bogus as in those cases the value in the dst_mask part of the
   3225           section contents should be treated as garbage.  */
   3226        bfd_vma src_mask;
   3227 
   3228        /* dst_mask selects which parts of the instruction (or data) are
   3229           replaced with a relocated value.  */
   3230        bfd_vma dst_mask;
   3231 
   3232        /* When some formats create PC relative instructions, they leave
   3233           the value of the pc of the place being relocated in the offset
   3234           slot of the instruction, so that a PC relative relocation can
   3235           be made just by adding in an ordinary offset (e.g., sun3 a.out).
   3236           Some formats leave the displacement part of an instruction
   3237           empty (e.g., m88k bcs); this flag signals the fact.  */
   3238        bfd_boolean pcrel_offset;
   3239      };
   3240    
   3241 2.10.1.3 `The HOWTO Macro'
   3242 ..........................
   3243 
   3244 *Description*
   3245 The HOWTO define is horrible and will go away.
   3246      #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
   3247        { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
   3248 
   3249    *Description*
   3250 And will be replaced with the totally magic way. But for the moment, we
   3251 are compatible, so do it this way.
   3252      #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
   3253        HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
   3254               NAME, FALSE, 0, 0, IN)
   3255 
   3256    *Description*
   3257 This is used to fill in an empty howto entry in an array.
   3258      #define EMPTY_HOWTO(C) \
   3259        HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
   3260               NULL, FALSE, 0, 0, FALSE)
   3261 
   3262    *Description*
   3263 Helper routine to turn a symbol into a relocation value.
   3264      #define HOWTO_PREPARE(relocation, symbol)               \
   3265        {                                                     \
   3266          if (symbol != NULL)                                 \
   3267            {                                                 \
   3268              if (bfd_is_com_section (symbol->section))       \
   3269                {                                             \
   3270                  relocation = 0;                             \
   3271                }                                             \
   3272              else                                            \
   3273                {                                             \
   3274                  relocation = symbol->value;                 \
   3275                }                                             \
   3276            }                                                 \
   3277        }
   3278 
   3279 2.10.1.4 `bfd_get_reloc_size'
   3280 .............................
   3281 
   3282 *Synopsis*
   3283      unsigned int bfd_get_reloc_size (reloc_howto_type *);
   3284    *Description*
   3285 For a reloc_howto_type that operates on a fixed number of bytes, this
   3286 returns the number of bytes operated on.
   3287 
   3288 2.10.1.5 `arelent_chain'
   3289 ........................
   3290 
   3291 *Description*
   3292 How relocs are tied together in an `asection':
   3293      typedef struct relent_chain
   3294      {
   3295        arelent relent;
   3296        struct relent_chain *next;
   3297      }
   3298      arelent_chain;
   3299 
   3300 2.10.1.6 `bfd_check_overflow'
   3301 .............................
   3302 
   3303 *Synopsis*
   3304      bfd_reloc_status_type bfd_check_overflow
   3305         (enum complain_overflow how,
   3306          unsigned int bitsize,
   3307          unsigned int rightshift,
   3308          unsigned int addrsize,
   3309          bfd_vma relocation);
   3310    *Description*
   3311 Perform overflow checking on RELOCATION which has BITSIZE significant
   3312 bits and will be shifted right by RIGHTSHIFT bits, on a machine with
   3313 addresses containing ADDRSIZE significant bits.  The result is either of
   3314 `bfd_reloc_ok' or `bfd_reloc_overflow'.
   3315 
   3316 2.10.1.7 `bfd_perform_relocation'
   3317 .................................
   3318 
   3319 *Synopsis*
   3320      bfd_reloc_status_type bfd_perform_relocation
   3321         (bfd *abfd,
   3322          arelent *reloc_entry,
   3323          void *data,
   3324          asection *input_section,
   3325          bfd *output_bfd,
   3326          char **error_message);
   3327    *Description*
   3328 If OUTPUT_BFD is supplied to this function, the generated image will be
   3329 relocatable; the relocations are copied to the output file after they
   3330 have been changed to reflect the new state of the world. There are two
   3331 ways of reflecting the results of partial linkage in an output file: by
   3332 modifying the output data in place, and by modifying the relocation
   3333 record.  Some native formats (e.g., basic a.out and basic coff) have no
   3334 way of specifying an addend in the relocation type, so the addend has
   3335 to go in the output data.  This is no big deal since in these formats
   3336 the output data slot will always be big enough for the addend. Complex
   3337 reloc types with addends were invented to solve just this problem.  The
   3338 ERROR_MESSAGE argument is set to an error message if this return
   3339 `bfd_reloc_dangerous'.
   3340 
   3341 2.10.1.8 `bfd_install_relocation'
   3342 .................................
   3343 
   3344 *Synopsis*
   3345      bfd_reloc_status_type bfd_install_relocation
   3346         (bfd *abfd,
   3347          arelent *reloc_entry,
   3348          void *data, bfd_vma data_start,
   3349          asection *input_section,
   3350          char **error_message);
   3351    *Description*
   3352 This looks remarkably like `bfd_perform_relocation', except it does not
   3353 expect that the section contents have been filled in.  I.e., it's
   3354 suitable for use when creating, rather than applying a relocation.
   3355 
   3356    For now, this function should be considered reserved for the
   3357 assembler.
   3358 
   3359 
   3360 File: bfd.info,  Node: howto manager,  Prev: typedef arelent,  Up: Relocations
   3361 
   3362 2.10.2 The howto manager
   3363 ------------------------
   3364 
   3365 When an application wants to create a relocation, but doesn't know what
   3366 the target machine might call it, it can find out by using this bit of
   3367 code.
   3368 
   3369 2.10.2.1 `bfd_reloc_code_type'
   3370 ..............................
   3371 
   3372 *Description*
   3373 The insides of a reloc code.  The idea is that, eventually, there will
   3374 be one enumerator for every type of relocation we ever do.  Pass one of
   3375 these values to `bfd_reloc_type_lookup', and it'll return a howto
   3376 pointer.
   3377 
   3378    This does mean that the application must determine the correct
   3379 enumerator value; you can't get a howto pointer from a random set of
   3380 attributes.
   3381 
   3382    Here are the possible values for `enum bfd_reloc_code_real':
   3383 
   3384  -- : BFD_RELOC_64
   3385  -- : BFD_RELOC_32
   3386  -- : BFD_RELOC_26
   3387  -- : BFD_RELOC_24
   3388  -- : BFD_RELOC_16
   3389  -- : BFD_RELOC_14
   3390  -- : BFD_RELOC_8
   3391      Basic absolute relocations of N bits.
   3392 
   3393  -- : BFD_RELOC_64_PCREL
   3394  -- : BFD_RELOC_32_PCREL
   3395  -- : BFD_RELOC_24_PCREL
   3396  -- : BFD_RELOC_16_PCREL
   3397  -- : BFD_RELOC_12_PCREL
   3398  -- : BFD_RELOC_8_PCREL
   3399      PC-relative relocations.  Sometimes these are relative to the
   3400      address of the relocation itself; sometimes they are relative to
   3401      the start of the section containing the relocation.  It depends on
   3402      the specific target.
   3403 
   3404      The 24-bit relocation is used in some Intel 960 configurations.
   3405 
   3406  -- : BFD_RELOC_32_SECREL
   3407      Section relative relocations.  Some targets need this for DWARF2.
   3408 
   3409  -- : BFD_RELOC_32_GOT_PCREL
   3410  -- : BFD_RELOC_16_GOT_PCREL
   3411  -- : BFD_RELOC_8_GOT_PCREL
   3412  -- : BFD_RELOC_32_GOTOFF
   3413  -- : BFD_RELOC_16_GOTOFF
   3414  -- : BFD_RELOC_LO16_GOTOFF
   3415  -- : BFD_RELOC_HI16_GOTOFF
   3416  -- : BFD_RELOC_HI16_S_GOTOFF
   3417  -- : BFD_RELOC_8_GOTOFF
   3418  -- : BFD_RELOC_64_PLT_PCREL
   3419  -- : BFD_RELOC_32_PLT_PCREL
   3420  -- : BFD_RELOC_24_PLT_PCREL
   3421  -- : BFD_RELOC_16_PLT_PCREL
   3422  -- : BFD_RELOC_8_PLT_PCREL
   3423  -- : BFD_RELOC_64_PLTOFF
   3424  -- : BFD_RELOC_32_PLTOFF
   3425  -- : BFD_RELOC_16_PLTOFF
   3426  -- : BFD_RELOC_LO16_PLTOFF
   3427  -- : BFD_RELOC_HI16_PLTOFF
   3428  -- : BFD_RELOC_HI16_S_PLTOFF
   3429  -- : BFD_RELOC_8_PLTOFF
   3430      For ELF.
   3431 
   3432  -- : BFD_RELOC_SIZE32
   3433  -- : BFD_RELOC_SIZE64
   3434      Size relocations.
   3435 
   3436  -- : BFD_RELOC_68K_GLOB_DAT
   3437  -- : BFD_RELOC_68K_JMP_SLOT
   3438  -- : BFD_RELOC_68K_RELATIVE
   3439  -- : BFD_RELOC_68K_TLS_GD32
   3440  -- : BFD_RELOC_68K_TLS_GD16
   3441  -- : BFD_RELOC_68K_TLS_GD8
   3442  -- : BFD_RELOC_68K_TLS_LDM32
   3443  -- : BFD_RELOC_68K_TLS_LDM16
   3444  -- : BFD_RELOC_68K_TLS_LDM8
   3445  -- : BFD_RELOC_68K_TLS_LDO32
   3446  -- : BFD_RELOC_68K_TLS_LDO16
   3447  -- : BFD_RELOC_68K_TLS_LDO8
   3448  -- : BFD_RELOC_68K_TLS_IE32
   3449  -- : BFD_RELOC_68K_TLS_IE16
   3450  -- : BFD_RELOC_68K_TLS_IE8
   3451  -- : BFD_RELOC_68K_TLS_LE32
   3452  -- : BFD_RELOC_68K_TLS_LE16
   3453  -- : BFD_RELOC_68K_TLS_LE8
   3454      Relocations used by 68K ELF.
   3455 
   3456  -- : BFD_RELOC_32_BASEREL
   3457  -- : BFD_RELOC_16_BASEREL
   3458  -- : BFD_RELOC_LO16_BASEREL
   3459  -- : BFD_RELOC_HI16_BASEREL
   3460  -- : BFD_RELOC_HI16_S_BASEREL
   3461  -- : BFD_RELOC_8_BASEREL
   3462  -- : BFD_RELOC_RVA
   3463      Linkage-table relative.
   3464 
   3465  -- : BFD_RELOC_8_FFnn
   3466      Absolute 8-bit relocation, but used to form an address like 0xFFnn.
   3467 
   3468  -- : BFD_RELOC_32_PCREL_S2
   3469  -- : BFD_RELOC_16_PCREL_S2
   3470  -- : BFD_RELOC_23_PCREL_S2
   3471      These PC-relative relocations are stored as word displacements -
   3472      i.e., byte displacements shifted right two bits.  The 30-bit word
   3473      displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the
   3474      SPARC.  (SPARC tools generally refer to this as <<WDISP30>>.)  The
   3475      signed 16-bit displacement is used on the MIPS, and the 23-bit
   3476      displacement is used on the Alpha.
   3477 
   3478  -- : BFD_RELOC_HI22
   3479  -- : BFD_RELOC_LO10
   3480      High 22 bits and low 10 bits of 32-bit value, placed into lower
   3481      bits of the target word.  These are used on the SPARC.
   3482 
   3483  -- : BFD_RELOC_GPREL16
   3484  -- : BFD_RELOC_GPREL32
   3485      For systems that allocate a Global Pointer register, these are
   3486      displacements off that register.  These relocation types are
   3487      handled specially, because the value the register will have is
   3488      decided relatively late.
   3489 
   3490  -- : BFD_RELOC_I960_CALLJ
   3491      Reloc types used for i960/b.out.
   3492 
   3493  -- : BFD_RELOC_NONE
   3494  -- : BFD_RELOC_SPARC_WDISP22
   3495  -- : BFD_RELOC_SPARC22
   3496  -- : BFD_RELOC_SPARC13
   3497  -- : BFD_RELOC_SPARC_GOT10
   3498  -- : BFD_RELOC_SPARC_GOT13
   3499  -- : BFD_RELOC_SPARC_GOT22
   3500  -- : BFD_RELOC_SPARC_PC10
   3501  -- : BFD_RELOC_SPARC_PC22
   3502  -- : BFD_RELOC_SPARC_WPLT30
   3503  -- : BFD_RELOC_SPARC_COPY
   3504  -- : BFD_RELOC_SPARC_GLOB_DAT
   3505  -- : BFD_RELOC_SPARC_JMP_SLOT
   3506  -- : BFD_RELOC_SPARC_RELATIVE
   3507  -- : BFD_RELOC_SPARC_UA16
   3508  -- : BFD_RELOC_SPARC_UA32
   3509  -- : BFD_RELOC_SPARC_UA64
   3510  -- : BFD_RELOC_SPARC_GOTDATA_HIX22
   3511  -- : BFD_RELOC_SPARC_GOTDATA_LOX10
   3512  -- : BFD_RELOC_SPARC_GOTDATA_OP_HIX22
   3513  -- : BFD_RELOC_SPARC_GOTDATA_OP_LOX10
   3514  -- : BFD_RELOC_SPARC_GOTDATA_OP
   3515  -- : BFD_RELOC_SPARC_JMP_IREL
   3516  -- : BFD_RELOC_SPARC_IRELATIVE
   3517      SPARC ELF relocations.  There is probably some overlap with other
   3518      relocation types already defined.
   3519 
   3520  -- : BFD_RELOC_SPARC_BASE13
   3521  -- : BFD_RELOC_SPARC_BASE22
   3522      I think these are specific to SPARC a.out (e.g., Sun 4).
   3523 
   3524  -- : BFD_RELOC_SPARC_64
   3525  -- : BFD_RELOC_SPARC_10
   3526  -- : BFD_RELOC_SPARC_11
   3527  -- : BFD_RELOC_SPARC_OLO10
   3528  -- : BFD_RELOC_SPARC_HH22
   3529  -- : BFD_RELOC_SPARC_HM10
   3530  -- : BFD_RELOC_SPARC_LM22
   3531  -- : BFD_RELOC_SPARC_PC_HH22
   3532  -- : BFD_RELOC_SPARC_PC_HM10
   3533  -- : BFD_RELOC_SPARC_PC_LM22
   3534  -- : BFD_RELOC_SPARC_WDISP16
   3535  -- : BFD_RELOC_SPARC_WDISP19
   3536  -- : BFD_RELOC_SPARC_7
   3537  -- : BFD_RELOC_SPARC_6
   3538  -- : BFD_RELOC_SPARC_5
   3539  -- : BFD_RELOC_SPARC_DISP64
   3540  -- : BFD_RELOC_SPARC_PLT32
   3541  -- : BFD_RELOC_SPARC_PLT64
   3542  -- : BFD_RELOC_SPARC_HIX22
   3543  -- : BFD_RELOC_SPARC_LOX10
   3544  -- : BFD_RELOC_SPARC_H44
   3545  -- : BFD_RELOC_SPARC_M44
   3546  -- : BFD_RELOC_SPARC_L44
   3547  -- : BFD_RELOC_SPARC_REGISTER
   3548  -- : BFD_RELOC_SPARC_H34
   3549  -- : BFD_RELOC_SPARC_SIZE32
   3550  -- : BFD_RELOC_SPARC_SIZE64
   3551  -- : BFD_RELOC_SPARC_WDISP10
   3552      SPARC64 relocations
   3553 
   3554  -- : BFD_RELOC_SPARC_REV32
   3555      SPARC little endian relocation
   3556 
   3557  -- : BFD_RELOC_SPARC_TLS_GD_HI22
   3558  -- : BFD_RELOC_SPARC_TLS_GD_LO10
   3559  -- : BFD_RELOC_SPARC_TLS_GD_ADD
   3560  -- : BFD_RELOC_SPARC_TLS_GD_CALL
   3561  -- : BFD_RELOC_SPARC_TLS_LDM_HI22
   3562  -- : BFD_RELOC_SPARC_TLS_LDM_LO10
   3563  -- : BFD_RELOC_SPARC_TLS_LDM_ADD
   3564  -- : BFD_RELOC_SPARC_TLS_LDM_CALL
   3565  -- : BFD_RELOC_SPARC_TLS_LDO_HIX22
   3566  -- : BFD_RELOC_SPARC_TLS_LDO_LOX10
   3567  -- : BFD_RELOC_SPARC_TLS_LDO_ADD
   3568  -- : BFD_RELOC_SPARC_TLS_IE_HI22
   3569  -- : BFD_RELOC_SPARC_TLS_IE_LO10
   3570  -- : BFD_RELOC_SPARC_TLS_IE_LD
   3571  -- : BFD_RELOC_SPARC_TLS_IE_LDX
   3572  -- : BFD_RELOC_SPARC_TLS_IE_ADD
   3573  -- : BFD_RELOC_SPARC_TLS_LE_HIX22
   3574  -- : BFD_RELOC_SPARC_TLS_LE_LOX10
   3575  -- : BFD_RELOC_SPARC_TLS_DTPMOD32
   3576  -- : BFD_RELOC_SPARC_TLS_DTPMOD64
   3577  -- : BFD_RELOC_SPARC_TLS_DTPOFF32
   3578  -- : BFD_RELOC_SPARC_TLS_DTPOFF64
   3579  -- : BFD_RELOC_SPARC_TLS_TPOFF32
   3580  -- : BFD_RELOC_SPARC_TLS_TPOFF64
   3581      SPARC TLS relocations
   3582 
   3583  -- : BFD_RELOC_SPU_IMM7
   3584  -- : BFD_RELOC_SPU_IMM8
   3585  -- : BFD_RELOC_SPU_IMM10
   3586  -- : BFD_RELOC_SPU_IMM10W
   3587  -- : BFD_RELOC_SPU_IMM16
   3588  -- : BFD_RELOC_SPU_IMM16W
   3589  -- : BFD_RELOC_SPU_IMM18
   3590  -- : BFD_RELOC_SPU_PCREL9a
   3591  -- : BFD_RELOC_SPU_PCREL9b
   3592  -- : BFD_RELOC_SPU_PCREL16
   3593  -- : BFD_RELOC_SPU_LO16
   3594  -- : BFD_RELOC_SPU_HI16
   3595  -- : BFD_RELOC_SPU_PPU32
   3596  -- : BFD_RELOC_SPU_PPU64
   3597  -- : BFD_RELOC_SPU_ADD_PIC
   3598      SPU Relocations.
   3599 
   3600  -- : BFD_RELOC_ALPHA_GPDISP_HI16
   3601      Alpha ECOFF and ELF relocations.  Some of these treat the symbol or
   3602      "addend" in some special way.  For GPDISP_HI16 ("gpdisp")
   3603      relocations, the symbol is ignored when writing; when reading, it
   3604      will be the absolute section symbol.  The addend is the
   3605      displacement in bytes of the "lda" instruction from the "ldah"
   3606      instruction (which is at the address of this reloc).
   3607 
   3608  -- : BFD_RELOC_ALPHA_GPDISP_LO16
   3609      For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
   3610      with GPDISP_HI16 relocs.  The addend is ignored when writing the
   3611      relocations out, and is filled in with the file's GP value on
   3612      reading, for convenience.
   3613 
   3614  -- : BFD_RELOC_ALPHA_GPDISP
   3615      The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
   3616      relocation except that there is no accompanying GPDISP_LO16
   3617      relocation.
   3618 
   3619  -- : BFD_RELOC_ALPHA_LITERAL
   3620  -- : BFD_RELOC_ALPHA_ELF_LITERAL
   3621  -- : BFD_RELOC_ALPHA_LITUSE
   3622      The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
   3623      the assembler turns it into a LDQ instruction to load the address
   3624      of the symbol, and then fills in a register in the real
   3625      instruction.
   3626 
   3627      The LITERAL reloc, at the LDQ instruction, refers to the .lita
   3628      section symbol.  The addend is ignored when writing, but is filled
   3629      in with the file's GP value on reading, for convenience, as with
   3630      the GPDISP_LO16 reloc.
   3631 
   3632      The ELF_LITERAL reloc is somewhere between 16_GOTOFF and
   3633      GPDISP_LO16.  It should refer to the symbol to be referenced, as
   3634      with 16_GOTOFF, but it generates output not based on the position
   3635      within the .got section, but relative to the GP value chosen for
   3636      the file during the final link stage.
   3637 
   3638      The LITUSE reloc, on the instruction using the loaded address,
   3639      gives information to the linker that it might be able to use to
   3640      optimize away some literal section references.  The symbol is
   3641      ignored (read as the absolute section symbol), and the "addend"
   3642      indicates the type of instruction using the register: 1 - "memory"
   3643      fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target
   3644      of branch)
   3645 
   3646  -- : BFD_RELOC_ALPHA_HINT
   3647      The HINT relocation indicates a value that should be filled into
   3648      the "hint" field of a jmp/jsr/ret instruction, for possible branch-
   3649      prediction logic which may be provided on some processors.
   3650 
   3651  -- : BFD_RELOC_ALPHA_LINKAGE
   3652      The LINKAGE relocation outputs a linkage pair in the object file,
   3653      which is filled by the linker.
   3654 
   3655  -- : BFD_RELOC_ALPHA_CODEADDR
   3656      The CODEADDR relocation outputs a STO_CA in the object file, which
   3657      is filled by the linker.
   3658 
   3659  -- : BFD_RELOC_ALPHA_GPREL_HI16
   3660  -- : BFD_RELOC_ALPHA_GPREL_LO16
   3661      The GPREL_HI/LO relocations together form a 32-bit offset from the
   3662      GP register.
   3663 
   3664  -- : BFD_RELOC_ALPHA_BRSGP
   3665      Like BFD_RELOC_23_PCREL_S2, except that the source and target must
   3666      share a common GP, and the target address is adjusted for
   3667      STO_ALPHA_STD_GPLOAD.
   3668 
   3669  -- : BFD_RELOC_ALPHA_NOP
   3670      The NOP relocation outputs a NOP if the longword displacement
   3671      between two procedure entry points is < 2^21.
   3672 
   3673  -- : BFD_RELOC_ALPHA_BSR
   3674      The BSR relocation outputs a BSR if the longword displacement
   3675      between two procedure entry points is < 2^21.
   3676 
   3677  -- : BFD_RELOC_ALPHA_LDA
   3678      The LDA relocation outputs a LDA if the longword displacement
   3679      between two procedure entry points is < 2^16.
   3680 
   3681  -- : BFD_RELOC_ALPHA_BOH
   3682      The BOH relocation outputs a BSR if the longword displacement
   3683      between two procedure entry points is < 2^21, or else a hint.
   3684 
   3685  -- : BFD_RELOC_ALPHA_TLSGD
   3686  -- : BFD_RELOC_ALPHA_TLSLDM
   3687  -- : BFD_RELOC_ALPHA_DTPMOD64
   3688  -- : BFD_RELOC_ALPHA_GOTDTPREL16
   3689  -- : BFD_RELOC_ALPHA_DTPREL64
   3690  -- : BFD_RELOC_ALPHA_DTPREL_HI16
   3691  -- : BFD_RELOC_ALPHA_DTPREL_LO16
   3692  -- : BFD_RELOC_ALPHA_DTPREL16
   3693  -- : BFD_RELOC_ALPHA_GOTTPREL16
   3694  -- : BFD_RELOC_ALPHA_TPREL64
   3695  -- : BFD_RELOC_ALPHA_TPREL_HI16
   3696  -- : BFD_RELOC_ALPHA_TPREL_LO16
   3697  -- : BFD_RELOC_ALPHA_TPREL16
   3698      Alpha thread-local storage relocations.
   3699 
   3700  -- : BFD_RELOC_MIPS_JMP
   3701  -- : BFD_RELOC_MICROMIPS_JMP
   3702      The MIPS jump instruction.
   3703 
   3704  -- : BFD_RELOC_MIPS16_JMP
   3705      The MIPS16 jump instruction.
   3706 
   3707  -- : BFD_RELOC_MIPS16_GPREL
   3708      MIPS16 GP relative reloc.
   3709 
   3710  -- : BFD_RELOC_HI16
   3711      High 16 bits of 32-bit value; simple reloc.
   3712 
   3713  -- : BFD_RELOC_HI16_S
   3714      High 16 bits of 32-bit value but the low 16 bits will be sign
   3715      extended and added to form the final result.  If the low 16 bits
   3716      form a negative number, we need to add one to the high value to
   3717      compensate for the borrow when the low bits are added.
   3718 
   3719  -- : BFD_RELOC_LO16
   3720      Low 16 bits.
   3721 
   3722  -- : BFD_RELOC_HI16_PCREL
   3723      High 16 bits of 32-bit pc-relative value
   3724 
   3725  -- : BFD_RELOC_HI16_S_PCREL
   3726      High 16 bits of 32-bit pc-relative value, adjusted
   3727 
   3728  -- : BFD_RELOC_LO16_PCREL
   3729      Low 16 bits of pc-relative value
   3730 
   3731  -- : BFD_RELOC_MIPS16_GOT16
   3732  -- : BFD_RELOC_MIPS16_CALL16
   3733      Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of
   3734      16-bit immediate fields
   3735 
   3736  -- : BFD_RELOC_MIPS16_HI16
   3737      MIPS16 high 16 bits of 32-bit value.
   3738 
   3739  -- : BFD_RELOC_MIPS16_HI16_S
   3740      MIPS16 high 16 bits of 32-bit value but the low 16 bits will be
   3741      sign extended and added to form the final result.  If the low 16
   3742      bits form a negative number, we need to add one to the high value
   3743      to compensate for the borrow when the low bits are added.
   3744 
   3745  -- : BFD_RELOC_MIPS16_LO16
   3746      MIPS16 low 16 bits.
   3747 
   3748  -- : BFD_RELOC_MIPS16_TLS_GD
   3749  -- : BFD_RELOC_MIPS16_TLS_LDM
   3750  -- : BFD_RELOC_MIPS16_TLS_DTPREL_HI16
   3751  -- : BFD_RELOC_MIPS16_TLS_DTPREL_LO16
   3752  -- : BFD_RELOC_MIPS16_TLS_GOTTPREL
   3753  -- : BFD_RELOC_MIPS16_TLS_TPREL_HI16
   3754  -- : BFD_RELOC_MIPS16_TLS_TPREL_LO16
   3755      MIPS16 TLS relocations
   3756 
   3757  -- : BFD_RELOC_MIPS_LITERAL
   3758  -- : BFD_RELOC_MICROMIPS_LITERAL
   3759      Relocation against a MIPS literal section.
   3760 
   3761  -- : BFD_RELOC_MICROMIPS_7_PCREL_S1
   3762  -- : BFD_RELOC_MICROMIPS_10_PCREL_S1
   3763  -- : BFD_RELOC_MICROMIPS_16_PCREL_S1
   3764      microMIPS PC-relative relocations.
   3765 
   3766  -- : BFD_RELOC_MIPS_21_PCREL_S2
   3767  -- : BFD_RELOC_MIPS_26_PCREL_S2
   3768  -- : BFD_RELOC_MIPS_18_PCREL_S3
   3769  -- : BFD_RELOC_MIPS_19_PCREL_S2
   3770      MIPS PC-relative relocations.
   3771 
   3772  -- : BFD_RELOC_MICROMIPS_GPREL16
   3773  -- : BFD_RELOC_MICROMIPS_HI16
   3774  -- : BFD_RELOC_MICROMIPS_HI16_S
   3775  -- : BFD_RELOC_MICROMIPS_LO16
   3776      microMIPS versions of generic BFD relocs.
   3777 
   3778  -- : BFD_RELOC_MIPS_GOT16
   3779  -- : BFD_RELOC_MICROMIPS_GOT16
   3780  -- : BFD_RELOC_MIPS_CALL16
   3781  -- : BFD_RELOC_MICROMIPS_CALL16
   3782  -- : BFD_RELOC_MIPS_GOT_HI16
   3783  -- : BFD_RELOC_MICROMIPS_GOT_HI16
   3784  -- : BFD_RELOC_MIPS_GOT_LO16
   3785  -- : BFD_RELOC_MICROMIPS_GOT_LO16
   3786  -- : BFD_RELOC_MIPS_CALL_HI16
   3787  -- : BFD_RELOC_MICROMIPS_CALL_HI16
   3788  -- : BFD_RELOC_MIPS_CALL_LO16
   3789  -- : BFD_RELOC_MICROMIPS_CALL_LO16
   3790  -- : BFD_RELOC_MIPS_SUB
   3791  -- : BFD_RELOC_MICROMIPS_SUB
   3792  -- : BFD_RELOC_MIPS_GOT_PAGE
   3793  -- : BFD_RELOC_MICROMIPS_GOT_PAGE
   3794  -- : BFD_RELOC_MIPS_GOT_OFST
   3795  -- : BFD_RELOC_MICROMIPS_GOT_OFST
   3796  -- : BFD_RELOC_MIPS_GOT_DISP
   3797  -- : BFD_RELOC_MICROMIPS_GOT_DISP
   3798  -- : BFD_RELOC_MIPS_SHIFT5
   3799  -- : BFD_RELOC_MIPS_SHIFT6
   3800  -- : BFD_RELOC_MIPS_INSERT_A
   3801  -- : BFD_RELOC_MIPS_INSERT_B
   3802  -- : BFD_RELOC_MIPS_DELETE
   3803  -- : BFD_RELOC_MIPS_HIGHEST
   3804  -- : BFD_RELOC_MICROMIPS_HIGHEST
   3805  -- : BFD_RELOC_MIPS_HIGHER
   3806  -- : BFD_RELOC_MICROMIPS_HIGHER
   3807  -- : BFD_RELOC_MIPS_SCN_DISP
   3808  -- : BFD_RELOC_MICROMIPS_SCN_DISP
   3809  -- : BFD_RELOC_MIPS_REL16
   3810  -- : BFD_RELOC_MIPS_RELGOT
   3811  -- : BFD_RELOC_MIPS_JALR
   3812  -- : BFD_RELOC_MICROMIPS_JALR
   3813  -- : BFD_RELOC_MIPS_TLS_DTPMOD32
   3814  -- : BFD_RELOC_MIPS_TLS_DTPREL32
   3815  -- : BFD_RELOC_MIPS_TLS_DTPMOD64
   3816  -- : BFD_RELOC_MIPS_TLS_DTPREL64
   3817  -- : BFD_RELOC_MIPS_TLS_GD
   3818  -- : BFD_RELOC_MICROMIPS_TLS_GD
   3819  -- : BFD_RELOC_MIPS_TLS_LDM
   3820  -- : BFD_RELOC_MICROMIPS_TLS_LDM
   3821  -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16
   3822  -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16
   3823  -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16
   3824  -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16
   3825  -- : BFD_RELOC_MIPS_TLS_GOTTPREL
   3826  -- : BFD_RELOC_MICROMIPS_TLS_GOTTPREL
   3827  -- : BFD_RELOC_MIPS_TLS_TPREL32
   3828  -- : BFD_RELOC_MIPS_TLS_TPREL64
   3829  -- : BFD_RELOC_MIPS_TLS_TPREL_HI16
   3830  -- : BFD_RELOC_MICROMIPS_TLS_TPREL_HI16
   3831  -- : BFD_RELOC_MIPS_TLS_TPREL_LO16
   3832  -- : BFD_RELOC_MICROMIPS_TLS_TPREL_LO16
   3833  -- : BFD_RELOC_MIPS_EH
   3834      MIPS ELF relocations.
   3835 
   3836  -- : BFD_RELOC_MIPS_COPY
   3837  -- : BFD_RELOC_MIPS_JUMP_SLOT
   3838      MIPS ELF relocations (VxWorks and PLT extensions).
   3839 
   3840  -- : BFD_RELOC_MOXIE_10_PCREL
   3841      Moxie ELF relocations.
   3842 
   3843  -- : BFD_RELOC_FRV_LABEL16
   3844  -- : BFD_RELOC_FRV_LABEL24
   3845  -- : BFD_RELOC_FRV_LO16
   3846  -- : BFD_RELOC_FRV_HI16
   3847  -- : BFD_RELOC_FRV_GPREL12
   3848  -- : BFD_RELOC_FRV_GPRELU12
   3849  -- : BFD_RELOC_FRV_GPREL32
   3850  -- : BFD_RELOC_FRV_GPRELHI
   3851  -- : BFD_RELOC_FRV_GPRELLO
   3852  -- : BFD_RELOC_FRV_GOT12
   3853  -- : BFD_RELOC_FRV_GOTHI
   3854  -- : BFD_RELOC_FRV_GOTLO
   3855  -- : BFD_RELOC_FRV_FUNCDESC
   3856  -- : BFD_RELOC_FRV_FUNCDESC_GOT12
   3857  -- : BFD_RELOC_FRV_FUNCDESC_GOTHI
   3858  -- : BFD_RELOC_FRV_FUNCDESC_GOTLO
   3859  -- : BFD_RELOC_FRV_FUNCDESC_VALUE
   3860  -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12
   3861  -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI
   3862  -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO
   3863  -- : BFD_RELOC_FRV_GOTOFF12
   3864  -- : BFD_RELOC_FRV_GOTOFFHI
   3865  -- : BFD_RELOC_FRV_GOTOFFLO
   3866  -- : BFD_RELOC_FRV_GETTLSOFF
   3867  -- : BFD_RELOC_FRV_TLSDESC_VALUE
   3868  -- : BFD_RELOC_FRV_GOTTLSDESC12
   3869  -- : BFD_RELOC_FRV_GOTTLSDESCHI
   3870  -- : BFD_RELOC_FRV_GOTTLSDESCLO
   3871  -- : BFD_RELOC_FRV_TLSMOFF12
   3872  -- : BFD_RELOC_FRV_TLSMOFFHI
   3873  -- : BFD_RELOC_FRV_TLSMOFFLO
   3874  -- : BFD_RELOC_FRV_GOTTLSOFF12
   3875  -- : BFD_RELOC_FRV_GOTTLSOFFHI
   3876  -- : BFD_RELOC_FRV_GOTTLSOFFLO
   3877  -- : BFD_RELOC_FRV_TLSOFF
   3878  -- : BFD_RELOC_FRV_TLSDESC_RELAX
   3879  -- : BFD_RELOC_FRV_GETTLSOFF_RELAX
   3880  -- : BFD_RELOC_FRV_TLSOFF_RELAX
   3881  -- : BFD_RELOC_FRV_TLSMOFF
   3882      Fujitsu Frv Relocations.
   3883 
   3884  -- : BFD_RELOC_MN10300_GOTOFF24
   3885      This is a 24bit GOT-relative reloc for the mn10300.
   3886 
   3887  -- : BFD_RELOC_MN10300_GOT32
   3888      This is a 32bit GOT-relative reloc for the mn10300, offset by two
   3889      bytes in the instruction.
   3890 
   3891  -- : BFD_RELOC_MN10300_GOT24
   3892      This is a 24bit GOT-relative reloc for the mn10300, offset by two
   3893      bytes in the instruction.
   3894 
   3895  -- : BFD_RELOC_MN10300_GOT16
   3896      This is a 16bit GOT-relative reloc for the mn10300, offset by two
   3897      bytes in the instruction.
   3898 
   3899  -- : BFD_RELOC_MN10300_COPY
   3900      Copy symbol at runtime.
   3901 
   3902  -- : BFD_RELOC_MN10300_GLOB_DAT
   3903      Create GOT entry.
   3904 
   3905  -- : BFD_RELOC_MN10300_JMP_SLOT
   3906      Create PLT entry.
   3907 
   3908  -- : BFD_RELOC_MN10300_RELATIVE
   3909      Adjust by program base.
   3910 
   3911  -- : BFD_RELOC_MN10300_SYM_DIFF
   3912      Together with another reloc targeted at the same location, allows
   3913      for a value that is the difference of two symbols in the same
   3914      section.
   3915 
   3916  -- : BFD_RELOC_MN10300_ALIGN
   3917      The addend of this reloc is an alignment power that must be
   3918      honoured at the offset's location, regardless of linker relaxation.
   3919 
   3920  -- : BFD_RELOC_MN10300_TLS_GD
   3921  -- : BFD_RELOC_MN10300_TLS_LD
   3922  -- : BFD_RELOC_MN10300_TLS_LDO
   3923  -- : BFD_RELOC_MN10300_TLS_GOTIE
   3924  -- : BFD_RELOC_MN10300_TLS_IE
   3925  -- : BFD_RELOC_MN10300_TLS_LE
   3926  -- : BFD_RELOC_MN10300_TLS_DTPMOD
   3927  -- : BFD_RELOC_MN10300_TLS_DTPOFF
   3928  -- : BFD_RELOC_MN10300_TLS_TPOFF
   3929      Various TLS-related relocations.
   3930 
   3931  -- : BFD_RELOC_MN10300_32_PCREL
   3932      This is a 32bit pcrel reloc for the mn10300, offset by two bytes
   3933      in the instruction.
   3934 
   3935  -- : BFD_RELOC_MN10300_16_PCREL
   3936      This is a 16bit pcrel reloc for the mn10300, offset by two bytes
   3937      in the instruction.
   3938 
   3939  -- : BFD_RELOC_386_GOT32
   3940  -- : BFD_RELOC_386_PLT32
   3941  -- : BFD_RELOC_386_COPY
   3942  -- : BFD_RELOC_386_GLOB_DAT
   3943  -- : BFD_RELOC_386_JUMP_SLOT
   3944  -- : BFD_RELOC_386_RELATIVE
   3945  -- : BFD_RELOC_386_GOTOFF
   3946  -- : BFD_RELOC_386_GOTPC
   3947  -- : BFD_RELOC_386_TLS_TPOFF
   3948  -- : BFD_RELOC_386_TLS_IE
   3949  -- : BFD_RELOC_386_TLS_GOTIE
   3950  -- : BFD_RELOC_386_TLS_LE
   3951  -- : BFD_RELOC_386_TLS_GD
   3952  -- : BFD_RELOC_386_TLS_LDM
   3953  -- : BFD_RELOC_386_TLS_LDO_32
   3954  -- : BFD_RELOC_386_TLS_IE_32
   3955  -- : BFD_RELOC_386_TLS_LE_32
   3956  -- : BFD_RELOC_386_TLS_DTPMOD32
   3957  -- : BFD_RELOC_386_TLS_DTPOFF32
   3958  -- : BFD_RELOC_386_TLS_TPOFF32
   3959  -- : BFD_RELOC_386_TLS_GOTDESC
   3960  -- : BFD_RELOC_386_TLS_DESC_CALL
   3961  -- : BFD_RELOC_386_TLS_DESC
   3962  -- : BFD_RELOC_386_IRELATIVE
   3963      i386/elf relocations
   3964 
   3965  -- : BFD_RELOC_X86_64_GOT32
   3966  -- : BFD_RELOC_X86_64_PLT32
   3967  -- : BFD_RELOC_X86_64_COPY
   3968  -- : BFD_RELOC_X86_64_GLOB_DAT
   3969  -- : BFD_RELOC_X86_64_JUMP_SLOT
   3970  -- : BFD_RELOC_X86_64_RELATIVE
   3971  -- : BFD_RELOC_X86_64_GOTPCREL
   3972  -- : BFD_RELOC_X86_64_32S
   3973  -- : BFD_RELOC_X86_64_DTPMOD64
   3974  -- : BFD_RELOC_X86_64_DTPOFF64
   3975  -- : BFD_RELOC_X86_64_TPOFF64
   3976  -- : BFD_RELOC_X86_64_TLSGD
   3977  -- : BFD_RELOC_X86_64_TLSLD
   3978  -- : BFD_RELOC_X86_64_DTPOFF32
   3979  -- : BFD_RELOC_X86_64_GOTTPOFF
   3980  -- : BFD_RELOC_X86_64_TPOFF32
   3981  -- : BFD_RELOC_X86_64_GOTOFF64
   3982  -- : BFD_RELOC_X86_64_GOTPC32
   3983  -- : BFD_RELOC_X86_64_GOT64
   3984  -- : BFD_RELOC_X86_64_GOTPCREL64
   3985  -- : BFD_RELOC_X86_64_GOTPC64
   3986  -- : BFD_RELOC_X86_64_GOTPLT64
   3987  -- : BFD_RELOC_X86_64_PLTOFF64
   3988  -- : BFD_RELOC_X86_64_GOTPC32_TLSDESC
   3989  -- : BFD_RELOC_X86_64_TLSDESC_CALL
   3990  -- : BFD_RELOC_X86_64_TLSDESC
   3991  -- : BFD_RELOC_X86_64_IRELATIVE
   3992  -- : BFD_RELOC_X86_64_PC32_BND
   3993  -- : BFD_RELOC_X86_64_PLT32_BND
   3994      x86-64/elf relocations
   3995 
   3996  -- : BFD_RELOC_NS32K_IMM_8
   3997  -- : BFD_RELOC_NS32K_IMM_16
   3998  -- : BFD_RELOC_NS32K_IMM_32
   3999  -- : BFD_RELOC_NS32K_IMM_8_PCREL
   4000  -- : BFD_RELOC_NS32K_IMM_16_PCREL
   4001  -- : BFD_RELOC_NS32K_IMM_32_PCREL
   4002  -- : BFD_RELOC_NS32K_DISP_8
   4003  -- : BFD_RELOC_NS32K_DISP_16
   4004  -- : BFD_RELOC_NS32K_DISP_32
   4005  -- : BFD_RELOC_NS32K_DISP_8_PCREL
   4006  -- : BFD_RELOC_NS32K_DISP_16_PCREL
   4007  -- : BFD_RELOC_NS32K_DISP_32_PCREL
   4008      ns32k relocations
   4009 
   4010  -- : BFD_RELOC_PDP11_DISP_8_PCREL
   4011  -- : BFD_RELOC_PDP11_DISP_6_PCREL
   4012      PDP11 relocations
   4013 
   4014  -- : BFD_RELOC_PJ_CODE_HI16
   4015  -- : BFD_RELOC_PJ_CODE_LO16
   4016  -- : BFD_RELOC_PJ_CODE_DIR16
   4017  -- : BFD_RELOC_PJ_CODE_DIR32
   4018  -- : BFD_RELOC_PJ_CODE_REL16
   4019  -- : BFD_RELOC_PJ_CODE_REL32
   4020      Picojava relocs.  Not all of these appear in object files.
   4021 
   4022  -- : BFD_RELOC_PPC_B26
   4023  -- : BFD_RELOC_PPC_BA26
   4024  -- : BFD_RELOC_PPC_TOC16
   4025  -- : BFD_RELOC_PPC_B16
   4026  -- : BFD_RELOC_PPC_B16_BRTAKEN
   4027  -- : BFD_RELOC_PPC_B16_BRNTAKEN
   4028  -- : BFD_RELOC_PPC_BA16
   4029  -- : BFD_RELOC_PPC_BA16_BRTAKEN
   4030  -- : BFD_RELOC_PPC_BA16_BRNTAKEN
   4031  -- : BFD_RELOC_PPC_COPY
   4032  -- : BFD_RELOC_PPC_GLOB_DAT
   4033  -- : BFD_RELOC_PPC_JMP_SLOT
   4034  -- : BFD_RELOC_PPC_RELATIVE
   4035  -- : BFD_RELOC_PPC_LOCAL24PC
   4036  -- : BFD_RELOC_PPC_EMB_NADDR32
   4037  -- : BFD_RELOC_PPC_EMB_NADDR16
   4038  -- : BFD_RELOC_PPC_EMB_NADDR16_LO
   4039  -- : BFD_RELOC_PPC_EMB_NADDR16_HI
   4040  -- : BFD_RELOC_PPC_EMB_NADDR16_HA
   4041  -- : BFD_RELOC_PPC_EMB_SDAI16
   4042  -- : BFD_RELOC_PPC_EMB_SDA2I16
   4043  -- : BFD_RELOC_PPC_EMB_SDA2REL
   4044  -- : BFD_RELOC_PPC_EMB_SDA21
   4045  -- : BFD_RELOC_PPC_EMB_MRKREF
   4046  -- : BFD_RELOC_PPC_EMB_RELSEC16
   4047  -- : BFD_RELOC_PPC_EMB_RELST_LO
   4048  -- : BFD_RELOC_PPC_EMB_RELST_HI
   4049  -- : BFD_RELOC_PPC_EMB_RELST_HA
   4050  -- : BFD_RELOC_PPC_EMB_BIT_FLD
   4051  -- : BFD_RELOC_PPC_EMB_RELSDA
   4052  -- : BFD_RELOC_PPC_VLE_REL8
   4053  -- : BFD_RELOC_PPC_VLE_REL15
   4054  -- : BFD_RELOC_PPC_VLE_REL24
   4055  -- : BFD_RELOC_PPC_VLE_LO16A
   4056  -- : BFD_RELOC_PPC_VLE_LO16D
   4057  -- : BFD_RELOC_PPC_VLE_HI16A
   4058  -- : BFD_RELOC_PPC_VLE_HI16D
   4059  -- : BFD_RELOC_PPC_VLE_HA16A
   4060  -- : BFD_RELOC_PPC_VLE_HA16D
   4061  -- : BFD_RELOC_PPC_VLE_SDA21
   4062  -- : BFD_RELOC_PPC_VLE_SDA21_LO
   4063  -- : BFD_RELOC_PPC_VLE_SDAREL_LO16A
   4064  -- : BFD_RELOC_PPC_VLE_SDAREL_LO16D
   4065  -- : BFD_RELOC_PPC_VLE_SDAREL_HI16A
   4066  -- : BFD_RELOC_PPC_VLE_SDAREL_HI16D
   4067  -- : BFD_RELOC_PPC_VLE_SDAREL_HA16A
   4068  -- : BFD_RELOC_PPC_VLE_SDAREL_HA16D
   4069  -- : BFD_RELOC_PPC64_HIGHER
   4070  -- : BFD_RELOC_PPC64_HIGHER_S
   4071  -- : BFD_RELOC_PPC64_HIGHEST
   4072  -- : BFD_RELOC_PPC64_HIGHEST_S
   4073  -- : BFD_RELOC_PPC64_TOC16_LO
   4074  -- : BFD_RELOC_PPC64_TOC16_HI
   4075  -- : BFD_RELOC_PPC64_TOC16_HA
   4076  -- : BFD_RELOC_PPC64_TOC
   4077  -- : BFD_RELOC_PPC64_PLTGOT16
   4078  -- : BFD_RELOC_PPC64_PLTGOT16_LO
   4079  -- : BFD_RELOC_PPC64_PLTGOT16_HI
   4080  -- : BFD_RELOC_PPC64_PLTGOT16_HA
   4081  -- : BFD_RELOC_PPC64_ADDR16_DS
   4082  -- : BFD_RELOC_PPC64_ADDR16_LO_DS
   4083  -- : BFD_RELOC_PPC64_GOT16_DS
   4084  -- : BFD_RELOC_PPC64_GOT16_LO_DS
   4085  -- : BFD_RELOC_PPC64_PLT16_LO_DS
   4086  -- : BFD_RELOC_PPC64_SECTOFF_DS
   4087  -- : BFD_RELOC_PPC64_SECTOFF_LO_DS
   4088  -- : BFD_RELOC_PPC64_TOC16_DS
   4089  -- : BFD_RELOC_PPC64_TOC16_LO_DS
   4090  -- : BFD_RELOC_PPC64_PLTGOT16_DS
   4091  -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS
   4092  -- : BFD_RELOC_PPC64_ADDR16_HIGH
   4093  -- : BFD_RELOC_PPC64_ADDR16_HIGHA
   4094  -- : BFD_RELOC_PPC64_ADDR64_LOCAL
   4095      Power(rs6000) and PowerPC relocations.
   4096 
   4097  -- : BFD_RELOC_PPC_TLS
   4098  -- : BFD_RELOC_PPC_TLSGD
   4099  -- : BFD_RELOC_PPC_TLSLD
   4100  -- : BFD_RELOC_PPC_DTPMOD
   4101  -- : BFD_RELOC_PPC_TPREL16
   4102  -- : BFD_RELOC_PPC_TPREL16_LO
   4103  -- : BFD_RELOC_PPC_TPREL16_HI
   4104  -- : BFD_RELOC_PPC_TPREL16_HA
   4105  -- : BFD_RELOC_PPC_TPREL
   4106  -- : BFD_RELOC_PPC_DTPREL16
   4107  -- : BFD_RELOC_PPC_DTPREL16_LO
   4108  -- : BFD_RELOC_PPC_DTPREL16_HI
   4109  -- : BFD_RELOC_PPC_DTPREL16_HA
   4110  -- : BFD_RELOC_PPC_DTPREL
   4111  -- : BFD_RELOC_PPC_GOT_TLSGD16
   4112  -- : BFD_RELOC_PPC_GOT_TLSGD16_LO
   4113  -- : BFD_RELOC_PPC_GOT_TLSGD16_HI
   4114  -- : BFD_RELOC_PPC_GOT_TLSGD16_HA
   4115  -- : BFD_RELOC_PPC_GOT_TLSLD16
   4116  -- : BFD_RELOC_PPC_GOT_TLSLD16_LO
   4117  -- : BFD_RELOC_PPC_GOT_TLSLD16_HI
   4118  -- : BFD_RELOC_PPC_GOT_TLSLD16_HA
   4119  -- : BFD_RELOC_PPC_GOT_TPREL16
   4120  -- : BFD_RELOC_PPC_GOT_TPREL16_LO
   4121  -- : BFD_RELOC_PPC_GOT_TPREL16_HI
   4122  -- : BFD_RELOC_PPC_GOT_TPREL16_HA
   4123  -- : BFD_RELOC_PPC_GOT_DTPREL16
   4124  -- : BFD_RELOC_PPC_GOT_DTPREL16_LO
   4125  -- : BFD_RELOC_PPC_GOT_DTPREL16_HI
   4126  -- : BFD_RELOC_PPC_GOT_DTPREL16_HA
   4127  -- : BFD_RELOC_PPC64_TPREL16_DS
   4128  -- : BFD_RELOC_PPC64_TPREL16_LO_DS
   4129  -- : BFD_RELOC_PPC64_TPREL16_HIGHER
   4130  -- : BFD_RELOC_PPC64_TPREL16_HIGHERA
   4131  -- : BFD_RELOC_PPC64_TPREL16_HIGHEST
   4132  -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA
   4133  -- : BFD_RELOC_PPC64_DTPREL16_DS
   4134  -- : BFD_RELOC_PPC64_DTPREL16_LO_DS
   4135  -- : BFD_RELOC_PPC64_DTPREL16_HIGHER
   4136  -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA
   4137  -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST
   4138  -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA
   4139  -- : BFD_RELOC_PPC64_TPREL16_HIGH
   4140  -- : BFD_RELOC_PPC64_TPREL16_HIGHA
   4141  -- : BFD_RELOC_PPC64_DTPREL16_HIGH
   4142  -- : BFD_RELOC_PPC64_DTPREL16_HIGHA
   4143      PowerPC and PowerPC64 thread-local storage relocations.
   4144 
   4145  -- : BFD_RELOC_I370_D12
   4146      IBM 370/390 relocations
   4147 
   4148  -- : BFD_RELOC_CTOR
   4149      The type of reloc used to build a constructor table - at the moment
   4150      probably a 32 bit wide absolute relocation, but the target can
   4151      choose.  It generally does map to one of the other relocation
   4152      types.
   4153 
   4154  -- : BFD_RELOC_ARM_PCREL_BRANCH
   4155      ARM 26 bit pc-relative branch.  The lowest two bits must be zero
   4156      and are not stored in the instruction.
   4157 
   4158  -- : BFD_RELOC_ARM_PCREL_BLX
   4159      ARM 26 bit pc-relative branch.  The lowest bit must be zero and is
   4160      not stored in the instruction.  The 2nd lowest bit comes from a 1
   4161      bit field in the instruction.
   4162 
   4163  -- : BFD_RELOC_THUMB_PCREL_BLX
   4164      Thumb 22 bit pc-relative branch.  The lowest bit must be zero and
   4165      is not stored in the instruction.  The 2nd lowest bit comes from a
   4166      1 bit field in the instruction.
   4167 
   4168  -- : BFD_RELOC_ARM_PCREL_CALL
   4169      ARM 26-bit pc-relative branch for an unconditional BL or BLX
   4170      instruction.
   4171 
   4172  -- : BFD_RELOC_ARM_PCREL_JUMP
   4173      ARM 26-bit pc-relative branch for B or conditional BL instruction.
   4174 
   4175  -- : BFD_RELOC_THUMB_PCREL_BRANCH7
   4176  -- : BFD_RELOC_THUMB_PCREL_BRANCH9
   4177  -- : BFD_RELOC_THUMB_PCREL_BRANCH12
   4178  -- : BFD_RELOC_THUMB_PCREL_BRANCH20
   4179  -- : BFD_RELOC_THUMB_PCREL_BRANCH23
   4180  -- : BFD_RELOC_THUMB_PCREL_BRANCH25
   4181      Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.  The
   4182      lowest bit must be zero and is not stored in the instruction.
   4183      Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
   4184      "nn" one smaller in all cases.  Note further that BRANCH23
   4185      corresponds to R_ARM_THM_CALL.
   4186 
   4187  -- : BFD_RELOC_ARM_OFFSET_IMM
   4188      12-bit immediate offset, used in ARM-format ldr and str
   4189      instructions.
   4190 
   4191  -- : BFD_RELOC_ARM_THUMB_OFFSET
   4192      5-bit immediate offset, used in Thumb-format ldr and str
   4193      instructions.
   4194 
   4195  -- : BFD_RELOC_ARM_TARGET1
   4196      Pc-relative or absolute relocation depending on target.  Used for
   4197      entries in .init_array sections.
   4198 
   4199  -- : BFD_RELOC_ARM_ROSEGREL32
   4200      Read-only segment base relative address.
   4201 
   4202  -- : BFD_RELOC_ARM_SBREL32
   4203      Data segment base relative address.
   4204 
   4205  -- : BFD_RELOC_ARM_TARGET2
   4206      This reloc is used for references to RTTI data from exception
   4207      handling tables.  The actual definition depends on the target.  It
   4208      may be a pc-relative or some form of GOT-indirect relocation.
   4209 
   4210  -- : BFD_RELOC_ARM_PREL31
   4211      31-bit PC relative address.
   4212 
   4213  -- : BFD_RELOC_ARM_MOVW
   4214  -- : BFD_RELOC_ARM_MOVT
   4215  -- : BFD_RELOC_ARM_MOVW_PCREL
   4216  -- : BFD_RELOC_ARM_MOVT_PCREL
   4217  -- : BFD_RELOC_ARM_THUMB_MOVW
   4218  -- : BFD_RELOC_ARM_THUMB_MOVT
   4219  -- : BFD_RELOC_ARM_THUMB_MOVW_PCREL
   4220  -- : BFD_RELOC_ARM_THUMB_MOVT_PCREL
   4221      Low and High halfword relocations for MOVW and MOVT instructions.
   4222 
   4223  -- : BFD_RELOC_ARM_JUMP_SLOT
   4224  -- : BFD_RELOC_ARM_GLOB_DAT
   4225  -- : BFD_RELOC_ARM_GOT32
   4226  -- : BFD_RELOC_ARM_PLT32
   4227  -- : BFD_RELOC_ARM_RELATIVE
   4228  -- : BFD_RELOC_ARM_GOTOFF
   4229  -- : BFD_RELOC_ARM_GOTPC
   4230  -- : BFD_RELOC_ARM_GOT_PREL
   4231      Relocations for setting up GOTs and PLTs for shared libraries.
   4232 
   4233  -- : BFD_RELOC_ARM_TLS_GD32
   4234  -- : BFD_RELOC_ARM_TLS_LDO32
   4235  -- : BFD_RELOC_ARM_TLS_LDM32
   4236  -- : BFD_RELOC_ARM_TLS_DTPOFF32
   4237  -- : BFD_RELOC_ARM_TLS_DTPMOD32
   4238  -- : BFD_RELOC_ARM_TLS_TPOFF32
   4239  -- : BFD_RELOC_ARM_TLS_IE32
   4240  -- : BFD_RELOC_ARM_TLS_LE32
   4241  -- : BFD_RELOC_ARM_TLS_GOTDESC
   4242  -- : BFD_RELOC_ARM_TLS_CALL
   4243  -- : BFD_RELOC_ARM_THM_TLS_CALL
   4244  -- : BFD_RELOC_ARM_TLS_DESCSEQ
   4245  -- : BFD_RELOC_ARM_THM_TLS_DESCSEQ
   4246  -- : BFD_RELOC_ARM_TLS_DESC
   4247      ARM thread-local storage relocations.
   4248 
   4249  -- : BFD_RELOC_ARM_ALU_PC_G0_NC
   4250  -- : BFD_RELOC_ARM_ALU_PC_G0
   4251  -- : BFD_RELOC_ARM_ALU_PC_G1_NC
   4252  -- : BFD_RELOC_ARM_ALU_PC_G1
   4253  -- : BFD_RELOC_ARM_ALU_PC_G2
   4254  -- : BFD_RELOC_ARM_LDR_PC_G0
   4255  -- : BFD_RELOC_ARM_LDR_PC_G1
   4256  -- : BFD_RELOC_ARM_LDR_PC_G2
   4257  -- : BFD_RELOC_ARM_LDRS_PC_G0
   4258  -- : BFD_RELOC_ARM_LDRS_PC_G1
   4259  -- : BFD_RELOC_ARM_LDRS_PC_G2
   4260  -- : BFD_RELOC_ARM_LDC_PC_G0
   4261  -- : BFD_RELOC_ARM_LDC_PC_G1
   4262  -- : BFD_RELOC_ARM_LDC_PC_G2
   4263  -- : BFD_RELOC_ARM_ALU_SB_G0_NC
   4264  -- : BFD_RELOC_ARM_ALU_SB_G0
   4265  -- : BFD_RELOC_ARM_ALU_SB_G1_NC
   4266  -- : BFD_RELOC_ARM_ALU_SB_G1
   4267  -- : BFD_RELOC_ARM_ALU_SB_G2
   4268  -- : BFD_RELOC_ARM_LDR_SB_G0
   4269  -- : BFD_RELOC_ARM_LDR_SB_G1
   4270  -- : BFD_RELOC_ARM_LDR_SB_G2
   4271  -- : BFD_RELOC_ARM_LDRS_SB_G0
   4272  -- : BFD_RELOC_ARM_LDRS_SB_G1
   4273  -- : BFD_RELOC_ARM_LDRS_SB_G2
   4274  -- : BFD_RELOC_ARM_LDC_SB_G0
   4275  -- : BFD_RELOC_ARM_LDC_SB_G1
   4276  -- : BFD_RELOC_ARM_LDC_SB_G2
   4277      ARM group relocations.
   4278 
   4279  -- : BFD_RELOC_ARM_V4BX
   4280      Annotation of BX instructions.
   4281 
   4282  -- : BFD_RELOC_ARM_IRELATIVE
   4283      ARM support for STT_GNU_IFUNC.
   4284 
   4285  -- : BFD_RELOC_ARM_IMMEDIATE
   4286  -- : BFD_RELOC_ARM_ADRL_IMMEDIATE
   4287  -- : BFD_RELOC_ARM_T32_IMMEDIATE
   4288  -- : BFD_RELOC_ARM_T32_ADD_IMM
   4289  -- : BFD_RELOC_ARM_T32_IMM12
   4290  -- : BFD_RELOC_ARM_T32_ADD_PC12
   4291  -- : BFD_RELOC_ARM_SHIFT_IMM
   4292  -- : BFD_RELOC_ARM_SMC
   4293  -- : BFD_RELOC_ARM_HVC
   4294  -- : BFD_RELOC_ARM_SWI
   4295  -- : BFD_RELOC_ARM_MULTI
   4296  -- : BFD_RELOC_ARM_CP_OFF_IMM
   4297  -- : BFD_RELOC_ARM_CP_OFF_IMM_S2
   4298  -- : BFD_RELOC_ARM_T32_CP_OFF_IMM
   4299  -- : BFD_RELOC_ARM_T32_CP_OFF_IMM_S2
   4300  -- : BFD_RELOC_ARM_ADR_IMM
   4301  -- : BFD_RELOC_ARM_LDR_IMM
   4302  -- : BFD_RELOC_ARM_LITERAL
   4303  -- : BFD_RELOC_ARM_IN_POOL
   4304  -- : BFD_RELOC_ARM_OFFSET_IMM8
   4305  -- : BFD_RELOC_ARM_T32_OFFSET_U8
   4306  -- : BFD_RELOC_ARM_T32_OFFSET_IMM
   4307  -- : BFD_RELOC_ARM_HWLITERAL
   4308  -- : BFD_RELOC_ARM_THUMB_ADD
   4309  -- : BFD_RELOC_ARM_THUMB_IMM
   4310  -- : BFD_RELOC_ARM_THUMB_SHIFT
   4311      These relocs are only used within the ARM assembler.  They are not
   4312      (at present) written to any object files.
   4313 
   4314  -- : BFD_RELOC_SH_PCDISP8BY2
   4315  -- : BFD_RELOC_SH_PCDISP12BY2
   4316  -- : BFD_RELOC_SH_IMM3
   4317  -- : BFD_RELOC_SH_IMM3U
   4318  -- : BFD_RELOC_SH_DISP12
   4319  -- : BFD_RELOC_SH_DISP12BY2
   4320  -- : BFD_RELOC_SH_DISP12BY4
   4321  -- : BFD_RELOC_SH_DISP12BY8
   4322  -- : BFD_RELOC_SH_DISP20
   4323  -- : BFD_RELOC_SH_DISP20BY8
   4324  -- : BFD_RELOC_SH_IMM4
   4325  -- : BFD_RELOC_SH_IMM4BY2
   4326  -- : BFD_RELOC_SH_IMM4BY4
   4327  -- : BFD_RELOC_SH_IMM8
   4328  -- : BFD_RELOC_SH_IMM8BY2
   4329  -- : BFD_RELOC_SH_IMM8BY4
   4330  -- : BFD_RELOC_SH_PCRELIMM8BY2
   4331  -- : BFD_RELOC_SH_PCRELIMM8BY4
   4332  -- : BFD_RELOC_SH_SWITCH16
   4333  -- : BFD_RELOC_SH_SWITCH32
   4334  -- : BFD_RELOC_SH_USES
   4335  -- : BFD_RELOC_SH_COUNT
   4336  -- : BFD_RELOC_SH_ALIGN
   4337  -- : BFD_RELOC_SH_CODE
   4338  -- : BFD_RELOC_SH_DATA
   4339  -- : BFD_RELOC_SH_LABEL
   4340  -- : BFD_RELOC_SH_LOOP_START
   4341  -- : BFD_RELOC_SH_LOOP_END
   4342  -- : BFD_RELOC_SH_COPY
   4343  -- : BFD_RELOC_SH_GLOB_DAT
   4344  -- : BFD_RELOC_SH_JMP_SLOT
   4345  -- : BFD_RELOC_SH_RELATIVE
   4346  -- : BFD_RELOC_SH_GOTPC
   4347  -- : BFD_RELOC_SH_GOT_LOW16
   4348  -- : BFD_RELOC_SH_GOT_MEDLOW16
   4349  -- : BFD_RELOC_SH_GOT_MEDHI16
   4350  -- : BFD_RELOC_SH_GOT_HI16
   4351  -- : BFD_RELOC_SH_GOTPLT_LOW16
   4352  -- : BFD_RELOC_SH_GOTPLT_MEDLOW16
   4353  -- : BFD_RELOC_SH_GOTPLT_MEDHI16
   4354  -- : BFD_RELOC_SH_GOTPLT_HI16
   4355  -- : BFD_RELOC_SH_PLT_LOW16
   4356  -- : BFD_RELOC_SH_PLT_MEDLOW16
   4357  -- : BFD_RELOC_SH_PLT_MEDHI16
   4358  -- : BFD_RELOC_SH_PLT_HI16
   4359  -- : BFD_RELOC_SH_GOTOFF_LOW16
   4360  -- : BFD_RELOC_SH_GOTOFF_MEDLOW16
   4361  -- : BFD_RELOC_SH_GOTOFF_MEDHI16
   4362  -- : BFD_RELOC_SH_GOTOFF_HI16
   4363  -- : BFD_RELOC_SH_GOTPC_LOW16
   4364  -- : BFD_RELOC_SH_GOTPC_MEDLOW16
   4365  -- : BFD_RELOC_SH_GOTPC_MEDHI16
   4366  -- : BFD_RELOC_SH_GOTPC_HI16
   4367  -- : BFD_RELOC_SH_COPY64
   4368  -- : BFD_RELOC_SH_GLOB_DAT64
   4369  -- : BFD_RELOC_SH_JMP_SLOT64
   4370  -- : BFD_RELOC_SH_RELATIVE64
   4371  -- : BFD_RELOC_SH_GOT10BY4
   4372  -- : BFD_RELOC_SH_GOT10BY8
   4373  -- : BFD_RELOC_SH_GOTPLT10BY4
   4374  -- : BFD_RELOC_SH_GOTPLT10BY8
   4375  -- : BFD_RELOC_SH_GOTPLT32
   4376  -- : BFD_RELOC_SH_SHMEDIA_CODE
   4377  -- : BFD_RELOC_SH_IMMU5
   4378  -- : BFD_RELOC_SH_IMMS6
   4379  -- : BFD_RELOC_SH_IMMS6BY32
   4380  -- : BFD_RELOC_SH_IMMU6
   4381  -- : BFD_RELOC_SH_IMMS10
   4382  -- : BFD_RELOC_SH_IMMS10BY2
   4383  -- : BFD_RELOC_SH_IMMS10BY4
   4384  -- : BFD_RELOC_SH_IMMS10BY8
   4385  -- : BFD_RELOC_SH_IMMS16
   4386  -- : BFD_RELOC_SH_IMMU16
   4387  -- : BFD_RELOC_SH_IMM_LOW16
   4388  -- : BFD_RELOC_SH_IMM_LOW16_PCREL
   4389  -- : BFD_RELOC_SH_IMM_MEDLOW16
   4390  -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL
   4391  -- : BFD_RELOC_SH_IMM_MEDHI16
   4392  -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL
   4393  -- : BFD_RELOC_SH_IMM_HI16
   4394  -- : BFD_RELOC_SH_IMM_HI16_PCREL
   4395  -- : BFD_RELOC_SH_PT_16
   4396  -- : BFD_RELOC_SH_TLS_GD_32
   4397  -- : BFD_RELOC_SH_TLS_LD_32
   4398  -- : BFD_RELOC_SH_TLS_LDO_32
   4399  -- : BFD_RELOC_SH_TLS_IE_32
   4400  -- : BFD_RELOC_SH_TLS_LE_32
   4401  -- : BFD_RELOC_SH_TLS_DTPMOD32
   4402  -- : BFD_RELOC_SH_TLS_DTPOFF32
   4403  -- : BFD_RELOC_SH_TLS_TPOFF32
   4404  -- : BFD_RELOC_SH_GOT20
   4405  -- : BFD_RELOC_SH_GOTOFF20
   4406  -- : BFD_RELOC_SH_GOTFUNCDESC
   4407  -- : BFD_RELOC_SH_GOTFUNCDESC20
   4408  -- : BFD_RELOC_SH_GOTOFFFUNCDESC
   4409  -- : BFD_RELOC_SH_GOTOFFFUNCDESC20
   4410  -- : BFD_RELOC_SH_FUNCDESC
   4411      Renesas / SuperH SH relocs.  Not all of these appear in object
   4412      files.
   4413 
   4414  -- : BFD_RELOC_ARC_B22_PCREL
   4415      ARC Cores relocs.  ARC 22 bit pc-relative branch.  The lowest two
   4416      bits must be zero and are not stored in the instruction.  The high
   4417      20 bits are installed in bits 26 through 7 of the instruction.
   4418 
   4419  -- : BFD_RELOC_ARC_B26
   4420      ARC 26 bit absolute branch.  The lowest two bits must be zero and
   4421      are not stored in the instruction.  The high 24 bits are installed
   4422      in bits 23 through 0.
   4423 
   4424  -- : BFD_RELOC_BFIN_16_IMM
   4425      ADI Blackfin 16 bit immediate absolute reloc.
   4426 
   4427  -- : BFD_RELOC_BFIN_16_HIGH
   4428      ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.
   4429 
   4430  -- : BFD_RELOC_BFIN_4_PCREL
   4431      ADI Blackfin 'a' part of LSETUP.
   4432 
   4433  -- : BFD_RELOC_BFIN_5_PCREL
   4434      ADI Blackfin.
   4435 
   4436  -- : BFD_RELOC_BFIN_16_LOW
   4437      ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.
   4438 
   4439  -- : BFD_RELOC_BFIN_10_PCREL
   4440      ADI Blackfin.
   4441 
   4442  -- : BFD_RELOC_BFIN_11_PCREL
   4443      ADI Blackfin 'b' part of LSETUP.
   4444 
   4445  -- : BFD_RELOC_BFIN_12_PCREL_JUMP
   4446      ADI Blackfin.
   4447 
   4448  -- : BFD_RELOC_BFIN_12_PCREL_JUMP_S
   4449      ADI Blackfin Short jump, pcrel.
   4450 
   4451  -- : BFD_RELOC_BFIN_24_PCREL_CALL_X
   4452      ADI Blackfin Call.x not implemented.
   4453 
   4454  -- : BFD_RELOC_BFIN_24_PCREL_JUMP_L
   4455      ADI Blackfin Long Jump pcrel.
   4456 
   4457  -- : BFD_RELOC_BFIN_GOT17M4
   4458  -- : BFD_RELOC_BFIN_GOTHI
   4459  -- : BFD_RELOC_BFIN_GOTLO
   4460  -- : BFD_RELOC_BFIN_FUNCDESC
   4461  -- : BFD_RELOC_BFIN_FUNCDESC_GOT17M4
   4462  -- : BFD_RELOC_BFIN_FUNCDESC_GOTHI
   4463  -- : BFD_RELOC_BFIN_FUNCDESC_GOTLO
   4464  -- : BFD_RELOC_BFIN_FUNCDESC_VALUE
   4465  -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4
   4466  -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI
   4467  -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO
   4468  -- : BFD_RELOC_BFIN_GOTOFF17M4
   4469  -- : BFD_RELOC_BFIN_GOTOFFHI
   4470  -- : BFD_RELOC_BFIN_GOTOFFLO
   4471      ADI Blackfin FD-PIC relocations.
   4472 
   4473  -- : BFD_RELOC_BFIN_GOT
   4474      ADI Blackfin GOT relocation.
   4475 
   4476  -- : BFD_RELOC_BFIN_PLTPC
   4477      ADI Blackfin PLTPC relocation.
   4478 
   4479  -- : BFD_ARELOC_BFIN_PUSH
   4480      ADI Blackfin arithmetic relocation.
   4481 
   4482  -- : BFD_ARELOC_BFIN_CONST
   4483      ADI Blackfin arithmetic relocation.
   4484 
   4485  -- : BFD_ARELOC_BFIN_ADD
   4486      ADI Blackfin arithmetic relocation.
   4487 
   4488  -- : BFD_ARELOC_BFIN_SUB
   4489      ADI Blackfin arithmetic relocation.
   4490 
   4491  -- : BFD_ARELOC_BFIN_MULT
   4492      ADI Blackfin arithmetic relocation.
   4493 
   4494  -- : BFD_ARELOC_BFIN_DIV
   4495      ADI Blackfin arithmetic relocation.
   4496 
   4497  -- : BFD_ARELOC_BFIN_MOD
   4498      ADI Blackfin arithmetic relocation.
   4499 
   4500  -- : BFD_ARELOC_BFIN_LSHIFT
   4501      ADI Blackfin arithmetic relocation.
   4502 
   4503  -- : BFD_ARELOC_BFIN_RSHIFT
   4504      ADI Blackfin arithmetic relocation.
   4505 
   4506  -- : BFD_ARELOC_BFIN_AND
   4507      ADI Blackfin arithmetic relocation.
   4508 
   4509  -- : BFD_ARELOC_BFIN_OR
   4510      ADI Blackfin arithmetic relocation.
   4511 
   4512  -- : BFD_ARELOC_BFIN_XOR
   4513      ADI Blackfin arithmetic relocation.
   4514 
   4515  -- : BFD_ARELOC_BFIN_LAND
   4516      ADI Blackfin arithmetic relocation.
   4517 
   4518  -- : BFD_ARELOC_BFIN_LOR
   4519      ADI Blackfin arithmetic relocation.
   4520 
   4521  -- : BFD_ARELOC_BFIN_LEN
   4522      ADI Blackfin arithmetic relocation.
   4523 
   4524  -- : BFD_ARELOC_BFIN_NEG
   4525      ADI Blackfin arithmetic relocation.
   4526 
   4527  -- : BFD_ARELOC_BFIN_COMP
   4528      ADI Blackfin arithmetic relocation.
   4529 
   4530  -- : BFD_ARELOC_BFIN_PAGE
   4531      ADI Blackfin arithmetic relocation.
   4532 
   4533  -- : BFD_ARELOC_BFIN_HWPAGE
   4534      ADI Blackfin arithmetic relocation.
   4535 
   4536  -- : BFD_ARELOC_BFIN_ADDR
   4537      ADI Blackfin arithmetic relocation.
   4538 
   4539  -- : BFD_RELOC_D10V_10_PCREL_R
   4540      Mitsubishi D10V relocs.  This is a 10-bit reloc with the right 2
   4541      bits assumed to be 0.
   4542 
   4543  -- : BFD_RELOC_D10V_10_PCREL_L
   4544      Mitsubishi D10V relocs.  This is a 10-bit reloc with the right 2
   4545      bits assumed to be 0.  This is the same as the previous reloc
   4546      except it is in the left container, i.e., shifted left 15 bits.
   4547 
   4548  -- : BFD_RELOC_D10V_18
   4549      This is an 18-bit reloc with the right 2 bits assumed to be 0.
   4550 
   4551  -- : BFD_RELOC_D10V_18_PCREL
   4552      This is an 18-bit reloc with the right 2 bits assumed to be 0.
   4553 
   4554  -- : BFD_RELOC_D30V_6
   4555      Mitsubishi D30V relocs.  This is a 6-bit absolute reloc.
   4556 
   4557  -- : BFD_RELOC_D30V_9_PCREL
   4558      This is a 6-bit pc-relative reloc with the right 3 bits assumed to
   4559      be 0.
   4560 
   4561  -- : BFD_RELOC_D30V_9_PCREL_R
   4562      This is a 6-bit pc-relative reloc with the right 3 bits assumed to
   4563      be 0. Same as the previous reloc but on the right side of the
   4564      container.
   4565 
   4566  -- : BFD_RELOC_D30V_15
   4567      This is a 12-bit absolute reloc with the right 3 bitsassumed to be
   4568      0.
   4569 
   4570  -- : BFD_RELOC_D30V_15_PCREL
   4571      This is a 12-bit pc-relative reloc with the right 3 bits assumed
   4572      to be 0.
   4573 
   4574  -- : BFD_RELOC_D30V_15_PCREL_R
   4575      This is a 12-bit pc-relative reloc with the right 3 bits assumed
   4576      to be 0. Same as the previous reloc but on the right side of the
   4577      container.
   4578 
   4579  -- : BFD_RELOC_D30V_21
   4580      This is an 18-bit absolute reloc with the right 3 bits assumed to
   4581      be 0.
   4582 
   4583  -- : BFD_RELOC_D30V_21_PCREL
   4584      This is an 18-bit pc-relative reloc with the right 3 bits assumed
   4585      to be 0.
   4586 
   4587  -- : BFD_RELOC_D30V_21_PCREL_R
   4588      This is an 18-bit pc-relative reloc with the right 3 bits assumed
   4589      to be 0. Same as the previous reloc but on the right side of the
   4590      container.
   4591 
   4592  -- : BFD_RELOC_D30V_32
   4593      This is a 32-bit absolute reloc.
   4594 
   4595  -- : BFD_RELOC_D30V_32_PCREL
   4596      This is a 32-bit pc-relative reloc.
   4597 
   4598  -- : BFD_RELOC_DLX_HI16_S
   4599      DLX relocs
   4600 
   4601  -- : BFD_RELOC_DLX_LO16
   4602      DLX relocs
   4603 
   4604  -- : BFD_RELOC_DLX_JMP26
   4605      DLX relocs
   4606 
   4607  -- : BFD_RELOC_M32C_HI8
   4608  -- : BFD_RELOC_M32C_RL_JUMP
   4609  -- : BFD_RELOC_M32C_RL_1ADDR
   4610  -- : BFD_RELOC_M32C_RL_2ADDR
   4611      Renesas M16C/M32C Relocations.
   4612 
   4613  -- : BFD_RELOC_M32R_24
   4614      Renesas M32R (formerly Mitsubishi M32R) relocs.  This is a 24 bit
   4615      absolute address.
   4616 
   4617  -- : BFD_RELOC_M32R_10_PCREL
   4618      This is a 10-bit pc-relative reloc with the right 2 bits assumed
   4619      to be 0.
   4620 
   4621  -- : BFD_RELOC_M32R_18_PCREL
   4622      This is an 18-bit reloc with the right 2 bits assumed to be 0.
   4623 
   4624  -- : BFD_RELOC_M32R_26_PCREL
   4625      This is a 26-bit reloc with the right 2 bits assumed to be 0.
   4626 
   4627  -- : BFD_RELOC_M32R_HI16_ULO
   4628      This is a 16-bit reloc containing the high 16 bits of an address
   4629      used when the lower 16 bits are treated as unsigned.
   4630 
   4631  -- : BFD_RELOC_M32R_HI16_SLO
   4632      This is a 16-bit reloc containing the high 16 bits of an address
   4633      used when the lower 16 bits are treated as signed.
   4634 
   4635  -- : BFD_RELOC_M32R_LO16
   4636      This is a 16-bit reloc containing the lower 16 bits of an address.
   4637 
   4638  -- : BFD_RELOC_M32R_SDA16
   4639      This is a 16-bit reloc containing the small data area offset for
   4640      use in add3, load, and store instructions.
   4641 
   4642  -- : BFD_RELOC_M32R_GOT24
   4643  -- : BFD_RELOC_M32R_26_PLTREL
   4644  -- : BFD_RELOC_M32R_COPY
   4645  -- : BFD_RELOC_M32R_GLOB_DAT
   4646  -- : BFD_RELOC_M32R_JMP_SLOT
   4647  -- : BFD_RELOC_M32R_RELATIVE
   4648  -- : BFD_RELOC_M32R_GOTOFF
   4649  -- : BFD_RELOC_M32R_GOTOFF_HI_ULO
   4650  -- : BFD_RELOC_M32R_GOTOFF_HI_SLO
   4651  -- : BFD_RELOC_M32R_GOTOFF_LO
   4652  -- : BFD_RELOC_M32R_GOTPC24
   4653  -- : BFD_RELOC_M32R_GOT16_HI_ULO
   4654  -- : BFD_RELOC_M32R_GOT16_HI_SLO
   4655  -- : BFD_RELOC_M32R_GOT16_LO
   4656  -- : BFD_RELOC_M32R_GOTPC_HI_ULO
   4657  -- : BFD_RELOC_M32R_GOTPC_HI_SLO
   4658  -- : BFD_RELOC_M32R_GOTPC_LO
   4659      For PIC.
   4660 
   4661  -- : BFD_RELOC_NDS32_20
   4662      NDS32 relocs.  This is a 20 bit absolute address.
   4663 
   4664  -- : BFD_RELOC_NDS32_9_PCREL
   4665      This is a 9-bit pc-relative reloc with the right 1 bit assumed to
   4666      be 0.
   4667 
   4668  -- : BFD_RELOC_NDS32_WORD_9_PCREL
   4669      This is a 9-bit pc-relative reloc with the right 1 bit assumed to
   4670      be 0.
   4671 
   4672  -- : BFD_RELOC_NDS32_15_PCREL
   4673      This is an 15-bit reloc with the right 1 bit assumed to be 0.
   4674 
   4675  -- : BFD_RELOC_NDS32_17_PCREL
   4676      This is an 17-bit reloc with the right 1 bit assumed to be 0.
   4677 
   4678  -- : BFD_RELOC_NDS32_25_PCREL
   4679      This is a 25-bit reloc with the right 1 bit assumed to be 0.
   4680 
   4681  -- : BFD_RELOC_NDS32_HI20
   4682      This is a 20-bit reloc containing the high 20 bits of an address
   4683      used with the lower 12 bits
   4684 
   4685  -- : BFD_RELOC_NDS32_LO12S3
   4686      This is a 12-bit reloc containing the lower 12 bits of an address
   4687      then shift right by 3. This is used with ldi,sdi...
   4688 
   4689  -- : BFD_RELOC_NDS32_LO12S2
   4690      This is a 12-bit reloc containing the lower 12 bits of an address
   4691      then shift left by 2. This is used with lwi,swi...
   4692 
   4693  -- : BFD_RELOC_NDS32_LO12S1
   4694      This is a 12-bit reloc containing the lower 12 bits of an address
   4695      then shift left by 1. This is used with lhi,shi...
   4696 
   4697  -- : BFD_RELOC_NDS32_LO12S0
   4698      This is a 12-bit reloc containing the lower 12 bits of an address
   4699      then shift left by 0. This is used with lbisbi...
   4700 
   4701  -- : BFD_RELOC_NDS32_LO12S0_ORI
   4702      This is a 12-bit reloc containing the lower 12 bits of an address
   4703      then shift left by 0. This is only used with branch relaxations
   4704 
   4705  -- : BFD_RELOC_NDS32_SDA15S3
   4706      This is a 15-bit reloc containing the small data area 18-bit
   4707      signed offset and shift left by 3 for use in ldi, sdi...
   4708 
   4709  -- : BFD_RELOC_NDS32_SDA15S2
   4710      This is a 15-bit reloc containing the small data area 17-bit
   4711      signed offset and shift left by 2 for use in lwi, swi...
   4712 
   4713  -- : BFD_RELOC_NDS32_SDA15S1
   4714      This is a 15-bit reloc containing the small data area 16-bit
   4715      signed offset and shift left by 1 for use in lhi, shi...
   4716 
   4717  -- : BFD_RELOC_NDS32_SDA15S0
   4718      This is a 15-bit reloc containing the small data area 15-bit
   4719      signed offset and shift left by 0 for use in lbi, sbi...
   4720 
   4721  -- : BFD_RELOC_NDS32_SDA16S3
   4722      This is a 16-bit reloc containing the small data area 16-bit
   4723      signed offset and shift left by 3
   4724 
   4725  -- : BFD_RELOC_NDS32_SDA17S2
   4726      This is a 17-bit reloc containing the small data area 17-bit
   4727      signed offset and shift left by 2 for use in lwi.gp, swi.gp...
   4728 
   4729  -- : BFD_RELOC_NDS32_SDA18S1
   4730      This is a 18-bit reloc containing the small data area 18-bit
   4731      signed offset and shift left by 1 for use in lhi.gp, shi.gp...
   4732 
   4733  -- : BFD_RELOC_NDS32_SDA19S0
   4734      This is a 19-bit reloc containing the small data area 19-bit
   4735      signed offset and shift left by 0 for use in lbi.gp, sbi.gp...
   4736 
   4737  -- : BFD_RELOC_NDS32_GOT20
   4738  -- : BFD_RELOC_NDS32_9_PLTREL
   4739  -- : BFD_RELOC_NDS32_25_PLTREL
   4740  -- : BFD_RELOC_NDS32_COPY
   4741  -- : BFD_RELOC_NDS32_GLOB_DAT
   4742  -- : BFD_RELOC_NDS32_JMP_SLOT
   4743  -- : BFD_RELOC_NDS32_RELATIVE
   4744  -- : BFD_RELOC_NDS32_GOTOFF
   4745  -- : BFD_RELOC_NDS32_GOTOFF_HI20
   4746  -- : BFD_RELOC_NDS32_GOTOFF_LO12
   4747  -- : BFD_RELOC_NDS32_GOTPC20
   4748  -- : BFD_RELOC_NDS32_GOT_HI20
   4749  -- : BFD_RELOC_NDS32_GOT_LO12
   4750  -- : BFD_RELOC_NDS32_GOTPC_HI20
   4751  -- : BFD_RELOC_NDS32_GOTPC_LO12
   4752      for PIC
   4753 
   4754  -- : BFD_RELOC_NDS32_INSN16
   4755  -- : BFD_RELOC_NDS32_LABEL
   4756  -- : BFD_RELOC_NDS32_LONGCALL1
   4757  -- : BFD_RELOC_NDS32_LONGCALL2
   4758  -- : BFD_RELOC_NDS32_LONGCALL3
   4759  -- : BFD_RELOC_NDS32_LONGJUMP1
   4760  -- : BFD_RELOC_NDS32_LONGJUMP2
   4761  -- : BFD_RELOC_NDS32_LONGJUMP3
   4762  -- : BFD_RELOC_NDS32_LOADSTORE
   4763  -- : BFD_RELOC_NDS32_9_FIXED
   4764  -- : BFD_RELOC_NDS32_15_FIXED
   4765  -- : BFD_RELOC_NDS32_17_FIXED
   4766  -- : BFD_RELOC_NDS32_25_FIXED
   4767  -- : BFD_RELOC_NDS32_LONGCALL4
   4768  -- : BFD_RELOC_NDS32_LONGCALL5
   4769  -- : BFD_RELOC_NDS32_LONGCALL6
   4770  -- : BFD_RELOC_NDS32_LONGJUMP4
   4771  -- : BFD_RELOC_NDS32_LONGJUMP5
   4772  -- : BFD_RELOC_NDS32_LONGJUMP6
   4773  -- : BFD_RELOC_NDS32_LONGJUMP7
   4774      for relax
   4775 
   4776  -- : BFD_RELOC_NDS32_PLTREL_HI20
   4777  -- : BFD_RELOC_NDS32_PLTREL_LO12
   4778  -- : BFD_RELOC_NDS32_PLT_GOTREL_HI20
   4779  -- : BFD_RELOC_NDS32_PLT_GOTREL_LO12
   4780      for PIC
   4781 
   4782  -- : BFD_RELOC_NDS32_SDA12S2_DP
   4783  -- : BFD_RELOC_NDS32_SDA12S2_SP
   4784  -- : BFD_RELOC_NDS32_LO12S2_DP
   4785  -- : BFD_RELOC_NDS32_LO12S2_SP
   4786      for floating point
   4787 
   4788  -- : BFD_RELOC_NDS32_DWARF2_OP1
   4789  -- : BFD_RELOC_NDS32_DWARF2_OP2
   4790  -- : BFD_RELOC_NDS32_DWARF2_LEB
   4791      for dwarf2 debug_line.
   4792 
   4793  -- : BFD_RELOC_NDS32_UPDATE_TA
   4794      for eliminate 16-bit instructions
   4795 
   4796  -- : BFD_RELOC_NDS32_PLT_GOTREL_LO20
   4797  -- : BFD_RELOC_NDS32_PLT_GOTREL_LO15
   4798  -- : BFD_RELOC_NDS32_PLT_GOTREL_LO19
   4799  -- : BFD_RELOC_NDS32_GOT_LO15
   4800  -- : BFD_RELOC_NDS32_GOT_LO19
   4801  -- : BFD_RELOC_NDS32_GOTOFF_LO15
   4802  -- : BFD_RELOC_NDS32_GOTOFF_LO19
   4803  -- : BFD_RELOC_NDS32_GOT15S2
   4804  -- : BFD_RELOC_NDS32_GOT17S2
   4805      for PIC object relaxation
   4806 
   4807  -- : BFD_RELOC_NDS32_5
   4808      NDS32 relocs.  This is a 5 bit absolute address.
   4809 
   4810  -- : BFD_RELOC_NDS32_10_UPCREL
   4811      This is a 10-bit unsigned pc-relative reloc with the right 1 bit
   4812      assumed to be 0.
   4813 
   4814  -- : BFD_RELOC_NDS32_SDA_FP7U2_RELA
   4815      If fp were omitted, fp can used as another gp.
   4816 
   4817  -- : BFD_RELOC_NDS32_RELAX_ENTRY
   4818  -- : BFD_RELOC_NDS32_GOT_SUFF
   4819  -- : BFD_RELOC_NDS32_GOTOFF_SUFF
   4820  -- : BFD_RELOC_NDS32_PLT_GOT_SUFF
   4821  -- : BFD_RELOC_NDS32_MULCALL_SUFF
   4822  -- : BFD_RELOC_NDS32_PTR
   4823  -- : BFD_RELOC_NDS32_PTR_COUNT
   4824  -- : BFD_RELOC_NDS32_PTR_RESOLVED
   4825  -- : BFD_RELOC_NDS32_PLTBLOCK
   4826  -- : BFD_RELOC_NDS32_RELAX_REGION_BEGIN
   4827  -- : BFD_RELOC_NDS32_RELAX_REGION_END
   4828  -- : BFD_RELOC_NDS32_MINUEND
   4829  -- : BFD_RELOC_NDS32_SUBTRAHEND
   4830  -- : BFD_RELOC_NDS32_DIFF8
   4831  -- : BFD_RELOC_NDS32_DIFF16
   4832  -- : BFD_RELOC_NDS32_DIFF32
   4833  -- : BFD_RELOC_NDS32_DIFF_ULEB128
   4834  -- : BFD_RELOC_NDS32_EMPTY
   4835      relaxation relative relocation types
   4836 
   4837  -- : BFD_RELOC_NDS32_25_ABS
   4838      This is a 25 bit absolute address.
   4839 
   4840  -- : BFD_RELOC_NDS32_DATA
   4841  -- : BFD_RELOC_NDS32_TRAN
   4842  -- : BFD_RELOC_NDS32_17IFC_PCREL
   4843  -- : BFD_RELOC_NDS32_10IFCU_PCREL
   4844      For ex9 and ifc using.
   4845 
   4846  -- : BFD_RELOC_NDS32_TPOFF
   4847  -- : BFD_RELOC_NDS32_TLS_LE_HI20
   4848  -- : BFD_RELOC_NDS32_TLS_LE_LO12
   4849  -- : BFD_RELOC_NDS32_TLS_LE_ADD
   4850  -- : BFD_RELOC_NDS32_TLS_LE_LS
   4851  -- : BFD_RELOC_NDS32_GOTTPOFF
   4852  -- : BFD_RELOC_NDS32_TLS_IE_HI20
   4853  -- : BFD_RELOC_NDS32_TLS_IE_LO12S2
   4854  -- : BFD_RELOC_NDS32_TLS_TPOFF
   4855  -- : BFD_RELOC_NDS32_TLS_LE_20
   4856  -- : BFD_RELOC_NDS32_TLS_LE_15S0
   4857  -- : BFD_RELOC_NDS32_TLS_LE_15S1
   4858  -- : BFD_RELOC_NDS32_TLS_LE_15S2
   4859      For TLS.
   4860 
   4861  -- : BFD_RELOC_V850_9_PCREL
   4862      This is a 9-bit reloc
   4863 
   4864  -- : BFD_RELOC_V850_22_PCREL
   4865      This is a 22-bit reloc
   4866 
   4867  -- : BFD_RELOC_V850_SDA_16_16_OFFSET
   4868      This is a 16 bit offset from the short data area pointer.
   4869 
   4870  -- : BFD_RELOC_V850_SDA_15_16_OFFSET
   4871      This is a 16 bit offset (of which only 15 bits are used) from the
   4872      short data area pointer.
   4873 
   4874  -- : BFD_RELOC_V850_ZDA_16_16_OFFSET
   4875      This is a 16 bit offset from the zero data area pointer.
   4876 
   4877  -- : BFD_RELOC_V850_ZDA_15_16_OFFSET
   4878      This is a 16 bit offset (of which only 15 bits are used) from the
   4879      zero data area pointer.
   4880 
   4881  -- : BFD_RELOC_V850_TDA_6_8_OFFSET
   4882      This is an 8 bit offset (of which only 6 bits are used) from the
   4883      tiny data area pointer.
   4884 
   4885  -- : BFD_RELOC_V850_TDA_7_8_OFFSET
   4886      This is an 8bit offset (of which only 7 bits are used) from the
   4887      tiny data area pointer.
   4888 
   4889  -- : BFD_RELOC_V850_TDA_7_7_OFFSET
   4890      This is a 7 bit offset from the tiny data area pointer.
   4891 
   4892  -- : BFD_RELOC_V850_TDA_16_16_OFFSET
   4893      This is a 16 bit offset from the tiny data area pointer.
   4894 
   4895  -- : BFD_RELOC_V850_TDA_4_5_OFFSET
   4896      This is a 5 bit offset (of which only 4 bits are used) from the
   4897      tiny data area pointer.
   4898 
   4899  -- : BFD_RELOC_V850_TDA_4_4_OFFSET
   4900      This is a 4 bit offset from the tiny data area pointer.
   4901 
   4902  -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET
   4903      This is a 16 bit offset from the short data area pointer, with the
   4904      bits placed non-contiguously in the instruction.
   4905 
   4906  -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET
   4907      This is a 16 bit offset from the zero data area pointer, with the
   4908      bits placed non-contiguously in the instruction.
   4909 
   4910  -- : BFD_RELOC_V850_CALLT_6_7_OFFSET
   4911      This is a 6 bit offset from the call table base pointer.
   4912 
   4913  -- : BFD_RELOC_V850_CALLT_16_16_OFFSET
   4914      This is a 16 bit offset from the call table base pointer.
   4915 
   4916  -- : BFD_RELOC_V850_LONGCALL
   4917      Used for relaxing indirect function calls.
   4918 
   4919  -- : BFD_RELOC_V850_LONGJUMP
   4920      Used for relaxing indirect jumps.
   4921 
   4922  -- : BFD_RELOC_V850_ALIGN
   4923      Used to maintain alignment whilst relaxing.
   4924 
   4925  -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET
   4926      This is a variation of BFD_RELOC_LO16 that can be used in v850e
   4927      ld.bu instructions.
   4928 
   4929  -- : BFD_RELOC_V850_16_PCREL
   4930      This is a 16-bit reloc.
   4931 
   4932  -- : BFD_RELOC_V850_17_PCREL
   4933      This is a 17-bit reloc.
   4934 
   4935  -- : BFD_RELOC_V850_23
   4936      This is a 23-bit reloc.
   4937 
   4938  -- : BFD_RELOC_V850_32_PCREL
   4939      This is a 32-bit reloc.
   4940 
   4941  -- : BFD_RELOC_V850_32_ABS
   4942      This is a 32-bit reloc.
   4943 
   4944  -- : BFD_RELOC_V850_16_SPLIT_OFFSET
   4945      This is a 16-bit reloc.
   4946 
   4947  -- : BFD_RELOC_V850_16_S1
   4948      This is a 16-bit reloc.
   4949 
   4950  -- : BFD_RELOC_V850_LO16_S1
   4951      Low 16 bits. 16 bit shifted by 1.
   4952 
   4953  -- : BFD_RELOC_V850_CALLT_15_16_OFFSET
   4954      This is a 16 bit offset from the call table base pointer.
   4955 
   4956  -- : BFD_RELOC_V850_32_GOTPCREL
   4957      DSO relocations.
   4958 
   4959  -- : BFD_RELOC_V850_16_GOT
   4960      DSO relocations.
   4961 
   4962  -- : BFD_RELOC_V850_32_GOT
   4963      DSO relocations.
   4964 
   4965  -- : BFD_RELOC_V850_22_PLT_PCREL
   4966      DSO relocations.
   4967 
   4968  -- : BFD_RELOC_V850_32_PLT_PCREL
   4969      DSO relocations.
   4970 
   4971  -- : BFD_RELOC_V850_COPY
   4972      DSO relocations.
   4973 
   4974  -- : BFD_RELOC_V850_GLOB_DAT
   4975      DSO relocations.
   4976 
   4977  -- : BFD_RELOC_V850_JMP_SLOT
   4978      DSO relocations.
   4979 
   4980  -- : BFD_RELOC_V850_RELATIVE
   4981      DSO relocations.
   4982 
   4983  -- : BFD_RELOC_V850_16_GOTOFF
   4984      DSO relocations.
   4985 
   4986  -- : BFD_RELOC_V850_32_GOTOFF
   4987      DSO relocations.
   4988 
   4989  -- : BFD_RELOC_V850_CODE
   4990      start code.
   4991 
   4992  -- : BFD_RELOC_V850_DATA
   4993      start data in text.
   4994 
   4995  -- : BFD_RELOC_TIC30_LDP
   4996      This is a 8bit DP reloc for the tms320c30, where the most
   4997      significant 8 bits of a 24 bit word are placed into the least
   4998      significant 8 bits of the opcode.
   4999 
   5000  -- : BFD_RELOC_TIC54X_PARTLS7
   5001      This is a 7bit reloc for the tms320c54x, where the least
   5002      significant 7 bits of a 16 bit word are placed into the least
   5003      significant 7 bits of the opcode.
   5004 
   5005  -- : BFD_RELOC_TIC54X_PARTMS9
   5006      This is a 9bit DP reloc for the tms320c54x, where the most
   5007      significant 9 bits of a 16 bit word are placed into the least
   5008      significant 9 bits of the opcode.
   5009 
   5010  -- : BFD_RELOC_TIC54X_23
   5011      This is an extended address 23-bit reloc for the tms320c54x.
   5012 
   5013  -- : BFD_RELOC_TIC54X_16_OF_23
   5014      This is a 16-bit reloc for the tms320c54x, where the least
   5015      significant 16 bits of a 23-bit extended address are placed into
   5016      the opcode.
   5017 
   5018  -- : BFD_RELOC_TIC54X_MS7_OF_23
   5019      This is a reloc for the tms320c54x, where the most significant 7
   5020      bits of a 23-bit extended address are placed into the opcode.
   5021 
   5022  -- : BFD_RELOC_C6000_PCR_S21
   5023  -- : BFD_RELOC_C6000_PCR_S12
   5024  -- : BFD_RELOC_C6000_PCR_S10
   5025  -- : BFD_RELOC_C6000_PCR_S7
   5026  -- : BFD_RELOC_C6000_ABS_S16
   5027  -- : BFD_RELOC_C6000_ABS_L16
   5028  -- : BFD_RELOC_C6000_ABS_H16
   5029  -- : BFD_RELOC_C6000_SBR_U15_B
   5030  -- : BFD_RELOC_C6000_SBR_U15_H
   5031  -- : BFD_RELOC_C6000_SBR_U15_W
   5032  -- : BFD_RELOC_C6000_SBR_S16
   5033  -- : BFD_RELOC_C6000_SBR_L16_B
   5034  -- : BFD_RELOC_C6000_SBR_L16_H
   5035  -- : BFD_RELOC_C6000_SBR_L16_W
   5036  -- : BFD_RELOC_C6000_SBR_H16_B
   5037  -- : BFD_RELOC_C6000_SBR_H16_H
   5038  -- : BFD_RELOC_C6000_SBR_H16_W
   5039  -- : BFD_RELOC_C6000_SBR_GOT_U15_W
   5040  -- : BFD_RELOC_C6000_SBR_GOT_L16_W
   5041  -- : BFD_RELOC_C6000_SBR_GOT_H16_W
   5042  -- : BFD_RELOC_C6000_DSBT_INDEX
   5043  -- : BFD_RELOC_C6000_PREL31
   5044  -- : BFD_RELOC_C6000_COPY
   5045  -- : BFD_RELOC_C6000_JUMP_SLOT
   5046  -- : BFD_RELOC_C6000_EHTYPE
   5047  -- : BFD_RELOC_C6000_PCR_H16
   5048  -- : BFD_RELOC_C6000_PCR_L16
   5049  -- : BFD_RELOC_C6000_ALIGN
   5050  -- : BFD_RELOC_C6000_FPHEAD
   5051  -- : BFD_RELOC_C6000_NOCMP
   5052      TMS320C6000 relocations.
   5053 
   5054  -- : BFD_RELOC_FR30_48
   5055      This is a 48 bit reloc for the FR30 that stores 32 bits.
   5056 
   5057  -- : BFD_RELOC_FR30_20
   5058      This is a 32 bit reloc for the FR30 that stores 20 bits split up
   5059      into two sections.
   5060 
   5061  -- : BFD_RELOC_FR30_6_IN_4
   5062      This is a 16 bit reloc for the FR30 that stores a 6 bit word
   5063      offset in 4 bits.
   5064 
   5065  -- : BFD_RELOC_FR30_8_IN_8
   5066      This is a 16 bit reloc for the FR30 that stores an 8 bit byte
   5067      offset into 8 bits.
   5068 
   5069  -- : BFD_RELOC_FR30_9_IN_8
   5070      This is a 16 bit reloc for the FR30 that stores a 9 bit short
   5071      offset into 8 bits.
   5072 
   5073  -- : BFD_RELOC_FR30_10_IN_8
   5074      This is a 16 bit reloc for the FR30 that stores a 10 bit word
   5075      offset into 8 bits.
   5076 
   5077  -- : BFD_RELOC_FR30_9_PCREL
   5078      This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
   5079      short offset into 8 bits.
   5080 
   5081  -- : BFD_RELOC_FR30_12_PCREL
   5082      This is a 16 bit reloc for the FR30 that stores a 12 bit pc
   5083      relative short offset into 11 bits.
   5084 
   5085  -- : BFD_RELOC_MCORE_PCREL_IMM8BY4
   5086  -- : BFD_RELOC_MCORE_PCREL_IMM11BY2
   5087  -- : BFD_RELOC_MCORE_PCREL_IMM4BY2
   5088  -- : BFD_RELOC_MCORE_PCREL_32
   5089  -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2
   5090  -- : BFD_RELOC_MCORE_RVA
   5091      Motorola Mcore relocations.
   5092 
   5093  -- : BFD_RELOC_MEP_8
   5094  -- : BFD_RELOC_MEP_16
   5095  -- : BFD_RELOC_MEP_32
   5096  -- : BFD_RELOC_MEP_PCREL8A2
   5097  -- : BFD_RELOC_MEP_PCREL12A2
   5098  -- : BFD_RELOC_MEP_PCREL17A2
   5099  -- : BFD_RELOC_MEP_PCREL24A2
   5100  -- : BFD_RELOC_MEP_PCABS24A2
   5101  -- : BFD_RELOC_MEP_LOW16
   5102  -- : BFD_RELOC_MEP_HI16U
   5103  -- : BFD_RELOC_MEP_HI16S
   5104  -- : BFD_RELOC_MEP_GPREL
   5105  -- : BFD_RELOC_MEP_TPREL
   5106  -- : BFD_RELOC_MEP_TPREL7
   5107  -- : BFD_RELOC_MEP_TPREL7A2
   5108  -- : BFD_RELOC_MEP_TPREL7A4
   5109  -- : BFD_RELOC_MEP_UIMM24
   5110  -- : BFD_RELOC_MEP_ADDR24A4
   5111  -- : BFD_RELOC_MEP_GNU_VTINHERIT
   5112  -- : BFD_RELOC_MEP_GNU_VTENTRY
   5113      Toshiba Media Processor Relocations.
   5114 
   5115  -- : BFD_RELOC_METAG_HIADDR16
   5116  -- : BFD_RELOC_METAG_LOADDR16
   5117  -- : BFD_RELOC_METAG_RELBRANCH
   5118  -- : BFD_RELOC_METAG_GETSETOFF
   5119  -- : BFD_RELOC_METAG_HIOG
   5120  -- : BFD_RELOC_METAG_LOOG
   5121  -- : BFD_RELOC_METAG_REL8
   5122  -- : BFD_RELOC_METAG_REL16
   5123  -- : BFD_RELOC_METAG_HI16_GOTOFF
   5124  -- : BFD_RELOC_METAG_LO16_GOTOFF
   5125  -- : BFD_RELOC_METAG_GETSET_GOTOFF
   5126  -- : BFD_RELOC_METAG_GETSET_GOT
   5127  -- : BFD_RELOC_METAG_HI16_GOTPC
   5128  -- : BFD_RELOC_METAG_LO16_GOTPC
   5129  -- : BFD_RELOC_METAG_HI16_PLT
   5130  -- : BFD_RELOC_METAG_LO16_PLT
   5131  -- : BFD_RELOC_METAG_RELBRANCH_PLT
   5132  -- : BFD_RELOC_METAG_GOTOFF
   5133  -- : BFD_RELOC_METAG_PLT
   5134  -- : BFD_RELOC_METAG_COPY
   5135  -- : BFD_RELOC_METAG_JMP_SLOT
   5136  -- : BFD_RELOC_METAG_RELATIVE
   5137  -- : BFD_RELOC_METAG_GLOB_DAT
   5138  -- : BFD_RELOC_METAG_TLS_GD
   5139  -- : BFD_RELOC_METAG_TLS_LDM
   5140  -- : BFD_RELOC_METAG_TLS_LDO_HI16
   5141  -- : BFD_RELOC_METAG_TLS_LDO_LO16
   5142  -- : BFD_RELOC_METAG_TLS_LDO
   5143  -- : BFD_RELOC_METAG_TLS_IE
   5144  -- : BFD_RELOC_METAG_TLS_IENONPIC
   5145  -- : BFD_RELOC_METAG_TLS_IENONPIC_HI16
   5146  -- : BFD_RELOC_METAG_TLS_IENONPIC_LO16
   5147  -- : BFD_RELOC_METAG_TLS_TPOFF
   5148  -- : BFD_RELOC_METAG_TLS_DTPMOD
   5149  -- : BFD_RELOC_METAG_TLS_DTPOFF
   5150  -- : BFD_RELOC_METAG_TLS_LE
   5151  -- : BFD_RELOC_METAG_TLS_LE_HI16
   5152  -- : BFD_RELOC_METAG_TLS_LE_LO16
   5153      Imagination Technologies Meta relocations.
   5154 
   5155  -- : BFD_RELOC_MMIX_GETA
   5156  -- : BFD_RELOC_MMIX_GETA_1
   5157  -- : BFD_RELOC_MMIX_GETA_2
   5158  -- : BFD_RELOC_MMIX_GETA_3
   5159      These are relocations for the GETA instruction.
   5160 
   5161  -- : BFD_RELOC_MMIX_CBRANCH
   5162  -- : BFD_RELOC_MMIX_CBRANCH_J
   5163  -- : BFD_RELOC_MMIX_CBRANCH_1
   5164  -- : BFD_RELOC_MMIX_CBRANCH_2
   5165  -- : BFD_RELOC_MMIX_CBRANCH_3
   5166      These are relocations for a conditional branch instruction.
   5167 
   5168  -- : BFD_RELOC_MMIX_PUSHJ
   5169  -- : BFD_RELOC_MMIX_PUSHJ_1
   5170  -- : BFD_RELOC_MMIX_PUSHJ_2
   5171  -- : BFD_RELOC_MMIX_PUSHJ_3
   5172  -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE
   5173      These are relocations for the PUSHJ instruction.
   5174 
   5175  -- : BFD_RELOC_MMIX_JMP
   5176  -- : BFD_RELOC_MMIX_JMP_1
   5177  -- : BFD_RELOC_MMIX_JMP_2
   5178  -- : BFD_RELOC_MMIX_JMP_3
   5179      These are relocations for the JMP instruction.
   5180 
   5181  -- : BFD_RELOC_MMIX_ADDR19
   5182      This is a relocation for a relative address as in a GETA
   5183      instruction or a branch.
   5184 
   5185  -- : BFD_RELOC_MMIX_ADDR27
   5186      This is a relocation for a relative address as in a JMP
   5187      instruction.
   5188 
   5189  -- : BFD_RELOC_MMIX_REG_OR_BYTE
   5190      This is a relocation for an instruction field that may be a general
   5191      register or a value 0..255.
   5192 
   5193  -- : BFD_RELOC_MMIX_REG
   5194      This is a relocation for an instruction field that may be a general
   5195      register.
   5196 
   5197  -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET
   5198      This is a relocation for two instruction fields holding a register
   5199      and an offset, the equivalent of the relocation.
   5200 
   5201  -- : BFD_RELOC_MMIX_LOCAL
   5202      This relocation is an assertion that the expression is not
   5203      allocated as a global register.  It does not modify contents.
   5204 
   5205  -- : BFD_RELOC_AVR_7_PCREL
   5206      This is a 16 bit reloc for the AVR that stores 8 bit pc relative
   5207      short offset into 7 bits.
   5208 
   5209  -- : BFD_RELOC_AVR_13_PCREL
   5210      This is a 16 bit reloc for the AVR that stores 13 bit pc relative
   5211      short offset into 12 bits.
   5212 
   5213  -- : BFD_RELOC_AVR_16_PM
   5214      This is a 16 bit reloc for the AVR that stores 17 bit value
   5215      (usually program memory address) into 16 bits.
   5216 
   5217  -- : BFD_RELOC_AVR_LO8_LDI
   5218      This is a 16 bit reloc for the AVR that stores 8 bit value (usually
   5219      data memory address) into 8 bit immediate value of LDI insn.
   5220 
   5221  -- : BFD_RELOC_AVR_HI8_LDI
   5222      This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
   5223      bit of data memory address) into 8 bit immediate value of LDI insn.
   5224 
   5225  -- : BFD_RELOC_AVR_HH8_LDI
   5226      This is a 16 bit reloc for the AVR that stores 8 bit value (most
   5227      high 8 bit of program memory address) into 8 bit immediate value
   5228      of LDI insn.
   5229 
   5230  -- : BFD_RELOC_AVR_MS8_LDI
   5231      This is a 16 bit reloc for the AVR that stores 8 bit value (most
   5232      high 8 bit of 32 bit value) into 8 bit immediate value of LDI insn.
   5233 
   5234  -- : BFD_RELOC_AVR_LO8_LDI_NEG
   5235      This is a 16 bit reloc for the AVR that stores negated 8 bit value
   5236      (usually data memory address) into 8 bit immediate value of SUBI
   5237      insn.
   5238 
   5239  -- : BFD_RELOC_AVR_HI8_LDI_NEG
   5240      This is a 16 bit reloc for the AVR that stores negated 8 bit value
   5241      (high 8 bit of data memory address) into 8 bit immediate value of
   5242      SUBI insn.
   5243 
   5244  -- : BFD_RELOC_AVR_HH8_LDI_NEG
   5245      This is a 16 bit reloc for the AVR that stores negated 8 bit value
   5246      (most high 8 bit of program memory address) into 8 bit immediate
   5247      value of LDI or SUBI insn.
   5248 
   5249  -- : BFD_RELOC_AVR_MS8_LDI_NEG
   5250      This is a 16 bit reloc for the AVR that stores negated 8 bit value
   5251      (msb of 32 bit value) into 8 bit immediate value of LDI insn.
   5252 
   5253  -- : BFD_RELOC_AVR_LO8_LDI_PM
   5254      This is a 16 bit reloc for the AVR that stores 8 bit value (usually
   5255      command address) into 8 bit immediate value of LDI insn.
   5256 
   5257  -- : BFD_RELOC_AVR_LO8_LDI_GS
   5258      This is a 16 bit reloc for the AVR that stores 8 bit value
   5259      (command address) into 8 bit immediate value of LDI insn. If the
   5260      address is beyond the 128k boundary, the linker inserts a jump
   5261      stub for this reloc in the lower 128k.
   5262 
   5263  -- : BFD_RELOC_AVR_HI8_LDI_PM
   5264      This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
   5265      bit of command address) into 8 bit immediate value of LDI insn.
   5266 
   5267  -- : BFD_RELOC_AVR_HI8_LDI_GS
   5268      This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
   5269      bit of command address) into 8 bit immediate value of LDI insn.
   5270      If the address is beyond the 128k boundary, the linker inserts a
   5271      jump stub for this reloc below 128k.
   5272 
   5273  -- : BFD_RELOC_AVR_HH8_LDI_PM
   5274      This is a 16 bit reloc for the AVR that stores 8 bit value (most
   5275      high 8 bit of command address) into 8 bit immediate value of LDI
   5276      insn.
   5277 
   5278  -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG
   5279      This is a 16 bit reloc for the AVR that stores negated 8 bit value
   5280      (usually command address) into 8 bit immediate value of SUBI insn.
   5281 
   5282  -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG
   5283      This is a 16 bit reloc for the AVR that stores negated 8 bit value
   5284      (high 8 bit of 16 bit command address) into 8 bit immediate value
   5285      of SUBI insn.
   5286 
   5287  -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG
   5288      This is a 16 bit reloc for the AVR that stores negated 8 bit value
   5289      (high 6 bit of 22 bit command address) into 8 bit immediate value
   5290      of SUBI insn.
   5291 
   5292  -- : BFD_RELOC_AVR_CALL
   5293      This is a 32 bit reloc for the AVR that stores 23 bit value into
   5294      22 bits.
   5295 
   5296  -- : BFD_RELOC_AVR_LDI
   5297      This is a 16 bit reloc for the AVR that stores all needed bits for
   5298      absolute addressing with ldi with overflow check to linktime
   5299 
   5300  -- : BFD_RELOC_AVR_6
   5301      This is a 6 bit reloc for the AVR that stores offset for ldd/std
   5302      instructions
   5303 
   5304  -- : BFD_RELOC_AVR_6_ADIW
   5305      This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
   5306      instructions
   5307 
   5308  -- : BFD_RELOC_AVR_8_LO
   5309      This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol
   5310      in .byte lo8(symbol)
   5311 
   5312  -- : BFD_RELOC_AVR_8_HI
   5313      This is a 8 bit reloc for the AVR that stores bits 8..15 of a
   5314      symbol in .byte hi8(symbol)
   5315 
   5316  -- : BFD_RELOC_AVR_8_HLO
   5317      This is a 8 bit reloc for the AVR that stores bits 16..23 of a
   5318      symbol in .byte hlo8(symbol)
   5319 
   5320  -- : BFD_RELOC_AVR_DIFF8
   5321  -- : BFD_RELOC_AVR_DIFF16
   5322  -- : BFD_RELOC_AVR_DIFF32
   5323      AVR relocations to mark the difference of two local symbols.
   5324      These are only needed to support linker relaxation and can be
   5325      ignored when not relaxing.  The field is set to the value of the
   5326      difference assuming no relaxation.  The relocation encodes the
   5327      position of the second symbol so the linker can determine whether
   5328      to adjust the field value.
   5329 
   5330  -- : BFD_RELOC_AVR_LDS_STS_16
   5331      This is a 7 bit reloc for the AVR that stores SRAM address for
   5332      16bit lds and sts instructions supported only tiny core.
   5333 
   5334  -- : BFD_RELOC_AVR_PORT6
   5335      This is a 6 bit reloc for the AVR that stores an I/O register
   5336      number for the IN and OUT instructions
   5337 
   5338  -- : BFD_RELOC_AVR_PORT5
   5339      This is a 5 bit reloc for the AVR that stores an I/O register
   5340      number for the SBIC, SBIS, SBI and CBI instructions
   5341 
   5342  -- : BFD_RELOC_RL78_NEG8
   5343  -- : BFD_RELOC_RL78_NEG16
   5344  -- : BFD_RELOC_RL78_NEG24
   5345  -- : BFD_RELOC_RL78_NEG32
   5346  -- : BFD_RELOC_RL78_16_OP
   5347  -- : BFD_RELOC_RL78_24_OP
   5348  -- : BFD_RELOC_RL78_32_OP
   5349  -- : BFD_RELOC_RL78_8U
   5350  -- : BFD_RELOC_RL78_16U
   5351  -- : BFD_RELOC_RL78_24U
   5352  -- : BFD_RELOC_RL78_DIR3U_PCREL
   5353  -- : BFD_RELOC_RL78_DIFF
   5354  -- : BFD_RELOC_RL78_GPRELB
   5355  -- : BFD_RELOC_RL78_GPRELW
   5356  -- : BFD_RELOC_RL78_GPRELL
   5357  -- : BFD_RELOC_RL78_SYM
   5358  -- : BFD_RELOC_RL78_OP_SUBTRACT
   5359  -- : BFD_RELOC_RL78_OP_NEG
   5360  -- : BFD_RELOC_RL78_OP_AND
   5361  -- : BFD_RELOC_RL78_OP_SHRA
   5362  -- : BFD_RELOC_RL78_ABS8
   5363  -- : BFD_RELOC_RL78_ABS16
   5364  -- : BFD_RELOC_RL78_ABS16_REV
   5365  -- : BFD_RELOC_RL78_ABS32
   5366  -- : BFD_RELOC_RL78_ABS32_REV
   5367  -- : BFD_RELOC_RL78_ABS16U
   5368  -- : BFD_RELOC_RL78_ABS16UW
   5369  -- : BFD_RELOC_RL78_ABS16UL
   5370  -- : BFD_RELOC_RL78_RELAX
   5371  -- : BFD_RELOC_RL78_HI16
   5372  -- : BFD_RELOC_RL78_HI8
   5373  -- : BFD_RELOC_RL78_LO16
   5374  -- : BFD_RELOC_RL78_CODE
   5375      Renesas RL78 Relocations.
   5376 
   5377  -- : BFD_RELOC_RX_NEG8
   5378  -- : BFD_RELOC_RX_NEG16
   5379  -- : BFD_RELOC_RX_NEG24
   5380  -- : BFD_RELOC_RX_NEG32
   5381  -- : BFD_RELOC_RX_16_OP
   5382  -- : BFD_RELOC_RX_24_OP
   5383  -- : BFD_RELOC_RX_32_OP
   5384  -- : BFD_RELOC_RX_8U
   5385  -- : BFD_RELOC_RX_16U
   5386  -- : BFD_RELOC_RX_24U
   5387  -- : BFD_RELOC_RX_DIR3U_PCREL
   5388  -- : BFD_RELOC_RX_DIFF
   5389  -- : BFD_RELOC_RX_GPRELB
   5390  -- : BFD_RELOC_RX_GPRELW
   5391  -- : BFD_RELOC_RX_GPRELL
   5392  -- : BFD_RELOC_RX_SYM
   5393  -- : BFD_RELOC_RX_OP_SUBTRACT
   5394  -- : BFD_RELOC_RX_OP_NEG
   5395  -- : BFD_RELOC_RX_ABS8
   5396  -- : BFD_RELOC_RX_ABS16
   5397  -- : BFD_RELOC_RX_ABS16_REV
   5398  -- : BFD_RELOC_RX_ABS32
   5399  -- : BFD_RELOC_RX_ABS32_REV
   5400  -- : BFD_RELOC_RX_ABS16U
   5401  -- : BFD_RELOC_RX_ABS16UW
   5402  -- : BFD_RELOC_RX_ABS16UL
   5403  -- : BFD_RELOC_RX_RELAX
   5404      Renesas RX Relocations.
   5405 
   5406  -- : BFD_RELOC_390_12
   5407      Direct 12 bit.
   5408 
   5409  -- : BFD_RELOC_390_GOT12
   5410      12 bit GOT offset.
   5411 
   5412  -- : BFD_RELOC_390_PLT32
   5413      32 bit PC relative PLT address.
   5414 
   5415  -- : BFD_RELOC_390_COPY
   5416      Copy symbol at runtime.
   5417 
   5418  -- : BFD_RELOC_390_GLOB_DAT
   5419      Create GOT entry.
   5420 
   5421  -- : BFD_RELOC_390_JMP_SLOT
   5422      Create PLT entry.
   5423 
   5424  -- : BFD_RELOC_390_RELATIVE
   5425      Adjust by program base.
   5426 
   5427  -- : BFD_RELOC_390_GOTPC
   5428      32 bit PC relative offset to GOT.
   5429 
   5430  -- : BFD_RELOC_390_GOT16
   5431      16 bit GOT offset.
   5432 
   5433  -- : BFD_RELOC_390_PC12DBL
   5434      PC relative 12 bit shifted by 1.
   5435 
   5436  -- : BFD_RELOC_390_PLT12DBL
   5437      12 bit PC rel. PLT shifted by 1.
   5438 
   5439  -- : BFD_RELOC_390_PC16DBL
   5440      PC relative 16 bit shifted by 1.
   5441 
   5442  -- : BFD_RELOC_390_PLT16DBL
   5443      16 bit PC rel. PLT shifted by 1.
   5444 
   5445  -- : BFD_RELOC_390_PC24DBL
   5446      PC relative 24 bit shifted by 1.
   5447 
   5448  -- : BFD_RELOC_390_PLT24DBL
   5449      24 bit PC rel. PLT shifted by 1.
   5450 
   5451  -- : BFD_RELOC_390_PC32DBL
   5452      PC relative 32 bit shifted by 1.
   5453 
   5454  -- : BFD_RELOC_390_PLT32DBL
   5455      32 bit PC rel. PLT shifted by 1.
   5456 
   5457  -- : BFD_RELOC_390_GOTPCDBL
   5458      32 bit PC rel. GOT shifted by 1.
   5459 
   5460  -- : BFD_RELOC_390_GOT64
   5461      64 bit GOT offset.
   5462 
   5463  -- : BFD_RELOC_390_PLT64
   5464      64 bit PC relative PLT address.
   5465 
   5466  -- : BFD_RELOC_390_GOTENT
   5467      32 bit rel. offset to GOT entry.
   5468 
   5469  -- : BFD_RELOC_390_GOTOFF64
   5470      64 bit offset to GOT.
   5471 
   5472  -- : BFD_RELOC_390_GOTPLT12
   5473      12-bit offset to symbol-entry within GOT, with PLT handling.
   5474 
   5475  -- : BFD_RELOC_390_GOTPLT16
   5476      16-bit offset to symbol-entry within GOT, with PLT handling.
   5477 
   5478  -- : BFD_RELOC_390_GOTPLT32
   5479      32-bit offset to symbol-entry within GOT, with PLT handling.
   5480 
   5481  -- : BFD_RELOC_390_GOTPLT64
   5482      64-bit offset to symbol-entry within GOT, with PLT handling.
   5483 
   5484  -- : BFD_RELOC_390_GOTPLTENT
   5485      32-bit rel. offset to symbol-entry within GOT, with PLT handling.
   5486 
   5487  -- : BFD_RELOC_390_PLTOFF16
   5488      16-bit rel. offset from the GOT to a PLT entry.
   5489 
   5490  -- : BFD_RELOC_390_PLTOFF32
   5491      32-bit rel. offset from the GOT to a PLT entry.
   5492 
   5493  -- : BFD_RELOC_390_PLTOFF64
   5494      64-bit rel. offset from the GOT to a PLT entry.
   5495 
   5496  -- : BFD_RELOC_390_TLS_LOAD
   5497  -- : BFD_RELOC_390_TLS_GDCALL
   5498  -- : BFD_RELOC_390_TLS_LDCALL
   5499  -- : BFD_RELOC_390_TLS_GD32
   5500  -- : BFD_RELOC_390_TLS_GD64
   5501  -- : BFD_RELOC_390_TLS_GOTIE12
   5502  -- : BFD_RELOC_390_TLS_GOTIE32
   5503  -- : BFD_RELOC_390_TLS_GOTIE64
   5504  -- : BFD_RELOC_390_TLS_LDM32
   5505  -- : BFD_RELOC_390_TLS_LDM64
   5506  -- : BFD_RELOC_390_TLS_IE32
   5507  -- : BFD_RELOC_390_TLS_IE64
   5508  -- : BFD_RELOC_390_TLS_IEENT
   5509  -- : BFD_RELOC_390_TLS_LE32
   5510  -- : BFD_RELOC_390_TLS_LE64
   5511  -- : BFD_RELOC_390_TLS_LDO32
   5512  -- : BFD_RELOC_390_TLS_LDO64
   5513  -- : BFD_RELOC_390_TLS_DTPMOD
   5514  -- : BFD_RELOC_390_TLS_DTPOFF
   5515  -- : BFD_RELOC_390_TLS_TPOFF
   5516      s390 tls relocations.
   5517 
   5518  -- : BFD_RELOC_390_20
   5519  -- : BFD_RELOC_390_GOT20
   5520  -- : BFD_RELOC_390_GOTPLT20
   5521  -- : BFD_RELOC_390_TLS_GOTIE20
   5522      Long displacement extension.
   5523 
   5524  -- : BFD_RELOC_390_IRELATIVE
   5525      STT_GNU_IFUNC relocation.
   5526 
   5527  -- : BFD_RELOC_SCORE_GPREL15
   5528      Score relocations Low 16 bit for load/store
   5529 
   5530  -- : BFD_RELOC_SCORE_DUMMY2
   5531  -- : BFD_RELOC_SCORE_JMP
   5532      This is a 24-bit reloc with the right 1 bit assumed to be 0
   5533 
   5534  -- : BFD_RELOC_SCORE_BRANCH
   5535      This is a 19-bit reloc with the right 1 bit assumed to be 0
   5536 
   5537  -- : BFD_RELOC_SCORE_IMM30
   5538      This is a 32-bit reloc for 48-bit instructions.
   5539 
   5540  -- : BFD_RELOC_SCORE_IMM32
   5541      This is a 32-bit reloc for 48-bit instructions.
   5542 
   5543  -- : BFD_RELOC_SCORE16_JMP
   5544      This is a 11-bit reloc with the right 1 bit assumed to be 0
   5545 
   5546  -- : BFD_RELOC_SCORE16_BRANCH
   5547      This is a 8-bit reloc with the right 1 bit assumed to be 0
   5548 
   5549  -- : BFD_RELOC_SCORE_BCMP
   5550      This is a 9-bit reloc with the right 1 bit assumed to be 0
   5551 
   5552  -- : BFD_RELOC_SCORE_GOT15
   5553  -- : BFD_RELOC_SCORE_GOT_LO16
   5554  -- : BFD_RELOC_SCORE_CALL15
   5555  -- : BFD_RELOC_SCORE_DUMMY_HI16
   5556      Undocumented Score relocs
   5557 
   5558  -- : BFD_RELOC_IP2K_FR9
   5559      Scenix IP2K - 9-bit register number / data address
   5560 
   5561  -- : BFD_RELOC_IP2K_BANK
   5562      Scenix IP2K - 4-bit register/data bank number
   5563 
   5564  -- : BFD_RELOC_IP2K_ADDR16CJP
   5565      Scenix IP2K - low 13 bits of instruction word address
   5566 
   5567  -- : BFD_RELOC_IP2K_PAGE3
   5568      Scenix IP2K - high 3 bits of instruction word address
   5569 
   5570  -- : BFD_RELOC_IP2K_LO8DATA
   5571  -- : BFD_RELOC_IP2K_HI8DATA
   5572  -- : BFD_RELOC_IP2K_EX8DATA
   5573      Scenix IP2K - ext/low/high 8 bits of data address
   5574 
   5575  -- : BFD_RELOC_IP2K_LO8INSN
   5576  -- : BFD_RELOC_IP2K_HI8INSN
   5577      Scenix IP2K - low/high 8 bits of instruction word address
   5578 
   5579  -- : BFD_RELOC_IP2K_PC_SKIP
   5580      Scenix IP2K - even/odd PC modifier to modify snb pcl.0
   5581 
   5582  -- : BFD_RELOC_IP2K_TEXT
   5583      Scenix IP2K - 16 bit word address in text section.
   5584 
   5585  -- : BFD_RELOC_IP2K_FR_OFFSET
   5586      Scenix IP2K - 7-bit sp or dp offset
   5587 
   5588  -- : BFD_RELOC_VPE4KMATH_DATA
   5589  -- : BFD_RELOC_VPE4KMATH_INSN
   5590      Scenix VPE4K coprocessor - data/insn-space addressing
   5591 
   5592  -- : BFD_RELOC_VTABLE_INHERIT
   5593  -- : BFD_RELOC_VTABLE_ENTRY
   5594      These two relocations are used by the linker to determine which of
   5595      the entries in a C++ virtual function table are actually used.
   5596      When the -gc-sections option is given, the linker will zero out
   5597      the entries that are not used, so that the code for those
   5598      functions need not be included in the output.
   5599 
   5600      VTABLE_INHERIT is a zero-space relocation used to describe to the
   5601      linker the inheritance tree of a C++ virtual function table.  The
   5602      relocation's symbol should be the parent class' vtable, and the
   5603      relocation should be located at the child vtable.
   5604 
   5605      VTABLE_ENTRY is a zero-space relocation that describes the use of a
   5606      virtual function table entry.  The reloc's symbol should refer to
   5607      the table of the class mentioned in the code.  Off of that base,
   5608      an offset describes the entry that is being used.  For Rela hosts,
   5609      this offset is stored in the reloc's addend.  For Rel hosts, we
   5610      are forced to put this offset in the reloc's section offset.
   5611 
   5612  -- : BFD_RELOC_IA64_IMM14
   5613  -- : BFD_RELOC_IA64_IMM22
   5614  -- : BFD_RELOC_IA64_IMM64
   5615  -- : BFD_RELOC_IA64_DIR32MSB
   5616  -- : BFD_RELOC_IA64_DIR32LSB
   5617  -- : BFD_RELOC_IA64_DIR64MSB
   5618  -- : BFD_RELOC_IA64_DIR64LSB
   5619  -- : BFD_RELOC_IA64_GPREL22
   5620  -- : BFD_RELOC_IA64_GPREL64I
   5621  -- : BFD_RELOC_IA64_GPREL32MSB
   5622  -- : BFD_RELOC_IA64_GPREL32LSB
   5623  -- : BFD_RELOC_IA64_GPREL64MSB
   5624  -- : BFD_RELOC_IA64_GPREL64LSB
   5625  -- : BFD_RELOC_IA64_LTOFF22
   5626  -- : BFD_RELOC_IA64_LTOFF64I
   5627  -- : BFD_RELOC_IA64_PLTOFF22
   5628  -- : BFD_RELOC_IA64_PLTOFF64I
   5629  -- : BFD_RELOC_IA64_PLTOFF64MSB
   5630  -- : BFD_RELOC_IA64_PLTOFF64LSB
   5631  -- : BFD_RELOC_IA64_FPTR64I
   5632  -- : BFD_RELOC_IA64_FPTR32MSB
   5633  -- : BFD_RELOC_IA64_FPTR32LSB
   5634  -- : BFD_RELOC_IA64_FPTR64MSB
   5635  -- : BFD_RELOC_IA64_FPTR64LSB
   5636  -- : BFD_RELOC_IA64_PCREL21B
   5637  -- : BFD_RELOC_IA64_PCREL21BI
   5638  -- : BFD_RELOC_IA64_PCREL21M
   5639  -- : BFD_RELOC_IA64_PCREL21F
   5640  -- : BFD_RELOC_IA64_PCREL22
   5641  -- : BFD_RELOC_IA64_PCREL60B
   5642  -- : BFD_RELOC_IA64_PCREL64I
   5643  -- : BFD_RELOC_IA64_PCREL32MSB
   5644  -- : BFD_RELOC_IA64_PCREL32LSB
   5645  -- : BFD_RELOC_IA64_PCREL64MSB
   5646  -- : BFD_RELOC_IA64_PCREL64LSB
   5647  -- : BFD_RELOC_IA64_LTOFF_FPTR22
   5648  -- : BFD_RELOC_IA64_LTOFF_FPTR64I
   5649  -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB
   5650  -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB
   5651  -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB
   5652  -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB
   5653  -- : BFD_RELOC_IA64_SEGREL32MSB
   5654  -- : BFD_RELOC_IA64_SEGREL32LSB
   5655  -- : BFD_RELOC_IA64_SEGREL64MSB
   5656  -- : BFD_RELOC_IA64_SEGREL64LSB
   5657  -- : BFD_RELOC_IA64_SECREL32MSB
   5658  -- : BFD_RELOC_IA64_SECREL32LSB
   5659  -- : BFD_RELOC_IA64_SECREL64MSB
   5660  -- : BFD_RELOC_IA64_SECREL64LSB
   5661  -- : BFD_RELOC_IA64_REL32MSB
   5662  -- : BFD_RELOC_IA64_REL32LSB
   5663  -- : BFD_RELOC_IA64_REL64MSB
   5664  -- : BFD_RELOC_IA64_REL64LSB
   5665  -- : BFD_RELOC_IA64_LTV32MSB
   5666  -- : BFD_RELOC_IA64_LTV32LSB
   5667  -- : BFD_RELOC_IA64_LTV64MSB
   5668  -- : BFD_RELOC_IA64_LTV64LSB
   5669  -- : BFD_RELOC_IA64_IPLTMSB
   5670  -- : BFD_RELOC_IA64_IPLTLSB
   5671  -- : BFD_RELOC_IA64_COPY
   5672  -- : BFD_RELOC_IA64_LTOFF22X
   5673  -- : BFD_RELOC_IA64_LDXMOV
   5674  -- : BFD_RELOC_IA64_TPREL14
   5675  -- : BFD_RELOC_IA64_TPREL22
   5676  -- : BFD_RELOC_IA64_TPREL64I
   5677  -- : BFD_RELOC_IA64_TPREL64MSB
   5678  -- : BFD_RELOC_IA64_TPREL64LSB
   5679  -- : BFD_RELOC_IA64_LTOFF_TPREL22
   5680  -- : BFD_RELOC_IA64_DTPMOD64MSB
   5681  -- : BFD_RELOC_IA64_DTPMOD64LSB
   5682  -- : BFD_RELOC_IA64_LTOFF_DTPMOD22
   5683  -- : BFD_RELOC_IA64_DTPREL14
   5684  -- : BFD_RELOC_IA64_DTPREL22
   5685  -- : BFD_RELOC_IA64_DTPREL64I
   5686  -- : BFD_RELOC_IA64_DTPREL32MSB
   5687  -- : BFD_RELOC_IA64_DTPREL32LSB
   5688  -- : BFD_RELOC_IA64_DTPREL64MSB
   5689  -- : BFD_RELOC_IA64_DTPREL64LSB
   5690  -- : BFD_RELOC_IA64_LTOFF_DTPREL22
   5691      Intel IA64 Relocations.
   5692 
   5693  -- : BFD_RELOC_M68HC11_HI8
   5694      Motorola 68HC11 reloc.  This is the 8 bit high part of an absolute
   5695      address.
   5696 
   5697  -- : BFD_RELOC_M68HC11_LO8
   5698      Motorola 68HC11 reloc.  This is the 8 bit low part of an absolute
   5699      address.
   5700 
   5701  -- : BFD_RELOC_M68HC11_3B
   5702      Motorola 68HC11 reloc.  This is the 3 bit of a value.
   5703 
   5704  -- : BFD_RELOC_M68HC11_RL_JUMP
   5705      Motorola 68HC11 reloc.  This reloc marks the beginning of a
   5706      jump/call instruction.  It is used for linker relaxation to
   5707      correctly identify beginning of instruction and change some
   5708      branches to use PC-relative addressing mode.
   5709 
   5710  -- : BFD_RELOC_M68HC11_RL_GROUP
   5711      Motorola 68HC11 reloc.  This reloc marks a group of several
   5712      instructions that gcc generates and for which the linker
   5713      relaxation pass can modify and/or remove some of them.
   5714 
   5715  -- : BFD_RELOC_M68HC11_LO16
   5716      Motorola 68HC11 reloc.  This is the 16-bit lower part of an
   5717      address.  It is used for 'call' instruction to specify the symbol
   5718      address without any special transformation (due to memory bank
   5719      window).
   5720 
   5721  -- : BFD_RELOC_M68HC11_PAGE
   5722      Motorola 68HC11 reloc.  This is a 8-bit reloc that specifies the
   5723      page number of an address.  It is used by 'call' instruction to
   5724      specify the page number of the symbol.
   5725 
   5726  -- : BFD_RELOC_M68HC11_24
   5727      Motorola 68HC11 reloc.  This is a 24-bit reloc that represents the
   5728      address with a 16-bit value and a 8-bit page number.  The symbol
   5729      address is transformed to follow the 16K memory bank of 68HC12
   5730      (seen as mapped in the window).
   5731 
   5732  -- : BFD_RELOC_M68HC12_5B
   5733      Motorola 68HC12 reloc.  This is the 5 bits of a value.
   5734 
   5735  -- : BFD_RELOC_XGATE_RL_JUMP
   5736      Freescale XGATE reloc.  This reloc marks the beginning of a
   5737      bra/jal instruction.
   5738 
   5739  -- : BFD_RELOC_XGATE_RL_GROUP
   5740      Freescale XGATE reloc.  This reloc marks a group of several
   5741      instructions that gcc generates and for which the linker
   5742      relaxation pass can modify and/or remove some of them.
   5743 
   5744  -- : BFD_RELOC_XGATE_LO16
   5745      Freescale XGATE reloc.  This is the 16-bit lower part of an
   5746      address.  It is used for the '16-bit' instructions.
   5747 
   5748  -- : BFD_RELOC_XGATE_GPAGE
   5749      Freescale XGATE reloc.
   5750 
   5751  -- : BFD_RELOC_XGATE_24
   5752      Freescale XGATE reloc.
   5753 
   5754  -- : BFD_RELOC_XGATE_PCREL_9
   5755      Freescale XGATE reloc.  This is a 9-bit pc-relative reloc.
   5756 
   5757  -- : BFD_RELOC_XGATE_PCREL_10
   5758      Freescale XGATE reloc.  This is a 10-bit pc-relative reloc.
   5759 
   5760  -- : BFD_RELOC_XGATE_IMM8_LO
   5761      Freescale XGATE reloc.  This is the 16-bit lower part of an
   5762      address.  It is used for the '16-bit' instructions.
   5763 
   5764  -- : BFD_RELOC_XGATE_IMM8_HI
   5765      Freescale XGATE reloc.  This is the 16-bit higher part of an
   5766      address.  It is used for the '16-bit' instructions.
   5767 
   5768  -- : BFD_RELOC_XGATE_IMM3
   5769      Freescale XGATE reloc.  This is a 3-bit pc-relative reloc.
   5770 
   5771  -- : BFD_RELOC_XGATE_IMM4
   5772      Freescale XGATE reloc.  This is a 4-bit pc-relative reloc.
   5773 
   5774  -- : BFD_RELOC_XGATE_IMM5
   5775      Freescale XGATE reloc.  This is a 5-bit pc-relative reloc.
   5776 
   5777  -- : BFD_RELOC_M68HC12_9B
   5778      Motorola 68HC12 reloc.  This is the 9 bits of a value.
   5779 
   5780  -- : BFD_RELOC_M68HC12_16B
   5781      Motorola 68HC12 reloc.  This is the 16 bits of a value.
   5782 
   5783  -- : BFD_RELOC_M68HC12_9_PCREL
   5784      Motorola 68HC12/XGATE reloc.  This is a PCREL9 branch.
   5785 
   5786  -- : BFD_RELOC_M68HC12_10_PCREL
   5787      Motorola 68HC12/XGATE reloc.  This is a PCREL10 branch.
   5788 
   5789  -- : BFD_RELOC_M68HC12_LO8XG
   5790      Motorola 68HC12/XGATE reloc.  This is the 8 bit low part of an
   5791      absolute address and immediately precedes a matching HI8XG part.
   5792 
   5793  -- : BFD_RELOC_M68HC12_HI8XG
   5794      Motorola 68HC12/XGATE reloc.  This is the 8 bit high part of an
   5795      absolute address and immediately follows a matching LO8XG part.
   5796 
   5797  -- : BFD_RELOC_16C_NUM08
   5798  -- : BFD_RELOC_16C_NUM08_C
   5799  -- : BFD_RELOC_16C_NUM16
   5800  -- : BFD_RELOC_16C_NUM16_C
   5801  -- : BFD_RELOC_16C_NUM32
   5802  -- : BFD_RELOC_16C_NUM32_C
   5803  -- : BFD_RELOC_16C_DISP04
   5804  -- : BFD_RELOC_16C_DISP04_C
   5805  -- : BFD_RELOC_16C_DISP08
   5806  -- : BFD_RELOC_16C_DISP08_C
   5807  -- : BFD_RELOC_16C_DISP16
   5808  -- : BFD_RELOC_16C_DISP16_C
   5809  -- : BFD_RELOC_16C_DISP24
   5810  -- : BFD_RELOC_16C_DISP24_C
   5811  -- : BFD_RELOC_16C_DISP24a
   5812  -- : BFD_RELOC_16C_DISP24a_C
   5813  -- : BFD_RELOC_16C_REG04
   5814  -- : BFD_RELOC_16C_REG04_C
   5815  -- : BFD_RELOC_16C_REG04a
   5816  -- : BFD_RELOC_16C_REG04a_C
   5817  -- : BFD_RELOC_16C_REG14
   5818  -- : BFD_RELOC_16C_REG14_C
   5819  -- : BFD_RELOC_16C_REG16
   5820  -- : BFD_RELOC_16C_REG16_C
   5821  -- : BFD_RELOC_16C_REG20
   5822  -- : BFD_RELOC_16C_REG20_C
   5823  -- : BFD_RELOC_16C_ABS20
   5824  -- : BFD_RELOC_16C_ABS20_C
   5825  -- : BFD_RELOC_16C_ABS24
   5826  -- : BFD_RELOC_16C_ABS24_C
   5827  -- : BFD_RELOC_16C_IMM04
   5828  -- : BFD_RELOC_16C_IMM04_C
   5829  -- : BFD_RELOC_16C_IMM16
   5830  -- : BFD_RELOC_16C_IMM16_C
   5831  -- : BFD_RELOC_16C_IMM20
   5832  -- : BFD_RELOC_16C_IMM20_C
   5833  -- : BFD_RELOC_16C_IMM24
   5834  -- : BFD_RELOC_16C_IMM24_C
   5835  -- : BFD_RELOC_16C_IMM32
   5836  -- : BFD_RELOC_16C_IMM32_C
   5837      NS CR16C Relocations.
   5838 
   5839  -- : BFD_RELOC_CR16_NUM8
   5840  -- : BFD_RELOC_CR16_NUM16
   5841  -- : BFD_RELOC_CR16_NUM32
   5842  -- : BFD_RELOC_CR16_NUM32a
   5843  -- : BFD_RELOC_CR16_REGREL0
   5844  -- : BFD_RELOC_CR16_REGREL4
   5845  -- : BFD_RELOC_CR16_REGREL4a
   5846  -- : BFD_RELOC_CR16_REGREL14
   5847  -- : BFD_RELOC_CR16_REGREL14a
   5848  -- : BFD_RELOC_CR16_REGREL16
   5849  -- : BFD_RELOC_CR16_REGREL20
   5850  -- : BFD_RELOC_CR16_REGREL20a
   5851  -- : BFD_RELOC_CR16_ABS20
   5852  -- : BFD_RELOC_CR16_ABS24
   5853  -- : BFD_RELOC_CR16_IMM4
   5854  -- : BFD_RELOC_CR16_IMM8
   5855  -- : BFD_RELOC_CR16_IMM16
   5856  -- : BFD_RELOC_CR16_IMM20
   5857  -- : BFD_RELOC_CR16_IMM24
   5858  -- : BFD_RELOC_CR16_IMM32
   5859  -- : BFD_RELOC_CR16_IMM32a
   5860  -- : BFD_RELOC_CR16_DISP4
   5861  -- : BFD_RELOC_CR16_DISP8
   5862  -- : BFD_RELOC_CR16_DISP16
   5863  -- : BFD_RELOC_CR16_DISP20
   5864  -- : BFD_RELOC_CR16_DISP24
   5865  -- : BFD_RELOC_CR16_DISP24a
   5866  -- : BFD_RELOC_CR16_SWITCH8
   5867  -- : BFD_RELOC_CR16_SWITCH16
   5868  -- : BFD_RELOC_CR16_SWITCH32
   5869  -- : BFD_RELOC_CR16_GOT_REGREL20
   5870  -- : BFD_RELOC_CR16_GOTC_REGREL20
   5871  -- : BFD_RELOC_CR16_GLOB_DAT
   5872      NS CR16 Relocations.
   5873 
   5874  -- : BFD_RELOC_CRX_REL4
   5875  -- : BFD_RELOC_CRX_REL8
   5876  -- : BFD_RELOC_CRX_REL8_CMP
   5877  -- : BFD_RELOC_CRX_REL16
   5878  -- : BFD_RELOC_CRX_REL24
   5879  -- : BFD_RELOC_CRX_REL32
   5880  -- : BFD_RELOC_CRX_REGREL12
   5881  -- : BFD_RELOC_CRX_REGREL22
   5882  -- : BFD_RELOC_CRX_REGREL28
   5883  -- : BFD_RELOC_CRX_REGREL32
   5884  -- : BFD_RELOC_CRX_ABS16
   5885  -- : BFD_RELOC_CRX_ABS32
   5886  -- : BFD_RELOC_CRX_NUM8
   5887  -- : BFD_RELOC_CRX_NUM16
   5888  -- : BFD_RELOC_CRX_NUM32
   5889  -- : BFD_RELOC_CRX_IMM16
   5890  -- : BFD_RELOC_CRX_IMM32
   5891  -- : BFD_RELOC_CRX_SWITCH8
   5892  -- : BFD_RELOC_CRX_SWITCH16
   5893  -- : BFD_RELOC_CRX_SWITCH32
   5894      NS CRX Relocations.
   5895 
   5896  -- : BFD_RELOC_CRIS_BDISP8
   5897  -- : BFD_RELOC_CRIS_UNSIGNED_5
   5898  -- : BFD_RELOC_CRIS_SIGNED_6
   5899  -- : BFD_RELOC_CRIS_UNSIGNED_6
   5900  -- : BFD_RELOC_CRIS_SIGNED_8
   5901  -- : BFD_RELOC_CRIS_UNSIGNED_8
   5902  -- : BFD_RELOC_CRIS_SIGNED_16
   5903  -- : BFD_RELOC_CRIS_UNSIGNED_16
   5904  -- : BFD_RELOC_CRIS_LAPCQ_OFFSET
   5905  -- : BFD_RELOC_CRIS_UNSIGNED_4
   5906      These relocs are only used within the CRIS assembler.  They are not
   5907      (at present) written to any object files.
   5908 
   5909  -- : BFD_RELOC_CRIS_COPY
   5910  -- : BFD_RELOC_CRIS_GLOB_DAT
   5911  -- : BFD_RELOC_CRIS_JUMP_SLOT
   5912  -- : BFD_RELOC_CRIS_RELATIVE
   5913      Relocs used in ELF shared libraries for CRIS.
   5914 
   5915  -- : BFD_RELOC_CRIS_32_GOT
   5916      32-bit offset to symbol-entry within GOT.
   5917 
   5918  -- : BFD_RELOC_CRIS_16_GOT
   5919      16-bit offset to symbol-entry within GOT.
   5920 
   5921  -- : BFD_RELOC_CRIS_32_GOTPLT
   5922      32-bit offset to symbol-entry within GOT, with PLT handling.
   5923 
   5924  -- : BFD_RELOC_CRIS_16_GOTPLT
   5925      16-bit offset to symbol-entry within GOT, with PLT handling.
   5926 
   5927  -- : BFD_RELOC_CRIS_32_GOTREL
   5928      32-bit offset to symbol, relative to GOT.
   5929 
   5930  -- : BFD_RELOC_CRIS_32_PLT_GOTREL
   5931      32-bit offset to symbol with PLT entry, relative to GOT.
   5932 
   5933  -- : BFD_RELOC_CRIS_32_PLT_PCREL
   5934      32-bit offset to symbol with PLT entry, relative to this
   5935      relocation.
   5936 
   5937  -- : BFD_RELOC_CRIS_32_GOT_GD
   5938  -- : BFD_RELOC_CRIS_16_GOT_GD
   5939  -- : BFD_RELOC_CRIS_32_GD
   5940  -- : BFD_RELOC_CRIS_DTP
   5941  -- : BFD_RELOC_CRIS_32_DTPREL
   5942  -- : BFD_RELOC_CRIS_16_DTPREL
   5943  -- : BFD_RELOC_CRIS_32_GOT_TPREL
   5944  -- : BFD_RELOC_CRIS_16_GOT_TPREL
   5945  -- : BFD_RELOC_CRIS_32_TPREL
   5946  -- : BFD_RELOC_CRIS_16_TPREL
   5947  -- : BFD_RELOC_CRIS_DTPMOD
   5948  -- : BFD_RELOC_CRIS_32_IE
   5949      Relocs used in TLS code for CRIS.
   5950 
   5951  -- : BFD_RELOC_860_COPY
   5952  -- : BFD_RELOC_860_GLOB_DAT
   5953  -- : BFD_RELOC_860_JUMP_SLOT
   5954  -- : BFD_RELOC_860_RELATIVE
   5955  -- : BFD_RELOC_860_PC26
   5956  -- : BFD_RELOC_860_PLT26
   5957  -- : BFD_RELOC_860_PC16
   5958  -- : BFD_RELOC_860_LOW0
   5959  -- : BFD_RELOC_860_SPLIT0
   5960  -- : BFD_RELOC_860_LOW1
   5961  -- : BFD_RELOC_860_SPLIT1
   5962  -- : BFD_RELOC_860_LOW2
   5963  -- : BFD_RELOC_860_SPLIT2
   5964  -- : BFD_RELOC_860_LOW3
   5965  -- : BFD_RELOC_860_LOGOT0
   5966  -- : BFD_RELOC_860_SPGOT0
   5967  -- : BFD_RELOC_860_LOGOT1
   5968  -- : BFD_RELOC_860_SPGOT1
   5969  -- : BFD_RELOC_860_LOGOTOFF0
   5970  -- : BFD_RELOC_860_SPGOTOFF0
   5971  -- : BFD_RELOC_860_LOGOTOFF1
   5972  -- : BFD_RELOC_860_SPGOTOFF1
   5973  -- : BFD_RELOC_860_LOGOTOFF2
   5974  -- : BFD_RELOC_860_LOGOTOFF3
   5975  -- : BFD_RELOC_860_LOPC
   5976  -- : BFD_RELOC_860_HIGHADJ
   5977  -- : BFD_RELOC_860_HAGOT
   5978  -- : BFD_RELOC_860_HAGOTOFF
   5979  -- : BFD_RELOC_860_HAPC
   5980  -- : BFD_RELOC_860_HIGH
   5981  -- : BFD_RELOC_860_HIGOT
   5982  -- : BFD_RELOC_860_HIGOTOFF
   5983      Intel i860 Relocations.
   5984 
   5985  -- : BFD_RELOC_OR1K_REL_26
   5986  -- : BFD_RELOC_OR1K_GOTPC_HI16
   5987  -- : BFD_RELOC_OR1K_GOTPC_LO16
   5988  -- : BFD_RELOC_OR1K_GOT16
   5989  -- : BFD_RELOC_OR1K_PLT26
   5990  -- : BFD_RELOC_OR1K_GOTOFF_HI16
   5991  -- : BFD_RELOC_OR1K_GOTOFF_LO16
   5992  -- : BFD_RELOC_OR1K_COPY
   5993  -- : BFD_RELOC_OR1K_GLOB_DAT
   5994  -- : BFD_RELOC_OR1K_JMP_SLOT
   5995  -- : BFD_RELOC_OR1K_RELATIVE
   5996  -- : BFD_RELOC_OR1K_TLS_GD_HI16
   5997  -- : BFD_RELOC_OR1K_TLS_GD_LO16
   5998  -- : BFD_RELOC_OR1K_TLS_LDM_HI16
   5999  -- : BFD_RELOC_OR1K_TLS_LDM_LO16
   6000  -- : BFD_RELOC_OR1K_TLS_LDO_HI16
   6001  -- : BFD_RELOC_OR1K_TLS_LDO_LO16
   6002  -- : BFD_RELOC_OR1K_TLS_IE_HI16
   6003  -- : BFD_RELOC_OR1K_TLS_IE_LO16
   6004  -- : BFD_RELOC_OR1K_TLS_LE_HI16
   6005  -- : BFD_RELOC_OR1K_TLS_LE_LO16
   6006  -- : BFD_RELOC_OR1K_TLS_TPOFF
   6007  -- : BFD_RELOC_OR1K_TLS_DTPOFF
   6008  -- : BFD_RELOC_OR1K_TLS_DTPMOD
   6009      OpenRISC 1000 Relocations.
   6010 
   6011  -- : BFD_RELOC_H8_DIR16A8
   6012  -- : BFD_RELOC_H8_DIR16R8
   6013  -- : BFD_RELOC_H8_DIR24A8
   6014  -- : BFD_RELOC_H8_DIR24R8
   6015  -- : BFD_RELOC_H8_DIR32A16
   6016  -- : BFD_RELOC_H8_DISP32A16
   6017      H8 elf Relocations.
   6018 
   6019  -- : BFD_RELOC_XSTORMY16_REL_12
   6020  -- : BFD_RELOC_XSTORMY16_12
   6021  -- : BFD_RELOC_XSTORMY16_24
   6022  -- : BFD_RELOC_XSTORMY16_FPTR16
   6023      Sony Xstormy16 Relocations.
   6024 
   6025  -- : BFD_RELOC_RELC
   6026      Self-describing complex relocations.
   6027 
   6028  -- : BFD_RELOC_XC16X_PAG
   6029  -- : BFD_RELOC_XC16X_POF
   6030  -- : BFD_RELOC_XC16X_SEG
   6031  -- : BFD_RELOC_XC16X_SOF
   6032      Infineon Relocations.
   6033 
   6034  -- : BFD_RELOC_VAX_GLOB_DAT
   6035  -- : BFD_RELOC_VAX_JMP_SLOT
   6036  -- : BFD_RELOC_VAX_RELATIVE
   6037      Relocations used by VAX ELF.
   6038 
   6039  -- : BFD_RELOC_MT_PC16
   6040      Morpho MT - 16 bit immediate relocation.
   6041 
   6042  -- : BFD_RELOC_MT_HI16
   6043      Morpho MT - Hi 16 bits of an address.
   6044 
   6045  -- : BFD_RELOC_MT_LO16
   6046      Morpho MT - Low 16 bits of an address.
   6047 
   6048  -- : BFD_RELOC_MT_GNU_VTINHERIT
   6049      Morpho MT - Used to tell the linker which vtable entries are used.
   6050 
   6051  -- : BFD_RELOC_MT_GNU_VTENTRY
   6052      Morpho MT - Used to tell the linker which vtable entries are used.
   6053 
   6054  -- : BFD_RELOC_MT_PCINSN8
   6055      Morpho MT - 8 bit immediate relocation.
   6056 
   6057  -- : BFD_RELOC_MSP430_10_PCREL
   6058  -- : BFD_RELOC_MSP430_16_PCREL
   6059  -- : BFD_RELOC_MSP430_16
   6060  -- : BFD_RELOC_MSP430_16_PCREL_BYTE
   6061  -- : BFD_RELOC_MSP430_16_BYTE
   6062  -- : BFD_RELOC_MSP430_2X_PCREL
   6063  -- : BFD_RELOC_MSP430_RL_PCREL
   6064  -- : BFD_RELOC_MSP430_ABS8
   6065  -- : BFD_RELOC_MSP430X_PCR20_EXT_SRC
   6066  -- : BFD_RELOC_MSP430X_PCR20_EXT_DST
   6067  -- : BFD_RELOC_MSP430X_PCR20_EXT_ODST
   6068  -- : BFD_RELOC_MSP430X_ABS20_EXT_SRC
   6069  -- : BFD_RELOC_MSP430X_ABS20_EXT_DST
   6070  -- : BFD_RELOC_MSP430X_ABS20_EXT_ODST
   6071  -- : BFD_RELOC_MSP430X_ABS20_ADR_SRC
   6072  -- : BFD_RELOC_MSP430X_ABS20_ADR_DST
   6073  -- : BFD_RELOC_MSP430X_PCR16
   6074  -- : BFD_RELOC_MSP430X_PCR20_CALL
   6075  -- : BFD_RELOC_MSP430X_ABS16
   6076  -- : BFD_RELOC_MSP430_ABS_HI16
   6077  -- : BFD_RELOC_MSP430_PREL31
   6078  -- : BFD_RELOC_MSP430_SYM_DIFF
   6079      msp430 specific relocation codes
   6080 
   6081  -- : BFD_RELOC_NIOS2_S16
   6082  -- : BFD_RELOC_NIOS2_U16
   6083  -- : BFD_RELOC_NIOS2_CALL26
   6084  -- : BFD_RELOC_NIOS2_IMM5
   6085  -- : BFD_RELOC_NIOS2_CACHE_OPX
   6086  -- : BFD_RELOC_NIOS2_IMM6
   6087  -- : BFD_RELOC_NIOS2_IMM8
   6088  -- : BFD_RELOC_NIOS2_HI16
   6089  -- : BFD_RELOC_NIOS2_LO16
   6090  -- : BFD_RELOC_NIOS2_HIADJ16
   6091  -- : BFD_RELOC_NIOS2_GPREL
   6092  -- : BFD_RELOC_NIOS2_UJMP
   6093  -- : BFD_RELOC_NIOS2_CJMP
   6094  -- : BFD_RELOC_NIOS2_CALLR
   6095  -- : BFD_RELOC_NIOS2_ALIGN
   6096  -- : BFD_RELOC_NIOS2_GOT16
   6097  -- : BFD_RELOC_NIOS2_CALL16
   6098  -- : BFD_RELOC_NIOS2_GOTOFF_LO
   6099  -- : BFD_RELOC_NIOS2_GOTOFF_HA
   6100  -- : BFD_RELOC_NIOS2_PCREL_LO
   6101  -- : BFD_RELOC_NIOS2_PCREL_HA
   6102  -- : BFD_RELOC_NIOS2_TLS_GD16
   6103  -- : BFD_RELOC_NIOS2_TLS_LDM16
   6104  -- : BFD_RELOC_NIOS2_TLS_LDO16
   6105  -- : BFD_RELOC_NIOS2_TLS_IE16
   6106  -- : BFD_RELOC_NIOS2_TLS_LE16
   6107  -- : BFD_RELOC_NIOS2_TLS_DTPMOD
   6108  -- : BFD_RELOC_NIOS2_TLS_DTPREL
   6109  -- : BFD_RELOC_NIOS2_TLS_TPREL
   6110  -- : BFD_RELOC_NIOS2_COPY
   6111  -- : BFD_RELOC_NIOS2_GLOB_DAT
   6112  -- : BFD_RELOC_NIOS2_JUMP_SLOT
   6113  -- : BFD_RELOC_NIOS2_RELATIVE
   6114  -- : BFD_RELOC_NIOS2_GOTOFF
   6115  -- : BFD_RELOC_NIOS2_CALL26_NOAT
   6116  -- : BFD_RELOC_NIOS2_GOT_LO
   6117  -- : BFD_RELOC_NIOS2_GOT_HA
   6118  -- : BFD_RELOC_NIOS2_CALL_LO
   6119  -- : BFD_RELOC_NIOS2_CALL_HA
   6120      Relocations used by the Altera Nios II core.
   6121 
   6122  -- : BFD_RELOC_IQ2000_OFFSET_16
   6123  -- : BFD_RELOC_IQ2000_OFFSET_21
   6124  -- : BFD_RELOC_IQ2000_UHI16
   6125      IQ2000 Relocations.
   6126 
   6127  -- : BFD_RELOC_XTENSA_RTLD
   6128      Special Xtensa relocation used only by PLT entries in ELF shared
   6129      objects to indicate that the runtime linker should set the value
   6130      to one of its own internal functions or data structures.
   6131 
   6132  -- : BFD_RELOC_XTENSA_GLOB_DAT
   6133  -- : BFD_RELOC_XTENSA_JMP_SLOT
   6134  -- : BFD_RELOC_XTENSA_RELATIVE
   6135      Xtensa relocations for ELF shared objects.
   6136 
   6137  -- : BFD_RELOC_XTENSA_PLT
   6138      Xtensa relocation used in ELF object files for symbols that may
   6139      require PLT entries.  Otherwise, this is just a generic 32-bit
   6140      relocation.
   6141 
   6142  -- : BFD_RELOC_XTENSA_DIFF8
   6143  -- : BFD_RELOC_XTENSA_DIFF16
   6144  -- : BFD_RELOC_XTENSA_DIFF32
   6145      Xtensa relocations to mark the difference of two local symbols.
   6146      These are only needed to support linker relaxation and can be
   6147      ignored when not relaxing.  The field is set to the value of the
   6148      difference assuming no relaxation.  The relocation encodes the
   6149      position of the first symbol so the linker can determine whether
   6150      to adjust the field value.
   6151 
   6152  -- : BFD_RELOC_XTENSA_SLOT0_OP
   6153  -- : BFD_RELOC_XTENSA_SLOT1_OP
   6154  -- : BFD_RELOC_XTENSA_SLOT2_OP
   6155  -- : BFD_RELOC_XTENSA_SLOT3_OP
   6156  -- : BFD_RELOC_XTENSA_SLOT4_OP
   6157  -- : BFD_RELOC_XTENSA_SLOT5_OP
   6158  -- : BFD_RELOC_XTENSA_SLOT6_OP
   6159  -- : BFD_RELOC_XTENSA_SLOT7_OP
   6160  -- : BFD_RELOC_XTENSA_SLOT8_OP
   6161  -- : BFD_RELOC_XTENSA_SLOT9_OP
   6162  -- : BFD_RELOC_XTENSA_SLOT10_OP
   6163  -- : BFD_RELOC_XTENSA_SLOT11_OP
   6164  -- : BFD_RELOC_XTENSA_SLOT12_OP
   6165  -- : BFD_RELOC_XTENSA_SLOT13_OP
   6166  -- : BFD_RELOC_XTENSA_SLOT14_OP
   6167      Generic Xtensa relocations for instruction operands.  Only the slot
   6168      number is encoded in the relocation.  The relocation applies to the
   6169      last PC-relative immediate operand, or if there are no PC-relative
   6170      immediates, to the last immediate operand.
   6171 
   6172  -- : BFD_RELOC_XTENSA_SLOT0_ALT
   6173  -- : BFD_RELOC_XTENSA_SLOT1_ALT
   6174  -- : BFD_RELOC_XTENSA_SLOT2_ALT
   6175  -- : BFD_RELOC_XTENSA_SLOT3_ALT
   6176  -- : BFD_RELOC_XTENSA_SLOT4_ALT
   6177  -- : BFD_RELOC_XTENSA_SLOT5_ALT
   6178  -- : BFD_RELOC_XTENSA_SLOT6_ALT
   6179  -- : BFD_RELOC_XTENSA_SLOT7_ALT
   6180  -- : BFD_RELOC_XTENSA_SLOT8_ALT
   6181  -- : BFD_RELOC_XTENSA_SLOT9_ALT
   6182  -- : BFD_RELOC_XTENSA_SLOT10_ALT
   6183  -- : BFD_RELOC_XTENSA_SLOT11_ALT
   6184  -- : BFD_RELOC_XTENSA_SLOT12_ALT
   6185  -- : BFD_RELOC_XTENSA_SLOT13_ALT
   6186  -- : BFD_RELOC_XTENSA_SLOT14_ALT
   6187      Alternate Xtensa relocations.  Only the slot is encoded in the
   6188      relocation.  The meaning of these relocations is opcode-specific.
   6189 
   6190  -- : BFD_RELOC_XTENSA_OP0
   6191  -- : BFD_RELOC_XTENSA_OP1
   6192  -- : BFD_RELOC_XTENSA_OP2
   6193      Xtensa relocations for backward compatibility.  These have all been
   6194      replaced by BFD_RELOC_XTENSA_SLOT0_OP.
   6195 
   6196  -- : BFD_RELOC_XTENSA_ASM_EXPAND
   6197      Xtensa relocation to mark that the assembler expanded the
   6198      instructions from an original target.  The expansion size is
   6199      encoded in the reloc size.
   6200 
   6201  -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY
   6202      Xtensa relocation to mark that the linker should simplify
   6203      assembler-expanded instructions.  This is commonly used internally
   6204      by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND.
   6205 
   6206  -- : BFD_RELOC_XTENSA_TLSDESC_FN
   6207  -- : BFD_RELOC_XTENSA_TLSDESC_ARG
   6208  -- : BFD_RELOC_XTENSA_TLS_DTPOFF
   6209  -- : BFD_RELOC_XTENSA_TLS_TPOFF
   6210  -- : BFD_RELOC_XTENSA_TLS_FUNC
   6211  -- : BFD_RELOC_XTENSA_TLS_ARG
   6212  -- : BFD_RELOC_XTENSA_TLS_CALL
   6213      Xtensa TLS relocations.
   6214 
   6215  -- : BFD_RELOC_Z80_DISP8
   6216      8 bit signed offset in (ix+d) or (iy+d).
   6217 
   6218  -- : BFD_RELOC_Z8K_DISP7
   6219      DJNZ offset.
   6220 
   6221  -- : BFD_RELOC_Z8K_CALLR
   6222      CALR offset.
   6223 
   6224  -- : BFD_RELOC_Z8K_IMM4L
   6225      4 bit value.
   6226 
   6227  -- : BFD_RELOC_LM32_CALL
   6228  -- : BFD_RELOC_LM32_BRANCH
   6229  -- : BFD_RELOC_LM32_16_GOT
   6230  -- : BFD_RELOC_LM32_GOTOFF_HI16
   6231  -- : BFD_RELOC_LM32_GOTOFF_LO16
   6232  -- : BFD_RELOC_LM32_COPY
   6233  -- : BFD_RELOC_LM32_GLOB_DAT
   6234  -- : BFD_RELOC_LM32_JMP_SLOT
   6235  -- : BFD_RELOC_LM32_RELATIVE
   6236      Lattice Mico32 relocations.
   6237 
   6238  -- : BFD_RELOC_MACH_O_SECTDIFF
   6239      Difference between two section addreses.  Must be followed by a
   6240      BFD_RELOC_MACH_O_PAIR.
   6241 
   6242  -- : BFD_RELOC_MACH_O_LOCAL_SECTDIFF
   6243      Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol.
   6244 
   6245  -- : BFD_RELOC_MACH_O_PAIR
   6246      Pair of relocation.  Contains the first symbol.
   6247 
   6248  -- : BFD_RELOC_MACH_O_X86_64_BRANCH32
   6249  -- : BFD_RELOC_MACH_O_X86_64_BRANCH8
   6250      PCREL relocations.  They are marked as branch to create PLT entry
   6251      if required.
   6252 
   6253  -- : BFD_RELOC_MACH_O_X86_64_GOT
   6254      Used when referencing a GOT entry.
   6255 
   6256  -- : BFD_RELOC_MACH_O_X86_64_GOT_LOAD
   6257      Used when loading a GOT entry with movq.  It is specially marked
   6258      so that the linker could optimize the movq to a leaq if possible.
   6259 
   6260  -- : BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32
   6261      Symbol will be substracted.  Must be followed by a BFD_RELOC_64.
   6262 
   6263  -- : BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64
   6264      Symbol will be substracted.  Must be followed by a BFD_RELOC_64.
   6265 
   6266  -- : BFD_RELOC_MACH_O_X86_64_PCREL32_1
   6267      Same as BFD_RELOC_32_PCREL but with an implicit -1 addend.
   6268 
   6269  -- : BFD_RELOC_MACH_O_X86_64_PCREL32_2
   6270      Same as BFD_RELOC_32_PCREL but with an implicit -2 addend.
   6271 
   6272  -- : BFD_RELOC_MACH_O_X86_64_PCREL32_4
   6273      Same as BFD_RELOC_32_PCREL but with an implicit -4 addend.
   6274 
   6275  -- : BFD_RELOC_MICROBLAZE_32_LO
   6276      This is a 32 bit reloc for the microblaze that stores the low 16
   6277      bits of a value
   6278 
   6279  -- : BFD_RELOC_MICROBLAZE_32_LO_PCREL
   6280      This is a 32 bit pc-relative reloc for the microblaze that stores
   6281      the low 16 bits of a value
   6282 
   6283  -- : BFD_RELOC_MICROBLAZE_32_ROSDA
   6284      This is a 32 bit reloc for the microblaze that stores a value
   6285      relative to the read-only small data area anchor
   6286 
   6287  -- : BFD_RELOC_MICROBLAZE_32_RWSDA
   6288      This is a 32 bit reloc for the microblaze that stores a value
   6289      relative to the read-write small data area anchor
   6290 
   6291  -- : BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM
   6292      This is a 32 bit reloc for the microblaze to handle expressions of
   6293      the form "Symbol Op Symbol"
   6294 
   6295  -- : BFD_RELOC_MICROBLAZE_64_NONE
   6296      This is a 64 bit reloc that stores the 32 bit pc relative value in
   6297      two words (with an imm instruction).  No relocation is done here -
   6298      only used for relaxing
   6299 
   6300  -- : BFD_RELOC_MICROBLAZE_64_GOTPC
   6301      This is a 64 bit reloc that stores the 32 bit pc relative value in
   6302      two words (with an imm instruction).  The relocation is
   6303      PC-relative GOT offset
   6304 
   6305  -- : BFD_RELOC_MICROBLAZE_64_GOT
   6306      This is a 64 bit reloc that stores the 32 bit pc relative value in
   6307      two words (with an imm instruction).  The relocation is GOT offset
   6308 
   6309  -- : BFD_RELOC_MICROBLAZE_64_PLT
   6310      This is a 64 bit reloc that stores the 32 bit pc relative value in
   6311      two words (with an imm instruction).  The relocation is
   6312      PC-relative offset into PLT
   6313 
   6314  -- : BFD_RELOC_MICROBLAZE_64_GOTOFF
   6315      This is a 64 bit reloc that stores the 32 bit GOT relative value
   6316      in two words (with an imm instruction).  The relocation is
   6317      relative offset from _GLOBAL_OFFSET_TABLE_
   6318 
   6319  -- : BFD_RELOC_MICROBLAZE_32_GOTOFF
   6320      This is a 32 bit reloc that stores the 32 bit GOT relative value
   6321      in a word.  The relocation is relative offset from
   6322 
   6323  -- : BFD_RELOC_MICROBLAZE_COPY
   6324      This is used to tell the dynamic linker to copy the value out of
   6325      the dynamic object into the runtime process image.
   6326 
   6327  -- : BFD_RELOC_MICROBLAZE_64_TLS
   6328      Unused Reloc
   6329 
   6330  -- : BFD_RELOC_MICROBLAZE_64_TLSGD
   6331      This is a 64 bit reloc that stores the 32 bit GOT relative value
   6332      of the GOT TLS GD info entry in two words (with an imm
   6333      instruction). The relocation is GOT offset.
   6334 
   6335  -- : BFD_RELOC_MICROBLAZE_64_TLSLD
   6336      This is a 64 bit reloc that stores the 32 bit GOT relative value
   6337      of the GOT TLS LD info entry in two words (with an imm
   6338      instruction). The relocation is GOT offset.
   6339 
   6340  -- : BFD_RELOC_MICROBLAZE_32_TLSDTPMOD
   6341      This is a 32 bit reloc that stores the Module ID to GOT(n).
   6342 
   6343  -- : BFD_RELOC_MICROBLAZE_32_TLSDTPREL
   6344      This is a 32 bit reloc that stores TLS offset to GOT(n+1).
   6345 
   6346  -- : BFD_RELOC_MICROBLAZE_64_TLSDTPREL
   6347      This is a 32 bit reloc for storing TLS offset to two words (uses
   6348      imm instruction)
   6349 
   6350  -- : BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL
   6351      This is a 64 bit reloc that stores 32-bit thread pointer relative
   6352      offset to two words (uses imm instruction).
   6353 
   6354  -- : BFD_RELOC_MICROBLAZE_64_TLSTPREL
   6355      This is a 64 bit reloc that stores 32-bit thread pointer relative
   6356      offset to two words (uses imm instruction).
   6357 
   6358  -- : BFD_RELOC_AARCH64_RELOC_START
   6359      AArch64 pseudo relocation code to mark the start of the AArch64
   6360      relocation enumerators.  N.B. the order of the enumerators is
   6361      important as several tables in the AArch64 bfd backend are indexed
   6362      by these enumerators; make sure they are all synced.
   6363 
   6364  -- : BFD_RELOC_AARCH64_NONE
   6365      AArch64 null relocation code.
   6366 
   6367  -- : BFD_RELOC_AARCH64_64
   6368  -- : BFD_RELOC_AARCH64_32
   6369  -- : BFD_RELOC_AARCH64_16
   6370      Basic absolute relocations of N bits.  These are equivalent to
   6371      BFD_RELOC_N and they were added to assist the indexing of the howto
   6372      table.
   6373 
   6374  -- : BFD_RELOC_AARCH64_64_PCREL
   6375  -- : BFD_RELOC_AARCH64_32_PCREL
   6376  -- : BFD_RELOC_AARCH64_16_PCREL
   6377      PC-relative relocations.  These are equivalent to BFD_RELOC_N_PCREL
   6378      and they were added to assist the indexing of the howto table.
   6379 
   6380  -- : BFD_RELOC_AARCH64_MOVW_G0
   6381      AArch64 MOV[NZK] instruction with most significant bits 0 to 15 of
   6382      an unsigned address/value.
   6383 
   6384  -- : BFD_RELOC_AARCH64_MOVW_G0_NC
   6385      AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of
   6386      an address/value.  No overflow checking.
   6387 
   6388  -- : BFD_RELOC_AARCH64_MOVW_G1
   6389      AArch64 MOV[NZK] instruction with most significant bits 16 to 31
   6390      of an unsigned address/value.
   6391 
   6392  -- : BFD_RELOC_AARCH64_MOVW_G1_NC
   6393      AArch64 MOV[NZK] instruction with less significant bits 16 to 31
   6394      of an address/value.  No overflow checking.
   6395 
   6396  -- : BFD_RELOC_AARCH64_MOVW_G2
   6397      AArch64 MOV[NZK] instruction with most significant bits 32 to 47
   6398      of an unsigned address/value.
   6399 
   6400  -- : BFD_RELOC_AARCH64_MOVW_G2_NC
   6401      AArch64 MOV[NZK] instruction with less significant bits 32 to 47
   6402      of an address/value.  No overflow checking.
   6403 
   6404  -- : BFD_RELOC_AARCH64_MOVW_G3
   6405      AArch64 MOV[NZK] instruction with most signficant bits 48 to 64 of
   6406      a signed or unsigned address/value.
   6407 
   6408  -- : BFD_RELOC_AARCH64_MOVW_G0_S
   6409      AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of
   6410      a signed value.  Changes instruction to MOVZ or MOVN depending on
   6411      the value's sign.
   6412 
   6413  -- : BFD_RELOC_AARCH64_MOVW_G1_S
   6414      AArch64 MOV[NZ] instruction with most significant bits 16 to 31 of
   6415      a signed value.  Changes instruction to MOVZ or MOVN depending on
   6416      the value's sign.
   6417 
   6418  -- : BFD_RELOC_AARCH64_MOVW_G2_S
   6419      AArch64 MOV[NZ] instruction with most significant bits 32 to 47 of
   6420      a signed value.  Changes instruction to MOVZ or MOVN depending on
   6421      the value's sign.
   6422 
   6423  -- : BFD_RELOC_AARCH64_LD_LO19_PCREL
   6424      AArch64 Load Literal instruction, holding a 19 bit pc-relative word
   6425      offset.  The lowest two bits must be zero and are not stored in the
   6426      instruction, giving a 21 bit signed byte offset.
   6427 
   6428  -- : BFD_RELOC_AARCH64_ADR_LO21_PCREL
   6429      AArch64 ADR instruction, holding a simple 21 bit pc-relative byte
   6430      offset.
   6431 
   6432  -- : BFD_RELOC_AARCH64_ADR_HI21_PCREL
   6433      AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
   6434      offset, giving a 4KB aligned page base address.
   6435 
   6436  -- : BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL
   6437      AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
   6438      offset, giving a 4KB aligned page base address, but with no
   6439      overflow checking.
   6440 
   6441  -- : BFD_RELOC_AARCH64_ADD_LO12
   6442      AArch64 ADD immediate instruction, holding bits 0 to 11 of the
   6443      address.  Used in conjunction with
   6444      BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6445 
   6446  -- : BFD_RELOC_AARCH64_LDST8_LO12
   6447      AArch64 8-bit load/store instruction, holding bits 0 to 11 of the
   6448      address.  Used in conjunction with
   6449      BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6450 
   6451  -- : BFD_RELOC_AARCH64_TSTBR14
   6452      AArch64 14 bit pc-relative test bit and branch.  The lowest two
   6453      bits must be zero and are not stored in the instruction, giving a
   6454      16 bit signed byte offset.
   6455 
   6456  -- : BFD_RELOC_AARCH64_BRANCH19
   6457      AArch64 19 bit pc-relative conditional branch and compare & branch.
   6458      The lowest two bits must be zero and are not stored in the
   6459      instruction, giving a 21 bit signed byte offset.
   6460 
   6461  -- : BFD_RELOC_AARCH64_JUMP26
   6462      AArch64 26 bit pc-relative unconditional branch.  The lowest two
   6463      bits must be zero and are not stored in the instruction, giving a
   6464      28 bit signed byte offset.
   6465 
   6466  -- : BFD_RELOC_AARCH64_CALL26
   6467      AArch64 26 bit pc-relative unconditional branch and link.  The
   6468      lowest two bits must be zero and are not stored in the instruction,
   6469      giving a 28 bit signed byte offset.
   6470 
   6471  -- : BFD_RELOC_AARCH64_LDST16_LO12
   6472      AArch64 16-bit load/store instruction, holding bits 0 to 11 of the
   6473      address.  Used in conjunction with
   6474      BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6475 
   6476  -- : BFD_RELOC_AARCH64_LDST32_LO12
   6477      AArch64 32-bit load/store instruction, holding bits 0 to 11 of the
   6478      address.  Used in conjunction with
   6479      BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6480 
   6481  -- : BFD_RELOC_AARCH64_LDST64_LO12
   6482      AArch64 64-bit load/store instruction, holding bits 0 to 11 of the
   6483      address.  Used in conjunction with
   6484      BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6485 
   6486  -- : BFD_RELOC_AARCH64_LDST128_LO12
   6487      AArch64 128-bit load/store instruction, holding bits 0 to 11 of the
   6488      address.  Used in conjunction with
   6489      BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6490 
   6491  -- : BFD_RELOC_AARCH64_GOT_LD_PREL19
   6492      AArch64 Load Literal instruction, holding a 19 bit PC relative word
   6493      offset of the global offset table entry for a symbol.  The lowest
   6494      two bits must be zero and are not stored in the instruction,
   6495      giving a 21 bit signed byte offset.  This relocation type requires
   6496      signed overflow checking.
   6497 
   6498  -- : BFD_RELOC_AARCH64_ADR_GOT_PAGE
   6499      Get to the page base of the global offset table entry for a symbol
   6500      as part of an ADRP instruction using a 21 bit PC relative
   6501      value.Used in conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC.
   6502 
   6503  -- : BFD_RELOC_AARCH64_LD64_GOT_LO12_NC
   6504      Unsigned 12 bit byte offset for 64 bit load/store from the page of
   6505      the GOT entry for this symbol.  Used in conjunction with
   6506      BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in LP64 ABI only.
   6507 
   6508  -- : BFD_RELOC_AARCH64_LD32_GOT_LO12_NC
   6509      Unsigned 12 bit byte offset for 32 bit load/store from the page of
   6510      the GOT entry for this symbol.  Used in conjunction with
   6511      BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in ILP32 ABI only.
   6512 
   6513  -- : BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21
   6514      Get to the page base of the global offset table entry for a symbols
   6515      tls_index structure as part of an adrp instruction using a 21 bit
   6516      PC relative value.  Used in conjunction with
   6517      BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC.
   6518 
   6519  -- : BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC
   6520      Unsigned 12 bit byte offset to global offset table entry for a
   6521      symbols tls_index structure.  Used in conjunction with
   6522      BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.
   6523 
   6524  -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1
   6525      AArch64 TLS INITIAL EXEC relocation.
   6526 
   6527  -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC
   6528      AArch64 TLS INITIAL EXEC relocation.
   6529 
   6530  -- : BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21
   6531      AArch64 TLS INITIAL EXEC relocation.
   6532 
   6533  -- : BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC
   6534      AArch64 TLS INITIAL EXEC relocation.
   6535 
   6536  -- : BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC
   6537      AArch64 TLS INITIAL EXEC relocation.
   6538 
   6539  -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19
   6540      AArch64 TLS INITIAL EXEC relocation.
   6541 
   6542  -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2
   6543      AArch64 TLS LOCAL EXEC relocation.
   6544 
   6545  -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1
   6546      AArch64 TLS LOCAL EXEC relocation.
   6547 
   6548  -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC
   6549      AArch64 TLS LOCAL EXEC relocation.
   6550 
   6551  -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0
   6552      AArch64 TLS LOCAL EXEC relocation.
   6553 
   6554  -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC
   6555      AArch64 TLS LOCAL EXEC relocation.
   6556 
   6557  -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12
   6558      AArch64 TLS LOCAL EXEC relocation.
   6559 
   6560  -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12
   6561      AArch64 TLS LOCAL EXEC relocation.
   6562 
   6563  -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC
   6564      AArch64 TLS LOCAL EXEC relocation.
   6565 
   6566  -- : BFD_RELOC_AARCH64_TLSDESC_LD_PREL19
   6567      AArch64 TLS DESC relocation.
   6568 
   6569  -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21
   6570      AArch64 TLS DESC relocation.
   6571 
   6572  -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21
   6573      AArch64 TLS DESC relocation.
   6574 
   6575  -- : BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC
   6576      AArch64 TLS DESC relocation.
   6577 
   6578  -- : BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC
   6579      AArch64 TLS DESC relocation.
   6580 
   6581  -- : BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC
   6582      AArch64 TLS DESC relocation.
   6583 
   6584  -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G1
   6585      AArch64 TLS DESC relocation.
   6586 
   6587  -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC
   6588      AArch64 TLS DESC relocation.
   6589 
   6590  -- : BFD_RELOC_AARCH64_TLSDESC_LDR
   6591      AArch64 TLS DESC relocation.
   6592 
   6593  -- : BFD_RELOC_AARCH64_TLSDESC_ADD
   6594      AArch64 TLS DESC relocation.
   6595 
   6596  -- : BFD_RELOC_AARCH64_TLSDESC_CALL
   6597      AArch64 TLS DESC relocation.
   6598 
   6599  -- : BFD_RELOC_AARCH64_COPY
   6600      AArch64 TLS relocation.
   6601 
   6602  -- : BFD_RELOC_AARCH64_GLOB_DAT
   6603      AArch64 TLS relocation.
   6604 
   6605  -- : BFD_RELOC_AARCH64_JUMP_SLOT
   6606      AArch64 TLS relocation.
   6607 
   6608  -- : BFD_RELOC_AARCH64_RELATIVE
   6609      AArch64 TLS relocation.
   6610 
   6611  -- : BFD_RELOC_AARCH64_TLS_DTPMOD
   6612      AArch64 TLS relocation.
   6613 
   6614  -- : BFD_RELOC_AARCH64_TLS_DTPREL
   6615      AArch64 TLS relocation.
   6616 
   6617  -- : BFD_RELOC_AARCH64_TLS_TPREL
   6618      AArch64 TLS relocation.
   6619 
   6620  -- : BFD_RELOC_AARCH64_TLSDESC
   6621      AArch64 TLS relocation.
   6622 
   6623  -- : BFD_RELOC_AARCH64_IRELATIVE
   6624      AArch64 support for STT_GNU_IFUNC.
   6625 
   6626  -- : BFD_RELOC_AARCH64_RELOC_END
   6627      AArch64 pseudo relocation code to mark the end of the AArch64
   6628      relocation enumerators that have direct mapping to ELF reloc codes.
   6629      There are a few more enumerators after this one; those are mainly
   6630      used by the AArch64 assembler for the internal fixup or to select
   6631      one of the above enumerators.
   6632 
   6633  -- : BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP
   6634      AArch64 pseudo relocation code to be used internally by the AArch64
   6635      assembler and not (currently) written to any object files.
   6636 
   6637  -- : BFD_RELOC_AARCH64_LDST_LO12
   6638      AArch64 unspecified load/store instruction, holding bits 0 to 11
   6639      of the address.  Used in conjunction with
   6640      BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6641 
   6642  -- : BFD_RELOC_AARCH64_LD_GOT_LO12_NC
   6643      AArch64 pseudo relocation code to be used internally by the AArch64
   6644      assembler and not (currently) written to any object files.
   6645 
   6646  -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC
   6647      AArch64 pseudo relocation code to be used internally by the AArch64
   6648      assembler and not (currently) written to any object files.
   6649 
   6650  -- : BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC
   6651      AArch64 pseudo relocation code to be used internally by the AArch64
   6652      assembler and not (currently) written to any object files.
   6653 
   6654  -- : BFD_RELOC_TILEPRO_COPY
   6655  -- : BFD_RELOC_TILEPRO_GLOB_DAT
   6656  -- : BFD_RELOC_TILEPRO_JMP_SLOT
   6657  -- : BFD_RELOC_TILEPRO_RELATIVE
   6658  -- : BFD_RELOC_TILEPRO_BROFF_X1
   6659  -- : BFD_RELOC_TILEPRO_JOFFLONG_X1
   6660  -- : BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT
   6661  -- : BFD_RELOC_TILEPRO_IMM8_X0
   6662  -- : BFD_RELOC_TILEPRO_IMM8_Y0
   6663  -- : BFD_RELOC_TILEPRO_IMM8_X1
   6664  -- : BFD_RELOC_TILEPRO_IMM8_Y1
   6665  -- : BFD_RELOC_TILEPRO_DEST_IMM8_X1
   6666  -- : BFD_RELOC_TILEPRO_MT_IMM15_X1
   6667  -- : BFD_RELOC_TILEPRO_MF_IMM15_X1
   6668  -- : BFD_RELOC_TILEPRO_IMM16_X0
   6669  -- : BFD_RELOC_TILEPRO_IMM16_X1
   6670  -- : BFD_RELOC_TILEPRO_IMM16_X0_LO
   6671  -- : BFD_RELOC_TILEPRO_IMM16_X1_LO
   6672  -- : BFD_RELOC_TILEPRO_IMM16_X0_HI
   6673  -- : BFD_RELOC_TILEPRO_IMM16_X1_HI
   6674  -- : BFD_RELOC_TILEPRO_IMM16_X0_HA
   6675  -- : BFD_RELOC_TILEPRO_IMM16_X1_HA
   6676  -- : BFD_RELOC_TILEPRO_IMM16_X0_PCREL
   6677  -- : BFD_RELOC_TILEPRO_IMM16_X1_PCREL
   6678  -- : BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL
   6679  -- : BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL
   6680  -- : BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL
   6681  -- : BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL
   6682  -- : BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL
   6683  -- : BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL
   6684  -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT
   6685  -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT
   6686  -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO
   6687  -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO
   6688  -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI
   6689  -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI
   6690  -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA
   6691  -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA
   6692  -- : BFD_RELOC_TILEPRO_MMSTART_X0
   6693  -- : BFD_RELOC_TILEPRO_MMEND_X0
   6694  -- : BFD_RELOC_TILEPRO_MMSTART_X1
   6695  -- : BFD_RELOC_TILEPRO_MMEND_X1
   6696  -- : BFD_RELOC_TILEPRO_SHAMT_X0
   6697  -- : BFD_RELOC_TILEPRO_SHAMT_X1
   6698  -- : BFD_RELOC_TILEPRO_SHAMT_Y0
   6699  -- : BFD_RELOC_TILEPRO_SHAMT_Y1
   6700  -- : BFD_RELOC_TILEPRO_TLS_GD_CALL
   6701  -- : BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD
   6702  -- : BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD
   6703  -- : BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD
   6704  -- : BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD
   6705  -- : BFD_RELOC_TILEPRO_TLS_IE_LOAD
   6706  -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD
   6707  -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD
   6708  -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO
   6709  -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO
   6710  -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI
   6711  -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI
   6712  -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA
   6713  -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA
   6714  -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE
   6715  -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE
   6716  -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO
   6717  -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO
   6718  -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI
   6719  -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI
   6720  -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA
   6721  -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA
   6722  -- : BFD_RELOC_TILEPRO_TLS_DTPMOD32
   6723  -- : BFD_RELOC_TILEPRO_TLS_DTPOFF32
   6724  -- : BFD_RELOC_TILEPRO_TLS_TPOFF32
   6725  -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE
   6726  -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE
   6727  -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO
   6728  -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO
   6729  -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI
   6730  -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI
   6731  -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA
   6732  -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA
   6733      Tilera TILEPro Relocations.
   6734 
   6735  -- : BFD_RELOC_TILEGX_HW0
   6736  -- : BFD_RELOC_TILEGX_HW1
   6737  -- : BFD_RELOC_TILEGX_HW2
   6738  -- : BFD_RELOC_TILEGX_HW3
   6739  -- : BFD_RELOC_TILEGX_HW0_LAST
   6740  -- : BFD_RELOC_TILEGX_HW1_LAST
   6741  -- : BFD_RELOC_TILEGX_HW2_LAST
   6742  -- : BFD_RELOC_TILEGX_COPY
   6743  -- : BFD_RELOC_TILEGX_GLOB_DAT
   6744  -- : BFD_RELOC_TILEGX_JMP_SLOT
   6745  -- : BFD_RELOC_TILEGX_RELATIVE
   6746  -- : BFD_RELOC_TILEGX_BROFF_X1
   6747  -- : BFD_RELOC_TILEGX_JUMPOFF_X1
   6748  -- : BFD_RELOC_TILEGX_JUMPOFF_X1_PLT
   6749  -- : BFD_RELOC_TILEGX_IMM8_X0
   6750  -- : BFD_RELOC_TILEGX_IMM8_Y0
   6751  -- : BFD_RELOC_TILEGX_IMM8_X1
   6752  -- : BFD_RELOC_TILEGX_IMM8_Y1
   6753  -- : BFD_RELOC_TILEGX_DEST_IMM8_X1
   6754  -- : BFD_RELOC_TILEGX_MT_IMM14_X1
   6755  -- : BFD_RELOC_TILEGX_MF_IMM14_X1
   6756  -- : BFD_RELOC_TILEGX_MMSTART_X0
   6757  -- : BFD_RELOC_TILEGX_MMEND_X0
   6758  -- : BFD_RELOC_TILEGX_SHAMT_X0
   6759  -- : BFD_RELOC_TILEGX_SHAMT_X1
   6760  -- : BFD_RELOC_TILEGX_SHAMT_Y0
   6761  -- : BFD_RELOC_TILEGX_SHAMT_Y1
   6762  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0
   6763  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0
   6764  -- : BFD_RELOC_TILEGX_IMM16_X0_HW1
   6765  -- : BFD_RELOC_TILEGX_IMM16_X1_HW1
   6766  -- : BFD_RELOC_TILEGX_IMM16_X0_HW2
   6767  -- : BFD_RELOC_TILEGX_IMM16_X1_HW2
   6768  -- : BFD_RELOC_TILEGX_IMM16_X0_HW3
   6769  -- : BFD_RELOC_TILEGX_IMM16_X1_HW3
   6770  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST
   6771  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST
   6772  -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST
   6773  -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST
   6774  -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST
   6775  -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST
   6776  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL
   6777  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL
   6778  -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL
   6779  -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL
   6780  -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL
   6781  -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL
   6782  -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL
   6783  -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL
   6784  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL
   6785  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL
   6786  -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL
   6787  -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL
   6788  -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL
   6789  -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL
   6790  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT
   6791  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT
   6792  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL
   6793  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL
   6794  -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL
   6795  -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL
   6796  -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL
   6797  -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL
   6798  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT
   6799  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT
   6800  -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT
   6801  -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT
   6802  -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL
   6803  -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL
   6804  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD
   6805  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD
   6806  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE
   6807  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE
   6808  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE
   6809  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE
   6810  -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE
   6811  -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE
   6812  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD
   6813  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD
   6814  -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD
   6815  -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD
   6816  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE
   6817  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE
   6818  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL
   6819  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL
   6820  -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL
   6821  -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL
   6822  -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL
   6823  -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL
   6824  -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE
   6825  -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE
   6826  -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE
   6827  -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE
   6828  -- : BFD_RELOC_TILEGX_TLS_DTPMOD64
   6829  -- : BFD_RELOC_TILEGX_TLS_DTPOFF64
   6830  -- : BFD_RELOC_TILEGX_TLS_TPOFF64
   6831  -- : BFD_RELOC_TILEGX_TLS_DTPMOD32
   6832  -- : BFD_RELOC_TILEGX_TLS_DTPOFF32
   6833  -- : BFD_RELOC_TILEGX_TLS_TPOFF32
   6834  -- : BFD_RELOC_TILEGX_TLS_GD_CALL
   6835  -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD
   6836  -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD
   6837  -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD
   6838  -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD
   6839  -- : BFD_RELOC_TILEGX_TLS_IE_LOAD
   6840  -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD
   6841  -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD
   6842  -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD
   6843  -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD
   6844      Tilera TILE-Gx Relocations.
   6845 
   6846  -- : BFD_RELOC_EPIPHANY_SIMM8
   6847      Adapteva EPIPHANY - 8 bit signed pc-relative displacement
   6848 
   6849  -- : BFD_RELOC_EPIPHANY_SIMM24
   6850      Adapteva EPIPHANY - 24 bit signed pc-relative displacement
   6851 
   6852  -- : BFD_RELOC_EPIPHANY_HIGH
   6853      Adapteva EPIPHANY - 16 most-significant bits of absolute address
   6854 
   6855  -- : BFD_RELOC_EPIPHANY_LOW
   6856      Adapteva EPIPHANY - 16 least-significant bits of absolute address
   6857 
   6858  -- : BFD_RELOC_EPIPHANY_SIMM11
   6859      Adapteva EPIPHANY - 11 bit signed number - add/sub immediate
   6860 
   6861  -- : BFD_RELOC_EPIPHANY_IMM11
   6862      Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st
   6863      displacement)
   6864 
   6865  -- : BFD_RELOC_EPIPHANY_IMM8
   6866      Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction.
   6867 
   6868 
   6869      typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
   6870    
   6871 2.10.2.2 `bfd_reloc_type_lookup'
   6872 ................................
   6873 
   6874 *Synopsis*
   6875      reloc_howto_type *bfd_reloc_type_lookup
   6876         (bfd *abfd, bfd_reloc_code_real_type code);
   6877      reloc_howto_type *bfd_reloc_name_lookup
   6878         (bfd *abfd, const char *reloc_name);
   6879    *Description*
   6880 Return a pointer to a howto structure which, when invoked, will perform
   6881 the relocation CODE on data from the architecture noted.
   6882 
   6883 2.10.2.3 `bfd_default_reloc_type_lookup'
   6884 ........................................
   6885 
   6886 *Synopsis*
   6887      reloc_howto_type *bfd_default_reloc_type_lookup
   6888         (bfd *abfd, bfd_reloc_code_real_type  code);
   6889    *Description*
   6890 Provides a default relocation lookup routine for any architecture.
   6891 
   6892 2.10.2.4 `bfd_get_reloc_code_name'
   6893 ..................................
   6894 
   6895 *Synopsis*
   6896      const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
   6897    *Description*
   6898 Provides a printable name for the supplied relocation code.  Useful
   6899 mainly for printing error messages.
   6900 
   6901 2.10.2.5 `bfd_generic_relax_section'
   6902 ....................................
   6903 
   6904 *Synopsis*
   6905      bfd_boolean bfd_generic_relax_section
   6906         (bfd *abfd,
   6907          asection *section,
   6908          struct bfd_link_info *,
   6909          bfd_boolean *);
   6910    *Description*
   6911 Provides default handling for relaxing for back ends which don't do
   6912 relaxing.
   6913 
   6914 2.10.2.6 `bfd_generic_gc_sections'
   6915 ..................................
   6916 
   6917 *Synopsis*
   6918      bfd_boolean bfd_generic_gc_sections
   6919         (bfd *, struct bfd_link_info *);
   6920    *Description*
   6921 Provides default handling for relaxing for back ends which don't do
   6922 section gc - i.e., does nothing.
   6923 
   6924 2.10.2.7 `bfd_generic_lookup_section_flags'
   6925 ...........................................
   6926 
   6927 *Synopsis*
   6928      bfd_boolean bfd_generic_lookup_section_flags
   6929         (struct bfd_link_info *, struct flag_info *, asection *);
   6930    *Description*
   6931 Provides default handling for section flags lookup - i.e., does nothing.
   6932 Returns FALSE if the section should be omitted, otherwise TRUE.
   6933 
   6934 2.10.2.8 `bfd_generic_merge_sections'
   6935 .....................................
   6936 
   6937 *Synopsis*
   6938      bfd_boolean bfd_generic_merge_sections
   6939         (bfd *, struct bfd_link_info *);
   6940    *Description*
   6941 Provides default handling for SEC_MERGE section merging for back ends
   6942 which don't have SEC_MERGE support - i.e., does nothing.
   6943 
   6944 2.10.2.9 `bfd_generic_get_relocated_section_contents'
   6945 .....................................................
   6946 
   6947 *Synopsis*
   6948      bfd_byte *bfd_generic_get_relocated_section_contents
   6949         (bfd *abfd,
   6950          struct bfd_link_info *link_info,
   6951          struct bfd_link_order *link_order,
   6952          bfd_byte *data,
   6953          bfd_boolean relocatable,
   6954          asymbol **symbols);
   6955    *Description*
   6956 Provides default handling of relocation effort for back ends which
   6957 can't be bothered to do it efficiently.
   6958 
   6959 
   6960 File: bfd.info,  Node: Core Files,  Next: Targets,  Prev: Relocations,  Up: BFD front end
   6961 
   6962 2.11 Core files
   6963 ===============
   6964 
   6965 2.11.1 Core file functions
   6966 --------------------------
   6967 
   6968 *Description*
   6969 These are functions pertaining to core files.
   6970 
   6971 2.11.1.1 `bfd_core_file_failing_command'
   6972 ........................................
   6973 
   6974 *Synopsis*
   6975      const char *bfd_core_file_failing_command (bfd *abfd);
   6976    *Description*
   6977 Return a read-only string explaining which program was running when it
   6978 failed and produced the core file ABFD.
   6979 
   6980 2.11.1.2 `bfd_core_file_failing_signal'
   6981 .......................................
   6982 
   6983 *Synopsis*
   6984      int bfd_core_file_failing_signal (bfd *abfd);
   6985    *Description*
   6986 Returns the signal number which caused the core dump which generated
   6987 the file the BFD ABFD is attached to.
   6988 
   6989 2.11.1.3 `bfd_core_file_pid'
   6990 ............................
   6991 
   6992 *Synopsis*
   6993      int bfd_core_file_pid (bfd *abfd);
   6994    *Description*
   6995 Returns the PID of the process the core dump the BFD ABFD is attached
   6996 to was generated from.
   6997 
   6998 2.11.1.4 `core_file_matches_executable_p'
   6999 .........................................
   7000 
   7001 *Synopsis*
   7002      bfd_boolean core_file_matches_executable_p
   7003         (bfd *core_bfd, bfd *exec_bfd);
   7004    *Description*
   7005 Return `TRUE' if the core file attached to CORE_BFD was generated by a
   7006 run of the executable file attached to EXEC_BFD, `FALSE' otherwise.
   7007 
   7008 2.11.1.5 `generic_core_file_matches_executable_p'
   7009 .................................................
   7010 
   7011 *Synopsis*
   7012      bfd_boolean generic_core_file_matches_executable_p
   7013         (bfd *core_bfd, bfd *exec_bfd);
   7014    *Description*
   7015 Return TRUE if the core file attached to CORE_BFD was generated by a
   7016 run of the executable file attached to EXEC_BFD.  The match is based on
   7017 executable basenames only.
   7018 
   7019    Note: When not able to determine the core file failing command or
   7020 the executable name, we still return TRUE even though we're not sure
   7021 that core file and executable match.  This is to avoid generating a
   7022 false warning in situations where we really don't know whether they
   7023 match or not.
   7024 
   7025 
   7026 File: bfd.info,  Node: Targets,  Next: Architectures,  Prev: Core Files,  Up: BFD front end
   7027 
   7028 2.12 Targets
   7029 ============
   7030 
   7031 *Description*
   7032 Each port of BFD to a different machine requires the creation of a
   7033 target back end. All the back end provides to the root part of BFD is a
   7034 structure containing pointers to functions which perform certain low
   7035 level operations on files. BFD translates the applications's requests
   7036 through a pointer into calls to the back end routines.
   7037 
   7038    When a file is opened with `bfd_openr', its format and target are
   7039 unknown. BFD uses various mechanisms to determine how to interpret the
   7040 file. The operations performed are:
   7041 
   7042    * Create a BFD by calling the internal routine `_bfd_new_bfd', then
   7043      call `bfd_find_target' with the target string supplied to
   7044      `bfd_openr' and the new BFD pointer.
   7045 
   7046    * If a null target string was provided to `bfd_find_target', look up
   7047      the environment variable `GNUTARGET' and use that as the target
   7048      string.
   7049 
   7050    * If the target string is still `NULL', or the target string is
   7051      `default', then use the first item in the target vector as the
   7052      target type, and set `target_defaulted' in the BFD to cause
   7053      `bfd_check_format' to loop through all the targets.  *Note
   7054      bfd_target::.  *Note Formats::.
   7055 
   7056    * Otherwise, inspect the elements in the target vector one by one,
   7057      until a match on target name is found. When found, use it.
   7058 
   7059    * Otherwise return the error `bfd_error_invalid_target' to
   7060      `bfd_openr'.
   7061 
   7062    * `bfd_openr' attempts to open the file using `bfd_open_file', and
   7063      returns the BFD.
   7064    Once the BFD has been opened and the target selected, the file
   7065 format may be determined. This is done by calling `bfd_check_format' on
   7066 the BFD with a suggested format.  If `target_defaulted' has been set,
   7067 each possible target type is tried to see if it recognizes the
   7068 specified format.  `bfd_check_format' returns `TRUE' when the caller
   7069 guesses right.
   7070 
   7071 * Menu:
   7072 
   7073 * bfd_target::
   7074 
   7075 
   7076 File: bfd.info,  Node: bfd_target,  Prev: Targets,  Up: Targets
   7077 
   7078 2.12.1 bfd_target
   7079 -----------------
   7080 
   7081 *Description*
   7082 This structure contains everything that BFD knows about a target. It
   7083 includes things like its byte order, name, and which routines to call
   7084 to do various operations.
   7085 
   7086    Every BFD points to a target structure with its `xvec' member.
   7087 
   7088    The macros below are used to dispatch to functions through the
   7089 `bfd_target' vector. They are used in a number of macros further down
   7090 in `bfd.h', and are also used when calling various routines by hand
   7091 inside the BFD implementation.  The ARGLIST argument must be
   7092 parenthesized; it contains all the arguments to the called function.
   7093 
   7094    They make the documentation (more) unpleasant to read, so if someone
   7095 wants to fix this and not break the above, please do.
   7096      #define BFD_SEND(bfd, message, arglist) \
   7097        ((*((bfd)->xvec->message)) arglist)
   7098 
   7099      #ifdef DEBUG_BFD_SEND
   7100      #undef BFD_SEND
   7101      #define BFD_SEND(bfd, message, arglist) \
   7102        (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
   7103          ((*((bfd)->xvec->message)) arglist) : \
   7104          (bfd_assert (__FILE__,__LINE__), NULL))
   7105      #endif
   7106    For operations which index on the BFD format:
   7107      #define BFD_SEND_FMT(bfd, message, arglist) \
   7108        (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
   7109 
   7110      #ifdef DEBUG_BFD_SEND
   7111      #undef BFD_SEND_FMT
   7112      #define BFD_SEND_FMT(bfd, message, arglist) \
   7113        (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
   7114         (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
   7115         (bfd_assert (__FILE__,__LINE__), NULL))
   7116      #endif
   7117    This is the structure which defines the type of BFD this is.  The
   7118 `xvec' member of the struct `bfd' itself points here.  Each module that
   7119 implements access to a different target under BFD, defines one of these.
   7120 
   7121    FIXME, these names should be rationalised with the names of the
   7122 entry points which call them. Too bad we can't have one macro to define
   7123 them both!
   7124      enum bfd_flavour
   7125      {
   7126        bfd_target_unknown_flavour,
   7127        bfd_target_aout_flavour,
   7128        bfd_target_coff_flavour,
   7129        bfd_target_ecoff_flavour,
   7130        bfd_target_xcoff_flavour,
   7131        bfd_target_elf_flavour,
   7132        bfd_target_ieee_flavour,
   7133        bfd_target_nlm_flavour,
   7134        bfd_target_oasys_flavour,
   7135        bfd_target_tekhex_flavour,
   7136        bfd_target_srec_flavour,
   7137        bfd_target_verilog_flavour,
   7138        bfd_target_ihex_flavour,
   7139        bfd_target_som_flavour,
   7140        bfd_target_os9k_flavour,
   7141        bfd_target_versados_flavour,
   7142        bfd_target_msdos_flavour,
   7143        bfd_target_ovax_flavour,
   7144        bfd_target_evax_flavour,
   7145        bfd_target_mmo_flavour,
   7146        bfd_target_mach_o_flavour,
   7147        bfd_target_pef_flavour,
   7148        bfd_target_pef_xlib_flavour,
   7149        bfd_target_sym_flavour
   7150      };
   7151 
   7152      enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
   7153 
   7154      /* Forward declaration.  */
   7155      typedef struct bfd_link_info _bfd_link_info;
   7156 
   7157      /* Forward declaration.  */
   7158      typedef struct flag_info flag_info;
   7159 
   7160      typedef struct bfd_target
   7161      {
   7162        /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  */
   7163        char *name;
   7164 
   7165       /* The "flavour" of a back end is a general indication about
   7166          the contents of a file.  */
   7167        enum bfd_flavour flavour;
   7168 
   7169        /* The order of bytes within the data area of a file.  */
   7170        enum bfd_endian byteorder;
   7171 
   7172       /* The order of bytes within the header parts of a file.  */
   7173        enum bfd_endian header_byteorder;
   7174 
   7175        /* A mask of all the flags which an executable may have set -
   7176           from the set `BFD_NO_FLAGS', `HAS_RELOC', ...`D_PAGED'.  */
   7177        flagword object_flags;
   7178 
   7179       /* A mask of all the flags which a section may have set - from
   7180          the set `SEC_NO_FLAGS', `SEC_ALLOC', ...`SET_NEVER_LOAD'.  */
   7181        flagword section_flags;
   7182 
   7183       /* The character normally found at the front of a symbol.
   7184          (if any), perhaps `_'.  */
   7185        char symbol_leading_char;
   7186 
   7187       /* The pad character for file names within an archive header.  */
   7188        char ar_pad_char;
   7189 
   7190        /* The maximum number of characters in an archive header.  */
   7191        unsigned char ar_max_namelen;
   7192 
   7193        /* How well this target matches, used to select between various
   7194           possible targets when more than one target matches.  */
   7195        unsigned char match_priority;
   7196 
   7197        /* Entries for byte swapping for data. These are different from the
   7198           other entry points, since they don't take a BFD as the first argument.
   7199           Certain other handlers could do the same.  */
   7200        bfd_uint64_t   (*bfd_getx64) (const void *);
   7201        bfd_int64_t    (*bfd_getx_signed_64) (const void *);
   7202        void           (*bfd_putx64) (bfd_uint64_t, void *);
   7203        bfd_vma        (*bfd_getx32) (const void *);
   7204        bfd_signed_vma (*bfd_getx_signed_32) (const void *);
   7205        void           (*bfd_putx32) (bfd_vma, void *);
   7206        bfd_vma        (*bfd_getx16) (const void *);
   7207        bfd_signed_vma (*bfd_getx_signed_16) (const void *);
   7208        void           (*bfd_putx16) (bfd_vma, void *);
   7209 
   7210        /* Byte swapping for the headers.  */
   7211        bfd_uint64_t   (*bfd_h_getx64) (const void *);
   7212        bfd_int64_t    (*bfd_h_getx_signed_64) (const void *);
   7213        void           (*bfd_h_putx64) (bfd_uint64_t, void *);
   7214        bfd_vma        (*bfd_h_getx32) (const void *);
   7215        bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
   7216        void           (*bfd_h_putx32) (bfd_vma, void *);
   7217        bfd_vma        (*bfd_h_getx16) (const void *);
   7218        bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
   7219        void           (*bfd_h_putx16) (bfd_vma, void *);
   7220 
   7221        /* Format dependent routines: these are vectors of entry points
   7222           within the target vector structure, one for each format to check.  */
   7223 
   7224        /* Check the format of a file being read.  Return a `bfd_target *' or zero.  */
   7225        const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
   7226 
   7227        /* Set the format of a file being written.  */
   7228        bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
   7229 
   7230        /* Write cached information into a file being written, at `bfd_close'.  */
   7231        bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
   7232    The general target vector.  These vectors are initialized using the
   7233 BFD_JUMP_TABLE macros.
   7234 
   7235        /* Generic entry points.  */
   7236      #define BFD_JUMP_TABLE_GENERIC(NAME) \
   7237        NAME##_close_and_cleanup, \
   7238        NAME##_bfd_free_cached_info, \
   7239        NAME##_new_section_hook, \
   7240        NAME##_get_section_contents, \
   7241        NAME##_get_section_contents_in_window
   7242 
   7243        /* Called when the BFD is being closed to do any necessary cleanup.  */
   7244        bfd_boolean (*_close_and_cleanup) (bfd *);
   7245        /* Ask the BFD to free all cached information.  */
   7246        bfd_boolean (*_bfd_free_cached_info) (bfd *);
   7247        /* Called when a new section is created.  */
   7248        bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
   7249        /* Read the contents of a section.  */
   7250        bfd_boolean (*_bfd_get_section_contents)
   7251          (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
   7252        bfd_boolean (*_bfd_get_section_contents_in_window)
   7253          (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
   7254 
   7255        /* Entry points to copy private data.  */
   7256      #define BFD_JUMP_TABLE_COPY(NAME) \
   7257        NAME##_bfd_copy_private_bfd_data, \
   7258        NAME##_bfd_merge_private_bfd_data, \
   7259        _bfd_generic_init_private_section_data, \
   7260        NAME##_bfd_copy_private_section_data, \
   7261        NAME##_bfd_copy_private_symbol_data, \
   7262        NAME##_bfd_copy_private_header_data, \
   7263        NAME##_bfd_set_private_flags, \
   7264        NAME##_bfd_print_private_bfd_data
   7265 
   7266        /* Called to copy BFD general private data from one object file
   7267           to another.  */
   7268        bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
   7269        /* Called to merge BFD general private data from one object file
   7270           to a common output file when linking.  */
   7271        bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
   7272        /* Called to initialize BFD private section data from one object file
   7273           to another.  */
   7274      #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
   7275        BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
   7276        bfd_boolean (*_bfd_init_private_section_data)
   7277          (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
   7278        /* Called to copy BFD private section data from one object file
   7279           to another.  */
   7280        bfd_boolean (*_bfd_copy_private_section_data)
   7281          (bfd *, sec_ptr, bfd *, sec_ptr);
   7282        /* Called to copy BFD private symbol data from one symbol
   7283           to another.  */
   7284        bfd_boolean (*_bfd_copy_private_symbol_data)
   7285          (bfd *, asymbol *, bfd *, asymbol *);
   7286        /* Called to copy BFD private header data from one object file
   7287           to another.  */
   7288        bfd_boolean (*_bfd_copy_private_header_data)
   7289          (bfd *, bfd *);
   7290        /* Called to set private backend flags.  */
   7291        bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
   7292 
   7293        /* Called to print private BFD data.  */
   7294        bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
   7295 
   7296        /* Core file entry points.  */
   7297      #define BFD_JUMP_TABLE_CORE(NAME) \
   7298        NAME##_core_file_failing_command, \
   7299        NAME##_core_file_failing_signal, \
   7300        NAME##_core_file_matches_executable_p, \
   7301        NAME##_core_file_pid
   7302 
   7303        char *      (*_core_file_failing_command) (bfd *);
   7304        int         (*_core_file_failing_signal) (bfd *);
   7305        bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
   7306        int         (*_core_file_pid) (bfd *);
   7307 
   7308        /* Archive entry points.  */
   7309      #define BFD_JUMP_TABLE_ARCHIVE(NAME) \
   7310        NAME##_slurp_armap, \
   7311        NAME##_slurp_extended_name_table, \
   7312        NAME##_construct_extended_name_table, \
   7313        NAME##_truncate_arname, \
   7314        NAME##_write_armap, \
   7315        NAME##_read_ar_hdr, \
   7316        NAME##_write_ar_hdr, \
   7317        NAME##_openr_next_archived_file, \
   7318        NAME##_get_elt_at_index, \
   7319        NAME##_generic_stat_arch_elt, \
   7320        NAME##_update_armap_timestamp
   7321 
   7322        bfd_boolean (*_bfd_slurp_armap) (bfd *);
   7323        bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
   7324        bfd_boolean (*_bfd_construct_extended_name_table)
   7325          (bfd *, char **, bfd_size_type *, const char **);
   7326        void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
   7327        bfd_boolean (*write_armap)
   7328          (bfd *, unsigned int, struct orl *, unsigned int, int);
   7329        void *      (*_bfd_read_ar_hdr_fn) (bfd *);
   7330        bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *);
   7331        bfd *       (*openr_next_archived_file) (bfd *, bfd *);
   7332      #define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
   7333        bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
   7334        int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
   7335        bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
   7336 
   7337        /* Entry points used for symbols.  */
   7338      #define BFD_JUMP_TABLE_SYMBOLS(NAME) \
   7339        NAME##_get_symtab_upper_bound, \
   7340        NAME##_canonicalize_symtab, \
   7341        NAME##_make_empty_symbol, \
   7342        NAME##_print_symbol, \
   7343        NAME##_get_symbol_info, \
   7344        NAME##_bfd_is_local_label_name, \
   7345        NAME##_bfd_is_target_special_symbol, \
   7346        NAME##_get_lineno, \
   7347        NAME##_find_nearest_line, \
   7348        NAME##_find_line, \
   7349        NAME##_find_inliner_info, \
   7350        NAME##_bfd_make_debug_symbol, \
   7351        NAME##_read_minisymbols, \
   7352        NAME##_minisymbol_to_symbol
   7353 
   7354        long        (*_bfd_get_symtab_upper_bound) (bfd *);
   7355        long        (*_bfd_canonicalize_symtab)
   7356          (bfd *, struct bfd_symbol **);
   7357        struct bfd_symbol *
   7358                    (*_bfd_make_empty_symbol) (bfd *);
   7359        void        (*_bfd_print_symbol)
   7360          (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
   7361      #define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
   7362        void        (*_bfd_get_symbol_info)
   7363          (bfd *, struct bfd_symbol *, symbol_info *);
   7364      #define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
   7365        bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
   7366        bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
   7367        alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
   7368        bfd_boolean (*_bfd_find_nearest_line)
   7369          (bfd *, struct bfd_symbol **, struct bfd_section *, bfd_vma,
   7370           const char **, const char **, unsigned int *, unsigned int *);
   7371        bfd_boolean (*_bfd_find_line)
   7372          (bfd *, struct bfd_symbol **, struct bfd_symbol *,
   7373           const char **, unsigned int *);
   7374        bfd_boolean (*_bfd_find_inliner_info)
   7375          (bfd *, const char **, const char **, unsigned int *);
   7376       /* Back-door to allow format-aware applications to create debug symbols
   7377          while using BFD for everything else.  Currently used by the assembler
   7378          when creating COFF files.  */
   7379        asymbol *   (*_bfd_make_debug_symbol)
   7380          (bfd *, void *, unsigned long size);
   7381      #define bfd_read_minisymbols(b, d, m, s) \
   7382        BFD_SEND (b, _read_minisymbols, (b, d, m, s))
   7383        long        (*_read_minisymbols)
   7384          (bfd *, bfd_boolean, void **, unsigned int *);
   7385      #define bfd_minisymbol_to_symbol(b, d, m, f) \
   7386        BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
   7387        asymbol *   (*_minisymbol_to_symbol)
   7388          (bfd *, bfd_boolean, const void *, asymbol *);
   7389 
   7390        /* Routines for relocs.  */
   7391      #define BFD_JUMP_TABLE_RELOCS(NAME) \
   7392        NAME##_get_reloc_upper_bound, \
   7393        NAME##_canonicalize_reloc, \
   7394        NAME##_bfd_reloc_type_lookup, \
   7395        NAME##_bfd_reloc_name_lookup
   7396 
   7397        long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
   7398        long        (*_bfd_canonicalize_reloc)
   7399          (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
   7400        /* See documentation on reloc types.  */
   7401        reloc_howto_type *
   7402                    (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
   7403        reloc_howto_type *
   7404                    (*reloc_name_lookup) (bfd *, const char *);
   7405 
   7406 
   7407        /* Routines used when writing an object file.  */
   7408      #define BFD_JUMP_TABLE_WRITE(NAME) \
   7409        NAME##_set_arch_mach, \
   7410        NAME##_set_section_contents
   7411 
   7412        bfd_boolean (*_bfd_set_arch_mach)
   7413          (bfd *, enum bfd_architecture, unsigned long);
   7414        bfd_boolean (*_bfd_set_section_contents)
   7415          (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
   7416 
   7417        /* Routines used by the linker.  */
   7418      #define BFD_JUMP_TABLE_LINK(NAME) \
   7419        NAME##_sizeof_headers, \
   7420        NAME##_bfd_get_relocated_section_contents, \
   7421        NAME##_bfd_relax_section, \
   7422        NAME##_bfd_link_hash_table_create, \
   7423        NAME##_bfd_link_add_symbols, \
   7424        NAME##_bfd_link_just_syms, \
   7425        NAME##_bfd_copy_link_hash_symbol_type, \
   7426        NAME##_bfd_final_link, \
   7427        NAME##_bfd_link_split_section, \
   7428        NAME##_bfd_gc_sections, \
   7429        NAME##_bfd_lookup_section_flags, \
   7430        NAME##_bfd_merge_sections, \
   7431        NAME##_bfd_is_group_section, \
   7432        NAME##_bfd_discard_group, \
   7433        NAME##_section_already_linked, \
   7434        NAME##_bfd_define_common_symbol
   7435 
   7436        int         (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
   7437        bfd_byte *  (*_bfd_get_relocated_section_contents)
   7438          (bfd *, struct bfd_link_info *, struct bfd_link_order *,
   7439           bfd_byte *, bfd_boolean, struct bfd_symbol **);
   7440 
   7441        bfd_boolean (*_bfd_relax_section)
   7442          (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
   7443 
   7444        /* Create a hash table for the linker.  Different backends store
   7445           different information in this table.  */
   7446        struct bfd_link_hash_table *
   7447                    (*_bfd_link_hash_table_create) (bfd *);
   7448 
   7449        /* Add symbols from this object file into the hash table.  */
   7450        bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
   7451 
   7452        /* Indicate that we are only retrieving symbol values from this section.  */
   7453        void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
   7454 
   7455        /* Copy the symbol type and other attributes for a linker script
   7456           assignment of one symbol to another.  */
   7457      #define bfd_copy_link_hash_symbol_type(b, t, f) \
   7458        BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
   7459        void (*_bfd_copy_link_hash_symbol_type)
   7460          (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *);
   7461 
   7462        /* Do a link based on the link_order structures attached to each
   7463           section of the BFD.  */
   7464        bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
   7465 
   7466        /* Should this section be split up into smaller pieces during linking.  */
   7467        bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
   7468 
   7469        /* Remove sections that are not referenced from the output.  */
   7470        bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
   7471 
   7472        /* Sets the bitmask of allowed and disallowed section flags.  */
   7473        bfd_boolean (*_bfd_lookup_section_flags) (struct bfd_link_info *,
   7474                                                  struct flag_info *,
   7475                                                  asection *);
   7476 
   7477        /* Attempt to merge SEC_MERGE sections.  */
   7478        bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
   7479 
   7480        /* Is this section a member of a group?  */
   7481        bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
   7482 
   7483        /* Discard members of a group.  */
   7484        bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
   7485 
   7486        /* Check if SEC has been already linked during a reloceatable or
   7487           final link.  */
   7488        bfd_boolean (*_section_already_linked) (bfd *, asection *,
   7489                                                struct bfd_link_info *);
   7490 
   7491        /* Define a common symbol.  */
   7492        bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *,
   7493                                                  struct bfd_link_hash_entry *);
   7494 
   7495        /* Routines to handle dynamic symbols and relocs.  */
   7496      #define BFD_JUMP_TABLE_DYNAMIC(NAME) \
   7497        NAME##_get_dynamic_symtab_upper_bound, \
   7498        NAME##_canonicalize_dynamic_symtab, \
   7499        NAME##_get_synthetic_symtab, \
   7500        NAME##_get_dynamic_reloc_upper_bound, \
   7501        NAME##_canonicalize_dynamic_reloc
   7502 
   7503        /* Get the amount of memory required to hold the dynamic symbols.  */
   7504        long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
   7505        /* Read in the dynamic symbols.  */
   7506        long        (*_bfd_canonicalize_dynamic_symtab)
   7507          (bfd *, struct bfd_symbol **);
   7508        /* Create synthetized symbols.  */
   7509        long        (*_bfd_get_synthetic_symtab)
   7510          (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
   7511           struct bfd_symbol **);
   7512        /* Get the amount of memory required to hold the dynamic relocs.  */
   7513        long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
   7514        /* Read in the dynamic relocs.  */
   7515        long        (*_bfd_canonicalize_dynamic_reloc)
   7516          (bfd *, arelent **, struct bfd_symbol **);
   7517    A pointer to an alternative bfd_target in case the current one is not
   7518 satisfactory.  This can happen when the target cpu supports both big
   7519 and little endian code, and target chosen by the linker has the wrong
   7520 endianness.  The function open_output() in ld/ldlang.c uses this field
   7521 to find an alternative output format that is suitable.
   7522        /* Opposite endian version of this target.  */
   7523        const struct bfd_target * alternative_target;
   7524 
   7525        /* Data for use by back-end routines, which isn't
   7526           generic enough to belong in this structure.  */
   7527        const void *backend_data;
   7528 
   7529      } bfd_target;
   7530 
   7531 2.12.1.1 `bfd_set_default_target'
   7532 .................................
   7533 
   7534 *Synopsis*
   7535      bfd_boolean bfd_set_default_target (const char *name);
   7536    *Description*
   7537 Set the default target vector to use when recognizing a BFD.  This
   7538 takes the name of the target, which may be a BFD target name or a
   7539 configuration triplet.
   7540 
   7541 2.12.1.2 `bfd_find_target'
   7542 ..........................
   7543 
   7544 *Synopsis*
   7545      const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
   7546    *Description*
   7547 Return a pointer to the transfer vector for the object target named
   7548 TARGET_NAME.  If TARGET_NAME is `NULL', choose the one in the
   7549 environment variable `GNUTARGET'; if that is null or not defined, then
   7550 choose the first entry in the target list.  Passing in the string
   7551 "default" or setting the environment variable to "default" will cause
   7552 the first entry in the target list to be returned, and
   7553 "target_defaulted" will be set in the BFD if ABFD isn't `NULL'.  This
   7554 causes `bfd_check_format' to loop over all the targets to find the one
   7555 that matches the file being read.
   7556 
   7557 2.12.1.3 `bfd_get_target_info'
   7558 ..............................
   7559 
   7560 *Synopsis*
   7561      const bfd_target *bfd_get_target_info (const char *target_name,
   7562          bfd *abfd,
   7563          bfd_boolean *is_bigendian,
   7564          int *underscoring,
   7565          const char **def_target_arch);
   7566    *Description*
   7567 Return a pointer to the transfer vector for the object target named
   7568 TARGET_NAME.  If TARGET_NAME is `NULL', choose the one in the
   7569 environment variable `GNUTARGET'; if that is null or not defined, then
   7570 choose the first entry in the target list.  Passing in the string
   7571 "default" or setting the environment variable to "default" will cause
   7572 the first entry in the target list to be returned, and
   7573 "target_defaulted" will be set in the BFD if ABFD isn't `NULL'.  This
   7574 causes `bfd_check_format' to loop over all the targets to find the one
   7575 that matches the file being read.  If IS_BIGENDIAN is not `NULL', then
   7576 set this value to target's endian mode. True for big-endian, FALSE for
   7577 little-endian or for invalid target.  If UNDERSCORING is not `NULL',
   7578 then set this value to target's underscoring mode. Zero for
   7579 none-underscoring, -1 for invalid target, else the value of target
   7580 vector's symbol underscoring.  If DEF_TARGET_ARCH is not `NULL', then
   7581 set it to the architecture string specified by the target_name.
   7582 
   7583 2.12.1.4 `bfd_target_list'
   7584 ..........................
   7585 
   7586 *Synopsis*
   7587      const char ** bfd_target_list (void);
   7588    *Description*
   7589 Return a freshly malloced NULL-terminated vector of the names of all
   7590 the valid BFD targets. Do not modify the names.
   7591 
   7592 2.12.1.5 `bfd_seach_for_target'
   7593 ...............................
   7594 
   7595 *Synopsis*
   7596      const bfd_target *bfd_search_for_target
   7597         (int (*search_func) (const bfd_target *, void *),
   7598          void *);
   7599    *Description*
   7600 Return a pointer to the first transfer vector in the list of transfer
   7601 vectors maintained by BFD that produces a non-zero result when passed
   7602 to the function SEARCH_FUNC.  The parameter DATA is passed, unexamined,
   7603 to the search function.
   7604 
   7605 
   7606 File: bfd.info,  Node: Architectures,  Next: Opening and Closing,  Prev: Targets,  Up: BFD front end
   7607 
   7608 2.13 Architectures
   7609 ==================
   7610 
   7611 BFD keeps one atom in a BFD describing the architecture of the data
   7612 attached to the BFD: a pointer to a `bfd_arch_info_type'.
   7613 
   7614    Pointers to structures can be requested independently of a BFD so
   7615 that an architecture's information can be interrogated without access
   7616 to an open BFD.
   7617 
   7618    The architecture information is provided by each architecture
   7619 package.  The set of default architectures is selected by the macro
   7620 `SELECT_ARCHITECTURES'.  This is normally set up in the
   7621 `config/TARGET.mt' file of your choice.  If the name is not defined,
   7622 then all the architectures supported are included.
   7623 
   7624    When BFD starts up, all the architectures are called with an
   7625 initialize method.  It is up to the architecture back end to insert as
   7626 many items into the list of architectures as it wants to; generally
   7627 this would be one for each machine and one for the default case (an
   7628 item with a machine field of 0).
   7629 
   7630    BFD's idea of an architecture is implemented in `archures.c'.
   7631 
   7632 2.13.1 bfd_architecture
   7633 -----------------------
   7634 
   7635 *Description*
   7636 This enum gives the object file's CPU architecture, in a global
   7637 sense--i.e., what processor family does it belong to?  Another field
   7638 indicates which processor within the family is in use.  The machine
   7639 gives a number which distinguishes different versions of the
   7640 architecture, containing, for example, 2 and 3 for Intel i960 KA and
   7641 i960 KB, and 68020 and 68030 for Motorola 68020 and 68030.
   7642      enum bfd_architecture
   7643      {
   7644        bfd_arch_unknown,   /* File arch not known.  */
   7645        bfd_arch_obscure,   /* Arch known, not one of these.  */
   7646        bfd_arch_m68k,      /* Motorola 68xxx */
   7647      #define bfd_mach_m68000 1
   7648      #define bfd_mach_m68008 2
   7649      #define bfd_mach_m68010 3
   7650      #define bfd_mach_m68020 4
   7651      #define bfd_mach_m68030 5
   7652      #define bfd_mach_m68040 6
   7653      #define bfd_mach_m68060 7
   7654      #define bfd_mach_cpu32  8
   7655      #define bfd_mach_fido   9
   7656      #define bfd_mach_mcf_isa_a_nodiv 10
   7657      #define bfd_mach_mcf_isa_a 11
   7658      #define bfd_mach_mcf_isa_a_mac 12
   7659      #define bfd_mach_mcf_isa_a_emac 13
   7660      #define bfd_mach_mcf_isa_aplus 14
   7661      #define bfd_mach_mcf_isa_aplus_mac 15
   7662      #define bfd_mach_mcf_isa_aplus_emac 16
   7663      #define bfd_mach_mcf_isa_b_nousp 17
   7664      #define bfd_mach_mcf_isa_b_nousp_mac 18
   7665      #define bfd_mach_mcf_isa_b_nousp_emac 19
   7666      #define bfd_mach_mcf_isa_b 20
   7667      #define bfd_mach_mcf_isa_b_mac 21
   7668      #define bfd_mach_mcf_isa_b_emac 22
   7669      #define bfd_mach_mcf_isa_b_float 23
   7670      #define bfd_mach_mcf_isa_b_float_mac 24
   7671      #define bfd_mach_mcf_isa_b_float_emac 25
   7672      #define bfd_mach_mcf_isa_c 26
   7673      #define bfd_mach_mcf_isa_c_mac 27
   7674      #define bfd_mach_mcf_isa_c_emac 28
   7675      #define bfd_mach_mcf_isa_c_nodiv 29
   7676      #define bfd_mach_mcf_isa_c_nodiv_mac 30
   7677      #define bfd_mach_mcf_isa_c_nodiv_emac 31
   7678        bfd_arch_vax,       /* DEC Vax */
   7679        bfd_arch_i960,      /* Intel 960 */
   7680          /* The order of the following is important.
   7681             lower number indicates a machine type that
   7682             only accepts a subset of the instructions
   7683             available to machines with higher numbers.
   7684             The exception is the "ca", which is
   7685             incompatible with all other machines except
   7686             "core".  */
   7687 
   7688      #define bfd_mach_i960_core      1
   7689      #define bfd_mach_i960_ka_sa     2
   7690      #define bfd_mach_i960_kb_sb     3
   7691      #define bfd_mach_i960_mc        4
   7692      #define bfd_mach_i960_xa        5
   7693      #define bfd_mach_i960_ca        6
   7694      #define bfd_mach_i960_jx        7
   7695      #define bfd_mach_i960_hx        8
   7696 
   7697        bfd_arch_or1k,      /* OpenRISC 1000 */
   7698      #define bfd_mach_or1k           1
   7699      #define bfd_mach_or1knd         2
   7700 
   7701        bfd_arch_sparc,     /* SPARC */
   7702      #define bfd_mach_sparc                 1
   7703      /* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
   7704      #define bfd_mach_sparc_sparclet        2
   7705      #define bfd_mach_sparc_sparclite       3
   7706      #define bfd_mach_sparc_v8plus          4
   7707      #define bfd_mach_sparc_v8plusa         5 /* with ultrasparc add'ns.  */
   7708      #define bfd_mach_sparc_sparclite_le    6
   7709      #define bfd_mach_sparc_v9              7
   7710      #define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
   7711      #define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
   7712      #define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
   7713      /* Nonzero if MACH has the v9 instruction set.  */
   7714      #define bfd_mach_sparc_v9_p(mach) \
   7715        ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
   7716         && (mach) != bfd_mach_sparc_sparclite_le)
   7717      /* Nonzero if MACH is a 64 bit sparc architecture.  */
   7718      #define bfd_mach_sparc_64bit_p(mach) \
   7719        ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
   7720        bfd_arch_spu,       /* PowerPC SPU */
   7721      #define bfd_mach_spu           256
   7722        bfd_arch_mips,      /* MIPS Rxxxx */
   7723      #define bfd_mach_mips3000              3000
   7724      #define bfd_mach_mips3900              3900
   7725      #define bfd_mach_mips4000              4000
   7726      #define bfd_mach_mips4010              4010
   7727      #define bfd_mach_mips4100              4100
   7728      #define bfd_mach_mips4111              4111
   7729      #define bfd_mach_mips4120              4120
   7730      #define bfd_mach_mips4300              4300
   7731      #define bfd_mach_mips4400              4400
   7732      #define bfd_mach_mips4600              4600
   7733      #define bfd_mach_mips4650              4650
   7734      #define bfd_mach_mips5000              5000
   7735      #define bfd_mach_mips5400              5400
   7736      #define bfd_mach_mips5500              5500
   7737      #define bfd_mach_mips5900              5900
   7738      #define bfd_mach_mips6000              6000
   7739      #define bfd_mach_mips7000              7000
   7740      #define bfd_mach_mips8000              8000
   7741      #define bfd_mach_mips9000              9000
   7742      #define bfd_mach_mips10000             10000
   7743      #define bfd_mach_mips12000             12000
   7744      #define bfd_mach_mips14000             14000
   7745      #define bfd_mach_mips16000             16000
   7746      #define bfd_mach_mips16                16
   7747      #define bfd_mach_mips5                 5
   7748      #define bfd_mach_mips_loongson_2e      3001
   7749      #define bfd_mach_mips_loongson_2f      3002
   7750      #define bfd_mach_mips_loongson_3a      3003
   7751      #define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
   7752      #define bfd_mach_mips_octeon           6501
   7753      #define bfd_mach_mips_octeonp          6601
   7754      #define bfd_mach_mips_octeon2          6502
   7755      #define bfd_mach_mips_xlr              887682   /* decimal 'XLR'  */
   7756      #define bfd_mach_mipsisa32             32
   7757      #define bfd_mach_mipsisa32r2           33
   7758      #define bfd_mach_mipsisa32r3           34
   7759      #define bfd_mach_mipsisa32r5           36
   7760      #define bfd_mach_mipsisa32r6           37
   7761      #define bfd_mach_mipsisa64             64
   7762      #define bfd_mach_mipsisa64r2           65
   7763      #define bfd_mach_mipsisa64r3           66
   7764      #define bfd_mach_mipsisa64r5           68
   7765      #define bfd_mach_mipsisa64r6           69
   7766      #define bfd_mach_mips_micromips        96
   7767        bfd_arch_i386,      /* Intel 386 */
   7768      #define bfd_mach_i386_intel_syntax     (1 << 0)
   7769      #define bfd_mach_i386_i8086            (1 << 1)
   7770      #define bfd_mach_i386_i386             (1 << 2)
   7771      #define bfd_mach_x86_64                (1 << 3)
   7772      #define bfd_mach_x64_32                (1 << 4)
   7773      #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax)
   7774      #define bfd_mach_x86_64_intel_syntax   (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax)
   7775      #define bfd_mach_x64_32_intel_syntax   (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax)
   7776        bfd_arch_l1om,   /* Intel L1OM */
   7777      #define bfd_mach_l1om                  (1 << 5)
   7778      #define bfd_mach_l1om_intel_syntax     (bfd_mach_l1om | bfd_mach_i386_intel_syntax)
   7779        bfd_arch_k1om,   /* Intel K1OM */
   7780      #define bfd_mach_k1om                  (1 << 6)
   7781      #define bfd_mach_k1om_intel_syntax     (bfd_mach_k1om | bfd_mach_i386_intel_syntax)
   7782      #define bfd_mach_i386_nacl             (1 << 7)
   7783      #define bfd_mach_i386_i386_nacl        (bfd_mach_i386_i386 | bfd_mach_i386_nacl)
   7784      #define bfd_mach_x86_64_nacl           (bfd_mach_x86_64 | bfd_mach_i386_nacl)
   7785      #define bfd_mach_x64_32_nacl           (bfd_mach_x64_32 | bfd_mach_i386_nacl)
   7786        bfd_arch_we32k,     /* AT&T WE32xxx */
   7787        bfd_arch_tahoe,     /* CCI/Harris Tahoe */
   7788        bfd_arch_i860,      /* Intel 860 */
   7789        bfd_arch_i370,      /* IBM 360/370 Mainframes */
   7790        bfd_arch_romp,      /* IBM ROMP PC/RT */
   7791        bfd_arch_convex,    /* Convex */
   7792        bfd_arch_m88k,      /* Motorola 88xxx */
   7793        bfd_arch_m98k,      /* Motorola 98xxx */
   7794        bfd_arch_pyramid,   /* Pyramid Technology */
   7795        bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300) */
   7796      #define bfd_mach_h8300    1
   7797      #define bfd_mach_h8300h   2
   7798      #define bfd_mach_h8300s   3
   7799      #define bfd_mach_h8300hn  4
   7800      #define bfd_mach_h8300sn  5
   7801      #define bfd_mach_h8300sx  6
   7802      #define bfd_mach_h8300sxn 7
   7803        bfd_arch_pdp11,     /* DEC PDP-11 */
   7804        bfd_arch_plugin,
   7805        bfd_arch_powerpc,   /* PowerPC */
   7806      #define bfd_mach_ppc           32
   7807      #define bfd_mach_ppc64         64
   7808      #define bfd_mach_ppc_403       403
   7809      #define bfd_mach_ppc_403gc     4030
   7810      #define bfd_mach_ppc_405       405
   7811      #define bfd_mach_ppc_505       505
   7812      #define bfd_mach_ppc_601       601
   7813      #define bfd_mach_ppc_602       602
   7814      #define bfd_mach_ppc_603       603
   7815      #define bfd_mach_ppc_ec603e    6031
   7816      #define bfd_mach_ppc_604       604
   7817      #define bfd_mach_ppc_620       620
   7818      #define bfd_mach_ppc_630       630
   7819      #define bfd_mach_ppc_750       750
   7820      #define bfd_mach_ppc_860       860
   7821      #define bfd_mach_ppc_a35       35
   7822      #define bfd_mach_ppc_rs64ii    642
   7823      #define bfd_mach_ppc_rs64iii   643
   7824      #define bfd_mach_ppc_7400      7400
   7825      #define bfd_mach_ppc_e500      500
   7826      #define bfd_mach_ppc_e500mc    5001
   7827      #define bfd_mach_ppc_e500mc64  5005
   7828      #define bfd_mach_ppc_e5500     5006
   7829      #define bfd_mach_ppc_e6500     5007
   7830      #define bfd_mach_ppc_titan     83
   7831      #define bfd_mach_ppc_vle       84
   7832        bfd_arch_rs6000,    /* IBM RS/6000 */
   7833      #define bfd_mach_rs6k          6000
   7834      #define bfd_mach_rs6k_rs1      6001
   7835      #define bfd_mach_rs6k_rsc      6003
   7836      #define bfd_mach_rs6k_rs2      6002
   7837        bfd_arch_hppa,      /* HP PA RISC */
   7838      #define bfd_mach_hppa10        10
   7839      #define bfd_mach_hppa11        11
   7840      #define bfd_mach_hppa20        20
   7841      #define bfd_mach_hppa20w       25
   7842        bfd_arch_d10v,      /* Mitsubishi D10V */
   7843      #define bfd_mach_d10v          1
   7844      #define bfd_mach_d10v_ts2      2
   7845      #define bfd_mach_d10v_ts3      3
   7846        bfd_arch_d30v,      /* Mitsubishi D30V */
   7847        bfd_arch_dlx,       /* DLX */
   7848        bfd_arch_m68hc11,   /* Motorola 68HC11 */
   7849        bfd_arch_m68hc12,   /* Motorola 68HC12 */
   7850      #define bfd_mach_m6812_default 0
   7851      #define bfd_mach_m6812         1
   7852      #define bfd_mach_m6812s        2
   7853        bfd_arch_m9s12x,   /* Freescale S12X */
   7854        bfd_arch_m9s12xg,  /* Freescale XGATE */
   7855        bfd_arch_z8k,       /* Zilog Z8000 */
   7856      #define bfd_mach_z8001         1
   7857      #define bfd_mach_z8002         2
   7858        bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500) */
   7859        bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH) */
   7860      #define bfd_mach_sh            1
   7861      #define bfd_mach_sh2        0x20
   7862      #define bfd_mach_sh_dsp     0x2d
   7863      #define bfd_mach_sh2a       0x2a
   7864      #define bfd_mach_sh2a_nofpu 0x2b
   7865      #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
   7866      #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
   7867      #define bfd_mach_sh2a_or_sh4  0x2a3
   7868      #define bfd_mach_sh2a_or_sh3e 0x2a4
   7869      #define bfd_mach_sh2e       0x2e
   7870      #define bfd_mach_sh3        0x30
   7871      #define bfd_mach_sh3_nommu  0x31
   7872      #define bfd_mach_sh3_dsp    0x3d
   7873      #define bfd_mach_sh3e       0x3e
   7874      #define bfd_mach_sh4        0x40
   7875      #define bfd_mach_sh4_nofpu  0x41
   7876      #define bfd_mach_sh4_nommu_nofpu  0x42
   7877      #define bfd_mach_sh4a       0x4a
   7878      #define bfd_mach_sh4a_nofpu 0x4b
   7879      #define bfd_mach_sh4al_dsp  0x4d
   7880      #define bfd_mach_sh5        0x50
   7881        bfd_arch_alpha,     /* Dec Alpha */
   7882      #define bfd_mach_alpha_ev4  0x10
   7883      #define bfd_mach_alpha_ev5  0x20
   7884      #define bfd_mach_alpha_ev6  0x30
   7885        bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
   7886      #define bfd_mach_arm_unknown   0
   7887      #define bfd_mach_arm_2         1
   7888      #define bfd_mach_arm_2a        2
   7889      #define bfd_mach_arm_3         3
   7890      #define bfd_mach_arm_3M        4
   7891      #define bfd_mach_arm_4         5
   7892      #define bfd_mach_arm_4T        6
   7893      #define bfd_mach_arm_5         7
   7894      #define bfd_mach_arm_5T        8
   7895      #define bfd_mach_arm_5TE       9
   7896      #define bfd_mach_arm_XScale    10
   7897      #define bfd_mach_arm_ep9312    11
   7898      #define bfd_mach_arm_iWMMXt    12
   7899      #define bfd_mach_arm_iWMMXt2   13
   7900        bfd_arch_nds32,     /* Andes NDS32 */
   7901      #define bfd_mach_n1            1
   7902      #define bfd_mach_n1h           2
   7903      #define bfd_mach_n1h_v2        3
   7904      #define bfd_mach_n1h_v3        4
   7905      #define bfd_mach_n1h_v3m       5
   7906        bfd_arch_ns32k,     /* National Semiconductors ns32000 */
   7907        bfd_arch_w65,       /* WDC 65816 */
   7908        bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
   7909        bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
   7910      #define bfd_mach_tic3x         30
   7911      #define bfd_mach_tic4x         40
   7912        bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */
   7913        bfd_arch_tic6x,     /* Texas Instruments TMS320C6X */
   7914        bfd_arch_tic80,     /* TI TMS320c80 (MVP) */
   7915        bfd_arch_v850,      /* NEC V850 */
   7916        bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI) */
   7917      #define bfd_mach_v850          1
   7918      #define bfd_mach_v850e         'E'
   7919      #define bfd_mach_v850e1        '1'
   7920      #define bfd_mach_v850e2        0x4532
   7921      #define bfd_mach_v850e2v3      0x45325633
   7922      #define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5') */
   7923        bfd_arch_arc,       /* ARC Cores */
   7924      #define bfd_mach_arc_5         5
   7925      #define bfd_mach_arc_6         6
   7926      #define bfd_mach_arc_7         7
   7927      #define bfd_mach_arc_8         8
   7928       bfd_arch_m32c,     /* Renesas M16C/M32C.  */
   7929      #define bfd_mach_m16c        0x75
   7930      #define bfd_mach_m32c        0x78
   7931        bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
   7932      #define bfd_mach_m32r          1 /* For backwards compatibility.  */
   7933      #define bfd_mach_m32rx         'x'
   7934      #define bfd_mach_m32r2         '2'
   7935        bfd_arch_mn10200,   /* Matsushita MN10200 */
   7936        bfd_arch_mn10300,   /* Matsushita MN10300 */
   7937      #define bfd_mach_mn10300               300
   7938      #define bfd_mach_am33          330
   7939      #define bfd_mach_am33_2        332
   7940        bfd_arch_fr30,
   7941      #define bfd_mach_fr30          0x46523330
   7942        bfd_arch_frv,
   7943      #define bfd_mach_frv           1
   7944      #define bfd_mach_frvsimple     2
   7945      #define bfd_mach_fr300         300
   7946      #define bfd_mach_fr400         400
   7947      #define bfd_mach_fr450         450
   7948      #define bfd_mach_frvtomcat     499     /* fr500 prototype */
   7949      #define bfd_mach_fr500         500
   7950      #define bfd_mach_fr550         550
   7951        bfd_arch_moxie,       /* The moxie processor */
   7952      #define bfd_mach_moxie         1
   7953        bfd_arch_mcore,
   7954        bfd_arch_mep,
   7955      #define bfd_mach_mep           1
   7956      #define bfd_mach_mep_h1        0x6831
   7957      #define bfd_mach_mep_c5        0x6335
   7958        bfd_arch_metag,
   7959      #define bfd_mach_metag         1
   7960        bfd_arch_ia64,      /* HP/Intel ia64 */
   7961      #define bfd_mach_ia64_elf64    64
   7962      #define bfd_mach_ia64_elf32    32
   7963        bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
   7964      #define bfd_mach_ip2022        1
   7965      #define bfd_mach_ip2022ext     2
   7966       bfd_arch_iq2000,     /* Vitesse IQ2000.  */
   7967      #define bfd_mach_iq2000        1
   7968      #define bfd_mach_iq10          2
   7969        bfd_arch_epiphany,   /* Adapteva EPIPHANY */
   7970      #define bfd_mach_epiphany16    1
   7971      #define bfd_mach_epiphany32    2
   7972        bfd_arch_mt,
   7973      #define bfd_mach_ms1           1
   7974      #define bfd_mach_mrisc2        2
   7975      #define bfd_mach_ms2           3
   7976        bfd_arch_pj,
   7977        bfd_arch_avr,       /* Atmel AVR microcontrollers.  */
   7978      #define bfd_mach_avr1          1
   7979      #define bfd_mach_avr2          2
   7980      #define bfd_mach_avr25         25
   7981      #define bfd_mach_avr3          3
   7982      #define bfd_mach_avr31         31
   7983      #define bfd_mach_avr35         35
   7984      #define bfd_mach_avr4          4
   7985      #define bfd_mach_avr5          5
   7986      #define bfd_mach_avr51         51
   7987      #define bfd_mach_avr6          6
   7988      #define bfd_mach_avrtiny   100
   7989      #define bfd_mach_avrxmega1 101
   7990      #define bfd_mach_avrxmega2 102
   7991      #define bfd_mach_avrxmega3 103
   7992      #define bfd_mach_avrxmega4 104
   7993      #define bfd_mach_avrxmega5 105
   7994      #define bfd_mach_avrxmega6 106
   7995      #define bfd_mach_avrxmega7 107
   7996        bfd_arch_bfin,        /* ADI Blackfin */
   7997      #define bfd_mach_bfin          1
   7998        bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
   7999      #define bfd_mach_cr16          1
   8000        bfd_arch_cr16c,       /* National Semiconductor CompactRISC. */
   8001      #define bfd_mach_cr16c         1
   8002        bfd_arch_crx,       /*  National Semiconductor CRX.  */
   8003      #define bfd_mach_crx           1
   8004        bfd_arch_cris,      /* Axis CRIS */
   8005      #define bfd_mach_cris_v0_v10   255
   8006      #define bfd_mach_cris_v32      32
   8007      #define bfd_mach_cris_v10_v32  1032
   8008        bfd_arch_rl78,
   8009      #define bfd_mach_rl78  0x75
   8010        bfd_arch_rx,        /* Renesas RX.  */
   8011      #define bfd_mach_rx            0x75
   8012        bfd_arch_s390,      /* IBM s390 */
   8013      #define bfd_mach_s390_31       31
   8014      #define bfd_mach_s390_64       64
   8015        bfd_arch_score,     /* Sunplus score */
   8016      #define bfd_mach_score3         3
   8017      #define bfd_mach_score7         7
   8018        bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
   8019        bfd_arch_xstormy16,
   8020      #define bfd_mach_xstormy16     1
   8021        bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
   8022      #define bfd_mach_msp11          11
   8023      #define bfd_mach_msp110         110
   8024      #define bfd_mach_msp12          12
   8025      #define bfd_mach_msp13          13
   8026      #define bfd_mach_msp14          14
   8027      #define bfd_mach_msp15          15
   8028      #define bfd_mach_msp16          16
   8029      #define bfd_mach_msp20          20
   8030      #define bfd_mach_msp21          21
   8031      #define bfd_mach_msp22          22
   8032      #define bfd_mach_msp23          23
   8033      #define bfd_mach_msp24          24
   8034      #define bfd_mach_msp26          26
   8035      #define bfd_mach_msp31          31
   8036      #define bfd_mach_msp32          32
   8037      #define bfd_mach_msp33          33
   8038      #define bfd_mach_msp41          41
   8039      #define bfd_mach_msp42          42
   8040      #define bfd_mach_msp43          43
   8041      #define bfd_mach_msp44          44
   8042      #define bfd_mach_msp430x        45
   8043      #define bfd_mach_msp46          46
   8044      #define bfd_mach_msp47          47
   8045      #define bfd_mach_msp54          54
   8046        bfd_arch_xc16x,     /* Infineon's XC16X Series.               */
   8047      #define bfd_mach_xc16x         1
   8048      #define bfd_mach_xc16xl        2
   8049      #define bfd_mach_xc16xs        3
   8050        bfd_arch_xgate,   /* Freescale XGATE */
   8051      #define bfd_mach_xgate         1
   8052        bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
   8053      #define bfd_mach_xtensa        1
   8054        bfd_arch_z80,
   8055      #define bfd_mach_z80strict      1 /* No undocumented opcodes.  */
   8056      #define bfd_mach_z80            3 /* With ixl, ixh, iyl, and iyh.  */
   8057      #define bfd_mach_z80full        7 /* All undocumented instructions.  */
   8058      #define bfd_mach_r800           11 /* R800: successor with multiplication.  */
   8059        bfd_arch_lm32,      /* Lattice Mico32 */
   8060      #define bfd_mach_lm32      1
   8061        bfd_arch_microblaze,/* Xilinx MicroBlaze. */
   8062        bfd_arch_tilepro,   /* Tilera TILEPro */
   8063        bfd_arch_tilegx, /* Tilera TILE-Gx */
   8064      #define bfd_mach_tilepro   1
   8065      #define bfd_mach_tilegx    1
   8066      #define bfd_mach_tilegx32  2
   8067        bfd_arch_aarch64,   /* AArch64  */
   8068      #define bfd_mach_aarch64 0
   8069      #define bfd_mach_aarch64_ilp32 32
   8070        bfd_arch_nios2,
   8071      #define bfd_mach_nios2 0
   8072        bfd_arch_last
   8073        };
   8074 
   8075 2.13.2 bfd_arch_info
   8076 --------------------
   8077 
   8078 *Description*
   8079 This structure contains information on architectures for use within BFD.
   8080 
   8081      typedef struct bfd_arch_info
   8082      {
   8083        int bits_per_word;
   8084        int bits_per_address;
   8085        int bits_per_byte;
   8086        enum bfd_architecture arch;
   8087        unsigned long mach;
   8088        const char *arch_name;
   8089        const char *printable_name;
   8090        unsigned int section_align_power;
   8091        /* TRUE if this is the default machine for the architecture.
   8092           The default arch should be the first entry for an arch so that
   8093           all the entries for that arch can be accessed via `next'.  */
   8094        bfd_boolean the_default;
   8095        const struct bfd_arch_info * (*compatible)
   8096          (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
   8097 
   8098        bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
   8099 
   8100        /* Allocate via bfd_malloc and return a fill buffer of size COUNT.  If
   8101           IS_BIGENDIAN is TRUE, the order of bytes is big endian.  If CODE is
   8102           TRUE, the buffer contains code.  */
   8103        void *(*fill) (bfd_size_type count, bfd_boolean is_bigendian,
   8104                       bfd_boolean code);
   8105 
   8106        const struct bfd_arch_info *next;
   8107      }
   8108      bfd_arch_info_type;
   8109 
   8110 2.13.2.1 `bfd_printable_name'
   8111 .............................
   8112 
   8113 *Synopsis*
   8114      const char *bfd_printable_name (bfd *abfd);
   8115    *Description*
   8116 Return a printable string representing the architecture and machine
   8117 from the pointer to the architecture info structure.
   8118 
   8119 2.13.2.2 `bfd_scan_arch'
   8120 ........................
   8121 
   8122 *Synopsis*
   8123      const bfd_arch_info_type *bfd_scan_arch (const char *string);
   8124    *Description*
   8125 Figure out if BFD supports any cpu which could be described with the
   8126 name STRING.  Return a pointer to an `arch_info' structure if a machine
   8127 is found, otherwise NULL.
   8128 
   8129 2.13.2.3 `bfd_arch_list'
   8130 ........................
   8131 
   8132 *Synopsis*
   8133      const char **bfd_arch_list (void);
   8134    *Description*
   8135 Return a freshly malloced NULL-terminated vector of the names of all
   8136 the valid BFD architectures.  Do not modify the names.
   8137 
   8138 2.13.2.4 `bfd_arch_get_compatible'
   8139 ..................................
   8140 
   8141 *Synopsis*
   8142      const bfd_arch_info_type *bfd_arch_get_compatible
   8143         (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
   8144    *Description*
   8145 Determine whether two BFDs' architectures and machine types are
   8146 compatible.  Calculates the lowest common denominator between the two
   8147 architectures and machine types implied by the BFDs and returns a
   8148 pointer to an `arch_info' structure describing the compatible machine.
   8149 
   8150 2.13.2.5 `bfd_default_arch_struct'
   8151 ..................................
   8152 
   8153 *Description*
   8154 The `bfd_default_arch_struct' is an item of `bfd_arch_info_type' which
   8155 has been initialized to a fairly generic state.  A BFD starts life by
   8156 pointing to this structure, until the correct back end has determined
   8157 the real architecture of the file.
   8158      extern const bfd_arch_info_type bfd_default_arch_struct;
   8159 
   8160 2.13.2.6 `bfd_set_arch_info'
   8161 ............................
   8162 
   8163 *Synopsis*
   8164      void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
   8165    *Description*
   8166 Set the architecture info of ABFD to ARG.
   8167 
   8168 2.13.2.7 `bfd_default_set_arch_mach'
   8169 ....................................
   8170 
   8171 *Synopsis*
   8172      bfd_boolean bfd_default_set_arch_mach
   8173         (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
   8174    *Description*
   8175 Set the architecture and machine type in BFD ABFD to ARCH and MACH.
   8176 Find the correct pointer to a structure and insert it into the
   8177 `arch_info' pointer.
   8178 
   8179 2.13.2.8 `bfd_get_arch'
   8180 .......................
   8181 
   8182 *Synopsis*
   8183      enum bfd_architecture bfd_get_arch (bfd *abfd);
   8184    *Description*
   8185 Return the enumerated type which describes the BFD ABFD's architecture.
   8186 
   8187 2.13.2.9 `bfd_get_mach'
   8188 .......................
   8189 
   8190 *Synopsis*
   8191      unsigned long bfd_get_mach (bfd *abfd);
   8192    *Description*
   8193 Return the long type which describes the BFD ABFD's machine.
   8194 
   8195 2.13.2.10 `bfd_arch_bits_per_byte'
   8196 ..................................
   8197 
   8198 *Synopsis*
   8199      unsigned int bfd_arch_bits_per_byte (bfd *abfd);
   8200    *Description*
   8201 Return the number of bits in one of the BFD ABFD's architecture's bytes.
   8202 
   8203 2.13.2.11 `bfd_arch_bits_per_address'
   8204 .....................................
   8205 
   8206 *Synopsis*
   8207      unsigned int bfd_arch_bits_per_address (bfd *abfd);
   8208    *Description*
   8209 Return the number of bits in one of the BFD ABFD's architecture's
   8210 addresses.
   8211 
   8212 2.13.2.12 `bfd_default_compatible'
   8213 ..................................
   8214 
   8215 *Synopsis*
   8216      const bfd_arch_info_type *bfd_default_compatible
   8217         (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
   8218    *Description*
   8219 The default function for testing for compatibility.
   8220 
   8221 2.13.2.13 `bfd_default_scan'
   8222 ............................
   8223 
   8224 *Synopsis*
   8225      bfd_boolean bfd_default_scan
   8226         (const struct bfd_arch_info *info, const char *string);
   8227    *Description*
   8228 The default function for working out whether this is an architecture
   8229 hit and a machine hit.
   8230 
   8231 2.13.2.14 `bfd_get_arch_info'
   8232 .............................
   8233 
   8234 *Synopsis*
   8235      const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
   8236    *Description*
   8237 Return the architecture info struct in ABFD.
   8238 
   8239 2.13.2.15 `bfd_lookup_arch'
   8240 ...........................
   8241 
   8242 *Synopsis*
   8243      const bfd_arch_info_type *bfd_lookup_arch
   8244         (enum bfd_architecture arch, unsigned long machine);
   8245    *Description*
   8246 Look for the architecture info structure which matches the arguments
   8247 ARCH and MACHINE. A machine of 0 matches the machine/architecture
   8248 structure which marks itself as the default.
   8249 
   8250 2.13.2.16 `bfd_printable_arch_mach'
   8251 ...................................
   8252 
   8253 *Synopsis*
   8254      const char *bfd_printable_arch_mach
   8255         (enum bfd_architecture arch, unsigned long machine);
   8256    *Description*
   8257 Return a printable string representing the architecture and machine
   8258 type.
   8259 
   8260    This routine is depreciated.
   8261 
   8262 2.13.2.17 `bfd_octets_per_byte'
   8263 ...............................
   8264 
   8265 *Synopsis*
   8266      unsigned int bfd_octets_per_byte (bfd *abfd);
   8267    *Description*
   8268 Return the number of octets (8-bit quantities) per target byte (minimum
   8269 addressable unit).  In most cases, this will be one, but some DSP
   8270 targets have 16, 32, or even 48 bits per byte.
   8271 
   8272 2.13.2.18 `bfd_arch_mach_octets_per_byte'
   8273 .........................................
   8274 
   8275 *Synopsis*
   8276      unsigned int bfd_arch_mach_octets_per_byte
   8277         (enum bfd_architecture arch, unsigned long machine);
   8278    *Description*
   8279 See bfd_octets_per_byte.
   8280 
   8281    This routine is provided for those cases where a bfd * is not
   8282 available
   8283 
   8284 2.13.2.19 `bfd_arch_default_fill'
   8285 .................................
   8286 
   8287 *Synopsis*
   8288      void *bfd_arch_default_fill (bfd_size_type count,
   8289          bfd_boolean is_bigendian,
   8290          bfd_boolean code);
   8291    *Description*
   8292 Allocate via bfd_malloc and return a fill buffer of size COUNT.  If
   8293 IS_BIGENDIAN is TRUE, the order of bytes is big endian.  If CODE is
   8294 TRUE, the buffer contains code.
   8295 
   8296 
   8297 File: bfd.info,  Node: Opening and Closing,  Next: Internal,  Prev: Architectures,  Up: BFD front end
   8298 
   8299      /* Set to N to open the next N BFDs using an alternate id space.  */
   8300      extern unsigned int bfd_use_reserved_id;
   8301 
   8302 2.14 Opening and closing BFDs
   8303 =============================
   8304 
   8305 2.14.1 Functions for opening and closing
   8306 ----------------------------------------
   8307 
   8308 2.14.1.1 `bfd_fopen'
   8309 ....................
   8310 
   8311 *Synopsis*
   8312      bfd *bfd_fopen (const char *filename, const char *target,
   8313          const char *mode, int fd);
   8314    *Description*
   8315 Open the file FILENAME with the target TARGET.  Return a pointer to the
   8316 created BFD.  If FD is not -1, then `fdopen' is used to open the file;
   8317 otherwise, `fopen' is used.  MODE is passed directly to `fopen' or
   8318 `fdopen'.
   8319 
   8320    Calls `bfd_find_target', so TARGET is interpreted as by that
   8321 function.
   8322 
   8323    The new BFD is marked as cacheable iff FD is -1.
   8324 
   8325    If `NULL' is returned then an error has occured.   Possible errors
   8326 are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call'
   8327 error.
   8328 
   8329    On error, FD is always closed.
   8330 
   8331    A copy of the FILENAME argument is stored in the newly created BFD.
   8332 It can be accessed via the bfd_get_filename() macro.
   8333 
   8334 2.14.1.2 `bfd_openr'
   8335 ....................
   8336 
   8337 *Synopsis*
   8338      bfd *bfd_openr (const char *filename, const char *target);
   8339    *Description*
   8340 Open the file FILENAME (using `fopen') with the target TARGET.  Return
   8341 a pointer to the created BFD.
   8342 
   8343    Calls `bfd_find_target', so TARGET is interpreted as by that
   8344 function.
   8345 
   8346    If `NULL' is returned then an error has occured.   Possible errors
   8347 are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call'
   8348 error.
   8349 
   8350    A copy of the FILENAME argument is stored in the newly created BFD.
   8351 It can be accessed via the bfd_get_filename() macro.
   8352 
   8353 2.14.1.3 `bfd_fdopenr'
   8354 ......................
   8355 
   8356 *Synopsis*
   8357      bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
   8358    *Description*
   8359 `bfd_fdopenr' is to `bfd_fopenr' much like `fdopen' is to `fopen'.  It
   8360 opens a BFD on a file already described by the FD supplied.
   8361 
   8362    When the file is later `bfd_close'd, the file descriptor will be
   8363 closed.  If the caller desires that this file descriptor be cached by
   8364 BFD (opened as needed, closed as needed to free descriptors for other
   8365 opens), with the supplied FD used as an initial file descriptor (but
   8366 subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the
   8367 returned BFD.  The default is to assume no caching; the file descriptor
   8368 will remain open until `bfd_close', and will not be affected by BFD
   8369 operations on other files.
   8370 
   8371    Possible errors are `bfd_error_no_memory',
   8372 `bfd_error_invalid_target' and `bfd_error_system_call'.
   8373 
   8374    On error, FD is closed.
   8375 
   8376    A copy of the FILENAME argument is stored in the newly created BFD.
   8377 It can be accessed via the bfd_get_filename() macro.
   8378 
   8379 2.14.1.4 `bfd_openstreamr'
   8380 ..........................
   8381 
   8382 *Synopsis*
   8383      bfd *bfd_openstreamr (const char * filename, const char * target, void * stream);
   8384    *Description*
   8385 Open a BFD for read access on an existing stdio stream.  When the BFD
   8386 is passed to `bfd_close', the stream will be closed.
   8387 
   8388    A copy of the FILENAME argument is stored in the newly created BFD.
   8389 It can be accessed via the bfd_get_filename() macro.
   8390 
   8391 2.14.1.5 `bfd_openr_iovec'
   8392 ..........................
   8393 
   8394 *Synopsis*
   8395      bfd *bfd_openr_iovec (const char *filename, const char *target,
   8396          void *(*open_func) (struct bfd *nbfd,
   8397          void *open_closure),
   8398          void *open_closure,
   8399          file_ptr (*pread_func) (struct bfd *nbfd,
   8400          void *stream,
   8401          void *buf,
   8402          file_ptr nbytes,
   8403          file_ptr offset),
   8404          int (*close_func) (struct bfd *nbfd,
   8405          void *stream),
   8406          int (*stat_func) (struct bfd *abfd,
   8407          void *stream,
   8408          struct stat *sb));
   8409    *Description*
   8410 Create and return a BFD backed by a read-only STREAM.  The STREAM is
   8411 created using OPEN_FUNC, accessed using PREAD_FUNC and destroyed using
   8412 CLOSE_FUNC.
   8413 
   8414    Calls `bfd_find_target', so TARGET is interpreted as by that
   8415 function.
   8416 
   8417    Calls OPEN_FUNC (which can call `bfd_zalloc' and `bfd_get_filename')
   8418 to obtain the read-only stream backing the BFD.  OPEN_FUNC either
   8419 succeeds returning the non-`NULL' STREAM, or fails returning `NULL'
   8420 (setting `bfd_error').
   8421 
   8422    Calls PREAD_FUNC to request NBYTES of data from STREAM starting at
   8423 OFFSET (e.g., via a call to `bfd_read').  PREAD_FUNC either succeeds
   8424 returning the number of bytes read (which can be less than NBYTES when
   8425 end-of-file), or fails returning -1 (setting `bfd_error').
   8426 
   8427    Calls CLOSE_FUNC when the BFD is later closed using `bfd_close'.
   8428 CLOSE_FUNC either succeeds returning 0, or fails returning -1 (setting
   8429 `bfd_error').
   8430 
   8431    Calls STAT_FUNC to fill in a stat structure for bfd_stat,
   8432 bfd_get_size, and bfd_get_mtime calls.  STAT_FUNC returns 0 on success,
   8433 or returns -1 on failure (setting `bfd_error').
   8434 
   8435    If `bfd_openr_iovec' returns `NULL' then an error has occurred.
   8436 Possible errors are `bfd_error_no_memory', `bfd_error_invalid_target'
   8437 and `bfd_error_system_call'.
   8438 
   8439    A copy of the FILENAME argument is stored in the newly created BFD.
   8440 It can be accessed via the bfd_get_filename() macro.
   8441 
   8442 2.14.1.6 `bfd_openw'
   8443 ....................
   8444 
   8445 *Synopsis*
   8446      bfd *bfd_openw (const char *filename, const char *target);
   8447    *Description*
   8448 Create a BFD, associated with file FILENAME, using the file format
   8449 TARGET, and return a pointer to it.
   8450 
   8451    Possible errors are `bfd_error_system_call', `bfd_error_no_memory',
   8452 `bfd_error_invalid_target'.
   8453 
   8454    A copy of the FILENAME argument is stored in the newly created BFD.
   8455 It can be accessed via the bfd_get_filename() macro.
   8456 
   8457 2.14.1.7 `bfd_close'
   8458 ....................
   8459 
   8460 *Synopsis*
   8461      bfd_boolean bfd_close (bfd *abfd);
   8462    *Description*
   8463 Close a BFD. If the BFD was open for writing, then pending operations
   8464 are completed and the file written out and closed.  If the created file
   8465 is executable, then `chmod' is called to mark it as such.
   8466 
   8467    All memory attached to the BFD is released.
   8468 
   8469    The file descriptor associated with the BFD is closed (even if it
   8470 was passed in to BFD by `bfd_fdopenr').
   8471 
   8472    *Returns*
   8473 `TRUE' is returned if all is ok, otherwise `FALSE'.
   8474 
   8475 2.14.1.8 `bfd_close_all_done'
   8476 .............................
   8477 
   8478 *Synopsis*
   8479      bfd_boolean bfd_close_all_done (bfd *);
   8480    *Description*
   8481 Close a BFD.  Differs from `bfd_close' since it does not complete any
   8482 pending operations.  This routine would be used if the application had
   8483 just used BFD for swapping and didn't want to use any of the writing
   8484 code.
   8485 
   8486    If the created file is executable, then `chmod' is called to mark it
   8487 as such.
   8488 
   8489    All memory attached to the BFD is released.
   8490 
   8491    *Returns*
   8492 `TRUE' is returned if all is ok, otherwise `FALSE'.
   8493 
   8494 2.14.1.9 `bfd_create'
   8495 .....................
   8496 
   8497 *Synopsis*
   8498      bfd *bfd_create (const char *filename, bfd *templ);
   8499    *Description*
   8500 Create a new BFD in the manner of `bfd_openw', but without opening a
   8501 file. The new BFD takes the target from the target used by TEMPL. The
   8502 format is always set to `bfd_object'.
   8503 
   8504    A copy of the FILENAME argument is stored in the newly created BFD.
   8505 It can be accessed via the bfd_get_filename() macro.
   8506 
   8507 2.14.1.10 `bfd_make_writable'
   8508 .............................
   8509 
   8510 *Synopsis*
   8511      bfd_boolean bfd_make_writable (bfd *abfd);
   8512    *Description*
   8513 Takes a BFD as created by `bfd_create' and converts it into one like as
   8514 returned by `bfd_openw'.  It does this by converting the BFD to
   8515 BFD_IN_MEMORY.  It's assumed that you will call `bfd_make_readable' on
   8516 this bfd later.
   8517 
   8518    *Returns*
   8519 `TRUE' is returned if all is ok, otherwise `FALSE'.
   8520 
   8521 2.14.1.11 `bfd_make_readable'
   8522 .............................
   8523 
   8524 *Synopsis*
   8525      bfd_boolean bfd_make_readable (bfd *abfd);
   8526    *Description*
   8527 Takes a BFD as created by `bfd_create' and `bfd_make_writable' and
   8528 converts it into one like as returned by `bfd_openr'.  It does this by
   8529 writing the contents out to the memory buffer, then reversing the
   8530 direction.
   8531 
   8532    *Returns*
   8533 `TRUE' is returned if all is ok, otherwise `FALSE'.
   8534 
   8535 2.14.1.12 `bfd_alloc'
   8536 .....................
   8537 
   8538 *Synopsis*
   8539      void *bfd_alloc (bfd *abfd, bfd_size_type wanted);
   8540    *Description*
   8541 Allocate a block of WANTED bytes of memory attached to `abfd' and
   8542 return a pointer to it.
   8543 
   8544 2.14.1.13 `bfd_alloc2'
   8545 ......................
   8546 
   8547 *Synopsis*
   8548      void *bfd_alloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size);
   8549    *Description*
   8550 Allocate a block of NMEMB elements of SIZE bytes each of memory
   8551 attached to `abfd' and return a pointer to it.
   8552 
   8553 2.14.1.14 `bfd_zalloc'
   8554 ......................
   8555 
   8556 *Synopsis*
   8557      void *bfd_zalloc (bfd *abfd, bfd_size_type wanted);
   8558    *Description*
   8559 Allocate a block of WANTED bytes of zeroed memory attached to `abfd'
   8560 and return a pointer to it.
   8561 
   8562 2.14.1.15 `bfd_zalloc2'
   8563 .......................
   8564 
   8565 *Synopsis*
   8566      void *bfd_zalloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size);
   8567    *Description*
   8568 Allocate a block of NMEMB elements of SIZE bytes each of zeroed memory
   8569 attached to `abfd' and return a pointer to it.
   8570 
   8571 2.14.1.16 `bfd_calc_gnu_debuglink_crc32'
   8572 ........................................
   8573 
   8574 *Synopsis*
   8575      unsigned long bfd_calc_gnu_debuglink_crc32
   8576         (unsigned long crc, const unsigned char *buf, bfd_size_type len);
   8577    *Description*
   8578 Computes a CRC value as used in the .gnu_debuglink section.  Advances
   8579 the previously computed CRC value by computing and adding in the crc32
   8580 for LEN bytes of BUF.
   8581 
   8582    *Returns*
   8583 Return the updated CRC32 value.
   8584 
   8585 2.14.1.17 `bfd_get_debug_link_info'
   8586 ...................................
   8587 
   8588 *Synopsis*
   8589      char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
   8590    *Description*
   8591 Fetch the filename and CRC32 value for any separate debuginfo
   8592 associated with ABFD.  Return NULL if no such info found, otherwise
   8593 return filename and update CRC32_OUT.  The returned filename is
   8594 allocated with `malloc'; freeing it is the responsibility of the caller.
   8595 
   8596 2.14.1.18 `bfd_get_alt_debug_link_info'
   8597 .......................................
   8598 
   8599 *Synopsis*
   8600      char *bfd_get_alt_debug_link_info (bfd * abfd,
   8601          bfd_size_type *buildid_len,
   8602          bfd_byte **buildid_out);
   8603    *Description*
   8604 Fetch the filename and BuildID value for any alternate debuginfo
   8605 associated with ABFD.  Return NULL if no such info found, otherwise
   8606 return filename and update BUILDID_LEN and BUILDID_OUT.  The returned
   8607 filename and build_id are allocated with `malloc'; freeing them is the
   8608 responsibility of the caller.
   8609 
   8610 2.14.1.19 `separate_debug_file_exists'
   8611 ......................................
   8612 
   8613 *Synopsis*
   8614      bfd_boolean separate_debug_file_exists
   8615         (char *name, unsigned long crc32);
   8616    *Description*
   8617 Checks to see if NAME is a file and if its contents match CRC32.
   8618 
   8619 2.14.1.20 `separate_alt_debug_file_exists'
   8620 ..........................................
   8621 
   8622 *Synopsis*
   8623      bfd_boolean separate_alt_debug_file_exists
   8624         (char *name, unsigned long crc32);
   8625    *Description*
   8626 Checks to see if NAME is a file and if its BuildID matches BUILDID.
   8627 
   8628 2.14.1.21 `find_separate_debug_file'
   8629 ....................................
   8630 
   8631 *Synopsis*
   8632      char *find_separate_debug_file (bfd *abfd);
   8633    *Description*
   8634 Searches ABFD for a section called SECTION_NAME which is expected to
   8635 contain a reference to a file containing separate debugging
   8636 information.  The function scans various locations in the filesystem,
   8637 including the file tree rooted at DEBUG_FILE_DIRECTORY, and returns the
   8638 first matching filename that it finds.  If CHECK_CRC is TRUE then the
   8639 contents of the file must also match the CRC value contained in
   8640 SECTION_NAME.  Returns NULL if no valid file could be found.
   8641 
   8642 2.14.1.22 `bfd_follow_gnu_debuglink'
   8643 ....................................
   8644 
   8645 *Synopsis*
   8646      char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
   8647    *Description*
   8648 Takes a BFD and searches it for a .gnu_debuglink section.  If this
   8649 section is found, it examines the section for the name and checksum of
   8650 a '.debug' file containing auxiliary debugging information.  It then
   8651 searches the filesystem for this .debug file in some standard
   8652 locations, including the directory tree rooted at DIR, and if found
   8653 returns the full filename.
   8654 
   8655    If DIR is NULL, it will search a default path configured into libbfd
   8656 at build time.  [XXX this feature is not currently implemented].
   8657 
   8658    *Returns*
   8659 `NULL' on any errors or failure to locate the .debug file, otherwise a
   8660 pointer to a heap-allocated string containing the filename.  The caller
   8661 is responsible for freeing this string.
   8662 
   8663 2.14.1.23 `bfd_follow_gnu_debugaltlink'
   8664 .......................................
   8665 
   8666 *Synopsis*
   8667      char *bfd_follow_gnu_debugaltlink (bfd *abfd, const char *dir);
   8668    *Description*
   8669 Takes a BFD and searches it for a .gnu_debugaltlink section.  If this
   8670 section is found, it examines the section for the name of a file
   8671 containing auxiliary debugging information.  It then searches the
   8672 filesystem for this file in a set of standard locations, including the
   8673 directory tree rooted at DIR, and if found returns the full filename.
   8674 
   8675    If DIR is NULL, it will search a default path configured into libbfd
   8676 at build time.  [FIXME: This feature is not currently implemented].
   8677 
   8678    *Returns*
   8679 `NULL' on any errors or failure to locate the debug file, otherwise a
   8680 pointer to a heap-allocated string containing the filename.  The caller
   8681 is responsible for freeing this string.
   8682 
   8683 2.14.1.24 `bfd_create_gnu_debuglink_section'
   8684 ............................................
   8685 
   8686 *Synopsis*
   8687      struct bfd_section *bfd_create_gnu_debuglink_section
   8688         (bfd *abfd, const char *filename);
   8689    *Description*
   8690 Takes a BFD and adds a .gnu_debuglink section to it.  The section is
   8691 sized to be big enough to contain a link to the specified FILENAME.
   8692 
   8693    *Returns*
   8694 A pointer to the new section is returned if all is ok.  Otherwise
   8695 `NULL' is returned and bfd_error is set.
   8696 
   8697 2.14.1.25 `bfd_fill_in_gnu_debuglink_section'
   8698 .............................................
   8699 
   8700 *Synopsis*
   8701      bfd_boolean bfd_fill_in_gnu_debuglink_section
   8702         (bfd *abfd, struct bfd_section *sect, const char *filename);
   8703    *Description*
   8704 Takes a BFD and containing a .gnu_debuglink section SECT and fills in
   8705 the contents of the section to contain a link to the specified
   8706 FILENAME.  The filename should be relative to the current directory.
   8707 
   8708    *Returns*
   8709 `TRUE' is returned if all is ok.  Otherwise `FALSE' is returned and
   8710 bfd_error is set.
   8711 
   8712 
   8713 File: bfd.info,  Node: Internal,  Next: File Caching,  Prev: Opening and Closing,  Up: BFD front end
   8714 
   8715 2.15 Implementation details
   8716 ===========================
   8717 
   8718 2.15.1 Internal functions
   8719 -------------------------
   8720 
   8721 *Description*
   8722 These routines are used within BFD.  They are not intended for export,
   8723 but are documented here for completeness.
   8724 
   8725 2.15.1.1 `bfd_write_bigendian_4byte_int'
   8726 ........................................
   8727 
   8728 *Synopsis*
   8729      bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
   8730    *Description*
   8731 Write a 4 byte integer I to the output BFD ABFD, in big endian order
   8732 regardless of what else is going on.  This is useful in archives.
   8733 
   8734 2.15.1.2 `bfd_put_size'
   8735 .......................
   8736 
   8737 2.15.1.3 `bfd_get_size'
   8738 .......................
   8739 
   8740 *Description*
   8741 These macros as used for reading and writing raw data in sections; each
   8742 access (except for bytes) is vectored through the target format of the
   8743 BFD and mangled accordingly. The mangling performs any necessary endian
   8744 translations and removes alignment restrictions.  Note that types
   8745 accepted and returned by these macros are identical so they can be
   8746 swapped around in macros--for example, `libaout.h' defines `GET_WORD'
   8747 to either `bfd_get_32' or `bfd_get_64'.
   8748 
   8749    In the put routines, VAL must be a `bfd_vma'.  If we are on a system
   8750 without prototypes, the caller is responsible for making sure that is
   8751 true, with a cast if necessary.  We don't cast them in the macro
   8752 definitions because that would prevent `lint' or `gcc -Wall' from
   8753 detecting sins such as passing a pointer.  To detect calling these with
   8754 less than a `bfd_vma', use `gcc -Wconversion' on a host with 64 bit
   8755 `bfd_vma''s.
   8756 
   8757      /* Byte swapping macros for user section data.  */
   8758 
   8759      #define bfd_put_8(abfd, val, ptr) \
   8760        ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
   8761      #define bfd_put_signed_8 \
   8762        bfd_put_8
   8763      #define bfd_get_8(abfd, ptr) \
   8764        (*(const unsigned char *) (ptr) & 0xff)
   8765      #define bfd_get_signed_8(abfd, ptr) \
   8766        (((*(const unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
   8767 
   8768      #define bfd_put_16(abfd, val, ptr) \
   8769        BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
   8770      #define bfd_put_signed_16 \
   8771        bfd_put_16
   8772      #define bfd_get_16(abfd, ptr) \
   8773        BFD_SEND (abfd, bfd_getx16, (ptr))
   8774      #define bfd_get_signed_16(abfd, ptr) \
   8775        BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
   8776 
   8777      #define bfd_put_32(abfd, val, ptr) \
   8778        BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
   8779      #define bfd_put_signed_32 \
   8780        bfd_put_32
   8781      #define bfd_get_32(abfd, ptr) \
   8782        BFD_SEND (abfd, bfd_getx32, (ptr))
   8783      #define bfd_get_signed_32(abfd, ptr) \
   8784        BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
   8785 
   8786      #define bfd_put_64(abfd, val, ptr) \
   8787        BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
   8788      #define bfd_put_signed_64 \
   8789        bfd_put_64
   8790      #define bfd_get_64(abfd, ptr) \
   8791        BFD_SEND (abfd, bfd_getx64, (ptr))
   8792      #define bfd_get_signed_64(abfd, ptr) \
   8793        BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
   8794 
   8795      #define bfd_get(bits, abfd, ptr)                       \
   8796        ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr)       \
   8797         : (bits) == 16 ? bfd_get_16 (abfd, ptr)             \
   8798         : (bits) == 32 ? bfd_get_32 (abfd, ptr)             \
   8799         : (bits) == 64 ? bfd_get_64 (abfd, ptr)             \
   8800         : (abort (), (bfd_vma) - 1))
   8801 
   8802      #define bfd_put(bits, abfd, val, ptr)                  \
   8803        ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)           \
   8804         : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)                \
   8805         : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)                \
   8806         : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)                \
   8807         : (abort (), (void) 0))
   8808 
   8809 2.15.1.4 `bfd_h_put_size'
   8810 .........................
   8811 
   8812 *Description*
   8813 These macros have the same function as their `bfd_get_x' brethren,
   8814 except that they are used for removing information for the header
   8815 records of object files. Believe it or not, some object files keep
   8816 their header records in big endian order and their data in little
   8817 endian order.
   8818 
   8819      /* Byte swapping macros for file header data.  */
   8820 
   8821      #define bfd_h_put_8(abfd, val, ptr) \
   8822        bfd_put_8 (abfd, val, ptr)
   8823      #define bfd_h_put_signed_8(abfd, val, ptr) \
   8824        bfd_put_8 (abfd, val, ptr)
   8825      #define bfd_h_get_8(abfd, ptr) \
   8826        bfd_get_8 (abfd, ptr)
   8827      #define bfd_h_get_signed_8(abfd, ptr) \
   8828        bfd_get_signed_8 (abfd, ptr)
   8829 
   8830      #define bfd_h_put_16(abfd, val, ptr) \
   8831        BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
   8832      #define bfd_h_put_signed_16 \
   8833        bfd_h_put_16
   8834      #define bfd_h_get_16(abfd, ptr) \
   8835        BFD_SEND (abfd, bfd_h_getx16, (ptr))
   8836      #define bfd_h_get_signed_16(abfd, ptr) \
   8837        BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
   8838 
   8839      #define bfd_h_put_32(abfd, val, ptr) \
   8840        BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
   8841      #define bfd_h_put_signed_32 \
   8842        bfd_h_put_32
   8843      #define bfd_h_get_32(abfd, ptr) \
   8844        BFD_SEND (abfd, bfd_h_getx32, (ptr))
   8845      #define bfd_h_get_signed_32(abfd, ptr) \
   8846        BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
   8847 
   8848      #define bfd_h_put_64(abfd, val, ptr) \
   8849        BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
   8850      #define bfd_h_put_signed_64 \
   8851        bfd_h_put_64
   8852      #define bfd_h_get_64(abfd, ptr) \
   8853        BFD_SEND (abfd, bfd_h_getx64, (ptr))
   8854      #define bfd_h_get_signed_64(abfd, ptr) \
   8855        BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
   8856 
   8857      /* Aliases for the above, which should eventually go away.  */
   8858 
   8859      #define H_PUT_64  bfd_h_put_64
   8860      #define H_PUT_32  bfd_h_put_32
   8861      #define H_PUT_16  bfd_h_put_16
   8862      #define H_PUT_8   bfd_h_put_8
   8863      #define H_PUT_S64 bfd_h_put_signed_64
   8864      #define H_PUT_S32 bfd_h_put_signed_32
   8865      #define H_PUT_S16 bfd_h_put_signed_16
   8866      #define H_PUT_S8  bfd_h_put_signed_8
   8867      #define H_GET_64  bfd_h_get_64
   8868      #define H_GET_32  bfd_h_get_32
   8869      #define H_GET_16  bfd_h_get_16
   8870      #define H_GET_8   bfd_h_get_8
   8871      #define H_GET_S64 bfd_h_get_signed_64
   8872      #define H_GET_S32 bfd_h_get_signed_32
   8873      #define H_GET_S16 bfd_h_get_signed_16
   8874      #define H_GET_S8  bfd_h_get_signed_8
   8875 
   8876 2.15.1.5 `bfd_log2'
   8877 ...................
   8878 
   8879 *Synopsis*
   8880      unsigned int bfd_log2 (bfd_vma x);
   8881    *Description*
   8882 Return the log base 2 of the value supplied, rounded up.  E.g., an X of
   8883 1025 returns 11.  A X of 0 returns 0.
   8884 
   8885 
   8886 File: bfd.info,  Node: File Caching,  Next: Linker Functions,  Prev: Internal,  Up: BFD front end
   8887 
   8888 2.16 File caching
   8889 =================
   8890 
   8891 The file caching mechanism is embedded within BFD and allows the
   8892 application to open as many BFDs as it wants without regard to the
   8893 underlying operating system's file descriptor limit (often as low as 20
   8894 open files).  The module in `cache.c' maintains a least recently used
   8895 list of `bfd_cache_max_open' files, and exports the name
   8896 `bfd_cache_lookup', which runs around and makes sure that the required
   8897 BFD is open. If not, then it chooses a file to close, closes it and
   8898 opens the one wanted, returning its file handle.
   8899 
   8900 2.16.1 Caching functions
   8901 ------------------------
   8902 
   8903 2.16.1.1 `bfd_cache_init'
   8904 .........................
   8905 
   8906 *Synopsis*
   8907      bfd_boolean bfd_cache_init (bfd *abfd);
   8908    *Description*
   8909 Add a newly opened BFD to the cache.
   8910 
   8911 2.16.1.2 `bfd_cache_close'
   8912 ..........................
   8913 
   8914 *Synopsis*
   8915      bfd_boolean bfd_cache_close (bfd *abfd);
   8916    *Description*
   8917 Remove the BFD ABFD from the cache. If the attached file is open, then
   8918 close it too.
   8919 
   8920    *Returns*
   8921 `FALSE' is returned if closing the file fails, `TRUE' is returned if
   8922 all is well.
   8923 
   8924 2.16.1.3 `bfd_cache_close_all'
   8925 ..............................
   8926 
   8927 *Synopsis*
   8928      bfd_boolean bfd_cache_close_all (void);
   8929    *Description*
   8930 Remove all BFDs from the cache. If the attached file is open, then
   8931 close it too.
   8932 
   8933    *Returns*
   8934 `FALSE' is returned if closing one of the file fails, `TRUE' is
   8935 returned if all is well.
   8936 
   8937 2.16.1.4 `bfd_open_file'
   8938 ........................
   8939 
   8940 *Synopsis*
   8941      FILE* bfd_open_file (bfd *abfd);
   8942    *Description*
   8943 Call the OS to open a file for ABFD.  Return the `FILE *' (possibly
   8944 `NULL') that results from this operation.  Set up the BFD so that
   8945 future accesses know the file is open. If the `FILE *' returned is
   8946 `NULL', then it won't have been put in the cache, so it won't have to
   8947 be removed from it.
   8948 
   8949 
   8950 File: bfd.info,  Node: Linker Functions,  Next: Hash Tables,  Prev: File Caching,  Up: BFD front end
   8951 
   8952 2.17 Linker Functions
   8953 =====================
   8954 
   8955 The linker uses three special entry points in the BFD target vector.
   8956 It is not necessary to write special routines for these entry points
   8957 when creating a new BFD back end, since generic versions are provided.
   8958 However, writing them can speed up linking and make it use
   8959 significantly less runtime memory.
   8960 
   8961    The first routine creates a hash table used by the other routines.
   8962 The second routine adds the symbols from an object file to the hash
   8963 table.  The third routine takes all the object files and links them
   8964 together to create the output file.  These routines are designed so
   8965 that the linker proper does not need to know anything about the symbols
   8966 in the object files that it is linking.  The linker merely arranges the
   8967 sections as directed by the linker script and lets BFD handle the
   8968 details of symbols and relocs.
   8969 
   8970    The second routine and third routines are passed a pointer to a
   8971 `struct bfd_link_info' structure (defined in `bfdlink.h') which holds
   8972 information relevant to the link, including the linker hash table
   8973 (which was created by the first routine) and a set of callback
   8974 functions to the linker proper.
   8975 
   8976    The generic linker routines are in `linker.c', and use the header
   8977 file `genlink.h'.  As of this writing, the only back ends which have
   8978 implemented versions of these routines are a.out (in `aoutx.h') and
   8979 ECOFF (in `ecoff.c').  The a.out routines are used as examples
   8980 throughout this section.
   8981 
   8982 * Menu:
   8983 
   8984 * Creating a Linker Hash Table::
   8985 * Adding Symbols to the Hash Table::
   8986 * Performing the Final Link::
   8987 
   8988 
   8989 File: bfd.info,  Node: Creating a Linker Hash Table,  Next: Adding Symbols to the Hash Table,  Prev: Linker Functions,  Up: Linker Functions
   8990 
   8991 2.17.1 Creating a linker hash table
   8992 -----------------------------------
   8993 
   8994 The linker routines must create a hash table, which must be derived
   8995 from `struct bfd_link_hash_table' described in `bfdlink.c'.  *Note Hash
   8996 Tables::, for information on how to create a derived hash table.  This
   8997 entry point is called using the target vector of the linker output file.
   8998 
   8999    The `_bfd_link_hash_table_create' entry point must allocate and
   9000 initialize an instance of the desired hash table.  If the back end does
   9001 not require any additional information to be stored with the entries in
   9002 the hash table, the entry point may simply create a `struct
   9003 bfd_link_hash_table'.  Most likely, however, some additional
   9004 information will be needed.
   9005 
   9006    For example, with each entry in the hash table the a.out linker
   9007 keeps the index the symbol has in the final output file (this index
   9008 number is used so that when doing a relocatable link the symbol index
   9009 used in the output file can be quickly filled in when copying over a
   9010 reloc).  The a.out linker code defines the required structures and
   9011 functions for a hash table derived from `struct bfd_link_hash_table'.
   9012 The a.out linker hash table is created by the function
   9013 `NAME(aout,link_hash_table_create)'; it simply allocates space for the
   9014 hash table, initializes it, and returns a pointer to it.
   9015 
   9016    When writing the linker routines for a new back end, you will
   9017 generally not know exactly which fields will be required until you have
   9018 finished.  You should simply create a new hash table which defines no
   9019 additional fields, and then simply add fields as they become necessary.
   9020 
   9021 
   9022 File: bfd.info,  Node: Adding Symbols to the Hash Table,  Next: Performing the Final Link,  Prev: Creating a Linker Hash Table,  Up: Linker Functions
   9023 
   9024 2.17.2 Adding symbols to the hash table
   9025 ---------------------------------------
   9026 
   9027 The linker proper will call the `_bfd_link_add_symbols' entry point for
   9028 each object file or archive which is to be linked (typically these are
   9029 the files named on the command line, but some may also come from the
   9030 linker script).  The entry point is responsible for examining the file.
   9031 For an object file, BFD must add any relevant symbol information to
   9032 the hash table.  For an archive, BFD must determine which elements of
   9033 the archive should be used and adding them to the link.
   9034 
   9035    The a.out version of this entry point is
   9036 `NAME(aout,link_add_symbols)'.
   9037 
   9038 * Menu:
   9039 
   9040 * Differing file formats::
   9041 * Adding symbols from an object file::
   9042 * Adding symbols from an archive::
   9043 
   9044 
   9045 File: bfd.info,  Node: Differing file formats,  Next: Adding symbols from an object file,  Prev: Adding Symbols to the Hash Table,  Up: Adding Symbols to the Hash Table
   9046 
   9047 2.17.2.1 Differing file formats
   9048 ...............................
   9049 
   9050 Normally all the files involved in a link will be of the same format,
   9051 but it is also possible to link together different format object files,
   9052 and the back end must support that.  The `_bfd_link_add_symbols' entry
   9053 point is called via the target vector of the file to be added.  This
   9054 has an important consequence: the function may not assume that the hash
   9055 table is the type created by the corresponding
   9056 `_bfd_link_hash_table_create' vector.  All the `_bfd_link_add_symbols'
   9057 function can assume about the hash table is that it is derived from
   9058 `struct bfd_link_hash_table'.
   9059 
   9060    Sometimes the `_bfd_link_add_symbols' function must store some
   9061 information in the hash table entry to be used by the `_bfd_final_link'
   9062 function.  In such a case the output bfd xvec must be checked to make
   9063 sure that the hash table was created by an object file of the same
   9064 format.
   9065 
   9066    The `_bfd_final_link' routine must be prepared to handle a hash
   9067 entry without any extra information added by the
   9068 `_bfd_link_add_symbols' function.  A hash entry without extra
   9069 information will also occur when the linker script directs the linker
   9070 to create a symbol.  Note that, regardless of how a hash table entry is
   9071 added, all the fields will be initialized to some sort of null value by
   9072 the hash table entry initialization function.
   9073 
   9074    See `ecoff_link_add_externals' for an example of how to check the
   9075 output bfd before saving information (in this case, the ECOFF external
   9076 symbol debugging information) in a hash table entry.
   9077 
   9078 
   9079 File: bfd.info,  Node: Adding symbols from an object file,  Next: Adding symbols from an archive,  Prev: Differing file formats,  Up: Adding Symbols to the Hash Table
   9080 
   9081 2.17.2.2 Adding symbols from an object file
   9082 ...........................................
   9083 
   9084 When the `_bfd_link_add_symbols' routine is passed an object file, it
   9085 must add all externally visible symbols in that object file to the hash
   9086 table.  The actual work of adding the symbol to the hash table is
   9087 normally handled by the function `_bfd_generic_link_add_one_symbol'.
   9088 The `_bfd_link_add_symbols' routine is responsible for reading all the
   9089 symbols from the object file and passing the correct information to
   9090 `_bfd_generic_link_add_one_symbol'.
   9091 
   9092    The `_bfd_link_add_symbols' routine should not use
   9093 `bfd_canonicalize_symtab' to read the symbols.  The point of providing
   9094 this routine is to avoid the overhead of converting the symbols into
   9095 generic `asymbol' structures.
   9096 
   9097    `_bfd_generic_link_add_one_symbol' handles the details of combining
   9098 common symbols, warning about multiple definitions, and so forth.  It
   9099 takes arguments which describe the symbol to add, notably symbol flags,
   9100 a section, and an offset.  The symbol flags include such things as
   9101 `BSF_WEAK' or `BSF_INDIRECT'.  The section is a section in the object
   9102 file, or something like `bfd_und_section_ptr' for an undefined symbol
   9103 or `bfd_com_section_ptr' for a common symbol.
   9104 
   9105    If the `_bfd_final_link' routine is also going to need to read the
   9106 symbol information, the `_bfd_link_add_symbols' routine should save it
   9107 somewhere attached to the object file BFD.  However, the information
   9108 should only be saved if the `keep_memory' field of the `info' argument
   9109 is TRUE, so that the `-no-keep-memory' linker switch is effective.
   9110 
   9111    The a.out function which adds symbols from an object file is
   9112 `aout_link_add_object_symbols', and most of the interesting work is in
   9113 `aout_link_add_symbols'.  The latter saves pointers to the hash tables
   9114 entries created by `_bfd_generic_link_add_one_symbol' indexed by symbol
   9115 number, so that the `_bfd_final_link' routine does not have to call the
   9116 hash table lookup routine to locate the entry.
   9117 
   9118 
   9119 File: bfd.info,  Node: Adding symbols from an archive,  Prev: Adding symbols from an object file,  Up: Adding Symbols to the Hash Table
   9120 
   9121 2.17.2.3 Adding symbols from an archive
   9122 .......................................
   9123 
   9124 When the `_bfd_link_add_symbols' routine is passed an archive, it must
   9125 look through the symbols defined by the archive and decide which
   9126 elements of the archive should be included in the link.  For each such
   9127 element it must call the `add_archive_element' linker callback, and it
   9128 must add the symbols from the object file to the linker hash table.
   9129 (The callback may in fact indicate that a replacement BFD should be
   9130 used, in which case the symbols from that BFD should be added to the
   9131 linker hash table instead.)
   9132 
   9133    In most cases the work of looking through the symbols in the archive
   9134 should be done by the `_bfd_generic_link_add_archive_symbols' function.
   9135 `_bfd_generic_link_add_archive_symbols' is passed a function to call to
   9136 make the final decision about adding an archive element to the link and
   9137 to do the actual work of adding the symbols to the linker hash table.
   9138 If the element is to be included, the `add_archive_element' linker
   9139 callback routine must be called with the element as an argument, and
   9140 the element's symbols must be added to the linker hash table just as
   9141 though the element had itself been passed to the
   9142 `_bfd_link_add_symbols' function.
   9143 
   9144    When the a.out `_bfd_link_add_symbols' function receives an archive,
   9145 it calls `_bfd_generic_link_add_archive_symbols' passing
   9146 `aout_link_check_archive_element' as the function argument.
   9147 `aout_link_check_archive_element' calls `aout_link_check_ar_symbols'.
   9148 If the latter decides to add the element (an element is only added if
   9149 it provides a real, non-common, definition for a previously undefined
   9150 or common symbol) it calls the `add_archive_element' callback and then
   9151 `aout_link_check_archive_element' calls `aout_link_add_symbols' to
   9152 actually add the symbols to the linker hash table - possibly those of a
   9153 substitute BFD, if the `add_archive_element' callback avails itself of
   9154 that option.
   9155 
   9156    The ECOFF back end is unusual in that it does not normally call
   9157 `_bfd_generic_link_add_archive_symbols', because ECOFF archives already
   9158 contain a hash table of symbols.  The ECOFF back end searches the
   9159 archive itself to avoid the overhead of creating a new hash table.
   9160 
   9161 
   9162 File: bfd.info,  Node: Performing the Final Link,  Prev: Adding Symbols to the Hash Table,  Up: Linker Functions
   9163 
   9164 2.17.3 Performing the final link
   9165 --------------------------------
   9166 
   9167 When all the input files have been processed, the linker calls the
   9168 `_bfd_final_link' entry point of the output BFD.  This routine is
   9169 responsible for producing the final output file, which has several
   9170 aspects.  It must relocate the contents of the input sections and copy
   9171 the data into the output sections.  It must build an output symbol
   9172 table including any local symbols from the input files and the global
   9173 symbols from the hash table.  When producing relocatable output, it must
   9174 modify the input relocs and write them into the output file.  There may
   9175 also be object format dependent work to be done.
   9176 
   9177    The linker will also call the `write_object_contents' entry point
   9178 when the BFD is closed.  The two entry points must work together in
   9179 order to produce the correct output file.
   9180 
   9181    The details of how this works are inevitably dependent upon the
   9182 specific object file format.  The a.out `_bfd_final_link' routine is
   9183 `NAME(aout,final_link)'.
   9184 
   9185 * Menu:
   9186 
   9187 * Information provided by the linker::
   9188 * Relocating the section contents::
   9189 * Writing the symbol table::
   9190 
   9191 
   9192 File: bfd.info,  Node: Information provided by the linker,  Next: Relocating the section contents,  Prev: Performing the Final Link,  Up: Performing the Final Link
   9193 
   9194 2.17.3.1 Information provided by the linker
   9195 ...........................................
   9196 
   9197 Before the linker calls the `_bfd_final_link' entry point, it sets up
   9198 some data structures for the function to use.
   9199 
   9200    The `input_bfds' field of the `bfd_link_info' structure will point
   9201 to a list of all the input files included in the link.  These files are
   9202 linked through the `link.next' field of the `bfd' structure.
   9203 
   9204    Each section in the output file will have a list of `link_order'
   9205 structures attached to the `map_head.link_order' field (the
   9206 `link_order' structure is defined in `bfdlink.h').  These structures
   9207 describe how to create the contents of the output section in terms of
   9208 the contents of various input sections, fill constants, and,
   9209 eventually, other types of information.  They also describe relocs that
   9210 must be created by the BFD backend, but do not correspond to any input
   9211 file; this is used to support -Ur, which builds constructors while
   9212 generating a relocatable object file.
   9213 
   9214 
   9215 File: bfd.info,  Node: Relocating the section contents,  Next: Writing the symbol table,  Prev: Information provided by the linker,  Up: Performing the Final Link
   9216 
   9217 2.17.3.2 Relocating the section contents
   9218 ........................................
   9219 
   9220 The `_bfd_final_link' function should look through the `link_order'
   9221 structures attached to each section of the output file.  Each
   9222 `link_order' structure should either be handled specially, or it should
   9223 be passed to the function `_bfd_default_link_order' which will do the
   9224 right thing (`_bfd_default_link_order' is defined in `linker.c').
   9225 
   9226    For efficiency, a `link_order' of type `bfd_indirect_link_order'
   9227 whose associated section belongs to a BFD of the same format as the
   9228 output BFD must be handled specially.  This type of `link_order'
   9229 describes part of an output section in terms of a section belonging to
   9230 one of the input files.  The `_bfd_final_link' function should read the
   9231 contents of the section and any associated relocs, apply the relocs to
   9232 the section contents, and write out the modified section contents.  If
   9233 performing a relocatable link, the relocs themselves must also be
   9234 modified and written out.
   9235 
   9236    The functions `_bfd_relocate_contents' and
   9237 `_bfd_final_link_relocate' provide some general support for performing
   9238 the actual relocations, notably overflow checking.  Their arguments
   9239 include information about the symbol the relocation is against and a
   9240 `reloc_howto_type' argument which describes the relocation to perform.
   9241 These functions are defined in `reloc.c'.
   9242 
   9243    The a.out function which handles reading, relocating, and writing
   9244 section contents is `aout_link_input_section'.  The actual relocation
   9245 is done in `aout_link_input_section_std' and
   9246 `aout_link_input_section_ext'.
   9247 
   9248 
   9249 File: bfd.info,  Node: Writing the symbol table,  Prev: Relocating the section contents,  Up: Performing the Final Link
   9250 
   9251 2.17.3.3 Writing the symbol table
   9252 .................................
   9253 
   9254 The `_bfd_final_link' function must gather all the symbols in the input
   9255 files and write them out.  It must also write out all the symbols in
   9256 the global hash table.  This must be controlled by the `strip' and
   9257 `discard' fields of the `bfd_link_info' structure.
   9258 
   9259    The local symbols of the input files will not have been entered into
   9260 the linker hash table.  The `_bfd_final_link' routine must consider
   9261 each input file and include the symbols in the output file.  It may be
   9262 convenient to do this when looking through the `link_order' structures,
   9263 or it may be done by stepping through the `input_bfds' list.
   9264 
   9265    The `_bfd_final_link' routine must also traverse the global hash
   9266 table to gather all the externally visible symbols.  It is possible
   9267 that most of the externally visible symbols may be written out when
   9268 considering the symbols of each input file, but it is still necessary
   9269 to traverse the hash table since the linker script may have defined
   9270 some symbols that are not in any of the input files.
   9271 
   9272    The `strip' field of the `bfd_link_info' structure controls which
   9273 symbols are written out.  The possible values are listed in
   9274 `bfdlink.h'.  If the value is `strip_some', then the `keep_hash' field
   9275 of the `bfd_link_info' structure is a hash table of symbols to keep;
   9276 each symbol should be looked up in this hash table, and only symbols
   9277 which are present should be included in the output file.
   9278 
   9279    If the `strip' field of the `bfd_link_info' structure permits local
   9280 symbols to be written out, the `discard' field is used to further
   9281 controls which local symbols are included in the output file.  If the
   9282 value is `discard_l', then all local symbols which begin with a certain
   9283 prefix are discarded; this is controlled by the
   9284 `bfd_is_local_label_name' entry point.
   9285 
   9286    The a.out backend handles symbols by calling
   9287 `aout_link_write_symbols' on each input BFD and then traversing the
   9288 global hash table with the function `aout_link_write_other_symbol'.  It
   9289 builds a string table while writing out the symbols, which is written
   9290 to the output file at the end of `NAME(aout,final_link)'.
   9291 
   9292 2.17.3.4 `bfd_link_split_section'
   9293 .................................
   9294 
   9295 *Synopsis*
   9296      bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
   9297    *Description*
   9298 Return nonzero if SEC should be split during a reloceatable or final
   9299 link.
   9300      #define bfd_link_split_section(abfd, sec) \
   9301             BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
   9302 
   9303 2.17.3.5 `bfd_section_already_linked'
   9304 .....................................
   9305 
   9306 *Synopsis*
   9307      bfd_boolean bfd_section_already_linked (bfd *abfd,
   9308          asection *sec,
   9309          struct bfd_link_info *info);
   9310    *Description*
   9311 Check if DATA has been already linked during a reloceatable or final
   9312 link.  Return TRUE if it has.
   9313      #define bfd_section_already_linked(abfd, sec, info) \
   9314             BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
   9315 
   9316 2.17.3.6 `bfd_generic_define_common_symbol'
   9317 ...........................................
   9318 
   9319 *Synopsis*
   9320      bfd_boolean bfd_generic_define_common_symbol
   9321         (bfd *output_bfd, struct bfd_link_info *info,
   9322          struct bfd_link_hash_entry *h);
   9323    *Description*
   9324 Convert common symbol H into a defined symbol.  Return TRUE on success
   9325 and FALSE on failure.
   9326      #define bfd_define_common_symbol(output_bfd, info, h) \
   9327             BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h))
   9328 
   9329 2.17.3.7 `bfd_find_version_for_sym'
   9330 ...................................
   9331 
   9332 *Synopsis*
   9333      struct bfd_elf_version_tree * bfd_find_version_for_sym
   9334         (struct bfd_elf_version_tree *verdefs,
   9335          const char *sym_name, bfd_boolean *hide);
   9336    *Description*
   9337 Search an elf version script tree for symbol versioning info and export
   9338 / don't-export status for a given symbol.  Return non-NULL on success
   9339 and NULL on failure; also sets the output `hide' boolean parameter.
   9340 
   9341 2.17.3.8 `bfd_hide_sym_by_version'
   9342 ..................................
   9343 
   9344 *Synopsis*
   9345      bfd_boolean bfd_hide_sym_by_version
   9346         (struct bfd_elf_version_tree *verdefs, const char *sym_name);
   9347    *Description*
   9348 Search an elf version script tree for symbol versioning info for a
   9349 given symbol.  Return TRUE if the symbol is hidden.
   9350 
   9351 
   9352 File: bfd.info,  Node: Hash Tables,  Prev: Linker Functions,  Up: BFD front end
   9353 
   9354 2.18 Hash Tables
   9355 ================
   9356 
   9357 BFD provides a simple set of hash table functions.  Routines are
   9358 provided to initialize a hash table, to free a hash table, to look up a
   9359 string in a hash table and optionally create an entry for it, and to
   9360 traverse a hash table.  There is currently no routine to delete an
   9361 string from a hash table.
   9362 
   9363    The basic hash table does not permit any data to be stored with a
   9364 string.  However, a hash table is designed to present a base class from
   9365 which other types of hash tables may be derived.  These derived types
   9366 may store additional information with the string.  Hash tables were
   9367 implemented in this way, rather than simply providing a data pointer in
   9368 a hash table entry, because they were designed for use by the linker
   9369 back ends.  The linker may create thousands of hash table entries, and
   9370 the overhead of allocating private data and storing and following
   9371 pointers becomes noticeable.
   9372 
   9373    The basic hash table code is in `hash.c'.
   9374 
   9375 * Menu:
   9376 
   9377 * Creating and Freeing a Hash Table::
   9378 * Looking Up or Entering a String::
   9379 * Traversing a Hash Table::
   9380 * Deriving a New Hash Table Type::
   9381 
   9382 
   9383 File: bfd.info,  Node: Creating and Freeing a Hash Table,  Next: Looking Up or Entering a String,  Prev: Hash Tables,  Up: Hash Tables
   9384 
   9385 2.18.1 Creating and freeing a hash table
   9386 ----------------------------------------
   9387 
   9388 To create a hash table, create an instance of a `struct bfd_hash_table'
   9389 (defined in `bfd.h') and call `bfd_hash_table_init' (if you know
   9390 approximately how many entries you will need, the function
   9391 `bfd_hash_table_init_n', which takes a SIZE argument, may be used).
   9392 `bfd_hash_table_init' returns `FALSE' if some sort of error occurs.
   9393 
   9394    The function `bfd_hash_table_init' take as an argument a function to
   9395 use to create new entries.  For a basic hash table, use the function
   9396 `bfd_hash_newfunc'.  *Note Deriving a New Hash Table Type::, for why
   9397 you would want to use a different value for this argument.
   9398 
   9399    `bfd_hash_table_init' will create an objalloc which will be used to
   9400 allocate new entries.  You may allocate memory on this objalloc using
   9401 `bfd_hash_allocate'.
   9402 
   9403    Use `bfd_hash_table_free' to free up all the memory that has been
   9404 allocated for a hash table.  This will not free up the `struct
   9405 bfd_hash_table' itself, which you must provide.
   9406 
   9407    Use `bfd_hash_set_default_size' to set the default size of hash
   9408 table to use.
   9409 
   9410 
   9411 File: bfd.info,  Node: Looking Up or Entering a String,  Next: Traversing a Hash Table,  Prev: Creating and Freeing a Hash Table,  Up: Hash Tables
   9412 
   9413 2.18.2 Looking up or entering a string
   9414 --------------------------------------
   9415 
   9416 The function `bfd_hash_lookup' is used both to look up a string in the
   9417 hash table and to create a new entry.
   9418 
   9419    If the CREATE argument is `FALSE', `bfd_hash_lookup' will look up a
   9420 string.  If the string is found, it will returns a pointer to a `struct
   9421 bfd_hash_entry'.  If the string is not found in the table
   9422 `bfd_hash_lookup' will return `NULL'.  You should not modify any of the
   9423 fields in the returns `struct bfd_hash_entry'.
   9424 
   9425    If the CREATE argument is `TRUE', the string will be entered into
   9426 the hash table if it is not already there.  Either way a pointer to a
   9427 `struct bfd_hash_entry' will be returned, either to the existing
   9428 structure or to a newly created one.  In this case, a `NULL' return
   9429 means that an error occurred.
   9430 
   9431    If the CREATE argument is `TRUE', and a new entry is created, the
   9432 COPY argument is used to decide whether to copy the string onto the
   9433 hash table objalloc or not.  If COPY is passed as `FALSE', you must be
   9434 careful not to deallocate or modify the string as long as the hash table
   9435 exists.
   9436 
   9437 
   9438 File: bfd.info,  Node: Traversing a Hash Table,  Next: Deriving a New Hash Table Type,  Prev: Looking Up or Entering a String,  Up: Hash Tables
   9439 
   9440 2.18.3 Traversing a hash table
   9441 ------------------------------
   9442 
   9443 The function `bfd_hash_traverse' may be used to traverse a hash table,
   9444 calling a function on each element.  The traversal is done in a random
   9445 order.
   9446 
   9447    `bfd_hash_traverse' takes as arguments a function and a generic
   9448 `void *' pointer.  The function is called with a hash table entry (a
   9449 `struct bfd_hash_entry *') and the generic pointer passed to
   9450 `bfd_hash_traverse'.  The function must return a `boolean' value, which
   9451 indicates whether to continue traversing the hash table.  If the
   9452 function returns `FALSE', `bfd_hash_traverse' will stop the traversal
   9453 and return immediately.
   9454 
   9455 
   9456 File: bfd.info,  Node: Deriving a New Hash Table Type,  Prev: Traversing a Hash Table,  Up: Hash Tables
   9457 
   9458 2.18.4 Deriving a new hash table type
   9459 -------------------------------------
   9460 
   9461 Many uses of hash tables want to store additional information which
   9462 each entry in the hash table.  Some also find it convenient to store
   9463 additional information with the hash table itself.  This may be done
   9464 using a derived hash table.
   9465 
   9466    Since C is not an object oriented language, creating a derived hash
   9467 table requires sticking together some boilerplate routines with a few
   9468 differences specific to the type of hash table you want to create.
   9469 
   9470    An example of a derived hash table is the linker hash table.  The
   9471 structures for this are defined in `bfdlink.h'.  The functions are in
   9472 `linker.c'.
   9473 
   9474    You may also derive a hash table from an already derived hash table.
   9475 For example, the a.out linker backend code uses a hash table derived
   9476 from the linker hash table.
   9477 
   9478 * Menu:
   9479 
   9480 * Define the Derived Structures::
   9481 * Write the Derived Creation Routine::
   9482 * Write Other Derived Routines::
   9483 
   9484 
   9485 File: bfd.info,  Node: Define the Derived Structures,  Next: Write the Derived Creation Routine,  Prev: Deriving a New Hash Table Type,  Up: Deriving a New Hash Table Type
   9486 
   9487 2.18.4.1 Define the derived structures
   9488 ......................................
   9489 
   9490 You must define a structure for an entry in the hash table, and a
   9491 structure for the hash table itself.
   9492 
   9493    The first field in the structure for an entry in the hash table must
   9494 be of the type used for an entry in the hash table you are deriving
   9495 from.  If you are deriving from a basic hash table this is `struct
   9496 bfd_hash_entry', which is defined in `bfd.h'.  The first field in the
   9497 structure for the hash table itself must be of the type of the hash
   9498 table you are deriving from itself.  If you are deriving from a basic
   9499 hash table, this is `struct bfd_hash_table'.
   9500 
   9501    For example, the linker hash table defines `struct
   9502 bfd_link_hash_entry' (in `bfdlink.h').  The first field, `root', is of
   9503 type `struct bfd_hash_entry'.  Similarly, the first field in `struct
   9504 bfd_link_hash_table', `table', is of type `struct bfd_hash_table'.
   9505 
   9506 
   9507 File: bfd.info,  Node: Write the Derived Creation Routine,  Next: Write Other Derived Routines,  Prev: Define the Derived Structures,  Up: Deriving a New Hash Table Type
   9508 
   9509 2.18.4.2 Write the derived creation routine
   9510 ...........................................
   9511 
   9512 You must write a routine which will create and initialize an entry in
   9513 the hash table.  This routine is passed as the function argument to
   9514 `bfd_hash_table_init'.
   9515 
   9516    In order to permit other hash tables to be derived from the hash
   9517 table you are creating, this routine must be written in a standard way.
   9518 
   9519    The first argument to the creation routine is a pointer to a hash
   9520 table entry.  This may be `NULL', in which case the routine should
   9521 allocate the right amount of space.  Otherwise the space has already
   9522 been allocated by a hash table type derived from this one.
   9523 
   9524    After allocating space, the creation routine must call the creation
   9525 routine of the hash table type it is derived from, passing in a pointer
   9526 to the space it just allocated.  This will initialize any fields used
   9527 by the base hash table.
   9528 
   9529    Finally the creation routine must initialize any local fields for
   9530 the new hash table type.
   9531 
   9532    Here is a boilerplate example of a creation routine.  FUNCTION_NAME
   9533 is the name of the routine.  ENTRY_TYPE is the type of an entry in the
   9534 hash table you are creating.  BASE_NEWFUNC is the name of the creation
   9535 routine of the hash table type your hash table is derived from.
   9536 
   9537      struct bfd_hash_entry *
   9538      FUNCTION_NAME (struct bfd_hash_entry *entry,
   9539                           struct bfd_hash_table *table,
   9540                           const char *string)
   9541      {
   9542        struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry;
   9543 
   9544       /* Allocate the structure if it has not already been allocated by a
   9545          derived class.  */
   9546        if (ret == NULL)
   9547          {
   9548            ret = bfd_hash_allocate (table, sizeof (* ret));
   9549            if (ret == NULL)
   9550              return NULL;
   9551          }
   9552 
   9553       /* Call the allocation method of the base class.  */
   9554        ret = ((ENTRY_TYPE *)
   9555              BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string));
   9556 
   9557       /* Initialize the local fields here.  */
   9558 
   9559        return (struct bfd_hash_entry *) ret;
   9560      }
   9561    *Description*
   9562 The creation routine for the linker hash table, which is in `linker.c',
   9563 looks just like this example.  FUNCTION_NAME is
   9564 `_bfd_link_hash_newfunc'.  ENTRY_TYPE is `struct bfd_link_hash_entry'.
   9565 BASE_NEWFUNC is `bfd_hash_newfunc', the creation routine for a basic
   9566 hash table.
   9567 
   9568    `_bfd_link_hash_newfunc' also initializes the local fields in a
   9569 linker hash table entry: `type', `written' and `next'.
   9570 
   9571 
   9572 File: bfd.info,  Node: Write Other Derived Routines,  Prev: Write the Derived Creation Routine,  Up: Deriving a New Hash Table Type
   9573 
   9574 2.18.4.3 Write other derived routines
   9575 .....................................
   9576 
   9577 You will want to write other routines for your new hash table, as well.
   9578 
   9579    You will want an initialization routine which calls the
   9580 initialization routine of the hash table you are deriving from and
   9581 initializes any other local fields.  For the linker hash table, this is
   9582 `_bfd_link_hash_table_init' in `linker.c'.
   9583 
   9584    You will want a lookup routine which calls the lookup routine of the
   9585 hash table you are deriving from and casts the result.  The linker hash
   9586 table uses `bfd_link_hash_lookup' in `linker.c' (this actually takes an
   9587 additional argument which it uses to decide how to return the looked up
   9588 value).
   9589 
   9590    You may want a traversal routine.  This should just call the
   9591 traversal routine of the hash table you are deriving from with
   9592 appropriate casts.  The linker hash table uses `bfd_link_hash_traverse'
   9593 in `linker.c'.
   9594 
   9595    These routines may simply be defined as macros.  For example, the
   9596 a.out backend linker hash table, which is derived from the linker hash
   9597 table, uses macros for the lookup and traversal routines.  These are
   9598 `aout_link_hash_lookup' and `aout_link_hash_traverse' in aoutx.h.
   9599 
   9600 
   9601 File: bfd.info,  Node: BFD back ends,  Next: GNU Free Documentation License,  Prev: BFD front end,  Up: Top
   9602 
   9603 3 BFD back ends
   9604 ***************
   9605 
   9606 * Menu:
   9607 
   9608 * What to Put Where::
   9609 * aout ::	a.out backends
   9610 * coff ::	coff backends
   9611 * elf  ::	elf backends
   9612 * mmo  ::	mmo backend
   9613 
   9614 
   9615 File: bfd.info,  Node: What to Put Where,  Next: aout,  Prev: BFD back ends,  Up: BFD back ends
   9616 
   9617 3.1 What to Put Where
   9618 =====================
   9619 
   9620 All of BFD lives in one directory.
   9621 
   9622 
   9623 File: bfd.info,  Node: aout,  Next: coff,  Prev: What to Put Where,  Up: BFD back ends
   9624 
   9625 3.2 a.out backends
   9626 ==================
   9627 
   9628 *Description*
   9629 BFD supports a number of different flavours of a.out format, though the
   9630 major differences are only the sizes of the structures on disk, and the
   9631 shape of the relocation information.
   9632 
   9633    The support is split into a basic support file `aoutx.h' and other
   9634 files which derive functions from the base. One derivation file is
   9635 `aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions
   9636 support for sun3, sun4, 386 and 29k a.out files, to create a target
   9637 jump vector for a specific target.
   9638 
   9639    This information is further split out into more specific files for
   9640 each machine, including `sunos.c' for sun3 and sun4, `newsos3.c' for
   9641 the Sony NEWS, and `demo64.c' for a demonstration of a 64 bit a.out
   9642 format.
   9643 
   9644    The base file `aoutx.h' defines general mechanisms for reading and
   9645 writing records to and from disk and various other methods which BFD
   9646 requires. It is included by `aout32.c' and `aout64.c' to form the names
   9647 `aout_32_swap_exec_header_in', `aout_64_swap_exec_header_in', etc.
   9648 
   9649    As an example, this is what goes on to make the back end for a sun4,
   9650 from `aout32.c':
   9651 
   9652             #define ARCH_SIZE 32
   9653             #include "aoutx.h"
   9654 
   9655    Which exports names:
   9656 
   9657             ...
   9658             aout_32_canonicalize_reloc
   9659             aout_32_find_nearest_line
   9660             aout_32_get_lineno
   9661             aout_32_get_reloc_upper_bound
   9662             ...
   9663 
   9664    from `sunos.c':
   9665 
   9666             #define TARGET_NAME "a.out-sunos-big"
   9667             #define VECNAME    sparc_aout_sunos_be_vec
   9668             #include "aoutf1.h"
   9669 
   9670    requires all the names from `aout32.c', and produces the jump vector
   9671 
   9672             sparc_aout_sunos_be_vec
   9673 
   9674    The file `host-aout.c' is a special case.  It is for a large set of
   9675 hosts that use "more or less standard" a.out files, and for which
   9676 cross-debugging is not interesting.  It uses the standard 32-bit a.out
   9677 support routines, but determines the file offsets and addresses of the
   9678 text, data, and BSS sections, the machine architecture and machine
   9679 type, and the entry point address, in a host-dependent manner.  Once
   9680 these values have been determined, generic code is used to handle the
   9681 object file.
   9682 
   9683    When porting it to run on a new system, you must supply:
   9684 
   9685              HOST_PAGE_SIZE
   9686              HOST_SEGMENT_SIZE
   9687              HOST_MACHINE_ARCH       (optional)
   9688              HOST_MACHINE_MACHINE    (optional)
   9689              HOST_TEXT_START_ADDR
   9690              HOST_STACK_END_ADDR
   9691 
   9692    in the file `../include/sys/h-XXX.h' (for your host).  These values,
   9693 plus the structures and macros defined in `a.out.h' on your host
   9694 system, will produce a BFD target that will access ordinary a.out files
   9695 on your host. To configure a new machine to use `host-aout.c', specify:
   9696 
   9697             TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec
   9698             TDEPFILES= host-aout.o trad-core.o
   9699 
   9700    in the `config/XXX.mt' file, and modify `configure.ac' to use the
   9701 `XXX.mt' file (by setting "`bfd_target=XXX'") when your configuration
   9702 is selected.
   9703 
   9704 3.2.1 Relocations
   9705 -----------------
   9706 
   9707 *Description*
   9708 The file `aoutx.h' provides for both the _standard_ and _extended_
   9709 forms of a.out relocation records.
   9710 
   9711    The standard records contain only an address, a symbol index, and a
   9712 type field. The extended records (used on 29ks and sparcs) also have a
   9713 full integer for an addend.
   9714 
   9715 3.2.2 Internal entry points
   9716 ---------------------------
   9717 
   9718 *Description*
   9719 `aoutx.h' exports several routines for accessing the contents of an
   9720 a.out file, which are gathered and exported in turn by various format
   9721 specific files (eg sunos.c).
   9722 
   9723 3.2.2.1 `aout_SIZE_swap_exec_header_in'
   9724 .......................................
   9725 
   9726 *Synopsis*
   9727      void aout_SIZE_swap_exec_header_in,
   9728         (bfd *abfd,
   9729          struct external_exec *bytes,
   9730          struct internal_exec *execp);
   9731    *Description*
   9732 Swap the information in an executable header RAW_BYTES taken from a raw
   9733 byte stream memory image into the internal exec header structure EXECP.
   9734 
   9735 3.2.2.2 `aout_SIZE_swap_exec_header_out'
   9736 ........................................
   9737 
   9738 *Synopsis*
   9739      void aout_SIZE_swap_exec_header_out
   9740         (bfd *abfd,
   9741          struct internal_exec *execp,
   9742          struct external_exec *raw_bytes);
   9743    *Description*
   9744 Swap the information in an internal exec header structure EXECP into
   9745 the buffer RAW_BYTES ready for writing to disk.
   9746 
   9747 3.2.2.3 `aout_SIZE_some_aout_object_p'
   9748 ......................................
   9749 
   9750 *Synopsis*
   9751      const bfd_target *aout_SIZE_some_aout_object_p
   9752         (bfd *abfd,
   9753          struct internal_exec *execp,
   9754          const bfd_target *(*callback_to_real_object_p) (bfd *));
   9755    *Description*
   9756 Some a.out variant thinks that the file open in ABFD checking is an
   9757 a.out file.  Do some more checking, and set up for access if it really
   9758 is.  Call back to the calling environment's "finish up" function just
   9759 before returning, to handle any last-minute setup.
   9760 
   9761 3.2.2.4 `aout_SIZE_mkobject'
   9762 ............................
   9763 
   9764 *Synopsis*
   9765      bfd_boolean aout_SIZE_mkobject, (bfd *abfd);
   9766    *Description*
   9767 Initialize BFD ABFD for use with a.out files.
   9768 
   9769 3.2.2.5 `aout_SIZE_machine_type'
   9770 ................................
   9771 
   9772 *Synopsis*
   9773      enum machine_type  aout_SIZE_machine_type
   9774         (enum bfd_architecture arch,
   9775          unsigned long machine,
   9776          bfd_boolean *unknown);
   9777    *Description*
   9778 Keep track of machine architecture and machine type for a.out's. Return
   9779 the `machine_type' for a particular architecture and machine, or
   9780 `M_UNKNOWN' if that exact architecture and machine can't be represented
   9781 in a.out format.
   9782 
   9783    If the architecture is understood, machine type 0 (default) is
   9784 always understood.
   9785 
   9786 3.2.2.6 `aout_SIZE_set_arch_mach'
   9787 .................................
   9788 
   9789 *Synopsis*
   9790      bfd_boolean aout_SIZE_set_arch_mach,
   9791         (bfd *,
   9792          enum bfd_architecture arch,
   9793          unsigned long machine);
   9794    *Description*
   9795 Set the architecture and the machine of the BFD ABFD to the values ARCH
   9796 and MACHINE.  Verify that ABFD's format can support the architecture
   9797 required.
   9798 
   9799 3.2.2.7 `aout_SIZE_new_section_hook'
   9800 ....................................
   9801 
   9802 *Synopsis*
   9803      bfd_boolean aout_SIZE_new_section_hook,
   9804         (bfd *abfd,
   9805          asection *newsect);
   9806    *Description*
   9807 Called by the BFD in response to a `bfd_make_section' request.
   9808 
   9809 
   9810 File: bfd.info,  Node: coff,  Next: elf,  Prev: aout,  Up: BFD back ends
   9811 
   9812 3.3 coff backends
   9813 =================
   9814 
   9815 BFD supports a number of different flavours of coff format.  The major
   9816 differences between formats are the sizes and alignments of fields in
   9817 structures on disk, and the occasional extra field.
   9818 
   9819    Coff in all its varieties is implemented with a few common files and
   9820 a number of implementation specific files. For example, The 88k bcs
   9821 coff format is implemented in the file `coff-m88k.c'. This file
   9822 `#include's `coff/m88k.h' which defines the external structure of the
   9823 coff format for the 88k, and `coff/internal.h' which defines the
   9824 internal structure. `coff-m88k.c' also defines the relocations used by
   9825 the 88k format *Note Relocations::.
   9826 
   9827    The Intel i960 processor version of coff is implemented in
   9828 `coff-i960.c'. This file has the same structure as `coff-m88k.c',
   9829 except that it includes `coff/i960.h' rather than `coff-m88k.h'.
   9830 
   9831 3.3.1 Porting to a new version of coff
   9832 --------------------------------------
   9833 
   9834 The recommended method is to select from the existing implementations
   9835 the version of coff which is most like the one you want to use.  For
   9836 example, we'll say that i386 coff is the one you select, and that your
   9837 coff flavour is called foo.  Copy `i386coff.c' to `foocoff.c', copy
   9838 `../include/coff/i386.h' to `../include/coff/foo.h', and add the lines
   9839 to `targets.c' and `Makefile.in' so that your new back end is used.
   9840 Alter the shapes of the structures in `../include/coff/foo.h' so that
   9841 they match what you need. You will probably also have to add `#ifdef's
   9842 to the code in `coff/internal.h' and `coffcode.h' if your version of
   9843 coff is too wild.
   9844 
   9845    You can verify that your new BFD backend works quite simply by
   9846 building `objdump' from the `binutils' directory, and making sure that
   9847 its version of what's going on and your host system's idea (assuming it
   9848 has the pretty standard coff dump utility, usually called `att-dump' or
   9849 just `dump') are the same.  Then clean up your code, and send what
   9850 you've done to Cygnus. Then your stuff will be in the next release, and
   9851 you won't have to keep integrating it.
   9852 
   9853 3.3.2 How the coff backend works
   9854 --------------------------------
   9855 
   9856 3.3.2.1 File layout
   9857 ...................
   9858 
   9859 The Coff backend is split into generic routines that are applicable to
   9860 any Coff target and routines that are specific to a particular target.
   9861 The target-specific routines are further split into ones which are
   9862 basically the same for all Coff targets except that they use the
   9863 external symbol format or use different values for certain constants.
   9864 
   9865    The generic routines are in `coffgen.c'.  These routines work for
   9866 any Coff target.  They use some hooks into the target specific code;
   9867 the hooks are in a `bfd_coff_backend_data' structure, one of which
   9868 exists for each target.
   9869 
   9870    The essentially similar target-specific routines are in
   9871 `coffcode.h'.  This header file includes executable C code.  The
   9872 various Coff targets first include the appropriate Coff header file,
   9873 make any special defines that are needed, and then include `coffcode.h'.
   9874 
   9875    Some of the Coff targets then also have additional routines in the
   9876 target source file itself.
   9877 
   9878    For example, `coff-i960.c' includes `coff/internal.h' and
   9879 `coff/i960.h'.  It then defines a few constants, such as `I960', and
   9880 includes `coffcode.h'.  Since the i960 has complex relocation types,
   9881 `coff-i960.c' also includes some code to manipulate the i960 relocs.
   9882 This code is not in `coffcode.h' because it would not be used by any
   9883 other target.
   9884 
   9885 3.3.2.2 Coff long section names
   9886 ...............................
   9887 
   9888 In the standard Coff object format, section names are limited to the
   9889 eight bytes available in the `s_name' field of the `SCNHDR' section
   9890 header structure.  The format requires the field to be NUL-padded, but
   9891 not necessarily NUL-terminated, so the longest section names permitted
   9892 are a full eight characters.
   9893 
   9894    The Microsoft PE variants of the Coff object file format add an
   9895 extension to support the use of long section names.  This extension is
   9896 defined in section 4 of the Microsoft PE/COFF specification (rev 8.1).
   9897 If a section name is too long to fit into the section header's `s_name'
   9898 field, it is instead placed into the string table, and the `s_name'
   9899 field is filled with a slash ("/") followed by the ASCII decimal
   9900 representation of the offset of the full name relative to the string
   9901 table base.
   9902 
   9903    Note that this implies that the extension can only be used in object
   9904 files, as executables do not contain a string table.  The standard
   9905 specifies that long section names from objects emitted into executable
   9906 images are to be truncated.
   9907 
   9908    However, as a GNU extension, BFD can generate executable images that
   9909 contain a string table and long section names.  This would appear to be
   9910 technically valid, as the standard only says that Coff debugging
   9911 information is deprecated, not forbidden, and in practice it works,
   9912 although some tools that parse PE files expecting the MS standard
   9913 format may become confused; `PEview' is one known example.
   9914 
   9915    The functionality is supported in BFD by code implemented under the
   9916 control of the macro `COFF_LONG_SECTION_NAMES'.  If not defined, the
   9917 format does not support long section names in any way.  If defined, it
   9918 is used to initialise a flag, `_bfd_coff_long_section_names', and a
   9919 hook function pointer, `_bfd_coff_set_long_section_names', in the Coff
   9920 backend data structure.  The flag controls the generation of long
   9921 section names in output BFDs at runtime; if it is false, as it will be
   9922 by default when generating an executable image, long section names are
   9923 truncated; if true, the long section names extension is employed.  The
   9924 hook points to a function that allows the value of the flag to be
   9925 altered at runtime, on formats that support long section names at all;
   9926 on other formats it points to a stub that returns an error indication.
   9927 
   9928    With input BFDs, the flag is set according to whether any long
   9929 section names are detected while reading the section headers.  For a
   9930 completely new BFD, the flag is set to the default for the target
   9931 format.  This information can be used by a client of the BFD library
   9932 when deciding what output format to generate, and means that a BFD that
   9933 is opened for read and subsequently converted to a writeable BFD and
   9934 modified in-place will retain whatever format it had on input.
   9935 
   9936    If `COFF_LONG_SECTION_NAMES' is simply defined (blank), or is
   9937 defined to the value "1", then long section names are enabled by
   9938 default; if it is defined to the value zero, they are disabled by
   9939 default (but still accepted in input BFDs).  The header `coffcode.h'
   9940 defines a macro, `COFF_DEFAULT_LONG_SECTION_NAMES', which is used in
   9941 the backends to initialise the backend data structure fields
   9942 appropriately; see the comments for further detail.
   9943 
   9944 3.3.2.3 Bit twiddling
   9945 .....................
   9946 
   9947 Each flavour of coff supported in BFD has its own header file
   9948 describing the external layout of the structures. There is also an
   9949 internal description of the coff layout, in `coff/internal.h'. A major
   9950 function of the coff backend is swapping the bytes and twiddling the
   9951 bits to translate the external form of the structures into the normal
   9952 internal form. This is all performed in the `bfd_swap'_thing_direction
   9953 routines. Some elements are different sizes between different versions
   9954 of coff; it is the duty of the coff version specific include file to
   9955 override the definitions of various packing routines in `coffcode.h'.
   9956 E.g., the size of line number entry in coff is sometimes 16 bits, and
   9957 sometimes 32 bits. `#define'ing `PUT_LNSZ_LNNO' and `GET_LNSZ_LNNO'
   9958 will select the correct one. No doubt, some day someone will find a
   9959 version of coff which has a varying field size not catered to at the
   9960 moment. To port BFD, that person will have to add more `#defines'.
   9961 Three of the bit twiddling routines are exported to `gdb';
   9962 `coff_swap_aux_in', `coff_swap_sym_in' and `coff_swap_lineno_in'. `GDB'
   9963 reads the symbol table on its own, but uses BFD to fix things up.  More
   9964 of the bit twiddlers are exported for `gas'; `coff_swap_aux_out',
   9965 `coff_swap_sym_out', `coff_swap_lineno_out', `coff_swap_reloc_out',
   9966 `coff_swap_filehdr_out', `coff_swap_aouthdr_out',
   9967 `coff_swap_scnhdr_out'. `Gas' currently keeps track of all the symbol
   9968 table and reloc drudgery itself, thereby saving the internal BFD
   9969 overhead, but uses BFD to swap things on the way out, making cross
   9970 ports much safer.  Doing so also allows BFD (and thus the linker) to
   9971 use the same header files as `gas', which makes one avenue to disaster
   9972 disappear.
   9973 
   9974 3.3.2.4 Symbol reading
   9975 ......................
   9976 
   9977 The simple canonical form for symbols used by BFD is not rich enough to
   9978 keep all the information available in a coff symbol table. The back end
   9979 gets around this problem by keeping the original symbol table around,
   9980 "behind the scenes".
   9981 
   9982    When a symbol table is requested (through a call to
   9983 `bfd_canonicalize_symtab'), a request gets through to
   9984 `coff_get_normalized_symtab'. This reads the symbol table from the coff
   9985 file and swaps all the structures inside into the internal form. It
   9986 also fixes up all the pointers in the table (represented in the file by
   9987 offsets from the first symbol in the table) into physical pointers to
   9988 elements in the new internal table. This involves some work since the
   9989 meanings of fields change depending upon context: a field that is a
   9990 pointer to another structure in the symbol table at one moment may be
   9991 the size in bytes of a structure at the next.  Another pass is made
   9992 over the table. All symbols which mark file names (`C_FILE' symbols)
   9993 are modified so that the internal string points to the value in the
   9994 auxent (the real filename) rather than the normal text associated with
   9995 the symbol (`".file"').
   9996 
   9997    At this time the symbol names are moved around. Coff stores all
   9998 symbols less than nine characters long physically within the symbol
   9999 table; longer strings are kept at the end of the file in the string
   10000 table. This pass moves all strings into memory and replaces them with
   10001 pointers to the strings.
   10002 
   10003    The symbol table is massaged once again, this time to create the
   10004 canonical table used by the BFD application. Each symbol is inspected
   10005 in turn, and a decision made (using the `sclass' field) about the
   10006 various flags to set in the `asymbol'.  *Note Symbols::. The generated
   10007 canonical table shares strings with the hidden internal symbol table.
   10008 
   10009    Any linenumbers are read from the coff file too, and attached to the
   10010 symbols which own the functions the linenumbers belong to.
   10011 
   10012 3.3.2.5 Symbol writing
   10013 ......................
   10014 
   10015 Writing a symbol to a coff file which didn't come from a coff file will
   10016 lose any debugging information. The `asymbol' structure remembers the
   10017 BFD from which the symbol was taken, and on output the back end makes
   10018 sure that the same destination target as source target is present.
   10019 
   10020    When the symbols have come from a coff file then all the debugging
   10021 information is preserved.
   10022 
   10023    Symbol tables are provided for writing to the back end in a vector
   10024 of pointers to pointers. This allows applications like the linker to
   10025 accumulate and output large symbol tables without having to do too much
   10026 byte copying.
   10027 
   10028    This function runs through the provided symbol table and patches
   10029 each symbol marked as a file place holder (`C_FILE') to point to the
   10030 next file place holder in the list. It also marks each `offset' field
   10031 in the list with the offset from the first symbol of the current symbol.
   10032 
   10033    Another function of this procedure is to turn the canonical value
   10034 form of BFD into the form used by coff. Internally, BFD expects symbol
   10035 values to be offsets from a section base; so a symbol physically at
   10036 0x120, but in a section starting at 0x100, would have the value 0x20.
   10037 Coff expects symbols to contain their final value, so symbols have
   10038 their values changed at this point to reflect their sum with their
   10039 owning section.  This transformation uses the `output_section' field of
   10040 the `asymbol''s `asection' *Note Sections::.
   10041 
   10042    * `coff_mangle_symbols'
   10043    This routine runs though the provided symbol table and uses the
   10044 offsets generated by the previous pass and the pointers generated when
   10045 the symbol table was read in to create the structured hierarchy
   10046 required by coff. It changes each pointer to a symbol into the index
   10047 into the symbol table of the asymbol.
   10048 
   10049    * `coff_write_symbols'
   10050    This routine runs through the symbol table and patches up the
   10051 symbols from their internal form into the coff way, calls the bit
   10052 twiddlers, and writes out the table to the file.
   10053 
   10054 3.3.2.6 `coff_symbol_type'
   10055 ..........................
   10056 
   10057 *Description*
   10058 The hidden information for an `asymbol' is described in a
   10059 `combined_entry_type':
   10060 
   10061 
   10062      typedef struct coff_ptr_struct
   10063      {
   10064        /* Remembers the offset from the first symbol in the file for
   10065           this symbol. Generated by coff_renumber_symbols.  */
   10066        unsigned int offset;
   10067 
   10068        /* Should the value of this symbol be renumbered.  Used for
   10069           XCOFF C_BSTAT symbols.  Set by coff_slurp_symbol_table.  */
   10070        unsigned int fix_value : 1;
   10071 
   10072        /* Should the tag field of this symbol be renumbered.
   10073           Created by coff_pointerize_aux.  */
   10074        unsigned int fix_tag : 1;
   10075 
   10076        /* Should the endidx field of this symbol be renumbered.
   10077           Created by coff_pointerize_aux.  */
   10078        unsigned int fix_end : 1;
   10079 
   10080        /* Should the x_csect.x_scnlen field be renumbered.
   10081           Created by coff_pointerize_aux.  */
   10082        unsigned int fix_scnlen : 1;
   10083 
   10084        /* Fix up an XCOFF C_BINCL/C_EINCL symbol.  The value is the
   10085           index into the line number entries.  Set by coff_slurp_symbol_table.  */
   10086        unsigned int fix_line : 1;
   10087 
   10088        /* The container for the symbol structure as read and translated
   10089           from the file.  */
   10090        union
   10091        {
   10092          union internal_auxent auxent;
   10093          struct internal_syment syment;
   10094        } u;
   10095 
   10096       /* Selector for the union above.  */
   10097       bfd_boolean is_sym;
   10098      } combined_entry_type;
   10099 
   10100 
   10101      /* Each canonical asymbol really looks like this: */
   10102 
   10103      typedef struct coff_symbol_struct
   10104      {
   10105        /* The actual symbol which the rest of BFD works with */
   10106        asymbol symbol;
   10107 
   10108        /* A pointer to the hidden information for this symbol */
   10109        combined_entry_type *native;
   10110 
   10111        /* A pointer to the linenumber information for this symbol */
   10112        struct lineno_cache_entry *lineno;
   10113 
   10114        /* Have the line numbers been relocated yet ? */
   10115        bfd_boolean done_lineno;
   10116      } coff_symbol_type;
   10117    
   10118 3.3.2.7 `bfd_coff_backend_data'
   10119 ...............................
   10120 
   10121      /* COFF symbol classifications.  */
   10122 
   10123      enum coff_symbol_classification
   10124      {
   10125        /* Global symbol.  */
   10126        COFF_SYMBOL_GLOBAL,
   10127        /* Common symbol.  */
   10128        COFF_SYMBOL_COMMON,
   10129        /* Undefined symbol.  */
   10130        COFF_SYMBOL_UNDEFINED,
   10131        /* Local symbol.  */
   10132        COFF_SYMBOL_LOCAL,
   10133        /* PE section symbol.  */
   10134        COFF_SYMBOL_PE_SECTION
   10135      };
   10136 Special entry points for gdb to swap in coff symbol table parts:
   10137      typedef struct
   10138      {
   10139        void (*_bfd_coff_swap_aux_in)
   10140          (bfd *, void *, int, int, int, int, void *);
   10141 
   10142        void (*_bfd_coff_swap_sym_in)
   10143          (bfd *, void *, void *);
   10144 
   10145        void (*_bfd_coff_swap_lineno_in)
   10146          (bfd *, void *, void *);
   10147 
   10148        unsigned int (*_bfd_coff_swap_aux_out)
   10149          (bfd *, void *, int, int, int, int, void *);
   10150 
   10151        unsigned int (*_bfd_coff_swap_sym_out)
   10152          (bfd *, void *, void *);
   10153 
   10154        unsigned int (*_bfd_coff_swap_lineno_out)
   10155          (bfd *, void *, void *);
   10156 
   10157        unsigned int (*_bfd_coff_swap_reloc_out)
   10158          (bfd *, void *, void *);
   10159 
   10160        unsigned int (*_bfd_coff_swap_filehdr_out)
   10161          (bfd *, void *, void *);
   10162 
   10163        unsigned int (*_bfd_coff_swap_aouthdr_out)
   10164          (bfd *, void *, void *);
   10165 
   10166        unsigned int (*_bfd_coff_swap_scnhdr_out)
   10167          (bfd *, void *, void *);
   10168 
   10169        unsigned int _bfd_filhsz;
   10170        unsigned int _bfd_aoutsz;
   10171        unsigned int _bfd_scnhsz;
   10172        unsigned int _bfd_symesz;
   10173        unsigned int _bfd_auxesz;
   10174        unsigned int _bfd_relsz;
   10175        unsigned int _bfd_linesz;
   10176        unsigned int _bfd_filnmlen;
   10177        bfd_boolean _bfd_coff_long_filenames;
   10178 
   10179        bfd_boolean _bfd_coff_long_section_names;
   10180        bfd_boolean (*_bfd_coff_set_long_section_names)
   10181          (bfd *, int);
   10182 
   10183        unsigned int _bfd_coff_default_section_alignment_power;
   10184        bfd_boolean _bfd_coff_force_symnames_in_strings;
   10185        unsigned int _bfd_coff_debug_string_prefix_length;
   10186        unsigned int _bfd_coff_max_nscns;
   10187 
   10188        void (*_bfd_coff_swap_filehdr_in)
   10189          (bfd *, void *, void *);
   10190 
   10191        void (*_bfd_coff_swap_aouthdr_in)
   10192          (bfd *, void *, void *);
   10193 
   10194        void (*_bfd_coff_swap_scnhdr_in)
   10195          (bfd *, void *, void *);
   10196 
   10197        void (*_bfd_coff_swap_reloc_in)
   10198          (bfd *abfd, void *, void *);
   10199 
   10200        bfd_boolean (*_bfd_coff_bad_format_hook)
   10201          (bfd *, void *);
   10202 
   10203        bfd_boolean (*_bfd_coff_set_arch_mach_hook)
   10204          (bfd *, void *);
   10205 
   10206        void * (*_bfd_coff_mkobject_hook)
   10207          (bfd *, void *, void *);
   10208 
   10209        bfd_boolean (*_bfd_styp_to_sec_flags_hook)
   10210          (bfd *, void *, const char *, asection *, flagword *);
   10211 
   10212        void (*_bfd_set_alignment_hook)
   10213          (bfd *, asection *, void *);
   10214 
   10215        bfd_boolean (*_bfd_coff_slurp_symbol_table)
   10216          (bfd *);
   10217 
   10218        bfd_boolean (*_bfd_coff_symname_in_debug)
   10219          (bfd *, struct internal_syment *);
   10220 
   10221        bfd_boolean (*_bfd_coff_pointerize_aux_hook)
   10222          (bfd *, combined_entry_type *, combined_entry_type *,
   10223                  unsigned int, combined_entry_type *);
   10224 
   10225        bfd_boolean (*_bfd_coff_print_aux)
   10226          (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
   10227                  combined_entry_type *, unsigned int);
   10228 
   10229        void (*_bfd_coff_reloc16_extra_cases)
   10230          (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
   10231                 bfd_byte *, unsigned int *, unsigned int *);
   10232 
   10233        int (*_bfd_coff_reloc16_estimate)
   10234          (bfd *, asection *, arelent *, unsigned int,
   10235                  struct bfd_link_info *);
   10236 
   10237        enum coff_symbol_classification (*_bfd_coff_classify_symbol)
   10238          (bfd *, struct internal_syment *);
   10239 
   10240        bfd_boolean (*_bfd_coff_compute_section_file_positions)
   10241          (bfd *);
   10242 
   10243        bfd_boolean (*_bfd_coff_start_final_link)
   10244          (bfd *, struct bfd_link_info *);
   10245 
   10246        bfd_boolean (*_bfd_coff_relocate_section)
   10247          (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
   10248                  struct internal_reloc *, struct internal_syment *, asection **);
   10249 
   10250        reloc_howto_type *(*_bfd_coff_rtype_to_howto)
   10251          (bfd *, asection *, struct internal_reloc *,
   10252                  struct coff_link_hash_entry *, struct internal_syment *,
   10253                  bfd_vma *);
   10254 
   10255        bfd_boolean (*_bfd_coff_adjust_symndx)
   10256          (bfd *, struct bfd_link_info *, bfd *, asection *,
   10257                  struct internal_reloc *, bfd_boolean *);
   10258 
   10259        bfd_boolean (*_bfd_coff_link_add_one_symbol)
   10260          (struct bfd_link_info *, bfd *, const char *, flagword,
   10261                  asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
   10262                  struct bfd_link_hash_entry **);
   10263 
   10264        bfd_boolean (*_bfd_coff_link_output_has_begun)
   10265          (bfd *, struct coff_final_link_info *);
   10266 
   10267        bfd_boolean (*_bfd_coff_final_link_postscript)
   10268          (bfd *, struct coff_final_link_info *);
   10269 
   10270        bfd_boolean (*_bfd_coff_print_pdata)
   10271          (bfd *, void *);
   10272 
   10273      } bfd_coff_backend_data;
   10274 
   10275      #define coff_backend_info(abfd) \
   10276        ((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
   10277 
   10278      #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \
   10279        ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))
   10280 
   10281      #define bfd_coff_swap_sym_in(a,e,i) \
   10282        ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))
   10283 
   10284      #define bfd_coff_swap_lineno_in(a,e,i) \
   10285        ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))
   10286 
   10287      #define bfd_coff_swap_reloc_out(abfd, i, o) \
   10288        ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))
   10289 
   10290      #define bfd_coff_swap_lineno_out(abfd, i, o) \
   10291        ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))
   10292 
   10293      #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \
   10294        ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))
   10295 
   10296      #define bfd_coff_swap_sym_out(abfd, i,o) \
   10297        ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))
   10298 
   10299      #define bfd_coff_swap_scnhdr_out(abfd, i,o) \
   10300        ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))
   10301 
   10302      #define bfd_coff_swap_filehdr_out(abfd, i,o) \
   10303        ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))
   10304 
   10305      #define bfd_coff_swap_aouthdr_out(abfd, i,o) \
   10306        ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))
   10307 
   10308      #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz)
   10309      #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz)
   10310      #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz)
   10311      #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz)
   10312      #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz)
   10313      #define bfd_coff_relsz(abfd)  (coff_backend_info (abfd)->_bfd_relsz)
   10314      #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz)
   10315      #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
   10316      #define bfd_coff_long_filenames(abfd) \
   10317        (coff_backend_info (abfd)->_bfd_coff_long_filenames)
   10318      #define bfd_coff_long_section_names(abfd) \
   10319        (coff_backend_info (abfd)->_bfd_coff_long_section_names)
   10320      #define bfd_coff_set_long_section_names(abfd, enable) \
   10321        ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable))
   10322      #define bfd_coff_default_section_alignment_power(abfd) \
   10323        (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
   10324      #define bfd_coff_max_nscns(abfd) \
   10325        (coff_backend_info (abfd)->_bfd_coff_max_nscns)
   10326 
   10327      #define bfd_coff_swap_filehdr_in(abfd, i,o) \
   10328        ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
   10329 
   10330      #define bfd_coff_swap_aouthdr_in(abfd, i,o) \
   10331        ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))
   10332 
   10333      #define bfd_coff_swap_scnhdr_in(abfd, i,o) \
   10334        ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))
   10335 
   10336      #define bfd_coff_swap_reloc_in(abfd, i, o) \
   10337        ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))
   10338 
   10339      #define bfd_coff_bad_format_hook(abfd, filehdr) \
   10340        ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))
   10341 
   10342      #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
   10343        ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
   10344      #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
   10345        ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\
   10346         (abfd, filehdr, aouthdr))
   10347 
   10348      #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
   10349        ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
   10350         (abfd, scnhdr, name, section, flags_ptr))
   10351 
   10352      #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
   10353        ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
   10354 
   10355      #define bfd_coff_slurp_symbol_table(abfd)\
   10356        ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))
   10357 
   10358      #define bfd_coff_symname_in_debug(abfd, sym)\
   10359        ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
   10360 
   10361      #define bfd_coff_force_symnames_in_strings(abfd)\
   10362        (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
   10363 
   10364      #define bfd_coff_debug_string_prefix_length(abfd)\
   10365        (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
   10366 
   10367      #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
   10368        ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
   10369         (abfd, file, base, symbol, aux, indaux))
   10370 
   10371      #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
   10372                                           reloc, data, src_ptr, dst_ptr)\
   10373        ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
   10374         (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
   10375 
   10376      #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\
   10377        ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
   10378         (abfd, section, reloc, shrink, link_info))
   10379 
   10380      #define bfd_coff_classify_symbol(abfd, sym)\
   10381        ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
   10382         (abfd, sym))
   10383 
   10384      #define bfd_coff_compute_section_file_positions(abfd)\
   10385        ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
   10386         (abfd))
   10387 
   10388      #define bfd_coff_start_final_link(obfd, info)\
   10389        ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
   10390         (obfd, info))
   10391      #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\
   10392        ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
   10393         (obfd, info, ibfd, o, con, rel, isyms, secs))
   10394      #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\
   10395        ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
   10396         (abfd, sec, rel, h, sym, addendp))
   10397      #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
   10398        ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
   10399         (obfd, info, ibfd, sec, rel, adjustedp))
   10400      #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
   10401                                           value, string, cp, coll, hashp)\
   10402        ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
   10403         (info, abfd, name, flags, section, value, string, cp, coll, hashp))
   10404 
   10405      #define bfd_coff_link_output_has_begun(a,p) \
   10406        ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p))
   10407      #define bfd_coff_final_link_postscript(a,p) \
   10408        ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p))
   10409 
   10410      #define bfd_coff_have_print_pdata(a) \
   10411        (coff_backend_info (a)->_bfd_coff_print_pdata)
   10412      #define bfd_coff_print_pdata(a,p) \
   10413        ((coff_backend_info (a)->_bfd_coff_print_pdata) (a, p))
   10414 
   10415      /* Macro: Returns true if the bfd is a PE executable as opposed to a
   10416         PE object file.  */
   10417      #define bfd_pei_p(abfd) \
   10418        (CONST_STRNEQ ((abfd)->xvec->name, "pei-"))
   10419 
   10420 3.3.2.8 Writing relocations
   10421 ...........................
   10422 
   10423 To write relocations, the back end steps though the canonical
   10424 relocation table and create an `internal_reloc'. The symbol index to
   10425 use is removed from the `offset' field in the symbol table supplied.
   10426 The address comes directly from the sum of the section base address and
   10427 the relocation offset; the type is dug directly from the howto field.
   10428 Then the `internal_reloc' is swapped into the shape of an
   10429 `external_reloc' and written out to disk.
   10430 
   10431 3.3.2.9 Reading linenumbers
   10432 ...........................
   10433 
   10434 Creating the linenumber table is done by reading in the entire coff
   10435 linenumber table, and creating another table for internal use.
   10436 
   10437    A coff linenumber table is structured so that each function is
   10438 marked as having a line number of 0. Each line within the function is
   10439 an offset from the first line in the function. The base of the line
   10440 number information for the table is stored in the symbol associated
   10441 with the function.
   10442 
   10443    Note: The PE format uses line number 0 for a flag indicating a new
   10444 source file.
   10445 
   10446    The information is copied from the external to the internal table,
   10447 and each symbol which marks a function is marked by pointing its...
   10448 
   10449    How does this work ?
   10450 
   10451 3.3.2.10 Reading relocations
   10452 ............................
   10453 
   10454 Coff relocations are easily transformed into the internal BFD form
   10455 (`arelent').
   10456 
   10457    Reading a coff relocation table is done in the following stages:
   10458 
   10459    * Read the entire coff relocation table into memory.
   10460 
   10461    * Process each relocation in turn; first swap it from the external
   10462      to the internal form.
   10463 
   10464    * Turn the symbol referenced in the relocation's symbol index into a
   10465      pointer into the canonical symbol table.  This table is the same
   10466      as the one returned by a call to `bfd_canonicalize_symtab'. The
   10467      back end will call that routine and save the result if a
   10468      canonicalization hasn't been done.
   10469 
   10470    * The reloc index is turned into a pointer to a howto structure, in
   10471      a back end specific way. For instance, the 386 and 960 use the
   10472      `r_type' to directly produce an index into a howto table vector;
   10473      the 88k subtracts a number from the `r_type' field and creates an
   10474      addend field.
   10475 
   10476 
   10477 File: bfd.info,  Node: elf,  Next: mmo,  Prev: coff,  Up: BFD back ends
   10478 
   10479 3.4 ELF backends
   10480 ================
   10481 
   10482 BFD support for ELF formats is being worked on.  Currently, the best
   10483 supported back ends are for sparc and i386 (running svr4 or Solaris 2).
   10484 
   10485    Documentation of the internals of the support code still needs to be
   10486 written.  The code is changing quickly enough that we haven't bothered
   10487 yet.
   10488 
   10489 
   10490 File: bfd.info,  Node: mmo,  Prev: elf,  Up: BFD back ends
   10491 
   10492 3.5 mmo backend
   10493 ===============
   10494 
   10495 The mmo object format is used exclusively together with Professor
   10496 Donald E. Knuth's educational 64-bit processor MMIX.  The simulator
   10497 `mmix' which is available at `http://mmix.cs.hm.edu/src/index.html'
   10498 understands this format.  That package also includes a combined
   10499 assembler and linker called `mmixal'.  The mmo format has no advantages
   10500 feature-wise compared to e.g. ELF.  It is a simple non-relocatable
   10501 object format with no support for archives or debugging information,
   10502 except for symbol value information and line numbers (which is not yet
   10503 implemented in BFD).  See `http://mmix.cs.hm.edu/' for more information
   10504 about MMIX.  The ELF format is used for intermediate object files in
   10505 the BFD implementation.
   10506 
   10507 * Menu:
   10508 
   10509 * File layout::
   10510 * Symbol-table::
   10511 * mmo section mapping::
   10512 
   10513 
   10514 File: bfd.info,  Node: File layout,  Next: Symbol-table,  Prev: mmo,  Up: mmo
   10515 
   10516 3.5.1 File layout
   10517 -----------------
   10518 
   10519 The mmo file contents is not partitioned into named sections as with
   10520 e.g. ELF.  Memory areas is formed by specifying the location of the
   10521 data that follows.  Only the memory area `0x0000...00' to `0x01ff...ff'
   10522 is executable, so it is used for code (and constants) and the area
   10523 `0x2000...00' to `0x20ff...ff' is used for writable data.  *Note mmo
   10524 section mapping::.
   10525 
   10526    There is provision for specifying "special data" of 65536 different
   10527 types.  We use type 80 (decimal), arbitrarily chosen the same as the
   10528 ELF `e_machine' number for MMIX, filling it with section information
   10529 normally found in ELF objects. *Note mmo section mapping::.
   10530 
   10531    Contents is entered as 32-bit words, xor:ed over previous contents,
   10532 always zero-initialized.  A word that starts with the byte `0x98' forms
   10533 a command called a `lopcode', where the next byte distinguished between
   10534 the thirteen lopcodes.  The two remaining bytes, called the `Y' and `Z'
   10535 fields, or the `YZ' field (a 16-bit big-endian number), are used for
   10536 various purposes different for each lopcode.  As documented in
   10537 `http://mmix.cs.hm.edu/doc/mmixal.pdf', the lopcodes are:
   10538 
   10539 `lop_quote'
   10540      0x98000001.  The next word is contents, regardless of whether it
   10541      starts with 0x98 or not.
   10542 
   10543 `lop_loc'
   10544      0x9801YYZZ, where `Z' is 1 or 2.  This is a location directive,
   10545      setting the location for the next data to the next 32-bit word
   10546      (for Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56.  Normally
   10547      `Y' is 0 for the text segment and 2 for the data segment.  Beware
   10548      that the low bits of non- tetrabyte-aligned values are silently
   10549      discarded when being automatically incremented and when storing
   10550      contents (in contrast to e.g. its use as current location when
   10551      followed by lop_fixo et al before the next possibly-quoted
   10552      tetrabyte contents).
   10553 
   10554 `lop_skip'
   10555      0x9802YYZZ.  Increase the current location by `YZ' bytes.
   10556 
   10557 `lop_fixo'
   10558      0x9803YYZZ, where `Z' is 1 or 2.  Store the current location as 64
   10559      bits into the location pointed to by the next 32-bit (Z = 1) or
   10560      64-bit (Z = 2) word, plus Y * 2^56.
   10561 
   10562 `lop_fixr'
   10563      0x9804YYZZ.  `YZ' is stored into the current location plus 2 - 4 *
   10564      YZ.
   10565 
   10566 `lop_fixrx'
   10567      0x980500ZZ.  `Z' is 16 or 24.  A value `L' derived from the
   10568      following 32-bit word are used in a manner similar to `YZ' in
   10569      lop_fixr: it is xor:ed into the current location minus 4 * L.  The
   10570      first byte of the word is 0 or 1.  If it is 1, then L = (LOWEST 24
   10571      BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD).
   10572 
   10573 `lop_file'
   10574      0x9806YYZZ.  `Y' is the file number, `Z' is count of 32-bit words.
   10575      Set the file number to `Y' and the line counter to 0.  The next Z
   10576      * 4 bytes contain the file name, padded with zeros if the count is
   10577      not a multiple of four.  The same `Y' may occur multiple times,
   10578      but `Z' must be 0 for all but the first occurrence.
   10579 
   10580 `lop_line'
   10581      0x9807YYZZ.  `YZ' is the line number.  Together with lop_file, it
   10582      forms the source location for the next 32-bit word.  Note that for
   10583      each non-lopcode 32-bit word, line numbers are assumed incremented
   10584      by one.
   10585 
   10586 `lop_spec'
   10587      0x9808YYZZ.  `YZ' is the type number.  Data until the next lopcode
   10588      other than lop_quote forms special data of type `YZ'.  *Note mmo
   10589      section mapping::.
   10590 
   10591      Other types than 80, (or type 80 with a content that does not
   10592      parse) is stored in sections named `.MMIX.spec_data.N' where N is
   10593      the `YZ'-type.  The flags for such a sections say not to allocate
   10594      or load the data.  The vma is 0.  Contents of multiple occurrences
   10595      of special data N is concatenated to the data of the previous
   10596      lop_spec Ns.  The location in data or code at which the lop_spec
   10597      occurred is lost.
   10598 
   10599 `lop_pre'
   10600      0x980901ZZ.  The first lopcode in a file.  The `Z' field forms the
   10601      length of header information in 32-bit words, where the first word
   10602      tells the time in seconds since `00:00:00 GMT Jan 1 1970'.
   10603 
   10604 `lop_post'
   10605      0x980a00ZZ.  Z > 32.  This lopcode follows after all
   10606      content-generating lopcodes in a program.  The `Z' field denotes
   10607      the value of `rG' at the beginning of the program.  The following
   10608      256 - Z big-endian 64-bit words are loaded into global registers
   10609      `$G' ... `$255'.
   10610 
   10611 `lop_stab'
   10612      0x980b0000.  The next-to-last lopcode in a program.  Must follow
   10613      immediately after the lop_post lopcode and its data.  After this
   10614      lopcode follows all symbols in a compressed format (*note
   10615      Symbol-table::).
   10616 
   10617 `lop_end'
   10618      0x980cYYZZ.  The last lopcode in a program.  It must follow the
   10619      lop_stab lopcode and its data.  The `YZ' field contains the number
   10620      of 32-bit words of symbol table information after the preceding
   10621      lop_stab lopcode.
   10622 
   10623    Note that the lopcode "fixups"; `lop_fixr', `lop_fixrx' and
   10624 `lop_fixo' are not generated by BFD, but are handled.  They are
   10625 generated by `mmixal'.
   10626 
   10627    This trivial one-label, one-instruction file:
   10628 
   10629       :Main TRAP 1,2,3
   10630 
   10631    can be represented this way in mmo:
   10632 
   10633       0x98090101 - lop_pre, one 32-bit word with timestamp.
   10634       <timestamp>
   10635       0x98010002 - lop_loc, text segment, using a 64-bit address.
   10636                    Note that mmixal does not emit this for the file above.
   10637       0x00000000 - Address, high 32 bits.
   10638       0x00000000 - Address, low 32 bits.
   10639       0x98060002 - lop_file, 2 32-bit words for file-name.
   10640       0x74657374 - "test"
   10641       0x2e730000 - ".s\0\0"
   10642       0x98070001 - lop_line, line 1.
   10643       0x00010203 - TRAP 1,2,3
   10644       0x980a00ff - lop_post, setting $255 to 0.
   10645       0x00000000
   10646       0x00000000
   10647       0x980b0000 - lop_stab for ":Main" = 0, serial 1.
   10648       0x203a4040   *Note Symbol-table::.
   10649       0x10404020
   10650       0x4d206120
   10651       0x69016e00
   10652       0x81000000
   10653       0x980c0005 - lop_end; symbol table contained five 32-bit words.
   10654 
   10655 
   10656 File: bfd.info,  Node: Symbol-table,  Next: mmo section mapping,  Prev: File layout,  Up: mmo
   10657 
   10658 3.5.2 Symbol table format
   10659 -------------------------
   10660 
   10661 From mmixal.w (or really, the generated mmixal.tex) in the MMIXware
   10662 package which also contains the `mmix' simulator: "Symbols are stored
   10663 and retrieved by means of a `ternary search trie', following ideas of
   10664 Bentley and Sedgewick. (See ACM-SIAM Symp. on Discrete Algorithms `8'
   10665 (1997), 360-369; R.Sedgewick, `Algorithms in C' (Reading, Mass.
   10666 Addison-Wesley, 1998), `15.4'.)  Each trie node stores a character, and
   10667 there are branches to subtries for the cases where a given character is
   10668 less than, equal to, or greater than the character in the trie.  There
   10669 also is a pointer to a symbol table entry if a symbol ends at the
   10670 current node."
   10671 
   10672    So it's a tree encoded as a stream of bytes.  The stream of bytes
   10673 acts on a single virtual global symbol, adding and removing characters
   10674 and signalling complete symbol points.  Here, we read the stream and
   10675 create symbols at the completion points.
   10676 
   10677    First, there's a control byte `m'.  If any of the listed bits in `m'
   10678 is nonzero, we execute what stands at the right, in the listed order:
   10679 
   10680       (MMO3_LEFT)
   10681       0x40 - Traverse left trie.
   10682              (Read a new command byte and recurse.)
   10683 
   10684       (MMO3_SYMBITS)
   10685       0x2f - Read the next byte as a character and store it in the
   10686              current character position; increment character position.
   10687              Test the bits of `m':
   10688 
   10689              (MMO3_WCHAR)
   10690              0x80 - The character is 16-bit (so read another byte,
   10691                     merge into current character.
   10692 
   10693              (MMO3_TYPEBITS)
   10694              0xf  - We have a complete symbol; parse the type, value
   10695                     and serial number and do what should be done
   10696                     with a symbol.  The type and length information
   10697                     is in j = (m & 0xf).
   10698 
   10699                     (MMO3_REGQUAL_BITS)
   10700                     j == 0xf: A register variable.  The following
   10701                               byte tells which register.
   10702                     j <= 8:   An absolute symbol.  Read j bytes as the
   10703                               big-endian number the symbol equals.
   10704                               A j = 2 with two zero bytes denotes an
   10705                               unknown symbol.
   10706                     j > 8:    As with j <= 8, but add (0x20 << 56)
   10707                               to the value in the following j - 8
   10708                               bytes.
   10709 
   10710                     Then comes the serial number, as a variant of
   10711                     uleb128, but better named ubeb128:
   10712                     Read bytes and shift the previous value left 7
   10713                     (multiply by 128).  Add in the new byte, repeat
   10714                     until a byte has bit 7 set.  The serial number
   10715                     is the computed value minus 128.
   10716 
   10717              (MMO3_MIDDLE)
   10718              0x20 - Traverse middle trie.  (Read a new command byte
   10719                     and recurse.)  Decrement character position.
   10720 
   10721       (MMO3_RIGHT)
   10722       0x10 - Traverse right trie.  (Read a new command byte and
   10723              recurse.)
   10724 
   10725    Let's look again at the `lop_stab' for the trivial file (*note File
   10726 layout::).
   10727 
   10728       0x980b0000 - lop_stab for ":Main" = 0, serial 1.
   10729       0x203a4040
   10730       0x10404020
   10731       0x4d206120
   10732       0x69016e00
   10733       0x81000000
   10734 
   10735    This forms the trivial trie (note that the path between ":" and "M"
   10736 is redundant):
   10737 
   10738       203a     ":"
   10739       40       /
   10740       40      /
   10741       10      \
   10742       40      /
   10743       40     /
   10744       204d  "M"
   10745       2061  "a"
   10746       2069  "i"
   10747       016e  "n" is the last character in a full symbol, and
   10748             with a value represented in one byte.
   10749       00    The value is 0.
   10750       81    The serial number is 1.
   10751 
   10752 
   10753 File: bfd.info,  Node: mmo section mapping,  Prev: Symbol-table,  Up: mmo
   10754 
   10755 3.5.3 mmo section mapping
   10756 -------------------------
   10757 
   10758 The implementation in BFD uses special data type 80 (decimal) to
   10759 encapsulate and describe named sections, containing e.g. debug
   10760 information.  If needed, any datum in the encapsulation will be quoted
   10761 using lop_quote.  First comes a 32-bit word holding the number of
   10762 32-bit words containing the zero-terminated zero-padded segment name.
   10763 After the name there's a 32-bit word holding flags describing the
   10764 section type.  Then comes a 64-bit big-endian word with the section
   10765 length (in bytes), then another with the section start address.
   10766 Depending on the type of section, the contents might follow,
   10767 zero-padded to 32-bit boundary.  For a loadable section (such as data
   10768 or code), the contents might follow at some later point, not
   10769 necessarily immediately, as a lop_loc with the same start address as in
   10770 the section description, followed by the contents.  This in effect
   10771 forms a descriptor that must be emitted before the actual contents.
   10772 Sections described this way must not overlap.
   10773 
   10774    For areas that don't have such descriptors, synthetic sections are
   10775 formed by BFD.  Consecutive contents in the two memory areas
   10776 `0x0000...00' to `0x01ff...ff' and `0x2000...00' to `0x20ff...ff' are
   10777 entered in sections named `.text' and `.data' respectively.  If an area
   10778 is not otherwise described, but would together with a neighboring lower
   10779 area be less than `0x40000000' bytes long, it is joined with the lower
   10780 area and the gap is zero-filled.  For other cases, a new section is
   10781 formed, named `.MMIX.sec.N'.  Here, N is a number, a running count
   10782 through the mmo file, starting at 0.
   10783 
   10784    A loadable section specified as:
   10785 
   10786       .section secname,"ax"
   10787       TETRA 1,2,3,4,-1,-2009
   10788       BYTE 80
   10789 
   10790    and linked to address `0x4', is represented by the sequence:
   10791 
   10792       0x98080050 - lop_spec 80
   10793       0x00000002 - two 32-bit words for the section name
   10794       0x7365636e - "secn"
   10795       0x616d6500 - "ame\0"
   10796       0x00000033 - flags CODE, READONLY, LOAD, ALLOC
   10797       0x00000000 - high 32 bits of section length
   10798       0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits
   10799       0x00000000 - high 32 bits of section address
   10800       0x00000004 - section address is 4
   10801       0x98010002 - 64 bits with address of following data
   10802       0x00000000 - high 32 bits of address
   10803       0x00000004 - low 32 bits: data starts at address 4
   10804       0x00000001 - 1
   10805       0x00000002 - 2
   10806       0x00000003 - 3
   10807       0x00000004 - 4
   10808       0xffffffff - -1
   10809       0xfffff827 - -2009
   10810       0x50000000 - 80 as a byte, padded with zeros.
   10811 
   10812    Note that the lop_spec wrapping does not include the section
   10813 contents.  Compare this to a non-loaded section specified as:
   10814 
   10815       .section thirdsec
   10816       TETRA 200001,100002
   10817       BYTE 38,40
   10818 
   10819    This, when linked to address `0x200000000000001c', is represented by:
   10820 
   10821       0x98080050 - lop_spec 80
   10822       0x00000002 - two 32-bit words for the section name
   10823       0x7365636e - "thir"
   10824       0x616d6500 - "dsec"
   10825       0x00000010 - flag READONLY
   10826       0x00000000 - high 32 bits of section length
   10827       0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits
   10828       0x20000000 - high 32 bits of address
   10829       0x0000001c - low 32 bits of address 0x200000000000001c
   10830       0x00030d41 - 200001
   10831       0x000186a2 - 100002
   10832       0x26280000 - 38, 40 as bytes, padded with zeros
   10833 
   10834    For the latter example, the section contents must not be loaded in
   10835 memory, and is therefore specified as part of the special data.  The
   10836 address is usually unimportant but might provide information for e.g.
   10837 the DWARF 2 debugging format.
   10838 
   10839 
   10840 File: bfd.info,  Node: GNU Free Documentation License,  Next: BFD Index,  Prev: BFD back ends,  Up: Top
   10841 
   10842                      Version 1.3, 3 November 2008
   10843 
   10844      Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
   10845      `http://fsf.org/'
   10846 
   10847      Everyone is permitted to copy and distribute verbatim copies
   10848      of this license document, but changing it is not allowed.
   10849 
   10850   0. PREAMBLE
   10851 
   10852      The purpose of this License is to make a manual, textbook, or other
   10853      functional and useful document "free" in the sense of freedom: to
   10854      assure everyone the effective freedom to copy and redistribute it,
   10855      with or without modifying it, either commercially or
   10856      noncommercially.  Secondarily, this License preserves for the
   10857      author and publisher a way to get credit for their work, while not
   10858      being considered responsible for modifications made by others.
   10859 
   10860      This License is a kind of "copyleft", which means that derivative
   10861      works of the document must themselves be free in the same sense.
   10862      It complements the GNU General Public License, which is a copyleft
   10863      license designed for free software.
   10864 
   10865      We have designed this License in order to use it for manuals for
   10866      free software, because free software needs free documentation: a
   10867      free program should come with manuals providing the same freedoms
   10868      that the software does.  But this License is not limited to
   10869      software manuals; it can be used for any textual work, regardless
   10870      of subject matter or whether it is published as a printed book.
   10871      We recommend this License principally for works whose purpose is
   10872      instruction or reference.
   10873 
   10874   1. APPLICABILITY AND DEFINITIONS
   10875 
   10876      This License applies to any manual or other work, in any medium,
   10877      that contains a notice placed by the copyright holder saying it
   10878      can be distributed under the terms of this License.  Such a notice
   10879      grants a world-wide, royalty-free license, unlimited in duration,
   10880      to use that work under the conditions stated herein.  The
   10881      "Document", below, refers to any such manual or work.  Any member
   10882      of the public is a licensee, and is addressed as "you".  You
   10883      accept the license if you copy, modify or distribute the work in a
   10884      way requiring permission under copyright law.
   10885 
   10886      A "Modified Version" of the Document means any work containing the
   10887      Document or a portion of it, either copied verbatim, or with
   10888      modifications and/or translated into another language.
   10889 
   10890      A "Secondary Section" is a named appendix or a front-matter section
   10891      of the Document that deals exclusively with the relationship of the
   10892      publishers or authors of the Document to the Document's overall
   10893      subject (or to related matters) and contains nothing that could
   10894      fall directly within that overall subject.  (Thus, if the Document
   10895      is in part a textbook of mathematics, a Secondary Section may not
   10896      explain any mathematics.)  The relationship could be a matter of
   10897      historical connection with the subject or with related matters, or
   10898      of legal, commercial, philosophical, ethical or political position
   10899      regarding them.
   10900 
   10901      The "Invariant Sections" are certain Secondary Sections whose
   10902      titles are designated, as being those of Invariant Sections, in
   10903      the notice that says that the Document is released under this
   10904      License.  If a section does not fit the above definition of
   10905      Secondary then it is not allowed to be designated as Invariant.
   10906      The Document may contain zero Invariant Sections.  If the Document
   10907      does not identify any Invariant Sections then there are none.
   10908 
   10909      The "Cover Texts" are certain short passages of text that are
   10910      listed, as Front-Cover Texts or Back-Cover Texts, in the notice
   10911      that says that the Document is released under this License.  A
   10912      Front-Cover Text may be at most 5 words, and a Back-Cover Text may
   10913      be at most 25 words.
   10914 
   10915      A "Transparent" copy of the Document means a machine-readable copy,
   10916      represented in a format whose specification is available to the
   10917      general public, that is suitable for revising the document
   10918      straightforwardly with generic text editors or (for images
   10919      composed of pixels) generic paint programs or (for drawings) some
   10920      widely available drawing editor, and that is suitable for input to
   10921      text formatters or for automatic translation to a variety of
   10922      formats suitable for input to text formatters.  A copy made in an
   10923      otherwise Transparent file format whose markup, or absence of
   10924      markup, has been arranged to thwart or discourage subsequent
   10925      modification by readers is not Transparent.  An image format is
   10926      not Transparent if used for any substantial amount of text.  A
   10927      copy that is not "Transparent" is called "Opaque".
   10928 
   10929      Examples of suitable formats for Transparent copies include plain
   10930      ASCII without markup, Texinfo input format, LaTeX input format,
   10931      SGML or XML using a publicly available DTD, and
   10932      standard-conforming simple HTML, PostScript or PDF designed for
   10933      human modification.  Examples of transparent image formats include
   10934      PNG, XCF and JPG.  Opaque formats include proprietary formats that
   10935      can be read and edited only by proprietary word processors, SGML or
   10936      XML for which the DTD and/or processing tools are not generally
   10937      available, and the machine-generated HTML, PostScript or PDF
   10938      produced by some word processors for output purposes only.
   10939 
   10940      The "Title Page" means, for a printed book, the title page itself,
   10941      plus such following pages as are needed to hold, legibly, the
   10942      material this License requires to appear in the title page.  For
   10943      works in formats which do not have any title page as such, "Title
   10944      Page" means the text near the most prominent appearance of the
   10945      work's title, preceding the beginning of the body of the text.
   10946 
   10947      The "publisher" means any person or entity that distributes copies
   10948      of the Document to the public.
   10949 
   10950      A section "Entitled XYZ" means a named subunit of the Document
   10951      whose title either is precisely XYZ or contains XYZ in parentheses
   10952      following text that translates XYZ in another language.  (Here XYZ
   10953      stands for a specific section name mentioned below, such as
   10954      "Acknowledgements", "Dedications", "Endorsements", or "History".)
   10955      To "Preserve the Title" of such a section when you modify the
   10956      Document means that it remains a section "Entitled XYZ" according
   10957      to this definition.
   10958 
   10959      The Document may include Warranty Disclaimers next to the notice
   10960      which states that this License applies to the Document.  These
   10961      Warranty Disclaimers are considered to be included by reference in
   10962      this License, but only as regards disclaiming warranties: any other
   10963      implication that these Warranty Disclaimers may have is void and
   10964      has no effect on the meaning of this License.
   10965 
   10966   2. VERBATIM COPYING
   10967 
   10968      You may copy and distribute the Document in any medium, either
   10969      commercially or noncommercially, provided that this License, the
   10970      copyright notices, and the license notice saying this License
   10971      applies to the Document are reproduced in all copies, and that you
   10972      add no other conditions whatsoever to those of this License.  You
   10973      may not use technical measures to obstruct or control the reading
   10974      or further copying of the copies you make or distribute.  However,
   10975      you may accept compensation in exchange for copies.  If you
   10976      distribute a large enough number of copies you must also follow
   10977      the conditions in section 3.
   10978 
   10979      You may also lend copies, under the same conditions stated above,
   10980      and you may publicly display copies.
   10981 
   10982   3. COPYING IN QUANTITY
   10983 
   10984      If you publish printed copies (or copies in media that commonly
   10985      have printed covers) of the Document, numbering more than 100, and
   10986      the Document's license notice requires Cover Texts, you must
   10987      enclose the copies in covers that carry, clearly and legibly, all
   10988      these Cover Texts: Front-Cover Texts on the front cover, and
   10989      Back-Cover Texts on the back cover.  Both covers must also clearly
   10990      and legibly identify you as the publisher of these copies.  The
   10991      front cover must present the full title with all words of the
   10992      title equally prominent and visible.  You may add other material
   10993      on the covers in addition.  Copying with changes limited to the
   10994      covers, as long as they preserve the title of the Document and
   10995      satisfy these conditions, can be treated as verbatim copying in
   10996      other respects.
   10997 
   10998      If the required texts for either cover are too voluminous to fit
   10999      legibly, you should put the first ones listed (as many as fit
   11000      reasonably) on the actual cover, and continue the rest onto
   11001      adjacent pages.
   11002 
   11003      If you publish or distribute Opaque copies of the Document
   11004      numbering more than 100, you must either include a
   11005      machine-readable Transparent copy along with each Opaque copy, or
   11006      state in or with each Opaque copy a computer-network location from
   11007      which the general network-using public has access to download
   11008      using public-standard network protocols a complete Transparent
   11009      copy of the Document, free of added material.  If you use the
   11010      latter option, you must take reasonably prudent steps, when you
   11011      begin distribution of Opaque copies in quantity, to ensure that
   11012      this Transparent copy will remain thus accessible at the stated
   11013      location until at least one year after the last time you
   11014      distribute an Opaque copy (directly or through your agents or
   11015      retailers) of that edition to the public.
   11016 
   11017      It is requested, but not required, that you contact the authors of
   11018      the Document well before redistributing any large number of
   11019      copies, to give them a chance to provide you with an updated
   11020      version of the Document.
   11021 
   11022   4. MODIFICATIONS
   11023 
   11024      You may copy and distribute a Modified Version of the Document
   11025      under the conditions of sections 2 and 3 above, provided that you
   11026      release the Modified Version under precisely this License, with
   11027      the Modified Version filling the role of the Document, thus
   11028      licensing distribution and modification of the Modified Version to
   11029      whoever possesses a copy of it.  In addition, you must do these
   11030      things in the Modified Version:
   11031 
   11032        A. Use in the Title Page (and on the covers, if any) a title
   11033           distinct from that of the Document, and from those of
   11034           previous versions (which should, if there were any, be listed
   11035           in the History section of the Document).  You may use the
   11036           same title as a previous version if the original publisher of
   11037           that version gives permission.
   11038 
   11039        B. List on the Title Page, as authors, one or more persons or
   11040           entities responsible for authorship of the modifications in
   11041           the Modified Version, together with at least five of the
   11042           principal authors of the Document (all of its principal
   11043           authors, if it has fewer than five), unless they release you
   11044           from this requirement.
   11045 
   11046        C. State on the Title page the name of the publisher of the
   11047           Modified Version, as the publisher.
   11048 
   11049        D. Preserve all the copyright notices of the Document.
   11050 
   11051        E. Add an appropriate copyright notice for your modifications
   11052           adjacent to the other copyright notices.
   11053 
   11054        F. Include, immediately after the copyright notices, a license
   11055           notice giving the public permission to use the Modified
   11056           Version under the terms of this License, in the form shown in
   11057           the Addendum below.
   11058 
   11059        G. Preserve in that license notice the full lists of Invariant
   11060           Sections and required Cover Texts given in the Document's
   11061           license notice.
   11062 
   11063        H. Include an unaltered copy of this License.
   11064 
   11065        I. Preserve the section Entitled "History", Preserve its Title,
   11066           and add to it an item stating at least the title, year, new
   11067           authors, and publisher of the Modified Version as given on
   11068           the Title Page.  If there is no section Entitled "History" in
   11069           the Document, create one stating the title, year, authors,
   11070           and publisher of the Document as given on its Title Page,
   11071           then add an item describing the Modified Version as stated in
   11072           the previous sentence.
   11073 
   11074        J. Preserve the network location, if any, given in the Document
   11075           for public access to a Transparent copy of the Document, and
   11076           likewise the network locations given in the Document for
   11077           previous versions it was based on.  These may be placed in
   11078           the "History" section.  You may omit a network location for a
   11079           work that was published at least four years before the
   11080           Document itself, or if the original publisher of the version
   11081           it refers to gives permission.
   11082 
   11083        K. For any section Entitled "Acknowledgements" or "Dedications",
   11084           Preserve the Title of the section, and preserve in the
   11085           section all the substance and tone of each of the contributor
   11086           acknowledgements and/or dedications given therein.
   11087 
   11088        L. Preserve all the Invariant Sections of the Document,
   11089           unaltered in their text and in their titles.  Section numbers
   11090           or the equivalent are not considered part of the section
   11091           titles.
   11092 
   11093        M. Delete any section Entitled "Endorsements".  Such a section
   11094           may not be included in the Modified Version.
   11095 
   11096        N. Do not retitle any existing section to be Entitled
   11097           "Endorsements" or to conflict in title with any Invariant
   11098           Section.
   11099 
   11100        O. Preserve any Warranty Disclaimers.
   11101 
   11102      If the Modified Version includes new front-matter sections or
   11103      appendices that qualify as Secondary Sections and contain no
   11104      material copied from the Document, you may at your option
   11105      designate some or all of these sections as invariant.  To do this,
   11106      add their titles to the list of Invariant Sections in the Modified
   11107      Version's license notice.  These titles must be distinct from any
   11108      other section titles.
   11109 
   11110      You may add a section Entitled "Endorsements", provided it contains
   11111      nothing but endorsements of your Modified Version by various
   11112      parties--for example, statements of peer review or that the text
   11113      has been approved by an organization as the authoritative
   11114      definition of a standard.
   11115 
   11116      You may add a passage of up to five words as a Front-Cover Text,
   11117      and a passage of up to 25 words as a Back-Cover Text, to the end
   11118      of the list of Cover Texts in the Modified Version.  Only one
   11119      passage of Front-Cover Text and one of Back-Cover Text may be
   11120      added by (or through arrangements made by) any one entity.  If the
   11121      Document already includes a cover text for the same cover,
   11122      previously added by you or by arrangement made by the same entity
   11123      you are acting on behalf of, you may not add another; but you may
   11124      replace the old one, on explicit permission from the previous
   11125      publisher that added the old one.
   11126 
   11127      The author(s) and publisher(s) of the Document do not by this
   11128      License give permission to use their names for publicity for or to
   11129      assert or imply endorsement of any Modified Version.
   11130 
   11131   5. COMBINING DOCUMENTS
   11132 
   11133      You may combine the Document with other documents released under
   11134      this License, under the terms defined in section 4 above for
   11135      modified versions, provided that you include in the combination
   11136      all of the Invariant Sections of all of the original documents,
   11137      unmodified, and list them all as Invariant Sections of your
   11138      combined work in its license notice, and that you preserve all
   11139      their Warranty Disclaimers.
   11140 
   11141      The combined work need only contain one copy of this License, and
   11142      multiple identical Invariant Sections may be replaced with a single
   11143      copy.  If there are multiple Invariant Sections with the same name
   11144      but different contents, make the title of each such section unique
   11145      by adding at the end of it, in parentheses, the name of the
   11146      original author or publisher of that section if known, or else a
   11147      unique number.  Make the same adjustment to the section titles in
   11148      the list of Invariant Sections in the license notice of the
   11149      combined work.
   11150 
   11151      In the combination, you must combine any sections Entitled
   11152      "History" in the various original documents, forming one section
   11153      Entitled "History"; likewise combine any sections Entitled
   11154      "Acknowledgements", and any sections Entitled "Dedications".  You
   11155      must delete all sections Entitled "Endorsements."
   11156 
   11157   6. COLLECTIONS OF DOCUMENTS
   11158 
   11159      You may make a collection consisting of the Document and other
   11160      documents released under this License, and replace the individual
   11161      copies of this License in the various documents with a single copy
   11162      that is included in the collection, provided that you follow the
   11163      rules of this License for verbatim copying of each of the
   11164      documents in all other respects.
   11165 
   11166      You may extract a single document from such a collection, and
   11167      distribute it individually under this License, provided you insert
   11168      a copy of this License into the extracted document, and follow
   11169      this License in all other respects regarding verbatim copying of
   11170      that document.
   11171 
   11172   7. AGGREGATION WITH INDEPENDENT WORKS
   11173 
   11174      A compilation of the Document or its derivatives with other
   11175      separate and independent documents or works, in or on a volume of
   11176      a storage or distribution medium, is called an "aggregate" if the
   11177      copyright resulting from the compilation is not used to limit the
   11178      legal rights of the compilation's users beyond what the individual
   11179      works permit.  When the Document is included in an aggregate, this
   11180      License does not apply to the other works in the aggregate which
   11181      are not themselves derivative works of the Document.
   11182 
   11183      If the Cover Text requirement of section 3 is applicable to these
   11184      copies of the Document, then if the Document is less than one half
   11185      of the entire aggregate, the Document's Cover Texts may be placed
   11186      on covers that bracket the Document within the aggregate, or the
   11187      electronic equivalent of covers if the Document is in electronic
   11188      form.  Otherwise they must appear on printed covers that bracket
   11189      the whole aggregate.
   11190 
   11191   8. TRANSLATION
   11192 
   11193      Translation is considered a kind of modification, so you may
   11194      distribute translations of the Document under the terms of section
   11195      4.  Replacing Invariant Sections with translations requires special
   11196      permission from their copyright holders, but you may include
   11197      translations of some or all Invariant Sections in addition to the
   11198      original versions of these Invariant Sections.  You may include a
   11199      translation of this License, and all the license notices in the
   11200      Document, and any Warranty Disclaimers, provided that you also
   11201      include the original English version of this License and the
   11202      original versions of those notices and disclaimers.  In case of a
   11203      disagreement between the translation and the original version of
   11204      this License or a notice or disclaimer, the original version will
   11205      prevail.
   11206 
   11207      If a section in the Document is Entitled "Acknowledgements",
   11208      "Dedications", or "History", the requirement (section 4) to
   11209      Preserve its Title (section 1) will typically require changing the
   11210      actual title.
   11211 
   11212   9. TERMINATION
   11213 
   11214      You may not copy, modify, sublicense, or distribute the Document
   11215      except as expressly provided under this License.  Any attempt
   11216      otherwise to copy, modify, sublicense, or distribute it is void,
   11217      and will automatically terminate your rights under this License.
   11218 
   11219      However, if you cease all violation of this License, then your
   11220      license from a particular copyright holder is reinstated (a)
   11221      provisionally, unless and until the copyright holder explicitly
   11222      and finally terminates your license, and (b) permanently, if the
   11223      copyright holder fails to notify you of the violation by some
   11224      reasonable means prior to 60 days after the cessation.
   11225 
   11226      Moreover, your license from a particular copyright holder is
   11227      reinstated permanently if the copyright holder notifies you of the
   11228      violation by some reasonable means, this is the first time you have
   11229      received notice of violation of this License (for any work) from
   11230      that copyright holder, and you cure the violation prior to 30 days
   11231      after your receipt of the notice.
   11232 
   11233      Termination of your rights under this section does not terminate
   11234      the licenses of parties who have received copies or rights from
   11235      you under this License.  If your rights have been terminated and
   11236      not permanently reinstated, receipt of a copy of some or all of
   11237      the same material does not give you any rights to use it.
   11238 
   11239  10. FUTURE REVISIONS OF THIS LICENSE
   11240 
   11241      The Free Software Foundation may publish new, revised versions of
   11242      the GNU Free Documentation License from time to time.  Such new
   11243      versions will be similar in spirit to the present version, but may
   11244      differ in detail to address new problems or concerns.  See
   11245      `http://www.gnu.org/copyleft/'.
   11246 
   11247      Each version of the License is given a distinguishing version
   11248      number.  If the Document specifies that a particular numbered
   11249      version of this License "or any later version" applies to it, you
   11250      have the option of following the terms and conditions either of
   11251      that specified version or of any later version that has been
   11252      published (not as a draft) by the Free Software Foundation.  If
   11253      the Document does not specify a version number of this License,
   11254      you may choose any version ever published (not as a draft) by the
   11255      Free Software Foundation.  If the Document specifies that a proxy
   11256      can decide which future versions of this License can be used, that
   11257      proxy's public statement of acceptance of a version permanently
   11258      authorizes you to choose that version for the Document.
   11259 
   11260  11. RELICENSING
   11261 
   11262      "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
   11263      World Wide Web server that publishes copyrightable works and also
   11264      provides prominent facilities for anybody to edit those works.  A
   11265      public wiki that anybody can edit is an example of such a server.
   11266      A "Massive Multiauthor Collaboration" (or "MMC") contained in the
   11267      site means any set of copyrightable works thus published on the MMC
   11268      site.
   11269 
   11270      "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
   11271      license published by Creative Commons Corporation, a not-for-profit
   11272      corporation with a principal place of business in San Francisco,
   11273      California, as well as future copyleft versions of that license
   11274      published by that same organization.
   11275 
   11276      "Incorporate" means to publish or republish a Document, in whole or
   11277      in part, as part of another Document.
   11278 
   11279      An MMC is "eligible for relicensing" if it is licensed under this
   11280      License, and if all works that were first published under this
   11281      License somewhere other than this MMC, and subsequently
   11282      incorporated in whole or in part into the MMC, (1) had no cover
   11283      texts or invariant sections, and (2) were thus incorporated prior
   11284      to November 1, 2008.
   11285 
   11286      The operator of an MMC Site may republish an MMC contained in the
   11287      site under CC-BY-SA on the same site at any time before August 1,
   11288      2009, provided the MMC is eligible for relicensing.
   11289 
   11290 
   11291 ADDENDUM: How to use this License for your documents
   11292 ====================================================
   11293 
   11294 To use this License in a document you have written, include a copy of
   11295 the License in the document and put the following copyright and license
   11296 notices just after the title page:
   11297 
   11298        Copyright (C)  YEAR  YOUR NAME.
   11299        Permission is granted to copy, distribute and/or modify this document
   11300        under the terms of the GNU Free Documentation License, Version 1.3
   11301        or any later version published by the Free Software Foundation;
   11302        with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
   11303        Texts.  A copy of the license is included in the section entitled ``GNU
   11304        Free Documentation License''.
   11305 
   11306    If you have Invariant Sections, Front-Cover Texts and Back-Cover
   11307 Texts, replace the "with...Texts." line with this:
   11308 
   11309          with the Invariant Sections being LIST THEIR TITLES, with
   11310          the Front-Cover Texts being LIST, and with the Back-Cover Texts
   11311          being LIST.
   11312 
   11313    If you have Invariant Sections without Cover Texts, or some other
   11314 combination of the three, merge those two alternatives to suit the
   11315 situation.
   11316 
   11317    If your document contains nontrivial examples of program code, we
   11318 recommend releasing these examples in parallel under your choice of
   11319 free software license, such as the GNU General Public License, to
   11320 permit their use in free software.
   11321 
   11322 
   11323 File: bfd.info,  Node: BFD Index,  Prev: GNU Free Documentation License,  Up: Top
   11324 
   11325 BFD Index
   11326 *********
   11327 
   11328 [index]
   11329 * Menu:
   11330 
   11331 * _bfd_final_link_relocate:              Relocating the section contents.
   11332                                                              (line   22)
   11333 * _bfd_generic_link_add_archive_symbols: Adding symbols from an archive.
   11334                                                              (line   15)
   11335 * _bfd_generic_link_add_one_symbol:      Adding symbols from an object file.
   11336                                                              (line   19)
   11337 * _bfd_generic_make_empty_symbol:        symbol handling functions.
   11338                                                              (line   92)
   11339 * _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table.
   11340                                                              (line    6)
   11341 * _bfd_link_final_link in target vector: Performing the Final Link.
   11342                                                              (line    6)
   11343 * _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table.
   11344                                                              (line    6)
   11345 * _bfd_relocate_contents:                Relocating the section contents.
   11346                                                              (line   22)
   11347 * aout_SIZE_machine_type:                aout.               (line  147)
   11348 * aout_SIZE_mkobject:                    aout.               (line  139)
   11349 * aout_SIZE_new_section_hook:            aout.               (line  177)
   11350 * aout_SIZE_set_arch_mach:               aout.               (line  164)
   11351 * aout_SIZE_some_aout_object_p:          aout.               (line  125)
   11352 * aout_SIZE_swap_exec_header_in:         aout.               (line  101)
   11353 * aout_SIZE_swap_exec_header_out:        aout.               (line  113)
   11354 * arelent_chain:                         typedef arelent.    (line  336)
   11355 * BFD:                                   Overview.           (line    6)
   11356 * BFD canonical format:                  Canonical format.   (line   11)
   11357 * bfd_alloc:                             Opening and Closing.
   11358                                                              (line  239)
   11359 * bfd_alloc2:                            Opening and Closing.
   11360                                                              (line  248)
   11361 * bfd_alt_mach_code:                     Miscellaneous.      (line  307)
   11362 * bfd_arch_bits_per_address:             Architectures.      (line  598)
   11363 * bfd_arch_bits_per_byte:                Architectures.      (line  590)
   11364 * bfd_arch_default_fill:                 Architectures.      (line  679)
   11365 * bfd_arch_get_compatible:               Architectures.      (line  533)
   11366 * bfd_arch_list:                         Architectures.      (line  524)
   11367 * bfd_arch_mach_octets_per_byte:         Architectures.      (line  667)
   11368 * BFD_ARELOC_BFIN_ADD:                   howto manager.      (line 1127)
   11369 * BFD_ARELOC_BFIN_ADDR:                  howto manager.      (line 1178)
   11370 * BFD_ARELOC_BFIN_AND:                   howto manager.      (line 1148)
   11371 * BFD_ARELOC_BFIN_COMP:                  howto manager.      (line 1169)
   11372 * BFD_ARELOC_BFIN_CONST:                 howto manager.      (line 1124)
   11373 * BFD_ARELOC_BFIN_DIV:                   howto manager.      (line 1136)
   11374 * BFD_ARELOC_BFIN_HWPAGE:                howto manager.      (line 1175)
   11375 * BFD_ARELOC_BFIN_LAND:                  howto manager.      (line 1157)
   11376 * BFD_ARELOC_BFIN_LEN:                   howto manager.      (line 1163)
   11377 * BFD_ARELOC_BFIN_LOR:                   howto manager.      (line 1160)
   11378 * BFD_ARELOC_BFIN_LSHIFT:                howto manager.      (line 1142)
   11379 * BFD_ARELOC_BFIN_MOD:                   howto manager.      (line 1139)
   11380 * BFD_ARELOC_BFIN_MULT:                  howto manager.      (line 1133)
   11381 * BFD_ARELOC_BFIN_NEG:                   howto manager.      (line 1166)
   11382 * BFD_ARELOC_BFIN_OR:                    howto manager.      (line 1151)
   11383 * BFD_ARELOC_BFIN_PAGE:                  howto manager.      (line 1172)
   11384 * BFD_ARELOC_BFIN_PUSH:                  howto manager.      (line 1121)
   11385 * BFD_ARELOC_BFIN_RSHIFT:                howto manager.      (line 1145)
   11386 * BFD_ARELOC_BFIN_SUB:                   howto manager.      (line 1130)
   11387 * BFD_ARELOC_BFIN_XOR:                   howto manager.      (line 1154)
   11388 * bfd_cache_close:                       File Caching.       (line   26)
   11389 * bfd_cache_close_all:                   File Caching.       (line   39)
   11390 * bfd_cache_init:                        File Caching.       (line   18)
   11391 * bfd_calc_gnu_debuglink_crc32:          Opening and Closing.
   11392                                                              (line  275)
   11393 * bfd_canonicalize_reloc:                Miscellaneous.      (line   19)
   11394 * bfd_canonicalize_symtab:               symbol handling functions.
   11395                                                              (line   50)
   11396 * bfd_check_format:                      Formats.            (line   21)
   11397 * bfd_check_format_matches:              Formats.            (line   52)
   11398 * bfd_check_overflow:                    typedef arelent.    (line  348)
   11399 * bfd_close:                             Opening and Closing.
   11400                                                              (line  161)
   11401 * bfd_close_all_done:                    Opening and Closing.
   11402                                                              (line  179)
   11403 * bfd_coff_backend_data:                 coff.               (line  308)
   11404 * bfd_copy_private_bfd_data:             Miscellaneous.      (line  160)
   11405 * bfd_copy_private_header_data:          Miscellaneous.      (line  142)
   11406 * bfd_copy_private_section_data:         section prototypes. (line  278)
   11407 * bfd_copy_private_symbol_data:          symbol handling functions.
   11408                                                              (line  140)
   11409 * bfd_core_file_failing_command:         Core Files.         (line   12)
   11410 * bfd_core_file_failing_signal:          Core Files.         (line   21)
   11411 * bfd_core_file_pid:                     Core Files.         (line   30)
   11412 * bfd_create:                            Opening and Closing.
   11413                                                              (line  198)
   11414 * bfd_create_gnu_debuglink_section:      Opening and Closing.
   11415                                                              (line  387)
   11416 * bfd_decode_symclass:                   symbol handling functions.
   11417                                                              (line  111)
   11418 * bfd_default_arch_struct:               Architectures.      (line  545)
   11419 * bfd_default_compatible:                Architectures.      (line  607)
   11420 * bfd_default_reloc_type_lookup:         howto manager.      (line 3524)
   11421 * bfd_default_scan:                      Architectures.      (line  616)
   11422 * bfd_default_set_arch_mach:             Architectures.      (line  563)
   11423 * bfd_demangle:                          Miscellaneous.      (line  358)
   11424 * bfd_emul_get_commonpagesize:           Miscellaneous.      (line  338)
   11425 * bfd_emul_get_maxpagesize:              Miscellaneous.      (line  318)
   11426 * bfd_emul_set_commonpagesize:           Miscellaneous.      (line  349)
   11427 * bfd_emul_set_maxpagesize:              Miscellaneous.      (line  329)
   11428 * bfd_errmsg:                            Error reporting.    (line   67)
   11429 * bfd_fdopenr:                           Opening and Closing.
   11430                                                              (line   57)
   11431 * bfd_fill_in_gnu_debuglink_section:     Opening and Closing.
   11432                                                              (line  401)
   11433 * bfd_find_target:                       bfd_target.         (line  466)
   11434 * bfd_find_version_for_sym:              Writing the symbol table.
   11435                                                              (line   81)
   11436 * bfd_follow_gnu_debugaltlink:           Opening and Closing.
   11437                                                              (line  367)
   11438 * bfd_follow_gnu_debuglink:              Opening and Closing.
   11439                                                              (line  346)
   11440 * bfd_fopen:                             Opening and Closing.
   11441                                                              (line   12)
   11442 * bfd_format_string:                     Formats.            (line   79)
   11443 * bfd_generic_define_common_symbol:      Writing the symbol table.
   11444                                                              (line   68)
   11445 * bfd_generic_discard_group:             section prototypes. (line  304)
   11446 * bfd_generic_gc_sections:               howto manager.      (line 3555)
   11447 * bfd_generic_get_relocated_section_contents: howto manager. (line 3585)
   11448 * bfd_generic_is_group_section:          section prototypes. (line  296)
   11449 * bfd_generic_lookup_section_flags:      howto manager.      (line 3565)
   11450 * bfd_generic_merge_sections:            howto manager.      (line 3575)
   11451 * bfd_generic_relax_section:             howto manager.      (line 3542)
   11452 * bfd_get_alt_debug_link_info:           Opening and Closing.
   11453                                                              (line  300)
   11454 * bfd_get_arch:                          Architectures.      (line  574)
   11455 * bfd_get_arch_info:                     Architectures.      (line  626)
   11456 * bfd_get_arch_size:                     Miscellaneous.      (line   63)
   11457 * bfd_get_assert_handler:                Error reporting.    (line  150)
   11458 * bfd_get_debug_link_info:               Opening and Closing.
   11459                                                              (line  289)
   11460 * bfd_get_error:                         Error reporting.    (line   48)
   11461 * bfd_get_error_handler:                 Error reporting.    (line  118)
   11462 * bfd_get_gp_size:                       Miscellaneous.      (line  106)
   11463 * bfd_get_linker_section:                section prototypes. (line   36)
   11464 * bfd_get_mach:                          Architectures.      (line  582)
   11465 * bfd_get_mtime:                         Miscellaneous.      (line  409)
   11466 * bfd_get_next_mapent:                   Archives.           (line   58)
   11467 * bfd_get_next_section_by_name:          section prototypes. (line   26)
   11468 * bfd_get_reloc_code_name:               howto manager.      (line 3533)
   11469 * bfd_get_reloc_size:                    typedef arelent.    (line  327)
   11470 * bfd_get_reloc_upper_bound:             Miscellaneous.      (line    9)
   11471 * bfd_get_section_by_name:               section prototypes. (line   17)
   11472 * bfd_get_section_by_name_if:            section prototypes. (line   45)
   11473 * bfd_get_section_contents:              section prototypes. (line  251)
   11474 * bfd_get_sign_extend_vma:               Miscellaneous.      (line   78)
   11475 * bfd_get_size <1>:                      Internal.           (line   25)
   11476 * bfd_get_size:                          Miscellaneous.      (line  418)
   11477 * bfd_get_symtab_upper_bound:            symbol handling functions.
   11478                                                              (line    6)
   11479 * bfd_get_target_info:                   bfd_target.         (line  482)
   11480 * bfd_get_unique_section_name:           section prototypes. (line   64)
   11481 * bfd_h_put_size:                        Internal.           (line   97)
   11482 * bfd_hash_allocate:                     Creating and Freeing a Hash Table.
   11483                                                              (line   17)
   11484 * bfd_hash_lookup:                       Looking Up or Entering a String.
   11485                                                              (line    6)
   11486 * bfd_hash_newfunc:                      Creating and Freeing a Hash Table.
   11487                                                              (line   12)
   11488 * bfd_hash_set_default_size:             Creating and Freeing a Hash Table.
   11489                                                              (line   25)
   11490 * bfd_hash_table_free:                   Creating and Freeing a Hash Table.
   11491                                                              (line   21)
   11492 * bfd_hash_table_init:                   Creating and Freeing a Hash Table.
   11493                                                              (line    6)
   11494 * bfd_hash_table_init_n:                 Creating and Freeing a Hash Table.
   11495                                                              (line    6)
   11496 * bfd_hash_traverse:                     Traversing a Hash Table.
   11497                                                              (line    6)
   11498 * bfd_hide_sym_by_version:               Writing the symbol table.
   11499                                                              (line   93)
   11500 * bfd_init:                              Initialization.     (line   11)
   11501 * bfd_install_relocation:                typedef arelent.    (line  389)
   11502 * bfd_is_local_label:                    symbol handling functions.
   11503                                                              (line   17)
   11504 * bfd_is_local_label_name:               symbol handling functions.
   11505                                                              (line   26)
   11506 * bfd_is_target_special_symbol:          symbol handling functions.
   11507                                                              (line   38)
   11508 * bfd_is_undefined_symclass:             symbol handling functions.
   11509                                                              (line  120)
   11510 * bfd_link_split_section:                Writing the symbol table.
   11511                                                              (line   44)
   11512 * bfd_log2:                              Internal.           (line  164)
   11513 * bfd_lookup_arch:                       Architectures.      (line  634)
   11514 * bfd_make_debug_symbol:                 symbol handling functions.
   11515                                                              (line  102)
   11516 * bfd_make_empty_symbol:                 symbol handling functions.
   11517                                                              (line   78)
   11518 * bfd_make_readable:                     Opening and Closing.
   11519                                                              (line  225)
   11520 * bfd_make_section:                      section prototypes. (line  143)
   11521 * bfd_make_section_anyway:               section prototypes. (line  114)
   11522 * bfd_make_section_anyway_with_flags:    section prototypes. (line   96)
   11523 * bfd_make_section_old_way:              section prototypes. (line   76)
   11524 * bfd_make_section_with_flags:           section prototypes. (line  130)
   11525 * bfd_make_writable:                     Opening and Closing.
   11526                                                              (line  211)
   11527 * bfd_malloc_and_get_section:            section prototypes. (line  268)
   11528 * bfd_map_over_sections:                 section prototypes. (line  178)
   11529 * bfd_merge_private_bfd_data:            Miscellaneous.      (line  176)
   11530 * bfd_mmap:                              Miscellaneous.      (line  447)
   11531 * bfd_octets_per_byte:                   Architectures.      (line  657)
   11532 * bfd_open_file:                         File Caching.       (line   52)
   11533 * bfd_openr:                             Opening and Closing.
   11534                                                              (line   38)
   11535 * bfd_openr_iovec:                       Opening and Closing.
   11536                                                              (line   95)
   11537 * bfd_openr_next_archived_file:          Archives.           (line   84)
   11538 * bfd_openstreamr:                       Opening and Closing.
   11539                                                              (line   83)
   11540 * bfd_openw:                             Opening and Closing.
   11541                                                              (line  146)
   11542 * bfd_perform_relocation:                typedef arelent.    (line  364)
   11543 * bfd_perror:                            Error reporting.    (line   76)
   11544 * bfd_print_symbol_vandf:                symbol handling functions.
   11545                                                              (line   70)
   11546 * bfd_printable_arch_mach:               Architectures.      (line  645)
   11547 * bfd_printable_name:                    Architectures.      (line  505)
   11548 * bfd_put_size:                          Internal.           (line   22)
   11549 * BFD_RELOC_12_PCREL:                    howto manager.      (line   39)
   11550 * BFD_RELOC_14:                          howto manager.      (line   31)
   11551 * BFD_RELOC_16:                          howto manager.      (line   30)
   11552 * BFD_RELOC_16_BASEREL:                  howto manager.      (line   99)
   11553 * BFD_RELOC_16_GOT_PCREL:                howto manager.      (line   52)
   11554 * BFD_RELOC_16_GOTOFF:                   howto manager.      (line   55)
   11555 * BFD_RELOC_16_PCREL:                    howto manager.      (line   38)
   11556 * BFD_RELOC_16_PCREL_S2:                 howto manager.      (line  111)
   11557 * BFD_RELOC_16_PLT_PCREL:                howto manager.      (line   63)
   11558 * BFD_RELOC_16_PLTOFF:                   howto manager.      (line   67)
   11559 * BFD_RELOC_16C_ABS20:                   howto manager.      (line 2465)
   11560 * BFD_RELOC_16C_ABS20_C:                 howto manager.      (line 2466)
   11561 * BFD_RELOC_16C_ABS24:                   howto manager.      (line 2467)
   11562 * BFD_RELOC_16C_ABS24_C:                 howto manager.      (line 2468)
   11563 * BFD_RELOC_16C_DISP04:                  howto manager.      (line 2445)
   11564 * BFD_RELOC_16C_DISP04_C:                howto manager.      (line 2446)
   11565 * BFD_RELOC_16C_DISP08:                  howto manager.      (line 2447)
   11566 * BFD_RELOC_16C_DISP08_C:                howto manager.      (line 2448)
   11567 * BFD_RELOC_16C_DISP16:                  howto manager.      (line 2449)
   11568 * BFD_RELOC_16C_DISP16_C:                howto manager.      (line 2450)
   11569 * BFD_RELOC_16C_DISP24:                  howto manager.      (line 2451)
   11570 * BFD_RELOC_16C_DISP24_C:                howto manager.      (line 2452)
   11571 * BFD_RELOC_16C_DISP24a:                 howto manager.      (line 2453)
   11572 * BFD_RELOC_16C_DISP24a_C:               howto manager.      (line 2454)
   11573 * BFD_RELOC_16C_IMM04:                   howto manager.      (line 2469)
   11574 * BFD_RELOC_16C_IMM04_C:                 howto manager.      (line 2470)
   11575 * BFD_RELOC_16C_IMM16:                   howto manager.      (line 2471)
   11576 * BFD_RELOC_16C_IMM16_C:                 howto manager.      (line 2472)
   11577 * BFD_RELOC_16C_IMM20:                   howto manager.      (line 2473)
   11578 * BFD_RELOC_16C_IMM20_C:                 howto manager.      (line 2474)
   11579 * BFD_RELOC_16C_IMM24:                   howto manager.      (line 2475)
   11580 * BFD_RELOC_16C_IMM24_C:                 howto manager.      (line 2476)
   11581 * BFD_RELOC_16C_IMM32:                   howto manager.      (line 2477)
   11582 * BFD_RELOC_16C_IMM32_C:                 howto manager.      (line 2478)
   11583 * BFD_RELOC_16C_NUM08:                   howto manager.      (line 2439)
   11584 * BFD_RELOC_16C_NUM08_C:                 howto manager.      (line 2440)
   11585 * BFD_RELOC_16C_NUM16:                   howto manager.      (line 2441)
   11586 * BFD_RELOC_16C_NUM16_C:                 howto manager.      (line 2442)
   11587 * BFD_RELOC_16C_NUM32:                   howto manager.      (line 2443)
   11588 * BFD_RELOC_16C_NUM32_C:                 howto manager.      (line 2444)
   11589 * BFD_RELOC_16C_REG04:                   howto manager.      (line 2455)
   11590 * BFD_RELOC_16C_REG04_C:                 howto manager.      (line 2456)
   11591 * BFD_RELOC_16C_REG04a:                  howto manager.      (line 2457)
   11592 * BFD_RELOC_16C_REG04a_C:                howto manager.      (line 2458)
   11593 * BFD_RELOC_16C_REG14:                   howto manager.      (line 2459)
   11594 * BFD_RELOC_16C_REG14_C:                 howto manager.      (line 2460)
   11595 * BFD_RELOC_16C_REG16:                   howto manager.      (line 2461)
   11596 * BFD_RELOC_16C_REG16_C:                 howto manager.      (line 2462)
   11597 * BFD_RELOC_16C_REG20:                   howto manager.      (line 2463)
   11598 * BFD_RELOC_16C_REG20_C:                 howto manager.      (line 2464)
   11599 * BFD_RELOC_23_PCREL_S2:                 howto manager.      (line  112)
   11600 * BFD_RELOC_24:                          howto manager.      (line   29)
   11601 * BFD_RELOC_24_PCREL:                    howto manager.      (line   37)
   11602 * BFD_RELOC_24_PLT_PCREL:                howto manager.      (line   62)
   11603 * BFD_RELOC_26:                          howto manager.      (line   28)
   11604 * BFD_RELOC_32:                          howto manager.      (line   27)
   11605 * BFD_RELOC_32_BASEREL:                  howto manager.      (line   98)
   11606 * BFD_RELOC_32_GOT_PCREL:                howto manager.      (line   51)
   11607 * BFD_RELOC_32_GOTOFF:                   howto manager.      (line   54)
   11608 * BFD_RELOC_32_PCREL:                    howto manager.      (line   36)
   11609 * BFD_RELOC_32_PCREL_S2:                 howto manager.      (line  110)
   11610 * BFD_RELOC_32_PLT_PCREL:                howto manager.      (line   61)
   11611 * BFD_RELOC_32_PLTOFF:                   howto manager.      (line   66)
   11612 * BFD_RELOC_32_SECREL:                   howto manager.      (line   48)
   11613 * BFD_RELOC_386_COPY:                    howto manager.      (line  583)
   11614 * BFD_RELOC_386_GLOB_DAT:                howto manager.      (line  584)
   11615 * BFD_RELOC_386_GOT32:                   howto manager.      (line  581)
   11616 * BFD_RELOC_386_GOTOFF:                  howto manager.      (line  587)
   11617 * BFD_RELOC_386_GOTPC:                   howto manager.      (line  588)
   11618 * BFD_RELOC_386_IRELATIVE:               howto manager.      (line  604)
   11619 * BFD_RELOC_386_JUMP_SLOT:               howto manager.      (line  585)
   11620 * BFD_RELOC_386_PLT32:                   howto manager.      (line  582)
   11621 * BFD_RELOC_386_RELATIVE:                howto manager.      (line  586)
   11622 * BFD_RELOC_386_TLS_DESC:                howto manager.      (line  603)
   11623 * BFD_RELOC_386_TLS_DESC_CALL:           howto manager.      (line  602)
   11624 * BFD_RELOC_386_TLS_DTPMOD32:            howto manager.      (line  598)
   11625 * BFD_RELOC_386_TLS_DTPOFF32:            howto manager.      (line  599)
   11626 * BFD_RELOC_386_TLS_GD:                  howto manager.      (line  593)
   11627 * BFD_RELOC_386_TLS_GOTDESC:             howto manager.      (line  601)
   11628 * BFD_RELOC_386_TLS_GOTIE:               howto manager.      (line  591)
   11629 * BFD_RELOC_386_TLS_IE:                  howto manager.      (line  590)
   11630 * BFD_RELOC_386_TLS_IE_32:               howto manager.      (line  596)
   11631 * BFD_RELOC_386_TLS_LDM:                 howto manager.      (line  594)
   11632 * BFD_RELOC_386_TLS_LDO_32:              howto manager.      (line  595)
   11633 * BFD_RELOC_386_TLS_LE:                  howto manager.      (line  592)
   11634 * BFD_RELOC_386_TLS_LE_32:               howto manager.      (line  597)
   11635 * BFD_RELOC_386_TLS_TPOFF:               howto manager.      (line  589)
   11636 * BFD_RELOC_386_TLS_TPOFF32:             howto manager.      (line  600)
   11637 * BFD_RELOC_390_12:                      howto manager.      (line 2048)
   11638 * BFD_RELOC_390_20:                      howto manager.      (line 2160)
   11639 * BFD_RELOC_390_COPY:                    howto manager.      (line 2057)
   11640 * BFD_RELOC_390_GLOB_DAT:                howto manager.      (line 2060)
   11641 * BFD_RELOC_390_GOT12:                   howto manager.      (line 2051)
   11642 * BFD_RELOC_390_GOT16:                   howto manager.      (line 2072)
   11643 * BFD_RELOC_390_GOT20:                   howto manager.      (line 2161)
   11644 * BFD_RELOC_390_GOT64:                   howto manager.      (line 2102)
   11645 * BFD_RELOC_390_GOTENT:                  howto manager.      (line 2108)
   11646 * BFD_RELOC_390_GOTOFF64:                howto manager.      (line 2111)
   11647 * BFD_RELOC_390_GOTPC:                   howto manager.      (line 2069)
   11648 * BFD_RELOC_390_GOTPCDBL:                howto manager.      (line 2099)
   11649 * BFD_RELOC_390_GOTPLT12:                howto manager.      (line 2114)
   11650 * BFD_RELOC_390_GOTPLT16:                howto manager.      (line 2117)
   11651 * BFD_RELOC_390_GOTPLT20:                howto manager.      (line 2162)
   11652 * BFD_RELOC_390_GOTPLT32:                howto manager.      (line 2120)
   11653 * BFD_RELOC_390_GOTPLT64:                howto manager.      (line 2123)
   11654 * BFD_RELOC_390_GOTPLTENT:               howto manager.      (line 2126)
   11655 * BFD_RELOC_390_IRELATIVE:               howto manager.      (line 2166)
   11656 * BFD_RELOC_390_JMP_SLOT:                howto manager.      (line 2063)
   11657 * BFD_RELOC_390_PC12DBL:                 howto manager.      (line 2075)
   11658 * BFD_RELOC_390_PC16DBL:                 howto manager.      (line 2081)
   11659 * BFD_RELOC_390_PC24DBL:                 howto manager.      (line 2087)
   11660 * BFD_RELOC_390_PC32DBL:                 howto manager.      (line 2093)
   11661 * BFD_RELOC_390_PLT12DBL:                howto manager.      (line 2078)
   11662 * BFD_RELOC_390_PLT16DBL:                howto manager.      (line 2084)
   11663 * BFD_RELOC_390_PLT24DBL:                howto manager.      (line 2090)
   11664 * BFD_RELOC_390_PLT32:                   howto manager.      (line 2054)
   11665 * BFD_RELOC_390_PLT32DBL:                howto manager.      (line 2096)
   11666 * BFD_RELOC_390_PLT64:                   howto manager.      (line 2105)
   11667 * BFD_RELOC_390_PLTOFF16:                howto manager.      (line 2129)
   11668 * BFD_RELOC_390_PLTOFF32:                howto manager.      (line 2132)
   11669 * BFD_RELOC_390_PLTOFF64:                howto manager.      (line 2135)
   11670 * BFD_RELOC_390_RELATIVE:                howto manager.      (line 2066)
   11671 * BFD_RELOC_390_TLS_DTPMOD:              howto manager.      (line 2155)
   11672 * BFD_RELOC_390_TLS_DTPOFF:              howto manager.      (line 2156)
   11673 * BFD_RELOC_390_TLS_GD32:                howto manager.      (line 2141)
   11674 * BFD_RELOC_390_TLS_GD64:                howto manager.      (line 2142)
   11675 * BFD_RELOC_390_TLS_GDCALL:              howto manager.      (line 2139)
   11676 * BFD_RELOC_390_TLS_GOTIE12:             howto manager.      (line 2143)
   11677 * BFD_RELOC_390_TLS_GOTIE20:             howto manager.      (line 2163)
   11678 * BFD_RELOC_390_TLS_GOTIE32:             howto manager.      (line 2144)
   11679 * BFD_RELOC_390_TLS_GOTIE64:             howto manager.      (line 2145)
   11680 * BFD_RELOC_390_TLS_IE32:                howto manager.      (line 2148)
   11681 * BFD_RELOC_390_TLS_IE64:                howto manager.      (line 2149)
   11682 * BFD_RELOC_390_TLS_IEENT:               howto manager.      (line 2150)
   11683 * BFD_RELOC_390_TLS_LDCALL:              howto manager.      (line 2140)
   11684 * BFD_RELOC_390_TLS_LDM32:               howto manager.      (line 2146)
   11685 * BFD_RELOC_390_TLS_LDM64:               howto manager.      (line 2147)
   11686 * BFD_RELOC_390_TLS_LDO32:               howto manager.      (line 2153)
   11687 * BFD_RELOC_390_TLS_LDO64:               howto manager.      (line 2154)
   11688 * BFD_RELOC_390_TLS_LE32:                howto manager.      (line 2151)
   11689 * BFD_RELOC_390_TLS_LE64:                howto manager.      (line 2152)
   11690 * BFD_RELOC_390_TLS_LOAD:                howto manager.      (line 2138)
   11691 * BFD_RELOC_390_TLS_TPOFF:               howto manager.      (line 2157)
   11692 * BFD_RELOC_64:                          howto manager.      (line   26)
   11693 * BFD_RELOC_64_PCREL:                    howto manager.      (line   35)
   11694 * BFD_RELOC_64_PLT_PCREL:                howto manager.      (line   60)
   11695 * BFD_RELOC_64_PLTOFF:                   howto manager.      (line   65)
   11696 * BFD_RELOC_68K_GLOB_DAT:                howto manager.      (line   78)
   11697 * BFD_RELOC_68K_JMP_SLOT:                howto manager.      (line   79)
   11698 * BFD_RELOC_68K_RELATIVE:                howto manager.      (line   80)
   11699 * BFD_RELOC_68K_TLS_GD16:                howto manager.      (line   82)
   11700 * BFD_RELOC_68K_TLS_GD32:                howto manager.      (line   81)
   11701 * BFD_RELOC_68K_TLS_GD8:                 howto manager.      (line   83)
   11702 * BFD_RELOC_68K_TLS_IE16:                howto manager.      (line   91)
   11703 * BFD_RELOC_68K_TLS_IE32:                howto manager.      (line   90)
   11704 * BFD_RELOC_68K_TLS_IE8:                 howto manager.      (line   92)
   11705 * BFD_RELOC_68K_TLS_LDM16:               howto manager.      (line   85)
   11706 * BFD_RELOC_68K_TLS_LDM32:               howto manager.      (line   84)
   11707 * BFD_RELOC_68K_TLS_LDM8:                howto manager.      (line   86)
   11708 * BFD_RELOC_68K_TLS_LDO16:               howto manager.      (line   88)
   11709 * BFD_RELOC_68K_TLS_LDO32:               howto manager.      (line   87)
   11710 * BFD_RELOC_68K_TLS_LDO8:                howto manager.      (line   89)
   11711 * BFD_RELOC_68K_TLS_LE16:                howto manager.      (line   94)
   11712 * BFD_RELOC_68K_TLS_LE32:                howto manager.      (line   93)
   11713 * BFD_RELOC_68K_TLS_LE8:                 howto manager.      (line   95)
   11714 * BFD_RELOC_8:                           howto manager.      (line   32)
   11715 * BFD_RELOC_860_COPY:                    howto manager.      (line 2593)
   11716 * BFD_RELOC_860_GLOB_DAT:                howto manager.      (line 2594)
   11717 * BFD_RELOC_860_HAGOT:                   howto manager.      (line 2619)
   11718 * BFD_RELOC_860_HAGOTOFF:                howto manager.      (line 2620)
   11719 * BFD_RELOC_860_HAPC:                    howto manager.      (line 2621)
   11720 * BFD_RELOC_860_HIGH:                    howto manager.      (line 2622)
   11721 * BFD_RELOC_860_HIGHADJ:                 howto manager.      (line 2618)
   11722 * BFD_RELOC_860_HIGOT:                   howto manager.      (line 2623)
   11723 * BFD_RELOC_860_HIGOTOFF:                howto manager.      (line 2624)
   11724 * BFD_RELOC_860_JUMP_SLOT:               howto manager.      (line 2595)
   11725 * BFD_RELOC_860_LOGOT0:                  howto manager.      (line 2607)
   11726 * BFD_RELOC_860_LOGOT1:                  howto manager.      (line 2609)
   11727 * BFD_RELOC_860_LOGOTOFF0:               howto manager.      (line 2611)
   11728 * BFD_RELOC_860_LOGOTOFF1:               howto manager.      (line 2613)
   11729 * BFD_RELOC_860_LOGOTOFF2:               howto manager.      (line 2615)
   11730 * BFD_RELOC_860_LOGOTOFF3:               howto manager.      (line 2616)
   11731 * BFD_RELOC_860_LOPC:                    howto manager.      (line 2617)
   11732 * BFD_RELOC_860_LOW0:                    howto manager.      (line 2600)
   11733 * BFD_RELOC_860_LOW1:                    howto manager.      (line 2602)
   11734 * BFD_RELOC_860_LOW2:                    howto manager.      (line 2604)
   11735 * BFD_RELOC_860_LOW3:                    howto manager.      (line 2606)
   11736 * BFD_RELOC_860_PC16:                    howto manager.      (line 2599)
   11737 * BFD_RELOC_860_PC26:                    howto manager.      (line 2597)
   11738 * BFD_RELOC_860_PLT26:                   howto manager.      (line 2598)
   11739 * BFD_RELOC_860_RELATIVE:                howto manager.      (line 2596)
   11740 * BFD_RELOC_860_SPGOT0:                  howto manager.      (line 2608)
   11741 * BFD_RELOC_860_SPGOT1:                  howto manager.      (line 2610)
   11742 * BFD_RELOC_860_SPGOTOFF0:               howto manager.      (line 2612)
   11743 * BFD_RELOC_860_SPGOTOFF1:               howto manager.      (line 2614)
   11744 * BFD_RELOC_860_SPLIT0:                  howto manager.      (line 2601)
   11745 * BFD_RELOC_860_SPLIT1:                  howto manager.      (line 2603)
   11746 * BFD_RELOC_860_SPLIT2:                  howto manager.      (line 2605)
   11747 * BFD_RELOC_8_BASEREL:                   howto manager.      (line  103)
   11748 * BFD_RELOC_8_FFnn:                      howto manager.      (line  107)
   11749 * BFD_RELOC_8_GOT_PCREL:                 howto manager.      (line   53)
   11750 * BFD_RELOC_8_GOTOFF:                    howto manager.      (line   59)
   11751 * BFD_RELOC_8_PCREL:                     howto manager.      (line   40)
   11752 * BFD_RELOC_8_PLT_PCREL:                 howto manager.      (line   64)
   11753 * BFD_RELOC_8_PLTOFF:                    howto manager.      (line   71)
   11754 * BFD_RELOC_AARCH64_16:                  howto manager.      (line 3011)
   11755 * BFD_RELOC_AARCH64_16_PCREL:            howto manager.      (line 3018)
   11756 * BFD_RELOC_AARCH64_32:                  howto manager.      (line 3010)
   11757 * BFD_RELOC_AARCH64_32_PCREL:            howto manager.      (line 3017)
   11758 * BFD_RELOC_AARCH64_64:                  howto manager.      (line 3009)
   11759 * BFD_RELOC_AARCH64_64_PCREL:            howto manager.      (line 3016)
   11760 * BFD_RELOC_AARCH64_ADD_LO12:            howto manager.      (line 3083)
   11761 * BFD_RELOC_AARCH64_ADR_GOT_PAGE:        howto manager.      (line 3140)
   11762 * BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL:   howto manager.      (line 3078)
   11763 * BFD_RELOC_AARCH64_ADR_HI21_PCREL:      howto manager.      (line 3074)
   11764 * BFD_RELOC_AARCH64_ADR_LO21_PCREL:      howto manager.      (line 3070)
   11765 * BFD_RELOC_AARCH64_BRANCH19:            howto manager.      (line 3098)
   11766 * BFD_RELOC_AARCH64_CALL26:              howto manager.      (line 3108)
   11767 * BFD_RELOC_AARCH64_COPY:                howto manager.      (line 3241)
   11768 * BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP:  howto manager.      (line 3275)
   11769 * BFD_RELOC_AARCH64_GLOB_DAT:            howto manager.      (line 3244)
   11770 * BFD_RELOC_AARCH64_GOT_LD_PREL19:       howto manager.      (line 3133)
   11771 * BFD_RELOC_AARCH64_IRELATIVE:           howto manager.      (line 3265)
   11772 * BFD_RELOC_AARCH64_JUMP26:              howto manager.      (line 3103)
   11773 * BFD_RELOC_AARCH64_JUMP_SLOT:           howto manager.      (line 3247)
   11774 * BFD_RELOC_AARCH64_LD32_GOT_LO12_NC:    howto manager.      (line 3150)
   11775 * BFD_RELOC_AARCH64_LD64_GOT_LO12_NC:    howto manager.      (line 3145)
   11776 * BFD_RELOC_AARCH64_LD_GOT_LO12_NC:      howto manager.      (line 3284)
   11777 * BFD_RELOC_AARCH64_LD_LO19_PCREL:       howto manager.      (line 3065)
   11778 * BFD_RELOC_AARCH64_LDST128_LO12:        howto manager.      (line 3128)
   11779 * BFD_RELOC_AARCH64_LDST16_LO12:         howto manager.      (line 3113)
   11780 * BFD_RELOC_AARCH64_LDST32_LO12:         howto manager.      (line 3118)
   11781 * BFD_RELOC_AARCH64_LDST64_LO12:         howto manager.      (line 3123)
   11782 * BFD_RELOC_AARCH64_LDST8_LO12:          howto manager.      (line 3088)
   11783 * BFD_RELOC_AARCH64_LDST_LO12:           howto manager.      (line 3279)
   11784 * BFD_RELOC_AARCH64_MOVW_G0:             howto manager.      (line 3022)
   11785 * BFD_RELOC_AARCH64_MOVW_G0_NC:          howto manager.      (line 3026)
   11786 * BFD_RELOC_AARCH64_MOVW_G0_S:           howto manager.      (line 3050)
   11787 * BFD_RELOC_AARCH64_MOVW_G1:             howto manager.      (line 3030)
   11788 * BFD_RELOC_AARCH64_MOVW_G1_NC:          howto manager.      (line 3034)
   11789 * BFD_RELOC_AARCH64_MOVW_G1_S:           howto manager.      (line 3055)
   11790 * BFD_RELOC_AARCH64_MOVW_G2:             howto manager.      (line 3038)
   11791 * BFD_RELOC_AARCH64_MOVW_G2_NC:          howto manager.      (line 3042)
   11792 * BFD_RELOC_AARCH64_MOVW_G2_S:           howto manager.      (line 3060)
   11793 * BFD_RELOC_AARCH64_MOVW_G3:             howto manager.      (line 3046)
   11794 * BFD_RELOC_AARCH64_NONE:                howto manager.      (line 3006)
   11795 * BFD_RELOC_AARCH64_RELATIVE:            howto manager.      (line 3250)
   11796 * BFD_RELOC_AARCH64_RELOC_END:           howto manager.      (line 3268)
   11797 * BFD_RELOC_AARCH64_RELOC_START:         howto manager.      (line 3000)
   11798 * BFD_RELOC_AARCH64_TLS_DTPMOD:          howto manager.      (line 3253)
   11799 * BFD_RELOC_AARCH64_TLS_DTPREL:          howto manager.      (line 3256)
   11800 * BFD_RELOC_AARCH64_TLS_TPREL:           howto manager.      (line 3259)
   11801 * BFD_RELOC_AARCH64_TLSDESC:             howto manager.      (line 3262)
   11802 * BFD_RELOC_AARCH64_TLSDESC_ADD:         howto manager.      (line 3235)
   11803 * BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC: howto manager.      (line 3223)
   11804 * BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21:  howto manager.      (line 3214)
   11805 * BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21:  howto manager.      (line 3211)
   11806 * BFD_RELOC_AARCH64_TLSDESC_CALL:        howto manager.      (line 3238)
   11807 * BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC: howto manager.     (line 3220)
   11808 * BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC: howto manager.     (line 3217)
   11809 * BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC:  howto manager.      (line 3292)
   11810 * BFD_RELOC_AARCH64_TLSDESC_LD_PREL19:   howto manager.      (line 3208)
   11811 * BFD_RELOC_AARCH64_TLSDESC_LDR:         howto manager.      (line 3232)
   11812 * BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC:   howto manager.      (line 3229)
   11813 * BFD_RELOC_AARCH64_TLSDESC_OFF_G1:      howto manager.      (line 3226)
   11814 * BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC:   howto manager.      (line 3161)
   11815 * BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21:    howto manager.      (line 3155)
   11816 * BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21: howto manager.
   11817                                                              (line 3172)
   11818 * BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC: howto manager.
   11819                                                              (line 3178)
   11820 * BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC: howto manager.
   11821                                                              (line 3175)
   11822 * BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC: howto manager.
   11823                                                              (line 3288)
   11824 * BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19: howto manager. (line 3181)
   11825 * BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC: howto manager.
   11826                                                              (line 3169)
   11827 * BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1: howto manager.   (line 3166)
   11828 * BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: howto manager.     (line 3199)
   11829 * BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: howto manager.     (line 3202)
   11830 * BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: howto manager.  (line 3205)
   11831 * BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: howto manager.      (line 3193)
   11832 * BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: howto manager.   (line 3196)
   11833 * BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: howto manager.      (line 3187)
   11834 * BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: howto manager.   (line 3190)
   11835 * BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: howto manager.      (line 3184)
   11836 * BFD_RELOC_AARCH64_TSTBR14:             howto manager.      (line 3093)
   11837 * BFD_RELOC_ALPHA_BOH:                   howto manager.      (line  323)
   11838 * BFD_RELOC_ALPHA_BRSGP:                 howto manager.      (line  306)
   11839 * BFD_RELOC_ALPHA_BSR:                   howto manager.      (line  315)
   11840 * BFD_RELOC_ALPHA_CODEADDR:              howto manager.      (line  297)
   11841 * BFD_RELOC_ALPHA_DTPMOD64:              howto manager.      (line  329)
   11842 * BFD_RELOC_ALPHA_DTPREL16:              howto manager.      (line  334)
   11843 * BFD_RELOC_ALPHA_DTPREL64:              howto manager.      (line  331)
   11844 * BFD_RELOC_ALPHA_DTPREL_HI16:           howto manager.      (line  332)
   11845 * BFD_RELOC_ALPHA_DTPREL_LO16:           howto manager.      (line  333)
   11846 * BFD_RELOC_ALPHA_ELF_LITERAL:           howto manager.      (line  262)
   11847 * BFD_RELOC_ALPHA_GOTDTPREL16:           howto manager.      (line  330)
   11848 * BFD_RELOC_ALPHA_GOTTPREL16:            howto manager.      (line  335)
   11849 * BFD_RELOC_ALPHA_GPDISP:                howto manager.      (line  256)
   11850 * BFD_RELOC_ALPHA_GPDISP_HI16:           howto manager.      (line  242)
   11851 * BFD_RELOC_ALPHA_GPDISP_LO16:           howto manager.      (line  250)
   11852 * BFD_RELOC_ALPHA_GPREL_HI16:            howto manager.      (line  301)
   11853 * BFD_RELOC_ALPHA_GPREL_LO16:            howto manager.      (line  302)
   11854 * BFD_RELOC_ALPHA_HINT:                  howto manager.      (line  288)
   11855 * BFD_RELOC_ALPHA_LDA:                   howto manager.      (line  319)
   11856 * BFD_RELOC_ALPHA_LINKAGE:               howto manager.      (line  293)
   11857 * BFD_RELOC_ALPHA_LITERAL:               howto manager.      (line  261)
   11858 * BFD_RELOC_ALPHA_LITUSE:                howto manager.      (line  263)
   11859 * BFD_RELOC_ALPHA_NOP:                   howto manager.      (line  311)
   11860 * BFD_RELOC_ALPHA_TLSGD:                 howto manager.      (line  327)
   11861 * BFD_RELOC_ALPHA_TLSLDM:                howto manager.      (line  328)
   11862 * BFD_RELOC_ALPHA_TPREL16:               howto manager.      (line  339)
   11863 * BFD_RELOC_ALPHA_TPREL64:               howto manager.      (line  336)
   11864 * BFD_RELOC_ALPHA_TPREL_HI16:            howto manager.      (line  337)
   11865 * BFD_RELOC_ALPHA_TPREL_LO16:            howto manager.      (line  338)
   11866 * BFD_RELOC_ARC_B22_PCREL:               howto manager.      (line 1056)
   11867 * BFD_RELOC_ARC_B26:                     howto manager.      (line 1061)
   11868 * BFD_RELOC_ARM_ADR_IMM:                 howto manager.      (line  942)
   11869 * BFD_RELOC_ARM_ADRL_IMMEDIATE:          howto manager.      (line  928)
   11870 * BFD_RELOC_ARM_ALU_PC_G0:               howto manager.      (line  892)
   11871 * BFD_RELOC_ARM_ALU_PC_G0_NC:            howto manager.      (line  891)
   11872 * BFD_RELOC_ARM_ALU_PC_G1:               howto manager.      (line  894)
   11873 * BFD_RELOC_ARM_ALU_PC_G1_NC:            howto manager.      (line  893)
   11874 * BFD_RELOC_ARM_ALU_PC_G2:               howto manager.      (line  895)
   11875 * BFD_RELOC_ARM_ALU_SB_G0:               howto manager.      (line  906)
   11876 * BFD_RELOC_ARM_ALU_SB_G0_NC:            howto manager.      (line  905)
   11877 * BFD_RELOC_ARM_ALU_SB_G1:               howto manager.      (line  908)
   11878 * BFD_RELOC_ARM_ALU_SB_G1_NC:            howto manager.      (line  907)
   11879 * BFD_RELOC_ARM_ALU_SB_G2:               howto manager.      (line  909)
   11880 * BFD_RELOC_ARM_CP_OFF_IMM:              howto manager.      (line  938)
   11881 * BFD_RELOC_ARM_CP_OFF_IMM_S2:           howto manager.      (line  939)
   11882 * BFD_RELOC_ARM_GLOB_DAT:                howto manager.      (line  866)
   11883 * BFD_RELOC_ARM_GOT32:                   howto manager.      (line  867)
   11884 * BFD_RELOC_ARM_GOT_PREL:                howto manager.      (line  872)
   11885 * BFD_RELOC_ARM_GOTOFF:                  howto manager.      (line  870)
   11886 * BFD_RELOC_ARM_GOTPC:                   howto manager.      (line  871)
   11887 * BFD_RELOC_ARM_HVC:                     howto manager.      (line  935)
   11888 * BFD_RELOC_ARM_HWLITERAL:               howto manager.      (line  949)
   11889 * BFD_RELOC_ARM_IMMEDIATE:               howto manager.      (line  927)
   11890 * BFD_RELOC_ARM_IN_POOL:                 howto manager.      (line  945)
   11891 * BFD_RELOC_ARM_IRELATIVE:               howto manager.      (line  924)
   11892 * BFD_RELOC_ARM_JUMP_SLOT:               howto manager.      (line  865)
   11893 * BFD_RELOC_ARM_LDC_PC_G0:               howto manager.      (line  902)
   11894 * BFD_RELOC_ARM_LDC_PC_G1:               howto manager.      (line  903)
   11895 * BFD_RELOC_ARM_LDC_PC_G2:               howto manager.      (line  904)
   11896 * BFD_RELOC_ARM_LDC_SB_G0:               howto manager.      (line  916)
   11897 * BFD_RELOC_ARM_LDC_SB_G1:               howto manager.      (line  917)
   11898 * BFD_RELOC_ARM_LDC_SB_G2:               howto manager.      (line  918)
   11899 * BFD_RELOC_ARM_LDR_IMM:                 howto manager.      (line  943)
   11900 * BFD_RELOC_ARM_LDR_PC_G0:               howto manager.      (line  896)
   11901 * BFD_RELOC_ARM_LDR_PC_G1:               howto manager.      (line  897)
   11902 * BFD_RELOC_ARM_LDR_PC_G2:               howto manager.      (line  898)
   11903 * BFD_RELOC_ARM_LDR_SB_G0:               howto manager.      (line  910)
   11904 * BFD_RELOC_ARM_LDR_SB_G1:               howto manager.      (line  911)
   11905 * BFD_RELOC_ARM_LDR_SB_G2:               howto manager.      (line  912)
   11906 * BFD_RELOC_ARM_LDRS_PC_G0:              howto manager.      (line  899)
   11907 * BFD_RELOC_ARM_LDRS_PC_G1:              howto manager.      (line  900)
   11908 * BFD_RELOC_ARM_LDRS_PC_G2:              howto manager.      (line  901)
   11909 * BFD_RELOC_ARM_LDRS_SB_G0:              howto manager.      (line  913)
   11910 * BFD_RELOC_ARM_LDRS_SB_G1:              howto manager.      (line  914)
   11911 * BFD_RELOC_ARM_LDRS_SB_G2:              howto manager.      (line  915)
   11912 * BFD_RELOC_ARM_LITERAL:                 howto manager.      (line  944)
   11913 * BFD_RELOC_ARM_MOVT:                    howto manager.      (line  856)
   11914 * BFD_RELOC_ARM_MOVT_PCREL:              howto manager.      (line  858)
   11915 * BFD_RELOC_ARM_MOVW:                    howto manager.      (line  855)
   11916 * BFD_RELOC_ARM_MOVW_PCREL:              howto manager.      (line  857)
   11917 * BFD_RELOC_ARM_MULTI:                   howto manager.      (line  937)
   11918 * BFD_RELOC_ARM_OFFSET_IMM:              howto manager.      (line  829)
   11919 * BFD_RELOC_ARM_OFFSET_IMM8:             howto manager.      (line  946)
   11920 * BFD_RELOC_ARM_PCREL_BLX:               howto manager.      (line  800)
   11921 * BFD_RELOC_ARM_PCREL_BRANCH:            howto manager.      (line  796)
   11922 * BFD_RELOC_ARM_PCREL_CALL:              howto manager.      (line  810)
   11923 * BFD_RELOC_ARM_PCREL_JUMP:              howto manager.      (line  814)
   11924 * BFD_RELOC_ARM_PLT32:                   howto manager.      (line  868)
   11925 * BFD_RELOC_ARM_PREL31:                  howto manager.      (line  852)
   11926 * BFD_RELOC_ARM_RELATIVE:                howto manager.      (line  869)
   11927 * BFD_RELOC_ARM_ROSEGREL32:              howto manager.      (line  841)
   11928 * BFD_RELOC_ARM_SBREL32:                 howto manager.      (line  844)
   11929 * BFD_RELOC_ARM_SHIFT_IMM:               howto manager.      (line  933)
   11930 * BFD_RELOC_ARM_SMC:                     howto manager.      (line  934)
   11931 * BFD_RELOC_ARM_SWI:                     howto manager.      (line  936)
   11932 * BFD_RELOC_ARM_T32_ADD_IMM:             howto manager.      (line  930)
   11933 * BFD_RELOC_ARM_T32_ADD_PC12:            howto manager.      (line  932)
   11934 * BFD_RELOC_ARM_T32_CP_OFF_IMM:          howto manager.      (line  940)
   11935 * BFD_RELOC_ARM_T32_CP_OFF_IMM_S2:       howto manager.      (line  941)
   11936 * BFD_RELOC_ARM_T32_IMM12:               howto manager.      (line  931)
   11937 * BFD_RELOC_ARM_T32_IMMEDIATE:           howto manager.      (line  929)
   11938 * BFD_RELOC_ARM_T32_OFFSET_IMM:          howto manager.      (line  948)
   11939 * BFD_RELOC_ARM_T32_OFFSET_U8:           howto manager.      (line  947)
   11940 * BFD_RELOC_ARM_TARGET1:                 howto manager.      (line  837)
   11941 * BFD_RELOC_ARM_TARGET2:                 howto manager.      (line  847)
   11942 * BFD_RELOC_ARM_THM_TLS_CALL:            howto manager.      (line  885)
   11943 * BFD_RELOC_ARM_THM_TLS_DESCSEQ:         howto manager.      (line  887)
   11944 * BFD_RELOC_ARM_THUMB_ADD:               howto manager.      (line  950)
   11945 * BFD_RELOC_ARM_THUMB_IMM:               howto manager.      (line  951)
   11946 * BFD_RELOC_ARM_THUMB_MOVT:              howto manager.      (line  860)
   11947 * BFD_RELOC_ARM_THUMB_MOVT_PCREL:        howto manager.      (line  862)
   11948 * BFD_RELOC_ARM_THUMB_MOVW:              howto manager.      (line  859)
   11949 * BFD_RELOC_ARM_THUMB_MOVW_PCREL:        howto manager.      (line  861)
   11950 * BFD_RELOC_ARM_THUMB_OFFSET:            howto manager.      (line  833)
   11951 * BFD_RELOC_ARM_THUMB_SHIFT:             howto manager.      (line  952)
   11952 * BFD_RELOC_ARM_TLS_CALL:                howto manager.      (line  884)
   11953 * BFD_RELOC_ARM_TLS_DESC:                howto manager.      (line  888)
   11954 * BFD_RELOC_ARM_TLS_DESCSEQ:             howto manager.      (line  886)
   11955 * BFD_RELOC_ARM_TLS_DTPMOD32:            howto manager.      (line  879)
   11956 * BFD_RELOC_ARM_TLS_DTPOFF32:            howto manager.      (line  878)
   11957 * BFD_RELOC_ARM_TLS_GD32:                howto manager.      (line  875)
   11958 * BFD_RELOC_ARM_TLS_GOTDESC:             howto manager.      (line  883)
   11959 * BFD_RELOC_ARM_TLS_IE32:                howto manager.      (line  881)
   11960 * BFD_RELOC_ARM_TLS_LDM32:               howto manager.      (line  877)
   11961 * BFD_RELOC_ARM_TLS_LDO32:               howto manager.      (line  876)
   11962 * BFD_RELOC_ARM_TLS_LE32:                howto manager.      (line  882)
   11963 * BFD_RELOC_ARM_TLS_TPOFF32:             howto manager.      (line  880)
   11964 * BFD_RELOC_ARM_V4BX:                    howto manager.      (line  921)
   11965 * BFD_RELOC_AVR_13_PCREL:                howto manager.      (line 1851)
   11966 * BFD_RELOC_AVR_16_PM:                   howto manager.      (line 1855)
   11967 * BFD_RELOC_AVR_6:                       howto manager.      (line 1942)
   11968 * BFD_RELOC_AVR_6_ADIW:                  howto manager.      (line 1946)
   11969 * BFD_RELOC_AVR_7_PCREL:                 howto manager.      (line 1847)
   11970 * BFD_RELOC_AVR_8_HI:                    howto manager.      (line 1954)
   11971 * BFD_RELOC_AVR_8_HLO:                   howto manager.      (line 1958)
   11972 * BFD_RELOC_AVR_8_LO:                    howto manager.      (line 1950)
   11973 * BFD_RELOC_AVR_CALL:                    howto manager.      (line 1934)
   11974 * BFD_RELOC_AVR_DIFF16:                  howto manager.      (line 1963)
   11975 * BFD_RELOC_AVR_DIFF32:                  howto manager.      (line 1964)
   11976 * BFD_RELOC_AVR_DIFF8:                   howto manager.      (line 1962)
   11977 * BFD_RELOC_AVR_HH8_LDI:                 howto manager.      (line 1867)
   11978 * BFD_RELOC_AVR_HH8_LDI_NEG:             howto manager.      (line 1886)
   11979 * BFD_RELOC_AVR_HH8_LDI_PM:              howto manager.      (line 1915)
   11980 * BFD_RELOC_AVR_HH8_LDI_PM_NEG:          howto manager.      (line 1929)
   11981 * BFD_RELOC_AVR_HI8_LDI:                 howto manager.      (line 1863)
   11982 * BFD_RELOC_AVR_HI8_LDI_GS:              howto manager.      (line 1909)
   11983 * BFD_RELOC_AVR_HI8_LDI_NEG:             howto manager.      (line 1881)
   11984 * BFD_RELOC_AVR_HI8_LDI_PM:              howto manager.      (line 1905)
   11985 * BFD_RELOC_AVR_HI8_LDI_PM_NEG:          howto manager.      (line 1924)
   11986 * BFD_RELOC_AVR_LDI:                     howto manager.      (line 1938)
   11987 * BFD_RELOC_AVR_LDS_STS_16:              howto manager.      (line 1972)
   11988 * BFD_RELOC_AVR_LO8_LDI:                 howto manager.      (line 1859)
   11989 * BFD_RELOC_AVR_LO8_LDI_GS:              howto manager.      (line 1899)
   11990 * BFD_RELOC_AVR_LO8_LDI_NEG:             howto manager.      (line 1876)
   11991 * BFD_RELOC_AVR_LO8_LDI_PM:              howto manager.      (line 1895)
   11992 * BFD_RELOC_AVR_LO8_LDI_PM_NEG:          howto manager.      (line 1920)
   11993 * BFD_RELOC_AVR_MS8_LDI:                 howto manager.      (line 1872)
   11994 * BFD_RELOC_AVR_MS8_LDI_NEG:             howto manager.      (line 1891)
   11995 * BFD_RELOC_AVR_PORT5:                   howto manager.      (line 1980)
   11996 * BFD_RELOC_AVR_PORT6:                   howto manager.      (line 1976)
   11997 * BFD_RELOC_BFIN_10_PCREL:               howto manager.      (line 1081)
   11998 * BFD_RELOC_BFIN_11_PCREL:               howto manager.      (line 1084)
   11999 * BFD_RELOC_BFIN_12_PCREL_JUMP:          howto manager.      (line 1087)
   12000 * BFD_RELOC_BFIN_12_PCREL_JUMP_S:        howto manager.      (line 1090)
   12001 * BFD_RELOC_BFIN_16_HIGH:                howto manager.      (line 1069)
   12002 * BFD_RELOC_BFIN_16_IMM:                 howto manager.      (line 1066)
   12003 * BFD_RELOC_BFIN_16_LOW:                 howto manager.      (line 1078)
   12004 * BFD_RELOC_BFIN_24_PCREL_CALL_X:        howto manager.      (line 1093)
   12005 * BFD_RELOC_BFIN_24_PCREL_JUMP_L:        howto manager.      (line 1096)
   12006 * BFD_RELOC_BFIN_4_PCREL:                howto manager.      (line 1072)
   12007 * BFD_RELOC_BFIN_5_PCREL:                howto manager.      (line 1075)
   12008 * BFD_RELOC_BFIN_FUNCDESC:               howto manager.      (line 1102)
   12009 * BFD_RELOC_BFIN_FUNCDESC_GOT17M4:       howto manager.      (line 1103)
   12010 * BFD_RELOC_BFIN_FUNCDESC_GOTHI:         howto manager.      (line 1104)
   12011 * BFD_RELOC_BFIN_FUNCDESC_GOTLO:         howto manager.      (line 1105)
   12012 * BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4:    howto manager.      (line 1107)
   12013 * BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI:      howto manager.      (line 1108)
   12014 * BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO:      howto manager.      (line 1109)
   12015 * BFD_RELOC_BFIN_FUNCDESC_VALUE:         howto manager.      (line 1106)
   12016 * BFD_RELOC_BFIN_GOT:                    howto manager.      (line 1115)
   12017 * BFD_RELOC_BFIN_GOT17M4:                howto manager.      (line 1099)
   12018 * BFD_RELOC_BFIN_GOTHI:                  howto manager.      (line 1100)
   12019 * BFD_RELOC_BFIN_GOTLO:                  howto manager.      (line 1101)
   12020 * BFD_RELOC_BFIN_GOTOFF17M4:             howto manager.      (line 1110)
   12021 * BFD_RELOC_BFIN_GOTOFFHI:               howto manager.      (line 1111)
   12022 * BFD_RELOC_BFIN_GOTOFFLO:               howto manager.      (line 1112)
   12023 * BFD_RELOC_BFIN_PLTPC:                  howto manager.      (line 1118)
   12024 * BFD_RELOC_C6000_ABS_H16:               howto manager.      (line 1670)
   12025 * BFD_RELOC_C6000_ABS_L16:               howto manager.      (line 1669)
   12026 * BFD_RELOC_C6000_ABS_S16:               howto manager.      (line 1668)
   12027 * BFD_RELOC_C6000_ALIGN:                 howto manager.      (line 1691)
   12028 * BFD_RELOC_C6000_COPY:                  howto manager.      (line 1686)
   12029 * BFD_RELOC_C6000_DSBT_INDEX:            howto manager.      (line 1684)
   12030 * BFD_RELOC_C6000_EHTYPE:                howto manager.      (line 1688)
   12031 * BFD_RELOC_C6000_FPHEAD:                howto manager.      (line 1692)
   12032 * BFD_RELOC_C6000_JUMP_SLOT:             howto manager.      (line 1687)
   12033 * BFD_RELOC_C6000_NOCMP:                 howto manager.      (line 1693)
   12034 * BFD_RELOC_C6000_PCR_H16:               howto manager.      (line 1689)
   12035 * BFD_RELOC_C6000_PCR_L16:               howto manager.      (line 1690)
   12036 * BFD_RELOC_C6000_PCR_S10:               howto manager.      (line 1666)
   12037 * BFD_RELOC_C6000_PCR_S12:               howto manager.      (line 1665)
   12038 * BFD_RELOC_C6000_PCR_S21:               howto manager.      (line 1664)
   12039 * BFD_RELOC_C6000_PCR_S7:                howto manager.      (line 1667)
   12040 * BFD_RELOC_C6000_PREL31:                howto manager.      (line 1685)
   12041 * BFD_RELOC_C6000_SBR_GOT_H16_W:         howto manager.      (line 1683)
   12042 * BFD_RELOC_C6000_SBR_GOT_L16_W:         howto manager.      (line 1682)
   12043 * BFD_RELOC_C6000_SBR_GOT_U15_W:         howto manager.      (line 1681)
   12044 * BFD_RELOC_C6000_SBR_H16_B:             howto manager.      (line 1678)
   12045 * BFD_RELOC_C6000_SBR_H16_H:             howto manager.      (line 1679)
   12046 * BFD_RELOC_C6000_SBR_H16_W:             howto manager.      (line 1680)
   12047 * BFD_RELOC_C6000_SBR_L16_B:             howto manager.      (line 1675)
   12048 * BFD_RELOC_C6000_SBR_L16_H:             howto manager.      (line 1676)
   12049 * BFD_RELOC_C6000_SBR_L16_W:             howto manager.      (line 1677)
   12050 * BFD_RELOC_C6000_SBR_S16:               howto manager.      (line 1674)
   12051 * BFD_RELOC_C6000_SBR_U15_B:             howto manager.      (line 1671)
   12052 * BFD_RELOC_C6000_SBR_U15_H:             howto manager.      (line 1672)
   12053 * BFD_RELOC_C6000_SBR_U15_W:             howto manager.      (line 1673)
   12054 * bfd_reloc_code_type:                   howto manager.      (line   10)
   12055 * BFD_RELOC_CR16_ABS20:                  howto manager.      (line 2493)
   12056 * BFD_RELOC_CR16_ABS24:                  howto manager.      (line 2494)
   12057 * BFD_RELOC_CR16_DISP16:                 howto manager.      (line 2504)
   12058 * BFD_RELOC_CR16_DISP20:                 howto manager.      (line 2505)
   12059 * BFD_RELOC_CR16_DISP24:                 howto manager.      (line 2506)
   12060 * BFD_RELOC_CR16_DISP24a:                howto manager.      (line 2507)
   12061 * BFD_RELOC_CR16_DISP4:                  howto manager.      (line 2502)
   12062 * BFD_RELOC_CR16_DISP8:                  howto manager.      (line 2503)
   12063 * BFD_RELOC_CR16_GLOB_DAT:               howto manager.      (line 2513)
   12064 * BFD_RELOC_CR16_GOT_REGREL20:           howto manager.      (line 2511)
   12065 * BFD_RELOC_CR16_GOTC_REGREL20:          howto manager.      (line 2512)
   12066 * BFD_RELOC_CR16_IMM16:                  howto manager.      (line 2497)
   12067 * BFD_RELOC_CR16_IMM20:                  howto manager.      (line 2498)
   12068 * BFD_RELOC_CR16_IMM24:                  howto manager.      (line 2499)
   12069 * BFD_RELOC_CR16_IMM32:                  howto manager.      (line 2500)
   12070 * BFD_RELOC_CR16_IMM32a:                 howto manager.      (line 2501)
   12071 * BFD_RELOC_CR16_IMM4:                   howto manager.      (line 2495)
   12072 * BFD_RELOC_CR16_IMM8:                   howto manager.      (line 2496)
   12073 * BFD_RELOC_CR16_NUM16:                  howto manager.      (line 2482)
   12074 * BFD_RELOC_CR16_NUM32:                  howto manager.      (line 2483)
   12075 * BFD_RELOC_CR16_NUM32a:                 howto manager.      (line 2484)
   12076 * BFD_RELOC_CR16_NUM8:                   howto manager.      (line 2481)
   12077 * BFD_RELOC_CR16_REGREL0:                howto manager.      (line 2485)
   12078 * BFD_RELOC_CR16_REGREL14:               howto manager.      (line 2488)
   12079 * BFD_RELOC_CR16_REGREL14a:              howto manager.      (line 2489)
   12080 * BFD_RELOC_CR16_REGREL16:               howto manager.      (line 2490)
   12081 * BFD_RELOC_CR16_REGREL20:               howto manager.      (line 2491)
   12082 * BFD_RELOC_CR16_REGREL20a:              howto manager.      (line 2492)
   12083 * BFD_RELOC_CR16_REGREL4:                howto manager.      (line 2486)
   12084 * BFD_RELOC_CR16_REGREL4a:               howto manager.      (line 2487)
   12085 * BFD_RELOC_CR16_SWITCH16:               howto manager.      (line 2509)
   12086 * BFD_RELOC_CR16_SWITCH32:               howto manager.      (line 2510)
   12087 * BFD_RELOC_CR16_SWITCH8:                howto manager.      (line 2508)
   12088 * BFD_RELOC_CRIS_16_DTPREL:              howto manager.      (line 2584)
   12089 * BFD_RELOC_CRIS_16_GOT:                 howto manager.      (line 2560)
   12090 * BFD_RELOC_CRIS_16_GOT_GD:              howto manager.      (line 2580)
   12091 * BFD_RELOC_CRIS_16_GOT_TPREL:           howto manager.      (line 2586)
   12092 * BFD_RELOC_CRIS_16_GOTPLT:              howto manager.      (line 2566)
   12093 * BFD_RELOC_CRIS_16_TPREL:               howto manager.      (line 2588)
   12094 * BFD_RELOC_CRIS_32_DTPREL:              howto manager.      (line 2583)
   12095 * BFD_RELOC_CRIS_32_GD:                  howto manager.      (line 2581)
   12096 * BFD_RELOC_CRIS_32_GOT:                 howto manager.      (line 2557)
   12097 * BFD_RELOC_CRIS_32_GOT_GD:              howto manager.      (line 2579)
   12098 * BFD_RELOC_CRIS_32_GOT_TPREL:           howto manager.      (line 2585)
   12099 * BFD_RELOC_CRIS_32_GOTPLT:              howto manager.      (line 2563)
   12100 * BFD_RELOC_CRIS_32_GOTREL:              howto manager.      (line 2569)
   12101 * BFD_RELOC_CRIS_32_IE:                  howto manager.      (line 2590)
   12102 * BFD_RELOC_CRIS_32_PLT_GOTREL:          howto manager.      (line 2572)
   12103 * BFD_RELOC_CRIS_32_PLT_PCREL:           howto manager.      (line 2575)
   12104 * BFD_RELOC_CRIS_32_TPREL:               howto manager.      (line 2587)
   12105 * BFD_RELOC_CRIS_BDISP8:                 howto manager.      (line 2538)
   12106 * BFD_RELOC_CRIS_COPY:                   howto manager.      (line 2551)
   12107 * BFD_RELOC_CRIS_DTP:                    howto manager.      (line 2582)
   12108 * BFD_RELOC_CRIS_DTPMOD:                 howto manager.      (line 2589)
   12109 * BFD_RELOC_CRIS_GLOB_DAT:               howto manager.      (line 2552)
   12110 * BFD_RELOC_CRIS_JUMP_SLOT:              howto manager.      (line 2553)
   12111 * BFD_RELOC_CRIS_LAPCQ_OFFSET:           howto manager.      (line 2546)
   12112 * BFD_RELOC_CRIS_RELATIVE:               howto manager.      (line 2554)
   12113 * BFD_RELOC_CRIS_SIGNED_16:              howto manager.      (line 2544)
   12114 * BFD_RELOC_CRIS_SIGNED_6:               howto manager.      (line 2540)
   12115 * BFD_RELOC_CRIS_SIGNED_8:               howto manager.      (line 2542)
   12116 * BFD_RELOC_CRIS_UNSIGNED_16:            howto manager.      (line 2545)
   12117 * BFD_RELOC_CRIS_UNSIGNED_4:             howto manager.      (line 2547)
   12118 * BFD_RELOC_CRIS_UNSIGNED_5:             howto manager.      (line 2539)
   12119 * BFD_RELOC_CRIS_UNSIGNED_6:             howto manager.      (line 2541)
   12120 * BFD_RELOC_CRIS_UNSIGNED_8:             howto manager.      (line 2543)
   12121 * BFD_RELOC_CRX_ABS16:                   howto manager.      (line 2526)
   12122 * BFD_RELOC_CRX_ABS32:                   howto manager.      (line 2527)
   12123 * BFD_RELOC_CRX_IMM16:                   howto manager.      (line 2531)
   12124 * BFD_RELOC_CRX_IMM32:                   howto manager.      (line 2532)
   12125 * BFD_RELOC_CRX_NUM16:                   howto manager.      (line 2529)
   12126 * BFD_RELOC_CRX_NUM32:                   howto manager.      (line 2530)
   12127 * BFD_RELOC_CRX_NUM8:                    howto manager.      (line 2528)
   12128 * BFD_RELOC_CRX_REGREL12:                howto manager.      (line 2522)
   12129 * BFD_RELOC_CRX_REGREL22:                howto manager.      (line 2523)
   12130 * BFD_RELOC_CRX_REGREL28:                howto manager.      (line 2524)
   12131 * BFD_RELOC_CRX_REGREL32:                howto manager.      (line 2525)
   12132 * BFD_RELOC_CRX_REL16:                   howto manager.      (line 2519)
   12133 * BFD_RELOC_CRX_REL24:                   howto manager.      (line 2520)
   12134 * BFD_RELOC_CRX_REL32:                   howto manager.      (line 2521)
   12135 * BFD_RELOC_CRX_REL4:                    howto manager.      (line 2516)
   12136 * BFD_RELOC_CRX_REL8:                    howto manager.      (line 2517)
   12137 * BFD_RELOC_CRX_REL8_CMP:                howto manager.      (line 2518)
   12138 * BFD_RELOC_CRX_SWITCH16:                howto manager.      (line 2534)
   12139 * BFD_RELOC_CRX_SWITCH32:                howto manager.      (line 2535)
   12140 * BFD_RELOC_CRX_SWITCH8:                 howto manager.      (line 2533)
   12141 * BFD_RELOC_CTOR:                        howto manager.      (line  790)
   12142 * BFD_RELOC_D10V_10_PCREL_L:             howto manager.      (line 1185)
   12143 * BFD_RELOC_D10V_10_PCREL_R:             howto manager.      (line 1181)
   12144 * BFD_RELOC_D10V_18:                     howto manager.      (line 1190)
   12145 * BFD_RELOC_D10V_18_PCREL:               howto manager.      (line 1193)
   12146 * BFD_RELOC_D30V_15:                     howto manager.      (line 1208)
   12147 * BFD_RELOC_D30V_15_PCREL:               howto manager.      (line 1212)
   12148 * BFD_RELOC_D30V_15_PCREL_R:             howto manager.      (line 1216)
   12149 * BFD_RELOC_D30V_21:                     howto manager.      (line 1221)
   12150 * BFD_RELOC_D30V_21_PCREL:               howto manager.      (line 1225)
   12151 * BFD_RELOC_D30V_21_PCREL_R:             howto manager.      (line 1229)
   12152 * BFD_RELOC_D30V_32:                     howto manager.      (line 1234)
   12153 * BFD_RELOC_D30V_32_PCREL:               howto manager.      (line 1237)
   12154 * BFD_RELOC_D30V_6:                      howto manager.      (line 1196)
   12155 * BFD_RELOC_D30V_9_PCREL:                howto manager.      (line 1199)
   12156 * BFD_RELOC_D30V_9_PCREL_R:              howto manager.      (line 1203)
   12157 * BFD_RELOC_DLX_HI16_S:                  howto manager.      (line 1240)
   12158 * BFD_RELOC_DLX_JMP26:                   howto manager.      (line 1246)
   12159 * BFD_RELOC_DLX_LO16:                    howto manager.      (line 1243)
   12160 * BFD_RELOC_EPIPHANY_HIGH:               howto manager.      (line 3494)
   12161 * BFD_RELOC_EPIPHANY_IMM11:              howto manager.      (line 3503)
   12162 * BFD_RELOC_EPIPHANY_IMM8:               howto manager.      (line 3507)
   12163 * BFD_RELOC_EPIPHANY_LOW:                howto manager.      (line 3497)
   12164 * BFD_RELOC_EPIPHANY_SIMM11:             howto manager.      (line 3500)
   12165 * BFD_RELOC_EPIPHANY_SIMM24:             howto manager.      (line 3491)
   12166 * BFD_RELOC_EPIPHANY_SIMM8:              howto manager.      (line 3488)
   12167 * BFD_RELOC_FR30_10_IN_8:                howto manager.      (line 1715)
   12168 * BFD_RELOC_FR30_12_PCREL:               howto manager.      (line 1723)
   12169 * BFD_RELOC_FR30_20:                     howto manager.      (line 1699)
   12170 * BFD_RELOC_FR30_48:                     howto manager.      (line 1696)
   12171 * BFD_RELOC_FR30_6_IN_4:                 howto manager.      (line 1703)
   12172 * BFD_RELOC_FR30_8_IN_8:                 howto manager.      (line 1707)
   12173 * BFD_RELOC_FR30_9_IN_8:                 howto manager.      (line 1711)
   12174 * BFD_RELOC_FR30_9_PCREL:                howto manager.      (line 1719)
   12175 * BFD_RELOC_FRV_FUNCDESC:                howto manager.      (line  497)
   12176 * BFD_RELOC_FRV_FUNCDESC_GOT12:          howto manager.      (line  498)
   12177 * BFD_RELOC_FRV_FUNCDESC_GOTHI:          howto manager.      (line  499)
   12178 * BFD_RELOC_FRV_FUNCDESC_GOTLO:          howto manager.      (line  500)
   12179 * BFD_RELOC_FRV_FUNCDESC_GOTOFF12:       howto manager.      (line  502)
   12180 * BFD_RELOC_FRV_FUNCDESC_GOTOFFHI:       howto manager.      (line  503)
   12181 * BFD_RELOC_FRV_FUNCDESC_GOTOFFLO:       howto manager.      (line  504)
   12182 * BFD_RELOC_FRV_FUNCDESC_VALUE:          howto manager.      (line  501)
   12183 * BFD_RELOC_FRV_GETTLSOFF:               howto manager.      (line  508)
   12184 * BFD_RELOC_FRV_GETTLSOFF_RELAX:         howto manager.      (line  521)
   12185 * BFD_RELOC_FRV_GOT12:                   howto manager.      (line  494)
   12186 * BFD_RELOC_FRV_GOTHI:                   howto manager.      (line  495)
   12187 * BFD_RELOC_FRV_GOTLO:                   howto manager.      (line  496)
   12188 * BFD_RELOC_FRV_GOTOFF12:                howto manager.      (line  505)
   12189 * BFD_RELOC_FRV_GOTOFFHI:                howto manager.      (line  506)
   12190 * BFD_RELOC_FRV_GOTOFFLO:                howto manager.      (line  507)
   12191 * BFD_RELOC_FRV_GOTTLSDESC12:            howto manager.      (line  510)
   12192 * BFD_RELOC_FRV_GOTTLSDESCHI:            howto manager.      (line  511)
   12193 * BFD_RELOC_FRV_GOTTLSDESCLO:            howto manager.      (line  512)
   12194 * BFD_RELOC_FRV_GOTTLSOFF12:             howto manager.      (line  516)
   12195 * BFD_RELOC_FRV_GOTTLSOFFHI:             howto manager.      (line  517)
   12196 * BFD_RELOC_FRV_GOTTLSOFFLO:             howto manager.      (line  518)
   12197 * BFD_RELOC_FRV_GPREL12:                 howto manager.      (line  489)
   12198 * BFD_RELOC_FRV_GPREL32:                 howto manager.      (line  491)
   12199 * BFD_RELOC_FRV_GPRELHI:                 howto manager.      (line  492)
   12200 * BFD_RELOC_FRV_GPRELLO:                 howto manager.      (line  493)
   12201 * BFD_RELOC_FRV_GPRELU12:                howto manager.      (line  490)
   12202 * BFD_RELOC_FRV_HI16:                    howto manager.      (line  488)
   12203 * BFD_RELOC_FRV_LABEL16:                 howto manager.      (line  485)
   12204 * BFD_RELOC_FRV_LABEL24:                 howto manager.      (line  486)
   12205 * BFD_RELOC_FRV_LO16:                    howto manager.      (line  487)
   12206 * BFD_RELOC_FRV_TLSDESC_RELAX:           howto manager.      (line  520)
   12207 * BFD_RELOC_FRV_TLSDESC_VALUE:           howto manager.      (line  509)
   12208 * BFD_RELOC_FRV_TLSMOFF:                 howto manager.      (line  523)
   12209 * BFD_RELOC_FRV_TLSMOFF12:               howto manager.      (line  513)
   12210 * BFD_RELOC_FRV_TLSMOFFHI:               howto manager.      (line  514)
   12211 * BFD_RELOC_FRV_TLSMOFFLO:               howto manager.      (line  515)
   12212 * BFD_RELOC_FRV_TLSOFF:                  howto manager.      (line  519)
   12213 * BFD_RELOC_FRV_TLSOFF_RELAX:            howto manager.      (line  522)
   12214 * BFD_RELOC_GPREL16:                     howto manager.      (line  125)
   12215 * BFD_RELOC_GPREL32:                     howto manager.      (line  126)
   12216 * BFD_RELOC_H8_DIR16A8:                  howto manager.      (line 2653)
   12217 * BFD_RELOC_H8_DIR16R8:                  howto manager.      (line 2654)
   12218 * BFD_RELOC_H8_DIR24A8:                  howto manager.      (line 2655)
   12219 * BFD_RELOC_H8_DIR24R8:                  howto manager.      (line 2656)
   12220 * BFD_RELOC_H8_DIR32A16:                 howto manager.      (line 2657)
   12221 * BFD_RELOC_H8_DISP32A16:                howto manager.      (line 2658)
   12222 * BFD_RELOC_HI16:                        howto manager.      (line  352)
   12223 * BFD_RELOC_HI16_BASEREL:                howto manager.      (line  101)
   12224 * BFD_RELOC_HI16_GOTOFF:                 howto manager.      (line   57)
   12225 * BFD_RELOC_HI16_PCREL:                  howto manager.      (line  364)
   12226 * BFD_RELOC_HI16_PLTOFF:                 howto manager.      (line   69)
   12227 * BFD_RELOC_HI16_S:                      howto manager.      (line  355)
   12228 * BFD_RELOC_HI16_S_BASEREL:              howto manager.      (line  102)
   12229 * BFD_RELOC_HI16_S_GOTOFF:               howto manager.      (line   58)
   12230 * BFD_RELOC_HI16_S_PCREL:                howto manager.      (line  367)
   12231 * BFD_RELOC_HI16_S_PLTOFF:               howto manager.      (line   70)
   12232 * BFD_RELOC_HI22:                        howto manager.      (line  120)
   12233 * BFD_RELOC_I370_D12:                    howto manager.      (line  787)
   12234 * BFD_RELOC_I960_CALLJ:                  howto manager.      (line  132)
   12235 * BFD_RELOC_IA64_COPY:                   howto manager.      (line 2313)
   12236 * BFD_RELOC_IA64_DIR32LSB:               howto manager.      (line 2258)
   12237 * BFD_RELOC_IA64_DIR32MSB:               howto manager.      (line 2257)
   12238 * BFD_RELOC_IA64_DIR64LSB:               howto manager.      (line 2260)
   12239 * BFD_RELOC_IA64_DIR64MSB:               howto manager.      (line 2259)
   12240 * BFD_RELOC_IA64_DTPMOD64LSB:            howto manager.      (line 2323)
   12241 * BFD_RELOC_IA64_DTPMOD64MSB:            howto manager.      (line 2322)
   12242 * BFD_RELOC_IA64_DTPREL14:               howto manager.      (line 2325)
   12243 * BFD_RELOC_IA64_DTPREL22:               howto manager.      (line 2326)
   12244 * BFD_RELOC_IA64_DTPREL32LSB:            howto manager.      (line 2329)
   12245 * BFD_RELOC_IA64_DTPREL32MSB:            howto manager.      (line 2328)
   12246 * BFD_RELOC_IA64_DTPREL64I:              howto manager.      (line 2327)
   12247 * BFD_RELOC_IA64_DTPREL64LSB:            howto manager.      (line 2331)
   12248 * BFD_RELOC_IA64_DTPREL64MSB:            howto manager.      (line 2330)
   12249 * BFD_RELOC_IA64_FPTR32LSB:              howto manager.      (line 2275)
   12250 * BFD_RELOC_IA64_FPTR32MSB:              howto manager.      (line 2274)
   12251 * BFD_RELOC_IA64_FPTR64I:                howto manager.      (line 2273)
   12252 * BFD_RELOC_IA64_FPTR64LSB:              howto manager.      (line 2277)
   12253 * BFD_RELOC_IA64_FPTR64MSB:              howto manager.      (line 2276)
   12254 * BFD_RELOC_IA64_GPREL22:                howto manager.      (line 2261)
   12255 * BFD_RELOC_IA64_GPREL32LSB:             howto manager.      (line 2264)
   12256 * BFD_RELOC_IA64_GPREL32MSB:             howto manager.      (line 2263)
   12257 * BFD_RELOC_IA64_GPREL64I:               howto manager.      (line 2262)
   12258 * BFD_RELOC_IA64_GPREL64LSB:             howto manager.      (line 2266)
   12259 * BFD_RELOC_IA64_GPREL64MSB:             howto manager.      (line 2265)
   12260 * BFD_RELOC_IA64_IMM14:                  howto manager.      (line 2254)
   12261 * BFD_RELOC_IA64_IMM22:                  howto manager.      (line 2255)
   12262 * BFD_RELOC_IA64_IMM64:                  howto manager.      (line 2256)
   12263 * BFD_RELOC_IA64_IPLTLSB:                howto manager.      (line 2312)
   12264 * BFD_RELOC_IA64_IPLTMSB:                howto manager.      (line 2311)
   12265 * BFD_RELOC_IA64_LDXMOV:                 howto manager.      (line 2315)
   12266 * BFD_RELOC_IA64_LTOFF22:                howto manager.      (line 2267)
   12267 * BFD_RELOC_IA64_LTOFF22X:               howto manager.      (line 2314)
   12268 * BFD_RELOC_IA64_LTOFF64I:               howto manager.      (line 2268)
   12269 * BFD_RELOC_IA64_LTOFF_DTPMOD22:         howto manager.      (line 2324)
   12270 * BFD_RELOC_IA64_LTOFF_DTPREL22:         howto manager.      (line 2332)
   12271 * BFD_RELOC_IA64_LTOFF_FPTR22:           howto manager.      (line 2289)
   12272 * BFD_RELOC_IA64_LTOFF_FPTR32LSB:        howto manager.      (line 2292)
   12273 * BFD_RELOC_IA64_LTOFF_FPTR32MSB:        howto manager.      (line 2291)
   12274 * BFD_RELOC_IA64_LTOFF_FPTR64I:          howto manager.      (line 2290)
   12275 * BFD_RELOC_IA64_LTOFF_FPTR64LSB:        howto manager.      (line 2294)
   12276 * BFD_RELOC_IA64_LTOFF_FPTR64MSB:        howto manager.      (line 2293)
   12277 * BFD_RELOC_IA64_LTOFF_TPREL22:          howto manager.      (line 2321)
   12278 * BFD_RELOC_IA64_LTV32LSB:               howto manager.      (line 2308)
   12279 * BFD_RELOC_IA64_LTV32MSB:               howto manager.      (line 2307)
   12280 * BFD_RELOC_IA64_LTV64LSB:               howto manager.      (line 2310)
   12281 * BFD_RELOC_IA64_LTV64MSB:               howto manager.      (line 2309)
   12282 * BFD_RELOC_IA64_PCREL21B:               howto manager.      (line 2278)
   12283 * BFD_RELOC_IA64_PCREL21BI:              howto manager.      (line 2279)
   12284 * BFD_RELOC_IA64_PCREL21F:               howto manager.      (line 2281)
   12285 * BFD_RELOC_IA64_PCREL21M:               howto manager.      (line 2280)
   12286 * BFD_RELOC_IA64_PCREL22:                howto manager.      (line 2282)
   12287 * BFD_RELOC_IA64_PCREL32LSB:             howto manager.      (line 2286)
   12288 * BFD_RELOC_IA64_PCREL32MSB:             howto manager.      (line 2285)
   12289 * BFD_RELOC_IA64_PCREL60B:               howto manager.      (line 2283)
   12290 * BFD_RELOC_IA64_PCREL64I:               howto manager.      (line 2284)
   12291 * BFD_RELOC_IA64_PCREL64LSB:             howto manager.      (line 2288)
   12292 * BFD_RELOC_IA64_PCREL64MSB:             howto manager.      (line 2287)
   12293 * BFD_RELOC_IA64_PLTOFF22:               howto manager.      (line 2269)
   12294 * BFD_RELOC_IA64_PLTOFF64I:              howto manager.      (line 2270)
   12295 * BFD_RELOC_IA64_PLTOFF64LSB:            howto manager.      (line 2272)
   12296 * BFD_RELOC_IA64_PLTOFF64MSB:            howto manager.      (line 2271)
   12297 * BFD_RELOC_IA64_REL32LSB:               howto manager.      (line 2304)
   12298 * BFD_RELOC_IA64_REL32MSB:               howto manager.      (line 2303)
   12299 * BFD_RELOC_IA64_REL64LSB:               howto manager.      (line 2306)
   12300 * BFD_RELOC_IA64_REL64MSB:               howto manager.      (line 2305)
   12301 * BFD_RELOC_IA64_SECREL32LSB:            howto manager.      (line 2300)
   12302 * BFD_RELOC_IA64_SECREL32MSB:            howto manager.      (line 2299)
   12303 * BFD_RELOC_IA64_SECREL64LSB:            howto manager.      (line 2302)
   12304 * BFD_RELOC_IA64_SECREL64MSB:            howto manager.      (line 2301)
   12305 * BFD_RELOC_IA64_SEGREL32LSB:            howto manager.      (line 2296)
   12306 * BFD_RELOC_IA64_SEGREL32MSB:            howto manager.      (line 2295)
   12307 * BFD_RELOC_IA64_SEGREL64LSB:            howto manager.      (line 2298)
   12308 * BFD_RELOC_IA64_SEGREL64MSB:            howto manager.      (line 2297)
   12309 * BFD_RELOC_IA64_TPREL14:                howto manager.      (line 2316)
   12310 * BFD_RELOC_IA64_TPREL22:                howto manager.      (line 2317)
   12311 * BFD_RELOC_IA64_TPREL64I:               howto manager.      (line 2318)
   12312 * BFD_RELOC_IA64_TPREL64LSB:             howto manager.      (line 2320)
   12313 * BFD_RELOC_IA64_TPREL64MSB:             howto manager.      (line 2319)
   12314 * BFD_RELOC_IP2K_ADDR16CJP:              howto manager.      (line 2206)
   12315 * BFD_RELOC_IP2K_BANK:                   howto manager.      (line 2203)
   12316 * BFD_RELOC_IP2K_EX8DATA:                howto manager.      (line 2214)
   12317 * BFD_RELOC_IP2K_FR9:                    howto manager.      (line 2200)
   12318 * BFD_RELOC_IP2K_FR_OFFSET:              howto manager.      (line 2227)
   12319 * BFD_RELOC_IP2K_HI8DATA:                howto manager.      (line 2213)
   12320 * BFD_RELOC_IP2K_HI8INSN:                howto manager.      (line 2218)
   12321 * BFD_RELOC_IP2K_LO8DATA:                howto manager.      (line 2212)
   12322 * BFD_RELOC_IP2K_LO8INSN:                howto manager.      (line 2217)
   12323 * BFD_RELOC_IP2K_PAGE3:                  howto manager.      (line 2209)
   12324 * BFD_RELOC_IP2K_PC_SKIP:                howto manager.      (line 2221)
   12325 * BFD_RELOC_IP2K_TEXT:                   howto manager.      (line 2224)
   12326 * BFD_RELOC_IQ2000_OFFSET_16:            howto manager.      (line 2764)
   12327 * BFD_RELOC_IQ2000_OFFSET_21:            howto manager.      (line 2765)
   12328 * BFD_RELOC_IQ2000_UHI16:                howto manager.      (line 2766)
   12329 * BFD_RELOC_LM32_16_GOT:                 howto manager.      (line 2871)
   12330 * BFD_RELOC_LM32_BRANCH:                 howto manager.      (line 2870)
   12331 * BFD_RELOC_LM32_CALL:                   howto manager.      (line 2869)
   12332 * BFD_RELOC_LM32_COPY:                   howto manager.      (line 2874)
   12333 * BFD_RELOC_LM32_GLOB_DAT:               howto manager.      (line 2875)
   12334 * BFD_RELOC_LM32_GOTOFF_HI16:            howto manager.      (line 2872)
   12335 * BFD_RELOC_LM32_GOTOFF_LO16:            howto manager.      (line 2873)
   12336 * BFD_RELOC_LM32_JMP_SLOT:               howto manager.      (line 2876)
   12337 * BFD_RELOC_LM32_RELATIVE:               howto manager.      (line 2877)
   12338 * BFD_RELOC_LO10:                        howto manager.      (line  121)
   12339 * BFD_RELOC_LO16:                        howto manager.      (line  361)
   12340 * BFD_RELOC_LO16_BASEREL:                howto manager.      (line  100)
   12341 * BFD_RELOC_LO16_GOTOFF:                 howto manager.      (line   56)
   12342 * BFD_RELOC_LO16_PCREL:                  howto manager.      (line  370)
   12343 * BFD_RELOC_LO16_PLTOFF:                 howto manager.      (line   68)
   12344 * BFD_RELOC_M32C_HI8:                    howto manager.      (line 1249)
   12345 * BFD_RELOC_M32C_RL_1ADDR:               howto manager.      (line 1251)
   12346 * BFD_RELOC_M32C_RL_2ADDR:               howto manager.      (line 1252)
   12347 * BFD_RELOC_M32C_RL_JUMP:                howto manager.      (line 1250)
   12348 * BFD_RELOC_M32R_10_PCREL:               howto manager.      (line 1259)
   12349 * BFD_RELOC_M32R_18_PCREL:               howto manager.      (line 1263)
   12350 * BFD_RELOC_M32R_24:                     howto manager.      (line 1255)
   12351 * BFD_RELOC_M32R_26_PCREL:               howto manager.      (line 1266)
   12352 * BFD_RELOC_M32R_26_PLTREL:              howto manager.      (line 1285)
   12353 * BFD_RELOC_M32R_COPY:                   howto manager.      (line 1286)
   12354 * BFD_RELOC_M32R_GLOB_DAT:               howto manager.      (line 1287)
   12355 * BFD_RELOC_M32R_GOT16_HI_SLO:           howto manager.      (line 1296)
   12356 * BFD_RELOC_M32R_GOT16_HI_ULO:           howto manager.      (line 1295)
   12357 * BFD_RELOC_M32R_GOT16_LO:               howto manager.      (line 1297)
   12358 * BFD_RELOC_M32R_GOT24:                  howto manager.      (line 1284)
   12359 * BFD_RELOC_M32R_GOTOFF:                 howto manager.      (line 1290)
   12360 * BFD_RELOC_M32R_GOTOFF_HI_SLO:          howto manager.      (line 1292)
   12361 * BFD_RELOC_M32R_GOTOFF_HI_ULO:          howto manager.      (line 1291)
   12362 * BFD_RELOC_M32R_GOTOFF_LO:              howto manager.      (line 1293)
   12363 * BFD_RELOC_M32R_GOTPC24:                howto manager.      (line 1294)
   12364 * BFD_RELOC_M32R_GOTPC_HI_SLO:           howto manager.      (line 1299)
   12365 * BFD_RELOC_M32R_GOTPC_HI_ULO:           howto manager.      (line 1298)
   12366 * BFD_RELOC_M32R_GOTPC_LO:               howto manager.      (line 1300)
   12367 * BFD_RELOC_M32R_HI16_SLO:               howto manager.      (line 1273)
   12368 * BFD_RELOC_M32R_HI16_ULO:               howto manager.      (line 1269)
   12369 * BFD_RELOC_M32R_JMP_SLOT:               howto manager.      (line 1288)
   12370 * BFD_RELOC_M32R_LO16:                   howto manager.      (line 1277)
   12371 * BFD_RELOC_M32R_RELATIVE:               howto manager.      (line 1289)
   12372 * BFD_RELOC_M32R_SDA16:                  howto manager.      (line 1280)
   12373 * BFD_RELOC_M68HC11_24:                  howto manager.      (line 2368)
   12374 * BFD_RELOC_M68HC11_3B:                  howto manager.      (line 2343)
   12375 * BFD_RELOC_M68HC11_HI8:                 howto manager.      (line 2335)
   12376 * BFD_RELOC_M68HC11_LO16:                howto manager.      (line 2357)
   12377 * BFD_RELOC_M68HC11_LO8:                 howto manager.      (line 2339)
   12378 * BFD_RELOC_M68HC11_PAGE:                howto manager.      (line 2363)
   12379 * BFD_RELOC_M68HC11_RL_GROUP:            howto manager.      (line 2352)
   12380 * BFD_RELOC_M68HC11_RL_JUMP:             howto manager.      (line 2346)
   12381 * BFD_RELOC_M68HC12_10_PCREL:            howto manager.      (line 2428)
   12382 * BFD_RELOC_M68HC12_16B:                 howto manager.      (line 2422)
   12383 * BFD_RELOC_M68HC12_5B:                  howto manager.      (line 2374)
   12384 * BFD_RELOC_M68HC12_9_PCREL:             howto manager.      (line 2425)
   12385 * BFD_RELOC_M68HC12_9B:                  howto manager.      (line 2419)
   12386 * BFD_RELOC_M68HC12_HI8XG:               howto manager.      (line 2435)
   12387 * BFD_RELOC_M68HC12_LO8XG:               howto manager.      (line 2431)
   12388 * BFD_RELOC_MACH_O_LOCAL_SECTDIFF:       howto manager.      (line 2884)
   12389 * BFD_RELOC_MACH_O_PAIR:                 howto manager.      (line 2887)
   12390 * BFD_RELOC_MACH_O_SECTDIFF:             howto manager.      (line 2880)
   12391 * BFD_RELOC_MACH_O_X86_64_BRANCH32:      howto manager.      (line 2890)
   12392 * BFD_RELOC_MACH_O_X86_64_BRANCH8:       howto manager.      (line 2891)
   12393 * BFD_RELOC_MACH_O_X86_64_GOT:           howto manager.      (line 2895)
   12394 * BFD_RELOC_MACH_O_X86_64_GOT_LOAD:      howto manager.      (line 2898)
   12395 * BFD_RELOC_MACH_O_X86_64_PCREL32_1:     howto manager.      (line 2908)
   12396 * BFD_RELOC_MACH_O_X86_64_PCREL32_2:     howto manager.      (line 2911)
   12397 * BFD_RELOC_MACH_O_X86_64_PCREL32_4:     howto manager.      (line 2914)
   12398 * BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32:  howto manager.      (line 2902)
   12399 * BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64:  howto manager.      (line 2905)
   12400 * BFD_RELOC_MCORE_PCREL_32:              howto manager.      (line 1730)
   12401 * BFD_RELOC_MCORE_PCREL_IMM11BY2:        howto manager.      (line 1728)
   12402 * BFD_RELOC_MCORE_PCREL_IMM4BY2:         howto manager.      (line 1729)
   12403 * BFD_RELOC_MCORE_PCREL_IMM8BY4:         howto manager.      (line 1727)
   12404 * BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2:    howto manager.      (line 1731)
   12405 * BFD_RELOC_MCORE_RVA:                   howto manager.      (line 1732)
   12406 * BFD_RELOC_MEP_16:                      howto manager.      (line 1736)
   12407 * BFD_RELOC_MEP_32:                      howto manager.      (line 1737)
   12408 * BFD_RELOC_MEP_8:                       howto manager.      (line 1735)
   12409 * BFD_RELOC_MEP_ADDR24A4:                howto manager.      (line 1752)
   12410 * BFD_RELOC_MEP_GNU_VTENTRY:             howto manager.      (line 1754)
   12411 * BFD_RELOC_MEP_GNU_VTINHERIT:           howto manager.      (line 1753)
   12412 * BFD_RELOC_MEP_GPREL:                   howto manager.      (line 1746)
   12413 * BFD_RELOC_MEP_HI16S:                   howto manager.      (line 1745)
   12414 * BFD_RELOC_MEP_HI16U:                   howto manager.      (line 1744)
   12415 * BFD_RELOC_MEP_LOW16:                   howto manager.      (line 1743)
   12416 * BFD_RELOC_MEP_PCABS24A2:               howto manager.      (line 1742)
   12417 * BFD_RELOC_MEP_PCREL12A2:               howto manager.      (line 1739)
   12418 * BFD_RELOC_MEP_PCREL17A2:               howto manager.      (line 1740)
   12419 * BFD_RELOC_MEP_PCREL24A2:               howto manager.      (line 1741)
   12420 * BFD_RELOC_MEP_PCREL8A2:                howto manager.      (line 1738)
   12421 * BFD_RELOC_MEP_TPREL:                   howto manager.      (line 1747)
   12422 * BFD_RELOC_MEP_TPREL7:                  howto manager.      (line 1748)
   12423 * BFD_RELOC_MEP_TPREL7A2:                howto manager.      (line 1749)
   12424 * BFD_RELOC_MEP_TPREL7A4:                howto manager.      (line 1750)
   12425 * BFD_RELOC_MEP_UIMM24:                  howto manager.      (line 1751)
   12426 * BFD_RELOC_METAG_COPY:                  howto manager.      (line 1776)
   12427 * BFD_RELOC_METAG_GETSET_GOT:            howto manager.      (line 1768)
   12428 * BFD_RELOC_METAG_GETSET_GOTOFF:         howto manager.      (line 1767)
   12429 * BFD_RELOC_METAG_GETSETOFF:             howto manager.      (line 1760)
   12430 * BFD_RELOC_METAG_GLOB_DAT:              howto manager.      (line 1779)
   12431 * BFD_RELOC_METAG_GOTOFF:                howto manager.      (line 1774)
   12432 * BFD_RELOC_METAG_HI16_GOTOFF:           howto manager.      (line 1765)
   12433 * BFD_RELOC_METAG_HI16_GOTPC:            howto manager.      (line 1769)
   12434 * BFD_RELOC_METAG_HI16_PLT:              howto manager.      (line 1771)
   12435 * BFD_RELOC_METAG_HIADDR16:              howto manager.      (line 1757)
   12436 * BFD_RELOC_METAG_HIOG:                  howto manager.      (line 1761)
   12437 * BFD_RELOC_METAG_JMP_SLOT:              howto manager.      (line 1777)
   12438 * BFD_RELOC_METAG_LO16_GOTOFF:           howto manager.      (line 1766)
   12439 * BFD_RELOC_METAG_LO16_GOTPC:            howto manager.      (line 1770)
   12440 * BFD_RELOC_METAG_LO16_PLT:              howto manager.      (line 1772)
   12441 * BFD_RELOC_METAG_LOADDR16:              howto manager.      (line 1758)
   12442 * BFD_RELOC_METAG_LOOG:                  howto manager.      (line 1762)
   12443 * BFD_RELOC_METAG_PLT:                   howto manager.      (line 1775)
   12444 * BFD_RELOC_METAG_REL16:                 howto manager.      (line 1764)
   12445 * BFD_RELOC_METAG_REL8:                  howto manager.      (line 1763)
   12446 * BFD_RELOC_METAG_RELATIVE:              howto manager.      (line 1778)
   12447 * BFD_RELOC_METAG_RELBRANCH:             howto manager.      (line 1759)
   12448 * BFD_RELOC_METAG_RELBRANCH_PLT:         howto manager.      (line 1773)
   12449 * BFD_RELOC_METAG_TLS_DTPMOD:            howto manager.      (line 1790)
   12450 * BFD_RELOC_METAG_TLS_DTPOFF:            howto manager.      (line 1791)
   12451 * BFD_RELOC_METAG_TLS_GD:                howto manager.      (line 1780)
   12452 * BFD_RELOC_METAG_TLS_IE:                howto manager.      (line 1785)
   12453 * BFD_RELOC_METAG_TLS_IENONPIC:          howto manager.      (line 1786)
   12454 * BFD_RELOC_METAG_TLS_IENONPIC_HI16:     howto manager.      (line 1787)
   12455 * BFD_RELOC_METAG_TLS_IENONPIC_LO16:     howto manager.      (line 1788)
   12456 * BFD_RELOC_METAG_TLS_LDM:               howto manager.      (line 1781)
   12457 * BFD_RELOC_METAG_TLS_LDO:               howto manager.      (line 1784)
   12458 * BFD_RELOC_METAG_TLS_LDO_HI16:          howto manager.      (line 1782)
   12459 * BFD_RELOC_METAG_TLS_LDO_LO16:          howto manager.      (line 1783)
   12460 * BFD_RELOC_METAG_TLS_LE:                howto manager.      (line 1792)
   12461 * BFD_RELOC_METAG_TLS_LE_HI16:           howto manager.      (line 1793)
   12462 * BFD_RELOC_METAG_TLS_LE_LO16:           howto manager.      (line 1794)
   12463 * BFD_RELOC_METAG_TLS_TPOFF:             howto manager.      (line 1789)
   12464 * BFD_RELOC_MICROBLAZE_32_GOTOFF:        howto manager.      (line 2961)
   12465 * BFD_RELOC_MICROBLAZE_32_LO:            howto manager.      (line 2917)
   12466 * BFD_RELOC_MICROBLAZE_32_LO_PCREL:      howto manager.      (line 2921)
   12467 * BFD_RELOC_MICROBLAZE_32_ROSDA:         howto manager.      (line 2925)
   12468 * BFD_RELOC_MICROBLAZE_32_RWSDA:         howto manager.      (line 2929)
   12469 * BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM:    howto manager.      (line 2933)
   12470 * BFD_RELOC_MICROBLAZE_32_TLSDTPMOD:     howto manager.      (line 2982)
   12471 * BFD_RELOC_MICROBLAZE_32_TLSDTPREL:     howto manager.      (line 2985)
   12472 * BFD_RELOC_MICROBLAZE_64_GOT:           howto manager.      (line 2947)
   12473 * BFD_RELOC_MICROBLAZE_64_GOTOFF:        howto manager.      (line 2956)
   12474 * BFD_RELOC_MICROBLAZE_64_GOTPC:         howto manager.      (line 2942)
   12475 * BFD_RELOC_MICROBLAZE_64_NONE:          howto manager.      (line 2937)
   12476 * BFD_RELOC_MICROBLAZE_64_PLT:           howto manager.      (line 2951)
   12477 * BFD_RELOC_MICROBLAZE_64_TLS:           howto manager.      (line 2969)
   12478 * BFD_RELOC_MICROBLAZE_64_TLSDTPREL:     howto manager.      (line 2988)
   12479 * BFD_RELOC_MICROBLAZE_64_TLSGD:         howto manager.      (line 2972)
   12480 * BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL:   howto manager.      (line 2992)
   12481 * BFD_RELOC_MICROBLAZE_64_TLSLD:         howto manager.      (line 2977)
   12482 * BFD_RELOC_MICROBLAZE_64_TLSTPREL:      howto manager.      (line 2996)
   12483 * BFD_RELOC_MICROBLAZE_COPY:             howto manager.      (line 2965)
   12484 * BFD_RELOC_MICROMIPS_10_PCREL_S1:       howto manager.      (line  404)
   12485 * BFD_RELOC_MICROMIPS_16_PCREL_S1:       howto manager.      (line  405)
   12486 * BFD_RELOC_MICROMIPS_7_PCREL_S1:        howto manager.      (line  403)
   12487 * BFD_RELOC_MICROMIPS_CALL16:            howto manager.      (line  423)
   12488 * BFD_RELOC_MICROMIPS_CALL_HI16:         howto manager.      (line  429)
   12489 * BFD_RELOC_MICROMIPS_CALL_LO16:         howto manager.      (line  431)
   12490 * BFD_RELOC_MICROMIPS_GOT16:             howto manager.      (line  421)
   12491 * BFD_RELOC_MICROMIPS_GOT_DISP:          howto manager.      (line  439)
   12492 * BFD_RELOC_MICROMIPS_GOT_HI16:          howto manager.      (line  425)
   12493 * BFD_RELOC_MICROMIPS_GOT_LO16:          howto manager.      (line  427)
   12494 * BFD_RELOC_MICROMIPS_GOT_OFST:          howto manager.      (line  437)
   12495 * BFD_RELOC_MICROMIPS_GOT_PAGE:          howto manager.      (line  435)
   12496 * BFD_RELOC_MICROMIPS_GPREL16:           howto manager.      (line  414)
   12497 * BFD_RELOC_MICROMIPS_HI16:              howto manager.      (line  415)
   12498 * BFD_RELOC_MICROMIPS_HI16_S:            howto manager.      (line  416)
   12499 * BFD_RELOC_MICROMIPS_HIGHER:            howto manager.      (line  448)
   12500 * BFD_RELOC_MICROMIPS_HIGHEST:           howto manager.      (line  446)
   12501 * BFD_RELOC_MICROMIPS_JALR:              howto manager.      (line  454)
   12502 * BFD_RELOC_MICROMIPS_JMP:               howto manager.      (line  343)
   12503 * BFD_RELOC_MICROMIPS_LITERAL:           howto manager.      (line  400)
   12504 * BFD_RELOC_MICROMIPS_LO16:              howto manager.      (line  417)
   12505 * BFD_RELOC_MICROMIPS_SCN_DISP:          howto manager.      (line  450)
   12506 * BFD_RELOC_MICROMIPS_SUB:               howto manager.      (line  433)
   12507 * BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16:   howto manager.      (line  464)
   12508 * BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16:   howto manager.      (line  466)
   12509 * BFD_RELOC_MICROMIPS_TLS_GD:            howto manager.      (line  460)
   12510 * BFD_RELOC_MICROMIPS_TLS_GOTTPREL:      howto manager.      (line  468)
   12511 * BFD_RELOC_MICROMIPS_TLS_LDM:           howto manager.      (line  462)
   12512 * BFD_RELOC_MICROMIPS_TLS_TPREL_HI16:    howto manager.      (line  472)
   12513 * BFD_RELOC_MICROMIPS_TLS_TPREL_LO16:    howto manager.      (line  474)
   12514 * BFD_RELOC_MIPS16_CALL16:               howto manager.      (line  374)
   12515 * BFD_RELOC_MIPS16_GOT16:                howto manager.      (line  373)
   12516 * BFD_RELOC_MIPS16_GPREL:                howto manager.      (line  349)
   12517 * BFD_RELOC_MIPS16_HI16:                 howto manager.      (line  378)
   12518 * BFD_RELOC_MIPS16_HI16_S:               howto manager.      (line  381)
   12519 * BFD_RELOC_MIPS16_JMP:                  howto manager.      (line  346)
   12520 * BFD_RELOC_MIPS16_LO16:                 howto manager.      (line  387)
   12521 * BFD_RELOC_MIPS16_TLS_DTPREL_HI16:      howto manager.      (line  392)
   12522 * BFD_RELOC_MIPS16_TLS_DTPREL_LO16:      howto manager.      (line  393)
   12523 * BFD_RELOC_MIPS16_TLS_GD:               howto manager.      (line  390)
   12524 * BFD_RELOC_MIPS16_TLS_GOTTPREL:         howto manager.      (line  394)
   12525 * BFD_RELOC_MIPS16_TLS_LDM:              howto manager.      (line  391)
   12526 * BFD_RELOC_MIPS16_TLS_TPREL_HI16:       howto manager.      (line  395)
   12527 * BFD_RELOC_MIPS16_TLS_TPREL_LO16:       howto manager.      (line  396)
   12528 * BFD_RELOC_MIPS_18_PCREL_S3:            howto manager.      (line  410)
   12529 * BFD_RELOC_MIPS_19_PCREL_S2:            howto manager.      (line  411)
   12530 * BFD_RELOC_MIPS_21_PCREL_S2:            howto manager.      (line  408)
   12531 * BFD_RELOC_MIPS_26_PCREL_S2:            howto manager.      (line  409)
   12532 * BFD_RELOC_MIPS_CALL16:                 howto manager.      (line  422)
   12533 * BFD_RELOC_MIPS_CALL_HI16:              howto manager.      (line  428)
   12534 * BFD_RELOC_MIPS_CALL_LO16:              howto manager.      (line  430)
   12535 * BFD_RELOC_MIPS_COPY:                   howto manager.      (line  478)
   12536 * BFD_RELOC_MIPS_DELETE:                 howto manager.      (line  444)
   12537 * BFD_RELOC_MIPS_EH:                     howto manager.      (line  475)
   12538 * BFD_RELOC_MIPS_GOT16:                  howto manager.      (line  420)
   12539 * BFD_RELOC_MIPS_GOT_DISP:               howto manager.      (line  438)
   12540 * BFD_RELOC_MIPS_GOT_HI16:               howto manager.      (line  424)
   12541 * BFD_RELOC_MIPS_GOT_LO16:               howto manager.      (line  426)
   12542 * BFD_RELOC_MIPS_GOT_OFST:               howto manager.      (line  436)
   12543 * BFD_RELOC_MIPS_GOT_PAGE:               howto manager.      (line  434)
   12544 * BFD_RELOC_MIPS_HIGHER:                 howto manager.      (line  447)
   12545 * BFD_RELOC_MIPS_HIGHEST:                howto manager.      (line  445)
   12546 * BFD_RELOC_MIPS_INSERT_A:               howto manager.      (line  442)
   12547 * BFD_RELOC_MIPS_INSERT_B:               howto manager.      (line  443)
   12548 * BFD_RELOC_MIPS_JALR:                   howto manager.      (line  453)
   12549 * BFD_RELOC_MIPS_JMP:                    howto manager.      (line  342)
   12550 * BFD_RELOC_MIPS_JUMP_SLOT:              howto manager.      (line  479)
   12551 * BFD_RELOC_MIPS_LITERAL:                howto manager.      (line  399)
   12552 * BFD_RELOC_MIPS_REL16:                  howto manager.      (line  451)
   12553 * BFD_RELOC_MIPS_RELGOT:                 howto manager.      (line  452)
   12554 * BFD_RELOC_MIPS_SCN_DISP:               howto manager.      (line  449)
   12555 * BFD_RELOC_MIPS_SHIFT5:                 howto manager.      (line  440)
   12556 * BFD_RELOC_MIPS_SHIFT6:                 howto manager.      (line  441)
   12557 * BFD_RELOC_MIPS_SUB:                    howto manager.      (line  432)
   12558 * BFD_RELOC_MIPS_TLS_DTPMOD32:           howto manager.      (line  455)
   12559 * BFD_RELOC_MIPS_TLS_DTPMOD64:           howto manager.      (line  457)
   12560 * BFD_RELOC_MIPS_TLS_DTPREL32:           howto manager.      (line  456)
   12561 * BFD_RELOC_MIPS_TLS_DTPREL64:           howto manager.      (line  458)
   12562 * BFD_RELOC_MIPS_TLS_DTPREL_HI16:        howto manager.      (line  463)
   12563 * BFD_RELOC_MIPS_TLS_DTPREL_LO16:        howto manager.      (line  465)
   12564 * BFD_RELOC_MIPS_TLS_GD:                 howto manager.      (line  459)
   12565 * BFD_RELOC_MIPS_TLS_GOTTPREL:           howto manager.      (line  467)
   12566 * BFD_RELOC_MIPS_TLS_LDM:                howto manager.      (line  461)
   12567 * BFD_RELOC_MIPS_TLS_TPREL32:            howto manager.      (line  469)
   12568 * BFD_RELOC_MIPS_TLS_TPREL64:            howto manager.      (line  470)
   12569 * BFD_RELOC_MIPS_TLS_TPREL_HI16:         howto manager.      (line  471)
   12570 * BFD_RELOC_MIPS_TLS_TPREL_LO16:         howto manager.      (line  473)
   12571 * BFD_RELOC_MMIX_ADDR19:                 howto manager.      (line 1823)
   12572 * BFD_RELOC_MMIX_ADDR27:                 howto manager.      (line 1827)
   12573 * BFD_RELOC_MMIX_BASE_PLUS_OFFSET:       howto manager.      (line 1839)
   12574 * BFD_RELOC_MMIX_CBRANCH:                howto manager.      (line 1803)
   12575 * BFD_RELOC_MMIX_CBRANCH_1:              howto manager.      (line 1805)
   12576 * BFD_RELOC_MMIX_CBRANCH_2:              howto manager.      (line 1806)
   12577 * BFD_RELOC_MMIX_CBRANCH_3:              howto manager.      (line 1807)
   12578 * BFD_RELOC_MMIX_CBRANCH_J:              howto manager.      (line 1804)
   12579 * BFD_RELOC_MMIX_GETA:                   howto manager.      (line 1797)
   12580 * BFD_RELOC_MMIX_GETA_1:                 howto manager.      (line 1798)
   12581 * BFD_RELOC_MMIX_GETA_2:                 howto manager.      (line 1799)
   12582 * BFD_RELOC_MMIX_GETA_3:                 howto manager.      (line 1800)
   12583 * BFD_RELOC_MMIX_JMP:                    howto manager.      (line 1817)
   12584 * BFD_RELOC_MMIX_JMP_1:                  howto manager.      (line 1818)
   12585 * BFD_RELOC_MMIX_JMP_2:                  howto manager.      (line 1819)
   12586 * BFD_RELOC_MMIX_JMP_3:                  howto manager.      (line 1820)
   12587 * BFD_RELOC_MMIX_LOCAL:                  howto manager.      (line 1843)
   12588 * BFD_RELOC_MMIX_PUSHJ:                  howto manager.      (line 1810)
   12589 * BFD_RELOC_MMIX_PUSHJ_1:                howto manager.      (line 1811)
   12590 * BFD_RELOC_MMIX_PUSHJ_2:                howto manager.      (line 1812)
   12591 * BFD_RELOC_MMIX_PUSHJ_3:                howto manager.      (line 1813)
   12592 * BFD_RELOC_MMIX_PUSHJ_STUBBABLE:        howto manager.      (line 1814)
   12593 * BFD_RELOC_MMIX_REG:                    howto manager.      (line 1835)
   12594 * BFD_RELOC_MMIX_REG_OR_BYTE:            howto manager.      (line 1831)
   12595 * BFD_RELOC_MN10300_16_PCREL:            howto manager.      (line  577)
   12596 * BFD_RELOC_MN10300_32_PCREL:            howto manager.      (line  573)
   12597 * BFD_RELOC_MN10300_ALIGN:               howto manager.      (line  558)
   12598 * BFD_RELOC_MN10300_COPY:                howto manager.      (line  541)
   12599 * BFD_RELOC_MN10300_GLOB_DAT:            howto manager.      (line  544)
   12600 * BFD_RELOC_MN10300_GOT16:               howto manager.      (line  537)
   12601 * BFD_RELOC_MN10300_GOT24:               howto manager.      (line  533)
   12602 * BFD_RELOC_MN10300_GOT32:               howto manager.      (line  529)
   12603 * BFD_RELOC_MN10300_GOTOFF24:            howto manager.      (line  526)
   12604 * BFD_RELOC_MN10300_JMP_SLOT:            howto manager.      (line  547)
   12605 * BFD_RELOC_MN10300_RELATIVE:            howto manager.      (line  550)
   12606 * BFD_RELOC_MN10300_SYM_DIFF:            howto manager.      (line  553)
   12607 * BFD_RELOC_MN10300_TLS_DTPMOD:          howto manager.      (line  568)
   12608 * BFD_RELOC_MN10300_TLS_DTPOFF:          howto manager.      (line  569)
   12609 * BFD_RELOC_MN10300_TLS_GD:              howto manager.      (line  562)
   12610 * BFD_RELOC_MN10300_TLS_GOTIE:           howto manager.      (line  565)
   12611 * BFD_RELOC_MN10300_TLS_IE:              howto manager.      (line  566)
   12612 * BFD_RELOC_MN10300_TLS_LD:              howto manager.      (line  563)
   12613 * BFD_RELOC_MN10300_TLS_LDO:             howto manager.      (line  564)
   12614 * BFD_RELOC_MN10300_TLS_LE:              howto manager.      (line  567)
   12615 * BFD_RELOC_MN10300_TLS_TPOFF:           howto manager.      (line  570)
   12616 * BFD_RELOC_MOXIE_10_PCREL:              howto manager.      (line  482)
   12617 * BFD_RELOC_MSP430_10_PCREL:             howto manager.      (line 2699)
   12618 * BFD_RELOC_MSP430_16:                   howto manager.      (line 2701)
   12619 * BFD_RELOC_MSP430_16_BYTE:              howto manager.      (line 2703)
   12620 * BFD_RELOC_MSP430_16_PCREL:             howto manager.      (line 2700)
   12621 * BFD_RELOC_MSP430_16_PCREL_BYTE:        howto manager.      (line 2702)
   12622 * BFD_RELOC_MSP430_2X_PCREL:             howto manager.      (line 2704)
   12623 * BFD_RELOC_MSP430_ABS8:                 howto manager.      (line 2706)
   12624 * BFD_RELOC_MSP430_ABS_HI16:             howto manager.      (line 2718)
   12625 * BFD_RELOC_MSP430_PREL31:               howto manager.      (line 2719)
   12626 * BFD_RELOC_MSP430_RL_PCREL:             howto manager.      (line 2705)
   12627 * BFD_RELOC_MSP430_SYM_DIFF:             howto manager.      (line 2720)
   12628 * BFD_RELOC_MSP430X_ABS16:               howto manager.      (line 2717)
   12629 * BFD_RELOC_MSP430X_ABS20_ADR_DST:       howto manager.      (line 2714)
   12630 * BFD_RELOC_MSP430X_ABS20_ADR_SRC:       howto manager.      (line 2713)
   12631 * BFD_RELOC_MSP430X_ABS20_EXT_DST:       howto manager.      (line 2711)
   12632 * BFD_RELOC_MSP430X_ABS20_EXT_ODST:      howto manager.      (line 2712)
   12633 * BFD_RELOC_MSP430X_ABS20_EXT_SRC:       howto manager.      (line 2710)
   12634 * BFD_RELOC_MSP430X_PCR16:               howto manager.      (line 2715)
   12635 * BFD_RELOC_MSP430X_PCR20_CALL:          howto manager.      (line 2716)
   12636 * BFD_RELOC_MSP430X_PCR20_EXT_DST:       howto manager.      (line 2708)
   12637 * BFD_RELOC_MSP430X_PCR20_EXT_ODST:      howto manager.      (line 2709)
   12638 * BFD_RELOC_MSP430X_PCR20_EXT_SRC:       howto manager.      (line 2707)
   12639 * BFD_RELOC_MT_GNU_VTENTRY:              howto manager.      (line 2693)
   12640 * BFD_RELOC_MT_GNU_VTINHERIT:            howto manager.      (line 2690)
   12641 * BFD_RELOC_MT_HI16:                     howto manager.      (line 2684)
   12642 * BFD_RELOC_MT_LO16:                     howto manager.      (line 2687)
   12643 * BFD_RELOC_MT_PC16:                     howto manager.      (line 2681)
   12644 * BFD_RELOC_MT_PCINSN8:                  howto manager.      (line 2696)
   12645 * BFD_RELOC_NDS32_10_UPCREL:             howto manager.      (line 1452)
   12646 * BFD_RELOC_NDS32_10IFCU_PCREL:          howto manager.      (line 1485)
   12647 * BFD_RELOC_NDS32_15_FIXED:              howto manager.      (line 1406)
   12648 * BFD_RELOC_NDS32_15_PCREL:              howto manager.      (line 1314)
   12649 * BFD_RELOC_NDS32_17_FIXED:              howto manager.      (line 1407)
   12650 * BFD_RELOC_NDS32_17_PCREL:              howto manager.      (line 1317)
   12651 * BFD_RELOC_NDS32_17IFC_PCREL:           howto manager.      (line 1484)
   12652 * BFD_RELOC_NDS32_20:                    howto manager.      (line 1303)
   12653 * BFD_RELOC_NDS32_25_ABS:                howto manager.      (line 1479)
   12654 * BFD_RELOC_NDS32_25_FIXED:              howto manager.      (line 1408)
   12655 * BFD_RELOC_NDS32_25_PCREL:              howto manager.      (line 1320)
   12656 * BFD_RELOC_NDS32_25_PLTREL:             howto manager.      (line 1381)
   12657 * BFD_RELOC_NDS32_5:                     howto manager.      (line 1449)
   12658 * BFD_RELOC_NDS32_9_FIXED:               howto manager.      (line 1405)
   12659 * BFD_RELOC_NDS32_9_PCREL:               howto manager.      (line 1306)
   12660 * BFD_RELOC_NDS32_9_PLTREL:              howto manager.      (line 1380)
   12661 * BFD_RELOC_NDS32_COPY:                  howto manager.      (line 1382)
   12662 * BFD_RELOC_NDS32_DATA:                  howto manager.      (line 1482)
   12663 * BFD_RELOC_NDS32_DIFF16:                howto manager.      (line 1473)
   12664 * BFD_RELOC_NDS32_DIFF32:                howto manager.      (line 1474)
   12665 * BFD_RELOC_NDS32_DIFF8:                 howto manager.      (line 1472)
   12666 * BFD_RELOC_NDS32_DIFF_ULEB128:          howto manager.      (line 1475)
   12667 * BFD_RELOC_NDS32_DWARF2_LEB:            howto manager.      (line 1432)
   12668 * BFD_RELOC_NDS32_DWARF2_OP1:            howto manager.      (line 1430)
   12669 * BFD_RELOC_NDS32_DWARF2_OP2:            howto manager.      (line 1431)
   12670 * BFD_RELOC_NDS32_EMPTY:                 howto manager.      (line 1476)
   12671 * BFD_RELOC_NDS32_GLOB_DAT:              howto manager.      (line 1383)
   12672 * BFD_RELOC_NDS32_GOT15S2:               howto manager.      (line 1445)
   12673 * BFD_RELOC_NDS32_GOT17S2:               howto manager.      (line 1446)
   12674 * BFD_RELOC_NDS32_GOT20:                 howto manager.      (line 1379)
   12675 * BFD_RELOC_NDS32_GOT_HI20:              howto manager.      (line 1390)
   12676 * BFD_RELOC_NDS32_GOT_LO12:              howto manager.      (line 1391)
   12677 * BFD_RELOC_NDS32_GOT_LO15:              howto manager.      (line 1441)
   12678 * BFD_RELOC_NDS32_GOT_LO19:              howto manager.      (line 1442)
   12679 * BFD_RELOC_NDS32_GOT_SUFF:              howto manager.      (line 1460)
   12680 * BFD_RELOC_NDS32_GOTOFF:                howto manager.      (line 1386)
   12681 * BFD_RELOC_NDS32_GOTOFF_HI20:           howto manager.      (line 1387)
   12682 * BFD_RELOC_NDS32_GOTOFF_LO12:           howto manager.      (line 1388)
   12683 * BFD_RELOC_NDS32_GOTOFF_LO15:           howto manager.      (line 1443)
   12684 * BFD_RELOC_NDS32_GOTOFF_LO19:           howto manager.      (line 1444)
   12685 * BFD_RELOC_NDS32_GOTOFF_SUFF:           howto manager.      (line 1461)
   12686 * BFD_RELOC_NDS32_GOTPC20:               howto manager.      (line 1389)
   12687 * BFD_RELOC_NDS32_GOTPC_HI20:            howto manager.      (line 1392)
   12688 * BFD_RELOC_NDS32_GOTPC_LO12:            howto manager.      (line 1393)
   12689 * BFD_RELOC_NDS32_GOTTPOFF:              howto manager.      (line 1493)
   12690 * BFD_RELOC_NDS32_HI20:                  howto manager.      (line 1323)
   12691 * BFD_RELOC_NDS32_INSN16:                howto manager.      (line 1396)
   12692 * BFD_RELOC_NDS32_JMP_SLOT:              howto manager.      (line 1384)
   12693 * BFD_RELOC_NDS32_LABEL:                 howto manager.      (line 1397)
   12694 * BFD_RELOC_NDS32_LO12S0:                howto manager.      (line 1339)
   12695 * BFD_RELOC_NDS32_LO12S0_ORI:            howto manager.      (line 1343)
   12696 * BFD_RELOC_NDS32_LO12S1:                howto manager.      (line 1335)
   12697 * BFD_RELOC_NDS32_LO12S2:                howto manager.      (line 1331)
   12698 * BFD_RELOC_NDS32_LO12S2_DP:             howto manager.      (line 1426)
   12699 * BFD_RELOC_NDS32_LO12S2_SP:             howto manager.      (line 1427)
   12700 * BFD_RELOC_NDS32_LO12S3:                howto manager.      (line 1327)
   12701 * BFD_RELOC_NDS32_LOADSTORE:             howto manager.      (line 1404)
   12702 * BFD_RELOC_NDS32_LONGCALL1:             howto manager.      (line 1398)
   12703 * BFD_RELOC_NDS32_LONGCALL2:             howto manager.      (line 1399)
   12704 * BFD_RELOC_NDS32_LONGCALL3:             howto manager.      (line 1400)
   12705 * BFD_RELOC_NDS32_LONGCALL4:             howto manager.      (line 1409)
   12706 * BFD_RELOC_NDS32_LONGCALL5:             howto manager.      (line 1410)
   12707 * BFD_RELOC_NDS32_LONGCALL6:             howto manager.      (line 1411)
   12708 * BFD_RELOC_NDS32_LONGJUMP1:             howto manager.      (line 1401)
   12709 * BFD_RELOC_NDS32_LONGJUMP2:             howto manager.      (line 1402)
   12710 * BFD_RELOC_NDS32_LONGJUMP3:             howto manager.      (line 1403)
   12711 * BFD_RELOC_NDS32_LONGJUMP4:             howto manager.      (line 1412)
   12712 * BFD_RELOC_NDS32_LONGJUMP5:             howto manager.      (line 1413)
   12713 * BFD_RELOC_NDS32_LONGJUMP6:             howto manager.      (line 1414)
   12714 * BFD_RELOC_NDS32_LONGJUMP7:             howto manager.      (line 1415)
   12715 * BFD_RELOC_NDS32_MINUEND:               howto manager.      (line 1470)
   12716 * BFD_RELOC_NDS32_MULCALL_SUFF:          howto manager.      (line 1463)
   12717 * BFD_RELOC_NDS32_PLT_GOT_SUFF:          howto manager.      (line 1462)
   12718 * BFD_RELOC_NDS32_PLT_GOTREL_HI20:       howto manager.      (line 1420)
   12719 * BFD_RELOC_NDS32_PLT_GOTREL_LO12:       howto manager.      (line 1421)
   12720 * BFD_RELOC_NDS32_PLT_GOTREL_LO15:       howto manager.      (line 1439)
   12721 * BFD_RELOC_NDS32_PLT_GOTREL_LO19:       howto manager.      (line 1440)
   12722 * BFD_RELOC_NDS32_PLT_GOTREL_LO20:       howto manager.      (line 1438)
   12723 * BFD_RELOC_NDS32_PLTBLOCK:              howto manager.      (line 1467)
   12724 * BFD_RELOC_NDS32_PLTREL_HI20:           howto manager.      (line 1418)
   12725 * BFD_RELOC_NDS32_PLTREL_LO12:           howto manager.      (line 1419)
   12726 * BFD_RELOC_NDS32_PTR:                   howto manager.      (line 1464)
   12727 * BFD_RELOC_NDS32_PTR_COUNT:             howto manager.      (line 1465)
   12728 * BFD_RELOC_NDS32_PTR_RESOLVED:          howto manager.      (line 1466)
   12729 * BFD_RELOC_NDS32_RELATIVE:              howto manager.      (line 1385)
   12730 * BFD_RELOC_NDS32_RELAX_ENTRY:           howto manager.      (line 1459)
   12731 * BFD_RELOC_NDS32_RELAX_REGION_BEGIN:    howto manager.      (line 1468)
   12732 * BFD_RELOC_NDS32_RELAX_REGION_END:      howto manager.      (line 1469)
   12733 * BFD_RELOC_NDS32_SDA12S2_DP:            howto manager.      (line 1424)
   12734 * BFD_RELOC_NDS32_SDA12S2_SP:            howto manager.      (line 1425)
   12735 * BFD_RELOC_NDS32_SDA15S0:               howto manager.      (line 1359)
   12736 * BFD_RELOC_NDS32_SDA15S1:               howto manager.      (line 1355)
   12737 * BFD_RELOC_NDS32_SDA15S2:               howto manager.      (line 1351)
   12738 * BFD_RELOC_NDS32_SDA15S3:               howto manager.      (line 1347)
   12739 * BFD_RELOC_NDS32_SDA16S3:               howto manager.      (line 1363)
   12740 * BFD_RELOC_NDS32_SDA17S2:               howto manager.      (line 1367)
   12741 * BFD_RELOC_NDS32_SDA18S1:               howto manager.      (line 1371)
   12742 * BFD_RELOC_NDS32_SDA19S0:               howto manager.      (line 1375)
   12743 * BFD_RELOC_NDS32_SDA_FP7U2_RELA:        howto manager.      (line 1456)
   12744 * BFD_RELOC_NDS32_SUBTRAHEND:            howto manager.      (line 1471)
   12745 * BFD_RELOC_NDS32_TLS_IE_HI20:           howto manager.      (line 1494)
   12746 * BFD_RELOC_NDS32_TLS_IE_LO12S2:         howto manager.      (line 1495)
   12747 * BFD_RELOC_NDS32_TLS_LE_15S0:           howto manager.      (line 1498)
   12748 * BFD_RELOC_NDS32_TLS_LE_15S1:           howto manager.      (line 1499)
   12749 * BFD_RELOC_NDS32_TLS_LE_15S2:           howto manager.      (line 1500)
   12750 * BFD_RELOC_NDS32_TLS_LE_20:             howto manager.      (line 1497)
   12751 * BFD_RELOC_NDS32_TLS_LE_ADD:            howto manager.      (line 1491)
   12752 * BFD_RELOC_NDS32_TLS_LE_HI20:           howto manager.      (line 1489)
   12753 * BFD_RELOC_NDS32_TLS_LE_LO12:           howto manager.      (line 1490)
   12754 * BFD_RELOC_NDS32_TLS_LE_LS:             howto manager.      (line 1492)
   12755 * BFD_RELOC_NDS32_TLS_TPOFF:             howto manager.      (line 1496)
   12756 * BFD_RELOC_NDS32_TPOFF:                 howto manager.      (line 1488)
   12757 * BFD_RELOC_NDS32_TRAN:                  howto manager.      (line 1483)
   12758 * BFD_RELOC_NDS32_UPDATE_TA:             howto manager.      (line 1435)
   12759 * BFD_RELOC_NDS32_WORD_9_PCREL:          howto manager.      (line 1310)
   12760 * BFD_RELOC_NIOS2_ALIGN:                 howto manager.      (line 2737)
   12761 * BFD_RELOC_NIOS2_CACHE_OPX:             howto manager.      (line 2727)
   12762 * BFD_RELOC_NIOS2_CALL16:                howto manager.      (line 2739)
   12763 * BFD_RELOC_NIOS2_CALL26:                howto manager.      (line 2725)
   12764 * BFD_RELOC_NIOS2_CALL26_NOAT:           howto manager.      (line 2757)
   12765 * BFD_RELOC_NIOS2_CALL_HA:               howto manager.      (line 2761)
   12766 * BFD_RELOC_NIOS2_CALL_LO:               howto manager.      (line 2760)
   12767 * BFD_RELOC_NIOS2_CALLR:                 howto manager.      (line 2736)
   12768 * BFD_RELOC_NIOS2_CJMP:                  howto manager.      (line 2735)
   12769 * BFD_RELOC_NIOS2_COPY:                  howto manager.      (line 2752)
   12770 * BFD_RELOC_NIOS2_GLOB_DAT:              howto manager.      (line 2753)
   12771 * BFD_RELOC_NIOS2_GOT16:                 howto manager.      (line 2738)
   12772 * BFD_RELOC_NIOS2_GOT_HA:                howto manager.      (line 2759)
   12773 * BFD_RELOC_NIOS2_GOT_LO:                howto manager.      (line 2758)
   12774 * BFD_RELOC_NIOS2_GOTOFF:                howto manager.      (line 2756)
   12775 * BFD_RELOC_NIOS2_GOTOFF_HA:             howto manager.      (line 2741)
   12776 * BFD_RELOC_NIOS2_GOTOFF_LO:             howto manager.      (line 2740)
   12777 * BFD_RELOC_NIOS2_GPREL:                 howto manager.      (line 2733)
   12778 * BFD_RELOC_NIOS2_HI16:                  howto manager.      (line 2730)
   12779 * BFD_RELOC_NIOS2_HIADJ16:               howto manager.      (line 2732)
   12780 * BFD_RELOC_NIOS2_IMM5:                  howto manager.      (line 2726)
   12781 * BFD_RELOC_NIOS2_IMM6:                  howto manager.      (line 2728)
   12782 * BFD_RELOC_NIOS2_IMM8:                  howto manager.      (line 2729)
   12783 * BFD_RELOC_NIOS2_JUMP_SLOT:             howto manager.      (line 2754)
   12784 * BFD_RELOC_NIOS2_LO16:                  howto manager.      (line 2731)
   12785 * BFD_RELOC_NIOS2_PCREL_HA:              howto manager.      (line 2743)
   12786 * BFD_RELOC_NIOS2_PCREL_LO:              howto manager.      (line 2742)
   12787 * BFD_RELOC_NIOS2_RELATIVE:              howto manager.      (line 2755)
   12788 * BFD_RELOC_NIOS2_S16:                   howto manager.      (line 2723)
   12789 * BFD_RELOC_NIOS2_TLS_DTPMOD:            howto manager.      (line 2749)
   12790 * BFD_RELOC_NIOS2_TLS_DTPREL:            howto manager.      (line 2750)
   12791 * BFD_RELOC_NIOS2_TLS_GD16:              howto manager.      (line 2744)
   12792 * BFD_RELOC_NIOS2_TLS_IE16:              howto manager.      (line 2747)
   12793 * BFD_RELOC_NIOS2_TLS_LDM16:             howto manager.      (line 2745)
   12794 * BFD_RELOC_NIOS2_TLS_LDO16:             howto manager.      (line 2746)
   12795 * BFD_RELOC_NIOS2_TLS_LE16:              howto manager.      (line 2748)
   12796 * BFD_RELOC_NIOS2_TLS_TPREL:             howto manager.      (line 2751)
   12797 * BFD_RELOC_NIOS2_U16:                   howto manager.      (line 2724)
   12798 * BFD_RELOC_NIOS2_UJMP:                  howto manager.      (line 2734)
   12799 * BFD_RELOC_NONE:                        howto manager.      (line  135)
   12800 * BFD_RELOC_NS32K_DISP_16:               howto manager.      (line  645)
   12801 * BFD_RELOC_NS32K_DISP_16_PCREL:         howto manager.      (line  648)
   12802 * BFD_RELOC_NS32K_DISP_32:               howto manager.      (line  646)
   12803 * BFD_RELOC_NS32K_DISP_32_PCREL:         howto manager.      (line  649)
   12804 * BFD_RELOC_NS32K_DISP_8:                howto manager.      (line  644)
   12805 * BFD_RELOC_NS32K_DISP_8_PCREL:          howto manager.      (line  647)
   12806 * BFD_RELOC_NS32K_IMM_16:                howto manager.      (line  639)
   12807 * BFD_RELOC_NS32K_IMM_16_PCREL:          howto manager.      (line  642)
   12808 * BFD_RELOC_NS32K_IMM_32:                howto manager.      (line  640)
   12809 * BFD_RELOC_NS32K_IMM_32_PCREL:          howto manager.      (line  643)
   12810 * BFD_RELOC_NS32K_IMM_8:                 howto manager.      (line  638)
   12811 * BFD_RELOC_NS32K_IMM_8_PCREL:           howto manager.      (line  641)
   12812 * BFD_RELOC_OR1K_COPY:                   howto manager.      (line 2634)
   12813 * BFD_RELOC_OR1K_GLOB_DAT:               howto manager.      (line 2635)
   12814 * BFD_RELOC_OR1K_GOT16:                  howto manager.      (line 2630)
   12815 * BFD_RELOC_OR1K_GOTOFF_HI16:            howto manager.      (line 2632)
   12816 * BFD_RELOC_OR1K_GOTOFF_LO16:            howto manager.      (line 2633)
   12817 * BFD_RELOC_OR1K_GOTPC_HI16:             howto manager.      (line 2628)
   12818 * BFD_RELOC_OR1K_GOTPC_LO16:             howto manager.      (line 2629)
   12819 * BFD_RELOC_OR1K_JMP_SLOT:               howto manager.      (line 2636)
   12820 * BFD_RELOC_OR1K_PLT26:                  howto manager.      (line 2631)
   12821 * BFD_RELOC_OR1K_REL_26:                 howto manager.      (line 2627)
   12822 * BFD_RELOC_OR1K_RELATIVE:               howto manager.      (line 2637)
   12823 * BFD_RELOC_OR1K_TLS_DTPMOD:             howto manager.      (line 2650)
   12824 * BFD_RELOC_OR1K_TLS_DTPOFF:             howto manager.      (line 2649)
   12825 * BFD_RELOC_OR1K_TLS_GD_HI16:            howto manager.      (line 2638)
   12826 * BFD_RELOC_OR1K_TLS_GD_LO16:            howto manager.      (line 2639)
   12827 * BFD_RELOC_OR1K_TLS_IE_HI16:            howto manager.      (line 2644)
   12828 * BFD_RELOC_OR1K_TLS_IE_LO16:            howto manager.      (line 2645)
   12829 * BFD_RELOC_OR1K_TLS_LDM_HI16:           howto manager.      (line 2640)
   12830 * BFD_RELOC_OR1K_TLS_LDM_LO16:           howto manager.      (line 2641)
   12831 * BFD_RELOC_OR1K_TLS_LDO_HI16:           howto manager.      (line 2642)
   12832 * BFD_RELOC_OR1K_TLS_LDO_LO16:           howto manager.      (line 2643)
   12833 * BFD_RELOC_OR1K_TLS_LE_HI16:            howto manager.      (line 2646)
   12834 * BFD_RELOC_OR1K_TLS_LE_LO16:            howto manager.      (line 2647)
   12835 * BFD_RELOC_OR1K_TLS_TPOFF:              howto manager.      (line 2648)
   12836 * BFD_RELOC_PDP11_DISP_6_PCREL:          howto manager.      (line  653)
   12837 * BFD_RELOC_PDP11_DISP_8_PCREL:          howto manager.      (line  652)
   12838 * BFD_RELOC_PJ_CODE_DIR16:               howto manager.      (line  658)
   12839 * BFD_RELOC_PJ_CODE_DIR32:               howto manager.      (line  659)
   12840 * BFD_RELOC_PJ_CODE_HI16:                howto manager.      (line  656)
   12841 * BFD_RELOC_PJ_CODE_LO16:                howto manager.      (line  657)
   12842 * BFD_RELOC_PJ_CODE_REL16:               howto manager.      (line  660)
   12843 * BFD_RELOC_PJ_CODE_REL32:               howto manager.      (line  661)
   12844 * BFD_RELOC_PPC64_ADDR16_DS:             howto manager.      (line  723)
   12845 * BFD_RELOC_PPC64_ADDR16_HIGH:           howto manager.      (line  734)
   12846 * BFD_RELOC_PPC64_ADDR16_HIGHA:          howto manager.      (line  735)
   12847 * BFD_RELOC_PPC64_ADDR16_LO_DS:          howto manager.      (line  724)
   12848 * BFD_RELOC_PPC64_ADDR64_LOCAL:          howto manager.      (line  736)
   12849 * BFD_RELOC_PPC64_DTPREL16_DS:           howto manager.      (line  775)
   12850 * BFD_RELOC_PPC64_DTPREL16_HIGH:         howto manager.      (line  783)
   12851 * BFD_RELOC_PPC64_DTPREL16_HIGHA:        howto manager.      (line  784)
   12852 * BFD_RELOC_PPC64_DTPREL16_HIGHER:       howto manager.      (line  777)
   12853 * BFD_RELOC_PPC64_DTPREL16_HIGHERA:      howto manager.      (line  778)
   12854 * BFD_RELOC_PPC64_DTPREL16_HIGHEST:      howto manager.      (line  779)
   12855 * BFD_RELOC_PPC64_DTPREL16_HIGHESTA:     howto manager.      (line  780)
   12856 * BFD_RELOC_PPC64_DTPREL16_LO_DS:        howto manager.      (line  776)
   12857 * BFD_RELOC_PPC64_GOT16_DS:              howto manager.      (line  725)
   12858 * BFD_RELOC_PPC64_GOT16_LO_DS:           howto manager.      (line  726)
   12859 * BFD_RELOC_PPC64_HIGHER:                howto manager.      (line  711)
   12860 * BFD_RELOC_PPC64_HIGHER_S:              howto manager.      (line  712)
   12861 * BFD_RELOC_PPC64_HIGHEST:               howto manager.      (line  713)
   12862 * BFD_RELOC_PPC64_HIGHEST_S:             howto manager.      (line  714)
   12863 * BFD_RELOC_PPC64_PLT16_LO_DS:           howto manager.      (line  727)
   12864 * BFD_RELOC_PPC64_PLTGOT16:              howto manager.      (line  719)
   12865 * BFD_RELOC_PPC64_PLTGOT16_DS:           howto manager.      (line  732)
   12866 * BFD_RELOC_PPC64_PLTGOT16_HA:           howto manager.      (line  722)
   12867 * BFD_RELOC_PPC64_PLTGOT16_HI:           howto manager.      (line  721)
   12868 * BFD_RELOC_PPC64_PLTGOT16_LO:           howto manager.      (line  720)
   12869 * BFD_RELOC_PPC64_PLTGOT16_LO_DS:        howto manager.      (line  733)
   12870 * BFD_RELOC_PPC64_SECTOFF_DS:            howto manager.      (line  728)
   12871 * BFD_RELOC_PPC64_SECTOFF_LO_DS:         howto manager.      (line  729)
   12872 * BFD_RELOC_PPC64_TOC:                   howto manager.      (line  718)
   12873 * BFD_RELOC_PPC64_TOC16_DS:              howto manager.      (line  730)
   12874 * BFD_RELOC_PPC64_TOC16_HA:              howto manager.      (line  717)
   12875 * BFD_RELOC_PPC64_TOC16_HI:              howto manager.      (line  716)
   12876 * BFD_RELOC_PPC64_TOC16_LO:              howto manager.      (line  715)
   12877 * BFD_RELOC_PPC64_TOC16_LO_DS:           howto manager.      (line  731)
   12878 * BFD_RELOC_PPC64_TPREL16_DS:            howto manager.      (line  769)
   12879 * BFD_RELOC_PPC64_TPREL16_HIGH:          howto manager.      (line  781)
   12880 * BFD_RELOC_PPC64_TPREL16_HIGHA:         howto manager.      (line  782)
   12881 * BFD_RELOC_PPC64_TPREL16_HIGHER:        howto manager.      (line  771)
   12882 * BFD_RELOC_PPC64_TPREL16_HIGHERA:       howto manager.      (line  772)
   12883 * BFD_RELOC_PPC64_TPREL16_HIGHEST:       howto manager.      (line  773)
   12884 * BFD_RELOC_PPC64_TPREL16_HIGHESTA:      howto manager.      (line  774)
   12885 * BFD_RELOC_PPC64_TPREL16_LO_DS:         howto manager.      (line  770)
   12886 * BFD_RELOC_PPC_B16:                     howto manager.      (line  667)
   12887 * BFD_RELOC_PPC_B16_BRNTAKEN:            howto manager.      (line  669)
   12888 * BFD_RELOC_PPC_B16_BRTAKEN:             howto manager.      (line  668)
   12889 * BFD_RELOC_PPC_B26:                     howto manager.      (line  664)
   12890 * BFD_RELOC_PPC_BA16:                    howto manager.      (line  670)
   12891 * BFD_RELOC_PPC_BA16_BRNTAKEN:           howto manager.      (line  672)
   12892 * BFD_RELOC_PPC_BA16_BRTAKEN:            howto manager.      (line  671)
   12893 * BFD_RELOC_PPC_BA26:                    howto manager.      (line  665)
   12894 * BFD_RELOC_PPC_COPY:                    howto manager.      (line  673)
   12895 * BFD_RELOC_PPC_DTPMOD:                  howto manager.      (line  742)
   12896 * BFD_RELOC_PPC_DTPREL:                  howto manager.      (line  752)
   12897 * BFD_RELOC_PPC_DTPREL16:                howto manager.      (line  748)
   12898 * BFD_RELOC_PPC_DTPREL16_HA:             howto manager.      (line  751)
   12899 * BFD_RELOC_PPC_DTPREL16_HI:             howto manager.      (line  750)
   12900 * BFD_RELOC_PPC_DTPREL16_LO:             howto manager.      (line  749)
   12901 * BFD_RELOC_PPC_EMB_BIT_FLD:             howto manager.      (line  692)
   12902 * BFD_RELOC_PPC_EMB_MRKREF:              howto manager.      (line  687)
   12903 * BFD_RELOC_PPC_EMB_NADDR16:             howto manager.      (line  679)
   12904 * BFD_RELOC_PPC_EMB_NADDR16_HA:          howto manager.      (line  682)
   12905 * BFD_RELOC_PPC_EMB_NADDR16_HI:          howto manager.      (line  681)
   12906 * BFD_RELOC_PPC_EMB_NADDR16_LO:          howto manager.      (line  680)
   12907 * BFD_RELOC_PPC_EMB_NADDR32:             howto manager.      (line  678)
   12908 * BFD_RELOC_PPC_EMB_RELSDA:              howto manager.      (line  693)
   12909 * BFD_RELOC_PPC_EMB_RELSEC16:            howto manager.      (line  688)
   12910 * BFD_RELOC_PPC_EMB_RELST_HA:            howto manager.      (line  691)
   12911 * BFD_RELOC_PPC_EMB_RELST_HI:            howto manager.      (line  690)
   12912 * BFD_RELOC_PPC_EMB_RELST_LO:            howto manager.      (line  689)
   12913 * BFD_RELOC_PPC_EMB_SDA21:               howto manager.      (line  686)
   12914 * BFD_RELOC_PPC_EMB_SDA2I16:             howto manager.      (line  684)
   12915 * BFD_RELOC_PPC_EMB_SDA2REL:             howto manager.      (line  685)
   12916 * BFD_RELOC_PPC_EMB_SDAI16:              howto manager.      (line  683)
   12917 * BFD_RELOC_PPC_GLOB_DAT:                howto manager.      (line  674)
   12918 * BFD_RELOC_PPC_GOT_DTPREL16:            howto manager.      (line  765)
   12919 * BFD_RELOC_PPC_GOT_DTPREL16_HA:         howto manager.      (line  768)
   12920 * BFD_RELOC_PPC_GOT_DTPREL16_HI:         howto manager.      (line  767)
   12921 * BFD_RELOC_PPC_GOT_DTPREL16_LO:         howto manager.      (line  766)
   12922 * BFD_RELOC_PPC_GOT_TLSGD16:             howto manager.      (line  753)
   12923 * BFD_RELOC_PPC_GOT_TLSGD16_HA:          howto manager.      (line  756)
   12924 * BFD_RELOC_PPC_GOT_TLSGD16_HI:          howto manager.      (line  755)
   12925 * BFD_RELOC_PPC_GOT_TLSGD16_LO:          howto manager.      (line  754)
   12926 * BFD_RELOC_PPC_GOT_TLSLD16:             howto manager.      (line  757)
   12927 * BFD_RELOC_PPC_GOT_TLSLD16_HA:          howto manager.      (line  760)
   12928 * BFD_RELOC_PPC_GOT_TLSLD16_HI:          howto manager.      (line  759)
   12929 * BFD_RELOC_PPC_GOT_TLSLD16_LO:          howto manager.      (line  758)
   12930 * BFD_RELOC_PPC_GOT_TPREL16:             howto manager.      (line  761)
   12931 * BFD_RELOC_PPC_GOT_TPREL16_HA:          howto manager.      (line  764)
   12932 * BFD_RELOC_PPC_GOT_TPREL16_HI:          howto manager.      (line  763)
   12933 * BFD_RELOC_PPC_GOT_TPREL16_LO:          howto manager.      (line  762)
   12934 * BFD_RELOC_PPC_JMP_SLOT:                howto manager.      (line  675)
   12935 * BFD_RELOC_PPC_LOCAL24PC:               howto manager.      (line  677)
   12936 * BFD_RELOC_PPC_RELATIVE:                howto manager.      (line  676)
   12937 * BFD_RELOC_PPC_TLS:                     howto manager.      (line  739)
   12938 * BFD_RELOC_PPC_TLSGD:                   howto manager.      (line  740)
   12939 * BFD_RELOC_PPC_TLSLD:                   howto manager.      (line  741)
   12940 * BFD_RELOC_PPC_TOC16:                   howto manager.      (line  666)
   12941 * BFD_RELOC_PPC_TPREL:                   howto manager.      (line  747)
   12942 * BFD_RELOC_PPC_TPREL16:                 howto manager.      (line  743)
   12943 * BFD_RELOC_PPC_TPREL16_HA:              howto manager.      (line  746)
   12944 * BFD_RELOC_PPC_TPREL16_HI:              howto manager.      (line  745)
   12945 * BFD_RELOC_PPC_TPREL16_LO:              howto manager.      (line  744)
   12946 * BFD_RELOC_PPC_VLE_HA16A:               howto manager.      (line  701)
   12947 * BFD_RELOC_PPC_VLE_HA16D:               howto manager.      (line  702)
   12948 * BFD_RELOC_PPC_VLE_HI16A:               howto manager.      (line  699)
   12949 * BFD_RELOC_PPC_VLE_HI16D:               howto manager.      (line  700)
   12950 * BFD_RELOC_PPC_VLE_LO16A:               howto manager.      (line  697)
   12951 * BFD_RELOC_PPC_VLE_LO16D:               howto manager.      (line  698)
   12952 * BFD_RELOC_PPC_VLE_REL15:               howto manager.      (line  695)
   12953 * BFD_RELOC_PPC_VLE_REL24:               howto manager.      (line  696)
   12954 * BFD_RELOC_PPC_VLE_REL8:                howto manager.      (line  694)
   12955 * BFD_RELOC_PPC_VLE_SDA21:               howto manager.      (line  703)
   12956 * BFD_RELOC_PPC_VLE_SDA21_LO:            howto manager.      (line  704)
   12957 * BFD_RELOC_PPC_VLE_SDAREL_HA16A:        howto manager.      (line  709)
   12958 * BFD_RELOC_PPC_VLE_SDAREL_HA16D:        howto manager.      (line  710)
   12959 * BFD_RELOC_PPC_VLE_SDAREL_HI16A:        howto manager.      (line  707)
   12960 * BFD_RELOC_PPC_VLE_SDAREL_HI16D:        howto manager.      (line  708)
   12961 * BFD_RELOC_PPC_VLE_SDAREL_LO16A:        howto manager.      (line  705)
   12962 * BFD_RELOC_PPC_VLE_SDAREL_LO16D:        howto manager.      (line  706)
   12963 * BFD_RELOC_RELC:                        howto manager.      (line 2667)
   12964 * BFD_RELOC_RL78_16_OP:                  howto manager.      (line 1988)
   12965 * BFD_RELOC_RL78_16U:                    howto manager.      (line 1992)
   12966 * BFD_RELOC_RL78_24_OP:                  howto manager.      (line 1989)
   12967 * BFD_RELOC_RL78_24U:                    howto manager.      (line 1993)
   12968 * BFD_RELOC_RL78_32_OP:                  howto manager.      (line 1990)
   12969 * BFD_RELOC_RL78_8U:                     howto manager.      (line 1991)
   12970 * BFD_RELOC_RL78_ABS16:                  howto manager.      (line 2005)
   12971 * BFD_RELOC_RL78_ABS16_REV:              howto manager.      (line 2006)
   12972 * BFD_RELOC_RL78_ABS16U:                 howto manager.      (line 2009)
   12973 * BFD_RELOC_RL78_ABS16UL:                howto manager.      (line 2011)
   12974 * BFD_RELOC_RL78_ABS16UW:                howto manager.      (line 2010)
   12975 * BFD_RELOC_RL78_ABS32:                  howto manager.      (line 2007)
   12976 * BFD_RELOC_RL78_ABS32_REV:              howto manager.      (line 2008)
   12977 * BFD_RELOC_RL78_ABS8:                   howto manager.      (line 2004)
   12978 * BFD_RELOC_RL78_CODE:                   howto manager.      (line 2016)
   12979 * BFD_RELOC_RL78_DIFF:                   howto manager.      (line 1995)
   12980 * BFD_RELOC_RL78_DIR3U_PCREL:            howto manager.      (line 1994)
   12981 * BFD_RELOC_RL78_GPRELB:                 howto manager.      (line 1996)
   12982 * BFD_RELOC_RL78_GPRELL:                 howto manager.      (line 1998)
   12983 * BFD_RELOC_RL78_GPRELW:                 howto manager.      (line 1997)
   12984 * BFD_RELOC_RL78_HI16:                   howto manager.      (line 2013)
   12985 * BFD_RELOC_RL78_HI8:                    howto manager.      (line 2014)
   12986 * BFD_RELOC_RL78_LO16:                   howto manager.      (line 2015)
   12987 * BFD_RELOC_RL78_NEG16:                  howto manager.      (line 1985)
   12988 * BFD_RELOC_RL78_NEG24:                  howto manager.      (line 1986)
   12989 * BFD_RELOC_RL78_NEG32:                  howto manager.      (line 1987)
   12990 * BFD_RELOC_RL78_NEG8:                   howto manager.      (line 1984)
   12991 * BFD_RELOC_RL78_OP_AND:                 howto manager.      (line 2002)
   12992 * BFD_RELOC_RL78_OP_NEG:                 howto manager.      (line 2001)
   12993 * BFD_RELOC_RL78_OP_SHRA:                howto manager.      (line 2003)
   12994 * BFD_RELOC_RL78_OP_SUBTRACT:            howto manager.      (line 2000)
   12995 * BFD_RELOC_RL78_RELAX:                  howto manager.      (line 2012)
   12996 * BFD_RELOC_RL78_SYM:                    howto manager.      (line 1999)
   12997 * BFD_RELOC_RVA:                         howto manager.      (line  104)
   12998 * BFD_RELOC_RX_16_OP:                    howto manager.      (line 2023)
   12999 * BFD_RELOC_RX_16U:                      howto manager.      (line 2027)
   13000 * BFD_RELOC_RX_24_OP:                    howto manager.      (line 2024)
   13001 * BFD_RELOC_RX_24U:                      howto manager.      (line 2028)
   13002 * BFD_RELOC_RX_32_OP:                    howto manager.      (line 2025)
   13003 * BFD_RELOC_RX_8U:                       howto manager.      (line 2026)
   13004 * BFD_RELOC_RX_ABS16:                    howto manager.      (line 2038)
   13005 * BFD_RELOC_RX_ABS16_REV:                howto manager.      (line 2039)
   13006 * BFD_RELOC_RX_ABS16U:                   howto manager.      (line 2042)
   13007 * BFD_RELOC_RX_ABS16UL:                  howto manager.      (line 2044)
   13008 * BFD_RELOC_RX_ABS16UW:                  howto manager.      (line 2043)
   13009 * BFD_RELOC_RX_ABS32:                    howto manager.      (line 2040)
   13010 * BFD_RELOC_RX_ABS32_REV:                howto manager.      (line 2041)
   13011 * BFD_RELOC_RX_ABS8:                     howto manager.      (line 2037)
   13012 * BFD_RELOC_RX_DIFF:                     howto manager.      (line 2030)
   13013 * BFD_RELOC_RX_DIR3U_PCREL:              howto manager.      (line 2029)
   13014 * BFD_RELOC_RX_GPRELB:                   howto manager.      (line 2031)
   13015 * BFD_RELOC_RX_GPRELL:                   howto manager.      (line 2033)
   13016 * BFD_RELOC_RX_GPRELW:                   howto manager.      (line 2032)
   13017 * BFD_RELOC_RX_NEG16:                    howto manager.      (line 2020)
   13018 * BFD_RELOC_RX_NEG24:                    howto manager.      (line 2021)
   13019 * BFD_RELOC_RX_NEG32:                    howto manager.      (line 2022)
   13020 * BFD_RELOC_RX_NEG8:                     howto manager.      (line 2019)
   13021 * BFD_RELOC_RX_OP_NEG:                   howto manager.      (line 2036)
   13022 * BFD_RELOC_RX_OP_SUBTRACT:              howto manager.      (line 2035)
   13023 * BFD_RELOC_RX_RELAX:                    howto manager.      (line 2045)
   13024 * BFD_RELOC_RX_SYM:                      howto manager.      (line 2034)
   13025 * BFD_RELOC_SCORE16_BRANCH:              howto manager.      (line 2188)
   13026 * BFD_RELOC_SCORE16_JMP:                 howto manager.      (line 2185)
   13027 * BFD_RELOC_SCORE_BCMP:                  howto manager.      (line 2191)
   13028 * BFD_RELOC_SCORE_BRANCH:                howto manager.      (line 2176)
   13029 * BFD_RELOC_SCORE_CALL15:                howto manager.      (line 2196)
   13030 * BFD_RELOC_SCORE_DUMMY2:                howto manager.      (line 2172)
   13031 * BFD_RELOC_SCORE_DUMMY_HI16:            howto manager.      (line 2197)
   13032 * BFD_RELOC_SCORE_GOT15:                 howto manager.      (line 2194)
   13033 * BFD_RELOC_SCORE_GOT_LO16:              howto manager.      (line 2195)
   13034 * BFD_RELOC_SCORE_GPREL15:               howto manager.      (line 2169)
   13035 * BFD_RELOC_SCORE_IMM30:                 howto manager.      (line 2179)
   13036 * BFD_RELOC_SCORE_IMM32:                 howto manager.      (line 2182)
   13037 * BFD_RELOC_SCORE_JMP:                   howto manager.      (line 2173)
   13038 * BFD_RELOC_SH_ALIGN:                    howto manager.      (line  978)
   13039 * BFD_RELOC_SH_CODE:                     howto manager.      (line  979)
   13040 * BFD_RELOC_SH_COPY:                     howto manager.      (line  984)
   13041 * BFD_RELOC_SH_COPY64:                   howto manager.      (line 1009)
   13042 * BFD_RELOC_SH_COUNT:                    howto manager.      (line  977)
   13043 * BFD_RELOC_SH_DATA:                     howto manager.      (line  980)
   13044 * BFD_RELOC_SH_DISP12:                   howto manager.      (line  960)
   13045 * BFD_RELOC_SH_DISP12BY2:                howto manager.      (line  961)
   13046 * BFD_RELOC_SH_DISP12BY4:                howto manager.      (line  962)
   13047 * BFD_RELOC_SH_DISP12BY8:                howto manager.      (line  963)
   13048 * BFD_RELOC_SH_DISP20:                   howto manager.      (line  964)
   13049 * BFD_RELOC_SH_DISP20BY8:                howto manager.      (line  965)
   13050 * BFD_RELOC_SH_FUNCDESC:                 howto manager.      (line 1052)
   13051 * BFD_RELOC_SH_GLOB_DAT:                 howto manager.      (line  985)
   13052 * BFD_RELOC_SH_GLOB_DAT64:               howto manager.      (line 1010)
   13053 * BFD_RELOC_SH_GOT10BY4:                 howto manager.      (line 1013)
   13054 * BFD_RELOC_SH_GOT10BY8:                 howto manager.      (line 1014)
   13055 * BFD_RELOC_SH_GOT20:                    howto manager.      (line 1046)
   13056 * BFD_RELOC_SH_GOT_HI16:                 howto manager.      (line  992)
   13057 * BFD_RELOC_SH_GOT_LOW16:                howto manager.      (line  989)
   13058 * BFD_RELOC_SH_GOT_MEDHI16:              howto manager.      (line  991)
   13059 * BFD_RELOC_SH_GOT_MEDLOW16:             howto manager.      (line  990)
   13060 * BFD_RELOC_SH_GOTFUNCDESC:              howto manager.      (line 1048)
   13061 * BFD_RELOC_SH_GOTFUNCDESC20:            howto manager.      (line 1049)
   13062 * BFD_RELOC_SH_GOTOFF20:                 howto manager.      (line 1047)
   13063 * BFD_RELOC_SH_GOTOFF_HI16:              howto manager.      (line 1004)
   13064 * BFD_RELOC_SH_GOTOFF_LOW16:             howto manager.      (line 1001)
   13065 * BFD_RELOC_SH_GOTOFF_MEDHI16:           howto manager.      (line 1003)
   13066 * BFD_RELOC_SH_GOTOFF_MEDLOW16:          howto manager.      (line 1002)
   13067 * BFD_RELOC_SH_GOTOFFFUNCDESC:           howto manager.      (line 1050)
   13068 * BFD_RELOC_SH_GOTOFFFUNCDESC20:         howto manager.      (line 1051)
   13069 * BFD_RELOC_SH_GOTPC:                    howto manager.      (line  988)
   13070 * BFD_RELOC_SH_GOTPC_HI16:               howto manager.      (line 1008)
   13071 * BFD_RELOC_SH_GOTPC_LOW16:              howto manager.      (line 1005)
   13072 * BFD_RELOC_SH_GOTPC_MEDHI16:            howto manager.      (line 1007)
   13073 * BFD_RELOC_SH_GOTPC_MEDLOW16:           howto manager.      (line 1006)
   13074 * BFD_RELOC_SH_GOTPLT10BY4:              howto manager.      (line 1015)
   13075 * BFD_RELOC_SH_GOTPLT10BY8:              howto manager.      (line 1016)
   13076 * BFD_RELOC_SH_GOTPLT32:                 howto manager.      (line 1017)
   13077 * BFD_RELOC_SH_GOTPLT_HI16:              howto manager.      (line  996)
   13078 * BFD_RELOC_SH_GOTPLT_LOW16:             howto manager.      (line  993)
   13079 * BFD_RELOC_SH_GOTPLT_MEDHI16:           howto manager.      (line  995)
   13080 * BFD_RELOC_SH_GOTPLT_MEDLOW16:          howto manager.      (line  994)
   13081 * BFD_RELOC_SH_IMM3:                     howto manager.      (line  958)
   13082 * BFD_RELOC_SH_IMM3U:                    howto manager.      (line  959)
   13083 * BFD_RELOC_SH_IMM4:                     howto manager.      (line  966)
   13084 * BFD_RELOC_SH_IMM4BY2:                  howto manager.      (line  967)
   13085 * BFD_RELOC_SH_IMM4BY4:                  howto manager.      (line  968)
   13086 * BFD_RELOC_SH_IMM8:                     howto manager.      (line  969)
   13087 * BFD_RELOC_SH_IMM8BY2:                  howto manager.      (line  970)
   13088 * BFD_RELOC_SH_IMM8BY4:                  howto manager.      (line  971)
   13089 * BFD_RELOC_SH_IMM_HI16:                 howto manager.      (line 1035)
   13090 * BFD_RELOC_SH_IMM_HI16_PCREL:           howto manager.      (line 1036)
   13091 * BFD_RELOC_SH_IMM_LOW16:                howto manager.      (line 1029)
   13092 * BFD_RELOC_SH_IMM_LOW16_PCREL:          howto manager.      (line 1030)
   13093 * BFD_RELOC_SH_IMM_MEDHI16:              howto manager.      (line 1033)
   13094 * BFD_RELOC_SH_IMM_MEDHI16_PCREL:        howto manager.      (line 1034)
   13095 * BFD_RELOC_SH_IMM_MEDLOW16:             howto manager.      (line 1031)
   13096 * BFD_RELOC_SH_IMM_MEDLOW16_PCREL:       howto manager.      (line 1032)
   13097 * BFD_RELOC_SH_IMMS10:                   howto manager.      (line 1023)
   13098 * BFD_RELOC_SH_IMMS10BY2:                howto manager.      (line 1024)
   13099 * BFD_RELOC_SH_IMMS10BY4:                howto manager.      (line 1025)
   13100 * BFD_RELOC_SH_IMMS10BY8:                howto manager.      (line 1026)
   13101 * BFD_RELOC_SH_IMMS16:                   howto manager.      (line 1027)
   13102 * BFD_RELOC_SH_IMMS6:                    howto manager.      (line 1020)
   13103 * BFD_RELOC_SH_IMMS6BY32:                howto manager.      (line 1021)
   13104 * BFD_RELOC_SH_IMMU16:                   howto manager.      (line 1028)
   13105 * BFD_RELOC_SH_IMMU5:                    howto manager.      (line 1019)
   13106 * BFD_RELOC_SH_IMMU6:                    howto manager.      (line 1022)
   13107 * BFD_RELOC_SH_JMP_SLOT:                 howto manager.      (line  986)
   13108 * BFD_RELOC_SH_JMP_SLOT64:               howto manager.      (line 1011)
   13109 * BFD_RELOC_SH_LABEL:                    howto manager.      (line  981)
   13110 * BFD_RELOC_SH_LOOP_END:                 howto manager.      (line  983)
   13111 * BFD_RELOC_SH_LOOP_START:               howto manager.      (line  982)
   13112 * BFD_RELOC_SH_PCDISP12BY2:              howto manager.      (line  957)
   13113 * BFD_RELOC_SH_PCDISP8BY2:               howto manager.      (line  956)
   13114 * BFD_RELOC_SH_PCRELIMM8BY2:             howto manager.      (line  972)
   13115 * BFD_RELOC_SH_PCRELIMM8BY4:             howto manager.      (line  973)
   13116 * BFD_RELOC_SH_PLT_HI16:                 howto manager.      (line 1000)
   13117 * BFD_RELOC_SH_PLT_LOW16:                howto manager.      (line  997)
   13118 * BFD_RELOC_SH_PLT_MEDHI16:              howto manager.      (line  999)
   13119 * BFD_RELOC_SH_PLT_MEDLOW16:             howto manager.      (line  998)
   13120 * BFD_RELOC_SH_PT_16:                    howto manager.      (line 1037)
   13121 * BFD_RELOC_SH_RELATIVE:                 howto manager.      (line  987)
   13122 * BFD_RELOC_SH_RELATIVE64:               howto manager.      (line 1012)
   13123 * BFD_RELOC_SH_SHMEDIA_CODE:             howto manager.      (line 1018)
   13124 * BFD_RELOC_SH_SWITCH16:                 howto manager.      (line  974)
   13125 * BFD_RELOC_SH_SWITCH32:                 howto manager.      (line  975)
   13126 * BFD_RELOC_SH_TLS_DTPMOD32:             howto manager.      (line 1043)
   13127 * BFD_RELOC_SH_TLS_DTPOFF32:             howto manager.      (line 1044)
   13128 * BFD_RELOC_SH_TLS_GD_32:                howto manager.      (line 1038)
   13129 * BFD_RELOC_SH_TLS_IE_32:                howto manager.      (line 1041)
   13130 * BFD_RELOC_SH_TLS_LD_32:                howto manager.      (line 1039)
   13131 * BFD_RELOC_SH_TLS_LDO_32:               howto manager.      (line 1040)
   13132 * BFD_RELOC_SH_TLS_LE_32:                howto manager.      (line 1042)
   13133 * BFD_RELOC_SH_TLS_TPOFF32:              howto manager.      (line 1045)
   13134 * BFD_RELOC_SH_USES:                     howto manager.      (line  976)
   13135 * BFD_RELOC_SIZE32:                      howto manager.      (line   74)
   13136 * BFD_RELOC_SIZE64:                      howto manager.      (line   75)
   13137 * BFD_RELOC_SPARC13:                     howto manager.      (line  138)
   13138 * BFD_RELOC_SPARC22:                     howto manager.      (line  137)
   13139 * BFD_RELOC_SPARC_10:                    howto manager.      (line  167)
   13140 * BFD_RELOC_SPARC_11:                    howto manager.      (line  168)
   13141 * BFD_RELOC_SPARC_5:                     howto manager.      (line  180)
   13142 * BFD_RELOC_SPARC_6:                     howto manager.      (line  179)
   13143 * BFD_RELOC_SPARC_64:                    howto manager.      (line  166)
   13144 * BFD_RELOC_SPARC_7:                     howto manager.      (line  178)
   13145 * BFD_RELOC_SPARC_BASE13:                howto manager.      (line  162)
   13146 * BFD_RELOC_SPARC_BASE22:                howto manager.      (line  163)
   13147 * BFD_RELOC_SPARC_COPY:                  howto manager.      (line  145)
   13148 * BFD_RELOC_SPARC_DISP64:                howto manager.      (line  181)
   13149 * BFD_RELOC_SPARC_GLOB_DAT:              howto manager.      (line  146)
   13150 * BFD_RELOC_SPARC_GOT10:                 howto manager.      (line  139)
   13151 * BFD_RELOC_SPARC_GOT13:                 howto manager.      (line  140)
   13152 * BFD_RELOC_SPARC_GOT22:                 howto manager.      (line  141)
   13153 * BFD_RELOC_SPARC_GOTDATA_HIX22:         howto manager.      (line  152)
   13154 * BFD_RELOC_SPARC_GOTDATA_LOX10:         howto manager.      (line  153)
   13155 * BFD_RELOC_SPARC_GOTDATA_OP:            howto manager.      (line  156)
   13156 * BFD_RELOC_SPARC_GOTDATA_OP_HIX22:      howto manager.      (line  154)
   13157 * BFD_RELOC_SPARC_GOTDATA_OP_LOX10:      howto manager.      (line  155)
   13158 * BFD_RELOC_SPARC_H34:                   howto manager.      (line  190)
   13159 * BFD_RELOC_SPARC_H44:                   howto manager.      (line  186)
   13160 * BFD_RELOC_SPARC_HH22:                  howto manager.      (line  170)
   13161 * BFD_RELOC_SPARC_HIX22:                 howto manager.      (line  184)
   13162 * BFD_RELOC_SPARC_HM10:                  howto manager.      (line  171)
   13163 * BFD_RELOC_SPARC_IRELATIVE:             howto manager.      (line  158)
   13164 * BFD_RELOC_SPARC_JMP_IREL:              howto manager.      (line  157)
   13165 * BFD_RELOC_SPARC_JMP_SLOT:              howto manager.      (line  147)
   13166 * BFD_RELOC_SPARC_L44:                   howto manager.      (line  188)
   13167 * BFD_RELOC_SPARC_LM22:                  howto manager.      (line  172)
   13168 * BFD_RELOC_SPARC_LOX10:                 howto manager.      (line  185)
   13169 * BFD_RELOC_SPARC_M44:                   howto manager.      (line  187)
   13170 * BFD_RELOC_SPARC_OLO10:                 howto manager.      (line  169)
   13171 * BFD_RELOC_SPARC_PC10:                  howto manager.      (line  142)
   13172 * BFD_RELOC_SPARC_PC22:                  howto manager.      (line  143)
   13173 * BFD_RELOC_SPARC_PC_HH22:               howto manager.      (line  173)
   13174 * BFD_RELOC_SPARC_PC_HM10:               howto manager.      (line  174)
   13175 * BFD_RELOC_SPARC_PC_LM22:               howto manager.      (line  175)
   13176 * BFD_RELOC_SPARC_PLT32:                 howto manager.      (line  182)
   13177 * BFD_RELOC_SPARC_PLT64:                 howto manager.      (line  183)
   13178 * BFD_RELOC_SPARC_REGISTER:              howto manager.      (line  189)
   13179 * BFD_RELOC_SPARC_RELATIVE:              howto manager.      (line  148)
   13180 * BFD_RELOC_SPARC_REV32:                 howto manager.      (line  196)
   13181 * BFD_RELOC_SPARC_SIZE32:                howto manager.      (line  191)
   13182 * BFD_RELOC_SPARC_SIZE64:                howto manager.      (line  192)
   13183 * BFD_RELOC_SPARC_TLS_DTPMOD32:          howto manager.      (line  217)
   13184 * BFD_RELOC_SPARC_TLS_DTPMOD64:          howto manager.      (line  218)
   13185 * BFD_RELOC_SPARC_TLS_DTPOFF32:          howto manager.      (line  219)
   13186 * BFD_RELOC_SPARC_TLS_DTPOFF64:          howto manager.      (line  220)
   13187 * BFD_RELOC_SPARC_TLS_GD_ADD:            howto manager.      (line  201)
   13188 * BFD_RELOC_SPARC_TLS_GD_CALL:           howto manager.      (line  202)
   13189 * BFD_RELOC_SPARC_TLS_GD_HI22:           howto manager.      (line  199)
   13190 * BFD_RELOC_SPARC_TLS_GD_LO10:           howto manager.      (line  200)
   13191 * BFD_RELOC_SPARC_TLS_IE_ADD:            howto manager.      (line  214)
   13192 * BFD_RELOC_SPARC_TLS_IE_HI22:           howto manager.      (line  210)
   13193 * BFD_RELOC_SPARC_TLS_IE_LD:             howto manager.      (line  212)
   13194 * BFD_RELOC_SPARC_TLS_IE_LDX:            howto manager.      (line  213)
   13195 * BFD_RELOC_SPARC_TLS_IE_LO10:           howto manager.      (line  211)
   13196 * BFD_RELOC_SPARC_TLS_LDM_ADD:           howto manager.      (line  205)
   13197 * BFD_RELOC_SPARC_TLS_LDM_CALL:          howto manager.      (line  206)
   13198 * BFD_RELOC_SPARC_TLS_LDM_HI22:          howto manager.      (line  203)
   13199 * BFD_RELOC_SPARC_TLS_LDM_LO10:          howto manager.      (line  204)
   13200 * BFD_RELOC_SPARC_TLS_LDO_ADD:           howto manager.      (line  209)
   13201 * BFD_RELOC_SPARC_TLS_LDO_HIX22:         howto manager.      (line  207)
   13202 * BFD_RELOC_SPARC_TLS_LDO_LOX10:         howto manager.      (line  208)
   13203 * BFD_RELOC_SPARC_TLS_LE_HIX22:          howto manager.      (line  215)
   13204 * BFD_RELOC_SPARC_TLS_LE_LOX10:          howto manager.      (line  216)
   13205 * BFD_RELOC_SPARC_TLS_TPOFF32:           howto manager.      (line  221)
   13206 * BFD_RELOC_SPARC_TLS_TPOFF64:           howto manager.      (line  222)
   13207 * BFD_RELOC_SPARC_UA16:                  howto manager.      (line  149)
   13208 * BFD_RELOC_SPARC_UA32:                  howto manager.      (line  150)
   13209 * BFD_RELOC_SPARC_UA64:                  howto manager.      (line  151)
   13210 * BFD_RELOC_SPARC_WDISP10:               howto manager.      (line  193)
   13211 * BFD_RELOC_SPARC_WDISP16:               howto manager.      (line  176)
   13212 * BFD_RELOC_SPARC_WDISP19:               howto manager.      (line  177)
   13213 * BFD_RELOC_SPARC_WDISP22:               howto manager.      (line  136)
   13214 * BFD_RELOC_SPARC_WPLT30:                howto manager.      (line  144)
   13215 * BFD_RELOC_SPU_ADD_PIC:                 howto manager.      (line  239)
   13216 * BFD_RELOC_SPU_HI16:                    howto manager.      (line  236)
   13217 * BFD_RELOC_SPU_IMM10:                   howto manager.      (line  227)
   13218 * BFD_RELOC_SPU_IMM10W:                  howto manager.      (line  228)
   13219 * BFD_RELOC_SPU_IMM16:                   howto manager.      (line  229)
   13220 * BFD_RELOC_SPU_IMM16W:                  howto manager.      (line  230)
   13221 * BFD_RELOC_SPU_IMM18:                   howto manager.      (line  231)
   13222 * BFD_RELOC_SPU_IMM7:                    howto manager.      (line  225)
   13223 * BFD_RELOC_SPU_IMM8:                    howto manager.      (line  226)
   13224 * BFD_RELOC_SPU_LO16:                    howto manager.      (line  235)
   13225 * BFD_RELOC_SPU_PCREL16:                 howto manager.      (line  234)
   13226 * BFD_RELOC_SPU_PCREL9a:                 howto manager.      (line  232)
   13227 * BFD_RELOC_SPU_PCREL9b:                 howto manager.      (line  233)
   13228 * BFD_RELOC_SPU_PPU32:                   howto manager.      (line  237)
   13229 * BFD_RELOC_SPU_PPU64:                   howto manager.      (line  238)
   13230 * BFD_RELOC_THUMB_PCREL_BLX:             howto manager.      (line  805)
   13231 * BFD_RELOC_THUMB_PCREL_BRANCH12:        howto manager.      (line  819)
   13232 * BFD_RELOC_THUMB_PCREL_BRANCH20:        howto manager.      (line  820)
   13233 * BFD_RELOC_THUMB_PCREL_BRANCH23:        howto manager.      (line  821)
   13234 * BFD_RELOC_THUMB_PCREL_BRANCH25:        howto manager.      (line  822)
   13235 * BFD_RELOC_THUMB_PCREL_BRANCH7:         howto manager.      (line  817)
   13236 * BFD_RELOC_THUMB_PCREL_BRANCH9:         howto manager.      (line  818)
   13237 * BFD_RELOC_TIC30_LDP:                   howto manager.      (line 1637)
   13238 * BFD_RELOC_TIC54X_16_OF_23:             howto manager.      (line 1655)
   13239 * BFD_RELOC_TIC54X_23:                   howto manager.      (line 1652)
   13240 * BFD_RELOC_TIC54X_MS7_OF_23:            howto manager.      (line 1660)
   13241 * BFD_RELOC_TIC54X_PARTLS7:              howto manager.      (line 1642)
   13242 * BFD_RELOC_TIC54X_PARTMS9:              howto manager.      (line 1647)
   13243 * BFD_RELOC_TILEGX_BROFF_X1:             howto manager.      (line 3388)
   13244 * BFD_RELOC_TILEGX_COPY:                 howto manager.      (line 3384)
   13245 * BFD_RELOC_TILEGX_DEST_IMM8_X1:         howto manager.      (line 3395)
   13246 * BFD_RELOC_TILEGX_GLOB_DAT:             howto manager.      (line 3385)
   13247 * BFD_RELOC_TILEGX_HW0:                  howto manager.      (line 3377)
   13248 * BFD_RELOC_TILEGX_HW0_LAST:             howto manager.      (line 3381)
   13249 * BFD_RELOC_TILEGX_HW1:                  howto manager.      (line 3378)
   13250 * BFD_RELOC_TILEGX_HW1_LAST:             howto manager.      (line 3382)
   13251 * BFD_RELOC_TILEGX_HW2:                  howto manager.      (line 3379)
   13252 * BFD_RELOC_TILEGX_HW2_LAST:             howto manager.      (line 3383)
   13253 * BFD_RELOC_TILEGX_HW3:                  howto manager.      (line 3380)
   13254 * BFD_RELOC_TILEGX_IMM16_X0_HW0:         howto manager.      (line 3404)
   13255 * BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT:     howto manager.      (line 3432)
   13256 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST:    howto manager.      (line 3412)
   13257 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager.     (line 3440)
   13258 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager.   (line 3426)
   13259 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL: howto manager.
   13260                                                              (line 3460)
   13261 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager.  (line 3454)
   13262 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager.  (line 3466)
   13263 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: howto manager.  (line 3450)
   13264 * BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL:   howto manager.      (line 3418)
   13265 * BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL: howto manager.    (line 3434)
   13266 * BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD:  howto manager.      (line 3446)
   13267 * BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE:  howto manager.      (line 3458)
   13268 * BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE:  howto manager.      (line 3448)
   13269 * BFD_RELOC_TILEGX_IMM16_X0_HW1:         howto manager.      (line 3406)
   13270 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST:    howto manager.      (line 3414)
   13271 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager.     (line 3442)
   13272 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager.   (line 3428)
   13273 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL: howto manager.
   13274                                                              (line 3462)
   13275 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager.  (line 3456)
   13276 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager.  (line 3468)
   13277 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: howto manager.  (line 3452)
   13278 * BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL:   howto manager.      (line 3420)
   13279 * BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL: howto manager.    (line 3436)
   13280 * BFD_RELOC_TILEGX_IMM16_X0_HW2:         howto manager.      (line 3408)
   13281 * BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST:    howto manager.      (line 3416)
   13282 * BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager.   (line 3430)
   13283 * BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL: howto manager.
   13284                                                              (line 3464)
   13285 * BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL:   howto manager.      (line 3422)
   13286 * BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL: howto manager.    (line 3438)
   13287 * BFD_RELOC_TILEGX_IMM16_X0_HW3:         howto manager.      (line 3410)
   13288 * BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL:   howto manager.      (line 3424)
   13289 * BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL: howto manager.    (line 3444)
   13290 * BFD_RELOC_TILEGX_IMM16_X1_HW0:         howto manager.      (line 3405)
   13291 * BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT:     howto manager.      (line 3433)
   13292 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST:    howto manager.      (line 3413)
   13293 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager.     (line 3441)
   13294 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager.   (line 3427)
   13295 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL: howto manager.
   13296                                                              (line 3461)
   13297 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager.  (line 3455)
   13298 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager.  (line 3467)
   13299 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: howto manager.  (line 3451)
   13300 * BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL:   howto manager.      (line 3419)
   13301 * BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL: howto manager.    (line 3435)
   13302 * BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD:  howto manager.      (line 3447)
   13303 * BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE:  howto manager.      (line 3459)
   13304 * BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE:  howto manager.      (line 3449)
   13305 * BFD_RELOC_TILEGX_IMM16_X1_HW1:         howto manager.      (line 3407)
   13306 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST:    howto manager.      (line 3415)
   13307 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager.     (line 3443)
   13308 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager.   (line 3429)
   13309 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL: howto manager.
   13310                                                              (line 3463)
   13311 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager.  (line 3457)
   13312 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager.  (line 3469)
   13313 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: howto manager.  (line 3453)
   13314 * BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL:   howto manager.      (line 3421)
   13315 * BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL: howto manager.    (line 3437)
   13316 * BFD_RELOC_TILEGX_IMM16_X1_HW2:         howto manager.      (line 3409)
   13317 * BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST:    howto manager.      (line 3417)
   13318 * BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager.   (line 3431)
   13319 * BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL: howto manager.
   13320                                                              (line 3465)
   13321 * BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL:   howto manager.      (line 3423)
   13322 * BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL: howto manager.    (line 3439)
   13323 * BFD_RELOC_TILEGX_IMM16_X1_HW3:         howto manager.      (line 3411)
   13324 * BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL:   howto manager.      (line 3425)
   13325 * BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL: howto manager.    (line 3445)
   13326 * BFD_RELOC_TILEGX_IMM8_X0:              howto manager.      (line 3391)
   13327 * BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD:      howto manager.      (line 3482)
   13328 * BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD:   howto manager.      (line 3477)
   13329 * BFD_RELOC_TILEGX_IMM8_X1:              howto manager.      (line 3393)
   13330 * BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD:      howto manager.      (line 3483)
   13331 * BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD:   howto manager.      (line 3478)
   13332 * BFD_RELOC_TILEGX_IMM8_Y0:              howto manager.      (line 3392)
   13333 * BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD:      howto manager.      (line 3484)
   13334 * BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD:   howto manager.      (line 3479)
   13335 * BFD_RELOC_TILEGX_IMM8_Y1:              howto manager.      (line 3394)
   13336 * BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD:      howto manager.      (line 3485)
   13337 * BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD:   howto manager.      (line 3480)
   13338 * BFD_RELOC_TILEGX_JMP_SLOT:             howto manager.      (line 3386)
   13339 * BFD_RELOC_TILEGX_JUMPOFF_X1:           howto manager.      (line 3389)
   13340 * BFD_RELOC_TILEGX_JUMPOFF_X1_PLT:       howto manager.      (line 3390)
   13341 * BFD_RELOC_TILEGX_MF_IMM14_X1:          howto manager.      (line 3397)
   13342 * BFD_RELOC_TILEGX_MMEND_X0:             howto manager.      (line 3399)
   13343 * BFD_RELOC_TILEGX_MMSTART_X0:           howto manager.      (line 3398)
   13344 * BFD_RELOC_TILEGX_MT_IMM14_X1:          howto manager.      (line 3396)
   13345 * BFD_RELOC_TILEGX_RELATIVE:             howto manager.      (line 3387)
   13346 * BFD_RELOC_TILEGX_SHAMT_X0:             howto manager.      (line 3400)
   13347 * BFD_RELOC_TILEGX_SHAMT_X1:             howto manager.      (line 3401)
   13348 * BFD_RELOC_TILEGX_SHAMT_Y0:             howto manager.      (line 3402)
   13349 * BFD_RELOC_TILEGX_SHAMT_Y1:             howto manager.      (line 3403)
   13350 * BFD_RELOC_TILEGX_TLS_DTPMOD32:         howto manager.      (line 3473)
   13351 * BFD_RELOC_TILEGX_TLS_DTPMOD64:         howto manager.      (line 3470)
   13352 * BFD_RELOC_TILEGX_TLS_DTPOFF32:         howto manager.      (line 3474)
   13353 * BFD_RELOC_TILEGX_TLS_DTPOFF64:         howto manager.      (line 3471)
   13354 * BFD_RELOC_TILEGX_TLS_GD_CALL:          howto manager.      (line 3476)
   13355 * BFD_RELOC_TILEGX_TLS_IE_LOAD:          howto manager.      (line 3481)
   13356 * BFD_RELOC_TILEGX_TLS_TPOFF32:          howto manager.      (line 3475)
   13357 * BFD_RELOC_TILEGX_TLS_TPOFF64:          howto manager.      (line 3472)
   13358 * BFD_RELOC_TILEPRO_BROFF_X1:            howto manager.      (line 3300)
   13359 * BFD_RELOC_TILEPRO_COPY:                howto manager.      (line 3296)
   13360 * BFD_RELOC_TILEPRO_DEST_IMM8_X1:        howto manager.      (line 3307)
   13361 * BFD_RELOC_TILEPRO_GLOB_DAT:            howto manager.      (line 3297)
   13362 * BFD_RELOC_TILEPRO_IMM16_X0:            howto manager.      (line 3310)
   13363 * BFD_RELOC_TILEPRO_IMM16_X0_GOT:        howto manager.      (line 3326)
   13364 * BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA:     howto manager.      (line 3332)
   13365 * BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI:     howto manager.      (line 3330)
   13366 * BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO:     howto manager.      (line 3328)
   13367 * BFD_RELOC_TILEPRO_IMM16_X0_HA:         howto manager.      (line 3316)
   13368 * BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL:   howto manager.      (line 3324)
   13369 * BFD_RELOC_TILEPRO_IMM16_X0_HI:         howto manager.      (line 3314)
   13370 * BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL:   howto manager.      (line 3322)
   13371 * BFD_RELOC_TILEPRO_IMM16_X0_LO:         howto manager.      (line 3312)
   13372 * BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL:   howto manager.      (line 3320)
   13373 * BFD_RELOC_TILEPRO_IMM16_X0_PCREL:      howto manager.      (line 3318)
   13374 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD:     howto manager.      (line 3348)
   13375 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA:  howto manager.      (line 3354)
   13376 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI:  howto manager.      (line 3352)
   13377 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO:  howto manager.      (line 3350)
   13378 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE:     howto manager.      (line 3356)
   13379 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA:  howto manager.      (line 3362)
   13380 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI:  howto manager.      (line 3360)
   13381 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO:  howto manager.      (line 3358)
   13382 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE:     howto manager.      (line 3367)
   13383 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA:  howto manager.      (line 3373)
   13384 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI:  howto manager.      (line 3371)
   13385 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO:  howto manager.      (line 3369)
   13386 * BFD_RELOC_TILEPRO_IMM16_X1:            howto manager.      (line 3311)
   13387 * BFD_RELOC_TILEPRO_IMM16_X1_GOT:        howto manager.      (line 3327)
   13388 * BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA:     howto manager.      (line 3333)
   13389 * BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI:     howto manager.      (line 3331)
   13390 * BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO:     howto manager.      (line 3329)
   13391 * BFD_RELOC_TILEPRO_IMM16_X1_HA:         howto manager.      (line 3317)
   13392 * BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL:   howto manager.      (line 3325)
   13393 * BFD_RELOC_TILEPRO_IMM16_X1_HI:         howto manager.      (line 3315)
   13394 * BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL:   howto manager.      (line 3323)
   13395 * BFD_RELOC_TILEPRO_IMM16_X1_LO:         howto manager.      (line 3313)
   13396 * BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL:   howto manager.      (line 3321)
   13397 * BFD_RELOC_TILEPRO_IMM16_X1_PCREL:      howto manager.      (line 3319)
   13398 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD:     howto manager.      (line 3349)
   13399 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA:  howto manager.      (line 3355)
   13400 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI:  howto manager.      (line 3353)
   13401 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO:  howto manager.      (line 3351)
   13402 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE:     howto manager.      (line 3357)
   13403 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA:  howto manager.      (line 3363)
   13404 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI:  howto manager.      (line 3361)
   13405 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO:  howto manager.      (line 3359)
   13406 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE:     howto manager.      (line 3368)
   13407 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA:  howto manager.      (line 3374)
   13408 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI:  howto manager.      (line 3372)
   13409 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO:  howto manager.      (line 3370)
   13410 * BFD_RELOC_TILEPRO_IMM8_X0:             howto manager.      (line 3303)
   13411 * BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD:  howto manager.      (line 3343)
   13412 * BFD_RELOC_TILEPRO_IMM8_X1:             howto manager.      (line 3305)
   13413 * BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD:  howto manager.      (line 3344)
   13414 * BFD_RELOC_TILEPRO_IMM8_Y0:             howto manager.      (line 3304)
   13415 * BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD:  howto manager.      (line 3345)
   13416 * BFD_RELOC_TILEPRO_IMM8_Y1:             howto manager.      (line 3306)
   13417 * BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD:  howto manager.      (line 3346)
   13418 * BFD_RELOC_TILEPRO_JMP_SLOT:            howto manager.      (line 3298)
   13419 * BFD_RELOC_TILEPRO_JOFFLONG_X1:         howto manager.      (line 3301)
   13420 * BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT:     howto manager.      (line 3302)
   13421 * BFD_RELOC_TILEPRO_MF_IMM15_X1:         howto manager.      (line 3309)
   13422 * BFD_RELOC_TILEPRO_MMEND_X0:            howto manager.      (line 3335)
   13423 * BFD_RELOC_TILEPRO_MMEND_X1:            howto manager.      (line 3337)
   13424 * BFD_RELOC_TILEPRO_MMSTART_X0:          howto manager.      (line 3334)
   13425 * BFD_RELOC_TILEPRO_MMSTART_X1:          howto manager.      (line 3336)
   13426 * BFD_RELOC_TILEPRO_MT_IMM15_X1:         howto manager.      (line 3308)
   13427 * BFD_RELOC_TILEPRO_RELATIVE:            howto manager.      (line 3299)
   13428 * BFD_RELOC_TILEPRO_SHAMT_X0:            howto manager.      (line 3338)
   13429 * BFD_RELOC_TILEPRO_SHAMT_X1:            howto manager.      (line 3339)
   13430 * BFD_RELOC_TILEPRO_SHAMT_Y0:            howto manager.      (line 3340)
   13431 * BFD_RELOC_TILEPRO_SHAMT_Y1:            howto manager.      (line 3341)
   13432 * BFD_RELOC_TILEPRO_TLS_DTPMOD32:        howto manager.      (line 3364)
   13433 * BFD_RELOC_TILEPRO_TLS_DTPOFF32:        howto manager.      (line 3365)
   13434 * BFD_RELOC_TILEPRO_TLS_GD_CALL:         howto manager.      (line 3342)
   13435 * BFD_RELOC_TILEPRO_TLS_IE_LOAD:         howto manager.      (line 3347)
   13436 * BFD_RELOC_TILEPRO_TLS_TPOFF32:         howto manager.      (line 3366)
   13437 * bfd_reloc_type_lookup:                 howto manager.      (line 3511)
   13438 * BFD_RELOC_V850_16_GOT:                 howto manager.      (line 1601)
   13439 * BFD_RELOC_V850_16_GOTOFF:              howto manager.      (line 1625)
   13440 * BFD_RELOC_V850_16_PCREL:               howto manager.      (line 1571)
   13441 * BFD_RELOC_V850_16_S1:                  howto manager.      (line 1589)
   13442 * BFD_RELOC_V850_16_SPLIT_OFFSET:        howto manager.      (line 1586)
   13443 * BFD_RELOC_V850_17_PCREL:               howto manager.      (line 1574)
   13444 * BFD_RELOC_V850_22_PCREL:               howto manager.      (line 1506)
   13445 * BFD_RELOC_V850_22_PLT_PCREL:           howto manager.      (line 1607)
   13446 * BFD_RELOC_V850_23:                     howto manager.      (line 1577)
   13447 * BFD_RELOC_V850_32_ABS:                 howto manager.      (line 1583)
   13448 * BFD_RELOC_V850_32_GOT:                 howto manager.      (line 1604)
   13449 * BFD_RELOC_V850_32_GOTOFF:              howto manager.      (line 1628)
   13450 * BFD_RELOC_V850_32_GOTPCREL:            howto manager.      (line 1598)
   13451 * BFD_RELOC_V850_32_PCREL:               howto manager.      (line 1580)
   13452 * BFD_RELOC_V850_32_PLT_PCREL:           howto manager.      (line 1610)
   13453 * BFD_RELOC_V850_9_PCREL:                howto manager.      (line 1503)
   13454 * BFD_RELOC_V850_ALIGN:                  howto manager.      (line 1564)
   13455 * BFD_RELOC_V850_CALLT_15_16_OFFSET:     howto manager.      (line 1595)
   13456 * BFD_RELOC_V850_CALLT_16_16_OFFSET:     howto manager.      (line 1555)
   13457 * BFD_RELOC_V850_CALLT_6_7_OFFSET:       howto manager.      (line 1552)
   13458 * BFD_RELOC_V850_CODE:                   howto manager.      (line 1631)
   13459 * BFD_RELOC_V850_COPY:                   howto manager.      (line 1613)
   13460 * BFD_RELOC_V850_DATA:                   howto manager.      (line 1634)
   13461 * BFD_RELOC_V850_GLOB_DAT:               howto manager.      (line 1616)
   13462 * BFD_RELOC_V850_JMP_SLOT:               howto manager.      (line 1619)
   13463 * BFD_RELOC_V850_LO16_S1:                howto manager.      (line 1592)
   13464 * BFD_RELOC_V850_LO16_SPLIT_OFFSET:      howto manager.      (line 1567)
   13465 * BFD_RELOC_V850_LONGCALL:               howto manager.      (line 1558)
   13466 * BFD_RELOC_V850_LONGJUMP:               howto manager.      (line 1561)
   13467 * BFD_RELOC_V850_RELATIVE:               howto manager.      (line 1622)
   13468 * BFD_RELOC_V850_SDA_15_16_OFFSET:       howto manager.      (line 1512)
   13469 * BFD_RELOC_V850_SDA_16_16_OFFSET:       howto manager.      (line 1509)
   13470 * BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager.      (line 1544)
   13471 * BFD_RELOC_V850_TDA_16_16_OFFSET:       howto manager.      (line 1534)
   13472 * BFD_RELOC_V850_TDA_4_4_OFFSET:         howto manager.      (line 1541)
   13473 * BFD_RELOC_V850_TDA_4_5_OFFSET:         howto manager.      (line 1537)
   13474 * BFD_RELOC_V850_TDA_6_8_OFFSET:         howto manager.      (line 1523)
   13475 * BFD_RELOC_V850_TDA_7_7_OFFSET:         howto manager.      (line 1531)
   13476 * BFD_RELOC_V850_TDA_7_8_OFFSET:         howto manager.      (line 1527)
   13477 * BFD_RELOC_V850_ZDA_15_16_OFFSET:       howto manager.      (line 1519)
   13478 * BFD_RELOC_V850_ZDA_16_16_OFFSET:       howto manager.      (line 1516)
   13479 * BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager.      (line 1548)
   13480 * BFD_RELOC_VAX_GLOB_DAT:                howto manager.      (line 2676)
   13481 * BFD_RELOC_VAX_JMP_SLOT:                howto manager.      (line 2677)
   13482 * BFD_RELOC_VAX_RELATIVE:                howto manager.      (line 2678)
   13483 * BFD_RELOC_VPE4KMATH_DATA:              howto manager.      (line 2230)
   13484 * BFD_RELOC_VPE4KMATH_INSN:              howto manager.      (line 2231)
   13485 * BFD_RELOC_VTABLE_ENTRY:                howto manager.      (line 2235)
   13486 * BFD_RELOC_VTABLE_INHERIT:              howto manager.      (line 2234)
   13487 * BFD_RELOC_X86_64_32S:                  howto manager.      (line  614)
   13488 * BFD_RELOC_X86_64_COPY:                 howto manager.      (line  609)
   13489 * BFD_RELOC_X86_64_DTPMOD64:             howto manager.      (line  615)
   13490 * BFD_RELOC_X86_64_DTPOFF32:             howto manager.      (line  620)
   13491 * BFD_RELOC_X86_64_DTPOFF64:             howto manager.      (line  616)
   13492 * BFD_RELOC_X86_64_GLOB_DAT:             howto manager.      (line  610)
   13493 * BFD_RELOC_X86_64_GOT32:                howto manager.      (line  607)
   13494 * BFD_RELOC_X86_64_GOT64:                howto manager.      (line  625)
   13495 * BFD_RELOC_X86_64_GOTOFF64:             howto manager.      (line  623)
   13496 * BFD_RELOC_X86_64_GOTPC32:              howto manager.      (line  624)
   13497 * BFD_RELOC_X86_64_GOTPC32_TLSDESC:      howto manager.      (line  630)
   13498 * BFD_RELOC_X86_64_GOTPC64:              howto manager.      (line  627)
   13499 * BFD_RELOC_X86_64_GOTPCREL:             howto manager.      (line  613)
   13500 * BFD_RELOC_X86_64_GOTPCREL64:           howto manager.      (line  626)
   13501 * BFD_RELOC_X86_64_GOTPLT64:             howto manager.      (line  628)
   13502 * BFD_RELOC_X86_64_GOTTPOFF:             howto manager.      (line  621)
   13503 * BFD_RELOC_X86_64_IRELATIVE:            howto manager.      (line  633)
   13504 * BFD_RELOC_X86_64_JUMP_SLOT:            howto manager.      (line  611)
   13505 * BFD_RELOC_X86_64_PC32_BND:             howto manager.      (line  634)
   13506 * BFD_RELOC_X86_64_PLT32:                howto manager.      (line  608)
   13507 * BFD_RELOC_X86_64_PLT32_BND:            howto manager.      (line  635)
   13508 * BFD_RELOC_X86_64_PLTOFF64:             howto manager.      (line  629)
   13509 * BFD_RELOC_X86_64_RELATIVE:             howto manager.      (line  612)
   13510 * BFD_RELOC_X86_64_TLSDESC:              howto manager.      (line  632)
   13511 * BFD_RELOC_X86_64_TLSDESC_CALL:         howto manager.      (line  631)
   13512 * BFD_RELOC_X86_64_TLSGD:                howto manager.      (line  618)
   13513 * BFD_RELOC_X86_64_TLSLD:                howto manager.      (line  619)
   13514 * BFD_RELOC_X86_64_TPOFF32:              howto manager.      (line  622)
   13515 * BFD_RELOC_X86_64_TPOFF64:              howto manager.      (line  617)
   13516 * BFD_RELOC_XC16X_PAG:                   howto manager.      (line 2670)
   13517 * BFD_RELOC_XC16X_POF:                   howto manager.      (line 2671)
   13518 * BFD_RELOC_XC16X_SEG:                   howto manager.      (line 2672)
   13519 * BFD_RELOC_XC16X_SOF:                   howto manager.      (line 2673)
   13520 * BFD_RELOC_XGATE_24:                    howto manager.      (line 2393)
   13521 * BFD_RELOC_XGATE_GPAGE:                 howto manager.      (line 2390)
   13522 * BFD_RELOC_XGATE_IMM3:                  howto manager.      (line 2410)
   13523 * BFD_RELOC_XGATE_IMM4:                  howto manager.      (line 2413)
   13524 * BFD_RELOC_XGATE_IMM5:                  howto manager.      (line 2416)
   13525 * BFD_RELOC_XGATE_IMM8_HI:               howto manager.      (line 2406)
   13526 * BFD_RELOC_XGATE_IMM8_LO:               howto manager.      (line 2402)
   13527 * BFD_RELOC_XGATE_LO16:                  howto manager.      (line 2386)
   13528 * BFD_RELOC_XGATE_PCREL_10:              howto manager.      (line 2399)
   13529 * BFD_RELOC_XGATE_PCREL_9:               howto manager.      (line 2396)
   13530 * BFD_RELOC_XGATE_RL_GROUP:              howto manager.      (line 2381)
   13531 * BFD_RELOC_XGATE_RL_JUMP:               howto manager.      (line 2377)
   13532 * BFD_RELOC_XSTORMY16_12:                howto manager.      (line 2662)
   13533 * BFD_RELOC_XSTORMY16_24:                howto manager.      (line 2663)
   13534 * BFD_RELOC_XSTORMY16_FPTR16:            howto manager.      (line 2664)
   13535 * BFD_RELOC_XSTORMY16_REL_12:            howto manager.      (line 2661)
   13536 * BFD_RELOC_XTENSA_ASM_EXPAND:           howto manager.      (line 2838)
   13537 * BFD_RELOC_XTENSA_ASM_SIMPLIFY:         howto manager.      (line 2843)
   13538 * BFD_RELOC_XTENSA_DIFF16:               howto manager.      (line 2785)
   13539 * BFD_RELOC_XTENSA_DIFF32:               howto manager.      (line 2786)
   13540 * BFD_RELOC_XTENSA_DIFF8:                howto manager.      (line 2784)
   13541 * BFD_RELOC_XTENSA_GLOB_DAT:             howto manager.      (line 2774)
   13542 * BFD_RELOC_XTENSA_JMP_SLOT:             howto manager.      (line 2775)
   13543 * BFD_RELOC_XTENSA_OP0:                  howto manager.      (line 2832)
   13544 * BFD_RELOC_XTENSA_OP1:                  howto manager.      (line 2833)
   13545 * BFD_RELOC_XTENSA_OP2:                  howto manager.      (line 2834)
   13546 * BFD_RELOC_XTENSA_PLT:                  howto manager.      (line 2779)
   13547 * BFD_RELOC_XTENSA_RELATIVE:             howto manager.      (line 2776)
   13548 * BFD_RELOC_XTENSA_RTLD:                 howto manager.      (line 2769)
   13549 * BFD_RELOC_XTENSA_SLOT0_ALT:            howto manager.      (line 2814)
   13550 * BFD_RELOC_XTENSA_SLOT0_OP:             howto manager.      (line 2794)
   13551 * BFD_RELOC_XTENSA_SLOT10_ALT:           howto manager.      (line 2824)
   13552 * BFD_RELOC_XTENSA_SLOT10_OP:            howto manager.      (line 2804)
   13553 * BFD_RELOC_XTENSA_SLOT11_ALT:           howto manager.      (line 2825)
   13554 * BFD_RELOC_XTENSA_SLOT11_OP:            howto manager.      (line 2805)
   13555 * BFD_RELOC_XTENSA_SLOT12_ALT:           howto manager.      (line 2826)
   13556 * BFD_RELOC_XTENSA_SLOT12_OP:            howto manager.      (line 2806)
   13557 * BFD_RELOC_XTENSA_SLOT13_ALT:           howto manager.      (line 2827)
   13558 * BFD_RELOC_XTENSA_SLOT13_OP:            howto manager.      (line 2807)
   13559 * BFD_RELOC_XTENSA_SLOT14_ALT:           howto manager.      (line 2828)
   13560 * BFD_RELOC_XTENSA_SLOT14_OP:            howto manager.      (line 2808)
   13561 * BFD_RELOC_XTENSA_SLOT1_ALT:            howto manager.      (line 2815)
   13562 * BFD_RELOC_XTENSA_SLOT1_OP:             howto manager.      (line 2795)
   13563 * BFD_RELOC_XTENSA_SLOT2_ALT:            howto manager.      (line 2816)
   13564 * BFD_RELOC_XTENSA_SLOT2_OP:             howto manager.      (line 2796)
   13565 * BFD_RELOC_XTENSA_SLOT3_ALT:            howto manager.      (line 2817)
   13566 * BFD_RELOC_XTENSA_SLOT3_OP:             howto manager.      (line 2797)
   13567 * BFD_RELOC_XTENSA_SLOT4_ALT:            howto manager.      (line 2818)
   13568 * BFD_RELOC_XTENSA_SLOT4_OP:             howto manager.      (line 2798)
   13569 * BFD_RELOC_XTENSA_SLOT5_ALT:            howto manager.      (line 2819)
   13570 * BFD_RELOC_XTENSA_SLOT5_OP:             howto manager.      (line 2799)
   13571 * BFD_RELOC_XTENSA_SLOT6_ALT:            howto manager.      (line 2820)
   13572 * BFD_RELOC_XTENSA_SLOT6_OP:             howto manager.      (line 2800)
   13573 * BFD_RELOC_XTENSA_SLOT7_ALT:            howto manager.      (line 2821)
   13574 * BFD_RELOC_XTENSA_SLOT7_OP:             howto manager.      (line 2801)
   13575 * BFD_RELOC_XTENSA_SLOT8_ALT:            howto manager.      (line 2822)
   13576 * BFD_RELOC_XTENSA_SLOT8_OP:             howto manager.      (line 2802)
   13577 * BFD_RELOC_XTENSA_SLOT9_ALT:            howto manager.      (line 2823)
   13578 * BFD_RELOC_XTENSA_SLOT9_OP:             howto manager.      (line 2803)
   13579 * BFD_RELOC_XTENSA_TLS_ARG:              howto manager.      (line 2853)
   13580 * BFD_RELOC_XTENSA_TLS_CALL:             howto manager.      (line 2854)
   13581 * BFD_RELOC_XTENSA_TLS_DTPOFF:           howto manager.      (line 2850)
   13582 * BFD_RELOC_XTENSA_TLS_FUNC:             howto manager.      (line 2852)
   13583 * BFD_RELOC_XTENSA_TLS_TPOFF:            howto manager.      (line 2851)
   13584 * BFD_RELOC_XTENSA_TLSDESC_ARG:          howto manager.      (line 2849)
   13585 * BFD_RELOC_XTENSA_TLSDESC_FN:           howto manager.      (line 2848)
   13586 * BFD_RELOC_Z80_DISP8:                   howto manager.      (line 2857)
   13587 * BFD_RELOC_Z8K_CALLR:                   howto manager.      (line 2863)
   13588 * BFD_RELOC_Z8K_DISP7:                   howto manager.      (line 2860)
   13589 * BFD_RELOC_Z8K_IMM4L:                   howto manager.      (line 2866)
   13590 * bfd_rename_section:                    section prototypes. (line  169)
   13591 * bfd_scan_arch:                         Architectures.      (line  514)
   13592 * bfd_scan_vma:                          Miscellaneous.      (line  126)
   13593 * bfd_seach_for_target:                  bfd_target.         (line  517)
   13594 * bfd_section_already_linked:            Writing the symbol table.
   13595                                                              (line   55)
   13596 * bfd_section_list_clear:                section prototypes. (line    8)
   13597 * bfd_sections_find_if:                  section prototypes. (line  199)
   13598 * bfd_set_arch_info:                     Architectures.      (line  555)
   13599 * bfd_set_archive_head:                  Archives.           (line   75)
   13600 * bfd_set_assert_handler:                Error reporting.    (line  141)
   13601 * bfd_set_default_target:                bfd_target.         (line  456)
   13602 * bfd_set_error:                         Error reporting.    (line   57)
   13603 * bfd_set_error_handler:                 Error reporting.    (line   99)
   13604 * bfd_set_error_program_name:            Error reporting.    (line  108)
   13605 * bfd_set_file_flags:                    Miscellaneous.      (line   44)
   13606 * bfd_set_format:                        Formats.            (line   68)
   13607 * bfd_set_gp_size:                       Miscellaneous.      (line  116)
   13608 * bfd_set_private_flags:                 Miscellaneous.      (line  193)
   13609 * bfd_set_reloc:                         Miscellaneous.      (line   34)
   13610 * bfd_set_section_contents:              section prototypes. (line  230)
   13611 * bfd_set_section_flags:                 section prototypes. (line  154)
   13612 * bfd_set_section_size:                  section prototypes. (line  216)
   13613 * bfd_set_start_address:                 Miscellaneous.      (line   95)
   13614 * bfd_set_symtab:                        symbol handling functions.
   13615                                                              (line   60)
   13616 * bfd_symbol_info:                       symbol handling functions.
   13617                                                              (line  130)
   13618 * bfd_target_list:                       bfd_target.         (line  508)
   13619 * bfd_write_bigendian_4byte_int:         Internal.           (line   13)
   13620 * bfd_zalloc:                            Opening and Closing.
   13621                                                              (line  257)
   13622 * bfd_zalloc2:                           Opening and Closing.
   13623                                                              (line  266)
   13624 * coff_symbol_type:                      coff.               (line  245)
   13625 * core_file_matches_executable_p:        Core Files.         (line   39)
   13626 * find_separate_debug_file:              Opening and Closing.
   13627                                                              (line  332)
   13628 * generic_core_file_matches_executable_p: Core Files.        (line   49)
   13629 * Hash tables:                           Hash Tables.        (line    6)
   13630 * internal object-file format:           Canonical format.   (line   11)
   13631 * Linker:                                Linker Functions.   (line    6)
   13632 * Other functions:                       Miscellaneous.      (line  208)
   13633 * separate_alt_debug_file_exists:        Opening and Closing.
   13634                                                              (line  323)
   13635 * separate_debug_file_exists:            Opening and Closing.
   13636                                                              (line  314)
   13637 * struct bfd_iovec:                      Miscellaneous.      (line  369)
   13638 * target vector (_bfd_final_link):       Performing the Final Link.
   13639                                                              (line    6)
   13640 * target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table.
   13641                                                              (line    6)
   13642 * target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table.
   13643                                                              (line    6)
   13644 * The HOWTO Macro:                       typedef arelent.    (line  288)
   13645 * what is it?:                           Overview.           (line    6)
   13646 
   13647 
   13648 
   13649 Tag Table:
   13650 Node: Top1058
   13651 Node: Overview1397
   13652 Node: History2448
   13653 Node: How It Works3394
   13654 Node: What BFD Version 2 Can Do4937
   13655 Node: BFD information loss6252
   13656 Node: Canonical format8784
   13657 Node: BFD front end13156
   13658 Node: typedef bfd13580
   13659 Node: Error reporting24586
   13660 Node: Miscellaneous29453
   13661 Node: Memory Usage46603
   13662 Node: Initialization47831
   13663 Node: Sections48290
   13664 Node: Section Input48773
   13665 Node: Section Output50138
   13666 Node: typedef asection52624
   13667 Node: section prototypes78807
   13668 Node: Symbols89064
   13669 Node: Reading Symbols90659
   13670 Node: Writing Symbols91766
   13671 Node: Mini Symbols93507
   13672 Node: typedef asymbol94481
   13673 Node: symbol handling functions100540
   13674 Node: Archives105882
   13675 Node: Formats109911
   13676 Node: Relocations112859
   13677 Node: typedef arelent113586
   13678 Node: howto manager129222
   13679 Node: Core Files244197
   13680 Node: Targets246235
   13681 Node: bfd_target248205
   13682 Node: Architectures271043
   13683 Node: Opening and Closing298508
   13684 Node: Internal312830
   13685 Node: File Caching319175
   13686 Node: Linker Functions321089
   13687 Node: Creating a Linker Hash Table322762
   13688 Node: Adding Symbols to the Hash Table324500
   13689 Node: Differing file formats325400
   13690 Node: Adding symbols from an object file327125
   13691 Node: Adding symbols from an archive329276
   13692 Node: Performing the Final Link331622
   13693 Node: Information provided by the linker332864
   13694 Node: Relocating the section contents334018
   13695 Node: Writing the symbol table335769
   13696 Node: Hash Tables340153
   13697 Node: Creating and Freeing a Hash Table341351
   13698 Node: Looking Up or Entering a String342601
   13699 Node: Traversing a Hash Table343854
   13700 Node: Deriving a New Hash Table Type344643
   13701 Node: Define the Derived Structures345709
   13702 Node: Write the Derived Creation Routine346790
   13703 Node: Write Other Derived Routines349414
   13704 Node: BFD back ends350729
   13705 Node: What to Put Where350999
   13706 Node: aout351179
   13707 Node: coff357517
   13708 Node: elf386166
   13709 Node: mmo386567
   13710 Node: File layout387440
   13711 Node: Symbol-table393367
   13712 Node: mmo section mapping397131
   13713 Node: GNU Free Documentation License400783
   13714 Node: BFD Index425866
   13715 
   13716 End Tag Table
   13717