bfd.info revision 1.1.1.8
1This is bfd.info, produced by makeinfo version 6.5 from bfd.texi.
2
3This file documents the BFD library.
4
5   Copyright (C) 1991-2020 Free Software Foundation, Inc.
6
7   Permission is granted to copy, distribute and/or modify this document
8under the terms of the GNU Free Documentation License, Version 1.3 or
9any later version published by the Free Software Foundation; with the
10Invariant Sections being "GNU General Public License" and "Funding Free
11Software", the Front-Cover texts being (a) (see below), and with the
12Back-Cover Texts being (b) (see below).  A copy of the license is
13included in the section entitled "GNU Free Documentation License".
14
15   (a) The FSF's Front-Cover Text is:
16
17   A GNU Manual
18
19   (b) The FSF's Back-Cover Text is:
20
21   You have freedom to copy and modify this GNU Manual, like GNU
22software.  Copies published by the Free Software Foundation raise funds
23for GNU development.
24INFO-DIR-SECTION Software development
25START-INFO-DIR-ENTRY
26* Bfd: (bfd).                   The Binary File Descriptor library.
27END-INFO-DIR-ENTRY
28
29
30File: bfd.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
31
32This file documents the binary file descriptor library libbfd.
33
34* Menu:
35
36* Overview::			Overview of BFD
37* BFD front end::		BFD front end
38* BFD back ends::		BFD back ends
39* GNU Free Documentation License::  GNU Free Documentation License
40* BFD Index::		BFD Index
41
42
43File: bfd.info,  Node: Overview,  Next: BFD front end,  Prev: Top,  Up: Top
44
451 Introduction
46**************
47
48BFD is a package which allows applications to use the same routines to
49operate on object files whatever the object file format.  A new object
50file format can be supported simply by creating a new BFD back end and
51adding it to the library.
52
53   BFD is split into two parts: the front end, and the back ends (one
54for each object file format).
55   * The front end of BFD provides the interface to the user.  It
56     manages memory and various canonical data structures.  The front
57     end also decides which back end to use and when to call back end
58     routines.
59   * The back ends provide BFD its view of the real world.  Each back
60     end provides a set of calls which the BFD front end can use to
61     maintain its canonical form.  The back ends also may keep around
62     information for their own use, for greater efficiency.
63* Menu:
64
65* History::			History
66* How It Works::		How It Works
67* What BFD Version 2 Can Do::	What BFD Version 2 Can Do
68
69
70File: bfd.info,  Node: History,  Next: How It Works,  Prev: Overview,  Up: Overview
71
721.1 History
73===========
74
75One spur behind BFD was the desire, on the part of the GNU 960 team at
76Intel Oregon, for interoperability of applications on their COFF and
77b.out file formats.  Cygnus was providing GNU support for the team, and
78was contracted to provide the required functionality.
79
80   The name came from a conversation David Wallace was having with
81Richard Stallman about the library: RMS said that it would be quite
82hard--David said "BFD". Stallman was right, but the name stuck.
83
84   At the same time, Ready Systems wanted much the same thing, but for
85different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k
86coff.
87
88   BFD was first implemented by members of Cygnus Support; Steve
89Chamberlain ('sac@cygnus.com'), John Gilmore ('gnu@cygnus.com'), K.
90Richard Pixley ('rich@cygnus.com') and David Henkel-Wallace
91('gumby@cygnus.com').
92
93
94File: bfd.info,  Node: How It Works,  Next: What BFD Version 2 Can Do,  Prev: History,  Up: Overview
95
961.2 How To Use BFD
97==================
98
99To use the library, include 'bfd.h' and link with 'libbfd.a'.
100
101   BFD provides a common interface to the parts of an object file for a
102calling application.
103
104   When an application successfully opens a target file (object,
105archive, or whatever), a pointer to an internal structure is returned.
106This pointer points to a structure called 'bfd', described in 'bfd.h'.
107Our convention is to call this pointer a BFD, and instances of it within
108code 'abfd'.  All operations on the target object file are applied as
109methods to the BFD. The mapping is defined within 'bfd.h' in a set of
110macros, all beginning with 'bfd_' to reduce namespace pollution.
111
112   For example, this sequence does what you would probably expect:
113return the number of sections in an object file attached to a BFD
114'abfd'.
115
116     #include "bfd.h"
117
118     unsigned int number_of_sections (abfd)
119     bfd *abfd;
120     {
121       return bfd_count_sections (abfd);
122     }
123
124   The abstraction used within BFD is that an object file has:
125
126   * a header,
127   * a number of sections containing raw data (*note Sections::),
128   * a set of relocations (*note Relocations::), and
129   * some symbol information (*note Symbols::).
130Also, BFDs opened for archives have the additional attribute of an index
131and contain subordinate BFDs.  This approach is fine for a.out and coff,
132but loses efficiency when applied to formats such as S-records and
133IEEE-695.
134
135
136File: bfd.info,  Node: What BFD Version 2 Can Do,  Prev: How It Works,  Up: Overview
137
1381.3 What BFD Version 2 Can Do
139=============================
140
141When an object file is opened, BFD subroutines automatically determine
142the format of the input object file.  They then build a descriptor in
143memory with pointers to routines that will be used to access elements of
144the object file's data structures.
145
146   As different information from the object files is required, BFD reads
147from different sections of the file and processes them.  For example, a
148very common operation for the linker is processing symbol tables.  Each
149BFD back end provides a routine for converting between the object file's
150representation of symbols and an internal canonical format.  When the
151linker asks for the symbol table of an object file, it calls through a
152memory pointer to the routine from the relevant BFD back end which reads
153and converts the table into a canonical form.  The linker then operates
154upon the canonical form.  When the link is finished and the linker
155writes the output file's symbol table, another BFD back end routine is
156called to take the newly created symbol table and convert it into the
157chosen output format.
158
159* Menu:
160
161* BFD information loss::	Information Loss
162* Canonical format::		The BFD	canonical object-file format
163
164
165File: bfd.info,  Node: BFD information loss,  Next: Canonical format,  Up: What BFD Version 2 Can Do
166
1671.3.1 Information Loss
168----------------------
169
170_Information can be lost during output._  The output formats supported
171by BFD do not provide identical facilities, and information which can be
172described in one form has nowhere to go in another format.  One example
173of this is alignment information in 'b.out'.  There is nowhere in an
174'a.out' format file to store alignment information on the contained
175data, so when a file is linked from 'b.out' and an 'a.out' image is
176produced, alignment information will not propagate to the output file.
177(The linker will still use the alignment information internally, so the
178link is performed correctly).
179
180   Another example is COFF section names.  COFF files may contain an
181unlimited number of sections, each one with a textual section name.  If
182the target of the link is a format which does not have many sections
183(e.g., 'a.out') or has sections without names (e.g., the Oasys format),
184the link cannot be done simply.  You can circumvent this problem by
185describing the desired input-to-output section mapping with the linker
186command language.
187
188   _Information can be lost during canonicalization._  The BFD internal
189canonical form of the external formats is not exhaustive; there are
190structures in input formats for which there is no direct representation
191internally.  This means that the BFD back ends cannot maintain all
192possible data richness through the transformation between external to
193internal and back to external formats.
194
195   This limitation is only a problem when an application reads one
196format and writes another.  Each BFD back end is responsible for
197maintaining as much data as possible, and the internal BFD canonical
198form has structures which are opaque to the BFD core, and exported only
199to the back ends.  When a file is read in one format, the canonical form
200is generated for BFD and the application.  At the same time, the back
201end saves away any information which may otherwise be lost.  If the data
202is then written back in the same format, the back end routine will be
203able to use the canonical form provided by the BFD core as well as the
204information it prepared earlier.  Since there is a great deal of
205commonality between back ends, there is no information lost when linking
206or copying big endian COFF to little endian COFF, or 'a.out' to 'b.out'.
207When a mixture of formats is linked, the information is only lost from
208the files whose format differs from the destination.
209
210
211File: bfd.info,  Node: Canonical format,  Prev: BFD information loss,  Up: What BFD Version 2 Can Do
212
2131.3.2 The BFD canonical object-file format
214------------------------------------------
215
216The greatest potential for loss of information occurs when there is the
217least overlap between the information provided by the source format,
218that stored by the canonical format, and that needed by the destination
219format.  A brief description of the canonical form may help you
220understand which kinds of data you can count on preserving across
221conversions.
222
223_files_
224     Information stored on a per-file basis includes target machine
225     architecture, particular implementation format type, a demand
226     pageable bit, and a write protected bit.  Information like Unix
227     magic numbers is not stored here--only the magic numbers' meaning,
228     so a 'ZMAGIC' file would have both the demand pageable bit and the
229     write protected text bit set.  The byte order of the target is
230     stored on a per-file basis, so that big- and little-endian object
231     files may be used with one another.
232
233_sections_
234     Each section in the input file contains the name of the section,
235     the section's original address in the object file, size and
236     alignment information, various flags, and pointers into other BFD
237     data structures.
238
239_symbols_
240     Each symbol contains a pointer to the information for the object
241     file which originally defined it, its name, its value, and various
242     flag bits.  When a BFD back end reads in a symbol table, it
243     relocates all symbols to make them relative to the base of the
244     section where they were defined.  Doing this ensures that each
245     symbol points to its containing section.  Each symbol also has a
246     varying amount of hidden private data for the BFD back end.  Since
247     the symbol points to the original file, the private data format for
248     that symbol is accessible.  'ld' can operate on a collection of
249     symbols of wildly different formats without problems.
250
251     Normal global and simple local symbols are maintained on output, so
252     an output file (no matter its format) will retain symbols pointing
253     to functions and to global, static, and common variables.  Some
254     symbol information is not worth retaining; in 'a.out', type
255     information is stored in the symbol table as long symbol names.
256     This information would be useless to most COFF debuggers; the
257     linker has command-line switches to allow users to throw it away.
258
259     There is one word of type information within the symbol, so if the
260     format supports symbol type information within symbols (for
261     example, COFF, Oasys) and the type is simple enough to fit within
262     one word (nearly everything but aggregates), the information will
263     be preserved.
264
265_relocation level_
266     Each canonical BFD relocation record contains a pointer to the
267     symbol to relocate to, the offset of the data to relocate, the
268     section the data is in, and a pointer to a relocation type
269     descriptor.  Relocation is performed by passing messages through
270     the relocation type descriptor and the symbol pointer.  Therefore,
271     relocations can be performed on output data using a relocation
272     method that is only available in one of the input formats.  For
273     instance, Oasys provides a byte relocation format.  A relocation
274     record requesting this relocation type would point indirectly to a
275     routine to perform this, so the relocation may be performed on a
276     byte being written to a 68k COFF file, even though 68k COFF has no
277     such relocation type.
278
279_line numbers_
280     Object formats can contain, for debugging purposes, some form of
281     mapping between symbols, source line numbers, and addresses in the
282     output file.  These addresses have to be relocated along with the
283     symbol information.  Each symbol with an associated list of line
284     number records points to the first record of the list.  The head of
285     a line number list consists of a pointer to the symbol, which
286     allows finding out the address of the function whose line number is
287     being described.  The rest of the list is made up of pairs: offsets
288     into the section and line numbers.  Any format which can simply
289     derive this information can pass it successfully between formats.
290
291
292File: bfd.info,  Node: BFD front end,  Next: BFD back ends,  Prev: Overview,  Up: Top
293
2942 BFD Front End
295***************
296
297* Menu:
298
299* typedef bfd::
300* Error reporting::
301* Miscellaneous::
302* Memory Usage::
303* Initialization::
304* Sections::
305* Symbols::
306* Archives::
307* Formats::
308* Relocations::
309* Core Files::
310* Targets::
311* Architectures::
312* Opening and Closing::
313* Internal::
314* File Caching::
315* Linker Functions::
316* Hash Tables::
317
318
319File: bfd.info,  Node: typedef bfd,  Next: Error reporting,  Prev: BFD front end,  Up: BFD front end
320
3212.1 'typedef bfd'
322=================
323
324A BFD has type 'bfd'; objects of this type are the cornerstone of any
325application using BFD. Using BFD consists of making references though
326the BFD and to data in the BFD.
327
328   Here is the structure that defines the type 'bfd'.  It contains the
329major data about the file and pointers to the rest of the data.
330
331
332     enum bfd_direction
333       {
334         no_direction = 0,
335         read_direction = 1,
336         write_direction = 2,
337         both_direction = 3
338       };
339
340     enum bfd_plugin_format
341       {
342         bfd_plugin_unknown = 0,
343         bfd_plugin_yes = 1,
344         bfd_plugin_no = 2
345       };
346
347     struct bfd_build_id
348       {
349         bfd_size_type size;
350         bfd_byte data[1];
351       };
352
353     struct bfd
354     {
355       /* The filename the application opened the BFD with.  */
356       const char *filename;
357
358       /* A pointer to the target jump table.  */
359       const struct bfd_target *xvec;
360
361       /* The IOSTREAM, and corresponding IO vector that provide access
362          to the file backing the BFD.  */
363       void *iostream;
364       const struct bfd_iovec *iovec;
365
366       /* The caching routines use these to maintain a
367          least-recently-used list of BFDs.  */
368       struct bfd *lru_prev, *lru_next;
369
370       /* Track current file position (or current buffer offset for
371          in-memory BFDs).  When a file is closed by the caching routines,
372          BFD retains state information on the file here.  */
373       ufile_ptr where;
374
375       /* File modified time, if mtime_set is TRUE.  */
376       long mtime;
377
378       /* A unique identifier of the BFD  */
379       unsigned int id;
380
381       /* The format which belongs to the BFD. (object, core, etc.)  */
382       ENUM_BITFIELD (bfd_format) format : 3;
383
384       /* The direction with which the BFD was opened.  */
385       ENUM_BITFIELD (bfd_direction) direction : 2;
386
387       /* Format_specific flags.  */
388       flagword flags;
389
390       /* Values that may appear in the flags field of a BFD.  These also
391          appear in the object_flags field of the bfd_target structure, where
392          they indicate the set of flags used by that backend (not all flags
393          are meaningful for all object file formats) (FIXME: at the moment,
394          the object_flags values have mostly just been copied from backend
395          to another, and are not necessarily correct).  */
396
397     #define BFD_NO_FLAGS                0x0
398
399       /* BFD contains relocation entries.  */
400     #define HAS_RELOC                   0x1
401
402       /* BFD is directly executable.  */
403     #define EXEC_P                      0x2
404
405       /* BFD has line number information (basically used for F_LNNO in a
406          COFF header).  */
407     #define HAS_LINENO                  0x4
408
409       /* BFD has debugging information.  */
410     #define HAS_DEBUG                  0x08
411
412       /* BFD has symbols.  */
413     #define HAS_SYMS                   0x10
414
415       /* BFD has local symbols (basically used for F_LSYMS in a COFF
416          header).  */
417     #define HAS_LOCALS                 0x20
418
419       /* BFD is a dynamic object.  */
420     #define DYNAMIC                    0x40
421
422       /* Text section is write protected (if D_PAGED is not set, this is
423          like an a.out NMAGIC file) (the linker sets this by default, but
424          clears it for -r or -N).  */
425     #define WP_TEXT                    0x80
426
427       /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
428          linker sets this by default, but clears it for -r or -n or -N).  */
429     #define D_PAGED                   0x100
430
431       /* BFD is relaxable (this means that bfd_relax_section may be able to
432          do something) (sometimes bfd_relax_section can do something even if
433          this is not set).  */
434     #define BFD_IS_RELAXABLE          0x200
435
436       /* This may be set before writing out a BFD to request using a
437          traditional format.  For example, this is used to request that when
438          writing out an a.out object the symbols not be hashed to eliminate
439          duplicates.  */
440     #define BFD_TRADITIONAL_FORMAT    0x400
441
442       /* This flag indicates that the BFD contents are actually cached
443          in memory.  If this is set, iostream points to a bfd_in_memory
444          struct.  */
445     #define BFD_IN_MEMORY             0x800
446
447       /* This BFD has been created by the linker and doesn't correspond
448          to any input file.  */
449     #define BFD_LINKER_CREATED       0x1000
450
451       /* This may be set before writing out a BFD to request that it
452          be written using values for UIDs, GIDs, timestamps, etc. that
453          will be consistent from run to run.  */
454     #define BFD_DETERMINISTIC_OUTPUT 0x2000
455
456       /* Compress sections in this BFD.  */
457     #define BFD_COMPRESS             0x4000
458
459       /* Decompress sections in this BFD.  */
460     #define BFD_DECOMPRESS           0x8000
461
462       /* BFD is a dummy, for plugins.  */
463     #define BFD_PLUGIN              0x10000
464
465       /* Compress sections in this BFD with SHF_COMPRESSED from gABI.  */
466     #define BFD_COMPRESS_GABI       0x20000
467
468       /* Convert ELF common symbol type to STT_COMMON or STT_OBJECT in this
469          BFD.  */
470     #define BFD_CONVERT_ELF_COMMON  0x40000
471
472       /* Use the ELF STT_COMMON type in this BFD.  */
473     #define BFD_USE_ELF_STT_COMMON  0x80000
474
475       /* Put pathnames into archives (non-POSIX).  */
476     #define BFD_ARCHIVE_FULL_PATH  0x100000
477
478       /* Flags bits to be saved in bfd_preserve_save.  */
479     #define BFD_FLAGS_SAVED \
480       (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
481        | BFD_PLUGIN | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON \
482        | BFD_USE_ELF_STT_COMMON)
483
484       /* Flags bits which are for BFD use only.  */
485     #define BFD_FLAGS_FOR_BFD_USE_MASK \
486       (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
487        | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT \
488        | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON)
489
490       /* Is the file descriptor being cached?  That is, can it be closed as
491          needed, and re-opened when accessed later?  */
492       unsigned int cacheable : 1;
493
494       /* Marks whether there was a default target specified when the
495          BFD was opened. This is used to select which matching algorithm
496          to use to choose the back end.  */
497       unsigned int target_defaulted : 1;
498
499       /* ... and here: (``once'' means at least once).  */
500       unsigned int opened_once : 1;
501
502       /* Set if we have a locally maintained mtime value, rather than
503          getting it from the file each time.  */
504       unsigned int mtime_set : 1;
505
506       /* Flag set if symbols from this BFD should not be exported.  */
507       unsigned int no_export : 1;
508
509       /* Remember when output has begun, to stop strange things
510          from happening.  */
511       unsigned int output_has_begun : 1;
512
513       /* Have archive map.  */
514       unsigned int has_armap : 1;
515
516       /* Set if this is a thin archive.  */
517       unsigned int is_thin_archive : 1;
518
519       /* Set if this archive should not cache element positions.  */
520       unsigned int no_element_cache : 1;
521
522       /* Set if only required symbols should be added in the link hash table for
523          this object.  Used by VMS linkers.  */
524       unsigned int selective_search : 1;
525
526       /* Set if this is the linker output BFD.  */
527       unsigned int is_linker_output : 1;
528
529       /* Set if this is the linker input BFD.  */
530       unsigned int is_linker_input : 1;
531
532       /* If this is an input for a compiler plug-in library.  */
533       ENUM_BITFIELD (bfd_plugin_format) plugin_format : 2;
534
535       /* Set if this is a plugin output file.  */
536       unsigned int lto_output : 1;
537
538       /* Set if this is a slim LTO object not loaded with a compiler plugin.  */
539       unsigned int lto_slim_object : 1;
540
541       /* Set to dummy BFD created when claimed by a compiler plug-in
542          library.  */
543       bfd *plugin_dummy_bfd;
544
545       /* Currently my_archive is tested before adding origin to
546          anything. I believe that this can become always an add of
547          origin, with origin set to 0 for non archive files.  */
548       ufile_ptr origin;
549
550       /* The origin in the archive of the proxy entry.  This will
551          normally be the same as origin, except for thin archives,
552          when it will contain the current offset of the proxy in the
553          thin archive rather than the offset of the bfd in its actual
554          container.  */
555       ufile_ptr proxy_origin;
556
557       /* A hash table for section names.  */
558       struct bfd_hash_table section_htab;
559
560       /* Pointer to linked list of sections.  */
561       struct bfd_section *sections;
562
563       /* The last section on the section list.  */
564       struct bfd_section *section_last;
565
566       /* The number of sections.  */
567       unsigned int section_count;
568
569       /* A field used by _bfd_generic_link_add_archive_symbols.  This will
570          be used only for archive elements.  */
571       int archive_pass;
572
573       /* Stuff only useful for object files:
574          The start address.  */
575       bfd_vma start_address;
576
577       /* Symbol table for output BFD (with symcount entries).
578          Also used by the linker to cache input BFD symbols.  */
579       struct bfd_symbol  **outsymbols;
580
581       /* Used for input and output.  */
582       unsigned int symcount;
583
584       /* Used for slurped dynamic symbol tables.  */
585       unsigned int dynsymcount;
586
587       /* Pointer to structure which contains architecture information.  */
588       const struct bfd_arch_info *arch_info;
589
590       /* Stuff only useful for archives.  */
591       void *arelt_data;
592       struct bfd *my_archive;      /* The containing archive BFD.  */
593       struct bfd *archive_next;    /* The next BFD in the archive.  */
594       struct bfd *archive_head;    /* The first BFD in the archive.  */
595       struct bfd *nested_archives; /* List of nested archive in a flattened
596                                       thin archive.  */
597
598       union {
599         /* For input BFDs, a chain of BFDs involved in a link.  */
600         struct bfd *next;
601         /* For output BFD, the linker hash table.  */
602         struct bfd_link_hash_table *hash;
603       } link;
604
605       /* Used by the back end to hold private data.  */
606       union
607         {
608           struct aout_data_struct *aout_data;
609           struct artdata *aout_ar_data;
610           struct coff_tdata *coff_obj_data;
611           struct pe_tdata *pe_obj_data;
612           struct xcoff_tdata *xcoff_obj_data;
613           struct ecoff_tdata *ecoff_obj_data;
614           struct srec_data_struct *srec_data;
615           struct verilog_data_struct *verilog_data;
616           struct ihex_data_struct *ihex_data;
617           struct tekhex_data_struct *tekhex_data;
618           struct elf_obj_tdata *elf_obj_data;
619           struct mmo_data_struct *mmo_data;
620           struct sun_core_struct *sun_core_data;
621           struct sco5_core_struct *sco5_core_data;
622           struct trad_core_struct *trad_core_data;
623           struct som_data_struct *som_data;
624           struct hpux_core_struct *hpux_core_data;
625           struct hppabsd_core_struct *hppabsd_core_data;
626           struct sgi_core_struct *sgi_core_data;
627           struct lynx_core_struct *lynx_core_data;
628           struct osf_core_struct *osf_core_data;
629           struct cisco_core_struct *cisco_core_data;
630           struct versados_data_struct *versados_data;
631           struct netbsd_core_struct *netbsd_core_data;
632           struct mach_o_data_struct *mach_o_data;
633           struct mach_o_fat_data_struct *mach_o_fat_data;
634           struct plugin_data_struct *plugin_data;
635           struct bfd_pef_data_struct *pef_data;
636           struct bfd_pef_xlib_data_struct *pef_xlib_data;
637           struct bfd_sym_data_struct *sym_data;
638           void *any;
639         }
640       tdata;
641
642       /* Used by the application to hold private data.  */
643       void *usrdata;
644
645       /* Where all the allocated stuff under this BFD goes.  This is a
646          struct objalloc *, but we use void * to avoid requiring the inclusion
647          of objalloc.h.  */
648       void *memory;
649
650       /* For input BFDs, the build ID, if the object has one. */
651       const struct bfd_build_id *build_id;
652     };
653
654     static inline const char *
655     bfd_get_filename (const bfd *abfd)
656     {
657       return abfd->filename;
658     }
659
660     static inline bfd_boolean
661     bfd_get_cacheable (const bfd *abfd)
662     {
663       return abfd->cacheable;
664     }
665
666     static inline enum bfd_format
667     bfd_get_format (const bfd *abfd)
668     {
669       return abfd->format;
670     }
671
672     static inline flagword
673     bfd_get_file_flags (const bfd *abfd)
674     {
675       return abfd->flags;
676     }
677
678     static inline bfd_vma
679     bfd_get_start_address (const bfd *abfd)
680     {
681       return abfd->start_address;
682     }
683
684     static inline unsigned int
685     bfd_get_symcount (const bfd *abfd)
686     {
687       return abfd->symcount;
688     }
689
690     static inline unsigned int
691     bfd_get_dynamic_symcount (const bfd *abfd)
692     {
693       return abfd->dynsymcount;
694     }
695
696     static inline struct bfd_symbol **
697     bfd_get_outsymbols (const bfd *abfd)
698     {
699       return abfd->outsymbols;
700     }
701
702     static inline unsigned int
703     bfd_count_sections (const bfd *abfd)
704     {
705       return abfd->section_count;
706     }
707
708     static inline bfd_boolean
709     bfd_has_map (const bfd *abfd)
710     {
711       return abfd->has_armap;
712     }
713
714     static inline bfd_boolean
715     bfd_is_thin_archive (const bfd *abfd)
716     {
717       return abfd->is_thin_archive;
718     }
719
720     static inline void *
721     bfd_usrdata (const bfd *abfd)
722     {
723       return abfd->usrdata;
724     }
725
726     /* See note beside bfd_set_section_userdata.  */
727     static inline bfd_boolean
728     bfd_set_cacheable (bfd * abfd, bfd_boolean val)
729     {
730       abfd->cacheable = val;
731       return TRUE;
732     }
733
734     static inline void
735     bfd_set_thin_archive (bfd *abfd, bfd_boolean val)
736     {
737       abfd->is_thin_archive = val;
738     }
739
740     static inline void
741     bfd_set_usrdata (bfd *abfd, void *val)
742     {
743       abfd->usrdata = val;
744     }
745
746     static inline asection *
747     bfd_asymbol_section (const asymbol *sy)
748     {
749       return sy->section;
750     }
751
752     static inline bfd_vma
753     bfd_asymbol_value (const asymbol *sy)
754     {
755       return sy->section->vma + sy->value;
756     }
757
758     static inline const char *
759     bfd_asymbol_name (const asymbol *sy)
760     {
761       return sy->name;
762     }
763
764     static inline struct bfd *
765     bfd_asymbol_bfd (const asymbol *sy)
766     {
767       return sy->the_bfd;
768     }
769
770     static inline void
771     bfd_set_asymbol_name (asymbol *sy, const char *name)
772     {
773       sy->name = name;
774     }
775
776     static inline bfd_size_type
777     bfd_get_section_limit_octets (const bfd *abfd, const asection *sec)
778     {
779       if (abfd->direction != write_direction && sec->rawsize != 0)
780         return sec->rawsize;
781       return sec->size;
782     }
783
784     /* Find the address one past the end of SEC.  */
785     static inline bfd_size_type
786     bfd_get_section_limit (const bfd *abfd, const asection *sec)
787     {
788       return (bfd_get_section_limit_octets (abfd, sec)
789               / bfd_octets_per_byte (abfd, sec));
790     }
791
792     /* Functions to handle insertion and deletion of a bfd's sections.  These
793        only handle the list pointers, ie. do not adjust section_count,
794        target_index etc.  */
795     static inline void
796     bfd_section_list_remove (bfd *abfd, asection *s)
797     {
798       asection *next = s->next;
799       asection *prev = s->prev;
800       if (prev)
801         prev->next = next;
802       else
803         abfd->sections = next;
804       if (next)
805         next->prev = prev;
806       else
807         abfd->section_last = prev;
808     }
809
810     static inline void
811     bfd_section_list_append (bfd *abfd, asection *s)
812     {
813       s->next = 0;
814       if (abfd->section_last)
815         {
816           s->prev = abfd->section_last;
817           abfd->section_last->next = s;
818         }
819       else
820         {
821           s->prev = 0;
822           abfd->sections = s;
823         }
824       abfd->section_last = s;
825     }
826
827     static inline void
828     bfd_section_list_prepend (bfd *abfd, asection *s)
829     {
830       s->prev = 0;
831       if (abfd->sections)
832         {
833           s->next = abfd->sections;
834           abfd->sections->prev = s;
835         }
836       else
837         {
838           s->next = 0;
839           abfd->section_last = s;
840         }
841       abfd->sections = s;
842     }
843
844     static inline void
845     bfd_section_list_insert_after (bfd *abfd, asection *a, asection *s)
846     {
847       asection *next = a->next;
848       s->next = next;
849       s->prev = a;
850       a->next = s;
851       if (next)
852         next->prev = s;
853       else
854         abfd->section_last = s;
855     }
856
857     static inline void
858     bfd_section_list_insert_before (bfd *abfd, asection *b, asection *s)
859     {
860       asection *prev = b->prev;
861       s->prev = prev;
862       s->next = b;
863       b->prev = s;
864       if (prev)
865         prev->next = s;
866       else
867         abfd->sections = s;
868     }
869
870     static inline bfd_boolean
871     bfd_section_removed_from_list (const bfd *abfd, const asection *s)
872     {
873       return s->next ? s->next->prev != s : abfd->section_last != s;
874     }
875
876
877
878File: bfd.info,  Node: Error reporting,  Next: Miscellaneous,  Prev: typedef bfd,  Up: BFD front end
879
8802.2 Error reporting
881===================
882
883Most BFD functions return nonzero on success (check their individual
884documentation for precise semantics).  On an error, they call
885'bfd_set_error' to set an error condition that callers can check by
886calling 'bfd_get_error'.  If that returns 'bfd_error_system_call', then
887check 'errno'.
888
889   The easiest way to report a BFD error to the user is to use
890'bfd_perror'.
891
8922.2.1 Type 'bfd_error_type'
893---------------------------
894
895The values returned by 'bfd_get_error' are defined by the enumerated
896type 'bfd_error_type'.
897
898
899     typedef enum bfd_error
900     {
901       bfd_error_no_error = 0,
902       bfd_error_system_call,
903       bfd_error_invalid_target,
904       bfd_error_wrong_format,
905       bfd_error_wrong_object_format,
906       bfd_error_invalid_operation,
907       bfd_error_no_memory,
908       bfd_error_no_symbols,
909       bfd_error_no_armap,
910       bfd_error_no_more_archived_files,
911       bfd_error_malformed_archive,
912       bfd_error_missing_dso,
913       bfd_error_file_not_recognized,
914       bfd_error_file_ambiguously_recognized,
915       bfd_error_no_contents,
916       bfd_error_nonrepresentable_section,
917       bfd_error_no_debug_section,
918       bfd_error_bad_value,
919       bfd_error_file_truncated,
920       bfd_error_file_too_big,
921       bfd_error_sorry,
922       bfd_error_on_input,
923       bfd_error_invalid_error_code
924     }
925     bfd_error_type;
926
927
9282.2.1.1 'bfd_get_error'
929.......................
930
931*Synopsis*
932     bfd_error_type bfd_get_error (void);
933   *Description*
934Return the current BFD error condition.
935
9362.2.1.2 'bfd_set_error'
937.......................
938
939*Synopsis*
940     void bfd_set_error (bfd_error_type error_tag);
941   *Description*
942Set the BFD error condition to be ERROR_TAG.
943
944   ERROR_TAG must not be bfd_error_on_input.  Use bfd_set_input_error
945for input errors instead.
946
9472.2.1.3 'bfd_set_input_error'
948.............................
949
950*Synopsis*
951     void bfd_set_input_error (bfd *input, bfd_error_type error_tag);
952   *Description*
953Set the BFD error condition to be bfd_error_on_input.  INPUT is the
954input bfd where the error occurred, and ERROR_TAG the bfd_error_type
955error.
956
9572.2.1.4 'bfd_errmsg'
958....................
959
960*Synopsis*
961     const char *bfd_errmsg (bfd_error_type error_tag);
962   *Description*
963Return a string describing the error ERROR_TAG, or the system error if
964ERROR_TAG is 'bfd_error_system_call'.
965
9662.2.1.5 'bfd_perror'
967....................
968
969*Synopsis*
970     void bfd_perror (const char *message);
971   *Description*
972Print to the standard error stream a string describing the last BFD
973error that occurred, or the last system error if the last BFD error was
974a system call failure.  If MESSAGE is non-NULL and non-empty, the error
975string printed is preceded by MESSAGE, a colon, and a space.  It is
976followed by a newline.
977
9782.2.2 BFD error handler
979-----------------------
980
981Some BFD functions want to print messages describing the problem.  They
982call a BFD error handler function.  This function may be overridden by
983the program.
984
985   The BFD error handler acts like vprintf.
986
987
988     typedef void (*bfd_error_handler_type) (const char *, va_list);
989
990
9912.2.2.1 '_bfd_error_handler'
992............................
993
994*Synopsis*
995     void _bfd_error_handler (const char *fmt, ...) ATTRIBUTE_PRINTF_1;
996   *Description*
997This is the default routine to handle BFD error messages.  Like fprintf
998(stderr, ...), but also handles some extra format specifiers.
999
1000   %pA section name from section.  For group components, prints group
1001name too.  %pB file name from bfd.  For archive components, prints
1002archive too.
1003
1004   Beware: Only supports a maximum of 9 format arguments.
1005
10062.2.2.2 'bfd_set_error_handler'
1007...............................
1008
1009*Synopsis*
1010     bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
1011   *Description*
1012Set the BFD error handler function.  Returns the previous function.
1013
10142.2.2.3 'bfd_set_error_program_name'
1015....................................
1016
1017*Synopsis*
1018     void bfd_set_error_program_name (const char *);
1019   *Description*
1020Set the program name to use when printing a BFD error.  This is printed
1021before the error message followed by a colon and space.  The string must
1022not be changed after it is passed to this function.
1023
10242.2.3 BFD assert handler
1025------------------------
1026
1027If BFD finds an internal inconsistency, the bfd assert handler is called
1028with information on the BFD version, BFD source file and line.  If this
1029happens, most programs linked against BFD are expected to want to exit
1030with an error, or mark the current BFD operation as failed, so it is
1031recommended to override the default handler, which just calls
1032_bfd_error_handler and continues.
1033
1034
1035     typedef void (*bfd_assert_handler_type) (const char *bfd_formatmsg,
1036                                              const char *bfd_version,
1037                                              const char *bfd_file,
1038                                              int bfd_line);
1039
1040
10412.2.3.1 'bfd_set_assert_handler'
1042................................
1043
1044*Synopsis*
1045     bfd_assert_handler_type bfd_set_assert_handler (bfd_assert_handler_type);
1046   *Description*
1047Set the BFD assert handler function.  Returns the previous function.
1048
1049
1050File: bfd.info,  Node: Miscellaneous,  Next: Memory Usage,  Prev: Error reporting,  Up: BFD front end
1051
10522.3 Miscellaneous
1053=================
1054
10552.3.1 Miscellaneous functions
1056-----------------------------
1057
10582.3.1.1 'bfd_get_reloc_upper_bound'
1059...................................
1060
1061*Synopsis*
1062     long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
1063   *Description*
1064Return the number of bytes required to store the relocation information
1065associated with section SECT attached to bfd ABFD.  If an error occurs,
1066return -1.
1067
10682.3.1.2 'bfd_canonicalize_reloc'
1069................................
1070
1071*Synopsis*
1072     long bfd_canonicalize_reloc
1073        (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
1074   *Description*
1075Call the back end associated with the open BFD ABFD and translate the
1076external form of the relocation information attached to SEC into the
1077internal canonical form.  Place the table into memory at LOC, which has
1078been preallocated, usually by a call to 'bfd_get_reloc_upper_bound'.
1079Returns the number of relocs, or -1 on error.
1080
1081   The SYMS table is also needed for horrible internal magic reasons.
1082
10832.3.1.3 'bfd_set_reloc'
1084.......................
1085
1086*Synopsis*
1087     void bfd_set_reloc
1088        (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
1089   *Description*
1090Set the relocation pointer and count within section SEC to the values
1091REL and COUNT.  The argument ABFD is ignored.
1092     #define bfd_set_reloc(abfd, asect, location, count) \
1093            BFD_SEND (abfd, _bfd_set_reloc, (abfd, asect, location, count))
1094
10952.3.1.4 'bfd_set_file_flags'
1096............................
1097
1098*Synopsis*
1099     bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
1100   *Description*
1101Set the flag word in the BFD ABFD to the value FLAGS.
1102
1103   Possible errors are:
1104
1105   * 'bfd_error_wrong_format' - The target bfd was not of object format.
1106   * 'bfd_error_invalid_operation' - The target bfd was open for
1107     reading.
1108   * 'bfd_error_invalid_operation' - The flag word contained a bit which
1109     was not applicable to the type of file.  E.g., an attempt was made
1110     to set the 'D_PAGED' bit on a BFD format which does not support
1111     demand paging.
1112
11132.3.1.5 'bfd_get_arch_size'
1114...........................
1115
1116*Synopsis*
1117     int bfd_get_arch_size (bfd *abfd);
1118   *Description*
1119Returns the normalized architecture address size, in bits, as determined
1120by the object file's format.  By normalized, we mean either 32 or 64.
1121For ELF, this information is included in the header.  Use
1122bfd_arch_bits_per_address for number of bits in the architecture
1123address.
1124
1125   *Returns*
1126Returns the arch size in bits if known, '-1' otherwise.
1127
11282.3.1.6 'bfd_get_sign_extend_vma'
1129.................................
1130
1131*Synopsis*
1132     int bfd_get_sign_extend_vma (bfd *abfd);
1133   *Description*
1134Indicates if the target architecture "naturally" sign extends an
1135address.  Some architectures implicitly sign extend address values when
1136they are converted to types larger than the size of an address.  For
1137instance, bfd_get_start_address() will return an address sign extended
1138to fill a bfd_vma when this is the case.
1139
1140   *Returns*
1141Returns '1' if the target architecture is known to sign extend
1142addresses, '0' if the target architecture is known to not sign extend
1143addresses, and '-1' otherwise.
1144
11452.3.1.7 'bfd_set_start_address'
1146...............................
1147
1148*Synopsis*
1149     bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
1150   *Description*
1151Make VMA the entry point of output BFD ABFD.
1152
1153   *Returns*
1154Returns 'TRUE' on success, 'FALSE' otherwise.
1155
11562.3.1.8 'bfd_get_gp_size'
1157.........................
1158
1159*Synopsis*
1160     unsigned int bfd_get_gp_size (bfd *abfd);
1161   *Description*
1162Return the maximum size of objects to be optimized using the GP register
1163under MIPS ECOFF. This is typically set by the '-G' argument to the
1164compiler, assembler or linker.
1165
11662.3.1.9 'bfd_set_gp_size'
1167.........................
1168
1169*Synopsis*
1170     void bfd_set_gp_size (bfd *abfd, unsigned int i);
1171   *Description*
1172Set the maximum size of objects to be optimized using the GP register
1173under ECOFF or MIPS ELF. This is typically set by the '-G' argument to
1174the compiler, assembler or linker.
1175
11762.3.1.10 'bfd_scan_vma'
1177.......................
1178
1179*Synopsis*
1180     bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
1181   *Description*
1182Convert, like 'strtoul', a numerical expression STRING into a 'bfd_vma'
1183integer, and return that integer.  (Though without as many bells and
1184whistles as 'strtoul'.)  The expression is assumed to be unsigned (i.e.,
1185positive).  If given a BASE, it is used as the base for conversion.  A
1186base of 0 causes the function to interpret the string in hex if a
1187leading "0x" or "0X" is found, otherwise in octal if a leading zero is
1188found, otherwise in decimal.
1189
1190   If the value would overflow, the maximum 'bfd_vma' value is returned.
1191
11922.3.1.11 'bfd_copy_private_header_data'
1193.......................................
1194
1195*Synopsis*
1196     bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
1197   *Description*
1198Copy private BFD header information from the BFD IBFD to the the BFD
1199OBFD.  This copies information that may require sections to exist, but
1200does not require symbol tables.  Return 'true' on success, 'false' on
1201error.  Possible error returns are:
1202
1203   * 'bfd_error_no_memory' - Not enough memory exists to create private
1204     data for OBFD.
1205     #define bfd_copy_private_header_data(ibfd, obfd) \
1206            BFD_SEND (obfd, _bfd_copy_private_header_data, \
1207                      (ibfd, obfd))
1208
12092.3.1.12 'bfd_copy_private_bfd_data'
1210....................................
1211
1212*Synopsis*
1213     bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
1214   *Description*
1215Copy private BFD information from the BFD IBFD to the the BFD OBFD.
1216Return 'TRUE' on success, 'FALSE' on error.  Possible error returns are:
1217
1218   * 'bfd_error_no_memory' - Not enough memory exists to create private
1219     data for OBFD.
1220     #define bfd_copy_private_bfd_data(ibfd, obfd) \
1221            BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
1222                      (ibfd, obfd))
1223
12242.3.1.13 'bfd_set_private_flags'
1225................................
1226
1227*Synopsis*
1228     bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
1229   *Description*
1230Set private BFD flag information in the BFD ABFD.  Return 'TRUE' on
1231success, 'FALSE' on error.  Possible error returns are:
1232
1233   * 'bfd_error_no_memory' - Not enough memory exists to create private
1234     data for OBFD.
1235     #define bfd_set_private_flags(abfd, flags) \
1236            BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
1237
12382.3.1.14 'Other functions'
1239..........................
1240
1241*Description*
1242The following functions exist but have not yet been documented.
1243     #define bfd_sizeof_headers(abfd, info) \
1244            BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
1245
1246     #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
1247            BFD_SEND (abfd, _bfd_find_nearest_line, \
1248                      (abfd, syms, sec, off, file, func, line, NULL))
1249
1250     #define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
1251                                                line, disc) \
1252            BFD_SEND (abfd, _bfd_find_nearest_line, \
1253                      (abfd, syms, sec, off, file, func, line, disc))
1254
1255     #define bfd_find_line(abfd, syms, sym, file, line) \
1256            BFD_SEND (abfd, _bfd_find_line, \
1257                      (abfd, syms, sym, file, line))
1258
1259     #define bfd_find_inliner_info(abfd, file, func, line) \
1260            BFD_SEND (abfd, _bfd_find_inliner_info, \
1261                      (abfd, file, func, line))
1262
1263     #define bfd_debug_info_start(abfd) \
1264            BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
1265
1266     #define bfd_debug_info_end(abfd) \
1267            BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
1268
1269     #define bfd_debug_info_accumulate(abfd, section) \
1270            BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
1271
1272     #define bfd_stat_arch_elt(abfd, stat) \
1273            BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
1274
1275     #define bfd_update_armap_timestamp(abfd) \
1276            BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
1277
1278     #define bfd_set_arch_mach(abfd, arch, mach)\
1279            BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
1280
1281     #define bfd_relax_section(abfd, section, link_info, again) \
1282            BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
1283
1284     #define bfd_gc_sections(abfd, link_info) \
1285            BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
1286
1287     #define bfd_lookup_section_flags(link_info, flag_info, section) \
1288            BFD_SEND (abfd, _bfd_lookup_section_flags, (link_info, flag_info, section))
1289
1290     #define bfd_merge_sections(abfd, link_info) \
1291            BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
1292
1293     #define bfd_is_group_section(abfd, sec) \
1294            BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
1295
1296     #define bfd_group_name(abfd, sec) \
1297            BFD_SEND (abfd, _bfd_group_name, (abfd, sec))
1298
1299     #define bfd_discard_group(abfd, sec) \
1300            BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
1301
1302     #define bfd_link_hash_table_create(abfd) \
1303            BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
1304
1305     #define bfd_link_add_symbols(abfd, info) \
1306            BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
1307
1308     #define bfd_link_just_syms(abfd, sec, info) \
1309            BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
1310
1311     #define bfd_final_link(abfd, info) \
1312            BFD_SEND (abfd, _bfd_final_link, (abfd, info))
1313
1314     #define bfd_free_cached_info(abfd) \
1315            BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
1316
1317     #define bfd_get_dynamic_symtab_upper_bound(abfd) \
1318            BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
1319
1320     #define bfd_print_private_bfd_data(abfd, file)\
1321            BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
1322
1323     #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
1324            BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
1325
1326     #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
1327            BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
1328                                                        dyncount, dynsyms, ret))
1329
1330     #define bfd_get_dynamic_reloc_upper_bound(abfd) \
1331            BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
1332
1333     #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
1334            BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
1335
1336     extern bfd_byte *bfd_get_relocated_section_contents
1337       (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
1338        bfd_boolean, asymbol **);
1339
1340
13412.3.1.15 'bfd_alt_mach_code'
1342............................
1343
1344*Synopsis*
1345     bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
1346   *Description*
1347When more than one machine code number is available for the same machine
1348type, this function can be used to switch between the preferred one
1349(alternative == 0) and any others.  Currently, only ELF supports this
1350feature, with up to two alternate machine codes.
1351
13522.3.1.16 'bfd_emul_get_maxpagesize'
1353...................................
1354
1355*Synopsis*
1356     bfd_vma bfd_emul_get_maxpagesize (const char *);
1357   *Description*
1358Returns the maximum page size, in bytes, as determined by emulation.
1359
1360   *Returns*
1361Returns the maximum page size in bytes for ELF, 0 otherwise.
1362
13632.3.1.17 'bfd_emul_set_maxpagesize'
1364...................................
1365
1366*Synopsis*
1367     void bfd_emul_set_maxpagesize (const char *, bfd_vma);
1368   *Description*
1369For ELF, set the maximum page size for the emulation.  It is a no-op for
1370other formats.
1371
13722.3.1.18 'bfd_emul_get_commonpagesize'
1373......................................
1374
1375*Synopsis*
1376     bfd_vma bfd_emul_get_commonpagesize (const char *, bfd_boolean);
1377   *Description*
1378Returns the common page size, in bytes, as determined by emulation.
1379
1380   *Returns*
1381Returns the common page size in bytes for ELF, 0 otherwise.
1382
13832.3.1.19 'bfd_emul_set_commonpagesize'
1384......................................
1385
1386*Synopsis*
1387     void bfd_emul_set_commonpagesize (const char *, bfd_vma);
1388   *Description*
1389For ELF, set the common page size for the emulation.  It is a no-op for
1390other formats.
1391
13922.3.1.20 'bfd_demangle'
1393.......................
1394
1395*Synopsis*
1396     char *bfd_demangle (bfd *, const char *, int);
1397   *Description*
1398Wrapper around cplus_demangle.  Strips leading underscores and other
1399such chars that would otherwise confuse the demangler.  If passed a g++
1400v3 ABI mangled name, returns a buffer allocated with malloc holding the
1401demangled name.  Returns NULL otherwise and on memory alloc failure.
1402
14032.3.1.21 'bfd_update_compression_header'
1404........................................
1405
1406*Synopsis*
1407     void bfd_update_compression_header
1408        (bfd *abfd, bfd_byte *contents, asection *sec);
1409   *Description*
1410Set the compression header at CONTENTS of SEC in ABFD and update
1411elf_section_flags for compression.
1412
14132.3.1.22 'bfd_check_compression_header'
1414.......................................
1415
1416*Synopsis*
1417     bfd_boolean bfd_check_compression_header
1418        (bfd *abfd, bfd_byte *contents, asection *sec,
1419         bfd_size_type *uncompressed_size,
1420         unsigned int *uncompressed_alignment_power);
1421   *Description*
1422Check the compression header at CONTENTS of SEC in ABFD and store the
1423uncompressed size in UNCOMPRESSED_SIZE and the uncompressed data
1424alignment in UNCOMPRESSED_ALIGNMENT_POWER if the compression header is
1425valid.
1426
1427   *Returns*
1428Return TRUE if the compression header is valid.
1429
14302.3.1.23 'bfd_get_compression_header_size'
1431..........................................
1432
1433*Synopsis*
1434     int bfd_get_compression_header_size (bfd *abfd, asection *sec);
1435   *Description*
1436Return the size of the compression header of SEC in ABFD.
1437
1438   *Returns*
1439Return the size of the compression header in bytes.
1440
14412.3.1.24 'bfd_convert_section_size'
1442...................................
1443
1444*Synopsis*
1445     bfd_size_type bfd_convert_section_size
1446        (bfd *ibfd, asection *isec, bfd *obfd, bfd_size_type size);
1447   *Description*
1448Convert the size SIZE of the section ISEC in input BFD IBFD to the
1449section size in output BFD OBFD.
1450
14512.3.1.25 'bfd_convert_section_contents'
1452.......................................
1453
1454*Synopsis*
1455     bfd_boolean bfd_convert_section_contents
1456        (bfd *ibfd, asection *isec, bfd *obfd,
1457         bfd_byte **ptr, bfd_size_type *ptr_size);
1458   *Description*
1459Convert the contents, stored in *PTR, of the section ISEC in input BFD
1460IBFD to output BFD OBFD if needed.  The original buffer pointed to by
1461*PTR may be freed and *PTR is returned with memory malloc'd by this
1462function, and the new size written to PTR_SIZE.
1463
14642.3.1.26 'struct bfd_iovec'
1465...........................
1466
1467*Description*
1468The 'struct bfd_iovec' contains the internal file I/O class.  Each 'BFD'
1469has an instance of this class and all file I/O is routed through it (it
1470is assumed that the instance implements all methods listed below).
1471     struct bfd_iovec
1472     {
1473       /* To avoid problems with macros, a "b" rather than "f"
1474          prefix is prepended to each method name.  */
1475       /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching
1476          bytes starting at PTR.  Return the number of bytes actually
1477          transfered (a read past end-of-file returns less than NBYTES),
1478          or -1 (setting bfd_error) if an error occurs.  */
1479       file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
1480       file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
1481                           file_ptr nbytes);
1482       /* Return the current IOSTREAM file offset, or -1 (setting bfd_error
1483          if an error occurs.  */
1484       file_ptr (*btell) (struct bfd *abfd);
1485       /* For the following, on successful completion a value of 0 is returned.
1486          Otherwise, a value of -1 is returned (and bfd_error is set).  */
1487       int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
1488       int (*bclose) (struct bfd *abfd);
1489       int (*bflush) (struct bfd *abfd);
1490       int (*bstat) (struct bfd *abfd, struct stat *sb);
1491       /* Mmap a part of the files. ADDR, LEN, PROT, FLAGS and OFFSET are the usual
1492          mmap parameter, except that LEN and OFFSET do not need to be page
1493          aligned.  Returns (void *)-1 on failure, mmapped address on success.
1494          Also write in MAP_ADDR the address of the page aligned buffer and in
1495          MAP_LEN the size mapped (a page multiple).  Use unmap with MAP_ADDR and
1496          MAP_LEN to unmap.  */
1497       void *(*bmmap) (struct bfd *abfd, void *addr, bfd_size_type len,
1498                       int prot, int flags, file_ptr offset,
1499                       void **map_addr, bfd_size_type *map_len);
1500     };
1501     extern const struct bfd_iovec _bfd_memory_iovec;
1502
15032.3.1.27 'bfd_get_mtime'
1504........................
1505
1506*Synopsis*
1507     long bfd_get_mtime (bfd *abfd);
1508   *Description*
1509Return the file modification time (as read from the file system, or from
1510the archive header for archive members).
1511
15122.3.1.28 'bfd_get_size'
1513.......................
1514
1515*Synopsis*
1516     ufile_ptr bfd_get_size (bfd *abfd);
1517   *Description*
1518Return the file size (as read from file system) for the file associated
1519with BFD ABFD.
1520
1521   The initial motivation for, and use of, this routine is not so we can
1522get the exact size of the object the BFD applies to, since that might
1523not be generally possible (archive members for example).  It would be
1524ideal if someone could eventually modify it so that such results were
1525guaranteed.
1526
1527   Instead, we want to ask questions like "is this NNN byte sized object
1528I'm about to try read from file offset YYY reasonable?"  As as example
1529of where we might do this, some object formats use string tables for
1530which the first 'sizeof (long)' bytes of the table contain the size of
1531the table itself, including the size bytes.  If an application tries to
1532read what it thinks is one of these string tables, without some way to
1533validate the size, and for some reason the size is wrong (byte swapping
1534error, wrong location for the string table, etc.), the only clue is
1535likely to be a read error when it tries to read the table, or a "virtual
1536memory exhausted" error when it tries to allocate 15 bazillon bytes of
1537space for the 15 bazillon byte table it is about to read.  This function
1538at least allows us to answer the question, "is the size reasonable?".
1539
15402.3.1.29 'bfd_get_file_size'
1541............................
1542
1543*Synopsis*
1544     ufile_ptr bfd_get_file_size (bfd *abfd);
1545   *Description*
1546Return the file size (as read from file system) for the file associated
1547with BFD ABFD.  It supports both normal files and archive elements.
1548
15492.3.1.30 'bfd_mmap'
1550...................
1551
1552*Synopsis*
1553     void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len,
1554         int prot, int flags, file_ptr offset,
1555         void **map_addr, bfd_size_type *map_len);
1556   *Description*
1557Return mmap()ed region of the file, if possible and implemented.  LEN
1558and OFFSET do not need to be page aligned.  The page aligned address and
1559length are written to MAP_ADDR and MAP_LEN.
1560
1561
1562File: bfd.info,  Node: Memory Usage,  Next: Initialization,  Prev: Miscellaneous,  Up: BFD front end
1563
15642.4 Memory Usage
1565================
1566
1567BFD keeps all of its internal structures in obstacks.  There is one
1568obstack per open BFD file, into which the current state is stored.  When
1569a BFD is closed, the obstack is deleted, and so everything which has
1570been allocated by BFD for the closing file is thrown away.
1571
1572   BFD does not free anything created by an application, but pointers
1573into 'bfd' structures become invalid on a 'bfd_close'; for example,
1574after a 'bfd_close' the vector passed to 'bfd_canonicalize_symtab' is
1575still around, since it has been allocated by the application, but the
1576data that it pointed to are lost.
1577
1578   The general rule is to not close a BFD until all operations dependent
1579upon data from the BFD have been completed, or all the data from within
1580the file has been copied.  To help with the management of memory, there
1581is a function ('bfd_alloc_size') which returns the number of bytes in
1582obstacks associated with the supplied BFD. This could be used to select
1583the greediest open BFD, close it to reclaim the memory, perform some
1584operation and reopen the BFD again, to get a fresh copy of the data
1585structures.
1586
1587
1588File: bfd.info,  Node: Initialization,  Next: Sections,  Prev: Memory Usage,  Up: BFD front end
1589
15902.5 Initialization
1591==================
1592
15932.5.1 Initialization functions
1594------------------------------
1595
1596These are the functions that handle initializing a BFD.
1597
15982.5.1.1 'bfd_init'
1599..................
1600
1601*Synopsis*
1602     unsigned int bfd_init (void);
1603   *Description*
1604This routine must be called before any other BFD function to initialize
1605magical internal data structures.  Returns a magic number, which may be
1606used to check that the bfd library is configured as expected by users.
1607
1608     /* Value returned by bfd_init.  */
1609
1610     #define BFD_INIT_MAGIC (sizeof (struct bfd_section))
1611
1612
1613File: bfd.info,  Node: Sections,  Next: Symbols,  Prev: Initialization,  Up: BFD front end
1614
16152.6 Sections
1616============
1617
1618The raw data contained within a BFD is maintained through the section
1619abstraction.  A single BFD may have any number of sections.  It keeps
1620hold of them by pointing to the first; each one points to the next in
1621the list.
1622
1623   Sections are supported in BFD in 'section.c'.
1624
1625* Menu:
1626
1627* Section Input::
1628* Section Output::
1629* typedef asection::
1630* section prototypes::
1631
1632
1633File: bfd.info,  Node: Section Input,  Next: Section Output,  Prev: Sections,  Up: Sections
1634
16352.6.1 Section input
1636-------------------
1637
1638When a BFD is opened for reading, the section structures are created and
1639attached to the BFD.
1640
1641   Each section has a name which describes the section in the outside
1642world--for example, 'a.out' would contain at least three sections,
1643called '.text', '.data' and '.bss'.
1644
1645   Names need not be unique; for example a COFF file may have several
1646sections named '.data'.
1647
1648   Sometimes a BFD will contain more than the "natural" number of
1649sections.  A back end may attach other sections containing constructor
1650data, or an application may add a section (using 'bfd_make_section') to
1651the sections attached to an already open BFD. For example, the linker
1652creates an extra section 'COMMON' for each input file's BFD to hold
1653information about common storage.
1654
1655   The raw data is not necessarily read in when the section descriptor
1656is created.  Some targets may leave the data in place until a
1657'bfd_get_section_contents' call is made.  Other back ends may read in
1658all the data at once.  For example, an S-record file has to be read once
1659to determine the size of the data.
1660
1661
1662File: bfd.info,  Node: Section Output,  Next: typedef asection,  Prev: Section Input,  Up: Sections
1663
16642.6.2 Section output
1665--------------------
1666
1667To write a new object style BFD, the various sections to be written have
1668to be created.  They are attached to the BFD in the same way as input
1669sections; data is written to the sections using
1670'bfd_set_section_contents'.
1671
1672   Any program that creates or combines sections (e.g., the assembler
1673and linker) must use the 'asection' fields 'output_section' and
1674'output_offset' to indicate the file sections to which each section must
1675be written.  (If the section is being created from scratch,
1676'output_section' should probably point to the section itself and
1677'output_offset' should probably be zero.)
1678
1679   The data to be written comes from input sections attached (via
1680'output_section' pointers) to the output sections.  The output section
1681structure can be considered a filter for the input section: the output
1682section determines the vma of the output data and the name, but the
1683input section determines the offset into the output section of the data
1684to be written.
1685
1686   E.g., to create a section "O", starting at 0x100, 0x123 long,
1687containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and
1688"B" at offset 0x20 (i.e., at vma 0x120) the 'asection' structures would
1689look like:
1690
1691        section name          "A"
1692          output_offset   0x00
1693          size            0x20
1694          output_section ----------->  section name    "O"
1695                                  |    vma             0x100
1696        section name          "B" |    size            0x123
1697          output_offset   0x20    |
1698          size            0x103   |
1699          output_section  --------|
1700
17012.6.3 Link orders
1702-----------------
1703
1704The data within a section is stored in a "link_order".  These are much
1705like the fixups in 'gas'.  The link_order abstraction allows a section
1706to grow and shrink within itself.
1707
1708   A link_order knows how big it is, and which is the next link_order
1709and where the raw data for it is; it also points to a list of
1710relocations which apply to it.
1711
1712   The link_order is used by the linker to perform relaxing on final
1713code.  The compiler creates code which is as big as necessary to make it
1714work without relaxing, and the user can select whether to relax.
1715Sometimes relaxing takes a lot of time.  The linker runs around the
1716relocations to see if any are attached to data which can be shrunk, if
1717so it does it on a link_order by link_order basis.
1718
1719
1720File: bfd.info,  Node: typedef asection,  Next: section prototypes,  Prev: Section Output,  Up: Sections
1721
17222.6.4 typedef asection
1723----------------------
1724
1725Here is the section structure:
1726
1727
1728     typedef struct bfd_section
1729     {
1730       /* The name of the section; the name isn't a copy, the pointer is
1731          the same as that passed to bfd_make_section.  */
1732       const char *name;
1733
1734       /* A unique sequence number.  */
1735       unsigned int id;
1736
1737       /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
1738       unsigned int index;
1739
1740       /* The next section in the list belonging to the BFD, or NULL.  */
1741       struct bfd_section *next;
1742
1743       /* The previous section in the list belonging to the BFD, or NULL.  */
1744       struct bfd_section *prev;
1745
1746       /* The field flags contains attributes of the section. Some
1747          flags are read in from the object file, and some are
1748          synthesized from other information.  */
1749       flagword flags;
1750
1751     #define SEC_NO_FLAGS                      0x0
1752
1753       /* Tells the OS to allocate space for this section when loading.
1754          This is clear for a section containing debug information only.  */
1755     #define SEC_ALLOC                         0x1
1756
1757       /* Tells the OS to load the section from the file when loading.
1758          This is clear for a .bss section.  */
1759     #define SEC_LOAD                          0x2
1760
1761       /* The section contains data still to be relocated, so there is
1762          some relocation information too.  */
1763     #define SEC_RELOC                         0x4
1764
1765       /* A signal to the OS that the section contains read only data.  */
1766     #define SEC_READONLY                      0x8
1767
1768       /* The section contains code only.  */
1769     #define SEC_CODE                         0x10
1770
1771       /* The section contains data only.  */
1772     #define SEC_DATA                         0x20
1773
1774       /* The section will reside in ROM.  */
1775     #define SEC_ROM                          0x40
1776
1777       /* The section contains constructor information. This section
1778          type is used by the linker to create lists of constructors and
1779          destructors used by g++. When a back end sees a symbol
1780          which should be used in a constructor list, it creates a new
1781          section for the type of name (e.g., __CTOR_LIST__), attaches
1782          the symbol to it, and builds a relocation. To build the lists
1783          of constructors, all the linker has to do is catenate all the
1784          sections called __CTOR_LIST__ and relocate the data
1785          contained within - exactly the operations it would peform on
1786          standard data.  */
1787     #define SEC_CONSTRUCTOR                  0x80
1788
1789       /* The section has contents - a data section could be
1790          SEC_ALLOC | SEC_HAS_CONTENTS; a debug section could be
1791          SEC_HAS_CONTENTS  */
1792     #define SEC_HAS_CONTENTS                0x100
1793
1794       /* An instruction to the linker to not output the section
1795          even if it has information which would normally be written.  */
1796     #define SEC_NEVER_LOAD                  0x200
1797
1798       /* The section contains thread local data.  */
1799     #define SEC_THREAD_LOCAL                0x400
1800
1801       /* The section's size is fixed.  Generic linker code will not
1802          recalculate it and it is up to whoever has set this flag to
1803          get the size right.  */
1804     #define SEC_FIXED_SIZE                  0x800
1805
1806       /* The section contains common symbols (symbols may be defined
1807          multiple times, the value of a symbol is the amount of
1808          space it requires, and the largest symbol value is the one
1809          used).  Most targets have exactly one of these (which we
1810          translate to bfd_com_section_ptr), but ECOFF has two.  */
1811     #define SEC_IS_COMMON                  0x1000
1812
1813       /* The section contains only debugging information.  For
1814          example, this is set for ELF .debug and .stab sections.
1815          strip tests this flag to see if a section can be
1816          discarded.  */
1817     #define SEC_DEBUGGING                  0x2000
1818
1819       /* The contents of this section are held in memory pointed to
1820          by the contents field.  This is checked by bfd_get_section_contents,
1821          and the data is retrieved from memory if appropriate.  */
1822     #define SEC_IN_MEMORY                  0x4000
1823
1824       /* The contents of this section are to be excluded by the
1825          linker for executable and shared objects unless those
1826          objects are to be further relocated.  */
1827     #define SEC_EXCLUDE                    0x8000
1828
1829       /* The contents of this section are to be sorted based on the sum of
1830          the symbol and addend values specified by the associated relocation
1831          entries.  Entries without associated relocation entries will be
1832          appended to the end of the section in an unspecified order.  */
1833     #define SEC_SORT_ENTRIES              0x10000
1834
1835       /* When linking, duplicate sections of the same name should be
1836          discarded, rather than being combined into a single section as
1837          is usually done.  This is similar to how common symbols are
1838          handled.  See SEC_LINK_DUPLICATES below.  */
1839     #define SEC_LINK_ONCE                 0x20000
1840
1841       /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
1842          should handle duplicate sections.  */
1843     #define SEC_LINK_DUPLICATES           0xc0000
1844
1845       /* This value for SEC_LINK_DUPLICATES means that duplicate
1846          sections with the same name should simply be discarded.  */
1847     #define SEC_LINK_DUPLICATES_DISCARD       0x0
1848
1849       /* This value for SEC_LINK_DUPLICATES means that the linker
1850          should warn if there are any duplicate sections, although
1851          it should still only link one copy.  */
1852     #define SEC_LINK_DUPLICATES_ONE_ONLY  0x40000
1853
1854       /* This value for SEC_LINK_DUPLICATES means that the linker
1855          should warn if any duplicate sections are a different size.  */
1856     #define SEC_LINK_DUPLICATES_SAME_SIZE 0x80000
1857
1858       /* This value for SEC_LINK_DUPLICATES means that the linker
1859          should warn if any duplicate sections contain different
1860          contents.  */
1861     #define SEC_LINK_DUPLICATES_SAME_CONTENTS \
1862       (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
1863
1864       /* This section was created by the linker as part of dynamic
1865          relocation or other arcane processing.  It is skipped when
1866          going through the first-pass output, trusting that someone
1867          else up the line will take care of it later.  */
1868     #define SEC_LINKER_CREATED           0x100000
1869
1870       /* This section should not be subject to garbage collection.
1871          Also set to inform the linker that this section should not be
1872          listed in the link map as discarded.  */
1873     #define SEC_KEEP                     0x200000
1874
1875       /* This section contains "short" data, and should be placed
1876          "near" the GP.  */
1877     #define SEC_SMALL_DATA               0x400000
1878
1879       /* Attempt to merge identical entities in the section.
1880          Entity size is given in the entsize field.  */
1881     #define SEC_MERGE                    0x800000
1882
1883       /* If given with SEC_MERGE, entities to merge are zero terminated
1884          strings where entsize specifies character size instead of fixed
1885          size entries.  */
1886     #define SEC_STRINGS                 0x1000000
1887
1888       /* This section contains data about section groups.  */
1889     #define SEC_GROUP                   0x2000000
1890
1891       /* The section is a COFF shared library section.  This flag is
1892          only for the linker.  If this type of section appears in
1893          the input file, the linker must copy it to the output file
1894          without changing the vma or size.  FIXME: Although this
1895          was originally intended to be general, it really is COFF
1896          specific (and the flag was renamed to indicate this).  It
1897          might be cleaner to have some more general mechanism to
1898          allow the back end to control what the linker does with
1899          sections.  */
1900     #define SEC_COFF_SHARED_LIBRARY     0x4000000
1901
1902       /* This input section should be copied to output in reverse order
1903          as an array of pointers.  This is for ELF linker internal use
1904          only.  */
1905     #define SEC_ELF_REVERSE_COPY        0x4000000
1906
1907       /* This section contains data which may be shared with other
1908          executables or shared objects. This is for COFF only.  */
1909     #define SEC_COFF_SHARED             0x8000000
1910
1911       /* This section should be compressed.  This is for ELF linker
1912          internal use only.  */
1913     #define SEC_ELF_COMPRESS            0x8000000
1914
1915       /* When a section with this flag is being linked, then if the size of
1916          the input section is less than a page, it should not cross a page
1917          boundary.  If the size of the input section is one page or more,
1918          it should be aligned on a page boundary.  This is for TI
1919          TMS320C54X only.  */
1920     #define SEC_TIC54X_BLOCK           0x10000000
1921
1922       /* This section should be renamed.  This is for ELF linker
1923          internal use only.  */
1924     #define SEC_ELF_RENAME             0x10000000
1925
1926       /* Conditionally link this section; do not link if there are no
1927          references found to any symbol in the section.  This is for TI
1928          TMS320C54X only.  */
1929     #define SEC_TIC54X_CLINK           0x20000000
1930
1931       /* This section contains vliw code.  This is for Toshiba MeP only.  */
1932     #define SEC_MEP_VLIW               0x20000000
1933
1934       /* All symbols, sizes and relocations in this section are octets
1935          instead of bytes.  Required for DWARF debug sections as DWARF
1936          information is organized in octets, not bytes.  */
1937     #define SEC_ELF_OCTETS             0x40000000
1938
1939       /* Indicate that section has the no read flag set. This happens
1940          when memory read flag isn't set. */
1941     #define SEC_COFF_NOREAD            0x40000000
1942
1943       /* Indicate that section has the purecode flag set.  */
1944     #define SEC_ELF_PURECODE           0x80000000
1945
1946       /*  End of section flags.  */
1947
1948       /* Some internal packed boolean fields.  */
1949
1950       /* See the vma field.  */
1951       unsigned int user_set_vma : 1;
1952
1953       /* A mark flag used by some of the linker backends.  */
1954       unsigned int linker_mark : 1;
1955
1956       /* Another mark flag used by some of the linker backends.  Set for
1957          output sections that have an input section.  */
1958       unsigned int linker_has_input : 1;
1959
1960       /* Mark flag used by some linker backends for garbage collection.  */
1961       unsigned int gc_mark : 1;
1962
1963       /* Section compression status.  */
1964       unsigned int compress_status : 2;
1965     #define COMPRESS_SECTION_NONE    0
1966     #define COMPRESS_SECTION_DONE    1
1967     #define DECOMPRESS_SECTION_SIZED 2
1968
1969       /* The following flags are used by the ELF linker. */
1970
1971       /* Mark sections which have been allocated to segments.  */
1972       unsigned int segment_mark : 1;
1973
1974       /* Type of sec_info information.  */
1975       unsigned int sec_info_type:3;
1976     #define SEC_INFO_TYPE_NONE      0
1977     #define SEC_INFO_TYPE_STABS     1
1978     #define SEC_INFO_TYPE_MERGE     2
1979     #define SEC_INFO_TYPE_EH_FRAME  3
1980     #define SEC_INFO_TYPE_JUST_SYMS 4
1981     #define SEC_INFO_TYPE_TARGET    5
1982     #define SEC_INFO_TYPE_EH_FRAME_ENTRY 6
1983
1984       /* Nonzero if this section uses RELA relocations, rather than REL.  */
1985       unsigned int use_rela_p:1;
1986
1987       /* Bits used by various backends.  The generic code doesn't touch
1988          these fields.  */
1989
1990       unsigned int sec_flg0:1;
1991       unsigned int sec_flg1:1;
1992       unsigned int sec_flg2:1;
1993       unsigned int sec_flg3:1;
1994       unsigned int sec_flg4:1;
1995       unsigned int sec_flg5:1;
1996
1997       /* End of internal packed boolean fields.  */
1998
1999       /*  The virtual memory address of the section - where it will be
2000           at run time.  The symbols are relocated against this.  The
2001           user_set_vma flag is maintained by bfd; if it's not set, the
2002           backend can assign addresses (for example, in a.out, where
2003           the default address for .data is dependent on the specific
2004           target and various flags).  */
2005       bfd_vma vma;
2006
2007       /*  The load address of the section - where it would be in a
2008           rom image; really only used for writing section header
2009           information.  */
2010       bfd_vma lma;
2011
2012       /* The size of the section in *octets*, as it will be output.
2013          Contains a value even if the section has no contents (e.g., the
2014          size of .bss).  */
2015       bfd_size_type size;
2016
2017       /* For input sections, the original size on disk of the section, in
2018          octets.  This field should be set for any section whose size is
2019          changed by linker relaxation.  It is required for sections where
2020          the linker relaxation scheme doesn't cache altered section and
2021          reloc contents (stabs, eh_frame, SEC_MERGE, some coff relaxing
2022          targets), and thus the original size needs to be kept to read the
2023          section multiple times.  For output sections, rawsize holds the
2024          section size calculated on a previous linker relaxation pass.  */
2025       bfd_size_type rawsize;
2026
2027       /* The compressed size of the section in octets.  */
2028       bfd_size_type compressed_size;
2029
2030       /* Relaxation table. */
2031       struct relax_table *relax;
2032
2033       /* Count of used relaxation table entries. */
2034       int relax_count;
2035
2036
2037       /* If this section is going to be output, then this value is the
2038          offset in *bytes* into the output section of the first byte in the
2039          input section (byte ==> smallest addressable unit on the
2040          target).  In most cases, if this was going to start at the
2041          100th octet (8-bit quantity) in the output section, this value
2042          would be 100.  However, if the target byte size is 16 bits
2043          (bfd_octets_per_byte is "2"), this value would be 50.  */
2044       bfd_vma output_offset;
2045
2046       /* The output section through which to map on output.  */
2047       struct bfd_section *output_section;
2048
2049       /* The alignment requirement of the section, as an exponent of 2 -
2050          e.g., 3 aligns to 2^3 (or 8).  */
2051       unsigned int alignment_power;
2052
2053       /* If an input section, a pointer to a vector of relocation
2054          records for the data in this section.  */
2055       struct reloc_cache_entry *relocation;
2056
2057       /* If an output section, a pointer to a vector of pointers to
2058          relocation records for the data in this section.  */
2059       struct reloc_cache_entry **orelocation;
2060
2061       /* The number of relocation records in one of the above.  */
2062       unsigned reloc_count;
2063
2064       /* Information below is back end specific - and not always used
2065          or updated.  */
2066
2067       /* File position of section data.  */
2068       file_ptr filepos;
2069
2070       /* File position of relocation info.  */
2071       file_ptr rel_filepos;
2072
2073       /* File position of line data.  */
2074       file_ptr line_filepos;
2075
2076       /* Pointer to data for applications.  */
2077       void *userdata;
2078
2079       /* If the SEC_IN_MEMORY flag is set, this points to the actual
2080          contents.  */
2081       unsigned char *contents;
2082
2083       /* Attached line number information.  */
2084       alent *lineno;
2085
2086       /* Number of line number records.  */
2087       unsigned int lineno_count;
2088
2089       /* Entity size for merging purposes.  */
2090       unsigned int entsize;
2091
2092       /* Points to the kept section if this section is a link-once section,
2093          and is discarded.  */
2094       struct bfd_section *kept_section;
2095
2096       /* When a section is being output, this value changes as more
2097          linenumbers are written out.  */
2098       file_ptr moving_line_filepos;
2099
2100       /* What the section number is in the target world.  */
2101       int target_index;
2102
2103       void *used_by_bfd;
2104
2105       /* If this is a constructor section then here is a list of the
2106          relocations created to relocate items within it.  */
2107       struct relent_chain *constructor_chain;
2108
2109       /* The BFD which owns the section.  */
2110       bfd *owner;
2111
2112       /* A symbol which points at this section only.  */
2113       struct bfd_symbol *symbol;
2114       struct bfd_symbol **symbol_ptr_ptr;
2115
2116       /* Early in the link process, map_head and map_tail are used to build
2117          a list of input sections attached to an output section.  Later,
2118          output sections use these fields for a list of bfd_link_order
2119          structs.  */
2120       union {
2121         struct bfd_link_order *link_order;
2122         struct bfd_section *s;
2123       } map_head, map_tail;
2124     } asection;
2125
2126     /* Relax table contains information about instructions which can
2127        be removed by relaxation -- replacing a long address with a
2128        short address.  */
2129     struct relax_table {
2130       /* Address where bytes may be deleted. */
2131       bfd_vma addr;
2132
2133       /* Number of bytes to be deleted.  */
2134       int size;
2135     };
2136
2137     static inline const char *
2138     bfd_section_name (const asection *sec)
2139     {
2140       return sec->name;
2141     }
2142
2143     static inline bfd_size_type
2144     bfd_section_size (const asection *sec)
2145     {
2146       return sec->size;
2147     }
2148
2149     static inline bfd_vma
2150     bfd_section_vma (const asection *sec)
2151     {
2152       return sec->vma;
2153     }
2154
2155     static inline bfd_vma
2156     bfd_section_lma (const asection *sec)
2157     {
2158       return sec->lma;
2159     }
2160
2161     static inline unsigned int
2162     bfd_section_alignment (const asection *sec)
2163     {
2164       return sec->alignment_power;
2165     }
2166
2167     static inline flagword
2168     bfd_section_flags (const asection *sec)
2169     {
2170       return sec->flags;
2171     }
2172
2173     static inline void *
2174     bfd_section_userdata (const asection *sec)
2175     {
2176       return sec->userdata;
2177     }
2178     static inline bfd_boolean
2179     bfd_is_com_section (const asection *sec)
2180     {
2181       return (sec->flags & SEC_IS_COMMON) != 0;
2182     }
2183
2184     /* Note: the following are provided as inline functions rather than macros
2185        because not all callers use the return value.  A macro implementation
2186        would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
2187        compilers will complain about comma expressions that have no effect.  */
2188     static inline bfd_boolean
2189     bfd_set_section_userdata (asection *sec, void *val)
2190     {
2191       sec->userdata = val;
2192       return TRUE;
2193     }
2194
2195     static inline bfd_boolean
2196     bfd_set_section_vma (asection *sec, bfd_vma val)
2197     {
2198       sec->vma = sec->lma = val;
2199       sec->user_set_vma = TRUE;
2200       return TRUE;
2201     }
2202
2203     static inline bfd_boolean
2204     bfd_set_section_lma (asection *sec, bfd_vma val)
2205     {
2206       sec->lma = val;
2207       return TRUE;
2208     }
2209
2210     static inline bfd_boolean
2211     bfd_set_section_alignment (asection *sec, unsigned int val)
2212     {
2213       sec->alignment_power = val;
2214       return TRUE;
2215     }
2216
2217     /* These sections are global, and are managed by BFD.  The application
2218        and target back end are not permitted to change the values in
2219        these sections.  */
2220     extern asection _bfd_std_section[4];
2221
2222     #define BFD_ABS_SECTION_NAME "*ABS*"
2223     #define BFD_UND_SECTION_NAME "*UND*"
2224     #define BFD_COM_SECTION_NAME "*COM*"
2225     #define BFD_IND_SECTION_NAME "*IND*"
2226
2227     /* Pointer to the common section.  */
2228     #define bfd_com_section_ptr (&_bfd_std_section[0])
2229     /* Pointer to the undefined section.  */
2230     #define bfd_und_section_ptr (&_bfd_std_section[1])
2231     /* Pointer to the absolute section.  */
2232     #define bfd_abs_section_ptr (&_bfd_std_section[2])
2233     /* Pointer to the indirect section.  */
2234     #define bfd_ind_section_ptr (&_bfd_std_section[3])
2235
2236     static inline bfd_boolean
2237     bfd_is_und_section (const asection *sec)
2238     {
2239       return sec == bfd_und_section_ptr;
2240     }
2241
2242     static inline bfd_boolean
2243     bfd_is_abs_section (const asection *sec)
2244     {
2245       return sec == bfd_abs_section_ptr;
2246     }
2247
2248     static inline bfd_boolean
2249     bfd_is_ind_section (const asection *sec)
2250     {
2251       return sec == bfd_ind_section_ptr;
2252     }
2253
2254     static inline bfd_boolean
2255     bfd_is_const_section (const asection *sec)
2256     {
2257       return sec >= bfd_abs_section_ptr && sec <= bfd_ind_section_ptr;
2258     }
2259
2260     /* Return TRUE if input section SEC has been discarded.  */
2261     static inline bfd_boolean
2262     discarded_section (const asection *sec)
2263     {
2264       return (!bfd_is_abs_section (sec)
2265               && bfd_is_abs_section (sec->output_section)
2266               && sec->sec_info_type != SEC_INFO_TYPE_MERGE
2267               && sec->sec_info_type != SEC_INFO_TYPE_JUST_SYMS);
2268     }
2269
2270     #define BFD_FAKE_SECTION(SEC, SYM, NAME, IDX, FLAGS)                   \
2271       /* name, id,  index, next, prev, flags, user_set_vma,            */  \
2272       {  NAME, IDX, 0,     NULL, NULL, FLAGS, 0,                           \
2273                                                                            \
2274       /* linker_mark, linker_has_input, gc_mark, decompress_status,    */  \
2275          0,           0,                1,       0,                        \
2276                                                                            \
2277       /* segment_mark, sec_info_type, use_rela_p,                      */  \
2278          0,            0,             0,                                   \
2279                                                                            \
2280       /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5,   */  \
2281          0,        0,        0,        0,        0,        0,              \
2282                                                                            \
2283       /* vma, lma, size, rawsize, compressed_size, relax, relax_count, */  \
2284          0,   0,   0,    0,       0,               0,     0,               \
2285                                                                            \
2286       /* output_offset, output_section, alignment_power,               */  \
2287          0,             &SEC,           0,                                 \
2288                                                                            \
2289       /* relocation, orelocation, reloc_count, filepos, rel_filepos,   */  \
2290          NULL,       NULL,        0,           0,       0,                 \
2291                                                                            \
2292       /* line_filepos, userdata, contents, lineno, lineno_count,       */  \
2293          0,            NULL,     NULL,     NULL,   0,                      \
2294                                                                            \
2295       /* entsize, kept_section, moving_line_filepos,                    */ \
2296          0,       NULL,          0,                                        \
2297                                                                            \
2298       /* target_index, used_by_bfd, constructor_chain, owner,          */  \
2299          0,            NULL,        NULL,              NULL,               \
2300                                                                            \
2301       /* symbol,                    symbol_ptr_ptr,                    */  \
2302          (struct bfd_symbol *) SYM, &SEC.symbol,                           \
2303                                                                            \
2304       /* map_head, map_tail                                            */  \
2305          { NULL }, { NULL }                                                \
2306         }
2307
2308     /* We use a macro to initialize the static asymbol structures because
2309        traditional C does not permit us to initialize a union member while
2310        gcc warns if we don't initialize it.
2311        the_bfd, name, value, attr, section [, udata]  */
2312     #ifdef __STDC__
2313     #define GLOBAL_SYM_INIT(NAME, SECTION) \
2314       { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }}
2315     #else
2316     #define GLOBAL_SYM_INIT(NAME, SECTION) \
2317       { 0, NAME, 0, BSF_SECTION_SYM, SECTION }
2318     #endif
2319
2320
2321
2322File: bfd.info,  Node: section prototypes,  Prev: typedef asection,  Up: Sections
2323
23242.6.5 Section prototypes
2325------------------------
2326
2327These are the functions exported by the section handling part of BFD.
2328
23292.6.5.1 'bfd_section_list_clear'
2330................................
2331
2332*Synopsis*
2333     void bfd_section_list_clear (bfd *);
2334   *Description*
2335Clears the section list, and also resets the section count and hash
2336table entries.
2337
23382.6.5.2 'bfd_get_section_by_name'
2339.................................
2340
2341*Synopsis*
2342     asection *bfd_get_section_by_name (bfd *abfd, const char *name);
2343   *Description*
2344Return the most recently created section attached to ABFD named NAME.
2345Return NULL if no such section exists.
2346
23472.6.5.3 'bfd_get_next_section_by_name'
2348......................................
2349
2350*Synopsis*
2351     asection *bfd_get_next_section_by_name (bfd *ibfd, asection *sec);
2352   *Description*
2353Given SEC is a section returned by 'bfd_get_section_by_name', return the
2354next most recently created section attached to the same BFD with the
2355same name, or if no such section exists in the same BFD and IBFD is
2356non-NULL, the next section with the same name in any input BFD following
2357IBFD. Return NULL on finding no section.
2358
23592.6.5.4 'bfd_get_linker_section'
2360................................
2361
2362*Synopsis*
2363     asection *bfd_get_linker_section (bfd *abfd, const char *name);
2364   *Description*
2365Return the linker created section attached to ABFD named NAME.  Return
2366NULL if no such section exists.
2367
23682.6.5.5 'bfd_get_section_by_name_if'
2369....................................
2370
2371*Synopsis*
2372     asection *bfd_get_section_by_name_if
2373        (bfd *abfd,
2374         const char *name,
2375         bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
2376         void *obj);
2377   *Description*
2378Call the provided function FUNC for each section attached to the BFD
2379ABFD whose name matches NAME, passing OBJ as an argument.  The function
2380will be called as if by
2381
2382            func (abfd, the_section, obj);
2383
2384   It returns the first section for which FUNC returns true, otherwise
2385'NULL'.
2386
23872.6.5.6 'bfd_get_unique_section_name'
2388.....................................
2389
2390*Synopsis*
2391     char *bfd_get_unique_section_name
2392        (bfd *abfd, const char *templat, int *count);
2393   *Description*
2394Invent a section name that is unique in ABFD by tacking a dot and a
2395digit suffix onto the original TEMPLAT.  If COUNT is non-NULL, then it
2396specifies the first number tried as a suffix to generate a unique name.
2397The value pointed to by COUNT will be incremented in this case.
2398
23992.6.5.7 'bfd_make_section_old_way'
2400..................................
2401
2402*Synopsis*
2403     asection *bfd_make_section_old_way (bfd *abfd, const char *name);
2404   *Description*
2405Create a new empty section called NAME and attach it to the end of the
2406chain of sections for the BFD ABFD.  An attempt to create a section with
2407a name which is already in use returns its pointer without changing the
2408section chain.
2409
2410   It has the funny name since this is the way it used to be before it
2411was rewritten....
2412
2413   Possible errors are:
2414
2415   * 'bfd_error_invalid_operation' - If output has already started for
2416     this BFD.
2417   * 'bfd_error_no_memory' - If memory allocation fails.
2418
24192.6.5.8 'bfd_make_section_anyway_with_flags'
2420............................................
2421
2422*Synopsis*
2423     asection *bfd_make_section_anyway_with_flags
2424        (bfd *abfd, const char *name, flagword flags);
2425   *Description*
2426Create a new empty section called NAME and attach it to the end of the
2427chain of sections for ABFD.  Create a new section even if there is
2428already a section with that name.  Also set the attributes of the new
2429section to the value FLAGS.
2430
2431   Return 'NULL' and set 'bfd_error' on error; possible errors are:
2432
2433   * 'bfd_error_invalid_operation' - If output has already started for
2434     ABFD.
2435   * 'bfd_error_no_memory' - If memory allocation fails.
2436
24372.6.5.9 'bfd_make_section_anyway'
2438.................................
2439
2440*Synopsis*
2441     asection *bfd_make_section_anyway (bfd *abfd, const char *name);
2442   *Description*
2443Create a new empty section called NAME and attach it to the end of the
2444chain of sections for ABFD.  Create a new section even if there is
2445already a section with that name.
2446
2447   Return 'NULL' and set 'bfd_error' on error; possible errors are:
2448
2449   * 'bfd_error_invalid_operation' - If output has already started for
2450     ABFD.
2451   * 'bfd_error_no_memory' - If memory allocation fails.
2452
24532.6.5.10 'bfd_make_section_with_flags'
2454......................................
2455
2456*Synopsis*
2457     asection *bfd_make_section_with_flags
2458        (bfd *, const char *name, flagword flags);
2459   *Description*
2460Like 'bfd_make_section_anyway', but return 'NULL' (without calling
2461bfd_set_error ()) without changing the section chain if there is already
2462a section named NAME.  Also set the attributes of the new section to the
2463value FLAGS.  If there is an error, return 'NULL' and set 'bfd_error'.
2464
24652.6.5.11 'bfd_make_section'
2466...........................
2467
2468*Synopsis*
2469     asection *bfd_make_section (bfd *, const char *name);
2470   *Description*
2471Like 'bfd_make_section_anyway', but return 'NULL' (without calling
2472bfd_set_error ()) without changing the section chain if there is already
2473a section named NAME.  If there is an error, return 'NULL' and set
2474'bfd_error'.
2475
24762.6.5.12 'bfd_set_section_flags'
2477................................
2478
2479*Synopsis*
2480     bfd_boolean bfd_set_section_flags (asection *sec, flagword flags);
2481   *Description*
2482Set the attributes of the section SEC to the value FLAGS.  Return 'TRUE'
2483on success, 'FALSE' on error.  Possible error returns are:
2484
2485   * 'bfd_error_invalid_operation' - The section cannot have one or more
2486     of the attributes requested.  For example, a .bss section in
2487     'a.out' may not have the 'SEC_HAS_CONTENTS' field set.
2488
24892.6.5.13 'bfd_rename_section'
2490.............................
2491
2492*Synopsis*
2493     void bfd_rename_section
2494        (asection *sec, const char *newname);
2495   *Description*
2496Rename section SEC to NEWNAME.
2497
24982.6.5.14 'bfd_map_over_sections'
2499................................
2500
2501*Synopsis*
2502     void bfd_map_over_sections
2503        (bfd *abfd,
2504         void (*func) (bfd *abfd, asection *sect, void *obj),
2505         void *obj);
2506   *Description*
2507Call the provided function FUNC for each section attached to the BFD
2508ABFD, passing OBJ as an argument.  The function will be called as if by
2509
2510            func (abfd, the_section, obj);
2511
2512   This is the preferred method for iterating over sections; an
2513alternative would be to use a loop:
2514
2515               asection *p;
2516               for (p = abfd->sections; p != NULL; p = p->next)
2517                  func (abfd, p, ...)
2518
25192.6.5.15 'bfd_sections_find_if'
2520...............................
2521
2522*Synopsis*
2523     asection *bfd_sections_find_if
2524        (bfd *abfd,
2525         bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
2526         void *obj);
2527   *Description*
2528Call the provided function OPERATION for each section attached to the
2529BFD ABFD, passing OBJ as an argument.  The function will be called as if
2530by
2531
2532            operation (abfd, the_section, obj);
2533
2534   It returns the first section for which OPERATION returns true.
2535
25362.6.5.16 'bfd_set_section_size'
2537...............................
2538
2539*Synopsis*
2540     bfd_boolean bfd_set_section_size (asection *sec, bfd_size_type val);
2541   *Description*
2542Set SEC to the size VAL.  If the operation is ok, then 'TRUE' is
2543returned, else 'FALSE'.
2544
2545   Possible error returns:
2546
2547   * 'bfd_error_invalid_operation' - Writing has started to the BFD, so
2548     setting the size is invalid.
2549
25502.6.5.17 'bfd_set_section_contents'
2551...................................
2552
2553*Synopsis*
2554     bfd_boolean bfd_set_section_contents
2555        (bfd *abfd, asection *section, const void *data,
2556         file_ptr offset, bfd_size_type count);
2557   *Description*
2558Sets the contents of the section SECTION in BFD ABFD to the data
2559starting in memory at LOCATION.  The data is written to the output
2560section starting at offset OFFSET for COUNT octets.
2561
2562   Normally 'TRUE' is returned, but 'FALSE' is returned if there was an
2563error.  Possible error returns are:
2564
2565   * 'bfd_error_no_contents' - The output section does not have the
2566     'SEC_HAS_CONTENTS' attribute, so nothing can be written to it.
2567   * 'bfd_error_bad_value' - The section is unable to contain all of the
2568     data.
2569   * 'bfd_error_invalid_operation' - The BFD is not writeable.
2570   * and some more too.
2571   This routine is front end to the back end function
2572'_bfd_set_section_contents'.
2573
25742.6.5.18 'bfd_get_section_contents'
2575...................................
2576
2577*Synopsis*
2578     bfd_boolean bfd_get_section_contents
2579        (bfd *abfd, asection *section, void *location, file_ptr offset,
2580         bfd_size_type count);
2581   *Description*
2582Read data from SECTION in BFD ABFD into memory starting at LOCATION.
2583The data is read at an offset of OFFSET from the start of the input
2584section, and is read for COUNT bytes.
2585
2586   If the contents of a constructor with the 'SEC_CONSTRUCTOR' flag set
2587are requested or if the section does not have the 'SEC_HAS_CONTENTS'
2588flag set, then the LOCATION is filled with zeroes.  If no errors occur,
2589'TRUE' is returned, else 'FALSE'.
2590
25912.6.5.19 'bfd_malloc_and_get_section'
2592.....................................
2593
2594*Synopsis*
2595     bfd_boolean bfd_malloc_and_get_section
2596        (bfd *abfd, asection *section, bfd_byte **buf);
2597   *Description*
2598Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by
2599this function.
2600
26012.6.5.20 'bfd_copy_private_section_data'
2602........................................
2603
2604*Synopsis*
2605     bfd_boolean bfd_copy_private_section_data
2606        (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
2607   *Description*
2608Copy private section information from ISEC in the BFD IBFD to the
2609section OSEC in the BFD OBFD.  Return 'TRUE' on success, 'FALSE' on
2610error.  Possible error returns are:
2611
2612   * 'bfd_error_no_memory' - Not enough memory exists to create private
2613     data for OSEC.
2614     #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
2615            BFD_SEND (obfd, _bfd_copy_private_section_data, \
2616                      (ibfd, isection, obfd, osection))
2617
26182.6.5.21 'bfd_generic_is_group_section'
2619.......................................
2620
2621*Synopsis*
2622     bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
2623   *Description*
2624Returns TRUE if SEC is a member of a group.
2625
26262.6.5.22 'bfd_generic_group_name'
2627.................................
2628
2629*Synopsis*
2630     const char *bfd_generic_group_name (bfd *, const asection *sec);
2631   *Description*
2632Returns group name if SEC is a member of a group.
2633
26342.6.5.23 'bfd_generic_discard_group'
2635....................................
2636
2637*Synopsis*
2638     bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
2639   *Description*
2640Remove all members of GROUP from the output.
2641
2642
2643File: bfd.info,  Node: Symbols,  Next: Archives,  Prev: Sections,  Up: BFD front end
2644
26452.7 Symbols
2646===========
2647
2648BFD tries to maintain as much symbol information as it can when it moves
2649information from file to file.  BFD passes information to applications
2650though the 'asymbol' structure.  When the application requests the
2651symbol table, BFD reads the table in the native form and translates
2652parts of it into the internal format.  To maintain more than the
2653information passed to applications, some targets keep some information
2654"behind the scenes" in a structure only the particular back end knows
2655about.  For example, the coff back end keeps the original symbol table
2656structure as well as the canonical structure when a BFD is read in.  On
2657output, the coff back end can reconstruct the output symbol table so
2658that no information is lost, even information unique to coff which BFD
2659doesn't know or understand.  If a coff symbol table were read, but were
2660written through an a.out back end, all the coff specific information
2661would be lost.  The symbol table of a BFD is not necessarily read in
2662until a canonicalize request is made.  Then the BFD back end fills in a
2663table provided by the application with pointers to the canonical
2664information.  To output symbols, the application provides BFD with a
2665table of pointers to pointers to 'asymbol's.  This allows applications
2666like the linker to output a symbol as it was read, since the "behind the
2667scenes" information will be still available.
2668* Menu:
2669
2670* Reading Symbols::
2671* Writing Symbols::
2672* Mini Symbols::
2673* typedef asymbol::
2674* symbol handling functions::
2675
2676
2677File: bfd.info,  Node: Reading Symbols,  Next: Writing Symbols,  Prev: Symbols,  Up: Symbols
2678
26792.7.1 Reading symbols
2680---------------------
2681
2682There are two stages to reading a symbol table from a BFD: allocating
2683storage, and the actual reading process.  This is an excerpt from an
2684application which reads the symbol table:
2685
2686              long storage_needed;
2687              asymbol **symbol_table;
2688              long number_of_symbols;
2689              long i;
2690
2691              storage_needed = bfd_get_symtab_upper_bound (abfd);
2692
2693              if (storage_needed < 0)
2694                FAIL
2695
2696              if (storage_needed == 0)
2697                return;
2698
2699              symbol_table = xmalloc (storage_needed);
2700                ...
2701              number_of_symbols =
2702                 bfd_canonicalize_symtab (abfd, symbol_table);
2703
2704              if (number_of_symbols < 0)
2705                FAIL
2706
2707              for (i = 0; i < number_of_symbols; i++)
2708                process_symbol (symbol_table[i]);
2709
2710   All storage for the symbols themselves is in an objalloc connected to
2711the BFD; it is freed when the BFD is closed.
2712
2713
2714File: bfd.info,  Node: Writing Symbols,  Next: Mini Symbols,  Prev: Reading Symbols,  Up: Symbols
2715
27162.7.2 Writing symbols
2717---------------------
2718
2719Writing of a symbol table is automatic when a BFD open for writing is
2720closed.  The application attaches a vector of pointers to pointers to
2721symbols to the BFD being written, and fills in the symbol count.  The
2722close and cleanup code reads through the table provided and performs all
2723the necessary operations.  The BFD output code must always be provided
2724with an "owned" symbol: one which has come from another BFD, or one
2725which has been created using 'bfd_make_empty_symbol'.  Here is an
2726example showing the creation of a symbol table with only one element:
2727
2728            #include "sysdep.h"
2729            #include "bfd.h"
2730            int main (void)
2731            {
2732              bfd *abfd;
2733              asymbol *ptrs[2];
2734              asymbol *new;
2735
2736              abfd = bfd_openw ("foo","a.out-sunos-big");
2737              bfd_set_format (abfd, bfd_object);
2738              new = bfd_make_empty_symbol (abfd);
2739              new->name = "dummy_symbol";
2740              new->section = bfd_make_section_old_way (abfd, ".text");
2741              new->flags = BSF_GLOBAL;
2742              new->value = 0x12345;
2743
2744              ptrs[0] = new;
2745              ptrs[1] = 0;
2746
2747              bfd_set_symtab (abfd, ptrs, 1);
2748              bfd_close (abfd);
2749              return 0;
2750            }
2751
2752            ./makesym
2753            nm foo
2754            00012345 A dummy_symbol
2755
2756   Many formats cannot represent arbitrary symbol information; for
2757instance, the 'a.out' object format does not allow an arbitrary number
2758of sections.  A symbol pointing to a section which is not one of
2759'.text', '.data' or '.bss' cannot be described.
2760
2761
2762File: bfd.info,  Node: Mini Symbols,  Next: typedef asymbol,  Prev: Writing Symbols,  Up: Symbols
2763
27642.7.3 Mini Symbols
2765------------------
2766
2767Mini symbols provide read-only access to the symbol table.  They use
2768less memory space, but require more time to access.  They can be useful
2769for tools like nm or objdump, which may have to handle symbol tables of
2770extremely large executables.
2771
2772   The 'bfd_read_minisymbols' function will read the symbols into memory
2773in an internal form.  It will return a 'void *' pointer to a block of
2774memory, a symbol count, and the size of each symbol.  The pointer is
2775allocated using 'malloc', and should be freed by the caller when it is
2776no longer needed.
2777
2778   The function 'bfd_minisymbol_to_symbol' will take a pointer to a
2779minisymbol, and a pointer to a structure returned by
2780'bfd_make_empty_symbol', and return a 'asymbol' structure.  The return
2781value may or may not be the same as the value from
2782'bfd_make_empty_symbol' which was passed in.
2783
2784
2785File: bfd.info,  Node: typedef asymbol,  Next: symbol handling functions,  Prev: Mini Symbols,  Up: Symbols
2786
27872.7.4 typedef asymbol
2788---------------------
2789
2790An 'asymbol' has the form:
2791
2792
2793     typedef struct bfd_symbol
2794     {
2795       /* A pointer to the BFD which owns the symbol. This information
2796          is necessary so that a back end can work out what additional
2797          information (invisible to the application writer) is carried
2798          with the symbol.
2799
2800          This field is *almost* redundant, since you can use section->owner
2801          instead, except that some symbols point to the global sections
2802          bfd_{abs,com,und}_section.  This could be fixed by making
2803          these globals be per-bfd (or per-target-flavor).  FIXME.  */
2804       struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field.  */
2805
2806       /* The text of the symbol. The name is left alone, and not copied; the
2807          application may not alter it.  */
2808       const char *name;
2809
2810       /* The value of the symbol.  This really should be a union of a
2811          numeric value with a pointer, since some flags indicate that
2812          a pointer to another symbol is stored here.  */
2813       symvalue value;
2814
2815       /* Attributes of a symbol.  */
2816     #define BSF_NO_FLAGS            0
2817
2818       /* The symbol has local scope; static in C. The value
2819          is the offset into the section of the data.  */
2820     #define BSF_LOCAL               (1 << 0)
2821
2822       /* The symbol has global scope; initialized data in C. The
2823          value is the offset into the section of the data.  */
2824     #define BSF_GLOBAL              (1 << 1)
2825
2826       /* The symbol has global scope and is exported. The value is
2827          the offset into the section of the data.  */
2828     #define BSF_EXPORT              BSF_GLOBAL /* No real difference.  */
2829
2830       /* A normal C symbol would be one of:
2831          BSF_LOCAL, BSF_UNDEFINED or BSF_GLOBAL.  */
2832
2833       /* The symbol is a debugging record. The value has an arbitrary
2834          meaning, unless BSF_DEBUGGING_RELOC is also set.  */
2835     #define BSF_DEBUGGING           (1 << 2)
2836
2837       /* The symbol denotes a function entry point.  Used in ELF,
2838          perhaps others someday.  */
2839     #define BSF_FUNCTION            (1 << 3)
2840
2841       /* Used by the linker.  */
2842     #define BSF_KEEP                (1 << 5)
2843
2844       /* An ELF common symbol.  */
2845     #define BSF_ELF_COMMON          (1 << 6)
2846
2847       /* A weak global symbol, overridable without warnings by
2848          a regular global symbol of the same name.  */
2849     #define BSF_WEAK                (1 << 7)
2850
2851       /* This symbol was created to point to a section, e.g. ELF's
2852          STT_SECTION symbols.  */
2853     #define BSF_SECTION_SYM         (1 << 8)
2854
2855       /* The symbol used to be a common symbol, but now it is
2856          allocated.  */
2857     #define BSF_OLD_COMMON          (1 << 9)
2858
2859       /* In some files the type of a symbol sometimes alters its
2860          location in an output file - ie in coff a ISFCN symbol
2861          which is also C_EXT symbol appears where it was
2862          declared and not at the end of a section.  This bit is set
2863          by the target BFD part to convey this information.  */
2864     #define BSF_NOT_AT_END          (1 << 10)
2865
2866       /* Signal that the symbol is the label of constructor section.  */
2867     #define BSF_CONSTRUCTOR         (1 << 11)
2868
2869       /* Signal that the symbol is a warning symbol.  The name is a
2870          warning.  The name of the next symbol is the one to warn about;
2871          if a reference is made to a symbol with the same name as the next
2872          symbol, a warning is issued by the linker.  */
2873     #define BSF_WARNING             (1 << 12)
2874
2875       /* Signal that the symbol is indirect.  This symbol is an indirect
2876          pointer to the symbol with the same name as the next symbol.  */
2877     #define BSF_INDIRECT            (1 << 13)
2878
2879       /* BSF_FILE marks symbols that contain a file name.  This is used
2880          for ELF STT_FILE symbols.  */
2881     #define BSF_FILE                (1 << 14)
2882
2883       /* Symbol is from dynamic linking information.  */
2884     #define BSF_DYNAMIC             (1 << 15)
2885
2886       /* The symbol denotes a data object.  Used in ELF, and perhaps
2887          others someday.  */
2888     #define BSF_OBJECT              (1 << 16)
2889
2890       /* This symbol is a debugging symbol.  The value is the offset
2891          into the section of the data.  BSF_DEBUGGING should be set
2892          as well.  */
2893     #define BSF_DEBUGGING_RELOC     (1 << 17)
2894
2895       /* This symbol is thread local.  Used in ELF.  */
2896     #define BSF_THREAD_LOCAL        (1 << 18)
2897
2898       /* This symbol represents a complex relocation expression,
2899          with the expression tree serialized in the symbol name.  */
2900     #define BSF_RELC                (1 << 19)
2901
2902       /* This symbol represents a signed complex relocation expression,
2903          with the expression tree serialized in the symbol name.  */
2904     #define BSF_SRELC               (1 << 20)
2905
2906       /* This symbol was created by bfd_get_synthetic_symtab.  */
2907     #define BSF_SYNTHETIC           (1 << 21)
2908
2909       /* This symbol is an indirect code object.  Unrelated to BSF_INDIRECT.
2910          The dynamic linker will compute the value of this symbol by
2911          calling the function that it points to.  BSF_FUNCTION must
2912          also be also set.  */
2913     #define BSF_GNU_INDIRECT_FUNCTION (1 << 22)
2914       /* This symbol is a globally unique data object.  The dynamic linker
2915          will make sure that in the entire process there is just one symbol
2916          with this name and type in use.  BSF_OBJECT must also be set.  */
2917     #define BSF_GNU_UNIQUE          (1 << 23)
2918
2919       flagword flags;
2920
2921       /* A pointer to the section to which this symbol is
2922          relative.  This will always be non NULL, there are special
2923          sections for undefined and absolute symbols.  */
2924       struct bfd_section *section;
2925
2926       /* Back end special data.  */
2927       union
2928         {
2929           void *p;
2930           bfd_vma i;
2931         }
2932       udata;
2933     }
2934     asymbol;
2935
2936
2937
2938File: bfd.info,  Node: symbol handling functions,  Prev: typedef asymbol,  Up: Symbols
2939
29402.7.5 Symbol handling functions
2941-------------------------------
2942
29432.7.5.1 'bfd_get_symtab_upper_bound'
2944....................................
2945
2946*Description*
2947Return the number of bytes required to store a vector of pointers to
2948'asymbols' for all the symbols in the BFD ABFD, including a terminal
2949NULL pointer.  If there are no symbols in the BFD, then return 0.  If an
2950error occurs, return -1.
2951     #define bfd_get_symtab_upper_bound(abfd) \
2952            BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
2953
2954
29552.7.5.2 'bfd_is_local_label'
2956............................
2957
2958*Synopsis*
2959     bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
2960   *Description*
2961Return TRUE if the given symbol SYM in the BFD ABFD is a compiler
2962generated local label, else return FALSE.
2963
29642.7.5.3 'bfd_is_local_label_name'
2965.................................
2966
2967*Synopsis*
2968     bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
2969   *Description*
2970Return TRUE if a symbol with the name NAME in the BFD ABFD is a compiler
2971generated local label, else return FALSE. This just checks whether the
2972name has the form of a local label.
2973     #define bfd_is_local_label_name(abfd, name) \
2974            BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
2975
2976
29772.7.5.4 'bfd_is_target_special_symbol'
2978......................................
2979
2980*Synopsis*
2981     bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
2982   *Description*
2983Return TRUE iff a symbol SYM in the BFD ABFD is something special to the
2984particular target represented by the BFD. Such symbols should normally
2985not be mentioned to the user.
2986     #define bfd_is_target_special_symbol(abfd, sym) \
2987            BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
2988
2989
29902.7.5.5 'bfd_canonicalize_symtab'
2991.................................
2992
2993*Description*
2994Read the symbols from the BFD ABFD, and fills in the vector LOCATION
2995with pointers to the symbols and a trailing NULL. Return the actual
2996number of symbol pointers, not including the NULL.
2997     #define bfd_canonicalize_symtab(abfd, location) \
2998            BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
2999
3000
30012.7.5.6 'bfd_set_symtab'
3002........................
3003
3004*Synopsis*
3005     bfd_boolean bfd_set_symtab
3006        (bfd *abfd, asymbol **location, unsigned int count);
3007   *Description*
3008Arrange that when the output BFD ABFD is closed, the table LOCATION of
3009COUNT pointers to symbols will be written.
3010
30112.7.5.7 'bfd_print_symbol_vandf'
3012................................
3013
3014*Synopsis*
3015     void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
3016   *Description*
3017Print the value and flags of the SYMBOL supplied to the stream FILE.
3018
30192.7.5.8 'bfd_make_empty_symbol'
3020...............................
3021
3022*Description*
3023Create a new 'asymbol' structure for the BFD ABFD and return a pointer
3024to it.
3025
3026   This routine is necessary because each back end has private
3027information surrounding the 'asymbol'.  Building your own 'asymbol' and
3028pointing to it will not create the private information, and will cause
3029problems later on.
3030     #define bfd_make_empty_symbol(abfd) \
3031            BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
3032
3033
30342.7.5.9 '_bfd_generic_make_empty_symbol'
3035........................................
3036
3037*Synopsis*
3038     asymbol *_bfd_generic_make_empty_symbol (bfd *);
3039   *Description*
3040Create a new 'asymbol' structure for the BFD ABFD and return a pointer
3041to it.  Used by core file routines, binary back-end and anywhere else
3042where no private info is needed.
3043
30442.7.5.10 'bfd_make_debug_symbol'
3045................................
3046
3047*Description*
3048Create a new 'asymbol' structure for the BFD ABFD, to be used as a
3049debugging symbol.  Further details of its use have yet to be worked out.
3050     #define bfd_make_debug_symbol(abfd,ptr,size) \
3051            BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
3052
3053
30542.7.5.11 'bfd_decode_symclass'
3055..............................
3056
3057*Description*
3058Return a character corresponding to the symbol class of SYMBOL, or '?'
3059for an unknown class.
3060
3061   *Synopsis*
3062     int bfd_decode_symclass (asymbol *symbol);
3063
30642.7.5.12 'bfd_is_undefined_symclass'
3065....................................
3066
3067*Description*
3068Returns non-zero if the class symbol returned by bfd_decode_symclass
3069represents an undefined symbol.  Returns zero otherwise.
3070
3071   *Synopsis*
3072     bfd_boolean bfd_is_undefined_symclass (int symclass);
3073
30742.7.5.13 'bfd_symbol_info'
3075..........................
3076
3077*Description*
3078Fill in the basic info about symbol that nm needs.  Additional info may
3079be added by the back-ends after calling this function.
3080
3081   *Synopsis*
3082     void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
3083
30842.7.5.14 'bfd_copy_private_symbol_data'
3085.......................................
3086
3087*Synopsis*
3088     bfd_boolean bfd_copy_private_symbol_data
3089        (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
3090   *Description*
3091Copy private symbol information from ISYM in the BFD IBFD to the symbol
3092OSYM in the BFD OBFD.  Return 'TRUE' on success, 'FALSE' on error.
3093Possible error returns are:
3094
3095   * 'bfd_error_no_memory' - Not enough memory exists to create private
3096     data for OSEC.
3097     #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
3098            BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
3099                      (ibfd, isymbol, obfd, osymbol))
3100
3101
3102
3103File: bfd.info,  Node: Archives,  Next: Formats,  Prev: Symbols,  Up: BFD front end
3104
31052.8 Archives
3106============
3107
3108*Description*
3109An archive (or library) is just another BFD. It has a symbol table,
3110although there's not much a user program will do with it.
3111
3112   The big difference between an archive BFD and an ordinary BFD is that
3113the archive doesn't have sections.  Instead it has a chain of BFDs that
3114are considered its contents.  These BFDs can be manipulated like any
3115other.  The BFDs contained in an archive opened for reading will all be
3116opened for reading.  You may put either input or output BFDs into an
3117archive opened for output; they will be handled correctly when the
3118archive is closed.
3119
3120   Use 'bfd_openr_next_archived_file' to step through the contents of an
3121archive opened for input.  You don't have to read the entire archive if
3122you don't want to!  Read it until you find what you want.
3123
3124   A BFD returned by 'bfd_openr_next_archived_file' can be closed
3125manually with 'bfd_close'.  If you do not close it, then a second
3126iteration through the members of an archive may return the same BFD. If
3127you close the archive BFD, then all the member BFDs will automatically
3128be closed as well.
3129
3130   Archive contents of output BFDs are chained through the
3131'archive_next' pointer in a BFD. The first one is findable through the
3132'archive_head' slot of the archive.  Set it with 'bfd_set_archive_head'
3133(q.v.).  A given BFD may be in only one open output archive at a time.
3134
3135   As expected, the BFD archive code is more general than the archive
3136code of any given environment.  BFD archives may contain files of
3137different formats (e.g., a.out and coff) and even different
3138architectures.  You may even place archives recursively into archives!
3139
3140   This can cause unexpected confusion, since some archive formats are
3141more expressive than others.  For instance, Intel COFF archives can
3142preserve long filenames; SunOS a.out archives cannot.  If you move a
3143file from the first to the second format and back again, the filename
3144may be truncated.  Likewise, different a.out environments have different
3145conventions as to how they truncate filenames, whether they preserve
3146directory names in filenames, etc.  When interoperating with native
3147tools, be sure your files are homogeneous.
3148
3149   Beware: most of these formats do not react well to the presence of
3150spaces in filenames.  We do the best we can, but can't always handle
3151this case due to restrictions in the format of archives.  Many Unix
3152utilities are braindead in regards to spaces and such in filenames
3153anyway, so this shouldn't be much of a restriction.
3154
3155   Archives are supported in BFD in 'archive.c'.
3156
31572.8.1 Archive functions
3158-----------------------
3159
31602.8.1.1 'bfd_get_next_mapent'
3161.............................
3162
3163*Synopsis*
3164     symindex bfd_get_next_mapent
3165        (bfd *abfd, symindex previous, carsym **sym);
3166   *Description*
3167Step through archive ABFD's symbol table (if it has one).  Successively
3168update SYM with the next symbol's information, returning that symbol's
3169(internal) index into the symbol table.
3170
3171   Supply 'BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first
3172one; returns 'BFD_NO_MORE_SYMBOLS' when you've already got the last one.
3173
3174   A 'carsym' is a canonical archive symbol.  The only user-visible
3175element is its name, a null-terminated string.
3176
31772.8.1.2 'bfd_set_archive_head'
3178..............................
3179
3180*Synopsis*
3181     bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
3182   *Description*
3183Set the head of the chain of BFDs contained in the archive OUTPUT to
3184NEW_HEAD.
3185
31862.8.1.3 'bfd_openr_next_archived_file'
3187......................................
3188
3189*Synopsis*
3190     bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
3191   *Description*
3192Provided a BFD, ARCHIVE, containing an archive and NULL, open an input
3193BFD on the first contained element and returns that.  Subsequent calls
3194should pass the archive and the previous return value to return a
3195created BFD to the next contained element.  NULL is returned when there
3196are no more.  Note - if you want to process the bfd returned by this
3197call be sure to call bfd_check_format() on it first.
3198
3199
3200File: bfd.info,  Node: Formats,  Next: Relocations,  Prev: Archives,  Up: BFD front end
3201
32022.9 File formats
3203================
3204
3205A format is a BFD concept of high level file contents type.  The formats
3206supported by BFD are:
3207
3208   * 'bfd_object'
3209   The BFD may contain data, symbols, relocations and debug info.
3210
3211   * 'bfd_archive'
3212   The BFD contains other BFDs and an optional index.
3213
3214   * 'bfd_core'
3215   The BFD contains the result of an executable core dump.
3216
32172.9.1 File format functions
3218---------------------------
3219
32202.9.1.1 'bfd_check_format'
3221..........................
3222
3223*Synopsis*
3224     bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
3225   *Description*
3226Verify if the file attached to the BFD ABFD is compatible with the
3227format FORMAT (i.e., one of 'bfd_object', 'bfd_archive' or 'bfd_core').
3228
3229   If the BFD has been set to a specific target before the call, only
3230the named target and format combination is checked.  If the target has
3231not been set, or has been set to 'default', then all the known target
3232backends is interrogated to determine a match.  If the default target
3233matches, it is used.  If not, exactly one target must recognize the
3234file, or an error results.
3235
3236   The function returns 'TRUE' on success, otherwise 'FALSE' with one of
3237the following error codes:
3238
3239   * 'bfd_error_invalid_operation' - if 'format' is not one of
3240     'bfd_object', 'bfd_archive' or 'bfd_core'.
3241
3242   * 'bfd_error_system_call' - if an error occured during a read - even
3243     some file mismatches can cause bfd_error_system_calls.
3244
3245   * 'file_not_recognised' - none of the backends recognised the file
3246     format.
3247
3248   * 'bfd_error_file_ambiguously_recognized' - more than one backend
3249     recognised the file format.
3250
32512.9.1.2 'bfd_check_format_matches'
3252..................................
3253
3254*Synopsis*
3255     bfd_boolean bfd_check_format_matches
3256        (bfd *abfd, bfd_format format, char ***matching);
3257   *Description*
3258Like 'bfd_check_format', except when it returns FALSE with 'bfd_errno'
3259set to 'bfd_error_file_ambiguously_recognized'.  In that case, if
3260MATCHING is not NULL, it will be filled in with a NULL-terminated list
3261of the names of the formats that matched, allocated with 'malloc'.  Then
3262the user may choose a format and try again.
3263
3264   When done with the list that MATCHING points to, the caller should
3265free it.
3266
32672.9.1.3 'bfd_set_format'
3268........................
3269
3270*Synopsis*
3271     bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
3272   *Description*
3273This function sets the file format of the BFD ABFD to the format FORMAT.
3274If the target set in the BFD does not support the format requested, the
3275format is invalid, or the BFD is not open for writing, then an error
3276occurs.
3277
32782.9.1.4 'bfd_format_string'
3279...........................
3280
3281*Synopsis*
3282     const char *bfd_format_string (bfd_format format);
3283   *Description*
3284Return a pointer to a const string 'invalid', 'object', 'archive',
3285'core', or 'unknown', depending upon the value of FORMAT.
3286
3287
3288File: bfd.info,  Node: Relocations,  Next: Core Files,  Prev: Formats,  Up: BFD front end
3289
32902.10 Relocations
3291================
3292
3293BFD maintains relocations in much the same way it maintains symbols:
3294they are left alone until required, then read in en-masse and translated
3295into an internal form.  A common routine 'bfd_perform_relocation' acts
3296upon the canonical form to do the fixup.
3297
3298   Relocations are maintained on a per section basis, while symbols are
3299maintained on a per BFD basis.
3300
3301   All that a back end has to do to fit the BFD interface is to create a
3302'struct reloc_cache_entry' for each relocation in a particular section,
3303and fill in the right bits of the structures.
3304
3305* Menu:
3306
3307* typedef arelent::
3308* howto manager::
3309
3310
3311File: bfd.info,  Node: typedef arelent,  Next: howto manager,  Prev: Relocations,  Up: Relocations
3312
33132.10.1 typedef arelent
3314----------------------
3315
3316This is the structure of a relocation entry:
3317
3318
3319     typedef enum bfd_reloc_status
3320     {
3321       /* No errors detected.  Note - the value 2 is used so that it
3322          will not be mistaken for the boolean TRUE or FALSE values.  */
3323       bfd_reloc_ok = 2,
3324
3325       /* The relocation was performed, but there was an overflow.  */
3326       bfd_reloc_overflow,
3327
3328       /* The address to relocate was not within the section supplied.  */
3329       bfd_reloc_outofrange,
3330
3331       /* Used by special functions.  */
3332       bfd_reloc_continue,
3333
3334       /* Unsupported relocation size requested.  */
3335       bfd_reloc_notsupported,
3336
3337       /* Unused.  */
3338       bfd_reloc_other,
3339
3340       /* The symbol to relocate against was undefined.  */
3341       bfd_reloc_undefined,
3342
3343       /* The relocation was performed, but may not be ok.  If this type is
3344          returned, the error_message argument to bfd_perform_relocation
3345          will be set.  */
3346       bfd_reloc_dangerous
3347      }
3348      bfd_reloc_status_type;
3349
3350     typedef const struct reloc_howto_struct reloc_howto_type;
3351
3352     typedef struct reloc_cache_entry
3353     {
3354       /* A pointer into the canonical table of pointers.  */
3355       struct bfd_symbol **sym_ptr_ptr;
3356
3357       /* offset in section.  */
3358       bfd_size_type address;
3359
3360       /* addend for relocation value.  */
3361       bfd_vma addend;
3362
3363       /* Pointer to how to perform the required relocation.  */
3364       reloc_howto_type *howto;
3365
3366     }
3367     arelent;
3368
3369   *Description*
3370Here is a description of each of the fields within an 'arelent':
3371
3372   * 'sym_ptr_ptr'
3373   The symbol table pointer points to a pointer to the symbol associated
3374with the relocation request.  It is the pointer into the table returned
3375by the back end's 'canonicalize_symtab' action.  *Note Symbols::.  The
3376symbol is referenced through a pointer to a pointer so that tools like
3377the linker can fix up all the symbols of the same name by modifying only
3378one pointer.  The relocation routine looks in the symbol and uses the
3379base of the section the symbol is attached to and the value of the
3380symbol as the initial relocation offset.  If the symbol pointer is zero,
3381then the section provided is looked up.
3382
3383   * 'address'
3384   The 'address' field gives the offset in bytes from the base of the
3385section data which owns the relocation record to the first byte of
3386relocatable information.  The actual data relocated will be relative to
3387this point; for example, a relocation type which modifies the bottom two
3388bytes of a four byte word would not touch the first byte pointed to in a
3389big endian world.
3390
3391   * 'addend'
3392   The 'addend' is a value provided by the back end to be added (!)  to
3393the relocation offset.  Its interpretation is dependent upon the howto.
3394For example, on the 68k the code:
3395
3396             char foo[];
3397             main()
3398                     {
3399                     return foo[0x12345678];
3400                     }
3401
3402   Could be compiled into:
3403
3404             linkw fp,#-4
3405             moveb @#12345678,d0
3406             extbl d0
3407             unlk fp
3408             rts
3409
3410   This could create a reloc pointing to 'foo', but leave the offset in
3411the data, something like:
3412
3413     RELOCATION RECORDS FOR [.text]:
3414     offset   type      value
3415     00000006 32        _foo
3416
3417     00000000 4e56 fffc          ; linkw fp,#-4
3418     00000004 1039 1234 5678     ; moveb @#12345678,d0
3419     0000000a 49c0               ; extbl d0
3420     0000000c 4e5e               ; unlk fp
3421     0000000e 4e75               ; rts
3422
3423   Using coff and an 88k, some instructions don't have enough space in
3424them to represent the full address range, and pointers have to be loaded
3425in two parts.  So you'd get something like:
3426
3427             or.u     r13,r0,hi16(_foo+0x12345678)
3428             ld.b     r2,r13,lo16(_foo+0x12345678)
3429             jmp      r1
3430
3431   This should create two relocs, both pointing to '_foo', and with
34320x12340000 in their addend field.  The data would consist of:
3433
3434     RELOCATION RECORDS FOR [.text]:
3435     offset   type      value
3436     00000002 HVRT16    _foo+0x12340000
3437     00000006 LVRT16    _foo+0x12340000
3438
3439     00000000 5da05678           ; or.u r13,r0,0x5678
3440     00000004 1c4d5678           ; ld.b r2,r13,0x5678
3441     00000008 f400c001           ; jmp r1
3442
3443   The relocation routine digs out the value from the data, adds it to
3444the addend to get the original offset, and then adds the value of
3445'_foo'.  Note that all 32 bits have to be kept around somewhere, to cope
3446with carry from bit 15 to bit 16.
3447
3448   One further example is the sparc and the a.out format.  The sparc has
3449a similar problem to the 88k, in that some instructions don't have room
3450for an entire offset, but on the sparc the parts are created in odd
3451sized lumps.  The designers of the a.out format chose to not use the
3452data within the section for storing part of the offset; all the offset
3453is kept within the reloc.  Anything in the data should be ignored.
3454
3455             save %sp,-112,%sp
3456             sethi %hi(_foo+0x12345678),%g2
3457             ldsb [%g2+%lo(_foo+0x12345678)],%i0
3458             ret
3459             restore
3460
3461   Both relocs contain a pointer to 'foo', and the offsets contain junk.
3462
3463     RELOCATION RECORDS FOR [.text]:
3464     offset   type      value
3465     00000004 HI22      _foo+0x12345678
3466     00000008 LO10      _foo+0x12345678
3467
3468     00000000 9de3bf90     ; save %sp,-112,%sp
3469     00000004 05000000     ; sethi %hi(_foo+0),%g2
3470     00000008 f048a000     ; ldsb [%g2+%lo(_foo+0)],%i0
3471     0000000c 81c7e008     ; ret
3472     00000010 81e80000     ; restore
3473
3474   * 'howto'
3475   The 'howto' field can be imagined as a relocation instruction.  It is
3476a pointer to a structure which contains information on what to do with
3477all of the other information in the reloc record and data section.  A
3478back end would normally have a relocation instruction set and turn
3479relocations into pointers to the correct structure on input - but it
3480would be possible to create each howto field on demand.
3481
34822.10.1.1 'enum complain_overflow'
3483.................................
3484
3485Indicates what sort of overflow checking should be done when performing
3486a relocation.
3487
3488
3489     enum complain_overflow
3490     {
3491       /* Do not complain on overflow.  */
3492       complain_overflow_dont,
3493
3494       /* Complain if the value overflows when considered as a signed
3495          number one bit larger than the field.  ie. A bitfield of N bits
3496          is allowed to represent -2**n to 2**n-1.  */
3497       complain_overflow_bitfield,
3498
3499       /* Complain if the value overflows when considered as a signed
3500          number.  */
3501       complain_overflow_signed,
3502
3503       /* Complain if the value overflows when considered as an
3504          unsigned number.  */
3505       complain_overflow_unsigned
3506     };
3507
35082.10.1.2 'reloc_howto_type'
3509...........................
3510
3511The 'reloc_howto_type' is a structure which contains all the information
3512that libbfd needs to know to tie up a back end's data.
3513
3514     struct reloc_howto_struct
3515     {
3516       /* The type field has mainly a documentary use - the back end can
3517          do what it wants with it, though normally the back end's idea of
3518          an external reloc number is stored in this field.  */
3519       unsigned int type;
3520
3521       /* The encoded size of the item to be relocated.  This is *not* a
3522          power-of-two measure.  Use bfd_get_reloc_size to find the size
3523          of the item in bytes.  */
3524       unsigned int size:3;
3525
3526       /* The number of bits in the field to be relocated.  This is used
3527          when doing overflow checking.  */
3528       unsigned int bitsize:7;
3529
3530       /* The value the final relocation is shifted right by.  This drops
3531          unwanted data from the relocation.  */
3532       unsigned int rightshift:6;
3533
3534       /* The bit position of the reloc value in the destination.
3535          The relocated value is left shifted by this amount.  */
3536       unsigned int bitpos:6;
3537
3538       /* What type of overflow error should be checked for when
3539          relocating.  */
3540       ENUM_BITFIELD (complain_overflow) complain_on_overflow:2;
3541
3542       /* The relocation value should be negated before applying.  */
3543       unsigned int negate:1;
3544
3545       /* The relocation is relative to the item being relocated.  */
3546       unsigned int pc_relative:1;
3547
3548       /* Some formats record a relocation addend in the section contents
3549          rather than with the relocation.  For ELF formats this is the
3550          distinction between USE_REL and USE_RELA (though the code checks
3551          for USE_REL == 1/0).  The value of this field is TRUE if the
3552          addend is recorded with the section contents; when performing a
3553          partial link (ld -r) the section contents (the data) will be
3554          modified.  The value of this field is FALSE if addends are
3555          recorded with the relocation (in arelent.addend); when performing
3556          a partial link the relocation will be modified.
3557          All relocations for all ELF USE_RELA targets should set this field
3558          to FALSE (values of TRUE should be looked on with suspicion).
3559          However, the converse is not true: not all relocations of all ELF
3560          USE_REL targets set this field to TRUE.  Why this is so is peculiar
3561          to each particular target.  For relocs that aren't used in partial
3562          links (e.g. GOT stuff) it doesn't matter what this is set to.  */
3563       unsigned int partial_inplace:1;
3564
3565       /* When some formats create PC relative instructions, they leave
3566          the value of the pc of the place being relocated in the offset
3567          slot of the instruction, so that a PC relative relocation can
3568          be made just by adding in an ordinary offset (e.g., sun3 a.out).
3569          Some formats leave the displacement part of an instruction
3570          empty (e.g., ELF); this flag signals the fact.  */
3571       unsigned int pcrel_offset:1;
3572
3573       /* src_mask selects the part of the instruction (or data) to be used
3574          in the relocation sum.  If the target relocations don't have an
3575          addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
3576          dst_mask to extract the addend from the section contents.  If
3577          relocations do have an addend in the reloc, eg. ELF USE_RELA, this
3578          field should normally be zero.  Non-zero values for ELF USE_RELA
3579          targets should be viewed with suspicion as normally the value in
3580          the dst_mask part of the section contents should be ignored.  */
3581       bfd_vma src_mask;
3582
3583       /* dst_mask selects which parts of the instruction (or data) are
3584          replaced with a relocated value.  */
3585       bfd_vma dst_mask;
3586
3587       /* If this field is non null, then the supplied function is
3588          called rather than the normal function.  This allows really
3589          strange relocation methods to be accommodated.  */
3590       bfd_reloc_status_type (*special_function)
3591         (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
3592          bfd *, char **);
3593
3594       /* The textual name of the relocation type.  */
3595       const char *name;
3596     };
3597
3598
35992.10.1.3 'The HOWTO Macro'
3600..........................
3601
3602*Description*
3603The HOWTO macro fills in a reloc_howto_type (a typedef for const struct
3604reloc_howto_struct).
3605     #define HOWTO(type, right, size, bits, pcrel, left, ovf, func, name,   \
3606                   inplace, src_mask, dst_mask, pcrel_off)                  \
3607       { (unsigned) type, size < 0 ? -size : size, bits, right, left, ovf,  \
3608         size < 0, pcrel, inplace, pcrel_off, src_mask, dst_mask, func, name }
3609
3610   *Description*
3611This is used to fill in an empty howto entry in an array.
3612     #define EMPTY_HOWTO(C) \
3613       HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
3614              NULL, FALSE, 0, 0, FALSE)
3615
3616
36172.10.1.4 'bfd_get_reloc_size'
3618.............................
3619
3620*Synopsis*
3621     unsigned int bfd_get_reloc_size (reloc_howto_type *);
3622   *Description*
3623For a reloc_howto_type that operates on a fixed number of bytes, this
3624returns the number of bytes operated on.
3625
36262.10.1.5 'arelent_chain'
3627........................
3628
3629*Description*
3630How relocs are tied together in an 'asection':
3631     typedef struct relent_chain
3632     {
3633       arelent relent;
3634       struct relent_chain *next;
3635     }
3636     arelent_chain;
3637
3638
36392.10.1.6 'bfd_check_overflow'
3640.............................
3641
3642*Synopsis*
3643     bfd_reloc_status_type bfd_check_overflow
3644        (enum complain_overflow how,
3645         unsigned int bitsize,
3646         unsigned int rightshift,
3647         unsigned int addrsize,
3648         bfd_vma relocation);
3649   *Description*
3650Perform overflow checking on RELOCATION which has BITSIZE significant
3651bits and will be shifted right by RIGHTSHIFT bits, on a machine with
3652addresses containing ADDRSIZE significant bits.  The result is either of
3653'bfd_reloc_ok' or 'bfd_reloc_overflow'.
3654
36552.10.1.7 'bfd_reloc_offset_in_range'
3656....................................
3657
3658*Synopsis*
3659     bfd_boolean bfd_reloc_offset_in_range
3660        (reloc_howto_type *howto,
3661         bfd *abfd,
3662         asection *section,
3663         bfd_size_type offset);
3664   *Description*
3665Returns TRUE if the reloc described by HOWTO can be applied at OFFSET
3666octets in SECTION.
3667
36682.10.1.8 'bfd_perform_relocation'
3669.................................
3670
3671*Synopsis*
3672     bfd_reloc_status_type bfd_perform_relocation
3673        (bfd *abfd,
3674         arelent *reloc_entry,
3675         void *data,
3676         asection *input_section,
3677         bfd *output_bfd,
3678         char **error_message);
3679   *Description*
3680If OUTPUT_BFD is supplied to this function, the generated image will be
3681relocatable; the relocations are copied to the output file after they
3682have been changed to reflect the new state of the world.  There are two
3683ways of reflecting the results of partial linkage in an output file: by
3684modifying the output data in place, and by modifying the relocation
3685record.  Some native formats (e.g., basic a.out and basic coff) have no
3686way of specifying an addend in the relocation type, so the addend has to
3687go in the output data.  This is no big deal since in these formats the
3688output data slot will always be big enough for the addend.  Complex
3689reloc types with addends were invented to solve just this problem.  The
3690ERROR_MESSAGE argument is set to an error message if this return
3691'bfd_reloc_dangerous'.
3692
36932.10.1.9 'bfd_install_relocation'
3694.................................
3695
3696*Synopsis*
3697     bfd_reloc_status_type bfd_install_relocation
3698        (bfd *abfd,
3699         arelent *reloc_entry,
3700         void *data, bfd_vma data_start,
3701         asection *input_section,
3702         char **error_message);
3703   *Description*
3704This looks remarkably like 'bfd_perform_relocation', except it does not
3705expect that the section contents have been filled in.  I.e., it's
3706suitable for use when creating, rather than applying a relocation.
3707
3708   For now, this function should be considered reserved for the
3709assembler.
3710
3711
3712File: bfd.info,  Node: howto manager,  Prev: typedef arelent,  Up: Relocations
3713
37142.10.2 The howto manager
3715------------------------
3716
3717When an application wants to create a relocation, but doesn't know what
3718the target machine might call it, it can find out by using this bit of
3719code.
3720
37212.10.2.1 'bfd_reloc_code_type'
3722..............................
3723
3724*Description*
3725The insides of a reloc code.  The idea is that, eventually, there will
3726be one enumerator for every type of relocation we ever do.  Pass one of
3727these values to 'bfd_reloc_type_lookup', and it'll return a howto
3728pointer.
3729
3730   This does mean that the application must determine the correct
3731enumerator value; you can't get a howto pointer from a random set of
3732attributes.
3733
3734   Here are the possible values for 'enum bfd_reloc_code_real':
3735
3736 -- : BFD_RELOC_64
3737 -- : BFD_RELOC_32
3738 -- : BFD_RELOC_26
3739 -- : BFD_RELOC_24
3740 -- : BFD_RELOC_16
3741 -- : BFD_RELOC_14
3742 -- : BFD_RELOC_8
3743     Basic absolute relocations of N bits.
3744 -- : BFD_RELOC_64_PCREL
3745 -- : BFD_RELOC_32_PCREL
3746 -- : BFD_RELOC_24_PCREL
3747 -- : BFD_RELOC_16_PCREL
3748 -- : BFD_RELOC_12_PCREL
3749 -- : BFD_RELOC_8_PCREL
3750     PC-relative relocations.  Sometimes these are relative to the
3751     address of the relocation itself; sometimes they are relative to
3752     the start of the section containing the relocation.  It depends on
3753     the specific target.
3754 -- : BFD_RELOC_32_SECREL
3755     Section relative relocations.  Some targets need this for DWARF2.
3756 -- : BFD_RELOC_32_GOT_PCREL
3757 -- : BFD_RELOC_16_GOT_PCREL
3758 -- : BFD_RELOC_8_GOT_PCREL
3759 -- : BFD_RELOC_32_GOTOFF
3760 -- : BFD_RELOC_16_GOTOFF
3761 -- : BFD_RELOC_LO16_GOTOFF
3762 -- : BFD_RELOC_HI16_GOTOFF
3763 -- : BFD_RELOC_HI16_S_GOTOFF
3764 -- : BFD_RELOC_8_GOTOFF
3765 -- : BFD_RELOC_64_PLT_PCREL
3766 -- : BFD_RELOC_32_PLT_PCREL
3767 -- : BFD_RELOC_24_PLT_PCREL
3768 -- : BFD_RELOC_16_PLT_PCREL
3769 -- : BFD_RELOC_8_PLT_PCREL
3770 -- : BFD_RELOC_64_PLTOFF
3771 -- : BFD_RELOC_32_PLTOFF
3772 -- : BFD_RELOC_16_PLTOFF
3773 -- : BFD_RELOC_LO16_PLTOFF
3774 -- : BFD_RELOC_HI16_PLTOFF
3775 -- : BFD_RELOC_HI16_S_PLTOFF
3776 -- : BFD_RELOC_8_PLTOFF
3777     For ELF.
3778 -- : BFD_RELOC_SIZE32
3779 -- : BFD_RELOC_SIZE64
3780     Size relocations.
3781 -- : BFD_RELOC_68K_GLOB_DAT
3782 -- : BFD_RELOC_68K_JMP_SLOT
3783 -- : BFD_RELOC_68K_RELATIVE
3784 -- : BFD_RELOC_68K_TLS_GD32
3785 -- : BFD_RELOC_68K_TLS_GD16
3786 -- : BFD_RELOC_68K_TLS_GD8
3787 -- : BFD_RELOC_68K_TLS_LDM32
3788 -- : BFD_RELOC_68K_TLS_LDM16
3789 -- : BFD_RELOC_68K_TLS_LDM8
3790 -- : BFD_RELOC_68K_TLS_LDO32
3791 -- : BFD_RELOC_68K_TLS_LDO16
3792 -- : BFD_RELOC_68K_TLS_LDO8
3793 -- : BFD_RELOC_68K_TLS_IE32
3794 -- : BFD_RELOC_68K_TLS_IE16
3795 -- : BFD_RELOC_68K_TLS_IE8
3796 -- : BFD_RELOC_68K_TLS_LE32
3797 -- : BFD_RELOC_68K_TLS_LE16
3798 -- : BFD_RELOC_68K_TLS_LE8
3799     Relocations used by 68K ELF.
3800 -- : BFD_RELOC_32_BASEREL
3801 -- : BFD_RELOC_16_BASEREL
3802 -- : BFD_RELOC_LO16_BASEREL
3803 -- : BFD_RELOC_HI16_BASEREL
3804 -- : BFD_RELOC_HI16_S_BASEREL
3805 -- : BFD_RELOC_8_BASEREL
3806 -- : BFD_RELOC_RVA
3807     Linkage-table relative.
3808 -- : BFD_RELOC_8_FFnn
3809     Absolute 8-bit relocation, but used to form an address like 0xFFnn.
3810 -- : BFD_RELOC_32_PCREL_S2
3811 -- : BFD_RELOC_16_PCREL_S2
3812 -- : BFD_RELOC_23_PCREL_S2
3813     These PC-relative relocations are stored as word displacements -
3814     i.e., byte displacements shifted right two bits.  The 30-bit word
3815     displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the
3816     SPARC. (SPARC tools generally refer to this as <<WDISP30>>.)  The
3817     signed 16-bit displacement is used on the MIPS, and the 23-bit
3818     displacement is used on the Alpha.
3819 -- : BFD_RELOC_HI22
3820 -- : BFD_RELOC_LO10
3821     High 22 bits and low 10 bits of 32-bit value, placed into lower
3822     bits of the target word.  These are used on the SPARC.
3823 -- : BFD_RELOC_GPREL16
3824 -- : BFD_RELOC_GPREL32
3825     For systems that allocate a Global Pointer register, these are
3826     displacements off that register.  These relocation types are
3827     handled specially, because the value the register will have is
3828     decided relatively late.
3829 -- : BFD_RELOC_NONE
3830 -- : BFD_RELOC_SPARC_WDISP22
3831 -- : BFD_RELOC_SPARC22
3832 -- : BFD_RELOC_SPARC13
3833 -- : BFD_RELOC_SPARC_GOT10
3834 -- : BFD_RELOC_SPARC_GOT13
3835 -- : BFD_RELOC_SPARC_GOT22
3836 -- : BFD_RELOC_SPARC_PC10
3837 -- : BFD_RELOC_SPARC_PC22
3838 -- : BFD_RELOC_SPARC_WPLT30
3839 -- : BFD_RELOC_SPARC_COPY
3840 -- : BFD_RELOC_SPARC_GLOB_DAT
3841 -- : BFD_RELOC_SPARC_JMP_SLOT
3842 -- : BFD_RELOC_SPARC_RELATIVE
3843 -- : BFD_RELOC_SPARC_UA16
3844 -- : BFD_RELOC_SPARC_UA32
3845 -- : BFD_RELOC_SPARC_UA64
3846 -- : BFD_RELOC_SPARC_GOTDATA_HIX22
3847 -- : BFD_RELOC_SPARC_GOTDATA_LOX10
3848 -- : BFD_RELOC_SPARC_GOTDATA_OP_HIX22
3849 -- : BFD_RELOC_SPARC_GOTDATA_OP_LOX10
3850 -- : BFD_RELOC_SPARC_GOTDATA_OP
3851 -- : BFD_RELOC_SPARC_JMP_IREL
3852 -- : BFD_RELOC_SPARC_IRELATIVE
3853     SPARC ELF relocations.  There is probably some overlap with other
3854     relocation types already defined.
3855 -- : BFD_RELOC_SPARC_BASE13
3856 -- : BFD_RELOC_SPARC_BASE22
3857     I think these are specific to SPARC a.out (e.g., Sun 4).
3858 -- : BFD_RELOC_SPARC_64
3859 -- : BFD_RELOC_SPARC_10
3860 -- : BFD_RELOC_SPARC_11
3861 -- : BFD_RELOC_SPARC_OLO10
3862 -- : BFD_RELOC_SPARC_HH22
3863 -- : BFD_RELOC_SPARC_HM10
3864 -- : BFD_RELOC_SPARC_LM22
3865 -- : BFD_RELOC_SPARC_PC_HH22
3866 -- : BFD_RELOC_SPARC_PC_HM10
3867 -- : BFD_RELOC_SPARC_PC_LM22
3868 -- : BFD_RELOC_SPARC_WDISP16
3869 -- : BFD_RELOC_SPARC_WDISP19
3870 -- : BFD_RELOC_SPARC_7
3871 -- : BFD_RELOC_SPARC_6
3872 -- : BFD_RELOC_SPARC_5
3873 -- : BFD_RELOC_SPARC_DISP64
3874 -- : BFD_RELOC_SPARC_PLT32
3875 -- : BFD_RELOC_SPARC_PLT64
3876 -- : BFD_RELOC_SPARC_HIX22
3877 -- : BFD_RELOC_SPARC_LOX10
3878 -- : BFD_RELOC_SPARC_H44
3879 -- : BFD_RELOC_SPARC_M44
3880 -- : BFD_RELOC_SPARC_L44
3881 -- : BFD_RELOC_SPARC_REGISTER
3882 -- : BFD_RELOC_SPARC_H34
3883 -- : BFD_RELOC_SPARC_SIZE32
3884 -- : BFD_RELOC_SPARC_SIZE64
3885 -- : BFD_RELOC_SPARC_WDISP10
3886     SPARC64 relocations
3887 -- : BFD_RELOC_SPARC_REV32
3888     SPARC little endian relocation
3889 -- : BFD_RELOC_SPARC_TLS_GD_HI22
3890 -- : BFD_RELOC_SPARC_TLS_GD_LO10
3891 -- : BFD_RELOC_SPARC_TLS_GD_ADD
3892 -- : BFD_RELOC_SPARC_TLS_GD_CALL
3893 -- : BFD_RELOC_SPARC_TLS_LDM_HI22
3894 -- : BFD_RELOC_SPARC_TLS_LDM_LO10
3895 -- : BFD_RELOC_SPARC_TLS_LDM_ADD
3896 -- : BFD_RELOC_SPARC_TLS_LDM_CALL
3897 -- : BFD_RELOC_SPARC_TLS_LDO_HIX22
3898 -- : BFD_RELOC_SPARC_TLS_LDO_LOX10
3899 -- : BFD_RELOC_SPARC_TLS_LDO_ADD
3900 -- : BFD_RELOC_SPARC_TLS_IE_HI22
3901 -- : BFD_RELOC_SPARC_TLS_IE_LO10
3902 -- : BFD_RELOC_SPARC_TLS_IE_LD
3903 -- : BFD_RELOC_SPARC_TLS_IE_LDX
3904 -- : BFD_RELOC_SPARC_TLS_IE_ADD
3905 -- : BFD_RELOC_SPARC_TLS_LE_HIX22
3906 -- : BFD_RELOC_SPARC_TLS_LE_LOX10
3907 -- : BFD_RELOC_SPARC_TLS_DTPMOD32
3908 -- : BFD_RELOC_SPARC_TLS_DTPMOD64
3909 -- : BFD_RELOC_SPARC_TLS_DTPOFF32
3910 -- : BFD_RELOC_SPARC_TLS_DTPOFF64
3911 -- : BFD_RELOC_SPARC_TLS_TPOFF32
3912 -- : BFD_RELOC_SPARC_TLS_TPOFF64
3913     SPARC TLS relocations
3914 -- : BFD_RELOC_SPU_IMM7
3915 -- : BFD_RELOC_SPU_IMM8
3916 -- : BFD_RELOC_SPU_IMM10
3917 -- : BFD_RELOC_SPU_IMM10W
3918 -- : BFD_RELOC_SPU_IMM16
3919 -- : BFD_RELOC_SPU_IMM16W
3920 -- : BFD_RELOC_SPU_IMM18
3921 -- : BFD_RELOC_SPU_PCREL9a
3922 -- : BFD_RELOC_SPU_PCREL9b
3923 -- : BFD_RELOC_SPU_PCREL16
3924 -- : BFD_RELOC_SPU_LO16
3925 -- : BFD_RELOC_SPU_HI16
3926 -- : BFD_RELOC_SPU_PPU32
3927 -- : BFD_RELOC_SPU_PPU64
3928 -- : BFD_RELOC_SPU_ADD_PIC
3929     SPU Relocations.
3930 -- : BFD_RELOC_ALPHA_GPDISP_HI16
3931     Alpha ECOFF and ELF relocations.  Some of these treat the symbol or
3932     "addend" in some special way.  For GPDISP_HI16 ("gpdisp")
3933     relocations, the symbol is ignored when writing; when reading, it
3934     will be the absolute section symbol.  The addend is the
3935     displacement in bytes of the "lda" instruction from the "ldah"
3936     instruction (which is at the address of this reloc).
3937 -- : BFD_RELOC_ALPHA_GPDISP_LO16
3938     For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
3939     with GPDISP_HI16 relocs.  The addend is ignored when writing the
3940     relocations out, and is filled in with the file's GP value on
3941     reading, for convenience.
3942 -- : BFD_RELOC_ALPHA_GPDISP
3943     The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
3944     relocation except that there is no accompanying GPDISP_LO16
3945     relocation.
3946 -- : BFD_RELOC_ALPHA_LITERAL
3947 -- : BFD_RELOC_ALPHA_ELF_LITERAL
3948 -- : BFD_RELOC_ALPHA_LITUSE
3949     The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
3950     the assembler turns it into a LDQ instruction to load the address
3951     of the symbol, and then fills in a register in the real
3952     instruction.
3953
3954     The LITERAL reloc, at the LDQ instruction, refers to the .lita
3955     section symbol.  The addend is ignored when writing, but is filled
3956     in with the file's GP value on reading, for convenience, as with
3957     the GPDISP_LO16 reloc.
3958
3959     The ELF_LITERAL reloc is somewhere between 16_GOTOFF and
3960     GPDISP_LO16.  It should refer to the symbol to be referenced, as
3961     with 16_GOTOFF, but it generates output not based on the position
3962     within the .got section, but relative to the GP value chosen for
3963     the file during the final link stage.
3964
3965     The LITUSE reloc, on the instruction using the loaded address,
3966     gives information to the linker that it might be able to use to
3967     optimize away some literal section references.  The symbol is
3968     ignored (read as the absolute section symbol), and the "addend"
3969     indicates the type of instruction using the register: 1 - "memory"
3970     fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target of
3971     branch)
3972 -- : BFD_RELOC_ALPHA_HINT
3973     The HINT relocation indicates a value that should be filled into
3974     the "hint" field of a jmp/jsr/ret instruction, for possible branch-
3975     prediction logic which may be provided on some processors.
3976 -- : BFD_RELOC_ALPHA_LINKAGE
3977     The LINKAGE relocation outputs a linkage pair in the object file,
3978     which is filled by the linker.
3979 -- : BFD_RELOC_ALPHA_CODEADDR
3980     The CODEADDR relocation outputs a STO_CA in the object file, which
3981     is filled by the linker.
3982 -- : BFD_RELOC_ALPHA_GPREL_HI16
3983 -- : BFD_RELOC_ALPHA_GPREL_LO16
3984     The GPREL_HI/LO relocations together form a 32-bit offset from the
3985     GP register.
3986 -- : BFD_RELOC_ALPHA_BRSGP
3987     Like BFD_RELOC_23_PCREL_S2, except that the source and target must
3988     share a common GP, and the target address is adjusted for
3989     STO_ALPHA_STD_GPLOAD.
3990 -- : BFD_RELOC_ALPHA_NOP
3991     The NOP relocation outputs a NOP if the longword displacement
3992     between two procedure entry points is < 2^21.
3993 -- : BFD_RELOC_ALPHA_BSR
3994     The BSR relocation outputs a BSR if the longword displacement
3995     between two procedure entry points is < 2^21.
3996 -- : BFD_RELOC_ALPHA_LDA
3997     The LDA relocation outputs a LDA if the longword displacement
3998     between two procedure entry points is < 2^16.
3999 -- : BFD_RELOC_ALPHA_BOH
4000     The BOH relocation outputs a BSR if the longword displacement
4001     between two procedure entry points is < 2^21, or else a hint.
4002 -- : BFD_RELOC_ALPHA_TLSGD
4003 -- : BFD_RELOC_ALPHA_TLSLDM
4004 -- : BFD_RELOC_ALPHA_DTPMOD64
4005 -- : BFD_RELOC_ALPHA_GOTDTPREL16
4006 -- : BFD_RELOC_ALPHA_DTPREL64
4007 -- : BFD_RELOC_ALPHA_DTPREL_HI16
4008 -- : BFD_RELOC_ALPHA_DTPREL_LO16
4009 -- : BFD_RELOC_ALPHA_DTPREL16
4010 -- : BFD_RELOC_ALPHA_GOTTPREL16
4011 -- : BFD_RELOC_ALPHA_TPREL64
4012 -- : BFD_RELOC_ALPHA_TPREL_HI16
4013 -- : BFD_RELOC_ALPHA_TPREL_LO16
4014 -- : BFD_RELOC_ALPHA_TPREL16
4015     Alpha thread-local storage relocations.
4016 -- : BFD_RELOC_MIPS_JMP
4017 -- : BFD_RELOC_MICROMIPS_JMP
4018     The MIPS jump instruction.
4019 -- : BFD_RELOC_MIPS16_JMP
4020     The MIPS16 jump instruction.
4021 -- : BFD_RELOC_MIPS16_GPREL
4022     MIPS16 GP relative reloc.
4023 -- : BFD_RELOC_HI16
4024     High 16 bits of 32-bit value; simple reloc.
4025 -- : BFD_RELOC_HI16_S
4026     High 16 bits of 32-bit value but the low 16 bits will be sign
4027     extended and added to form the final result.  If the low 16 bits
4028     form a negative number, we need to add one to the high value to
4029     compensate for the borrow when the low bits are added.
4030 -- : BFD_RELOC_LO16
4031     Low 16 bits.
4032 -- : BFD_RELOC_HI16_PCREL
4033     High 16 bits of 32-bit pc-relative value
4034 -- : BFD_RELOC_HI16_S_PCREL
4035     High 16 bits of 32-bit pc-relative value, adjusted
4036 -- : BFD_RELOC_LO16_PCREL
4037     Low 16 bits of pc-relative value
4038 -- : BFD_RELOC_MIPS16_GOT16
4039 -- : BFD_RELOC_MIPS16_CALL16
4040     Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of
4041     16-bit immediate fields
4042 -- : BFD_RELOC_MIPS16_HI16
4043     MIPS16 high 16 bits of 32-bit value.
4044 -- : BFD_RELOC_MIPS16_HI16_S
4045     MIPS16 high 16 bits of 32-bit value but the low 16 bits will be
4046     sign extended and added to form the final result.  If the low 16
4047     bits form a negative number, we need to add one to the high value
4048     to compensate for the borrow when the low bits are added.
4049 -- : BFD_RELOC_MIPS16_LO16
4050     MIPS16 low 16 bits.
4051 -- : BFD_RELOC_MIPS16_TLS_GD
4052 -- : BFD_RELOC_MIPS16_TLS_LDM
4053 -- : BFD_RELOC_MIPS16_TLS_DTPREL_HI16
4054 -- : BFD_RELOC_MIPS16_TLS_DTPREL_LO16
4055 -- : BFD_RELOC_MIPS16_TLS_GOTTPREL
4056 -- : BFD_RELOC_MIPS16_TLS_TPREL_HI16
4057 -- : BFD_RELOC_MIPS16_TLS_TPREL_LO16
4058     MIPS16 TLS relocations
4059 -- : BFD_RELOC_MIPS_LITERAL
4060 -- : BFD_RELOC_MICROMIPS_LITERAL
4061     Relocation against a MIPS literal section.
4062 -- : BFD_RELOC_MICROMIPS_7_PCREL_S1
4063 -- : BFD_RELOC_MICROMIPS_10_PCREL_S1
4064 -- : BFD_RELOC_MICROMIPS_16_PCREL_S1
4065     microMIPS PC-relative relocations.
4066 -- : BFD_RELOC_MIPS16_16_PCREL_S1
4067     MIPS16 PC-relative relocation.
4068 -- : BFD_RELOC_MIPS_21_PCREL_S2
4069 -- : BFD_RELOC_MIPS_26_PCREL_S2
4070 -- : BFD_RELOC_MIPS_18_PCREL_S3
4071 -- : BFD_RELOC_MIPS_19_PCREL_S2
4072     MIPS PC-relative relocations.
4073 -- : BFD_RELOC_MICROMIPS_GPREL16
4074 -- : BFD_RELOC_MICROMIPS_HI16
4075 -- : BFD_RELOC_MICROMIPS_HI16_S
4076 -- : BFD_RELOC_MICROMIPS_LO16
4077     microMIPS versions of generic BFD relocs.
4078 -- : BFD_RELOC_MIPS_GOT16
4079 -- : BFD_RELOC_MICROMIPS_GOT16
4080 -- : BFD_RELOC_MIPS_CALL16
4081 -- : BFD_RELOC_MICROMIPS_CALL16
4082 -- : BFD_RELOC_MIPS_GOT_HI16
4083 -- : BFD_RELOC_MICROMIPS_GOT_HI16
4084 -- : BFD_RELOC_MIPS_GOT_LO16
4085 -- : BFD_RELOC_MICROMIPS_GOT_LO16
4086 -- : BFD_RELOC_MIPS_CALL_HI16
4087 -- : BFD_RELOC_MICROMIPS_CALL_HI16
4088 -- : BFD_RELOC_MIPS_CALL_LO16
4089 -- : BFD_RELOC_MICROMIPS_CALL_LO16
4090 -- : BFD_RELOC_MIPS_SUB
4091 -- : BFD_RELOC_MICROMIPS_SUB
4092 -- : BFD_RELOC_MIPS_GOT_PAGE
4093 -- : BFD_RELOC_MICROMIPS_GOT_PAGE
4094 -- : BFD_RELOC_MIPS_GOT_OFST
4095 -- : BFD_RELOC_MICROMIPS_GOT_OFST
4096 -- : BFD_RELOC_MIPS_GOT_DISP
4097 -- : BFD_RELOC_MICROMIPS_GOT_DISP
4098 -- : BFD_RELOC_MIPS_SHIFT5
4099 -- : BFD_RELOC_MIPS_SHIFT6
4100 -- : BFD_RELOC_MIPS_INSERT_A
4101 -- : BFD_RELOC_MIPS_INSERT_B
4102 -- : BFD_RELOC_MIPS_DELETE
4103 -- : BFD_RELOC_MIPS_HIGHEST
4104 -- : BFD_RELOC_MICROMIPS_HIGHEST
4105 -- : BFD_RELOC_MIPS_HIGHER
4106 -- : BFD_RELOC_MICROMIPS_HIGHER
4107 -- : BFD_RELOC_MIPS_SCN_DISP
4108 -- : BFD_RELOC_MICROMIPS_SCN_DISP
4109 -- : BFD_RELOC_MIPS_REL16
4110 -- : BFD_RELOC_MIPS_RELGOT
4111 -- : BFD_RELOC_MIPS_JALR
4112 -- : BFD_RELOC_MICROMIPS_JALR
4113 -- : BFD_RELOC_MIPS_TLS_DTPMOD32
4114 -- : BFD_RELOC_MIPS_TLS_DTPREL32
4115 -- : BFD_RELOC_MIPS_TLS_DTPMOD64
4116 -- : BFD_RELOC_MIPS_TLS_DTPREL64
4117 -- : BFD_RELOC_MIPS_TLS_GD
4118 -- : BFD_RELOC_MICROMIPS_TLS_GD
4119 -- : BFD_RELOC_MIPS_TLS_LDM
4120 -- : BFD_RELOC_MICROMIPS_TLS_LDM
4121 -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16
4122 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16
4123 -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16
4124 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16
4125 -- : BFD_RELOC_MIPS_TLS_GOTTPREL
4126 -- : BFD_RELOC_MICROMIPS_TLS_GOTTPREL
4127 -- : BFD_RELOC_MIPS_TLS_TPREL32
4128 -- : BFD_RELOC_MIPS_TLS_TPREL64
4129 -- : BFD_RELOC_MIPS_TLS_TPREL_HI16
4130 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_HI16
4131 -- : BFD_RELOC_MIPS_TLS_TPREL_LO16
4132 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_LO16
4133 -- : BFD_RELOC_MIPS_EH
4134     MIPS ELF relocations.
4135 -- : BFD_RELOC_MIPS_COPY
4136 -- : BFD_RELOC_MIPS_JUMP_SLOT
4137     MIPS ELF relocations (VxWorks and PLT extensions).
4138 -- : BFD_RELOC_MOXIE_10_PCREL
4139     Moxie ELF relocations.
4140 -- : BFD_RELOC_FT32_10
4141 -- : BFD_RELOC_FT32_20
4142 -- : BFD_RELOC_FT32_17
4143 -- : BFD_RELOC_FT32_18
4144 -- : BFD_RELOC_FT32_RELAX
4145 -- : BFD_RELOC_FT32_SC0
4146 -- : BFD_RELOC_FT32_SC1
4147 -- : BFD_RELOC_FT32_15
4148 -- : BFD_RELOC_FT32_DIFF32
4149     FT32 ELF relocations.
4150 -- : BFD_RELOC_FRV_LABEL16
4151 -- : BFD_RELOC_FRV_LABEL24
4152 -- : BFD_RELOC_FRV_LO16
4153 -- : BFD_RELOC_FRV_HI16
4154 -- : BFD_RELOC_FRV_GPREL12
4155 -- : BFD_RELOC_FRV_GPRELU12
4156 -- : BFD_RELOC_FRV_GPREL32
4157 -- : BFD_RELOC_FRV_GPRELHI
4158 -- : BFD_RELOC_FRV_GPRELLO
4159 -- : BFD_RELOC_FRV_GOT12
4160 -- : BFD_RELOC_FRV_GOTHI
4161 -- : BFD_RELOC_FRV_GOTLO
4162 -- : BFD_RELOC_FRV_FUNCDESC
4163 -- : BFD_RELOC_FRV_FUNCDESC_GOT12
4164 -- : BFD_RELOC_FRV_FUNCDESC_GOTHI
4165 -- : BFD_RELOC_FRV_FUNCDESC_GOTLO
4166 -- : BFD_RELOC_FRV_FUNCDESC_VALUE
4167 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12
4168 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI
4169 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO
4170 -- : BFD_RELOC_FRV_GOTOFF12
4171 -- : BFD_RELOC_FRV_GOTOFFHI
4172 -- : BFD_RELOC_FRV_GOTOFFLO
4173 -- : BFD_RELOC_FRV_GETTLSOFF
4174 -- : BFD_RELOC_FRV_TLSDESC_VALUE
4175 -- : BFD_RELOC_FRV_GOTTLSDESC12
4176 -- : BFD_RELOC_FRV_GOTTLSDESCHI
4177 -- : BFD_RELOC_FRV_GOTTLSDESCLO
4178 -- : BFD_RELOC_FRV_TLSMOFF12
4179 -- : BFD_RELOC_FRV_TLSMOFFHI
4180 -- : BFD_RELOC_FRV_TLSMOFFLO
4181 -- : BFD_RELOC_FRV_GOTTLSOFF12
4182 -- : BFD_RELOC_FRV_GOTTLSOFFHI
4183 -- : BFD_RELOC_FRV_GOTTLSOFFLO
4184 -- : BFD_RELOC_FRV_TLSOFF
4185 -- : BFD_RELOC_FRV_TLSDESC_RELAX
4186 -- : BFD_RELOC_FRV_GETTLSOFF_RELAX
4187 -- : BFD_RELOC_FRV_TLSOFF_RELAX
4188 -- : BFD_RELOC_FRV_TLSMOFF
4189     Fujitsu Frv Relocations.
4190 -- : BFD_RELOC_MN10300_GOTOFF24
4191     This is a 24bit GOT-relative reloc for the mn10300.
4192 -- : BFD_RELOC_MN10300_GOT32
4193     This is a 32bit GOT-relative reloc for the mn10300, offset by two
4194     bytes in the instruction.
4195 -- : BFD_RELOC_MN10300_GOT24
4196     This is a 24bit GOT-relative reloc for the mn10300, offset by two
4197     bytes in the instruction.
4198 -- : BFD_RELOC_MN10300_GOT16
4199     This is a 16bit GOT-relative reloc for the mn10300, offset by two
4200     bytes in the instruction.
4201 -- : BFD_RELOC_MN10300_COPY
4202     Copy symbol at runtime.
4203 -- : BFD_RELOC_MN10300_GLOB_DAT
4204     Create GOT entry.
4205 -- : BFD_RELOC_MN10300_JMP_SLOT
4206     Create PLT entry.
4207 -- : BFD_RELOC_MN10300_RELATIVE
4208     Adjust by program base.
4209 -- : BFD_RELOC_MN10300_SYM_DIFF
4210     Together with another reloc targeted at the same location, allows
4211     for a value that is the difference of two symbols in the same
4212     section.
4213 -- : BFD_RELOC_MN10300_ALIGN
4214     The addend of this reloc is an alignment power that must be
4215     honoured at the offset's location, regardless of linker relaxation.
4216 -- : BFD_RELOC_MN10300_TLS_GD
4217 -- : BFD_RELOC_MN10300_TLS_LD
4218 -- : BFD_RELOC_MN10300_TLS_LDO
4219 -- : BFD_RELOC_MN10300_TLS_GOTIE
4220 -- : BFD_RELOC_MN10300_TLS_IE
4221 -- : BFD_RELOC_MN10300_TLS_LE
4222 -- : BFD_RELOC_MN10300_TLS_DTPMOD
4223 -- : BFD_RELOC_MN10300_TLS_DTPOFF
4224 -- : BFD_RELOC_MN10300_TLS_TPOFF
4225     Various TLS-related relocations.
4226 -- : BFD_RELOC_MN10300_32_PCREL
4227     This is a 32bit pcrel reloc for the mn10300, offset by two bytes in
4228     the instruction.
4229 -- : BFD_RELOC_MN10300_16_PCREL
4230     This is a 16bit pcrel reloc for the mn10300, offset by two bytes in
4231     the instruction.
4232 -- : BFD_RELOC_386_GOT32
4233 -- : BFD_RELOC_386_PLT32
4234 -- : BFD_RELOC_386_COPY
4235 -- : BFD_RELOC_386_GLOB_DAT
4236 -- : BFD_RELOC_386_JUMP_SLOT
4237 -- : BFD_RELOC_386_RELATIVE
4238 -- : BFD_RELOC_386_GOTOFF
4239 -- : BFD_RELOC_386_GOTPC
4240 -- : BFD_RELOC_386_TLS_TPOFF
4241 -- : BFD_RELOC_386_TLS_IE
4242 -- : BFD_RELOC_386_TLS_GOTIE
4243 -- : BFD_RELOC_386_TLS_LE
4244 -- : BFD_RELOC_386_TLS_GD
4245 -- : BFD_RELOC_386_TLS_LDM
4246 -- : BFD_RELOC_386_TLS_LDO_32
4247 -- : BFD_RELOC_386_TLS_IE_32
4248 -- : BFD_RELOC_386_TLS_LE_32
4249 -- : BFD_RELOC_386_TLS_DTPMOD32
4250 -- : BFD_RELOC_386_TLS_DTPOFF32
4251 -- : BFD_RELOC_386_TLS_TPOFF32
4252 -- : BFD_RELOC_386_TLS_GOTDESC
4253 -- : BFD_RELOC_386_TLS_DESC_CALL
4254 -- : BFD_RELOC_386_TLS_DESC
4255 -- : BFD_RELOC_386_IRELATIVE
4256 -- : BFD_RELOC_386_GOT32X
4257     i386/elf relocations
4258 -- : BFD_RELOC_X86_64_GOT32
4259 -- : BFD_RELOC_X86_64_PLT32
4260 -- : BFD_RELOC_X86_64_COPY
4261 -- : BFD_RELOC_X86_64_GLOB_DAT
4262 -- : BFD_RELOC_X86_64_JUMP_SLOT
4263 -- : BFD_RELOC_X86_64_RELATIVE
4264 -- : BFD_RELOC_X86_64_GOTPCREL
4265 -- : BFD_RELOC_X86_64_32S
4266 -- : BFD_RELOC_X86_64_DTPMOD64
4267 -- : BFD_RELOC_X86_64_DTPOFF64
4268 -- : BFD_RELOC_X86_64_TPOFF64
4269 -- : BFD_RELOC_X86_64_TLSGD
4270 -- : BFD_RELOC_X86_64_TLSLD
4271 -- : BFD_RELOC_X86_64_DTPOFF32
4272 -- : BFD_RELOC_X86_64_GOTTPOFF
4273 -- : BFD_RELOC_X86_64_TPOFF32
4274 -- : BFD_RELOC_X86_64_GOTOFF64
4275 -- : BFD_RELOC_X86_64_GOTPC32
4276 -- : BFD_RELOC_X86_64_GOT64
4277 -- : BFD_RELOC_X86_64_GOTPCREL64
4278 -- : BFD_RELOC_X86_64_GOTPC64
4279 -- : BFD_RELOC_X86_64_GOTPLT64
4280 -- : BFD_RELOC_X86_64_PLTOFF64
4281 -- : BFD_RELOC_X86_64_GOTPC32_TLSDESC
4282 -- : BFD_RELOC_X86_64_TLSDESC_CALL
4283 -- : BFD_RELOC_X86_64_TLSDESC
4284 -- : BFD_RELOC_X86_64_IRELATIVE
4285 -- : BFD_RELOC_X86_64_PC32_BND
4286 -- : BFD_RELOC_X86_64_PLT32_BND
4287 -- : BFD_RELOC_X86_64_GOTPCRELX
4288 -- : BFD_RELOC_X86_64_REX_GOTPCRELX
4289     x86-64/elf relocations
4290 -- : BFD_RELOC_NS32K_IMM_8
4291 -- : BFD_RELOC_NS32K_IMM_16
4292 -- : BFD_RELOC_NS32K_IMM_32
4293 -- : BFD_RELOC_NS32K_IMM_8_PCREL
4294 -- : BFD_RELOC_NS32K_IMM_16_PCREL
4295 -- : BFD_RELOC_NS32K_IMM_32_PCREL
4296 -- : BFD_RELOC_NS32K_DISP_8
4297 -- : BFD_RELOC_NS32K_DISP_16
4298 -- : BFD_RELOC_NS32K_DISP_32
4299 -- : BFD_RELOC_NS32K_DISP_8_PCREL
4300 -- : BFD_RELOC_NS32K_DISP_16_PCREL
4301 -- : BFD_RELOC_NS32K_DISP_32_PCREL
4302     ns32k relocations
4303 -- : BFD_RELOC_PDP11_DISP_8_PCREL
4304 -- : BFD_RELOC_PDP11_DISP_6_PCREL
4305     PDP11 relocations
4306 -- : BFD_RELOC_PJ_CODE_HI16
4307 -- : BFD_RELOC_PJ_CODE_LO16
4308 -- : BFD_RELOC_PJ_CODE_DIR16
4309 -- : BFD_RELOC_PJ_CODE_DIR32
4310 -- : BFD_RELOC_PJ_CODE_REL16
4311 -- : BFD_RELOC_PJ_CODE_REL32
4312     Picojava relocs.  Not all of these appear in object files.
4313 -- : BFD_RELOC_PPC_B26
4314 -- : BFD_RELOC_PPC_BA26
4315 -- : BFD_RELOC_PPC_TOC16
4316 -- : BFD_RELOC_PPC_B16
4317 -- : BFD_RELOC_PPC_B16_BRTAKEN
4318 -- : BFD_RELOC_PPC_B16_BRNTAKEN
4319 -- : BFD_RELOC_PPC_BA16
4320 -- : BFD_RELOC_PPC_BA16_BRTAKEN
4321 -- : BFD_RELOC_PPC_BA16_BRNTAKEN
4322 -- : BFD_RELOC_PPC_COPY
4323 -- : BFD_RELOC_PPC_GLOB_DAT
4324 -- : BFD_RELOC_PPC_JMP_SLOT
4325 -- : BFD_RELOC_PPC_RELATIVE
4326 -- : BFD_RELOC_PPC_LOCAL24PC
4327 -- : BFD_RELOC_PPC_EMB_NADDR32
4328 -- : BFD_RELOC_PPC_EMB_NADDR16
4329 -- : BFD_RELOC_PPC_EMB_NADDR16_LO
4330 -- : BFD_RELOC_PPC_EMB_NADDR16_HI
4331 -- : BFD_RELOC_PPC_EMB_NADDR16_HA
4332 -- : BFD_RELOC_PPC_EMB_SDAI16
4333 -- : BFD_RELOC_PPC_EMB_SDA2I16
4334 -- : BFD_RELOC_PPC_EMB_SDA2REL
4335 -- : BFD_RELOC_PPC_EMB_SDA21
4336 -- : BFD_RELOC_PPC_EMB_MRKREF
4337 -- : BFD_RELOC_PPC_EMB_RELSEC16
4338 -- : BFD_RELOC_PPC_EMB_RELST_LO
4339 -- : BFD_RELOC_PPC_EMB_RELST_HI
4340 -- : BFD_RELOC_PPC_EMB_RELST_HA
4341 -- : BFD_RELOC_PPC_EMB_BIT_FLD
4342 -- : BFD_RELOC_PPC_EMB_RELSDA
4343 -- : BFD_RELOC_PPC_VLE_REL8
4344 -- : BFD_RELOC_PPC_VLE_REL15
4345 -- : BFD_RELOC_PPC_VLE_REL24
4346 -- : BFD_RELOC_PPC_VLE_LO16A
4347 -- : BFD_RELOC_PPC_VLE_LO16D
4348 -- : BFD_RELOC_PPC_VLE_HI16A
4349 -- : BFD_RELOC_PPC_VLE_HI16D
4350 -- : BFD_RELOC_PPC_VLE_HA16A
4351 -- : BFD_RELOC_PPC_VLE_HA16D
4352 -- : BFD_RELOC_PPC_VLE_SDA21
4353 -- : BFD_RELOC_PPC_VLE_SDA21_LO
4354 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16A
4355 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16D
4356 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16A
4357 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16D
4358 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16A
4359 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16D
4360 -- : BFD_RELOC_PPC_16DX_HA
4361 -- : BFD_RELOC_PPC_REL16DX_HA
4362 -- : BFD_RELOC_PPC64_HIGHER
4363 -- : BFD_RELOC_PPC64_HIGHER_S
4364 -- : BFD_RELOC_PPC64_HIGHEST
4365 -- : BFD_RELOC_PPC64_HIGHEST_S
4366 -- : BFD_RELOC_PPC64_TOC16_LO
4367 -- : BFD_RELOC_PPC64_TOC16_HI
4368 -- : BFD_RELOC_PPC64_TOC16_HA
4369 -- : BFD_RELOC_PPC64_TOC
4370 -- : BFD_RELOC_PPC64_PLTGOT16
4371 -- : BFD_RELOC_PPC64_PLTGOT16_LO
4372 -- : BFD_RELOC_PPC64_PLTGOT16_HI
4373 -- : BFD_RELOC_PPC64_PLTGOT16_HA
4374 -- : BFD_RELOC_PPC64_ADDR16_DS
4375 -- : BFD_RELOC_PPC64_ADDR16_LO_DS
4376 -- : BFD_RELOC_PPC64_GOT16_DS
4377 -- : BFD_RELOC_PPC64_GOT16_LO_DS
4378 -- : BFD_RELOC_PPC64_PLT16_LO_DS
4379 -- : BFD_RELOC_PPC64_SECTOFF_DS
4380 -- : BFD_RELOC_PPC64_SECTOFF_LO_DS
4381 -- : BFD_RELOC_PPC64_TOC16_DS
4382 -- : BFD_RELOC_PPC64_TOC16_LO_DS
4383 -- : BFD_RELOC_PPC64_PLTGOT16_DS
4384 -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS
4385 -- : BFD_RELOC_PPC64_ADDR16_HIGH
4386 -- : BFD_RELOC_PPC64_ADDR16_HIGHA
4387 -- : BFD_RELOC_PPC64_REL16_HIGH
4388 -- : BFD_RELOC_PPC64_REL16_HIGHA
4389 -- : BFD_RELOC_PPC64_REL16_HIGHER
4390 -- : BFD_RELOC_PPC64_REL16_HIGHERA
4391 -- : BFD_RELOC_PPC64_REL16_HIGHEST
4392 -- : BFD_RELOC_PPC64_REL16_HIGHESTA
4393 -- : BFD_RELOC_PPC64_ADDR64_LOCAL
4394 -- : BFD_RELOC_PPC64_ENTRY
4395 -- : BFD_RELOC_PPC64_REL24_NOTOC
4396 -- : BFD_RELOC_PPC64_D34
4397 -- : BFD_RELOC_PPC64_D34_LO
4398 -- : BFD_RELOC_PPC64_D34_HI30
4399 -- : BFD_RELOC_PPC64_D34_HA30
4400 -- : BFD_RELOC_PPC64_PCREL34
4401 -- : BFD_RELOC_PPC64_GOT_PCREL34
4402 -- : BFD_RELOC_PPC64_PLT_PCREL34
4403 -- : BFD_RELOC_PPC64_ADDR16_HIGHER34
4404 -- : BFD_RELOC_PPC64_ADDR16_HIGHERA34
4405 -- : BFD_RELOC_PPC64_ADDR16_HIGHEST34
4406 -- : BFD_RELOC_PPC64_ADDR16_HIGHESTA34
4407 -- : BFD_RELOC_PPC64_REL16_HIGHER34
4408 -- : BFD_RELOC_PPC64_REL16_HIGHERA34
4409 -- : BFD_RELOC_PPC64_REL16_HIGHEST34
4410 -- : BFD_RELOC_PPC64_REL16_HIGHESTA34
4411 -- : BFD_RELOC_PPC64_D28
4412 -- : BFD_RELOC_PPC64_PCREL28
4413     Power(rs6000) and PowerPC relocations.
4414 -- : BFD_RELOC_PPC_TLS
4415 -- : BFD_RELOC_PPC_TLSGD
4416 -- : BFD_RELOC_PPC_TLSLD
4417 -- : BFD_RELOC_PPC_DTPMOD
4418 -- : BFD_RELOC_PPC_TPREL16
4419 -- : BFD_RELOC_PPC_TPREL16_LO
4420 -- : BFD_RELOC_PPC_TPREL16_HI
4421 -- : BFD_RELOC_PPC_TPREL16_HA
4422 -- : BFD_RELOC_PPC_TPREL
4423 -- : BFD_RELOC_PPC_DTPREL16
4424 -- : BFD_RELOC_PPC_DTPREL16_LO
4425 -- : BFD_RELOC_PPC_DTPREL16_HI
4426 -- : BFD_RELOC_PPC_DTPREL16_HA
4427 -- : BFD_RELOC_PPC_DTPREL
4428 -- : BFD_RELOC_PPC_GOT_TLSGD16
4429 -- : BFD_RELOC_PPC_GOT_TLSGD16_LO
4430 -- : BFD_RELOC_PPC_GOT_TLSGD16_HI
4431 -- : BFD_RELOC_PPC_GOT_TLSGD16_HA
4432 -- : BFD_RELOC_PPC_GOT_TLSLD16
4433 -- : BFD_RELOC_PPC_GOT_TLSLD16_LO
4434 -- : BFD_RELOC_PPC_GOT_TLSLD16_HI
4435 -- : BFD_RELOC_PPC_GOT_TLSLD16_HA
4436 -- : BFD_RELOC_PPC_GOT_TPREL16
4437 -- : BFD_RELOC_PPC_GOT_TPREL16_LO
4438 -- : BFD_RELOC_PPC_GOT_TPREL16_HI
4439 -- : BFD_RELOC_PPC_GOT_TPREL16_HA
4440 -- : BFD_RELOC_PPC_GOT_DTPREL16
4441 -- : BFD_RELOC_PPC_GOT_DTPREL16_LO
4442 -- : BFD_RELOC_PPC_GOT_DTPREL16_HI
4443 -- : BFD_RELOC_PPC_GOT_DTPREL16_HA
4444 -- : BFD_RELOC_PPC64_TPREL16_DS
4445 -- : BFD_RELOC_PPC64_TPREL16_LO_DS
4446 -- : BFD_RELOC_PPC64_TPREL16_HIGH
4447 -- : BFD_RELOC_PPC64_TPREL16_HIGHA
4448 -- : BFD_RELOC_PPC64_TPREL16_HIGHER
4449 -- : BFD_RELOC_PPC64_TPREL16_HIGHERA
4450 -- : BFD_RELOC_PPC64_TPREL16_HIGHEST
4451 -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA
4452 -- : BFD_RELOC_PPC64_DTPREL16_DS
4453 -- : BFD_RELOC_PPC64_DTPREL16_LO_DS
4454 -- : BFD_RELOC_PPC64_DTPREL16_HIGH
4455 -- : BFD_RELOC_PPC64_DTPREL16_HIGHA
4456 -- : BFD_RELOC_PPC64_DTPREL16_HIGHER
4457 -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA
4458 -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST
4459 -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA
4460 -- : BFD_RELOC_PPC64_TPREL34
4461 -- : BFD_RELOC_PPC64_DTPREL34
4462 -- : BFD_RELOC_PPC64_GOT_TLSGD34
4463 -- : BFD_RELOC_PPC64_GOT_TLSLD34
4464 -- : BFD_RELOC_PPC64_GOT_TPREL34
4465 -- : BFD_RELOC_PPC64_GOT_DTPREL34
4466 -- : BFD_RELOC_PPC64_TLS_PCREL
4467     PowerPC and PowerPC64 thread-local storage relocations.
4468 -- : BFD_RELOC_I370_D12
4469     IBM 370/390 relocations
4470 -- : BFD_RELOC_CTOR
4471     The type of reloc used to build a constructor table - at the moment
4472     probably a 32 bit wide absolute relocation, but the target can
4473     choose.  It generally does map to one of the other relocation
4474     types.
4475 -- : BFD_RELOC_ARM_PCREL_BRANCH
4476     ARM 26 bit pc-relative branch.  The lowest two bits must be zero
4477     and are not stored in the instruction.
4478 -- : BFD_RELOC_ARM_PCREL_BLX
4479     ARM 26 bit pc-relative branch.  The lowest bit must be zero and is
4480     not stored in the instruction.  The 2nd lowest bit comes from a 1
4481     bit field in the instruction.
4482 -- : BFD_RELOC_THUMB_PCREL_BLX
4483     Thumb 22 bit pc-relative branch.  The lowest bit must be zero and
4484     is not stored in the instruction.  The 2nd lowest bit comes from a
4485     1 bit field in the instruction.
4486 -- : BFD_RELOC_ARM_PCREL_CALL
4487     ARM 26-bit pc-relative branch for an unconditional BL or BLX
4488     instruction.
4489 -- : BFD_RELOC_ARM_PCREL_JUMP
4490     ARM 26-bit pc-relative branch for B or conditional BL instruction.
4491 -- : BFD_RELOC_THUMB_PCREL_BRANCH5
4492     ARM 5-bit pc-relative branch for Branch Future instructions.
4493 -- : BFD_RELOC_THUMB_PCREL_BFCSEL
4494     ARM 6-bit pc-relative branch for BFCSEL instruction.
4495 -- : BFD_RELOC_ARM_THUMB_BF17
4496     ARM 17-bit pc-relative branch for Branch Future instructions.
4497 -- : BFD_RELOC_ARM_THUMB_BF13
4498     ARM 13-bit pc-relative branch for BFCSEL instruction.
4499 -- : BFD_RELOC_ARM_THUMB_BF19
4500     ARM 19-bit pc-relative branch for Branch Future Link instruction.
4501 -- : BFD_RELOC_ARM_THUMB_LOOP12
4502     ARM 12-bit pc-relative branch for Low Overhead Loop instructions.
4503 -- : BFD_RELOC_THUMB_PCREL_BRANCH7
4504 -- : BFD_RELOC_THUMB_PCREL_BRANCH9
4505 -- : BFD_RELOC_THUMB_PCREL_BRANCH12
4506 -- : BFD_RELOC_THUMB_PCREL_BRANCH20
4507 -- : BFD_RELOC_THUMB_PCREL_BRANCH23
4508 -- : BFD_RELOC_THUMB_PCREL_BRANCH25
4509     Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.  The
4510     lowest bit must be zero and is not stored in the instruction.  Note
4511     that the corresponding ELF R_ARM_THM_JUMPnn constant has an "nn"
4512     one smaller in all cases.  Note further that BRANCH23 corresponds
4513     to R_ARM_THM_CALL.
4514 -- : BFD_RELOC_ARM_OFFSET_IMM
4515     12-bit immediate offset, used in ARM-format ldr and str
4516     instructions.
4517 -- : BFD_RELOC_ARM_THUMB_OFFSET
4518     5-bit immediate offset, used in Thumb-format ldr and str
4519     instructions.
4520 -- : BFD_RELOC_ARM_TARGET1
4521     Pc-relative or absolute relocation depending on target.  Used for
4522     entries in .init_array sections.
4523 -- : BFD_RELOC_ARM_ROSEGREL32
4524     Read-only segment base relative address.
4525 -- : BFD_RELOC_ARM_SBREL32
4526     Data segment base relative address.
4527 -- : BFD_RELOC_ARM_TARGET2
4528     This reloc is used for references to RTTI data from exception
4529     handling tables.  The actual definition depends on the target.  It
4530     may be a pc-relative or some form of GOT-indirect relocation.
4531 -- : BFD_RELOC_ARM_PREL31
4532     31-bit PC relative address.
4533 -- : BFD_RELOC_ARM_MOVW
4534 -- : BFD_RELOC_ARM_MOVT
4535 -- : BFD_RELOC_ARM_MOVW_PCREL
4536 -- : BFD_RELOC_ARM_MOVT_PCREL
4537 -- : BFD_RELOC_ARM_THUMB_MOVW
4538 -- : BFD_RELOC_ARM_THUMB_MOVT
4539 -- : BFD_RELOC_ARM_THUMB_MOVW_PCREL
4540 -- : BFD_RELOC_ARM_THUMB_MOVT_PCREL
4541     Low and High halfword relocations for MOVW and MOVT instructions.
4542 -- : BFD_RELOC_ARM_GOTFUNCDESC
4543 -- : BFD_RELOC_ARM_GOTOFFFUNCDESC
4544 -- : BFD_RELOC_ARM_FUNCDESC
4545 -- : BFD_RELOC_ARM_FUNCDESC_VALUE
4546 -- : BFD_RELOC_ARM_TLS_GD32_FDPIC
4547 -- : BFD_RELOC_ARM_TLS_LDM32_FDPIC
4548 -- : BFD_RELOC_ARM_TLS_IE32_FDPIC
4549     ARM FDPIC specific relocations.
4550 -- : BFD_RELOC_ARM_JUMP_SLOT
4551 -- : BFD_RELOC_ARM_GLOB_DAT
4552 -- : BFD_RELOC_ARM_GOT32
4553 -- : BFD_RELOC_ARM_PLT32
4554 -- : BFD_RELOC_ARM_RELATIVE
4555 -- : BFD_RELOC_ARM_GOTOFF
4556 -- : BFD_RELOC_ARM_GOTPC
4557 -- : BFD_RELOC_ARM_GOT_PREL
4558     Relocations for setting up GOTs and PLTs for shared libraries.
4559 -- : BFD_RELOC_ARM_TLS_GD32
4560 -- : BFD_RELOC_ARM_TLS_LDO32
4561 -- : BFD_RELOC_ARM_TLS_LDM32
4562 -- : BFD_RELOC_ARM_TLS_DTPOFF32
4563 -- : BFD_RELOC_ARM_TLS_DTPMOD32
4564 -- : BFD_RELOC_ARM_TLS_TPOFF32
4565 -- : BFD_RELOC_ARM_TLS_IE32
4566 -- : BFD_RELOC_ARM_TLS_LE32
4567 -- : BFD_RELOC_ARM_TLS_GOTDESC
4568 -- : BFD_RELOC_ARM_TLS_CALL
4569 -- : BFD_RELOC_ARM_THM_TLS_CALL
4570 -- : BFD_RELOC_ARM_TLS_DESCSEQ
4571 -- : BFD_RELOC_ARM_THM_TLS_DESCSEQ
4572 -- : BFD_RELOC_ARM_TLS_DESC
4573     ARM thread-local storage relocations.
4574 -- : BFD_RELOC_ARM_ALU_PC_G0_NC
4575 -- : BFD_RELOC_ARM_ALU_PC_G0
4576 -- : BFD_RELOC_ARM_ALU_PC_G1_NC
4577 -- : BFD_RELOC_ARM_ALU_PC_G1
4578 -- : BFD_RELOC_ARM_ALU_PC_G2
4579 -- : BFD_RELOC_ARM_LDR_PC_G0
4580 -- : BFD_RELOC_ARM_LDR_PC_G1
4581 -- : BFD_RELOC_ARM_LDR_PC_G2
4582 -- : BFD_RELOC_ARM_LDRS_PC_G0
4583 -- : BFD_RELOC_ARM_LDRS_PC_G1
4584 -- : BFD_RELOC_ARM_LDRS_PC_G2
4585 -- : BFD_RELOC_ARM_LDC_PC_G0
4586 -- : BFD_RELOC_ARM_LDC_PC_G1
4587 -- : BFD_RELOC_ARM_LDC_PC_G2
4588 -- : BFD_RELOC_ARM_ALU_SB_G0_NC
4589 -- : BFD_RELOC_ARM_ALU_SB_G0
4590 -- : BFD_RELOC_ARM_ALU_SB_G1_NC
4591 -- : BFD_RELOC_ARM_ALU_SB_G1
4592 -- : BFD_RELOC_ARM_ALU_SB_G2
4593 -- : BFD_RELOC_ARM_LDR_SB_G0
4594 -- : BFD_RELOC_ARM_LDR_SB_G1
4595 -- : BFD_RELOC_ARM_LDR_SB_G2
4596 -- : BFD_RELOC_ARM_LDRS_SB_G0
4597 -- : BFD_RELOC_ARM_LDRS_SB_G1
4598 -- : BFD_RELOC_ARM_LDRS_SB_G2
4599 -- : BFD_RELOC_ARM_LDC_SB_G0
4600 -- : BFD_RELOC_ARM_LDC_SB_G1
4601 -- : BFD_RELOC_ARM_LDC_SB_G2
4602     ARM group relocations.
4603 -- : BFD_RELOC_ARM_V4BX
4604     Annotation of BX instructions.
4605 -- : BFD_RELOC_ARM_IRELATIVE
4606     ARM support for STT_GNU_IFUNC.
4607 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC
4608 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC
4609 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC
4610 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC
4611     Thumb1 relocations to support execute-only code.
4612 -- : BFD_RELOC_ARM_IMMEDIATE
4613 -- : BFD_RELOC_ARM_ADRL_IMMEDIATE
4614 -- : BFD_RELOC_ARM_T32_IMMEDIATE
4615 -- : BFD_RELOC_ARM_T32_ADD_IMM
4616 -- : BFD_RELOC_ARM_T32_IMM12
4617 -- : BFD_RELOC_ARM_T32_ADD_PC12
4618 -- : BFD_RELOC_ARM_SHIFT_IMM
4619 -- : BFD_RELOC_ARM_SMC
4620 -- : BFD_RELOC_ARM_HVC
4621 -- : BFD_RELOC_ARM_SWI
4622 -- : BFD_RELOC_ARM_MULTI
4623 -- : BFD_RELOC_ARM_CP_OFF_IMM
4624 -- : BFD_RELOC_ARM_CP_OFF_IMM_S2
4625 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM
4626 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM_S2
4627 -- : BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM
4628 -- : BFD_RELOC_ARM_ADR_IMM
4629 -- : BFD_RELOC_ARM_LDR_IMM
4630 -- : BFD_RELOC_ARM_LITERAL
4631 -- : BFD_RELOC_ARM_IN_POOL
4632 -- : BFD_RELOC_ARM_OFFSET_IMM8
4633 -- : BFD_RELOC_ARM_T32_OFFSET_U8
4634 -- : BFD_RELOC_ARM_T32_OFFSET_IMM
4635 -- : BFD_RELOC_ARM_HWLITERAL
4636 -- : BFD_RELOC_ARM_THUMB_ADD
4637 -- : BFD_RELOC_ARM_THUMB_IMM
4638 -- : BFD_RELOC_ARM_THUMB_SHIFT
4639     These relocs are only used within the ARM assembler.  They are not
4640     (at present) written to any object files.
4641 -- : BFD_RELOC_SH_PCDISP8BY2
4642 -- : BFD_RELOC_SH_PCDISP12BY2
4643 -- : BFD_RELOC_SH_IMM3
4644 -- : BFD_RELOC_SH_IMM3U
4645 -- : BFD_RELOC_SH_DISP12
4646 -- : BFD_RELOC_SH_DISP12BY2
4647 -- : BFD_RELOC_SH_DISP12BY4
4648 -- : BFD_RELOC_SH_DISP12BY8
4649 -- : BFD_RELOC_SH_DISP20
4650 -- : BFD_RELOC_SH_DISP20BY8
4651 -- : BFD_RELOC_SH_IMM4
4652 -- : BFD_RELOC_SH_IMM4BY2
4653 -- : BFD_RELOC_SH_IMM4BY4
4654 -- : BFD_RELOC_SH_IMM8
4655 -- : BFD_RELOC_SH_IMM8BY2
4656 -- : BFD_RELOC_SH_IMM8BY4
4657 -- : BFD_RELOC_SH_PCRELIMM8BY2
4658 -- : BFD_RELOC_SH_PCRELIMM8BY4
4659 -- : BFD_RELOC_SH_SWITCH16
4660 -- : BFD_RELOC_SH_SWITCH32
4661 -- : BFD_RELOC_SH_USES
4662 -- : BFD_RELOC_SH_COUNT
4663 -- : BFD_RELOC_SH_ALIGN
4664 -- : BFD_RELOC_SH_CODE
4665 -- : BFD_RELOC_SH_DATA
4666 -- : BFD_RELOC_SH_LABEL
4667 -- : BFD_RELOC_SH_LOOP_START
4668 -- : BFD_RELOC_SH_LOOP_END
4669 -- : BFD_RELOC_SH_COPY
4670 -- : BFD_RELOC_SH_GLOB_DAT
4671 -- : BFD_RELOC_SH_JMP_SLOT
4672 -- : BFD_RELOC_SH_RELATIVE
4673 -- : BFD_RELOC_SH_GOTPC
4674 -- : BFD_RELOC_SH_GOT_LOW16
4675 -- : BFD_RELOC_SH_GOT_MEDLOW16
4676 -- : BFD_RELOC_SH_GOT_MEDHI16
4677 -- : BFD_RELOC_SH_GOT_HI16
4678 -- : BFD_RELOC_SH_GOTPLT_LOW16
4679 -- : BFD_RELOC_SH_GOTPLT_MEDLOW16
4680 -- : BFD_RELOC_SH_GOTPLT_MEDHI16
4681 -- : BFD_RELOC_SH_GOTPLT_HI16
4682 -- : BFD_RELOC_SH_PLT_LOW16
4683 -- : BFD_RELOC_SH_PLT_MEDLOW16
4684 -- : BFD_RELOC_SH_PLT_MEDHI16
4685 -- : BFD_RELOC_SH_PLT_HI16
4686 -- : BFD_RELOC_SH_GOTOFF_LOW16
4687 -- : BFD_RELOC_SH_GOTOFF_MEDLOW16
4688 -- : BFD_RELOC_SH_GOTOFF_MEDHI16
4689 -- : BFD_RELOC_SH_GOTOFF_HI16
4690 -- : BFD_RELOC_SH_GOTPC_LOW16
4691 -- : BFD_RELOC_SH_GOTPC_MEDLOW16
4692 -- : BFD_RELOC_SH_GOTPC_MEDHI16
4693 -- : BFD_RELOC_SH_GOTPC_HI16
4694 -- : BFD_RELOC_SH_COPY64
4695 -- : BFD_RELOC_SH_GLOB_DAT64
4696 -- : BFD_RELOC_SH_JMP_SLOT64
4697 -- : BFD_RELOC_SH_RELATIVE64
4698 -- : BFD_RELOC_SH_GOT10BY4
4699 -- : BFD_RELOC_SH_GOT10BY8
4700 -- : BFD_RELOC_SH_GOTPLT10BY4
4701 -- : BFD_RELOC_SH_GOTPLT10BY8
4702 -- : BFD_RELOC_SH_GOTPLT32
4703 -- : BFD_RELOC_SH_SHMEDIA_CODE
4704 -- : BFD_RELOC_SH_IMMU5
4705 -- : BFD_RELOC_SH_IMMS6
4706 -- : BFD_RELOC_SH_IMMS6BY32
4707 -- : BFD_RELOC_SH_IMMU6
4708 -- : BFD_RELOC_SH_IMMS10
4709 -- : BFD_RELOC_SH_IMMS10BY2
4710 -- : BFD_RELOC_SH_IMMS10BY4
4711 -- : BFD_RELOC_SH_IMMS10BY8
4712 -- : BFD_RELOC_SH_IMMS16
4713 -- : BFD_RELOC_SH_IMMU16
4714 -- : BFD_RELOC_SH_IMM_LOW16
4715 -- : BFD_RELOC_SH_IMM_LOW16_PCREL
4716 -- : BFD_RELOC_SH_IMM_MEDLOW16
4717 -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL
4718 -- : BFD_RELOC_SH_IMM_MEDHI16
4719 -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL
4720 -- : BFD_RELOC_SH_IMM_HI16
4721 -- : BFD_RELOC_SH_IMM_HI16_PCREL
4722 -- : BFD_RELOC_SH_PT_16
4723 -- : BFD_RELOC_SH_TLS_GD_32
4724 -- : BFD_RELOC_SH_TLS_LD_32
4725 -- : BFD_RELOC_SH_TLS_LDO_32
4726 -- : BFD_RELOC_SH_TLS_IE_32
4727 -- : BFD_RELOC_SH_TLS_LE_32
4728 -- : BFD_RELOC_SH_TLS_DTPMOD32
4729 -- : BFD_RELOC_SH_TLS_DTPOFF32
4730 -- : BFD_RELOC_SH_TLS_TPOFF32
4731 -- : BFD_RELOC_SH_GOT20
4732 -- : BFD_RELOC_SH_GOTOFF20
4733 -- : BFD_RELOC_SH_GOTFUNCDESC
4734 -- : BFD_RELOC_SH_GOTFUNCDESC20
4735 -- : BFD_RELOC_SH_GOTOFFFUNCDESC
4736 -- : BFD_RELOC_SH_GOTOFFFUNCDESC20
4737 -- : BFD_RELOC_SH_FUNCDESC
4738     Renesas / SuperH SH relocs.  Not all of these appear in object
4739     files.
4740 -- : BFD_RELOC_ARC_NONE
4741 -- : BFD_RELOC_ARC_8
4742 -- : BFD_RELOC_ARC_16
4743 -- : BFD_RELOC_ARC_24
4744 -- : BFD_RELOC_ARC_32
4745 -- : BFD_RELOC_ARC_N8
4746 -- : BFD_RELOC_ARC_N16
4747 -- : BFD_RELOC_ARC_N24
4748 -- : BFD_RELOC_ARC_N32
4749 -- : BFD_RELOC_ARC_SDA
4750 -- : BFD_RELOC_ARC_SECTOFF
4751 -- : BFD_RELOC_ARC_S21H_PCREL
4752 -- : BFD_RELOC_ARC_S21W_PCREL
4753 -- : BFD_RELOC_ARC_S25H_PCREL
4754 -- : BFD_RELOC_ARC_S25W_PCREL
4755 -- : BFD_RELOC_ARC_SDA32
4756 -- : BFD_RELOC_ARC_SDA_LDST
4757 -- : BFD_RELOC_ARC_SDA_LDST1
4758 -- : BFD_RELOC_ARC_SDA_LDST2
4759 -- : BFD_RELOC_ARC_SDA16_LD
4760 -- : BFD_RELOC_ARC_SDA16_LD1
4761 -- : BFD_RELOC_ARC_SDA16_LD2
4762 -- : BFD_RELOC_ARC_S13_PCREL
4763 -- : BFD_RELOC_ARC_W
4764 -- : BFD_RELOC_ARC_32_ME
4765 -- : BFD_RELOC_ARC_32_ME_S
4766 -- : BFD_RELOC_ARC_N32_ME
4767 -- : BFD_RELOC_ARC_SECTOFF_ME
4768 -- : BFD_RELOC_ARC_SDA32_ME
4769 -- : BFD_RELOC_ARC_W_ME
4770 -- : BFD_RELOC_AC_SECTOFF_U8
4771 -- : BFD_RELOC_AC_SECTOFF_U8_1
4772 -- : BFD_RELOC_AC_SECTOFF_U8_2
4773 -- : BFD_RELOC_AC_SECTOFF_S9
4774 -- : BFD_RELOC_AC_SECTOFF_S9_1
4775 -- : BFD_RELOC_AC_SECTOFF_S9_2
4776 -- : BFD_RELOC_ARC_SECTOFF_ME_1
4777 -- : BFD_RELOC_ARC_SECTOFF_ME_2
4778 -- : BFD_RELOC_ARC_SECTOFF_1
4779 -- : BFD_RELOC_ARC_SECTOFF_2
4780 -- : BFD_RELOC_ARC_SDA_12
4781 -- : BFD_RELOC_ARC_SDA16_ST2
4782 -- : BFD_RELOC_ARC_32_PCREL
4783 -- : BFD_RELOC_ARC_PC32
4784 -- : BFD_RELOC_ARC_GOT32
4785 -- : BFD_RELOC_ARC_GOTPC32
4786 -- : BFD_RELOC_ARC_PLT32
4787 -- : BFD_RELOC_ARC_COPY
4788 -- : BFD_RELOC_ARC_GLOB_DAT
4789 -- : BFD_RELOC_ARC_JMP_SLOT
4790 -- : BFD_RELOC_ARC_RELATIVE
4791 -- : BFD_RELOC_ARC_GOTOFF
4792 -- : BFD_RELOC_ARC_GOTPC
4793 -- : BFD_RELOC_ARC_S21W_PCREL_PLT
4794 -- : BFD_RELOC_ARC_S25H_PCREL_PLT
4795 -- : BFD_RELOC_ARC_TLS_DTPMOD
4796 -- : BFD_RELOC_ARC_TLS_TPOFF
4797 -- : BFD_RELOC_ARC_TLS_GD_GOT
4798 -- : BFD_RELOC_ARC_TLS_GD_LD
4799 -- : BFD_RELOC_ARC_TLS_GD_CALL
4800 -- : BFD_RELOC_ARC_TLS_IE_GOT
4801 -- : BFD_RELOC_ARC_TLS_DTPOFF
4802 -- : BFD_RELOC_ARC_TLS_DTPOFF_S9
4803 -- : BFD_RELOC_ARC_TLS_LE_S9
4804 -- : BFD_RELOC_ARC_TLS_LE_32
4805 -- : BFD_RELOC_ARC_S25W_PCREL_PLT
4806 -- : BFD_RELOC_ARC_S21H_PCREL_PLT
4807 -- : BFD_RELOC_ARC_NPS_CMEM16
4808 -- : BFD_RELOC_ARC_JLI_SECTOFF
4809     ARC relocs.
4810 -- : BFD_RELOC_BFIN_16_IMM
4811     ADI Blackfin 16 bit immediate absolute reloc.
4812 -- : BFD_RELOC_BFIN_16_HIGH
4813     ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.
4814 -- : BFD_RELOC_BFIN_4_PCREL
4815     ADI Blackfin 'a' part of LSETUP.
4816 -- : BFD_RELOC_BFIN_5_PCREL
4817     ADI Blackfin.
4818 -- : BFD_RELOC_BFIN_16_LOW
4819     ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.
4820 -- : BFD_RELOC_BFIN_10_PCREL
4821     ADI Blackfin.
4822 -- : BFD_RELOC_BFIN_11_PCREL
4823     ADI Blackfin 'b' part of LSETUP.
4824 -- : BFD_RELOC_BFIN_12_PCREL_JUMP
4825     ADI Blackfin.
4826 -- : BFD_RELOC_BFIN_12_PCREL_JUMP_S
4827     ADI Blackfin Short jump, pcrel.
4828 -- : BFD_RELOC_BFIN_24_PCREL_CALL_X
4829     ADI Blackfin Call.x not implemented.
4830 -- : BFD_RELOC_BFIN_24_PCREL_JUMP_L
4831     ADI Blackfin Long Jump pcrel.
4832 -- : BFD_RELOC_BFIN_GOT17M4
4833 -- : BFD_RELOC_BFIN_GOTHI
4834 -- : BFD_RELOC_BFIN_GOTLO
4835 -- : BFD_RELOC_BFIN_FUNCDESC
4836 -- : BFD_RELOC_BFIN_FUNCDESC_GOT17M4
4837 -- : BFD_RELOC_BFIN_FUNCDESC_GOTHI
4838 -- : BFD_RELOC_BFIN_FUNCDESC_GOTLO
4839 -- : BFD_RELOC_BFIN_FUNCDESC_VALUE
4840 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4
4841 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI
4842 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO
4843 -- : BFD_RELOC_BFIN_GOTOFF17M4
4844 -- : BFD_RELOC_BFIN_GOTOFFHI
4845 -- : BFD_RELOC_BFIN_GOTOFFLO
4846     ADI Blackfin FD-PIC relocations.
4847 -- : BFD_RELOC_BFIN_GOT
4848     ADI Blackfin GOT relocation.
4849 -- : BFD_RELOC_BFIN_PLTPC
4850     ADI Blackfin PLTPC relocation.
4851 -- : BFD_ARELOC_BFIN_PUSH
4852     ADI Blackfin arithmetic relocation.
4853 -- : BFD_ARELOC_BFIN_CONST
4854     ADI Blackfin arithmetic relocation.
4855 -- : BFD_ARELOC_BFIN_ADD
4856     ADI Blackfin arithmetic relocation.
4857 -- : BFD_ARELOC_BFIN_SUB
4858     ADI Blackfin arithmetic relocation.
4859 -- : BFD_ARELOC_BFIN_MULT
4860     ADI Blackfin arithmetic relocation.
4861 -- : BFD_ARELOC_BFIN_DIV
4862     ADI Blackfin arithmetic relocation.
4863 -- : BFD_ARELOC_BFIN_MOD
4864     ADI Blackfin arithmetic relocation.
4865 -- : BFD_ARELOC_BFIN_LSHIFT
4866     ADI Blackfin arithmetic relocation.
4867 -- : BFD_ARELOC_BFIN_RSHIFT
4868     ADI Blackfin arithmetic relocation.
4869 -- : BFD_ARELOC_BFIN_AND
4870     ADI Blackfin arithmetic relocation.
4871 -- : BFD_ARELOC_BFIN_OR
4872     ADI Blackfin arithmetic relocation.
4873 -- : BFD_ARELOC_BFIN_XOR
4874     ADI Blackfin arithmetic relocation.
4875 -- : BFD_ARELOC_BFIN_LAND
4876     ADI Blackfin arithmetic relocation.
4877 -- : BFD_ARELOC_BFIN_LOR
4878     ADI Blackfin arithmetic relocation.
4879 -- : BFD_ARELOC_BFIN_LEN
4880     ADI Blackfin arithmetic relocation.
4881 -- : BFD_ARELOC_BFIN_NEG
4882     ADI Blackfin arithmetic relocation.
4883 -- : BFD_ARELOC_BFIN_COMP
4884     ADI Blackfin arithmetic relocation.
4885 -- : BFD_ARELOC_BFIN_PAGE
4886     ADI Blackfin arithmetic relocation.
4887 -- : BFD_ARELOC_BFIN_HWPAGE
4888     ADI Blackfin arithmetic relocation.
4889 -- : BFD_ARELOC_BFIN_ADDR
4890     ADI Blackfin arithmetic relocation.
4891 -- : BFD_RELOC_D10V_10_PCREL_R
4892     Mitsubishi D10V relocs.  This is a 10-bit reloc with the right 2
4893     bits assumed to be 0.
4894 -- : BFD_RELOC_D10V_10_PCREL_L
4895     Mitsubishi D10V relocs.  This is a 10-bit reloc with the right 2
4896     bits assumed to be 0.  This is the same as the previous reloc
4897     except it is in the left container, i.e., shifted left 15 bits.
4898 -- : BFD_RELOC_D10V_18
4899     This is an 18-bit reloc with the right 2 bits assumed to be 0.
4900 -- : BFD_RELOC_D10V_18_PCREL
4901     This is an 18-bit reloc with the right 2 bits assumed to be 0.
4902 -- : BFD_RELOC_D30V_6
4903     Mitsubishi D30V relocs.  This is a 6-bit absolute reloc.
4904 -- : BFD_RELOC_D30V_9_PCREL
4905     This is a 6-bit pc-relative reloc with the right 3 bits assumed to
4906     be 0.
4907 -- : BFD_RELOC_D30V_9_PCREL_R
4908     This is a 6-bit pc-relative reloc with the right 3 bits assumed to
4909     be 0.  Same as the previous reloc but on the right side of the
4910     container.
4911 -- : BFD_RELOC_D30V_15
4912     This is a 12-bit absolute reloc with the right 3 bitsassumed to be
4913     0.
4914 -- : BFD_RELOC_D30V_15_PCREL
4915     This is a 12-bit pc-relative reloc with the right 3 bits assumed to
4916     be 0.
4917 -- : BFD_RELOC_D30V_15_PCREL_R
4918     This is a 12-bit pc-relative reloc with the right 3 bits assumed to
4919     be 0.  Same as the previous reloc but on the right side of the
4920     container.
4921 -- : BFD_RELOC_D30V_21
4922     This is an 18-bit absolute reloc with the right 3 bits assumed to
4923     be 0.
4924 -- : BFD_RELOC_D30V_21_PCREL
4925     This is an 18-bit pc-relative reloc with the right 3 bits assumed
4926     to be 0.
4927 -- : BFD_RELOC_D30V_21_PCREL_R
4928     This is an 18-bit pc-relative reloc with the right 3 bits assumed
4929     to be 0.  Same as the previous reloc but on the right side of the
4930     container.
4931 -- : BFD_RELOC_D30V_32
4932     This is a 32-bit absolute reloc.
4933 -- : BFD_RELOC_D30V_32_PCREL
4934     This is a 32-bit pc-relative reloc.
4935 -- : BFD_RELOC_DLX_HI16_S
4936     DLX relocs
4937 -- : BFD_RELOC_DLX_LO16
4938     DLX relocs
4939 -- : BFD_RELOC_DLX_JMP26
4940     DLX relocs
4941 -- : BFD_RELOC_M32C_HI8
4942 -- : BFD_RELOC_M32C_RL_JUMP
4943 -- : BFD_RELOC_M32C_RL_1ADDR
4944 -- : BFD_RELOC_M32C_RL_2ADDR
4945     Renesas M16C/M32C Relocations.
4946 -- : BFD_RELOC_M32R_24
4947     Renesas M32R (formerly Mitsubishi M32R) relocs.  This is a 24 bit
4948     absolute address.
4949 -- : BFD_RELOC_M32R_10_PCREL
4950     This is a 10-bit pc-relative reloc with the right 2 bits assumed to
4951     be 0.
4952 -- : BFD_RELOC_M32R_18_PCREL
4953     This is an 18-bit reloc with the right 2 bits assumed to be 0.
4954 -- : BFD_RELOC_M32R_26_PCREL
4955     This is a 26-bit reloc with the right 2 bits assumed to be 0.
4956 -- : BFD_RELOC_M32R_HI16_ULO
4957     This is a 16-bit reloc containing the high 16 bits of an address
4958     used when the lower 16 bits are treated as unsigned.
4959 -- : BFD_RELOC_M32R_HI16_SLO
4960     This is a 16-bit reloc containing the high 16 bits of an address
4961     used when the lower 16 bits are treated as signed.
4962 -- : BFD_RELOC_M32R_LO16
4963     This is a 16-bit reloc containing the lower 16 bits of an address.
4964 -- : BFD_RELOC_M32R_SDA16
4965     This is a 16-bit reloc containing the small data area offset for
4966     use in add3, load, and store instructions.
4967 -- : BFD_RELOC_M32R_GOT24
4968 -- : BFD_RELOC_M32R_26_PLTREL
4969 -- : BFD_RELOC_M32R_COPY
4970 -- : BFD_RELOC_M32R_GLOB_DAT
4971 -- : BFD_RELOC_M32R_JMP_SLOT
4972 -- : BFD_RELOC_M32R_RELATIVE
4973 -- : BFD_RELOC_M32R_GOTOFF
4974 -- : BFD_RELOC_M32R_GOTOFF_HI_ULO
4975 -- : BFD_RELOC_M32R_GOTOFF_HI_SLO
4976 -- : BFD_RELOC_M32R_GOTOFF_LO
4977 -- : BFD_RELOC_M32R_GOTPC24
4978 -- : BFD_RELOC_M32R_GOT16_HI_ULO
4979 -- : BFD_RELOC_M32R_GOT16_HI_SLO
4980 -- : BFD_RELOC_M32R_GOT16_LO
4981 -- : BFD_RELOC_M32R_GOTPC_HI_ULO
4982 -- : BFD_RELOC_M32R_GOTPC_HI_SLO
4983 -- : BFD_RELOC_M32R_GOTPC_LO
4984     For PIC.
4985 -- : BFD_RELOC_NDS32_20
4986     NDS32 relocs.  This is a 20 bit absolute address.
4987 -- : BFD_RELOC_NDS32_9_PCREL
4988     This is a 9-bit pc-relative reloc with the right 1 bit assumed to
4989     be 0.
4990 -- : BFD_RELOC_NDS32_WORD_9_PCREL
4991     This is a 9-bit pc-relative reloc with the right 1 bit assumed to
4992     be 0.
4993 -- : BFD_RELOC_NDS32_15_PCREL
4994     This is an 15-bit reloc with the right 1 bit assumed to be 0.
4995 -- : BFD_RELOC_NDS32_17_PCREL
4996     This is an 17-bit reloc with the right 1 bit assumed to be 0.
4997 -- : BFD_RELOC_NDS32_25_PCREL
4998     This is a 25-bit reloc with the right 1 bit assumed to be 0.
4999 -- : BFD_RELOC_NDS32_HI20
5000     This is a 20-bit reloc containing the high 20 bits of an address
5001     used with the lower 12 bits
5002 -- : BFD_RELOC_NDS32_LO12S3
5003     This is a 12-bit reloc containing the lower 12 bits of an address
5004     then shift right by 3.  This is used with ldi,sdi...
5005 -- : BFD_RELOC_NDS32_LO12S2
5006     This is a 12-bit reloc containing the lower 12 bits of an address
5007     then shift left by 2.  This is used with lwi,swi...
5008 -- : BFD_RELOC_NDS32_LO12S1
5009     This is a 12-bit reloc containing the lower 12 bits of an address
5010     then shift left by 1.  This is used with lhi,shi...
5011 -- : BFD_RELOC_NDS32_LO12S0
5012     This is a 12-bit reloc containing the lower 12 bits of an address
5013     then shift left by 0.  This is used with lbisbi...
5014 -- : BFD_RELOC_NDS32_LO12S0_ORI
5015     This is a 12-bit reloc containing the lower 12 bits of an address
5016     then shift left by 0.  This is only used with branch relaxations
5017 -- : BFD_RELOC_NDS32_SDA15S3
5018     This is a 15-bit reloc containing the small data area 18-bit signed
5019     offset and shift left by 3 for use in ldi, sdi...
5020 -- : BFD_RELOC_NDS32_SDA15S2
5021     This is a 15-bit reloc containing the small data area 17-bit signed
5022     offset and shift left by 2 for use in lwi, swi...
5023 -- : BFD_RELOC_NDS32_SDA15S1
5024     This is a 15-bit reloc containing the small data area 16-bit signed
5025     offset and shift left by 1 for use in lhi, shi...
5026 -- : BFD_RELOC_NDS32_SDA15S0
5027     This is a 15-bit reloc containing the small data area 15-bit signed
5028     offset and shift left by 0 for use in lbi, sbi...
5029 -- : BFD_RELOC_NDS32_SDA16S3
5030     This is a 16-bit reloc containing the small data area 16-bit signed
5031     offset and shift left by 3
5032 -- : BFD_RELOC_NDS32_SDA17S2
5033     This is a 17-bit reloc containing the small data area 17-bit signed
5034     offset and shift left by 2 for use in lwi.gp, swi.gp...
5035 -- : BFD_RELOC_NDS32_SDA18S1
5036     This is a 18-bit reloc containing the small data area 18-bit signed
5037     offset and shift left by 1 for use in lhi.gp, shi.gp...
5038 -- : BFD_RELOC_NDS32_SDA19S0
5039     This is a 19-bit reloc containing the small data area 19-bit signed
5040     offset and shift left by 0 for use in lbi.gp, sbi.gp...
5041 -- : BFD_RELOC_NDS32_GOT20
5042 -- : BFD_RELOC_NDS32_9_PLTREL
5043 -- : BFD_RELOC_NDS32_25_PLTREL
5044 -- : BFD_RELOC_NDS32_COPY
5045 -- : BFD_RELOC_NDS32_GLOB_DAT
5046 -- : BFD_RELOC_NDS32_JMP_SLOT
5047 -- : BFD_RELOC_NDS32_RELATIVE
5048 -- : BFD_RELOC_NDS32_GOTOFF
5049 -- : BFD_RELOC_NDS32_GOTOFF_HI20
5050 -- : BFD_RELOC_NDS32_GOTOFF_LO12
5051 -- : BFD_RELOC_NDS32_GOTPC20
5052 -- : BFD_RELOC_NDS32_GOT_HI20
5053 -- : BFD_RELOC_NDS32_GOT_LO12
5054 -- : BFD_RELOC_NDS32_GOTPC_HI20
5055 -- : BFD_RELOC_NDS32_GOTPC_LO12
5056     for PIC
5057 -- : BFD_RELOC_NDS32_INSN16
5058 -- : BFD_RELOC_NDS32_LABEL
5059 -- : BFD_RELOC_NDS32_LONGCALL1
5060 -- : BFD_RELOC_NDS32_LONGCALL2
5061 -- : BFD_RELOC_NDS32_LONGCALL3
5062 -- : BFD_RELOC_NDS32_LONGJUMP1
5063 -- : BFD_RELOC_NDS32_LONGJUMP2
5064 -- : BFD_RELOC_NDS32_LONGJUMP3
5065 -- : BFD_RELOC_NDS32_LOADSTORE
5066 -- : BFD_RELOC_NDS32_9_FIXED
5067 -- : BFD_RELOC_NDS32_15_FIXED
5068 -- : BFD_RELOC_NDS32_17_FIXED
5069 -- : BFD_RELOC_NDS32_25_FIXED
5070 -- : BFD_RELOC_NDS32_LONGCALL4
5071 -- : BFD_RELOC_NDS32_LONGCALL5
5072 -- : BFD_RELOC_NDS32_LONGCALL6
5073 -- : BFD_RELOC_NDS32_LONGJUMP4
5074 -- : BFD_RELOC_NDS32_LONGJUMP5
5075 -- : BFD_RELOC_NDS32_LONGJUMP6
5076 -- : BFD_RELOC_NDS32_LONGJUMP7
5077     for relax
5078 -- : BFD_RELOC_NDS32_PLTREL_HI20
5079 -- : BFD_RELOC_NDS32_PLTREL_LO12
5080 -- : BFD_RELOC_NDS32_PLT_GOTREL_HI20
5081 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO12
5082     for PIC
5083 -- : BFD_RELOC_NDS32_SDA12S2_DP
5084 -- : BFD_RELOC_NDS32_SDA12S2_SP
5085 -- : BFD_RELOC_NDS32_LO12S2_DP
5086 -- : BFD_RELOC_NDS32_LO12S2_SP
5087     for floating point
5088 -- : BFD_RELOC_NDS32_DWARF2_OP1
5089 -- : BFD_RELOC_NDS32_DWARF2_OP2
5090 -- : BFD_RELOC_NDS32_DWARF2_LEB
5091     for dwarf2 debug_line.
5092 -- : BFD_RELOC_NDS32_UPDATE_TA
5093     for eliminate 16-bit instructions
5094 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO20
5095 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO15
5096 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO19
5097 -- : BFD_RELOC_NDS32_GOT_LO15
5098 -- : BFD_RELOC_NDS32_GOT_LO19
5099 -- : BFD_RELOC_NDS32_GOTOFF_LO15
5100 -- : BFD_RELOC_NDS32_GOTOFF_LO19
5101 -- : BFD_RELOC_NDS32_GOT15S2
5102 -- : BFD_RELOC_NDS32_GOT17S2
5103     for PIC object relaxation
5104 -- : BFD_RELOC_NDS32_5
5105     NDS32 relocs.  This is a 5 bit absolute address.
5106 -- : BFD_RELOC_NDS32_10_UPCREL
5107     This is a 10-bit unsigned pc-relative reloc with the right 1 bit
5108     assumed to be 0.
5109 -- : BFD_RELOC_NDS32_SDA_FP7U2_RELA
5110     If fp were omitted, fp can used as another gp.
5111 -- : BFD_RELOC_NDS32_RELAX_ENTRY
5112 -- : BFD_RELOC_NDS32_GOT_SUFF
5113 -- : BFD_RELOC_NDS32_GOTOFF_SUFF
5114 -- : BFD_RELOC_NDS32_PLT_GOT_SUFF
5115 -- : BFD_RELOC_NDS32_MULCALL_SUFF
5116 -- : BFD_RELOC_NDS32_PTR
5117 -- : BFD_RELOC_NDS32_PTR_COUNT
5118 -- : BFD_RELOC_NDS32_PTR_RESOLVED
5119 -- : BFD_RELOC_NDS32_PLTBLOCK
5120 -- : BFD_RELOC_NDS32_RELAX_REGION_BEGIN
5121 -- : BFD_RELOC_NDS32_RELAX_REGION_END
5122 -- : BFD_RELOC_NDS32_MINUEND
5123 -- : BFD_RELOC_NDS32_SUBTRAHEND
5124 -- : BFD_RELOC_NDS32_DIFF8
5125 -- : BFD_RELOC_NDS32_DIFF16
5126 -- : BFD_RELOC_NDS32_DIFF32
5127 -- : BFD_RELOC_NDS32_DIFF_ULEB128
5128 -- : BFD_RELOC_NDS32_EMPTY
5129     relaxation relative relocation types
5130 -- : BFD_RELOC_NDS32_25_ABS
5131     This is a 25 bit absolute address.
5132 -- : BFD_RELOC_NDS32_DATA
5133 -- : BFD_RELOC_NDS32_TRAN
5134 -- : BFD_RELOC_NDS32_17IFC_PCREL
5135 -- : BFD_RELOC_NDS32_10IFCU_PCREL
5136     For ex9 and ifc using.
5137 -- : BFD_RELOC_NDS32_TPOFF
5138 -- : BFD_RELOC_NDS32_GOTTPOFF
5139 -- : BFD_RELOC_NDS32_TLS_LE_HI20
5140 -- : BFD_RELOC_NDS32_TLS_LE_LO12
5141 -- : BFD_RELOC_NDS32_TLS_LE_20
5142 -- : BFD_RELOC_NDS32_TLS_LE_15S0
5143 -- : BFD_RELOC_NDS32_TLS_LE_15S1
5144 -- : BFD_RELOC_NDS32_TLS_LE_15S2
5145 -- : BFD_RELOC_NDS32_TLS_LE_ADD
5146 -- : BFD_RELOC_NDS32_TLS_LE_LS
5147 -- : BFD_RELOC_NDS32_TLS_IE_HI20
5148 -- : BFD_RELOC_NDS32_TLS_IE_LO12
5149 -- : BFD_RELOC_NDS32_TLS_IE_LO12S2
5150 -- : BFD_RELOC_NDS32_TLS_IEGP_HI20
5151 -- : BFD_RELOC_NDS32_TLS_IEGP_LO12
5152 -- : BFD_RELOC_NDS32_TLS_IEGP_LO12S2
5153 -- : BFD_RELOC_NDS32_TLS_IEGP_LW
5154 -- : BFD_RELOC_NDS32_TLS_DESC
5155 -- : BFD_RELOC_NDS32_TLS_DESC_HI20
5156 -- : BFD_RELOC_NDS32_TLS_DESC_LO12
5157 -- : BFD_RELOC_NDS32_TLS_DESC_20
5158 -- : BFD_RELOC_NDS32_TLS_DESC_SDA17S2
5159 -- : BFD_RELOC_NDS32_TLS_DESC_ADD
5160 -- : BFD_RELOC_NDS32_TLS_DESC_FUNC
5161 -- : BFD_RELOC_NDS32_TLS_DESC_CALL
5162 -- : BFD_RELOC_NDS32_TLS_DESC_MEM
5163 -- : BFD_RELOC_NDS32_REMOVE
5164 -- : BFD_RELOC_NDS32_GROUP
5165     For TLS.
5166 -- : BFD_RELOC_NDS32_LSI
5167     For floating load store relaxation.
5168 -- : BFD_RELOC_V850_9_PCREL
5169     This is a 9-bit reloc
5170 -- : BFD_RELOC_V850_22_PCREL
5171     This is a 22-bit reloc
5172 -- : BFD_RELOC_V850_SDA_16_16_OFFSET
5173     This is a 16 bit offset from the short data area pointer.
5174 -- : BFD_RELOC_V850_SDA_15_16_OFFSET
5175     This is a 16 bit offset (of which only 15 bits are used) from the
5176     short data area pointer.
5177 -- : BFD_RELOC_V850_ZDA_16_16_OFFSET
5178     This is a 16 bit offset from the zero data area pointer.
5179 -- : BFD_RELOC_V850_ZDA_15_16_OFFSET
5180     This is a 16 bit offset (of which only 15 bits are used) from the
5181     zero data area pointer.
5182 -- : BFD_RELOC_V850_TDA_6_8_OFFSET
5183     This is an 8 bit offset (of which only 6 bits are used) from the
5184     tiny data area pointer.
5185 -- : BFD_RELOC_V850_TDA_7_8_OFFSET
5186     This is an 8bit offset (of which only 7 bits are used) from the
5187     tiny data area pointer.
5188 -- : BFD_RELOC_V850_TDA_7_7_OFFSET
5189     This is a 7 bit offset from the tiny data area pointer.
5190 -- : BFD_RELOC_V850_TDA_16_16_OFFSET
5191     This is a 16 bit offset from the tiny data area pointer.
5192 -- : BFD_RELOC_V850_TDA_4_5_OFFSET
5193     This is a 5 bit offset (of which only 4 bits are used) from the
5194     tiny data area pointer.
5195 -- : BFD_RELOC_V850_TDA_4_4_OFFSET
5196     This is a 4 bit offset from the tiny data area pointer.
5197 -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET
5198     This is a 16 bit offset from the short data area pointer, with the
5199     bits placed non-contiguously in the instruction.
5200 -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET
5201     This is a 16 bit offset from the zero data area pointer, with the
5202     bits placed non-contiguously in the instruction.
5203 -- : BFD_RELOC_V850_CALLT_6_7_OFFSET
5204     This is a 6 bit offset from the call table base pointer.
5205 -- : BFD_RELOC_V850_CALLT_16_16_OFFSET
5206     This is a 16 bit offset from the call table base pointer.
5207 -- : BFD_RELOC_V850_LONGCALL
5208     Used for relaxing indirect function calls.
5209 -- : BFD_RELOC_V850_LONGJUMP
5210     Used for relaxing indirect jumps.
5211 -- : BFD_RELOC_V850_ALIGN
5212     Used to maintain alignment whilst relaxing.
5213 -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET
5214     This is a variation of BFD_RELOC_LO16 that can be used in v850e
5215     ld.bu instructions.
5216 -- : BFD_RELOC_V850_16_PCREL
5217     This is a 16-bit reloc.
5218 -- : BFD_RELOC_V850_17_PCREL
5219     This is a 17-bit reloc.
5220 -- : BFD_RELOC_V850_23
5221     This is a 23-bit reloc.
5222 -- : BFD_RELOC_V850_32_PCREL
5223     This is a 32-bit reloc.
5224 -- : BFD_RELOC_V850_32_ABS
5225     This is a 32-bit reloc.
5226 -- : BFD_RELOC_V850_16_SPLIT_OFFSET
5227     This is a 16-bit reloc.
5228 -- : BFD_RELOC_V850_16_S1
5229     This is a 16-bit reloc.
5230 -- : BFD_RELOC_V850_LO16_S1
5231     Low 16 bits.  16 bit shifted by 1.
5232 -- : BFD_RELOC_V850_CALLT_15_16_OFFSET
5233     This is a 16 bit offset from the call table base pointer.
5234 -- : BFD_RELOC_V850_32_GOTPCREL
5235     DSO relocations.
5236 -- : BFD_RELOC_V850_16_GOT
5237     DSO relocations.
5238 -- : BFD_RELOC_V850_32_GOT
5239     DSO relocations.
5240 -- : BFD_RELOC_V850_22_PLT_PCREL
5241     DSO relocations.
5242 -- : BFD_RELOC_V850_32_PLT_PCREL
5243     DSO relocations.
5244 -- : BFD_RELOC_V850_COPY
5245     DSO relocations.
5246 -- : BFD_RELOC_V850_GLOB_DAT
5247     DSO relocations.
5248 -- : BFD_RELOC_V850_JMP_SLOT
5249     DSO relocations.
5250 -- : BFD_RELOC_V850_RELATIVE
5251     DSO relocations.
5252 -- : BFD_RELOC_V850_16_GOTOFF
5253     DSO relocations.
5254 -- : BFD_RELOC_V850_32_GOTOFF
5255     DSO relocations.
5256 -- : BFD_RELOC_V850_CODE
5257     start code.
5258 -- : BFD_RELOC_V850_DATA
5259     start data in text.
5260 -- : BFD_RELOC_TIC30_LDP
5261     This is a 8bit DP reloc for the tms320c30, where the most
5262     significant 8 bits of a 24 bit word are placed into the least
5263     significant 8 bits of the opcode.
5264 -- : BFD_RELOC_TIC54X_PARTLS7
5265     This is a 7bit reloc for the tms320c54x, where the least
5266     significant 7 bits of a 16 bit word are placed into the least
5267     significant 7 bits of the opcode.
5268 -- : BFD_RELOC_TIC54X_PARTMS9
5269     This is a 9bit DP reloc for the tms320c54x, where the most
5270     significant 9 bits of a 16 bit word are placed into the least
5271     significant 9 bits of the opcode.
5272 -- : BFD_RELOC_TIC54X_23
5273     This is an extended address 23-bit reloc for the tms320c54x.
5274 -- : BFD_RELOC_TIC54X_16_OF_23
5275     This is a 16-bit reloc for the tms320c54x, where the least
5276     significant 16 bits of a 23-bit extended address are placed into
5277     the opcode.
5278 -- : BFD_RELOC_TIC54X_MS7_OF_23
5279     This is a reloc for the tms320c54x, where the most significant 7
5280     bits of a 23-bit extended address are placed into the opcode.
5281 -- : BFD_RELOC_C6000_PCR_S21
5282 -- : BFD_RELOC_C6000_PCR_S12
5283 -- : BFD_RELOC_C6000_PCR_S10
5284 -- : BFD_RELOC_C6000_PCR_S7
5285 -- : BFD_RELOC_C6000_ABS_S16
5286 -- : BFD_RELOC_C6000_ABS_L16
5287 -- : BFD_RELOC_C6000_ABS_H16
5288 -- : BFD_RELOC_C6000_SBR_U15_B
5289 -- : BFD_RELOC_C6000_SBR_U15_H
5290 -- : BFD_RELOC_C6000_SBR_U15_W
5291 -- : BFD_RELOC_C6000_SBR_S16
5292 -- : BFD_RELOC_C6000_SBR_L16_B
5293 -- : BFD_RELOC_C6000_SBR_L16_H
5294 -- : BFD_RELOC_C6000_SBR_L16_W
5295 -- : BFD_RELOC_C6000_SBR_H16_B
5296 -- : BFD_RELOC_C6000_SBR_H16_H
5297 -- : BFD_RELOC_C6000_SBR_H16_W
5298 -- : BFD_RELOC_C6000_SBR_GOT_U15_W
5299 -- : BFD_RELOC_C6000_SBR_GOT_L16_W
5300 -- : BFD_RELOC_C6000_SBR_GOT_H16_W
5301 -- : BFD_RELOC_C6000_DSBT_INDEX
5302 -- : BFD_RELOC_C6000_PREL31
5303 -- : BFD_RELOC_C6000_COPY
5304 -- : BFD_RELOC_C6000_JUMP_SLOT
5305 -- : BFD_RELOC_C6000_EHTYPE
5306 -- : BFD_RELOC_C6000_PCR_H16
5307 -- : BFD_RELOC_C6000_PCR_L16
5308 -- : BFD_RELOC_C6000_ALIGN
5309 -- : BFD_RELOC_C6000_FPHEAD
5310 -- : BFD_RELOC_C6000_NOCMP
5311     TMS320C6000 relocations.
5312 -- : BFD_RELOC_FR30_48
5313     This is a 48 bit reloc for the FR30 that stores 32 bits.
5314 -- : BFD_RELOC_FR30_20
5315     This is a 32 bit reloc for the FR30 that stores 20 bits split up
5316     into two sections.
5317 -- : BFD_RELOC_FR30_6_IN_4
5318     This is a 16 bit reloc for the FR30 that stores a 6 bit word offset
5319     in 4 bits.
5320 -- : BFD_RELOC_FR30_8_IN_8
5321     This is a 16 bit reloc for the FR30 that stores an 8 bit byte
5322     offset into 8 bits.
5323 -- : BFD_RELOC_FR30_9_IN_8
5324     This is a 16 bit reloc for the FR30 that stores a 9 bit short
5325     offset into 8 bits.
5326 -- : BFD_RELOC_FR30_10_IN_8
5327     This is a 16 bit reloc for the FR30 that stores a 10 bit word
5328     offset into 8 bits.
5329 -- : BFD_RELOC_FR30_9_PCREL
5330     This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
5331     short offset into 8 bits.
5332 -- : BFD_RELOC_FR30_12_PCREL
5333     This is a 16 bit reloc for the FR30 that stores a 12 bit pc
5334     relative short offset into 11 bits.
5335 -- : BFD_RELOC_MCORE_PCREL_IMM8BY4
5336 -- : BFD_RELOC_MCORE_PCREL_IMM11BY2
5337 -- : BFD_RELOC_MCORE_PCREL_IMM4BY2
5338 -- : BFD_RELOC_MCORE_PCREL_32
5339 -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2
5340 -- : BFD_RELOC_MCORE_RVA
5341     Motorola Mcore relocations.
5342 -- : BFD_RELOC_MEP_8
5343 -- : BFD_RELOC_MEP_16
5344 -- : BFD_RELOC_MEP_32
5345 -- : BFD_RELOC_MEP_PCREL8A2
5346 -- : BFD_RELOC_MEP_PCREL12A2
5347 -- : BFD_RELOC_MEP_PCREL17A2
5348 -- : BFD_RELOC_MEP_PCREL24A2
5349 -- : BFD_RELOC_MEP_PCABS24A2
5350 -- : BFD_RELOC_MEP_LOW16
5351 -- : BFD_RELOC_MEP_HI16U
5352 -- : BFD_RELOC_MEP_HI16S
5353 -- : BFD_RELOC_MEP_GPREL
5354 -- : BFD_RELOC_MEP_TPREL
5355 -- : BFD_RELOC_MEP_TPREL7
5356 -- : BFD_RELOC_MEP_TPREL7A2
5357 -- : BFD_RELOC_MEP_TPREL7A4
5358 -- : BFD_RELOC_MEP_UIMM24
5359 -- : BFD_RELOC_MEP_ADDR24A4
5360 -- : BFD_RELOC_MEP_GNU_VTINHERIT
5361 -- : BFD_RELOC_MEP_GNU_VTENTRY
5362     Toshiba Media Processor Relocations.
5363 -- : BFD_RELOC_METAG_HIADDR16
5364 -- : BFD_RELOC_METAG_LOADDR16
5365 -- : BFD_RELOC_METAG_RELBRANCH
5366 -- : BFD_RELOC_METAG_GETSETOFF
5367 -- : BFD_RELOC_METAG_HIOG
5368 -- : BFD_RELOC_METAG_LOOG
5369 -- : BFD_RELOC_METAG_REL8
5370 -- : BFD_RELOC_METAG_REL16
5371 -- : BFD_RELOC_METAG_HI16_GOTOFF
5372 -- : BFD_RELOC_METAG_LO16_GOTOFF
5373 -- : BFD_RELOC_METAG_GETSET_GOTOFF
5374 -- : BFD_RELOC_METAG_GETSET_GOT
5375 -- : BFD_RELOC_METAG_HI16_GOTPC
5376 -- : BFD_RELOC_METAG_LO16_GOTPC
5377 -- : BFD_RELOC_METAG_HI16_PLT
5378 -- : BFD_RELOC_METAG_LO16_PLT
5379 -- : BFD_RELOC_METAG_RELBRANCH_PLT
5380 -- : BFD_RELOC_METAG_GOTOFF
5381 -- : BFD_RELOC_METAG_PLT
5382 -- : BFD_RELOC_METAG_COPY
5383 -- : BFD_RELOC_METAG_JMP_SLOT
5384 -- : BFD_RELOC_METAG_RELATIVE
5385 -- : BFD_RELOC_METAG_GLOB_DAT
5386 -- : BFD_RELOC_METAG_TLS_GD
5387 -- : BFD_RELOC_METAG_TLS_LDM
5388 -- : BFD_RELOC_METAG_TLS_LDO_HI16
5389 -- : BFD_RELOC_METAG_TLS_LDO_LO16
5390 -- : BFD_RELOC_METAG_TLS_LDO
5391 -- : BFD_RELOC_METAG_TLS_IE
5392 -- : BFD_RELOC_METAG_TLS_IENONPIC
5393 -- : BFD_RELOC_METAG_TLS_IENONPIC_HI16
5394 -- : BFD_RELOC_METAG_TLS_IENONPIC_LO16
5395 -- : BFD_RELOC_METAG_TLS_TPOFF
5396 -- : BFD_RELOC_METAG_TLS_DTPMOD
5397 -- : BFD_RELOC_METAG_TLS_DTPOFF
5398 -- : BFD_RELOC_METAG_TLS_LE
5399 -- : BFD_RELOC_METAG_TLS_LE_HI16
5400 -- : BFD_RELOC_METAG_TLS_LE_LO16
5401     Imagination Technologies Meta relocations.
5402 -- : BFD_RELOC_MMIX_GETA
5403 -- : BFD_RELOC_MMIX_GETA_1
5404 -- : BFD_RELOC_MMIX_GETA_2
5405 -- : BFD_RELOC_MMIX_GETA_3
5406     These are relocations for the GETA instruction.
5407 -- : BFD_RELOC_MMIX_CBRANCH
5408 -- : BFD_RELOC_MMIX_CBRANCH_J
5409 -- : BFD_RELOC_MMIX_CBRANCH_1
5410 -- : BFD_RELOC_MMIX_CBRANCH_2
5411 -- : BFD_RELOC_MMIX_CBRANCH_3
5412     These are relocations for a conditional branch instruction.
5413 -- : BFD_RELOC_MMIX_PUSHJ
5414 -- : BFD_RELOC_MMIX_PUSHJ_1
5415 -- : BFD_RELOC_MMIX_PUSHJ_2
5416 -- : BFD_RELOC_MMIX_PUSHJ_3
5417 -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE
5418     These are relocations for the PUSHJ instruction.
5419 -- : BFD_RELOC_MMIX_JMP
5420 -- : BFD_RELOC_MMIX_JMP_1
5421 -- : BFD_RELOC_MMIX_JMP_2
5422 -- : BFD_RELOC_MMIX_JMP_3
5423     These are relocations for the JMP instruction.
5424 -- : BFD_RELOC_MMIX_ADDR19
5425     This is a relocation for a relative address as in a GETA
5426     instruction or a branch.
5427 -- : BFD_RELOC_MMIX_ADDR27
5428     This is a relocation for a relative address as in a JMP
5429     instruction.
5430 -- : BFD_RELOC_MMIX_REG_OR_BYTE
5431     This is a relocation for an instruction field that may be a general
5432     register or a value 0..255.
5433 -- : BFD_RELOC_MMIX_REG
5434     This is a relocation for an instruction field that may be a general
5435     register.
5436 -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET
5437     This is a relocation for two instruction fields holding a register
5438     and an offset, the equivalent of the relocation.
5439 -- : BFD_RELOC_MMIX_LOCAL
5440     This relocation is an assertion that the expression is not
5441     allocated as a global register.  It does not modify contents.
5442 -- : BFD_RELOC_AVR_7_PCREL
5443     This is a 16 bit reloc for the AVR that stores 8 bit pc relative
5444     short offset into 7 bits.
5445 -- : BFD_RELOC_AVR_13_PCREL
5446     This is a 16 bit reloc for the AVR that stores 13 bit pc relative
5447     short offset into 12 bits.
5448 -- : BFD_RELOC_AVR_16_PM
5449     This is a 16 bit reloc for the AVR that stores 17 bit value
5450     (usually program memory address) into 16 bits.
5451 -- : BFD_RELOC_AVR_LO8_LDI
5452     This is a 16 bit reloc for the AVR that stores 8 bit value (usually
5453     data memory address) into 8 bit immediate value of LDI insn.
5454 -- : BFD_RELOC_AVR_HI8_LDI
5455     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
5456     bit of data memory address) into 8 bit immediate value of LDI insn.
5457 -- : BFD_RELOC_AVR_HH8_LDI
5458     This is a 16 bit reloc for the AVR that stores 8 bit value (most
5459     high 8 bit of program memory address) into 8 bit immediate value of
5460     LDI insn.
5461 -- : BFD_RELOC_AVR_MS8_LDI
5462     This is a 16 bit reloc for the AVR that stores 8 bit value (most
5463     high 8 bit of 32 bit value) into 8 bit immediate value of LDI insn.
5464 -- : BFD_RELOC_AVR_LO8_LDI_NEG
5465     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5466     (usually data memory address) into 8 bit immediate value of SUBI
5467     insn.
5468 -- : BFD_RELOC_AVR_HI8_LDI_NEG
5469     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5470     (high 8 bit of data memory address) into 8 bit immediate value of
5471     SUBI insn.
5472 -- : BFD_RELOC_AVR_HH8_LDI_NEG
5473     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5474     (most high 8 bit of program memory address) into 8 bit immediate
5475     value of LDI or SUBI insn.
5476 -- : BFD_RELOC_AVR_MS8_LDI_NEG
5477     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5478     (msb of 32 bit value) into 8 bit immediate value of LDI insn.
5479 -- : BFD_RELOC_AVR_LO8_LDI_PM
5480     This is a 16 bit reloc for the AVR that stores 8 bit value (usually
5481     command address) into 8 bit immediate value of LDI insn.
5482 -- : BFD_RELOC_AVR_LO8_LDI_GS
5483     This is a 16 bit reloc for the AVR that stores 8 bit value (command
5484     address) into 8 bit immediate value of LDI insn.  If the address is
5485     beyond the 128k boundary, the linker inserts a jump stub for this
5486     reloc in the lower 128k.
5487 -- : BFD_RELOC_AVR_HI8_LDI_PM
5488     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
5489     bit of command address) into 8 bit immediate value of LDI insn.
5490 -- : BFD_RELOC_AVR_HI8_LDI_GS
5491     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
5492     bit of command address) into 8 bit immediate value of LDI insn.  If
5493     the address is beyond the 128k boundary, the linker inserts a jump
5494     stub for this reloc below 128k.
5495 -- : BFD_RELOC_AVR_HH8_LDI_PM
5496     This is a 16 bit reloc for the AVR that stores 8 bit value (most
5497     high 8 bit of command address) into 8 bit immediate value of LDI
5498     insn.
5499 -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG
5500     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5501     (usually command address) into 8 bit immediate value of SUBI insn.
5502 -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG
5503     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5504     (high 8 bit of 16 bit command address) into 8 bit immediate value
5505     of SUBI insn.
5506 -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG
5507     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5508     (high 6 bit of 22 bit command address) into 8 bit immediate value
5509     of SUBI insn.
5510 -- : BFD_RELOC_AVR_CALL
5511     This is a 32 bit reloc for the AVR that stores 23 bit value into 22
5512     bits.
5513 -- : BFD_RELOC_AVR_LDI
5514     This is a 16 bit reloc for the AVR that stores all needed bits for
5515     absolute addressing with ldi with overflow check to linktime
5516 -- : BFD_RELOC_AVR_6
5517     This is a 6 bit reloc for the AVR that stores offset for ldd/std
5518     instructions
5519 -- : BFD_RELOC_AVR_6_ADIW
5520     This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
5521     instructions
5522 -- : BFD_RELOC_AVR_8_LO
5523     This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol
5524     in .byte lo8(symbol)
5525 -- : BFD_RELOC_AVR_8_HI
5526     This is a 8 bit reloc for the AVR that stores bits 8..15 of a
5527     symbol in .byte hi8(symbol)
5528 -- : BFD_RELOC_AVR_8_HLO
5529     This is a 8 bit reloc for the AVR that stores bits 16..23 of a
5530     symbol in .byte hlo8(symbol)
5531 -- : BFD_RELOC_AVR_DIFF8
5532 -- : BFD_RELOC_AVR_DIFF16
5533 -- : BFD_RELOC_AVR_DIFF32
5534     AVR relocations to mark the difference of two local symbols.  These
5535     are only needed to support linker relaxation and can be ignored
5536     when not relaxing.  The field is set to the value of the difference
5537     assuming no relaxation.  The relocation encodes the position of the
5538     second symbol so the linker can determine whether to adjust the
5539     field value.
5540 -- : BFD_RELOC_AVR_LDS_STS_16
5541     This is a 7 bit reloc for the AVR that stores SRAM address for
5542     16bit lds and sts instructions supported only tiny core.
5543 -- : BFD_RELOC_AVR_PORT6
5544     This is a 6 bit reloc for the AVR that stores an I/O register
5545     number for the IN and OUT instructions
5546 -- : BFD_RELOC_AVR_PORT5
5547     This is a 5 bit reloc for the AVR that stores an I/O register
5548     number for the SBIC, SBIS, SBI and CBI instructions
5549 -- : BFD_RELOC_RISCV_HI20
5550 -- : BFD_RELOC_RISCV_PCREL_HI20
5551 -- : BFD_RELOC_RISCV_PCREL_LO12_I
5552 -- : BFD_RELOC_RISCV_PCREL_LO12_S
5553 -- : BFD_RELOC_RISCV_LO12_I
5554 -- : BFD_RELOC_RISCV_LO12_S
5555 -- : BFD_RELOC_RISCV_GPREL12_I
5556 -- : BFD_RELOC_RISCV_GPREL12_S
5557 -- : BFD_RELOC_RISCV_TPREL_HI20
5558 -- : BFD_RELOC_RISCV_TPREL_LO12_I
5559 -- : BFD_RELOC_RISCV_TPREL_LO12_S
5560 -- : BFD_RELOC_RISCV_TPREL_ADD
5561 -- : BFD_RELOC_RISCV_CALL
5562 -- : BFD_RELOC_RISCV_CALL_PLT
5563 -- : BFD_RELOC_RISCV_ADD8
5564 -- : BFD_RELOC_RISCV_ADD16
5565 -- : BFD_RELOC_RISCV_ADD32
5566 -- : BFD_RELOC_RISCV_ADD64
5567 -- : BFD_RELOC_RISCV_SUB8
5568 -- : BFD_RELOC_RISCV_SUB16
5569 -- : BFD_RELOC_RISCV_SUB32
5570 -- : BFD_RELOC_RISCV_SUB64
5571 -- : BFD_RELOC_RISCV_GOT_HI20
5572 -- : BFD_RELOC_RISCV_TLS_GOT_HI20
5573 -- : BFD_RELOC_RISCV_TLS_GD_HI20
5574 -- : BFD_RELOC_RISCV_JMP
5575 -- : BFD_RELOC_RISCV_TLS_DTPMOD32
5576 -- : BFD_RELOC_RISCV_TLS_DTPREL32
5577 -- : BFD_RELOC_RISCV_TLS_DTPMOD64
5578 -- : BFD_RELOC_RISCV_TLS_DTPREL64
5579 -- : BFD_RELOC_RISCV_TLS_TPREL32
5580 -- : BFD_RELOC_RISCV_TLS_TPREL64
5581 -- : BFD_RELOC_RISCV_ALIGN
5582 -- : BFD_RELOC_RISCV_RVC_BRANCH
5583 -- : BFD_RELOC_RISCV_RVC_JUMP
5584 -- : BFD_RELOC_RISCV_RVC_LUI
5585 -- : BFD_RELOC_RISCV_GPREL_I
5586 -- : BFD_RELOC_RISCV_GPREL_S
5587 -- : BFD_RELOC_RISCV_TPREL_I
5588 -- : BFD_RELOC_RISCV_TPREL_S
5589 -- : BFD_RELOC_RISCV_RELAX
5590 -- : BFD_RELOC_RISCV_CFA
5591 -- : BFD_RELOC_RISCV_SUB6
5592 -- : BFD_RELOC_RISCV_SET6
5593 -- : BFD_RELOC_RISCV_SET8
5594 -- : BFD_RELOC_RISCV_SET16
5595 -- : BFD_RELOC_RISCV_SET32
5596 -- : BFD_RELOC_RISCV_32_PCREL
5597     RISC-V relocations.
5598 -- : BFD_RELOC_RL78_NEG8
5599 -- : BFD_RELOC_RL78_NEG16
5600 -- : BFD_RELOC_RL78_NEG24
5601 -- : BFD_RELOC_RL78_NEG32
5602 -- : BFD_RELOC_RL78_16_OP
5603 -- : BFD_RELOC_RL78_24_OP
5604 -- : BFD_RELOC_RL78_32_OP
5605 -- : BFD_RELOC_RL78_8U
5606 -- : BFD_RELOC_RL78_16U
5607 -- : BFD_RELOC_RL78_24U
5608 -- : BFD_RELOC_RL78_DIR3U_PCREL
5609 -- : BFD_RELOC_RL78_DIFF
5610 -- : BFD_RELOC_RL78_GPRELB
5611 -- : BFD_RELOC_RL78_GPRELW
5612 -- : BFD_RELOC_RL78_GPRELL
5613 -- : BFD_RELOC_RL78_SYM
5614 -- : BFD_RELOC_RL78_OP_SUBTRACT
5615 -- : BFD_RELOC_RL78_OP_NEG
5616 -- : BFD_RELOC_RL78_OP_AND
5617 -- : BFD_RELOC_RL78_OP_SHRA
5618 -- : BFD_RELOC_RL78_ABS8
5619 -- : BFD_RELOC_RL78_ABS16
5620 -- : BFD_RELOC_RL78_ABS16_REV
5621 -- : BFD_RELOC_RL78_ABS32
5622 -- : BFD_RELOC_RL78_ABS32_REV
5623 -- : BFD_RELOC_RL78_ABS16U
5624 -- : BFD_RELOC_RL78_ABS16UW
5625 -- : BFD_RELOC_RL78_ABS16UL
5626 -- : BFD_RELOC_RL78_RELAX
5627 -- : BFD_RELOC_RL78_HI16
5628 -- : BFD_RELOC_RL78_HI8
5629 -- : BFD_RELOC_RL78_LO16
5630 -- : BFD_RELOC_RL78_CODE
5631 -- : BFD_RELOC_RL78_SADDR
5632     Renesas RL78 Relocations.
5633 -- : BFD_RELOC_RX_NEG8
5634 -- : BFD_RELOC_RX_NEG16
5635 -- : BFD_RELOC_RX_NEG24
5636 -- : BFD_RELOC_RX_NEG32
5637 -- : BFD_RELOC_RX_16_OP
5638 -- : BFD_RELOC_RX_24_OP
5639 -- : BFD_RELOC_RX_32_OP
5640 -- : BFD_RELOC_RX_8U
5641 -- : BFD_RELOC_RX_16U
5642 -- : BFD_RELOC_RX_24U
5643 -- : BFD_RELOC_RX_DIR3U_PCREL
5644 -- : BFD_RELOC_RX_DIFF
5645 -- : BFD_RELOC_RX_GPRELB
5646 -- : BFD_RELOC_RX_GPRELW
5647 -- : BFD_RELOC_RX_GPRELL
5648 -- : BFD_RELOC_RX_SYM
5649 -- : BFD_RELOC_RX_OP_SUBTRACT
5650 -- : BFD_RELOC_RX_OP_NEG
5651 -- : BFD_RELOC_RX_ABS8
5652 -- : BFD_RELOC_RX_ABS16
5653 -- : BFD_RELOC_RX_ABS16_REV
5654 -- : BFD_RELOC_RX_ABS32
5655 -- : BFD_RELOC_RX_ABS32_REV
5656 -- : BFD_RELOC_RX_ABS16U
5657 -- : BFD_RELOC_RX_ABS16UW
5658 -- : BFD_RELOC_RX_ABS16UL
5659 -- : BFD_RELOC_RX_RELAX
5660     Renesas RX Relocations.
5661 -- : BFD_RELOC_390_12
5662     Direct 12 bit.
5663 -- : BFD_RELOC_390_GOT12
5664     12 bit GOT offset.
5665 -- : BFD_RELOC_390_PLT32
5666     32 bit PC relative PLT address.
5667 -- : BFD_RELOC_390_COPY
5668     Copy symbol at runtime.
5669 -- : BFD_RELOC_390_GLOB_DAT
5670     Create GOT entry.
5671 -- : BFD_RELOC_390_JMP_SLOT
5672     Create PLT entry.
5673 -- : BFD_RELOC_390_RELATIVE
5674     Adjust by program base.
5675 -- : BFD_RELOC_390_GOTPC
5676     32 bit PC relative offset to GOT.
5677 -- : BFD_RELOC_390_GOT16
5678     16 bit GOT offset.
5679 -- : BFD_RELOC_390_PC12DBL
5680     PC relative 12 bit shifted by 1.
5681 -- : BFD_RELOC_390_PLT12DBL
5682     12 bit PC rel.  PLT shifted by 1.
5683 -- : BFD_RELOC_390_PC16DBL
5684     PC relative 16 bit shifted by 1.
5685 -- : BFD_RELOC_390_PLT16DBL
5686     16 bit PC rel.  PLT shifted by 1.
5687 -- : BFD_RELOC_390_PC24DBL
5688     PC relative 24 bit shifted by 1.
5689 -- : BFD_RELOC_390_PLT24DBL
5690     24 bit PC rel.  PLT shifted by 1.
5691 -- : BFD_RELOC_390_PC32DBL
5692     PC relative 32 bit shifted by 1.
5693 -- : BFD_RELOC_390_PLT32DBL
5694     32 bit PC rel.  PLT shifted by 1.
5695 -- : BFD_RELOC_390_GOTPCDBL
5696     32 bit PC rel.  GOT shifted by 1.
5697 -- : BFD_RELOC_390_GOT64
5698     64 bit GOT offset.
5699 -- : BFD_RELOC_390_PLT64
5700     64 bit PC relative PLT address.
5701 -- : BFD_RELOC_390_GOTENT
5702     32 bit rel.  offset to GOT entry.
5703 -- : BFD_RELOC_390_GOTOFF64
5704     64 bit offset to GOT.
5705 -- : BFD_RELOC_390_GOTPLT12
5706     12-bit offset to symbol-entry within GOT, with PLT handling.
5707 -- : BFD_RELOC_390_GOTPLT16
5708     16-bit offset to symbol-entry within GOT, with PLT handling.
5709 -- : BFD_RELOC_390_GOTPLT32
5710     32-bit offset to symbol-entry within GOT, with PLT handling.
5711 -- : BFD_RELOC_390_GOTPLT64
5712     64-bit offset to symbol-entry within GOT, with PLT handling.
5713 -- : BFD_RELOC_390_GOTPLTENT
5714     32-bit rel.  offset to symbol-entry within GOT, with PLT handling.
5715 -- : BFD_RELOC_390_PLTOFF16
5716     16-bit rel.  offset from the GOT to a PLT entry.
5717 -- : BFD_RELOC_390_PLTOFF32
5718     32-bit rel.  offset from the GOT to a PLT entry.
5719 -- : BFD_RELOC_390_PLTOFF64
5720     64-bit rel.  offset from the GOT to a PLT entry.
5721 -- : BFD_RELOC_390_TLS_LOAD
5722 -- : BFD_RELOC_390_TLS_GDCALL
5723 -- : BFD_RELOC_390_TLS_LDCALL
5724 -- : BFD_RELOC_390_TLS_GD32
5725 -- : BFD_RELOC_390_TLS_GD64
5726 -- : BFD_RELOC_390_TLS_GOTIE12
5727 -- : BFD_RELOC_390_TLS_GOTIE32
5728 -- : BFD_RELOC_390_TLS_GOTIE64
5729 -- : BFD_RELOC_390_TLS_LDM32
5730 -- : BFD_RELOC_390_TLS_LDM64
5731 -- : BFD_RELOC_390_TLS_IE32
5732 -- : BFD_RELOC_390_TLS_IE64
5733 -- : BFD_RELOC_390_TLS_IEENT
5734 -- : BFD_RELOC_390_TLS_LE32
5735 -- : BFD_RELOC_390_TLS_LE64
5736 -- : BFD_RELOC_390_TLS_LDO32
5737 -- : BFD_RELOC_390_TLS_LDO64
5738 -- : BFD_RELOC_390_TLS_DTPMOD
5739 -- : BFD_RELOC_390_TLS_DTPOFF
5740 -- : BFD_RELOC_390_TLS_TPOFF
5741     s390 tls relocations.
5742 -- : BFD_RELOC_390_20
5743 -- : BFD_RELOC_390_GOT20
5744 -- : BFD_RELOC_390_GOTPLT20
5745 -- : BFD_RELOC_390_TLS_GOTIE20
5746     Long displacement extension.
5747 -- : BFD_RELOC_390_IRELATIVE
5748     STT_GNU_IFUNC relocation.
5749 -- : BFD_RELOC_SCORE_GPREL15
5750     Score relocations Low 16 bit for load/store
5751 -- : BFD_RELOC_SCORE_DUMMY2
5752 -- : BFD_RELOC_SCORE_JMP
5753     This is a 24-bit reloc with the right 1 bit assumed to be 0
5754 -- : BFD_RELOC_SCORE_BRANCH
5755     This is a 19-bit reloc with the right 1 bit assumed to be 0
5756 -- : BFD_RELOC_SCORE_IMM30
5757     This is a 32-bit reloc for 48-bit instructions.
5758 -- : BFD_RELOC_SCORE_IMM32
5759     This is a 32-bit reloc for 48-bit instructions.
5760 -- : BFD_RELOC_SCORE16_JMP
5761     This is a 11-bit reloc with the right 1 bit assumed to be 0
5762 -- : BFD_RELOC_SCORE16_BRANCH
5763     This is a 8-bit reloc with the right 1 bit assumed to be 0
5764 -- : BFD_RELOC_SCORE_BCMP
5765     This is a 9-bit reloc with the right 1 bit assumed to be 0
5766 -- : BFD_RELOC_SCORE_GOT15
5767 -- : BFD_RELOC_SCORE_GOT_LO16
5768 -- : BFD_RELOC_SCORE_CALL15
5769 -- : BFD_RELOC_SCORE_DUMMY_HI16
5770     Undocumented Score relocs
5771 -- : BFD_RELOC_IP2K_FR9
5772     Scenix IP2K - 9-bit register number / data address
5773 -- : BFD_RELOC_IP2K_BANK
5774     Scenix IP2K - 4-bit register/data bank number
5775 -- : BFD_RELOC_IP2K_ADDR16CJP
5776     Scenix IP2K - low 13 bits of instruction word address
5777 -- : BFD_RELOC_IP2K_PAGE3
5778     Scenix IP2K - high 3 bits of instruction word address
5779 -- : BFD_RELOC_IP2K_LO8DATA
5780 -- : BFD_RELOC_IP2K_HI8DATA
5781 -- : BFD_RELOC_IP2K_EX8DATA
5782     Scenix IP2K - ext/low/high 8 bits of data address
5783 -- : BFD_RELOC_IP2K_LO8INSN
5784 -- : BFD_RELOC_IP2K_HI8INSN
5785     Scenix IP2K - low/high 8 bits of instruction word address
5786 -- : BFD_RELOC_IP2K_PC_SKIP
5787     Scenix IP2K - even/odd PC modifier to modify snb pcl.0
5788 -- : BFD_RELOC_IP2K_TEXT
5789     Scenix IP2K - 16 bit word address in text section.
5790 -- : BFD_RELOC_IP2K_FR_OFFSET
5791     Scenix IP2K - 7-bit sp or dp offset
5792 -- : BFD_RELOC_VPE4KMATH_DATA
5793 -- : BFD_RELOC_VPE4KMATH_INSN
5794     Scenix VPE4K coprocessor - data/insn-space addressing
5795 -- : BFD_RELOC_VTABLE_INHERIT
5796 -- : BFD_RELOC_VTABLE_ENTRY
5797     These two relocations are used by the linker to determine which of
5798     the entries in a C++ virtual function table are actually used.
5799     When the -gc-sections option is given, the linker will zero out the
5800     entries that are not used, so that the code for those functions
5801     need not be included in the output.
5802
5803     VTABLE_INHERIT is a zero-space relocation used to describe to the
5804     linker the inheritance tree of a C++ virtual function table.  The
5805     relocation's symbol should be the parent class' vtable, and the
5806     relocation should be located at the child vtable.
5807
5808     VTABLE_ENTRY is a zero-space relocation that describes the use of a
5809     virtual function table entry.  The reloc's symbol should refer to
5810     the table of the class mentioned in the code.  Off of that base, an
5811     offset describes the entry that is being used.  For Rela hosts,
5812     this offset is stored in the reloc's addend.  For Rel hosts, we are
5813     forced to put this offset in the reloc's section offset.
5814 -- : BFD_RELOC_IA64_IMM14
5815 -- : BFD_RELOC_IA64_IMM22
5816 -- : BFD_RELOC_IA64_IMM64
5817 -- : BFD_RELOC_IA64_DIR32MSB
5818 -- : BFD_RELOC_IA64_DIR32LSB
5819 -- : BFD_RELOC_IA64_DIR64MSB
5820 -- : BFD_RELOC_IA64_DIR64LSB
5821 -- : BFD_RELOC_IA64_GPREL22
5822 -- : BFD_RELOC_IA64_GPREL64I
5823 -- : BFD_RELOC_IA64_GPREL32MSB
5824 -- : BFD_RELOC_IA64_GPREL32LSB
5825 -- : BFD_RELOC_IA64_GPREL64MSB
5826 -- : BFD_RELOC_IA64_GPREL64LSB
5827 -- : BFD_RELOC_IA64_LTOFF22
5828 -- : BFD_RELOC_IA64_LTOFF64I
5829 -- : BFD_RELOC_IA64_PLTOFF22
5830 -- : BFD_RELOC_IA64_PLTOFF64I
5831 -- : BFD_RELOC_IA64_PLTOFF64MSB
5832 -- : BFD_RELOC_IA64_PLTOFF64LSB
5833 -- : BFD_RELOC_IA64_FPTR64I
5834 -- : BFD_RELOC_IA64_FPTR32MSB
5835 -- : BFD_RELOC_IA64_FPTR32LSB
5836 -- : BFD_RELOC_IA64_FPTR64MSB
5837 -- : BFD_RELOC_IA64_FPTR64LSB
5838 -- : BFD_RELOC_IA64_PCREL21B
5839 -- : BFD_RELOC_IA64_PCREL21BI
5840 -- : BFD_RELOC_IA64_PCREL21M
5841 -- : BFD_RELOC_IA64_PCREL21F
5842 -- : BFD_RELOC_IA64_PCREL22
5843 -- : BFD_RELOC_IA64_PCREL60B
5844 -- : BFD_RELOC_IA64_PCREL64I
5845 -- : BFD_RELOC_IA64_PCREL32MSB
5846 -- : BFD_RELOC_IA64_PCREL32LSB
5847 -- : BFD_RELOC_IA64_PCREL64MSB
5848 -- : BFD_RELOC_IA64_PCREL64LSB
5849 -- : BFD_RELOC_IA64_LTOFF_FPTR22
5850 -- : BFD_RELOC_IA64_LTOFF_FPTR64I
5851 -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB
5852 -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB
5853 -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB
5854 -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB
5855 -- : BFD_RELOC_IA64_SEGREL32MSB
5856 -- : BFD_RELOC_IA64_SEGREL32LSB
5857 -- : BFD_RELOC_IA64_SEGREL64MSB
5858 -- : BFD_RELOC_IA64_SEGREL64LSB
5859 -- : BFD_RELOC_IA64_SECREL32MSB
5860 -- : BFD_RELOC_IA64_SECREL32LSB
5861 -- : BFD_RELOC_IA64_SECREL64MSB
5862 -- : BFD_RELOC_IA64_SECREL64LSB
5863 -- : BFD_RELOC_IA64_REL32MSB
5864 -- : BFD_RELOC_IA64_REL32LSB
5865 -- : BFD_RELOC_IA64_REL64MSB
5866 -- : BFD_RELOC_IA64_REL64LSB
5867 -- : BFD_RELOC_IA64_LTV32MSB
5868 -- : BFD_RELOC_IA64_LTV32LSB
5869 -- : BFD_RELOC_IA64_LTV64MSB
5870 -- : BFD_RELOC_IA64_LTV64LSB
5871 -- : BFD_RELOC_IA64_IPLTMSB
5872 -- : BFD_RELOC_IA64_IPLTLSB
5873 -- : BFD_RELOC_IA64_COPY
5874 -- : BFD_RELOC_IA64_LTOFF22X
5875 -- : BFD_RELOC_IA64_LDXMOV
5876 -- : BFD_RELOC_IA64_TPREL14
5877 -- : BFD_RELOC_IA64_TPREL22
5878 -- : BFD_RELOC_IA64_TPREL64I
5879 -- : BFD_RELOC_IA64_TPREL64MSB
5880 -- : BFD_RELOC_IA64_TPREL64LSB
5881 -- : BFD_RELOC_IA64_LTOFF_TPREL22
5882 -- : BFD_RELOC_IA64_DTPMOD64MSB
5883 -- : BFD_RELOC_IA64_DTPMOD64LSB
5884 -- : BFD_RELOC_IA64_LTOFF_DTPMOD22
5885 -- : BFD_RELOC_IA64_DTPREL14
5886 -- : BFD_RELOC_IA64_DTPREL22
5887 -- : BFD_RELOC_IA64_DTPREL64I
5888 -- : BFD_RELOC_IA64_DTPREL32MSB
5889 -- : BFD_RELOC_IA64_DTPREL32LSB
5890 -- : BFD_RELOC_IA64_DTPREL64MSB
5891 -- : BFD_RELOC_IA64_DTPREL64LSB
5892 -- : BFD_RELOC_IA64_LTOFF_DTPREL22
5893     Intel IA64 Relocations.
5894 -- : BFD_RELOC_M68HC11_HI8
5895     Motorola 68HC11 reloc.  This is the 8 bit high part of an absolute
5896     address.
5897 -- : BFD_RELOC_M68HC11_LO8
5898     Motorola 68HC11 reloc.  This is the 8 bit low part of an absolute
5899     address.
5900 -- : BFD_RELOC_M68HC11_3B
5901     Motorola 68HC11 reloc.  This is the 3 bit of a value.
5902 -- : BFD_RELOC_M68HC11_RL_JUMP
5903     Motorola 68HC11 reloc.  This reloc marks the beginning of a
5904     jump/call instruction.  It is used for linker relaxation to
5905     correctly identify beginning of instruction and change some
5906     branches to use PC-relative addressing mode.
5907 -- : BFD_RELOC_M68HC11_RL_GROUP
5908     Motorola 68HC11 reloc.  This reloc marks a group of several
5909     instructions that gcc generates and for which the linker relaxation
5910     pass can modify and/or remove some of them.
5911 -- : BFD_RELOC_M68HC11_LO16
5912     Motorola 68HC11 reloc.  This is the 16-bit lower part of an
5913     address.  It is used for 'call' instruction to specify the symbol
5914     address without any special transformation (due to memory bank
5915     window).
5916 -- : BFD_RELOC_M68HC11_PAGE
5917     Motorola 68HC11 reloc.  This is a 8-bit reloc that specifies the
5918     page number of an address.  It is used by 'call' instruction to
5919     specify the page number of the symbol.
5920 -- : BFD_RELOC_M68HC11_24
5921     Motorola 68HC11 reloc.  This is a 24-bit reloc that represents the
5922     address with a 16-bit value and a 8-bit page number.  The symbol
5923     address is transformed to follow the 16K memory bank of 68HC12
5924     (seen as mapped in the window).
5925 -- : BFD_RELOC_M68HC12_5B
5926     Motorola 68HC12 reloc.  This is the 5 bits of a value.
5927 -- : BFD_RELOC_XGATE_RL_JUMP
5928     Freescale XGATE reloc.  This reloc marks the beginning of a bra/jal
5929     instruction.
5930 -- : BFD_RELOC_XGATE_RL_GROUP
5931     Freescale XGATE reloc.  This reloc marks a group of several
5932     instructions that gcc generates and for which the linker relaxation
5933     pass can modify and/or remove some of them.
5934 -- : BFD_RELOC_XGATE_LO16
5935     Freescale XGATE reloc.  This is the 16-bit lower part of an
5936     address.  It is used for the '16-bit' instructions.
5937 -- : BFD_RELOC_XGATE_GPAGE
5938     Freescale XGATE reloc.
5939 -- : BFD_RELOC_XGATE_24
5940     Freescale XGATE reloc.
5941 -- : BFD_RELOC_XGATE_PCREL_9
5942     Freescale XGATE reloc.  This is a 9-bit pc-relative reloc.
5943 -- : BFD_RELOC_XGATE_PCREL_10
5944     Freescale XGATE reloc.  This is a 10-bit pc-relative reloc.
5945 -- : BFD_RELOC_XGATE_IMM8_LO
5946     Freescale XGATE reloc.  This is the 16-bit lower part of an
5947     address.  It is used for the '16-bit' instructions.
5948 -- : BFD_RELOC_XGATE_IMM8_HI
5949     Freescale XGATE reloc.  This is the 16-bit higher part of an
5950     address.  It is used for the '16-bit' instructions.
5951 -- : BFD_RELOC_XGATE_IMM3
5952     Freescale XGATE reloc.  This is a 3-bit pc-relative reloc.
5953 -- : BFD_RELOC_XGATE_IMM4
5954     Freescale XGATE reloc.  This is a 4-bit pc-relative reloc.
5955 -- : BFD_RELOC_XGATE_IMM5
5956     Freescale XGATE reloc.  This is a 5-bit pc-relative reloc.
5957 -- : BFD_RELOC_M68HC12_9B
5958     Motorola 68HC12 reloc.  This is the 9 bits of a value.
5959 -- : BFD_RELOC_M68HC12_16B
5960     Motorola 68HC12 reloc.  This is the 16 bits of a value.
5961 -- : BFD_RELOC_M68HC12_9_PCREL
5962     Motorola 68HC12/XGATE reloc.  This is a PCREL9 branch.
5963 -- : BFD_RELOC_M68HC12_10_PCREL
5964     Motorola 68HC12/XGATE reloc.  This is a PCREL10 branch.
5965 -- : BFD_RELOC_M68HC12_LO8XG
5966     Motorola 68HC12/XGATE reloc.  This is the 8 bit low part of an
5967     absolute address and immediately precedes a matching HI8XG part.
5968 -- : BFD_RELOC_M68HC12_HI8XG
5969     Motorola 68HC12/XGATE reloc.  This is the 8 bit high part of an
5970     absolute address and immediately follows a matching LO8XG part.
5971 -- : BFD_RELOC_S12Z_15_PCREL
5972     Freescale S12Z reloc.  This is a 15 bit relative address.  If the
5973     most significant bits are all zero then it may be truncated to 8
5974     bits.
5975 -- : BFD_RELOC_CR16_NUM8
5976 -- : BFD_RELOC_CR16_NUM16
5977 -- : BFD_RELOC_CR16_NUM32
5978 -- : BFD_RELOC_CR16_NUM32a
5979 -- : BFD_RELOC_CR16_REGREL0
5980 -- : BFD_RELOC_CR16_REGREL4
5981 -- : BFD_RELOC_CR16_REGREL4a
5982 -- : BFD_RELOC_CR16_REGREL14
5983 -- : BFD_RELOC_CR16_REGREL14a
5984 -- : BFD_RELOC_CR16_REGREL16
5985 -- : BFD_RELOC_CR16_REGREL20
5986 -- : BFD_RELOC_CR16_REGREL20a
5987 -- : BFD_RELOC_CR16_ABS20
5988 -- : BFD_RELOC_CR16_ABS24
5989 -- : BFD_RELOC_CR16_IMM4
5990 -- : BFD_RELOC_CR16_IMM8
5991 -- : BFD_RELOC_CR16_IMM16
5992 -- : BFD_RELOC_CR16_IMM20
5993 -- : BFD_RELOC_CR16_IMM24
5994 -- : BFD_RELOC_CR16_IMM32
5995 -- : BFD_RELOC_CR16_IMM32a
5996 -- : BFD_RELOC_CR16_DISP4
5997 -- : BFD_RELOC_CR16_DISP8
5998 -- : BFD_RELOC_CR16_DISP16
5999 -- : BFD_RELOC_CR16_DISP20
6000 -- : BFD_RELOC_CR16_DISP24
6001 -- : BFD_RELOC_CR16_DISP24a
6002 -- : BFD_RELOC_CR16_SWITCH8
6003 -- : BFD_RELOC_CR16_SWITCH16
6004 -- : BFD_RELOC_CR16_SWITCH32
6005 -- : BFD_RELOC_CR16_GOT_REGREL20
6006 -- : BFD_RELOC_CR16_GOTC_REGREL20
6007 -- : BFD_RELOC_CR16_GLOB_DAT
6008     NS CR16 Relocations.
6009 -- : BFD_RELOC_CRX_REL4
6010 -- : BFD_RELOC_CRX_REL8
6011 -- : BFD_RELOC_CRX_REL8_CMP
6012 -- : BFD_RELOC_CRX_REL16
6013 -- : BFD_RELOC_CRX_REL24
6014 -- : BFD_RELOC_CRX_REL32
6015 -- : BFD_RELOC_CRX_REGREL12
6016 -- : BFD_RELOC_CRX_REGREL22
6017 -- : BFD_RELOC_CRX_REGREL28
6018 -- : BFD_RELOC_CRX_REGREL32
6019 -- : BFD_RELOC_CRX_ABS16
6020 -- : BFD_RELOC_CRX_ABS32
6021 -- : BFD_RELOC_CRX_NUM8
6022 -- : BFD_RELOC_CRX_NUM16
6023 -- : BFD_RELOC_CRX_NUM32
6024 -- : BFD_RELOC_CRX_IMM16
6025 -- : BFD_RELOC_CRX_IMM32
6026 -- : BFD_RELOC_CRX_SWITCH8
6027 -- : BFD_RELOC_CRX_SWITCH16
6028 -- : BFD_RELOC_CRX_SWITCH32
6029     NS CRX Relocations.
6030 -- : BFD_RELOC_CRIS_BDISP8
6031 -- : BFD_RELOC_CRIS_UNSIGNED_5
6032 -- : BFD_RELOC_CRIS_SIGNED_6
6033 -- : BFD_RELOC_CRIS_UNSIGNED_6
6034 -- : BFD_RELOC_CRIS_SIGNED_8
6035 -- : BFD_RELOC_CRIS_UNSIGNED_8
6036 -- : BFD_RELOC_CRIS_SIGNED_16
6037 -- : BFD_RELOC_CRIS_UNSIGNED_16
6038 -- : BFD_RELOC_CRIS_LAPCQ_OFFSET
6039 -- : BFD_RELOC_CRIS_UNSIGNED_4
6040     These relocs are only used within the CRIS assembler.  They are not
6041     (at present) written to any object files.
6042 -- : BFD_RELOC_CRIS_COPY
6043 -- : BFD_RELOC_CRIS_GLOB_DAT
6044 -- : BFD_RELOC_CRIS_JUMP_SLOT
6045 -- : BFD_RELOC_CRIS_RELATIVE
6046     Relocs used in ELF shared libraries for CRIS.
6047 -- : BFD_RELOC_CRIS_32_GOT
6048     32-bit offset to symbol-entry within GOT.
6049 -- : BFD_RELOC_CRIS_16_GOT
6050     16-bit offset to symbol-entry within GOT.
6051 -- : BFD_RELOC_CRIS_32_GOTPLT
6052     32-bit offset to symbol-entry within GOT, with PLT handling.
6053 -- : BFD_RELOC_CRIS_16_GOTPLT
6054     16-bit offset to symbol-entry within GOT, with PLT handling.
6055 -- : BFD_RELOC_CRIS_32_GOTREL
6056     32-bit offset to symbol, relative to GOT.
6057 -- : BFD_RELOC_CRIS_32_PLT_GOTREL
6058     32-bit offset to symbol with PLT entry, relative to GOT.
6059 -- : BFD_RELOC_CRIS_32_PLT_PCREL
6060     32-bit offset to symbol with PLT entry, relative to this
6061     relocation.
6062 -- : BFD_RELOC_CRIS_32_GOT_GD
6063 -- : BFD_RELOC_CRIS_16_GOT_GD
6064 -- : BFD_RELOC_CRIS_32_GD
6065 -- : BFD_RELOC_CRIS_DTP
6066 -- : BFD_RELOC_CRIS_32_DTPREL
6067 -- : BFD_RELOC_CRIS_16_DTPREL
6068 -- : BFD_RELOC_CRIS_32_GOT_TPREL
6069 -- : BFD_RELOC_CRIS_16_GOT_TPREL
6070 -- : BFD_RELOC_CRIS_32_TPREL
6071 -- : BFD_RELOC_CRIS_16_TPREL
6072 -- : BFD_RELOC_CRIS_DTPMOD
6073 -- : BFD_RELOC_CRIS_32_IE
6074     Relocs used in TLS code for CRIS.
6075 -- : BFD_RELOC_OR1K_REL_26
6076 -- : BFD_RELOC_OR1K_SLO16
6077 -- : BFD_RELOC_OR1K_PCREL_PG21
6078 -- : BFD_RELOC_OR1K_LO13
6079 -- : BFD_RELOC_OR1K_SLO13
6080 -- : BFD_RELOC_OR1K_GOTPC_HI16
6081 -- : BFD_RELOC_OR1K_GOTPC_LO16
6082 -- : BFD_RELOC_OR1K_GOT16
6083 -- : BFD_RELOC_OR1K_GOT_PG21
6084 -- : BFD_RELOC_OR1K_GOT_LO13
6085 -- : BFD_RELOC_OR1K_PLT26
6086 -- : BFD_RELOC_OR1K_PLTA26
6087 -- : BFD_RELOC_OR1K_GOTOFF_SLO16
6088 -- : BFD_RELOC_OR1K_COPY
6089 -- : BFD_RELOC_OR1K_GLOB_DAT
6090 -- : BFD_RELOC_OR1K_JMP_SLOT
6091 -- : BFD_RELOC_OR1K_RELATIVE
6092 -- : BFD_RELOC_OR1K_TLS_GD_HI16
6093 -- : BFD_RELOC_OR1K_TLS_GD_LO16
6094 -- : BFD_RELOC_OR1K_TLS_GD_PG21
6095 -- : BFD_RELOC_OR1K_TLS_GD_LO13
6096 -- : BFD_RELOC_OR1K_TLS_LDM_HI16
6097 -- : BFD_RELOC_OR1K_TLS_LDM_LO16
6098 -- : BFD_RELOC_OR1K_TLS_LDM_PG21
6099 -- : BFD_RELOC_OR1K_TLS_LDM_LO13
6100 -- : BFD_RELOC_OR1K_TLS_LDO_HI16
6101 -- : BFD_RELOC_OR1K_TLS_LDO_LO16
6102 -- : BFD_RELOC_OR1K_TLS_IE_HI16
6103 -- : BFD_RELOC_OR1K_TLS_IE_AHI16
6104 -- : BFD_RELOC_OR1K_TLS_IE_LO16
6105 -- : BFD_RELOC_OR1K_TLS_IE_PG21
6106 -- : BFD_RELOC_OR1K_TLS_IE_LO13
6107 -- : BFD_RELOC_OR1K_TLS_LE_HI16
6108 -- : BFD_RELOC_OR1K_TLS_LE_AHI16
6109 -- : BFD_RELOC_OR1K_TLS_LE_LO16
6110 -- : BFD_RELOC_OR1K_TLS_LE_SLO16
6111 -- : BFD_RELOC_OR1K_TLS_TPOFF
6112 -- : BFD_RELOC_OR1K_TLS_DTPOFF
6113 -- : BFD_RELOC_OR1K_TLS_DTPMOD
6114     OpenRISC 1000 Relocations.
6115 -- : BFD_RELOC_H8_DIR16A8
6116 -- : BFD_RELOC_H8_DIR16R8
6117 -- : BFD_RELOC_H8_DIR24A8
6118 -- : BFD_RELOC_H8_DIR24R8
6119 -- : BFD_RELOC_H8_DIR32A16
6120 -- : BFD_RELOC_H8_DISP32A16
6121     H8 elf Relocations.
6122 -- : BFD_RELOC_XSTORMY16_REL_12
6123 -- : BFD_RELOC_XSTORMY16_12
6124 -- : BFD_RELOC_XSTORMY16_24
6125 -- : BFD_RELOC_XSTORMY16_FPTR16
6126     Sony Xstormy16 Relocations.
6127 -- : BFD_RELOC_RELC
6128     Self-describing complex relocations.
6129 -- : BFD_RELOC_XC16X_PAG
6130 -- : BFD_RELOC_XC16X_POF
6131 -- : BFD_RELOC_XC16X_SEG
6132 -- : BFD_RELOC_XC16X_SOF
6133     Infineon Relocations.
6134 -- : BFD_RELOC_VAX_GLOB_DAT
6135 -- : BFD_RELOC_VAX_JMP_SLOT
6136 -- : BFD_RELOC_VAX_RELATIVE
6137     Relocations used by VAX ELF.
6138 -- : BFD_RELOC_MT_PC16
6139     Morpho MT - 16 bit immediate relocation.
6140 -- : BFD_RELOC_MT_HI16
6141     Morpho MT - Hi 16 bits of an address.
6142 -- : BFD_RELOC_MT_LO16
6143     Morpho MT - Low 16 bits of an address.
6144 -- : BFD_RELOC_MT_GNU_VTINHERIT
6145     Morpho MT - Used to tell the linker which vtable entries are used.
6146 -- : BFD_RELOC_MT_GNU_VTENTRY
6147     Morpho MT - Used to tell the linker which vtable entries are used.
6148 -- : BFD_RELOC_MT_PCINSN8
6149     Morpho MT - 8 bit immediate relocation.
6150 -- : BFD_RELOC_MSP430_10_PCREL
6151 -- : BFD_RELOC_MSP430_16_PCREL
6152 -- : BFD_RELOC_MSP430_16
6153 -- : BFD_RELOC_MSP430_16_PCREL_BYTE
6154 -- : BFD_RELOC_MSP430_16_BYTE
6155 -- : BFD_RELOC_MSP430_2X_PCREL
6156 -- : BFD_RELOC_MSP430_RL_PCREL
6157 -- : BFD_RELOC_MSP430_ABS8
6158 -- : BFD_RELOC_MSP430X_PCR20_EXT_SRC
6159 -- : BFD_RELOC_MSP430X_PCR20_EXT_DST
6160 -- : BFD_RELOC_MSP430X_PCR20_EXT_ODST
6161 -- : BFD_RELOC_MSP430X_ABS20_EXT_SRC
6162 -- : BFD_RELOC_MSP430X_ABS20_EXT_DST
6163 -- : BFD_RELOC_MSP430X_ABS20_EXT_ODST
6164 -- : BFD_RELOC_MSP430X_ABS20_ADR_SRC
6165 -- : BFD_RELOC_MSP430X_ABS20_ADR_DST
6166 -- : BFD_RELOC_MSP430X_PCR16
6167 -- : BFD_RELOC_MSP430X_PCR20_CALL
6168 -- : BFD_RELOC_MSP430X_ABS16
6169 -- : BFD_RELOC_MSP430_ABS_HI16
6170 -- : BFD_RELOC_MSP430_PREL31
6171 -- : BFD_RELOC_MSP430_SYM_DIFF
6172     msp430 specific relocation codes
6173 -- : BFD_RELOC_NIOS2_S16
6174 -- : BFD_RELOC_NIOS2_U16
6175 -- : BFD_RELOC_NIOS2_CALL26
6176 -- : BFD_RELOC_NIOS2_IMM5
6177 -- : BFD_RELOC_NIOS2_CACHE_OPX
6178 -- : BFD_RELOC_NIOS2_IMM6
6179 -- : BFD_RELOC_NIOS2_IMM8
6180 -- : BFD_RELOC_NIOS2_HI16
6181 -- : BFD_RELOC_NIOS2_LO16
6182 -- : BFD_RELOC_NIOS2_HIADJ16
6183 -- : BFD_RELOC_NIOS2_GPREL
6184 -- : BFD_RELOC_NIOS2_UJMP
6185 -- : BFD_RELOC_NIOS2_CJMP
6186 -- : BFD_RELOC_NIOS2_CALLR
6187 -- : BFD_RELOC_NIOS2_ALIGN
6188 -- : BFD_RELOC_NIOS2_GOT16
6189 -- : BFD_RELOC_NIOS2_CALL16
6190 -- : BFD_RELOC_NIOS2_GOTOFF_LO
6191 -- : BFD_RELOC_NIOS2_GOTOFF_HA
6192 -- : BFD_RELOC_NIOS2_PCREL_LO
6193 -- : BFD_RELOC_NIOS2_PCREL_HA
6194 -- : BFD_RELOC_NIOS2_TLS_GD16
6195 -- : BFD_RELOC_NIOS2_TLS_LDM16
6196 -- : BFD_RELOC_NIOS2_TLS_LDO16
6197 -- : BFD_RELOC_NIOS2_TLS_IE16
6198 -- : BFD_RELOC_NIOS2_TLS_LE16
6199 -- : BFD_RELOC_NIOS2_TLS_DTPMOD
6200 -- : BFD_RELOC_NIOS2_TLS_DTPREL
6201 -- : BFD_RELOC_NIOS2_TLS_TPREL
6202 -- : BFD_RELOC_NIOS2_COPY
6203 -- : BFD_RELOC_NIOS2_GLOB_DAT
6204 -- : BFD_RELOC_NIOS2_JUMP_SLOT
6205 -- : BFD_RELOC_NIOS2_RELATIVE
6206 -- : BFD_RELOC_NIOS2_GOTOFF
6207 -- : BFD_RELOC_NIOS2_CALL26_NOAT
6208 -- : BFD_RELOC_NIOS2_GOT_LO
6209 -- : BFD_RELOC_NIOS2_GOT_HA
6210 -- : BFD_RELOC_NIOS2_CALL_LO
6211 -- : BFD_RELOC_NIOS2_CALL_HA
6212 -- : BFD_RELOC_NIOS2_R2_S12
6213 -- : BFD_RELOC_NIOS2_R2_I10_1_PCREL
6214 -- : BFD_RELOC_NIOS2_R2_T1I7_1_PCREL
6215 -- : BFD_RELOC_NIOS2_R2_T1I7_2
6216 -- : BFD_RELOC_NIOS2_R2_T2I4
6217 -- : BFD_RELOC_NIOS2_R2_T2I4_1
6218 -- : BFD_RELOC_NIOS2_R2_T2I4_2
6219 -- : BFD_RELOC_NIOS2_R2_X1I7_2
6220 -- : BFD_RELOC_NIOS2_R2_X2L5
6221 -- : BFD_RELOC_NIOS2_R2_F1I5_2
6222 -- : BFD_RELOC_NIOS2_R2_L5I4X1
6223 -- : BFD_RELOC_NIOS2_R2_T1X1I6
6224 -- : BFD_RELOC_NIOS2_R2_T1X1I6_2
6225     Relocations used by the Altera Nios II core.
6226 -- : BFD_RELOC_PRU_U16
6227     PRU LDI 16-bit unsigned data-memory relocation.
6228 -- : BFD_RELOC_PRU_U16_PMEMIMM
6229     PRU LDI 16-bit unsigned instruction-memory relocation.
6230 -- : BFD_RELOC_PRU_LDI32
6231     PRU relocation for two consecutive LDI load instructions that load
6232     a 32 bit value into a register.  If the higher bits are all zero,
6233     then the second instruction may be relaxed.
6234 -- : BFD_RELOC_PRU_S10_PCREL
6235     PRU QBBx 10-bit signed PC-relative relocation.
6236 -- : BFD_RELOC_PRU_U8_PCREL
6237     PRU 8-bit unsigned relocation used for the LOOP instruction.
6238 -- : BFD_RELOC_PRU_32_PMEM
6239 -- : BFD_RELOC_PRU_16_PMEM
6240     PRU Program Memory relocations.  Used to convert from byte
6241     addressing to 32-bit word addressing.
6242 -- : BFD_RELOC_PRU_GNU_DIFF8
6243 -- : BFD_RELOC_PRU_GNU_DIFF16
6244 -- : BFD_RELOC_PRU_GNU_DIFF32
6245 -- : BFD_RELOC_PRU_GNU_DIFF16_PMEM
6246 -- : BFD_RELOC_PRU_GNU_DIFF32_PMEM
6247     PRU relocations to mark the difference of two local symbols.  These
6248     are only needed to support linker relaxation and can be ignored
6249     when not relaxing.  The field is set to the value of the difference
6250     assuming no relaxation.  The relocation encodes the position of the
6251     second symbol so the linker can determine whether to adjust the
6252     field value.  The PMEM variants encode the word difference, instead
6253     of byte difference between symbols.
6254 -- : BFD_RELOC_IQ2000_OFFSET_16
6255 -- : BFD_RELOC_IQ2000_OFFSET_21
6256 -- : BFD_RELOC_IQ2000_UHI16
6257     IQ2000 Relocations.
6258 -- : BFD_RELOC_XTENSA_RTLD
6259     Special Xtensa relocation used only by PLT entries in ELF shared
6260     objects to indicate that the runtime linker should set the value to
6261     one of its own internal functions or data structures.
6262 -- : BFD_RELOC_XTENSA_GLOB_DAT
6263 -- : BFD_RELOC_XTENSA_JMP_SLOT
6264 -- : BFD_RELOC_XTENSA_RELATIVE
6265     Xtensa relocations for ELF shared objects.
6266 -- : BFD_RELOC_XTENSA_PLT
6267     Xtensa relocation used in ELF object files for symbols that may
6268     require PLT entries.  Otherwise, this is just a generic 32-bit
6269     relocation.
6270 -- : BFD_RELOC_XTENSA_DIFF8
6271 -- : BFD_RELOC_XTENSA_DIFF16
6272 -- : BFD_RELOC_XTENSA_DIFF32
6273     Xtensa relocations to mark the difference of two local symbols.
6274     These are only needed to support linker relaxation and can be
6275     ignored when not relaxing.  The field is set to the value of the
6276     difference assuming no relaxation.  The relocation encodes the
6277     position of the first symbol so the linker can determine whether to
6278     adjust the field value.
6279 -- : BFD_RELOC_XTENSA_SLOT0_OP
6280 -- : BFD_RELOC_XTENSA_SLOT1_OP
6281 -- : BFD_RELOC_XTENSA_SLOT2_OP
6282 -- : BFD_RELOC_XTENSA_SLOT3_OP
6283 -- : BFD_RELOC_XTENSA_SLOT4_OP
6284 -- : BFD_RELOC_XTENSA_SLOT5_OP
6285 -- : BFD_RELOC_XTENSA_SLOT6_OP
6286 -- : BFD_RELOC_XTENSA_SLOT7_OP
6287 -- : BFD_RELOC_XTENSA_SLOT8_OP
6288 -- : BFD_RELOC_XTENSA_SLOT9_OP
6289 -- : BFD_RELOC_XTENSA_SLOT10_OP
6290 -- : BFD_RELOC_XTENSA_SLOT11_OP
6291 -- : BFD_RELOC_XTENSA_SLOT12_OP
6292 -- : BFD_RELOC_XTENSA_SLOT13_OP
6293 -- : BFD_RELOC_XTENSA_SLOT14_OP
6294     Generic Xtensa relocations for instruction operands.  Only the slot
6295     number is encoded in the relocation.  The relocation applies to the
6296     last PC-relative immediate operand, or if there are no PC-relative
6297     immediates, to the last immediate operand.
6298 -- : BFD_RELOC_XTENSA_SLOT0_ALT
6299 -- : BFD_RELOC_XTENSA_SLOT1_ALT
6300 -- : BFD_RELOC_XTENSA_SLOT2_ALT
6301 -- : BFD_RELOC_XTENSA_SLOT3_ALT
6302 -- : BFD_RELOC_XTENSA_SLOT4_ALT
6303 -- : BFD_RELOC_XTENSA_SLOT5_ALT
6304 -- : BFD_RELOC_XTENSA_SLOT6_ALT
6305 -- : BFD_RELOC_XTENSA_SLOT7_ALT
6306 -- : BFD_RELOC_XTENSA_SLOT8_ALT
6307 -- : BFD_RELOC_XTENSA_SLOT9_ALT
6308 -- : BFD_RELOC_XTENSA_SLOT10_ALT
6309 -- : BFD_RELOC_XTENSA_SLOT11_ALT
6310 -- : BFD_RELOC_XTENSA_SLOT12_ALT
6311 -- : BFD_RELOC_XTENSA_SLOT13_ALT
6312 -- : BFD_RELOC_XTENSA_SLOT14_ALT
6313     Alternate Xtensa relocations.  Only the slot is encoded in the
6314     relocation.  The meaning of these relocations is opcode-specific.
6315 -- : BFD_RELOC_XTENSA_OP0
6316 -- : BFD_RELOC_XTENSA_OP1
6317 -- : BFD_RELOC_XTENSA_OP2
6318     Xtensa relocations for backward compatibility.  These have all been
6319     replaced by BFD_RELOC_XTENSA_SLOT0_OP.
6320 -- : BFD_RELOC_XTENSA_ASM_EXPAND
6321     Xtensa relocation to mark that the assembler expanded the
6322     instructions from an original target.  The expansion size is
6323     encoded in the reloc size.
6324 -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY
6325     Xtensa relocation to mark that the linker should simplify
6326     assembler-expanded instructions.  This is commonly used internally
6327     by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND.
6328 -- : BFD_RELOC_XTENSA_TLSDESC_FN
6329 -- : BFD_RELOC_XTENSA_TLSDESC_ARG
6330 -- : BFD_RELOC_XTENSA_TLS_DTPOFF
6331 -- : BFD_RELOC_XTENSA_TLS_TPOFF
6332 -- : BFD_RELOC_XTENSA_TLS_FUNC
6333 -- : BFD_RELOC_XTENSA_TLS_ARG
6334 -- : BFD_RELOC_XTENSA_TLS_CALL
6335     Xtensa TLS relocations.
6336 -- : BFD_RELOC_Z80_DISP8
6337     8 bit signed offset in (ix+d) or (iy+d).
6338 -- : BFD_RELOC_Z80_BYTE0
6339     First 8 bits of multibyte (32, 24 or 16 bit) value.
6340 -- : BFD_RELOC_Z80_BYTE1
6341     Second 8 bits of multibyte (32, 24 or 16 bit) value.
6342 -- : BFD_RELOC_Z80_BYTE2
6343     Third 8 bits of multibyte (32 or 24 bit) value.
6344 -- : BFD_RELOC_Z80_BYTE3
6345     Fourth 8 bits of multibyte (32 bit) value.
6346 -- : BFD_RELOC_Z80_WORD0
6347     Lowest 16 bits of multibyte (32 or 24 bit) value.
6348 -- : BFD_RELOC_Z80_WORD1
6349     Highest 16 bits of multibyte (32 or 24 bit) value.
6350 -- : BFD_RELOC_Z8K_DISP7
6351     DJNZ offset.
6352 -- : BFD_RELOC_Z8K_CALLR
6353     CALR offset.
6354 -- : BFD_RELOC_Z8K_IMM4L
6355     4 bit value.
6356 -- : BFD_RELOC_LM32_CALL
6357 -- : BFD_RELOC_LM32_BRANCH
6358 -- : BFD_RELOC_LM32_16_GOT
6359 -- : BFD_RELOC_LM32_GOTOFF_HI16
6360 -- : BFD_RELOC_LM32_GOTOFF_LO16
6361 -- : BFD_RELOC_LM32_COPY
6362 -- : BFD_RELOC_LM32_GLOB_DAT
6363 -- : BFD_RELOC_LM32_JMP_SLOT
6364 -- : BFD_RELOC_LM32_RELATIVE
6365     Lattice Mico32 relocations.
6366 -- : BFD_RELOC_MACH_O_SECTDIFF
6367     Difference between two section addreses.  Must be followed by a
6368     BFD_RELOC_MACH_O_PAIR.
6369 -- : BFD_RELOC_MACH_O_LOCAL_SECTDIFF
6370     Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol.
6371 -- : BFD_RELOC_MACH_O_PAIR
6372     Pair of relocation.  Contains the first symbol.
6373 -- : BFD_RELOC_MACH_O_SUBTRACTOR32
6374     Symbol will be substracted.  Must be followed by a BFD_RELOC_32.
6375 -- : BFD_RELOC_MACH_O_SUBTRACTOR64
6376     Symbol will be substracted.  Must be followed by a BFD_RELOC_64.
6377 -- : BFD_RELOC_MACH_O_X86_64_BRANCH32
6378 -- : BFD_RELOC_MACH_O_X86_64_BRANCH8
6379     PCREL relocations.  They are marked as branch to create PLT entry
6380     if required.
6381 -- : BFD_RELOC_MACH_O_X86_64_GOT
6382     Used when referencing a GOT entry.
6383 -- : BFD_RELOC_MACH_O_X86_64_GOT_LOAD
6384     Used when loading a GOT entry with movq.  It is specially marked so
6385     that the linker could optimize the movq to a leaq if possible.
6386 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_1
6387     Same as BFD_RELOC_32_PCREL but with an implicit -1 addend.
6388 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_2
6389     Same as BFD_RELOC_32_PCREL but with an implicit -2 addend.
6390 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_4
6391     Same as BFD_RELOC_32_PCREL but with an implicit -4 addend.
6392 -- : BFD_RELOC_MACH_O_X86_64_TLV
6393     Used when referencing a TLV entry.
6394 -- : BFD_RELOC_MACH_O_ARM64_ADDEND
6395     Addend for PAGE or PAGEOFF.
6396 -- : BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21
6397     Relative offset to page of GOT slot.
6398 -- : BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12
6399     Relative offset within page of GOT slot.
6400 -- : BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT
6401     Address of a GOT entry.
6402 -- : BFD_RELOC_MICROBLAZE_32_LO
6403     This is a 32 bit reloc for the microblaze that stores the low 16
6404     bits of a value
6405 -- : BFD_RELOC_MICROBLAZE_32_LO_PCREL
6406     This is a 32 bit pc-relative reloc for the microblaze that stores
6407     the low 16 bits of a value
6408 -- : BFD_RELOC_MICROBLAZE_32_ROSDA
6409     This is a 32 bit reloc for the microblaze that stores a value
6410     relative to the read-only small data area anchor
6411 -- : BFD_RELOC_MICROBLAZE_32_RWSDA
6412     This is a 32 bit reloc for the microblaze that stores a value
6413     relative to the read-write small data area anchor
6414 -- : BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM
6415     This is a 32 bit reloc for the microblaze to handle expressions of
6416     the form "Symbol Op Symbol"
6417 -- : BFD_RELOC_MICROBLAZE_64_NONE
6418     This is a 64 bit reloc that stores the 32 bit pc relative value in
6419     two words (with an imm instruction).  No relocation is done here -
6420     only used for relaxing
6421 -- : BFD_RELOC_MICROBLAZE_64_GOTPC
6422     This is a 64 bit reloc that stores the 32 bit pc relative value in
6423     two words (with an imm instruction).  The relocation is PC-relative
6424     GOT offset
6425 -- : BFD_RELOC_MICROBLAZE_64_GOT
6426     This is a 64 bit reloc that stores the 32 bit pc relative value in
6427     two words (with an imm instruction).  The relocation is GOT offset
6428 -- : BFD_RELOC_MICROBLAZE_64_PLT
6429     This is a 64 bit reloc that stores the 32 bit pc relative value in
6430     two words (with an imm instruction).  The relocation is PC-relative
6431     offset into PLT
6432 -- : BFD_RELOC_MICROBLAZE_64_GOTOFF
6433     This is a 64 bit reloc that stores the 32 bit GOT relative value in
6434     two words (with an imm instruction).  The relocation is relative
6435     offset from _GLOBAL_OFFSET_TABLE_
6436 -- : BFD_RELOC_MICROBLAZE_32_GOTOFF
6437     This is a 32 bit reloc that stores the 32 bit GOT relative value in
6438     a word.  The relocation is relative offset from
6439 -- : BFD_RELOC_MICROBLAZE_COPY
6440     This is used to tell the dynamic linker to copy the value out of
6441     the dynamic object into the runtime process image.
6442 -- : BFD_RELOC_MICROBLAZE_64_TLS
6443     Unused Reloc
6444 -- : BFD_RELOC_MICROBLAZE_64_TLSGD
6445     This is a 64 bit reloc that stores the 32 bit GOT relative value of
6446     the GOT TLS GD info entry in two words (with an imm instruction).
6447     The relocation is GOT offset.
6448 -- : BFD_RELOC_MICROBLAZE_64_TLSLD
6449     This is a 64 bit reloc that stores the 32 bit GOT relative value of
6450     the GOT TLS LD info entry in two words (with an imm instruction).
6451     The relocation is GOT offset.
6452 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPMOD
6453     This is a 32 bit reloc that stores the Module ID to GOT(n).
6454 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPREL
6455     This is a 32 bit reloc that stores TLS offset to GOT(n+1).
6456 -- : BFD_RELOC_MICROBLAZE_64_TLSDTPREL
6457     This is a 32 bit reloc for storing TLS offset to two words (uses
6458     imm instruction)
6459 -- : BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL
6460     This is a 64 bit reloc that stores 32-bit thread pointer relative
6461     offset to two words (uses imm instruction).
6462 -- : BFD_RELOC_MICROBLAZE_64_TLSTPREL
6463     This is a 64 bit reloc that stores 32-bit thread pointer relative
6464     offset to two words (uses imm instruction).
6465 -- : BFD_RELOC_MICROBLAZE_64_TEXTPCREL
6466     This is a 64 bit reloc that stores the 32 bit pc relative value in
6467     two words (with an imm instruction).  The relocation is PC-relative
6468     offset from start of TEXT.
6469 -- : BFD_RELOC_MICROBLAZE_64_TEXTREL
6470     This is a 64 bit reloc that stores the 32 bit offset value in two
6471     words (with an imm instruction).  The relocation is relative offset
6472     from start of TEXT.
6473 -- : BFD_RELOC_AARCH64_RELOC_START
6474     AArch64 pseudo relocation code to mark the start of the AArch64
6475     relocation enumerators.  N.B. the order of the enumerators is
6476     important as several tables in the AArch64 bfd backend are indexed
6477     by these enumerators; make sure they are all synced.
6478 -- : BFD_RELOC_AARCH64_NULL
6479     Deprecated AArch64 null relocation code.
6480 -- : BFD_RELOC_AARCH64_NONE
6481     AArch64 null relocation code.
6482 -- : BFD_RELOC_AARCH64_64
6483 -- : BFD_RELOC_AARCH64_32
6484 -- : BFD_RELOC_AARCH64_16
6485     Basic absolute relocations of N bits.  These are equivalent to
6486     BFD_RELOC_N and they were added to assist the indexing of the howto
6487     table.
6488 -- : BFD_RELOC_AARCH64_64_PCREL
6489 -- : BFD_RELOC_AARCH64_32_PCREL
6490 -- : BFD_RELOC_AARCH64_16_PCREL
6491     PC-relative relocations.  These are equivalent to BFD_RELOC_N_PCREL
6492     and they were added to assist the indexing of the howto table.
6493 -- : BFD_RELOC_AARCH64_MOVW_G0
6494     AArch64 MOV[NZK] instruction with most significant bits 0 to 15 of
6495     an unsigned address/value.
6496 -- : BFD_RELOC_AARCH64_MOVW_G0_NC
6497     AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of
6498     an address/value.  No overflow checking.
6499 -- : BFD_RELOC_AARCH64_MOVW_G1
6500     AArch64 MOV[NZK] instruction with most significant bits 16 to 31 of
6501     an unsigned address/value.
6502 -- : BFD_RELOC_AARCH64_MOVW_G1_NC
6503     AArch64 MOV[NZK] instruction with less significant bits 16 to 31 of
6504     an address/value.  No overflow checking.
6505 -- : BFD_RELOC_AARCH64_MOVW_G2
6506     AArch64 MOV[NZK] instruction with most significant bits 32 to 47 of
6507     an unsigned address/value.
6508 -- : BFD_RELOC_AARCH64_MOVW_G2_NC
6509     AArch64 MOV[NZK] instruction with less significant bits 32 to 47 of
6510     an address/value.  No overflow checking.
6511 -- : BFD_RELOC_AARCH64_MOVW_G3
6512     AArch64 MOV[NZK] instruction with most signficant bits 48 to 64 of
6513     a signed or unsigned address/value.
6514 -- : BFD_RELOC_AARCH64_MOVW_G0_S
6515     AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of a
6516     signed value.  Changes instruction to MOVZ or MOVN depending on the
6517     value's sign.
6518 -- : BFD_RELOC_AARCH64_MOVW_G1_S
6519     AArch64 MOV[NZ] instruction with most significant bits 16 to 31 of
6520     a signed value.  Changes instruction to MOVZ or MOVN depending on
6521     the value's sign.
6522 -- : BFD_RELOC_AARCH64_MOVW_G2_S
6523     AArch64 MOV[NZ] instruction with most significant bits 32 to 47 of
6524     a signed value.  Changes instruction to MOVZ or MOVN depending on
6525     the value's sign.
6526 -- : BFD_RELOC_AARCH64_MOVW_PREL_G0
6527     AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of a
6528     signed value.  Changes instruction to MOVZ or MOVN depending on the
6529     value's sign.
6530 -- : BFD_RELOC_AARCH64_MOVW_PREL_G0_NC
6531     AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of a
6532     signed value.  Changes instruction to MOVZ or MOVN depending on the
6533     value's sign.
6534 -- : BFD_RELOC_AARCH64_MOVW_PREL_G1
6535     AArch64 MOVK instruction with most significant bits 16 to 31 of a
6536     signed value.
6537 -- : BFD_RELOC_AARCH64_MOVW_PREL_G1_NC
6538     AArch64 MOVK instruction with most significant bits 16 to 31 of a
6539     signed value.
6540 -- : BFD_RELOC_AARCH64_MOVW_PREL_G2
6541     AArch64 MOVK instruction with most significant bits 32 to 47 of a
6542     signed value.
6543 -- : BFD_RELOC_AARCH64_MOVW_PREL_G2_NC
6544     AArch64 MOVK instruction with most significant bits 32 to 47 of a
6545     signed value.
6546 -- : BFD_RELOC_AARCH64_MOVW_PREL_G3
6547     AArch64 MOVK instruction with most significant bits 47 to 63 of a
6548     signed value.
6549 -- : BFD_RELOC_AARCH64_LD_LO19_PCREL
6550     AArch64 Load Literal instruction, holding a 19 bit pc-relative word
6551     offset.  The lowest two bits must be zero and are not stored in the
6552     instruction, giving a 21 bit signed byte offset.
6553 -- : BFD_RELOC_AARCH64_ADR_LO21_PCREL
6554     AArch64 ADR instruction, holding a simple 21 bit pc-relative byte
6555     offset.
6556 -- : BFD_RELOC_AARCH64_ADR_HI21_PCREL
6557     AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
6558     offset, giving a 4KB aligned page base address.
6559 -- : BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL
6560     AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
6561     offset, giving a 4KB aligned page base address, but with no
6562     overflow checking.
6563 -- : BFD_RELOC_AARCH64_ADD_LO12
6564     AArch64 ADD immediate instruction, holding bits 0 to 11 of the
6565     address.  Used in conjunction with
6566     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6567 -- : BFD_RELOC_AARCH64_LDST8_LO12
6568     AArch64 8-bit load/store instruction, holding bits 0 to 11 of the
6569     address.  Used in conjunction with
6570     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6571 -- : BFD_RELOC_AARCH64_TSTBR14
6572     AArch64 14 bit pc-relative test bit and branch.  The lowest two
6573     bits must be zero and are not stored in the instruction, giving a
6574     16 bit signed byte offset.
6575 -- : BFD_RELOC_AARCH64_BRANCH19
6576     AArch64 19 bit pc-relative conditional branch and compare & branch.
6577     The lowest two bits must be zero and are not stored in the
6578     instruction, giving a 21 bit signed byte offset.
6579 -- : BFD_RELOC_AARCH64_JUMP26
6580     AArch64 26 bit pc-relative unconditional branch.  The lowest two
6581     bits must be zero and are not stored in the instruction, giving a
6582     28 bit signed byte offset.
6583 -- : BFD_RELOC_AARCH64_CALL26
6584     AArch64 26 bit pc-relative unconditional branch and link.  The
6585     lowest two bits must be zero and are not stored in the instruction,
6586     giving a 28 bit signed byte offset.
6587 -- : BFD_RELOC_AARCH64_LDST16_LO12
6588     AArch64 16-bit load/store instruction, holding bits 0 to 11 of the
6589     address.  Used in conjunction with
6590     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6591 -- : BFD_RELOC_AARCH64_LDST32_LO12
6592     AArch64 32-bit load/store instruction, holding bits 0 to 11 of the
6593     address.  Used in conjunction with
6594     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6595 -- : BFD_RELOC_AARCH64_LDST64_LO12
6596     AArch64 64-bit load/store instruction, holding bits 0 to 11 of the
6597     address.  Used in conjunction with
6598     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6599 -- : BFD_RELOC_AARCH64_LDST128_LO12
6600     AArch64 128-bit load/store instruction, holding bits 0 to 11 of the
6601     address.  Used in conjunction with
6602     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6603 -- : BFD_RELOC_AARCH64_GOT_LD_PREL19
6604     AArch64 Load Literal instruction, holding a 19 bit PC relative word
6605     offset of the global offset table entry for a symbol.  The lowest
6606     two bits must be zero and are not stored in the instruction, giving
6607     a 21 bit signed byte offset.  This relocation type requires signed
6608     overflow checking.
6609 -- : BFD_RELOC_AARCH64_ADR_GOT_PAGE
6610     Get to the page base of the global offset table entry for a symbol
6611     as part of an ADRP instruction using a 21 bit PC relative
6612     value.Used in conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC.
6613 -- : BFD_RELOC_AARCH64_LD64_GOT_LO12_NC
6614     Unsigned 12 bit byte offset for 64 bit load/store from the page of
6615     the GOT entry for this symbol.  Used in conjunction with
6616     BFD_RELOC_AARCH64_ADR_GOT_PAGE. Valid in LP64 ABI only.
6617 -- : BFD_RELOC_AARCH64_LD32_GOT_LO12_NC
6618     Unsigned 12 bit byte offset for 32 bit load/store from the page of
6619     the GOT entry for this symbol.  Used in conjunction with
6620     BFD_RELOC_AARCH64_ADR_GOT_PAGE. Valid in ILP32 ABI only.
6621 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC
6622     Unsigned 16 bit byte offset for 64 bit load/store from the GOT
6623     entry for this symbol.  Valid in LP64 ABI only.
6624 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G1
6625     Unsigned 16 bit byte higher offset for 64 bit load/store from the
6626     GOT entry for this symbol.  Valid in LP64 ABI only.
6627 -- : BFD_RELOC_AARCH64_LD64_GOTOFF_LO15
6628     Unsigned 15 bit byte offset for 64 bit load/store from the page of
6629     the GOT entry for this symbol.  Valid in LP64 ABI only.
6630 -- : BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14
6631     Scaled 14 bit byte offset to the page base of the global offset
6632     table.
6633 -- : BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15
6634     Scaled 15 bit byte offset to the page base of the global offset
6635     table.
6636 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21
6637     Get to the page base of the global offset table entry for a symbols
6638     tls_index structure as part of an adrp instruction using a 21 bit
6639     PC relative value.  Used in conjunction with
6640     BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC.
6641 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PREL21
6642     AArch64 TLS General Dynamic
6643 -- : BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC
6644     Unsigned 12 bit byte offset to global offset table entry for a
6645     symbols tls_index structure.  Used in conjunction with
6646     BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.
6647 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC
6648     AArch64 TLS General Dynamic relocation.
6649 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G1
6650     AArch64 TLS General Dynamic relocation.
6651 -- : BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21
6652     AArch64 TLS INITIAL EXEC relocation.
6653 -- : BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC
6654     AArch64 TLS INITIAL EXEC relocation.
6655 -- : BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC
6656     AArch64 TLS INITIAL EXEC relocation.
6657 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19
6658     AArch64 TLS INITIAL EXEC relocation.
6659 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC
6660     AArch64 TLS INITIAL EXEC relocation.
6661 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1
6662     AArch64 TLS INITIAL EXEC relocation.
6663 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12
6664     bit[23:12] of byte offset to module TLS base address.
6665 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12
6666     Unsigned 12 bit byte offset to module TLS base address.
6667 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC
6668     No overflow check version of
6669     BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12.
6670 -- : BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC
6671     Unsigned 12 bit byte offset to global offset table entry for a
6672     symbols tls_index structure.  Used in conjunction with
6673     BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21.
6674 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21
6675     GOT entry page address for AArch64 TLS Local Dynamic, used with
6676     ADRP instruction.
6677 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PREL21
6678     GOT entry address for AArch64 TLS Local Dynamic, used with ADR
6679     instruction.
6680 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12
6681     bit[11:1] of byte offset to module TLS base address, encoded in
6682     ldst instructions.
6683 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC
6684     Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no
6685     overflow check.
6686 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12
6687     bit[11:2] of byte offset to module TLS base address, encoded in
6688     ldst instructions.
6689 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC
6690     Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no
6691     overflow check.
6692 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12
6693     bit[11:3] of byte offset to module TLS base address, encoded in
6694     ldst instructions.
6695 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC
6696     Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no
6697     overflow check.
6698 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12
6699     bit[11:0] of byte offset to module TLS base address, encoded in
6700     ldst instructions.
6701 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC
6702     Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no
6703     overflow check.
6704 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
6705     bit[15:0] of byte offset to module TLS base address.
6706 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC
6707     No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
6708 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
6709     bit[31:16] of byte offset to module TLS base address.
6710 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC
6711     No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
6712 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2
6713     bit[47:32] of byte offset to module TLS base address.
6714 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2
6715     AArch64 TLS LOCAL EXEC relocation.
6716 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1
6717     AArch64 TLS LOCAL EXEC relocation.
6718 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC
6719     AArch64 TLS LOCAL EXEC relocation.
6720 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0
6721     AArch64 TLS LOCAL EXEC relocation.
6722 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC
6723     AArch64 TLS LOCAL EXEC relocation.
6724 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12
6725     AArch64 TLS LOCAL EXEC relocation.
6726 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12
6727     AArch64 TLS LOCAL EXEC relocation.
6728 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC
6729     AArch64 TLS LOCAL EXEC relocation.
6730 -- : BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12
6731     bit[11:1] of byte offset to module TLS base address, encoded in
6732     ldst instructions.
6733 -- : BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC
6734     Similar as BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no
6735     overflow check.
6736 -- : BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12
6737     bit[11:2] of byte offset to module TLS base address, encoded in
6738     ldst instructions.
6739 -- : BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC
6740     Similar as BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no
6741     overflow check.
6742 -- : BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12
6743     bit[11:3] of byte offset to module TLS base address, encoded in
6744     ldst instructions.
6745 -- : BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC
6746     Similar as BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no
6747     overflow check.
6748 -- : BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12
6749     bit[11:0] of byte offset to module TLS base address, encoded in
6750     ldst instructions.
6751 -- : BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC
6752     Similar as BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no
6753     overflow check.
6754 -- : BFD_RELOC_AARCH64_TLSDESC_LD_PREL19
6755     AArch64 TLS DESC relocation.
6756 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21
6757     AArch64 TLS DESC relocation.
6758 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21
6759     AArch64 TLS DESC relocation.
6760 -- : BFD_RELOC_AARCH64_TLSDESC_LD64_LO12
6761     AArch64 TLS DESC relocation.
6762 -- : BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC
6763     AArch64 TLS DESC relocation.
6764 -- : BFD_RELOC_AARCH64_TLSDESC_ADD_LO12
6765     AArch64 TLS DESC relocation.
6766 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G1
6767     AArch64 TLS DESC relocation.
6768 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC
6769     AArch64 TLS DESC relocation.
6770 -- : BFD_RELOC_AARCH64_TLSDESC_LDR
6771     AArch64 TLS DESC relocation.
6772 -- : BFD_RELOC_AARCH64_TLSDESC_ADD
6773     AArch64 TLS DESC relocation.
6774 -- : BFD_RELOC_AARCH64_TLSDESC_CALL
6775     AArch64 TLS DESC relocation.
6776 -- : BFD_RELOC_AARCH64_COPY
6777     AArch64 TLS relocation.
6778 -- : BFD_RELOC_AARCH64_GLOB_DAT
6779     AArch64 TLS relocation.
6780 -- : BFD_RELOC_AARCH64_JUMP_SLOT
6781     AArch64 TLS relocation.
6782 -- : BFD_RELOC_AARCH64_RELATIVE
6783     AArch64 TLS relocation.
6784 -- : BFD_RELOC_AARCH64_TLS_DTPMOD
6785     AArch64 TLS relocation.
6786 -- : BFD_RELOC_AARCH64_TLS_DTPREL
6787     AArch64 TLS relocation.
6788 -- : BFD_RELOC_AARCH64_TLS_TPREL
6789     AArch64 TLS relocation.
6790 -- : BFD_RELOC_AARCH64_TLSDESC
6791     AArch64 TLS relocation.
6792 -- : BFD_RELOC_AARCH64_IRELATIVE
6793     AArch64 support for STT_GNU_IFUNC.
6794 -- : BFD_RELOC_AARCH64_RELOC_END
6795     AArch64 pseudo relocation code to mark the end of the AArch64
6796     relocation enumerators that have direct mapping to ELF reloc codes.
6797     There are a few more enumerators after this one; those are mainly
6798     used by the AArch64 assembler for the internal fixup or to select
6799     one of the above enumerators.
6800 -- : BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP
6801     AArch64 pseudo relocation code to be used internally by the AArch64
6802     assembler and not (currently) written to any object files.
6803 -- : BFD_RELOC_AARCH64_LDST_LO12
6804     AArch64 unspecified load/store instruction, holding bits 0 to 11 of
6805     the address.  Used in conjunction with
6806     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6807 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12
6808     AArch64 pseudo relocation code for TLS local dynamic mode.  It's to
6809     be used internally by the AArch64 assembler and not (currently)
6810     written to any object files.
6811 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC
6812     Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no
6813     overflow check.
6814 -- : BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12
6815     AArch64 pseudo relocation code for TLS local exec mode.  It's to be
6816     used internally by the AArch64 assembler and not (currently)
6817     written to any object files.
6818 -- : BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC
6819     Similar as BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12, but no overflow
6820     check.
6821 -- : BFD_RELOC_AARCH64_LD_GOT_LO12_NC
6822     AArch64 pseudo relocation code to be used internally by the AArch64
6823     assembler and not (currently) written to any object files.
6824 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC
6825     AArch64 pseudo relocation code to be used internally by the AArch64
6826     assembler and not (currently) written to any object files.
6827 -- : BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC
6828     AArch64 pseudo relocation code to be used internally by the AArch64
6829     assembler and not (currently) written to any object files.
6830 -- : BFD_RELOC_TILEPRO_COPY
6831 -- : BFD_RELOC_TILEPRO_GLOB_DAT
6832 -- : BFD_RELOC_TILEPRO_JMP_SLOT
6833 -- : BFD_RELOC_TILEPRO_RELATIVE
6834 -- : BFD_RELOC_TILEPRO_BROFF_X1
6835 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1
6836 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT
6837 -- : BFD_RELOC_TILEPRO_IMM8_X0
6838 -- : BFD_RELOC_TILEPRO_IMM8_Y0
6839 -- : BFD_RELOC_TILEPRO_IMM8_X1
6840 -- : BFD_RELOC_TILEPRO_IMM8_Y1
6841 -- : BFD_RELOC_TILEPRO_DEST_IMM8_X1
6842 -- : BFD_RELOC_TILEPRO_MT_IMM15_X1
6843 -- : BFD_RELOC_TILEPRO_MF_IMM15_X1
6844 -- : BFD_RELOC_TILEPRO_IMM16_X0
6845 -- : BFD_RELOC_TILEPRO_IMM16_X1
6846 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO
6847 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO
6848 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI
6849 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI
6850 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA
6851 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA
6852 -- : BFD_RELOC_TILEPRO_IMM16_X0_PCREL
6853 -- : BFD_RELOC_TILEPRO_IMM16_X1_PCREL
6854 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL
6855 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL
6856 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL
6857 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL
6858 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL
6859 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL
6860 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT
6861 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT
6862 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO
6863 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO
6864 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI
6865 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI
6866 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA
6867 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA
6868 -- : BFD_RELOC_TILEPRO_MMSTART_X0
6869 -- : BFD_RELOC_TILEPRO_MMEND_X0
6870 -- : BFD_RELOC_TILEPRO_MMSTART_X1
6871 -- : BFD_RELOC_TILEPRO_MMEND_X1
6872 -- : BFD_RELOC_TILEPRO_SHAMT_X0
6873 -- : BFD_RELOC_TILEPRO_SHAMT_X1
6874 -- : BFD_RELOC_TILEPRO_SHAMT_Y0
6875 -- : BFD_RELOC_TILEPRO_SHAMT_Y1
6876 -- : BFD_RELOC_TILEPRO_TLS_GD_CALL
6877 -- : BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD
6878 -- : BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD
6879 -- : BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD
6880 -- : BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD
6881 -- : BFD_RELOC_TILEPRO_TLS_IE_LOAD
6882 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD
6883 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD
6884 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO
6885 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO
6886 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI
6887 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI
6888 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA
6889 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA
6890 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE
6891 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE
6892 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO
6893 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO
6894 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI
6895 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI
6896 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA
6897 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA
6898 -- : BFD_RELOC_TILEPRO_TLS_DTPMOD32
6899 -- : BFD_RELOC_TILEPRO_TLS_DTPOFF32
6900 -- : BFD_RELOC_TILEPRO_TLS_TPOFF32
6901 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE
6902 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE
6903 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO
6904 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO
6905 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI
6906 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI
6907 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA
6908 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA
6909     Tilera TILEPro Relocations.
6910 -- : BFD_RELOC_TILEGX_HW0
6911 -- : BFD_RELOC_TILEGX_HW1
6912 -- : BFD_RELOC_TILEGX_HW2
6913 -- : BFD_RELOC_TILEGX_HW3
6914 -- : BFD_RELOC_TILEGX_HW0_LAST
6915 -- : BFD_RELOC_TILEGX_HW1_LAST
6916 -- : BFD_RELOC_TILEGX_HW2_LAST
6917 -- : BFD_RELOC_TILEGX_COPY
6918 -- : BFD_RELOC_TILEGX_GLOB_DAT
6919 -- : BFD_RELOC_TILEGX_JMP_SLOT
6920 -- : BFD_RELOC_TILEGX_RELATIVE
6921 -- : BFD_RELOC_TILEGX_BROFF_X1
6922 -- : BFD_RELOC_TILEGX_JUMPOFF_X1
6923 -- : BFD_RELOC_TILEGX_JUMPOFF_X1_PLT
6924 -- : BFD_RELOC_TILEGX_IMM8_X0
6925 -- : BFD_RELOC_TILEGX_IMM8_Y0
6926 -- : BFD_RELOC_TILEGX_IMM8_X1
6927 -- : BFD_RELOC_TILEGX_IMM8_Y1
6928 -- : BFD_RELOC_TILEGX_DEST_IMM8_X1
6929 -- : BFD_RELOC_TILEGX_MT_IMM14_X1
6930 -- : BFD_RELOC_TILEGX_MF_IMM14_X1
6931 -- : BFD_RELOC_TILEGX_MMSTART_X0
6932 -- : BFD_RELOC_TILEGX_MMEND_X0
6933 -- : BFD_RELOC_TILEGX_SHAMT_X0
6934 -- : BFD_RELOC_TILEGX_SHAMT_X1
6935 -- : BFD_RELOC_TILEGX_SHAMT_Y0
6936 -- : BFD_RELOC_TILEGX_SHAMT_Y1
6937 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0
6938 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0
6939 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1
6940 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1
6941 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2
6942 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2
6943 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3
6944 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3
6945 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST
6946 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST
6947 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST
6948 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST
6949 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST
6950 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST
6951 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL
6952 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL
6953 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL
6954 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL
6955 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL
6956 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL
6957 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL
6958 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL
6959 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL
6960 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL
6961 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL
6962 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL
6963 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL
6964 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL
6965 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT
6966 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT
6967 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL
6968 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL
6969 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL
6970 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL
6971 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL
6972 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL
6973 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT
6974 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT
6975 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT
6976 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT
6977 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL
6978 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL
6979 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD
6980 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD
6981 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE
6982 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE
6983 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE
6984 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE
6985 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE
6986 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE
6987 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD
6988 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD
6989 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD
6990 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD
6991 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE
6992 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE
6993 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL
6994 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL
6995 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL
6996 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL
6997 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL
6998 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL
6999 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE
7000 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE
7001 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE
7002 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE
7003 -- : BFD_RELOC_TILEGX_TLS_DTPMOD64
7004 -- : BFD_RELOC_TILEGX_TLS_DTPOFF64
7005 -- : BFD_RELOC_TILEGX_TLS_TPOFF64
7006 -- : BFD_RELOC_TILEGX_TLS_DTPMOD32
7007 -- : BFD_RELOC_TILEGX_TLS_DTPOFF32
7008 -- : BFD_RELOC_TILEGX_TLS_TPOFF32
7009 -- : BFD_RELOC_TILEGX_TLS_GD_CALL
7010 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD
7011 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD
7012 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD
7013 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD
7014 -- : BFD_RELOC_TILEGX_TLS_IE_LOAD
7015 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD
7016 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD
7017 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD
7018 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD
7019     Tilera TILE-Gx Relocations.
7020 -- : BFD_RELOC_BPF_64
7021 -- : BFD_RELOC_BPF_32
7022 -- : BFD_RELOC_BPF_16
7023 -- : BFD_RELOC_BPF_DISP16
7024 -- : BFD_RELOC_BPF_DISP32
7025     Linux eBPF relocations.
7026 -- : BFD_RELOC_EPIPHANY_SIMM8
7027     Adapteva EPIPHANY - 8 bit signed pc-relative displacement
7028 -- : BFD_RELOC_EPIPHANY_SIMM24
7029     Adapteva EPIPHANY - 24 bit signed pc-relative displacement
7030 -- : BFD_RELOC_EPIPHANY_HIGH
7031     Adapteva EPIPHANY - 16 most-significant bits of absolute address
7032 -- : BFD_RELOC_EPIPHANY_LOW
7033     Adapteva EPIPHANY - 16 least-significant bits of absolute address
7034 -- : BFD_RELOC_EPIPHANY_SIMM11
7035     Adapteva EPIPHANY - 11 bit signed number - add/sub immediate
7036 -- : BFD_RELOC_EPIPHANY_IMM11
7037     Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st
7038     displacement)
7039 -- : BFD_RELOC_EPIPHANY_IMM8
7040     Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction.
7041 -- : BFD_RELOC_VISIUM_HI16
7042 -- : BFD_RELOC_VISIUM_LO16
7043 -- : BFD_RELOC_VISIUM_IM16
7044 -- : BFD_RELOC_VISIUM_REL16
7045 -- : BFD_RELOC_VISIUM_HI16_PCREL
7046 -- : BFD_RELOC_VISIUM_LO16_PCREL
7047 -- : BFD_RELOC_VISIUM_IM16_PCREL
7048     Visium Relocations.
7049 -- : BFD_RELOC_WASM32_LEB128
7050 -- : BFD_RELOC_WASM32_LEB128_GOT
7051 -- : BFD_RELOC_WASM32_LEB128_GOT_CODE
7052 -- : BFD_RELOC_WASM32_LEB128_PLT
7053 -- : BFD_RELOC_WASM32_PLT_INDEX
7054 -- : BFD_RELOC_WASM32_ABS32_CODE
7055 -- : BFD_RELOC_WASM32_COPY
7056 -- : BFD_RELOC_WASM32_CODE_POINTER
7057 -- : BFD_RELOC_WASM32_INDEX
7058 -- : BFD_RELOC_WASM32_PLT_SIG
7059     WebAssembly relocations.
7060 -- : BFD_RELOC_CKCORE_NONE
7061 -- : BFD_RELOC_CKCORE_ADDR32
7062 -- : BFD_RELOC_CKCORE_PCREL_IMM8BY4
7063 -- : BFD_RELOC_CKCORE_PCREL_IMM11BY2
7064 -- : BFD_RELOC_CKCORE_PCREL_IMM4BY2
7065 -- : BFD_RELOC_CKCORE_PCREL32
7066 -- : BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2
7067 -- : BFD_RELOC_CKCORE_GNU_VTINHERIT
7068 -- : BFD_RELOC_CKCORE_GNU_VTENTRY
7069 -- : BFD_RELOC_CKCORE_RELATIVE
7070 -- : BFD_RELOC_CKCORE_COPY
7071 -- : BFD_RELOC_CKCORE_GLOB_DAT
7072 -- : BFD_RELOC_CKCORE_JUMP_SLOT
7073 -- : BFD_RELOC_CKCORE_GOTOFF
7074 -- : BFD_RELOC_CKCORE_GOTPC
7075 -- : BFD_RELOC_CKCORE_GOT32
7076 -- : BFD_RELOC_CKCORE_PLT32
7077 -- : BFD_RELOC_CKCORE_ADDRGOT
7078 -- : BFD_RELOC_CKCORE_ADDRPLT
7079 -- : BFD_RELOC_CKCORE_PCREL_IMM26BY2
7080 -- : BFD_RELOC_CKCORE_PCREL_IMM16BY2
7081 -- : BFD_RELOC_CKCORE_PCREL_IMM16BY4
7082 -- : BFD_RELOC_CKCORE_PCREL_IMM10BY2
7083 -- : BFD_RELOC_CKCORE_PCREL_IMM10BY4
7084 -- : BFD_RELOC_CKCORE_ADDR_HI16
7085 -- : BFD_RELOC_CKCORE_ADDR_LO16
7086 -- : BFD_RELOC_CKCORE_GOTPC_HI16
7087 -- : BFD_RELOC_CKCORE_GOTPC_LO16
7088 -- : BFD_RELOC_CKCORE_GOTOFF_HI16
7089 -- : BFD_RELOC_CKCORE_GOTOFF_LO16
7090 -- : BFD_RELOC_CKCORE_GOT12
7091 -- : BFD_RELOC_CKCORE_GOT_HI16
7092 -- : BFD_RELOC_CKCORE_GOT_LO16
7093 -- : BFD_RELOC_CKCORE_PLT12
7094 -- : BFD_RELOC_CKCORE_PLT_HI16
7095 -- : BFD_RELOC_CKCORE_PLT_LO16
7096 -- : BFD_RELOC_CKCORE_ADDRGOT_HI16
7097 -- : BFD_RELOC_CKCORE_ADDRGOT_LO16
7098 -- : BFD_RELOC_CKCORE_ADDRPLT_HI16
7099 -- : BFD_RELOC_CKCORE_ADDRPLT_LO16
7100 -- : BFD_RELOC_CKCORE_PCREL_JSR_IMM26BY2
7101 -- : BFD_RELOC_CKCORE_TOFFSET_LO16
7102 -- : BFD_RELOC_CKCORE_DOFFSET_LO16
7103 -- : BFD_RELOC_CKCORE_PCREL_IMM18BY2
7104 -- : BFD_RELOC_CKCORE_DOFFSET_IMM18
7105 -- : BFD_RELOC_CKCORE_DOFFSET_IMM18BY2
7106 -- : BFD_RELOC_CKCORE_DOFFSET_IMM18BY4
7107 -- : BFD_RELOC_CKCORE_GOTOFF_IMM18
7108 -- : BFD_RELOC_CKCORE_GOT_IMM18BY4
7109 -- : BFD_RELOC_CKCORE_PLT_IMM18BY4
7110 -- : BFD_RELOC_CKCORE_PCREL_IMM7BY4
7111 -- : BFD_RELOC_CKCORE_TLS_LE32
7112 -- : BFD_RELOC_CKCORE_TLS_IE32
7113 -- : BFD_RELOC_CKCORE_TLS_GD32
7114 -- : BFD_RELOC_CKCORE_TLS_LDM32
7115 -- : BFD_RELOC_CKCORE_TLS_LDO32
7116 -- : BFD_RELOC_CKCORE_TLS_DTPMOD32
7117 -- : BFD_RELOC_CKCORE_TLS_DTPOFF32
7118 -- : BFD_RELOC_CKCORE_TLS_TPOFF32
7119 -- : BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4
7120 -- : BFD_RELOC_CKCORE_NOJSRI
7121 -- : BFD_RELOC_CKCORE_CALLGRAPH
7122 -- : BFD_RELOC_CKCORE_IRELATIVE
7123 -- : BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4
7124 -- : BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4
7125     C-SKY relocations.
7126 -- : BFD_RELOC_S12Z_OPR
7127     S12Z relocations.
7128
7129
7130     typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
7131
71322.10.2.2 'bfd_reloc_type_lookup'
7133................................
7134
7135*Synopsis*
7136     reloc_howto_type *bfd_reloc_type_lookup
7137        (bfd *abfd, bfd_reloc_code_real_type code);
7138     reloc_howto_type *bfd_reloc_name_lookup
7139        (bfd *abfd, const char *reloc_name);
7140   *Description*
7141Return a pointer to a howto structure which, when invoked, will perform
7142the relocation CODE on data from the architecture noted.
7143
71442.10.2.3 'bfd_default_reloc_type_lookup'
7145........................................
7146
7147*Synopsis*
7148     reloc_howto_type *bfd_default_reloc_type_lookup
7149        (bfd *abfd, bfd_reloc_code_real_type  code);
7150   *Description*
7151Provides a default relocation lookup routine for any architecture.
7152
71532.10.2.4 'bfd_get_reloc_code_name'
7154..................................
7155
7156*Synopsis*
7157     const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
7158   *Description*
7159Provides a printable name for the supplied relocation code.  Useful
7160mainly for printing error messages.
7161
71622.10.2.5 'bfd_generic_relax_section'
7163....................................
7164
7165*Synopsis*
7166     bfd_boolean bfd_generic_relax_section
7167        (bfd *abfd,
7168         asection *section,
7169         struct bfd_link_info *,
7170         bfd_boolean *);
7171   *Description*
7172Provides default handling for relaxing for back ends which don't do
7173relaxing.
7174
71752.10.2.6 'bfd_generic_gc_sections'
7176..................................
7177
7178*Synopsis*
7179     bfd_boolean bfd_generic_gc_sections
7180        (bfd *, struct bfd_link_info *);
7181   *Description*
7182Provides default handling for relaxing for back ends which don't do
7183section gc - i.e., does nothing.
7184
71852.10.2.7 'bfd_generic_lookup_section_flags'
7186...........................................
7187
7188*Synopsis*
7189     bfd_boolean bfd_generic_lookup_section_flags
7190        (struct bfd_link_info *, struct flag_info *, asection *);
7191   *Description*
7192Provides default handling for section flags lookup - i.e., does nothing.
7193Returns FALSE if the section should be omitted, otherwise TRUE.
7194
71952.10.2.8 'bfd_generic_merge_sections'
7196.....................................
7197
7198*Synopsis*
7199     bfd_boolean bfd_generic_merge_sections
7200        (bfd *, struct bfd_link_info *);
7201   *Description*
7202Provides default handling for SEC_MERGE section merging for back ends
7203which don't have SEC_MERGE support - i.e., does nothing.
7204
72052.10.2.9 'bfd_generic_get_relocated_section_contents'
7206.....................................................
7207
7208*Synopsis*
7209     bfd_byte *bfd_generic_get_relocated_section_contents
7210        (bfd *abfd,
7211         struct bfd_link_info *link_info,
7212         struct bfd_link_order *link_order,
7213         bfd_byte *data,
7214         bfd_boolean relocatable,
7215         asymbol **symbols);
7216   *Description*
7217Provides default handling of relocation effort for back ends which can't
7218be bothered to do it efficiently.
7219
72202.10.2.10 '_bfd_generic_set_reloc'
7221..................................
7222
7223*Synopsis*
7224     void _bfd_generic_set_reloc
7225        (bfd *abfd,
7226         sec_ptr section,
7227         arelent **relptr,
7228         unsigned int count);
7229   *Description*
7230Installs a new set of internal relocations in SECTION.
7231
72322.10.2.11 '_bfd_unrecognized_reloc'
7233...................................
7234
7235*Synopsis*
7236     bfd_boolean _bfd_unrecognized_reloc
7237        (bfd * abfd,
7238         sec_ptr section,
7239         unsigned int r_type);
7240   *Description*
7241Reports an unrecognized reloc.  Written as a function in order to reduce
7242code duplication.  Returns FALSE so that it can be called from a return
7243statement.
7244
7245
7246File: bfd.info,  Node: Core Files,  Next: Targets,  Prev: Relocations,  Up: BFD front end
7247
72482.11 Core files
7249===============
7250
72512.11.1 Core file functions
7252--------------------------
7253
7254*Description*
7255These are functions pertaining to core files.
7256
72572.11.1.1 'bfd_core_file_failing_command'
7258........................................
7259
7260*Synopsis*
7261     const char *bfd_core_file_failing_command (bfd *abfd);
7262   *Description*
7263Return a read-only string explaining which program was running when it
7264failed and produced the core file ABFD.
7265
72662.11.1.2 'bfd_core_file_failing_signal'
7267.......................................
7268
7269*Synopsis*
7270     int bfd_core_file_failing_signal (bfd *abfd);
7271   *Description*
7272Returns the signal number which caused the core dump which generated the
7273file the BFD ABFD is attached to.
7274
72752.11.1.3 'bfd_core_file_pid'
7276............................
7277
7278*Synopsis*
7279     int bfd_core_file_pid (bfd *abfd);
7280   *Description*
7281Returns the PID of the process the core dump the BFD ABFD is attached to
7282was generated from.
7283
72842.11.1.4 'core_file_matches_executable_p'
7285.........................................
7286
7287*Synopsis*
7288     bfd_boolean core_file_matches_executable_p
7289        (bfd *core_bfd, bfd *exec_bfd);
7290   *Description*
7291Return 'TRUE' if the core file attached to CORE_BFD was generated by a
7292run of the executable file attached to EXEC_BFD, 'FALSE' otherwise.
7293
72942.11.1.5 'generic_core_file_matches_executable_p'
7295.................................................
7296
7297*Synopsis*
7298     bfd_boolean generic_core_file_matches_executable_p
7299        (bfd *core_bfd, bfd *exec_bfd);
7300   *Description*
7301Return TRUE if the core file attached to CORE_BFD was generated by a run
7302of the executable file attached to EXEC_BFD.  The match is based on
7303executable basenames only.
7304
7305   Note: When not able to determine the core file failing command or the
7306executable name, we still return TRUE even though we're not sure that
7307core file and executable match.  This is to avoid generating a false
7308warning in situations where we really don't know whether they match or
7309not.
7310
7311
7312File: bfd.info,  Node: Targets,  Next: Architectures,  Prev: Core Files,  Up: BFD front end
7313
73142.12 Targets
7315============
7316
7317*Description*
7318Each port of BFD to a different machine requires the creation of a
7319target back end.  All the back end provides to the root part of BFD is a
7320structure containing pointers to functions which perform certain low
7321level operations on files.  BFD translates the applications's requests
7322through a pointer into calls to the back end routines.
7323
7324   When a file is opened with 'bfd_openr', its format and target are
7325unknown.  BFD uses various mechanisms to determine how to interpret the
7326file.  The operations performed are:
7327
7328   * Create a BFD by calling the internal routine '_bfd_new_bfd', then
7329     call 'bfd_find_target' with the target string supplied to
7330     'bfd_openr' and the new BFD pointer.
7331
7332   * If a null target string was provided to 'bfd_find_target', look up
7333     the environment variable 'GNUTARGET' and use that as the target
7334     string.
7335
7336   * If the target string is still 'NULL', or the target string is
7337     'default', then use the first item in the target vector as the
7338     target type, and set 'target_defaulted' in the BFD to cause
7339     'bfd_check_format' to loop through all the targets.  *Note
7340     bfd_target::.  *Note Formats::.
7341
7342   * Otherwise, inspect the elements in the target vector one by one,
7343     until a match on target name is found.  When found, use it.
7344
7345   * Otherwise return the error 'bfd_error_invalid_target' to
7346     'bfd_openr'.
7347
7348   * 'bfd_openr' attempts to open the file using 'bfd_open_file', and
7349     returns the BFD.
7350   Once the BFD has been opened and the target selected, the file format
7351may be determined.  This is done by calling 'bfd_check_format' on the
7352BFD with a suggested format.  If 'target_defaulted' has been set, each
7353possible target type is tried to see if it recognizes the specified
7354format.  'bfd_check_format' returns 'TRUE' when the caller guesses
7355right.
7356* Menu:
7357
7358* bfd_target::
7359
7360
7361File: bfd.info,  Node: bfd_target,  Prev: Targets,  Up: Targets
7362
73632.12.1 bfd_target
7364-----------------
7365
7366*Description*
7367This structure contains everything that BFD knows about a target.  It
7368includes things like its byte order, name, and which routines to call to
7369do various operations.
7370
7371   Every BFD points to a target structure with its 'xvec' member.
7372
7373   The macros below are used to dispatch to functions through the
7374'bfd_target' vector.  They are used in a number of macros further down
7375in 'bfd.h', and are also used when calling various routines by hand
7376inside the BFD implementation.  The ARGLIST argument must be
7377parenthesized; it contains all the arguments to the called function.
7378
7379   They make the documentation (more) unpleasant to read, so if someone
7380wants to fix this and not break the above, please do.
7381     #define BFD_SEND(bfd, message, arglist) \
7382       ((*((bfd)->xvec->message)) arglist)
7383
7384     #ifdef DEBUG_BFD_SEND
7385     #undef BFD_SEND
7386     #define BFD_SEND(bfd, message, arglist) \
7387       (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
7388         ((*((bfd)->xvec->message)) arglist) : \
7389         (bfd_assert (__FILE__,__LINE__), NULL))
7390     #endif
7391   For operations which index on the BFD format:
7392     #define BFD_SEND_FMT(bfd, message, arglist) \
7393       (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
7394
7395     #ifdef DEBUG_BFD_SEND
7396     #undef BFD_SEND_FMT
7397     #define BFD_SEND_FMT(bfd, message, arglist) \
7398       (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
7399        (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
7400        (bfd_assert (__FILE__,__LINE__), NULL))
7401     #endif
7402
7403   This is the structure which defines the type of BFD this is.  The
7404'xvec' member of the struct 'bfd' itself points here.  Each module that
7405implements access to a different target under BFD, defines one of these.
7406
7407   FIXME, these names should be rationalised with the names of the entry
7408points which call them.  Too bad we can't have one macro to define them
7409both!
7410     enum bfd_flavour
7411     {
7412       /* N.B. Update bfd_flavour_name if you change this.  */
7413       bfd_target_unknown_flavour,
7414       bfd_target_aout_flavour,
7415       bfd_target_coff_flavour,
7416       bfd_target_ecoff_flavour,
7417       bfd_target_xcoff_flavour,
7418       bfd_target_elf_flavour,
7419       bfd_target_tekhex_flavour,
7420       bfd_target_srec_flavour,
7421       bfd_target_verilog_flavour,
7422       bfd_target_ihex_flavour,
7423       bfd_target_som_flavour,
7424       bfd_target_os9k_flavour,
7425       bfd_target_versados_flavour,
7426       bfd_target_msdos_flavour,
7427       bfd_target_ovax_flavour,
7428       bfd_target_evax_flavour,
7429       bfd_target_mmo_flavour,
7430       bfd_target_mach_o_flavour,
7431       bfd_target_pef_flavour,
7432       bfd_target_pef_xlib_flavour,
7433       bfd_target_sym_flavour
7434     };
7435
7436     enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
7437
7438     /* Forward declaration.  */
7439     typedef struct bfd_link_info _bfd_link_info;
7440
7441     /* Forward declaration.  */
7442     typedef struct flag_info flag_info;
7443
7444     typedef struct bfd_target
7445     {
7446       /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  */
7447       const char *name;
7448
7449      /* The "flavour" of a back end is a general indication about
7450         the contents of a file.  */
7451       enum bfd_flavour flavour;
7452
7453       /* The order of bytes within the data area of a file.  */
7454       enum bfd_endian byteorder;
7455
7456      /* The order of bytes within the header parts of a file.  */
7457       enum bfd_endian header_byteorder;
7458
7459       /* A mask of all the flags which an executable may have set -
7460          from the set BFD_NO_FLAGS, HAS_RELOC, ...D_PAGED.  */
7461       flagword object_flags;
7462
7463      /* A mask of all the flags which a section may have set - from
7464         the set SEC_NO_FLAGS, SEC_ALLOC, ...SET_NEVER_LOAD.  */
7465       flagword section_flags;
7466
7467      /* The character normally found at the front of a symbol.
7468         (if any), perhaps `_'.  */
7469       char symbol_leading_char;
7470
7471      /* The pad character for file names within an archive header.  */
7472       char ar_pad_char;
7473
7474       /* The maximum number of characters in an archive header.  */
7475       unsigned char ar_max_namelen;
7476
7477       /* How well this target matches, used to select between various
7478          possible targets when more than one target matches.  */
7479       unsigned char match_priority;
7480
7481       /* Entries for byte swapping for data. These are different from the
7482          other entry points, since they don't take a BFD as the first argument.
7483          Certain other handlers could do the same.  */
7484       bfd_uint64_t   (*bfd_getx64) (const void *);
7485       bfd_int64_t    (*bfd_getx_signed_64) (const void *);
7486       void           (*bfd_putx64) (bfd_uint64_t, void *);
7487       bfd_vma        (*bfd_getx32) (const void *);
7488       bfd_signed_vma (*bfd_getx_signed_32) (const void *);
7489       void           (*bfd_putx32) (bfd_vma, void *);
7490       bfd_vma        (*bfd_getx16) (const void *);
7491       bfd_signed_vma (*bfd_getx_signed_16) (const void *);
7492       void           (*bfd_putx16) (bfd_vma, void *);
7493
7494       /* Byte swapping for the headers.  */
7495       bfd_uint64_t   (*bfd_h_getx64) (const void *);
7496       bfd_int64_t    (*bfd_h_getx_signed_64) (const void *);
7497       void           (*bfd_h_putx64) (bfd_uint64_t, void *);
7498       bfd_vma        (*bfd_h_getx32) (const void *);
7499       bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
7500       void           (*bfd_h_putx32) (bfd_vma, void *);
7501       bfd_vma        (*bfd_h_getx16) (const void *);
7502       bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
7503       void           (*bfd_h_putx16) (bfd_vma, void *);
7504
7505       /* Format dependent routines: these are vectors of entry points
7506          within the target vector structure, one for each format to check.  */
7507
7508       /* Check the format of a file being read.  Return a bfd_target * or zero.  */
7509       const struct bfd_target *
7510                   (*_bfd_check_format[bfd_type_end]) (bfd *);
7511
7512       /* Set the format of a file being written.  */
7513       bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
7514
7515       /* Write cached information into a file being written, at bfd_close.  */
7516       bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
7517
7518   The general target vector.  These vectors are initialized using the
7519BFD_JUMP_TABLE macros.
7520
7521       /* Generic entry points.  */
7522     #define BFD_JUMP_TABLE_GENERIC(NAME) \
7523       NAME##_close_and_cleanup, \
7524       NAME##_bfd_free_cached_info, \
7525       NAME##_new_section_hook, \
7526       NAME##_get_section_contents, \
7527       NAME##_get_section_contents_in_window
7528
7529       /* Called when the BFD is being closed to do any necessary cleanup.  */
7530       bfd_boolean (*_close_and_cleanup) (bfd *);
7531       /* Ask the BFD to free all cached information.  */
7532       bfd_boolean (*_bfd_free_cached_info) (bfd *);
7533       /* Called when a new section is created.  */
7534       bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
7535       /* Read the contents of a section.  */
7536       bfd_boolean (*_bfd_get_section_contents) (bfd *, sec_ptr, void *, file_ptr,
7537                                                 bfd_size_type);
7538       bfd_boolean (*_bfd_get_section_contents_in_window) (bfd *, sec_ptr,
7539                                                           bfd_window *, file_ptr,
7540                                                           bfd_size_type);
7541
7542       /* Entry points to copy private data.  */
7543     #define BFD_JUMP_TABLE_COPY(NAME) \
7544       NAME##_bfd_copy_private_bfd_data, \
7545       NAME##_bfd_merge_private_bfd_data, \
7546       _bfd_generic_init_private_section_data, \
7547       NAME##_bfd_copy_private_section_data, \
7548       NAME##_bfd_copy_private_symbol_data, \
7549       NAME##_bfd_copy_private_header_data, \
7550       NAME##_bfd_set_private_flags, \
7551       NAME##_bfd_print_private_bfd_data
7552
7553       /* Called to copy BFD general private data from one object file
7554          to another.  */
7555       bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
7556       /* Called to merge BFD general private data from one object file
7557          to a common output file when linking.  */
7558       bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, struct bfd_link_info *);
7559       /* Called to initialize BFD private section data from one object file
7560          to another.  */
7561     #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
7562            BFD_SEND (obfd, _bfd_init_private_section_data, \
7563                      (ibfd, isec, obfd, osec, link_info))
7564       bfd_boolean (*_bfd_init_private_section_data) (bfd *, sec_ptr, bfd *,
7565                                                      sec_ptr,
7566                                                      struct bfd_link_info *);
7567       /* Called to copy BFD private section data from one object file
7568          to another.  */
7569       bfd_boolean (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *,
7570                                                      sec_ptr);
7571       /* Called to copy BFD private symbol data from one symbol
7572          to another.  */
7573       bfd_boolean (*_bfd_copy_private_symbol_data) (bfd *, asymbol *, bfd *,
7574                                                     asymbol *);
7575       /* Called to copy BFD private header data from one object file
7576          to another.  */
7577       bfd_boolean (*_bfd_copy_private_header_data) (bfd *, bfd *);
7578       /* Called to set private backend flags.  */
7579       bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
7580
7581       /* Called to print private BFD data.  */
7582       bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
7583
7584       /* Core file entry points.  */
7585     #define BFD_JUMP_TABLE_CORE(NAME) \
7586       NAME##_core_file_failing_command, \
7587       NAME##_core_file_failing_signal, \
7588       NAME##_core_file_matches_executable_p, \
7589       NAME##_core_file_pid
7590
7591       char *      (*_core_file_failing_command) (bfd *);
7592       int         (*_core_file_failing_signal) (bfd *);
7593       bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
7594       int         (*_core_file_pid) (bfd *);
7595
7596       /* Archive entry points.  */
7597     #define BFD_JUMP_TABLE_ARCHIVE(NAME) \
7598       NAME##_slurp_armap, \
7599       NAME##_slurp_extended_name_table, \
7600       NAME##_construct_extended_name_table, \
7601       NAME##_truncate_arname, \
7602       NAME##_write_armap, \
7603       NAME##_read_ar_hdr, \
7604       NAME##_write_ar_hdr, \
7605       NAME##_openr_next_archived_file, \
7606       NAME##_get_elt_at_index, \
7607       NAME##_generic_stat_arch_elt, \
7608       NAME##_update_armap_timestamp
7609
7610       bfd_boolean (*_bfd_slurp_armap) (bfd *);
7611       bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
7612       bfd_boolean (*_bfd_construct_extended_name_table) (bfd *, char **,
7613                                                          bfd_size_type *,
7614                                                          const char **);
7615       void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
7616       bfd_boolean (*write_armap) (bfd *, unsigned int, struct orl *,
7617                                   unsigned int, int);
7618       void *      (*_bfd_read_ar_hdr_fn) (bfd *);
7619       bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *);
7620       bfd *       (*openr_next_archived_file) (bfd *, bfd *);
7621     #define bfd_get_elt_at_index(b,i) \
7622            BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
7623       bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
7624       int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
7625       bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
7626
7627       /* Entry points used for symbols.  */
7628     #define BFD_JUMP_TABLE_SYMBOLS(NAME) \
7629       NAME##_get_symtab_upper_bound, \
7630       NAME##_canonicalize_symtab, \
7631       NAME##_make_empty_symbol, \
7632       NAME##_print_symbol, \
7633       NAME##_get_symbol_info, \
7634       NAME##_get_symbol_version_string, \
7635       NAME##_bfd_is_local_label_name, \
7636       NAME##_bfd_is_target_special_symbol, \
7637       NAME##_get_lineno, \
7638       NAME##_find_nearest_line, \
7639       NAME##_find_line, \
7640       NAME##_find_inliner_info, \
7641       NAME##_bfd_make_debug_symbol, \
7642       NAME##_read_minisymbols, \
7643       NAME##_minisymbol_to_symbol
7644
7645       long        (*_bfd_get_symtab_upper_bound) (bfd *);
7646       long        (*_bfd_canonicalize_symtab) (bfd *, struct bfd_symbol **);
7647       struct bfd_symbol *
7648                   (*_bfd_make_empty_symbol) (bfd *);
7649       void        (*_bfd_print_symbol) (bfd *, void *, struct bfd_symbol *,
7650                                         bfd_print_symbol_type);
7651     #define bfd_print_symbol(b,p,s,e) \
7652            BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
7653       void        (*_bfd_get_symbol_info) (bfd *, struct bfd_symbol *,
7654                                            symbol_info *);
7655     #define bfd_get_symbol_info(b,p,e) \
7656            BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
7657       const char *(*_bfd_get_symbol_version_string) (bfd *, struct bfd_symbol *,
7658                                                      bfd_boolean *);
7659     #define bfd_get_symbol_version_string(b,s,h) \
7660            BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
7661       bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
7662       bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
7663       alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
7664       bfd_boolean (*_bfd_find_nearest_line) (bfd *, struct bfd_symbol **,
7665                                              struct bfd_section *, bfd_vma,
7666                                              const char **, const char **,
7667                                              unsigned int *, unsigned int *);
7668       bfd_boolean (*_bfd_find_line) (bfd *, struct bfd_symbol **,
7669                                      struct bfd_symbol *, const char **,
7670                                      unsigned int *);
7671       bfd_boolean (*_bfd_find_inliner_info)
7672         (bfd *, const char **, const char **, unsigned int *);
7673      /* Back-door to allow format-aware applications to create debug symbols
7674         while using BFD for everything else.  Currently used by the assembler
7675         when creating COFF files.  */
7676       asymbol *   (*_bfd_make_debug_symbol) (bfd *, void *, unsigned long size);
7677     #define bfd_read_minisymbols(b, d, m, s) \
7678            BFD_SEND (b, _read_minisymbols, (b, d, m, s))
7679       long        (*_read_minisymbols) (bfd *, bfd_boolean, void **,
7680                                         unsigned int *);
7681     #define bfd_minisymbol_to_symbol(b, d, m, f) \
7682            BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
7683       asymbol *   (*_minisymbol_to_symbol) (bfd *, bfd_boolean, const void *,
7684                                             asymbol *);
7685
7686       /* Routines for relocs.  */
7687     #define BFD_JUMP_TABLE_RELOCS(NAME) \
7688       NAME##_get_reloc_upper_bound, \
7689       NAME##_canonicalize_reloc, \
7690       NAME##_set_reloc, \
7691       NAME##_bfd_reloc_type_lookup, \
7692       NAME##_bfd_reloc_name_lookup
7693
7694       long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
7695       long        (*_bfd_canonicalize_reloc) (bfd *, sec_ptr, arelent **,
7696                                               struct bfd_symbol **);
7697       void        (*_bfd_set_reloc) (bfd *, sec_ptr, arelent **, unsigned int);
7698       /* See documentation on reloc types.  */
7699       reloc_howto_type *
7700                   (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
7701       reloc_howto_type *
7702                   (*reloc_name_lookup) (bfd *, const char *);
7703
7704       /* Routines used when writing an object file.  */
7705     #define BFD_JUMP_TABLE_WRITE(NAME) \
7706       NAME##_set_arch_mach, \
7707       NAME##_set_section_contents
7708
7709       bfd_boolean (*_bfd_set_arch_mach) (bfd *, enum bfd_architecture,
7710                                          unsigned long);
7711       bfd_boolean (*_bfd_set_section_contents) (bfd *, sec_ptr, const void *,
7712                                                 file_ptr, bfd_size_type);
7713
7714       /* Routines used by the linker.  */
7715     #define BFD_JUMP_TABLE_LINK(NAME) \
7716       NAME##_sizeof_headers, \
7717       NAME##_bfd_get_relocated_section_contents, \
7718       NAME##_bfd_relax_section, \
7719       NAME##_bfd_link_hash_table_create, \
7720       NAME##_bfd_link_add_symbols, \
7721       NAME##_bfd_link_just_syms, \
7722       NAME##_bfd_copy_link_hash_symbol_type, \
7723       NAME##_bfd_final_link, \
7724       NAME##_bfd_link_split_section, \
7725       NAME##_bfd_link_check_relocs, \
7726       NAME##_bfd_gc_sections, \
7727       NAME##_bfd_lookup_section_flags, \
7728       NAME##_bfd_merge_sections, \
7729       NAME##_bfd_is_group_section, \
7730       NAME##_bfd_group_name, \
7731       NAME##_bfd_discard_group, \
7732       NAME##_section_already_linked, \
7733       NAME##_bfd_define_common_symbol, \
7734       NAME##_bfd_link_hide_symbol, \
7735       NAME##_bfd_define_start_stop
7736
7737       int         (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
7738       bfd_byte *  (*_bfd_get_relocated_section_contents) (bfd *,
7739                                                           struct bfd_link_info *,
7740                                                           struct bfd_link_order *,
7741                                                           bfd_byte *, bfd_boolean,
7742                                                           struct bfd_symbol **);
7743
7744       bfd_boolean (*_bfd_relax_section) (bfd *, struct bfd_section *,
7745                                          struct bfd_link_info *, bfd_boolean *);
7746
7747       /* Create a hash table for the linker.  Different backends store
7748          different information in this table.  */
7749       struct bfd_link_hash_table *
7750                   (*_bfd_link_hash_table_create) (bfd *);
7751
7752       /* Add symbols from this object file into the hash table.  */
7753       bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
7754
7755       /* Indicate that we are only retrieving symbol values from this section.  */
7756       void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
7757
7758       /* Copy the symbol type and other attributes for a linker script
7759          assignment of one symbol to another.  */
7760     #define bfd_copy_link_hash_symbol_type(b, t, f) \
7761            BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
7762       void        (*_bfd_copy_link_hash_symbol_type) (bfd *,
7763                                                       struct bfd_link_hash_entry *,
7764                                                       struct bfd_link_hash_entry *);
7765
7766       /* Do a link based on the link_order structures attached to each
7767          section of the BFD.  */
7768       bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
7769
7770       /* Should this section be split up into smaller pieces during linking.  */
7771       bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
7772
7773       /* Check the relocations in the bfd for validity.  */
7774       bfd_boolean (* _bfd_link_check_relocs)(bfd *, struct bfd_link_info *);
7775
7776       /* Remove sections that are not referenced from the output.  */
7777       bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
7778
7779       /* Sets the bitmask of allowed and disallowed section flags.  */
7780       bfd_boolean (*_bfd_lookup_section_flags) (struct bfd_link_info *,
7781                                                 struct flag_info *, asection *);
7782
7783       /* Attempt to merge SEC_MERGE sections.  */
7784       bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
7785
7786       /* Is this section a member of a group?  */
7787       bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
7788
7789       /* The group name, if section is a member of a group.  */
7790       const char *(*_bfd_group_name) (bfd *, const struct bfd_section *);
7791
7792       /* Discard members of a group.  */
7793       bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
7794
7795       /* Check if SEC has been already linked during a reloceatable or
7796          final link.  */
7797       bfd_boolean (*_section_already_linked) (bfd *, asection *,
7798                                               struct bfd_link_info *);
7799
7800       /* Define a common symbol.  */
7801       bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *,
7802                                                 struct bfd_link_hash_entry *);
7803
7804       /* Hide a symbol.  */
7805       void (*_bfd_link_hide_symbol) (bfd *, struct bfd_link_info *,
7806                                      struct bfd_link_hash_entry *);
7807
7808       /* Define a __start, __stop, .startof. or .sizeof. symbol.  */
7809       struct bfd_link_hash_entry *
7810                   (*_bfd_define_start_stop) (struct bfd_link_info *, const char *,
7811                                              asection *);
7812
7813       /* Routines to handle dynamic symbols and relocs.  */
7814     #define BFD_JUMP_TABLE_DYNAMIC(NAME) \
7815       NAME##_get_dynamic_symtab_upper_bound, \
7816       NAME##_canonicalize_dynamic_symtab, \
7817       NAME##_get_synthetic_symtab, \
7818       NAME##_get_dynamic_reloc_upper_bound, \
7819       NAME##_canonicalize_dynamic_reloc
7820
7821       /* Get the amount of memory required to hold the dynamic symbols.  */
7822       long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
7823       /* Read in the dynamic symbols.  */
7824       long        (*_bfd_canonicalize_dynamic_symtab) (bfd *, struct bfd_symbol **);
7825       /* Create synthetized symbols.  */
7826       long        (*_bfd_get_synthetic_symtab) (bfd *, long, struct bfd_symbol **,
7827                                                 long, struct bfd_symbol **,
7828                                                 struct bfd_symbol **);
7829       /* Get the amount of memory required to hold the dynamic relocs.  */
7830       long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
7831       /* Read in the dynamic relocs.  */
7832       long        (*_bfd_canonicalize_dynamic_reloc) (bfd *, arelent **,
7833                                                       struct bfd_symbol **);
7834
7835   A pointer to an alternative bfd_target in case the current one is not
7836satisfactory.  This can happen when the target cpu supports both big and
7837little endian code, and target chosen by the linker has the wrong
7838endianness.  The function open_output() in ld/ldlang.c uses this field
7839to find an alternative output format that is suitable.
7840       /* Opposite endian version of this target.  */
7841       const struct bfd_target *alternative_target;
7842
7843       /* Data for use by back-end routines, which isn't
7844          generic enough to belong in this structure.  */
7845       const void *backend_data;
7846
7847     } bfd_target;
7848
7849     static inline const char *
7850     bfd_get_target (const bfd *abfd)
7851     {
7852       return abfd->xvec->name;
7853     }
7854
7855     static inline enum bfd_flavour
7856     bfd_get_flavour (const bfd *abfd)
7857     {
7858       return abfd->xvec->flavour;
7859     }
7860
7861     static inline flagword
7862     bfd_applicable_file_flags (const bfd *abfd)
7863     {
7864       return abfd->xvec->object_flags;
7865     }
7866
7867     static inline bfd_boolean
7868     bfd_family_coff (const bfd *abfd)
7869     {
7870       return (bfd_get_flavour (abfd) == bfd_target_coff_flavour
7871               || bfd_get_flavour (abfd) == bfd_target_xcoff_flavour);
7872     }
7873
7874     static inline bfd_boolean
7875     bfd_big_endian (const bfd *abfd)
7876     {
7877       return abfd->xvec->byteorder == BFD_ENDIAN_BIG;
7878     }
7879     static inline bfd_boolean
7880     bfd_little_endian (const bfd *abfd)
7881     {
7882       return abfd->xvec->byteorder == BFD_ENDIAN_LITTLE;
7883     }
7884
7885     static inline bfd_boolean
7886     bfd_header_big_endian (const bfd *abfd)
7887     {
7888       return abfd->xvec->header_byteorder == BFD_ENDIAN_BIG;
7889     }
7890
7891     static inline bfd_boolean
7892     bfd_header_little_endian (const bfd *abfd)
7893     {
7894       return abfd->xvec->header_byteorder == BFD_ENDIAN_LITTLE;
7895     }
7896
7897     static inline flagword
7898     bfd_applicable_section_flags (const bfd *abfd)
7899     {
7900       return abfd->xvec->section_flags;
7901     }
7902
7903     static inline char
7904     bfd_get_symbol_leading_char (const bfd *abfd)
7905     {
7906       return abfd->xvec->symbol_leading_char;
7907     }
7908
7909     static inline enum bfd_flavour
7910     bfd_asymbol_flavour (const asymbol *sy)
7911     {
7912       if ((sy->flags & BSF_SYNTHETIC) != 0)
7913         return bfd_target_unknown_flavour;
7914       return sy->the_bfd->xvec->flavour;
7915     }
7916
7917
79182.12.1.1 'bfd_set_default_target'
7919.................................
7920
7921*Synopsis*
7922     bfd_boolean bfd_set_default_target (const char *name);
7923   *Description*
7924Set the default target vector to use when recognizing a BFD. This takes
7925the name of the target, which may be a BFD target name or a
7926configuration triplet.
7927
79282.12.1.2 'bfd_find_target'
7929..........................
7930
7931*Synopsis*
7932     const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
7933   *Description*
7934Return a pointer to the transfer vector for the object target named
7935TARGET_NAME.  If TARGET_NAME is 'NULL', choose the one in the
7936environment variable 'GNUTARGET'; if that is null or not defined, then
7937choose the first entry in the target list.  Passing in the string
7938"default" or setting the environment variable to "default" will cause
7939the first entry in the target list to be returned, and
7940"target_defaulted" will be set in the BFD if ABFD isn't 'NULL'.  This
7941causes 'bfd_check_format' to loop over all the targets to find the one
7942that matches the file being read.
7943
79442.12.1.3 'bfd_get_target_info'
7945..............................
7946
7947*Synopsis*
7948     const bfd_target *bfd_get_target_info (const char *target_name,
7949         bfd *abfd,
7950         bfd_boolean *is_bigendian,
7951         int *underscoring,
7952         const char **def_target_arch);
7953   *Description*
7954Return a pointer to the transfer vector for the object target named
7955TARGET_NAME.  If TARGET_NAME is 'NULL', choose the one in the
7956environment variable 'GNUTARGET'; if that is null or not defined, then
7957choose the first entry in the target list.  Passing in the string
7958"default" or setting the environment variable to "default" will cause
7959the first entry in the target list to be returned, and
7960"target_defaulted" will be set in the BFD if ABFD isn't 'NULL'.  This
7961causes 'bfd_check_format' to loop over all the targets to find the one
7962that matches the file being read.  If IS_BIGENDIAN is not 'NULL', then
7963set this value to target's endian mode.  True for big-endian, FALSE for
7964little-endian or for invalid target.  If UNDERSCORING is not 'NULL',
7965then set this value to target's underscoring mode.  Zero for
7966none-underscoring, -1 for invalid target, else the value of target
7967vector's symbol underscoring.  If DEF_TARGET_ARCH is not 'NULL', then
7968set it to the architecture string specified by the target_name.
7969
79702.12.1.4 'bfd_target_list'
7971..........................
7972
7973*Synopsis*
7974     const char ** bfd_target_list (void);
7975   *Description*
7976Return a freshly malloced NULL-terminated vector of the names of all the
7977valid BFD targets.  Do not modify the names.
7978
79792.12.1.5 'bfd_iterate_over_targets'
7980...................................
7981
7982*Synopsis*
7983     const bfd_target *bfd_iterate_over_targets
7984        (int (*func) (const bfd_target *, void *),
7985         void *data);
7986   *Description*
7987Call FUNC for each target in the list of BFD target vectors, passing
7988DATA to FUNC.  Stop iterating if FUNC returns a non-zero result, and
7989return that target vector.  Return NULL if FUNC always returns zero.
7990
79912.12.1.6 'bfd_flavour_name'
7992...........................
7993
7994*Synopsis*
7995     const char *bfd_flavour_name (enum bfd_flavour flavour);
7996   *Description*
7997Return the string form of FLAVOUR.
7998
7999
8000File: bfd.info,  Node: Architectures,  Next: Opening and Closing,  Prev: Targets,  Up: BFD front end
8001
80022.13 Architectures
8003==================
8004
8005BFD keeps one atom in a BFD describing the architecture of the data
8006attached to the BFD: a pointer to a 'bfd_arch_info_type'.
8007
8008   Pointers to structures can be requested independently of a BFD so
8009that an architecture's information can be interrogated without access to
8010an open BFD.
8011
8012   The architecture information is provided by each architecture
8013package.  The set of default architectures is selected by the macro
8014'SELECT_ARCHITECTURES'.  This is normally set up in the
8015'config/TARGET.mt' file of your choice.  If the name is not defined,
8016then all the architectures supported are included.
8017
8018   When BFD starts up, all the architectures are called with an
8019initialize method.  It is up to the architecture back end to insert as
8020many items into the list of architectures as it wants to; generally this
8021would be one for each machine and one for the default case (an item with
8022a machine field of 0).
8023
8024   BFD's idea of an architecture is implemented in 'archures.c'.
8025
80262.13.1 bfd_architecture
8027-----------------------
8028
8029*Description*
8030This enum gives the object file's CPU architecture, in a global
8031sense--i.e., what processor family does it belong to?  Another field
8032indicates which processor within the family is in use.  The machine
8033gives a number which distinguishes different versions of the
8034architecture, containing, for example, 68020 for Motorola 68020.
8035     enum bfd_architecture
8036     {
8037       bfd_arch_unknown,   /* File arch not known.  */
8038       bfd_arch_obscure,   /* Arch known, not one of these.  */
8039       bfd_arch_m68k,      /* Motorola 68xxx.  */
8040     #define bfd_mach_m68000                1
8041     #define bfd_mach_m68008                2
8042     #define bfd_mach_m68010                3
8043     #define bfd_mach_m68020                4
8044     #define bfd_mach_m68030                5
8045     #define bfd_mach_m68040                6
8046     #define bfd_mach_m68060                7
8047     #define bfd_mach_cpu32                 8
8048     #define bfd_mach_fido                  9
8049     #define bfd_mach_mcf_isa_a_nodiv       10
8050     #define bfd_mach_mcf_isa_a             11
8051     #define bfd_mach_mcf_isa_a_mac         12
8052     #define bfd_mach_mcf_isa_a_emac        13
8053     #define bfd_mach_mcf_isa_aplus         14
8054     #define bfd_mach_mcf_isa_aplus_mac     15
8055     #define bfd_mach_mcf_isa_aplus_emac    16
8056     #define bfd_mach_mcf_isa_b_nousp       17
8057     #define bfd_mach_mcf_isa_b_nousp_mac   18
8058     #define bfd_mach_mcf_isa_b_nousp_emac  19
8059     #define bfd_mach_mcf_isa_b             20
8060     #define bfd_mach_mcf_isa_b_mac         21
8061     #define bfd_mach_mcf_isa_b_emac        22
8062     #define bfd_mach_mcf_isa_b_float       23
8063     #define bfd_mach_mcf_isa_b_float_mac   24
8064     #define bfd_mach_mcf_isa_b_float_emac  25
8065     #define bfd_mach_mcf_isa_c             26
8066     #define bfd_mach_mcf_isa_c_mac         27
8067     #define bfd_mach_mcf_isa_c_emac        28
8068     #define bfd_mach_mcf_isa_c_nodiv       29
8069     #define bfd_mach_mcf_isa_c_nodiv_mac   30
8070     #define bfd_mach_mcf_isa_c_nodiv_emac  31
8071       bfd_arch_vax,       /* DEC Vax.  */
8072
8073       bfd_arch_or1k,      /* OpenRISC 1000.  */
8074     #define bfd_mach_or1k          1
8075     #define bfd_mach_or1knd        2
8076
8077       bfd_arch_sparc,     /* SPARC.  */
8078     #define bfd_mach_sparc                 1
8079     /* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
8080     #define bfd_mach_sparc_sparclet        2
8081     #define bfd_mach_sparc_sparclite       3
8082     #define bfd_mach_sparc_v8plus          4
8083     #define bfd_mach_sparc_v8plusa         5 /* with ultrasparc add'ns.  */
8084     #define bfd_mach_sparc_sparclite_le    6
8085     #define bfd_mach_sparc_v9              7
8086     #define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
8087     #define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
8088     #define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
8089     #define bfd_mach_sparc_v8plusc         11 /* with UA2005 and T1 add'ns.  */
8090     #define bfd_mach_sparc_v9c             12 /* with UA2005 and T1 add'ns.  */
8091     #define bfd_mach_sparc_v8plusd         13 /* with UA2007 and T3 add'ns.  */
8092     #define bfd_mach_sparc_v9d             14 /* with UA2007 and T3 add'ns.  */
8093     #define bfd_mach_sparc_v8pluse         15 /* with OSA2001 and T4 add'ns (no IMA).  */
8094     #define bfd_mach_sparc_v9e             16 /* with OSA2001 and T4 add'ns (no IMA).  */
8095     #define bfd_mach_sparc_v8plusv         17 /* with OSA2011 and T4 and IMA and FJMAU add'ns.  */
8096     #define bfd_mach_sparc_v9v             18 /* with OSA2011 and T4 and IMA and FJMAU add'ns.  */
8097     #define bfd_mach_sparc_v8plusm         19 /* with OSA2015 and M7 add'ns.  */
8098     #define bfd_mach_sparc_v9m             20 /* with OSA2015 and M7 add'ns.  */
8099     #define bfd_mach_sparc_v8plusm8        21 /* with OSA2017 and M8 add'ns.  */
8100     #define bfd_mach_sparc_v9m8            22 /* with OSA2017 and M8 add'ns.  */
8101     /* Nonzero if MACH has the v9 instruction set.  */
8102     #define bfd_mach_sparc_v9_p(mach) \
8103       ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m8 \
8104        && (mach) != bfd_mach_sparc_sparclite_le)
8105     /* Nonzero if MACH is a 64 bit sparc architecture.  */
8106     #define bfd_mach_sparc_64bit_p(mach) \
8107       ((mach) >= bfd_mach_sparc_v9 \
8108        && (mach) != bfd_mach_sparc_v8plusb \
8109        && (mach) != bfd_mach_sparc_v8plusc \
8110        && (mach) != bfd_mach_sparc_v8plusd \
8111        && (mach) != bfd_mach_sparc_v8pluse \
8112        && (mach) != bfd_mach_sparc_v8plusv \
8113        && (mach) != bfd_mach_sparc_v8plusm \
8114        && (mach) != bfd_mach_sparc_v8plusm8)
8115       bfd_arch_spu,       /* PowerPC SPU.  */
8116     #define bfd_mach_spu           256
8117       bfd_arch_mips,      /* MIPS Rxxxx.  */
8118     #define bfd_mach_mips3000              3000
8119     #define bfd_mach_mips3900              3900
8120     #define bfd_mach_mips4000              4000
8121     #define bfd_mach_mips4010              4010
8122     #define bfd_mach_mips4100              4100
8123     #define bfd_mach_mips4111              4111
8124     #define bfd_mach_mips4120              4120
8125     #define bfd_mach_mips4300              4300
8126     #define bfd_mach_mips4400              4400
8127     #define bfd_mach_mips4600              4600
8128     #define bfd_mach_mips4650              4650
8129     #define bfd_mach_mips5000              5000
8130     #define bfd_mach_mips5400              5400
8131     #define bfd_mach_mips5500              5500
8132     #define bfd_mach_mips5900              5900
8133     #define bfd_mach_mips6000              6000
8134     #define bfd_mach_mips7000              7000
8135     #define bfd_mach_mips8000              8000
8136     #define bfd_mach_mips9000              9000
8137     #define bfd_mach_mips10000             10000
8138     #define bfd_mach_mips12000             12000
8139     #define bfd_mach_mips14000             14000
8140     #define bfd_mach_mips16000             16000
8141     #define bfd_mach_mips16                16
8142     #define bfd_mach_mips5                 5
8143     #define bfd_mach_mips_loongson_2e      3001
8144     #define bfd_mach_mips_loongson_2f      3002
8145     #define bfd_mach_mips_gs464            3003
8146     #define bfd_mach_mips_gs464e           3004
8147     #define bfd_mach_mips_gs264e           3005
8148     #define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01.  */
8149     #define bfd_mach_mips_octeon           6501
8150     #define bfd_mach_mips_octeonp          6601
8151     #define bfd_mach_mips_octeon2          6502
8152     #define bfd_mach_mips_octeon3          6503
8153     #define bfd_mach_mips_xlr              887682   /* decimal 'XLR'.  */
8154     #define bfd_mach_mips_interaptiv_mr2   736550   /* decimal 'IA2'.  */
8155     #define bfd_mach_mipsisa32             32
8156     #define bfd_mach_mipsisa32r2           33
8157     #define bfd_mach_mipsisa32r3           34
8158     #define bfd_mach_mipsisa32r5           36
8159     #define bfd_mach_mipsisa32r6           37
8160     #define bfd_mach_mipsisa64             64
8161     #define bfd_mach_mipsisa64r2           65
8162     #define bfd_mach_mipsisa64r3           66
8163     #define bfd_mach_mipsisa64r5           68
8164     #define bfd_mach_mipsisa64r6           69
8165     #define bfd_mach_mips_micromips        96
8166       bfd_arch_i386,      /* Intel 386.  */
8167     #define bfd_mach_i386_intel_syntax     (1 << 0)
8168     #define bfd_mach_i386_i8086            (1 << 1)
8169     #define bfd_mach_i386_i386             (1 << 2)
8170     #define bfd_mach_x86_64                (1 << 3)
8171     #define bfd_mach_x64_32                (1 << 4)
8172     #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax)
8173     #define bfd_mach_x86_64_intel_syntax   (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax)
8174     #define bfd_mach_x64_32_intel_syntax   (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax)
8175       bfd_arch_l1om,      /* Intel L1OM.  */
8176     #define bfd_mach_l1om                  (1 << 5)
8177     #define bfd_mach_l1om_intel_syntax     (bfd_mach_l1om | bfd_mach_i386_intel_syntax)
8178       bfd_arch_k1om,      /* Intel K1OM.  */
8179     #define bfd_mach_k1om                  (1 << 6)
8180     #define bfd_mach_k1om_intel_syntax     (bfd_mach_k1om | bfd_mach_i386_intel_syntax)
8181     #define bfd_mach_i386_nacl             (1 << 7)
8182     #define bfd_mach_i386_i386_nacl        (bfd_mach_i386_i386 | bfd_mach_i386_nacl)
8183     #define bfd_mach_x86_64_nacl           (bfd_mach_x86_64 | bfd_mach_i386_nacl)
8184     #define bfd_mach_x64_32_nacl           (bfd_mach_x64_32 | bfd_mach_i386_nacl)
8185       bfd_arch_iamcu,     /* Intel MCU.  */
8186     #define bfd_mach_iamcu                 (1 << 8)
8187     #define bfd_mach_i386_iamcu            (bfd_mach_i386_i386 | bfd_mach_iamcu)
8188     #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax)
8189       bfd_arch_romp,      /* IBM ROMP PC/RT.  */
8190       bfd_arch_convex,    /* Convex.  */
8191       bfd_arch_m98k,      /* Motorola 98xxx.  */
8192       bfd_arch_pyramid,   /* Pyramid Technology.  */
8193       bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300).  */
8194     #define bfd_mach_h8300         1
8195     #define bfd_mach_h8300h        2
8196     #define bfd_mach_h8300s        3
8197     #define bfd_mach_h8300hn       4
8198     #define bfd_mach_h8300sn       5
8199     #define bfd_mach_h8300sx       6
8200     #define bfd_mach_h8300sxn      7
8201       bfd_arch_pdp11,     /* DEC PDP-11.  */
8202       bfd_arch_plugin,
8203       bfd_arch_powerpc,   /* PowerPC.  */
8204     #define bfd_mach_ppc           32
8205     #define bfd_mach_ppc64         64
8206     #define bfd_mach_ppc_403       403
8207     #define bfd_mach_ppc_403gc     4030
8208     #define bfd_mach_ppc_405       405
8209     #define bfd_mach_ppc_505       505
8210     #define bfd_mach_ppc_601       601
8211     #define bfd_mach_ppc_602       602
8212     #define bfd_mach_ppc_603       603
8213     #define bfd_mach_ppc_ec603e    6031
8214     #define bfd_mach_ppc_604       604
8215     #define bfd_mach_ppc_620       620
8216     #define bfd_mach_ppc_630       630
8217     #define bfd_mach_ppc_750       750
8218     #define bfd_mach_ppc_860       860
8219     #define bfd_mach_ppc_a35       35
8220     #define bfd_mach_ppc_rs64ii    642
8221     #define bfd_mach_ppc_rs64iii   643
8222     #define bfd_mach_ppc_7400      7400
8223     #define bfd_mach_ppc_e500      500
8224     #define bfd_mach_ppc_e500mc    5001
8225     #define bfd_mach_ppc_e500mc64  5005
8226     #define bfd_mach_ppc_e5500     5006
8227     #define bfd_mach_ppc_e6500     5007
8228     #define bfd_mach_ppc_titan     83
8229     #define bfd_mach_ppc_vle       84
8230       bfd_arch_rs6000,    /* IBM RS/6000.  */
8231     #define bfd_mach_rs6k          6000
8232     #define bfd_mach_rs6k_rs1      6001
8233     #define bfd_mach_rs6k_rsc      6003
8234     #define bfd_mach_rs6k_rs2      6002
8235       bfd_arch_hppa,      /* HP PA RISC.  */
8236     #define bfd_mach_hppa10        10
8237     #define bfd_mach_hppa11        11
8238     #define bfd_mach_hppa20        20
8239     #define bfd_mach_hppa20w       25
8240       bfd_arch_d10v,      /* Mitsubishi D10V.  */
8241     #define bfd_mach_d10v          1
8242     #define bfd_mach_d10v_ts2      2
8243     #define bfd_mach_d10v_ts3      3
8244       bfd_arch_d30v,      /* Mitsubishi D30V.  */
8245       bfd_arch_dlx,       /* DLX.  */
8246       bfd_arch_m68hc11,   /* Motorola 68HC11.  */
8247       bfd_arch_m68hc12,   /* Motorola 68HC12.  */
8248     #define bfd_mach_m6812_default 0
8249     #define bfd_mach_m6812         1
8250     #define bfd_mach_m6812s        2
8251       bfd_arch_m9s12x,    /* Freescale S12X.  */
8252       bfd_arch_m9s12xg,   /* Freescale XGATE.  */
8253       bfd_arch_s12z,    /* Freescale S12Z.  */
8254     #define bfd_mach_s12z_default 0
8255       bfd_arch_z8k,       /* Zilog Z8000.  */
8256     #define bfd_mach_z8001         1
8257     #define bfd_mach_z8002         2
8258       bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH).  */
8259     #define bfd_mach_sh                            1
8260     #define bfd_mach_sh2                           0x20
8261     #define bfd_mach_sh_dsp                        0x2d
8262     #define bfd_mach_sh2a                          0x2a
8263     #define bfd_mach_sh2a_nofpu                    0x2b
8264     #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
8265     #define bfd_mach_sh2a_nofpu_or_sh3_nommu       0x2a2
8266     #define bfd_mach_sh2a_or_sh4                   0x2a3
8267     #define bfd_mach_sh2a_or_sh3e                  0x2a4
8268     #define bfd_mach_sh2e                          0x2e
8269     #define bfd_mach_sh3                           0x30
8270     #define bfd_mach_sh3_nommu                     0x31
8271     #define bfd_mach_sh3_dsp                       0x3d
8272     #define bfd_mach_sh3e                          0x3e
8273     #define bfd_mach_sh4                           0x40
8274     #define bfd_mach_sh4_nofpu                     0x41
8275     #define bfd_mach_sh4_nommu_nofpu               0x42
8276     #define bfd_mach_sh4a                          0x4a
8277     #define bfd_mach_sh4a_nofpu                    0x4b
8278     #define bfd_mach_sh4al_dsp                     0x4d
8279       bfd_arch_alpha,     /* Dec Alpha.  */
8280     #define bfd_mach_alpha_ev4     0x10
8281     #define bfd_mach_alpha_ev5     0x20
8282     #define bfd_mach_alpha_ev6     0x30
8283       bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
8284     #define bfd_mach_arm_unknown   0
8285     #define bfd_mach_arm_2         1
8286     #define bfd_mach_arm_2a        2
8287     #define bfd_mach_arm_3         3
8288     #define bfd_mach_arm_3M        4
8289     #define bfd_mach_arm_4         5
8290     #define bfd_mach_arm_4T        6
8291     #define bfd_mach_arm_5         7
8292     #define bfd_mach_arm_5T        8
8293     #define bfd_mach_arm_5TE       9
8294     #define bfd_mach_arm_XScale    10
8295     #define bfd_mach_arm_ep9312    11
8296     #define bfd_mach_arm_iWMMXt    12
8297     #define bfd_mach_arm_iWMMXt2   13
8298     #define bfd_mach_arm_5TEJ      14
8299     #define bfd_mach_arm_6         15
8300     #define bfd_mach_arm_6KZ       16
8301     #define bfd_mach_arm_6T2       17
8302     #define bfd_mach_arm_6K        18
8303     #define bfd_mach_arm_7         19
8304     #define bfd_mach_arm_6M        20
8305     #define bfd_mach_arm_6SM       21
8306     #define bfd_mach_arm_7EM       22
8307     #define bfd_mach_arm_8         23
8308     #define bfd_mach_arm_8R        24
8309     #define bfd_mach_arm_8M_BASE   25
8310     #define bfd_mach_arm_8M_MAIN   26
8311     #define bfd_mach_arm_8_1M_MAIN 27
8312       bfd_arch_nds32,     /* Andes NDS32.  */
8313     #define bfd_mach_n1            1
8314     #define bfd_mach_n1h           2
8315     #define bfd_mach_n1h_v2        3
8316     #define bfd_mach_n1h_v3        4
8317     #define bfd_mach_n1h_v3m       5
8318       bfd_arch_ns32k,     /* National Semiconductors ns32000.  */
8319       bfd_arch_tic30,     /* Texas Instruments TMS320C30.  */
8320       bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X.  */
8321     #define bfd_mach_tic3x         30
8322     #define bfd_mach_tic4x         40
8323       bfd_arch_tic54x,    /* Texas Instruments TMS320C54X.  */
8324       bfd_arch_tic6x,     /* Texas Instruments TMS320C6X.  */
8325       bfd_arch_v850,      /* NEC V850.  */
8326       bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI).  */
8327     #define bfd_mach_v850          1
8328     #define bfd_mach_v850e         'E'
8329     #define bfd_mach_v850e1        '1'
8330     #define bfd_mach_v850e2        0x4532
8331     #define bfd_mach_v850e2v3      0x45325633
8332     #define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5').  */
8333       bfd_arch_arc,       /* ARC Cores.  */
8334     #define bfd_mach_arc_a4        0
8335     #define bfd_mach_arc_a5        1
8336     #define bfd_mach_arc_arc600    2
8337     #define bfd_mach_arc_arc601    4
8338     #define bfd_mach_arc_arc700    3
8339     #define bfd_mach_arc_arcv2     5
8340      bfd_arch_m32c,       /* Renesas M16C/M32C.  */
8341     #define bfd_mach_m16c          0x75
8342     #define bfd_mach_m32c          0x78
8343       bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D).  */
8344     #define bfd_mach_m32r          1 /* For backwards compatibility.  */
8345     #define bfd_mach_m32rx         'x'
8346     #define bfd_mach_m32r2         '2'
8347       bfd_arch_mn10200,   /* Matsushita MN10200.  */
8348       bfd_arch_mn10300,   /* Matsushita MN10300.  */
8349     #define bfd_mach_mn10300       300
8350     #define bfd_mach_am33          330
8351     #define bfd_mach_am33_2        332
8352       bfd_arch_fr30,
8353     #define bfd_mach_fr30          0x46523330
8354       bfd_arch_frv,
8355     #define bfd_mach_frv           1
8356     #define bfd_mach_frvsimple     2
8357     #define bfd_mach_fr300         300
8358     #define bfd_mach_fr400         400
8359     #define bfd_mach_fr450         450
8360     #define bfd_mach_frvtomcat     499     /* fr500 prototype.  */
8361     #define bfd_mach_fr500         500
8362     #define bfd_mach_fr550         550
8363       bfd_arch_moxie,     /* The moxie processor.  */
8364     #define bfd_mach_moxie         1
8365       bfd_arch_ft32,      /* The ft32 processor.  */
8366     #define bfd_mach_ft32          1
8367     #define bfd_mach_ft32b         2
8368       bfd_arch_mcore,
8369       bfd_arch_mep,
8370     #define bfd_mach_mep           1
8371     #define bfd_mach_mep_h1        0x6831
8372     #define bfd_mach_mep_c5        0x6335
8373       bfd_arch_metag,
8374     #define bfd_mach_metag         1
8375       bfd_arch_ia64,      /* HP/Intel ia64.  */
8376     #define bfd_mach_ia64_elf64    64
8377     #define bfd_mach_ia64_elf32    32
8378       bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
8379     #define bfd_mach_ip2022        1
8380     #define bfd_mach_ip2022ext     2
8381      bfd_arch_iq2000,     /* Vitesse IQ2000.  */
8382     #define bfd_mach_iq2000        1
8383     #define bfd_mach_iq10          2
8384       bfd_arch_bpf,       /* Linux eBPF.  */
8385     #define bfd_mach_bpf           1
8386       bfd_arch_epiphany,  /* Adapteva EPIPHANY.  */
8387     #define bfd_mach_epiphany16    1
8388     #define bfd_mach_epiphany32    2
8389       bfd_arch_mt,
8390     #define bfd_mach_ms1           1
8391     #define bfd_mach_mrisc2        2
8392     #define bfd_mach_ms2           3
8393       bfd_arch_pj,
8394       bfd_arch_avr,       /* Atmel AVR microcontrollers.  */
8395     #define bfd_mach_avr1          1
8396     #define bfd_mach_avr2          2
8397     #define bfd_mach_avr25         25
8398     #define bfd_mach_avr3          3
8399     #define bfd_mach_avr31         31
8400     #define bfd_mach_avr35         35
8401     #define bfd_mach_avr4          4
8402     #define bfd_mach_avr5          5
8403     #define bfd_mach_avr51         51
8404     #define bfd_mach_avr6          6
8405     #define bfd_mach_avrtiny       100
8406     #define bfd_mach_avrxmega1     101
8407     #define bfd_mach_avrxmega2     102
8408     #define bfd_mach_avrxmega3     103
8409     #define bfd_mach_avrxmega4     104
8410     #define bfd_mach_avrxmega5     105
8411     #define bfd_mach_avrxmega6     106
8412     #define bfd_mach_avrxmega7     107
8413       bfd_arch_bfin,      /* ADI Blackfin.  */
8414     #define bfd_mach_bfin          1
8415       bfd_arch_cr16,      /* National Semiconductor CompactRISC (ie CR16).  */
8416     #define bfd_mach_cr16          1
8417       bfd_arch_crx,       /*  National Semiconductor CRX.  */
8418     #define bfd_mach_crx           1
8419       bfd_arch_cris,      /* Axis CRIS.  */
8420     #define bfd_mach_cris_v0_v10   255
8421     #define bfd_mach_cris_v32      32
8422     #define bfd_mach_cris_v10_v32  1032
8423       bfd_arch_riscv,
8424     #define bfd_mach_riscv32       132
8425     #define bfd_mach_riscv64       164
8426       bfd_arch_rl78,
8427     #define bfd_mach_rl78          0x75
8428       bfd_arch_rx,        /* Renesas RX.  */
8429     #define bfd_mach_rx            0x75
8430     #define bfd_mach_rx_v2         0x76
8431     #define bfd_mach_rx_v3         0x77
8432       bfd_arch_s390,      /* IBM s390.  */
8433     #define bfd_mach_s390_31       31
8434     #define bfd_mach_s390_64       64
8435       bfd_arch_score,     /* Sunplus score.  */
8436     #define bfd_mach_score3        3
8437     #define bfd_mach_score7        7
8438       bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
8439       bfd_arch_xstormy16,
8440     #define bfd_mach_xstormy16     1
8441       bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
8442     #define bfd_mach_msp11         11
8443     #define bfd_mach_msp110        110
8444     #define bfd_mach_msp12         12
8445     #define bfd_mach_msp13         13
8446     #define bfd_mach_msp14         14
8447     #define bfd_mach_msp15         15
8448     #define bfd_mach_msp16         16
8449     #define bfd_mach_msp20         20
8450     #define bfd_mach_msp21         21
8451     #define bfd_mach_msp22         22
8452     #define bfd_mach_msp23         23
8453     #define bfd_mach_msp24         24
8454     #define bfd_mach_msp26         26
8455     #define bfd_mach_msp31         31
8456     #define bfd_mach_msp32         32
8457     #define bfd_mach_msp33         33
8458     #define bfd_mach_msp41         41
8459     #define bfd_mach_msp42         42
8460     #define bfd_mach_msp43         43
8461     #define bfd_mach_msp44         44
8462     #define bfd_mach_msp430x       45
8463     #define bfd_mach_msp46         46
8464     #define bfd_mach_msp47         47
8465     #define bfd_mach_msp54         54
8466       bfd_arch_xc16x,     /* Infineon's XC16X Series.  */
8467     #define bfd_mach_xc16x         1
8468     #define bfd_mach_xc16xl        2
8469     #define bfd_mach_xc16xs        3
8470       bfd_arch_xgate,     /* Freescale XGATE.  */
8471     #define bfd_mach_xgate         1
8472       bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
8473     #define bfd_mach_xtensa        1
8474       bfd_arch_z80,
8475     #define bfd_mach_gbz80         0 /* GameBoy Z80 (reduced instruction set) */
8476     #define bfd_mach_z80strict     1 /* Z80 without undocumented opcodes.  */
8477     #define bfd_mach_z180          2 /* Z180: successor with additional instructions, but without halves of ix and iy */
8478     #define bfd_mach_z80           3 /* Z80 with ixl, ixh, iyl, and iyh.  */
8479     #define bfd_mach_ez80_z80      4 /* eZ80 (successor of Z80 & Z180) in Z80 (16-bit address) mode */
8480     #define bfd_mach_ez80_adl      5 /* eZ80 (successor of Z80 & Z180) in ADL (24-bit address) mode */
8481     #define bfd_mach_z80full       7 /* Z80 with all undocumented instructions.  */
8482     #define bfd_mach_r800          11 /* R800: successor with multiplication.  */
8483       bfd_arch_lm32,      /* Lattice Mico32.  */
8484     #define bfd_mach_lm32          1
8485       bfd_arch_microblaze,/* Xilinx MicroBlaze.  */
8486       bfd_arch_tilepro,   /* Tilera TILEPro.  */
8487       bfd_arch_tilegx,    /* Tilera TILE-Gx.  */
8488     #define bfd_mach_tilepro       1
8489     #define bfd_mach_tilegx        1
8490     #define bfd_mach_tilegx32      2
8491       bfd_arch_aarch64,   /* AArch64.  */
8492     #define bfd_mach_aarch64 0
8493     #define bfd_mach_aarch64_ilp32 32
8494       bfd_arch_nios2,     /* Nios II.  */
8495     #define bfd_mach_nios2         0
8496     #define bfd_mach_nios2r1       1
8497     #define bfd_mach_nios2r2       2
8498       bfd_arch_visium,    /* Visium.  */
8499     #define bfd_mach_visium        1
8500       bfd_arch_wasm32,    /* WebAssembly.  */
8501     #define bfd_mach_wasm32        1
8502       bfd_arch_pru,       /* PRU.  */
8503     #define bfd_mach_pru           0
8504       bfd_arch_nfp,       /* Netronome Flow Processor */
8505     #define bfd_mach_nfp3200       0x3200
8506     #define bfd_mach_nfp6000       0x6000
8507       bfd_arch_csky,      /* C-SKY.  */
8508     #define bfd_mach_ck_unknown    0
8509     #define bfd_mach_ck510         1
8510     #define bfd_mach_ck610         2
8511     #define bfd_mach_ck801         3
8512     #define bfd_mach_ck802         4
8513     #define bfd_mach_ck803         5
8514     #define bfd_mach_ck807         6
8515     #define bfd_mach_ck810         7
8516       bfd_arch_last
8517       };
8518
85192.13.2 bfd_arch_info
8520--------------------
8521
8522*Description*
8523This structure contains information on architectures for use within BFD.
8524
8525     typedef struct bfd_arch_info
8526     {
8527       int bits_per_word;
8528       int bits_per_address;
8529       int bits_per_byte;
8530       enum bfd_architecture arch;
8531       unsigned long mach;
8532       const char *arch_name;
8533       const char *printable_name;
8534       unsigned int section_align_power;
8535       /* TRUE if this is the default machine for the architecture.
8536          The default arch should be the first entry for an arch so that
8537          all the entries for that arch can be accessed via next.  */
8538       bfd_boolean the_default;
8539       const struct bfd_arch_info * (*compatible) (const struct bfd_arch_info *,
8540                                                   const struct bfd_arch_info *);
8541
8542       bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
8543
8544       /* Allocate via bfd_malloc and return a fill buffer of size COUNT.  If
8545          IS_BIGENDIAN is TRUE, the order of bytes is big endian.  If CODE is
8546          TRUE, the buffer contains code.  */
8547       void *(*fill) (bfd_size_type count, bfd_boolean is_bigendian,
8548                      bfd_boolean code);
8549
8550       const struct bfd_arch_info *next;
8551
8552       /* On some architectures the offset for a relocation can point into
8553          the middle of an instruction.  This field specifies the maximum
8554          offset such a relocation can have (in octets).  This affects the
8555          behaviour of the disassembler, since a value greater than zero
8556          means that it may need to disassemble an instruction twice, once
8557          to get its length and then a second time to display it.  If the
8558          value is negative then this has to be done for every single
8559          instruction, regardless of the offset of the reloc.  */
8560       signed int max_reloc_offset_into_insn;
8561     }
8562     bfd_arch_info_type;
8563
8564
85652.13.2.1 'bfd_printable_name'
8566.............................
8567
8568*Synopsis*
8569     const char *bfd_printable_name (bfd *abfd);
8570   *Description*
8571Return a printable string representing the architecture and machine from
8572the pointer to the architecture info structure.
8573
85742.13.2.2 'bfd_scan_arch'
8575........................
8576
8577*Synopsis*
8578     const bfd_arch_info_type *bfd_scan_arch (const char *string);
8579   *Description*
8580Figure out if BFD supports any cpu which could be described with the
8581name STRING.  Return a pointer to an 'arch_info' structure if a machine
8582is found, otherwise NULL.
8583
85842.13.2.3 'bfd_arch_list'
8585........................
8586
8587*Synopsis*
8588     const char **bfd_arch_list (void);
8589   *Description*
8590Return a freshly malloced NULL-terminated vector of the names of all the
8591valid BFD architectures.  Do not modify the names.
8592
85932.13.2.4 'bfd_arch_get_compatible'
8594..................................
8595
8596*Synopsis*
8597     const bfd_arch_info_type *bfd_arch_get_compatible
8598        (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
8599   *Description*
8600Determine whether two BFDs' architectures and machine types are
8601compatible.  Calculates the lowest common denominator between the two
8602architectures and machine types implied by the BFDs and returns a
8603pointer to an 'arch_info' structure describing the compatible machine.
8604
86052.13.2.5 'bfd_default_arch_struct'
8606..................................
8607
8608*Description*
8609The 'bfd_default_arch_struct' is an item of 'bfd_arch_info_type' which
8610has been initialized to a fairly generic state.  A BFD starts life by
8611pointing to this structure, until the correct back end has determined
8612the real architecture of the file.
8613     extern const bfd_arch_info_type bfd_default_arch_struct;
8614
86152.13.2.6 'bfd_set_arch_info'
8616............................
8617
8618*Synopsis*
8619     void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
8620   *Description*
8621Set the architecture info of ABFD to ARG.
8622
86232.13.2.7 'bfd_default_set_arch_mach'
8624....................................
8625
8626*Synopsis*
8627     bfd_boolean bfd_default_set_arch_mach
8628        (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
8629   *Description*
8630Set the architecture and machine type in BFD ABFD to ARCH and MACH.
8631Find the correct pointer to a structure and insert it into the
8632'arch_info' pointer.
8633
86342.13.2.8 'bfd_get_arch'
8635.......................
8636
8637*Synopsis*
8638     enum bfd_architecture bfd_get_arch (const bfd *abfd);
8639   *Description*
8640Return the enumerated type which describes the BFD ABFD's architecture.
8641
86422.13.2.9 'bfd_get_mach'
8643.......................
8644
8645*Synopsis*
8646     unsigned long bfd_get_mach (const bfd *abfd);
8647   *Description*
8648Return the long type which describes the BFD ABFD's machine.
8649
86502.13.2.10 'bfd_arch_bits_per_byte'
8651..................................
8652
8653*Synopsis*
8654     unsigned int bfd_arch_bits_per_byte (const bfd *abfd);
8655   *Description*
8656Return the number of bits in one of the BFD ABFD's architecture's bytes.
8657
86582.13.2.11 'bfd_arch_bits_per_address'
8659.....................................
8660
8661*Synopsis*
8662     unsigned int bfd_arch_bits_per_address (const bfd *abfd);
8663   *Description*
8664Return the number of bits in one of the BFD ABFD's architecture's
8665addresses.
8666
86672.13.2.12 'bfd_default_compatible'
8668..................................
8669
8670*Synopsis*
8671     const bfd_arch_info_type *bfd_default_compatible
8672        (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
8673   *Description*
8674The default function for testing for compatibility.
8675
86762.13.2.13 'bfd_default_scan'
8677............................
8678
8679*Synopsis*
8680     bfd_boolean bfd_default_scan
8681        (const struct bfd_arch_info *info, const char *string);
8682   *Description*
8683The default function for working out whether this is an architecture hit
8684and a machine hit.
8685
86862.13.2.14 'bfd_get_arch_info'
8687.............................
8688
8689*Synopsis*
8690     const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
8691   *Description*
8692Return the architecture info struct in ABFD.
8693
86942.13.2.15 'bfd_lookup_arch'
8695...........................
8696
8697*Synopsis*
8698     const bfd_arch_info_type *bfd_lookup_arch
8699        (enum bfd_architecture arch, unsigned long machine);
8700   *Description*
8701Look for the architecture info structure which matches the arguments
8702ARCH and MACHINE.  A machine of 0 matches the machine/architecture
8703structure which marks itself as the default.
8704
87052.13.2.16 'bfd_printable_arch_mach'
8706...................................
8707
8708*Synopsis*
8709     const char *bfd_printable_arch_mach
8710        (enum bfd_architecture arch, unsigned long machine);
8711   *Description*
8712Return a printable string representing the architecture and machine
8713type.
8714
8715   This routine is depreciated.
8716
87172.13.2.17 'bfd_octets_per_byte'
8718...............................
8719
8720*Synopsis*
8721     unsigned int bfd_octets_per_byte (const bfd *abfd,
8722         const asection *sec);
8723   *Description*
8724Return the number of octets (8-bit quantities) per target byte (minimum
8725addressable unit).  In most cases, this will be one, but some DSP
8726targets have 16, 32, or even 48 bits per byte.
8727
87282.13.2.18 'bfd_arch_mach_octets_per_byte'
8729.........................................
8730
8731*Synopsis*
8732     unsigned int bfd_arch_mach_octets_per_byte
8733        (enum bfd_architecture arch, unsigned long machine);
8734   *Description*
8735See bfd_octets_per_byte.
8736
8737   This routine is provided for those cases where a bfd * is not
8738available
8739
87402.13.2.19 'bfd_arch_default_fill'
8741.................................
8742
8743*Synopsis*
8744     void *bfd_arch_default_fill (bfd_size_type count,
8745         bfd_boolean is_bigendian,
8746         bfd_boolean code);
8747   *Description*
8748Allocate via bfd_malloc and return a fill buffer of size COUNT. If
8749IS_BIGENDIAN is TRUE, the order of bytes is big endian.  If CODE is
8750TRUE, the buffer contains code.
8751
8752
8753File: bfd.info,  Node: Opening and Closing,  Next: Internal,  Prev: Architectures,  Up: BFD front end
8754
8755     /* Set to N to open the next N BFDs using an alternate id space.  */
8756     extern unsigned int bfd_use_reserved_id;
8757
87582.14 Opening and closing BFDs
8759=============================
8760
87612.14.1 Functions for opening and closing
8762----------------------------------------
8763
87642.14.1.1 'bfd_fopen'
8765....................
8766
8767*Synopsis*
8768     bfd *bfd_fopen (const char *filename, const char *target,
8769         const char *mode, int fd);
8770   *Description*
8771Open the file FILENAME with the target TARGET.  Return a pointer to the
8772created BFD. If FD is not -1, then 'fdopen' is used to open the file;
8773otherwise, 'fopen' is used.  MODE is passed directly to 'fopen' or
8774'fdopen'.
8775
8776   Calls 'bfd_find_target', so TARGET is interpreted as by that
8777function.
8778
8779   The new BFD is marked as cacheable iff FD is -1.
8780
8781   If 'NULL' is returned then an error has occured.  Possible errors are
8782'bfd_error_no_memory', 'bfd_error_invalid_target' or 'system_call'
8783error.
8784
8785   On error, FD is always closed.
8786
8787   A copy of the FILENAME argument is stored in the newly created BFD.
8788It can be accessed via the bfd_get_filename() macro.
8789
87902.14.1.2 'bfd_openr'
8791....................
8792
8793*Synopsis*
8794     bfd *bfd_openr (const char *filename, const char *target);
8795   *Description*
8796Open the file FILENAME (using 'fopen') with the target TARGET.  Return a
8797pointer to the created BFD.
8798
8799   Calls 'bfd_find_target', so TARGET is interpreted as by that
8800function.
8801
8802   If 'NULL' is returned then an error has occured.  Possible errors are
8803'bfd_error_no_memory', 'bfd_error_invalid_target' or 'system_call'
8804error.
8805
8806   A copy of the FILENAME argument is stored in the newly created BFD.
8807It can be accessed via the bfd_get_filename() macro.
8808
88092.14.1.3 'bfd_fdopenr'
8810......................
8811
8812*Synopsis*
8813     bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
8814   *Description*
8815'bfd_fdopenr' is to 'bfd_fopenr' much like 'fdopen' is to 'fopen'.  It
8816opens a BFD on a file already described by the FD supplied.
8817
8818   When the file is later 'bfd_close'd, the file descriptor will be
8819closed.  If the caller desires that this file descriptor be cached by
8820BFD (opened as needed, closed as needed to free descriptors for other
8821opens), with the supplied FD used as an initial file descriptor (but
8822subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the
8823returned BFD. The default is to assume no caching; the file descriptor
8824will remain open until 'bfd_close', and will not be affected by BFD
8825operations on other files.
8826
8827   Possible errors are 'bfd_error_no_memory', 'bfd_error_invalid_target'
8828and 'bfd_error_system_call'.
8829
8830   On error, FD is closed.
8831
8832   A copy of the FILENAME argument is stored in the newly created BFD.
8833It can be accessed via the bfd_get_filename() macro.
8834
88352.14.1.4 'bfd_openstreamr'
8836..........................
8837
8838*Synopsis*
8839     bfd *bfd_openstreamr (const char * filename, const char * target,
8840         void * stream);
8841   *Description*
8842Open a BFD for read access on an existing stdio stream.  When the BFD is
8843passed to 'bfd_close', the stream will be closed.
8844
8845   A copy of the FILENAME argument is stored in the newly created BFD.
8846It can be accessed via the bfd_get_filename() macro.
8847
88482.14.1.5 'bfd_openr_iovec'
8849..........................
8850
8851*Synopsis*
8852     bfd *bfd_openr_iovec (const char *filename, const char *target,
8853         void *(*open_func) (struct bfd *nbfd,
8854         void *open_closure),
8855         void *open_closure,
8856         file_ptr (*pread_func) (struct bfd *nbfd,
8857         void *stream,
8858         void *buf,
8859         file_ptr nbytes,
8860         file_ptr offset),
8861         int (*close_func) (struct bfd *nbfd,
8862         void *stream),
8863         int (*stat_func) (struct bfd *abfd,
8864         void *stream,
8865         struct stat *sb));
8866   *Description*
8867Create and return a BFD backed by a read-only STREAM.  The STREAM is
8868created using OPEN_FUNC, accessed using PREAD_FUNC and destroyed using
8869CLOSE_FUNC.
8870
8871   Calls 'bfd_find_target', so TARGET is interpreted as by that
8872function.
8873
8874   Calls OPEN_FUNC (which can call 'bfd_zalloc' and 'bfd_get_filename')
8875to obtain the read-only stream backing the BFD. OPEN_FUNC either
8876succeeds returning the non-'NULL' STREAM, or fails returning 'NULL'
8877(setting 'bfd_error').
8878
8879   Calls PREAD_FUNC to request NBYTES of data from STREAM starting at
8880OFFSET (e.g., via a call to 'bfd_read').  PREAD_FUNC either succeeds
8881returning the number of bytes read (which can be less than NBYTES when
8882end-of-file), or fails returning -1 (setting 'bfd_error').
8883
8884   Calls CLOSE_FUNC when the BFD is later closed using 'bfd_close'.
8885CLOSE_FUNC either succeeds returning 0, or fails returning -1 (setting
8886'bfd_error').
8887
8888   Calls STAT_FUNC to fill in a stat structure for bfd_stat,
8889bfd_get_size, and bfd_get_mtime calls.  STAT_FUNC returns 0 on success,
8890or returns -1 on failure (setting 'bfd_error').
8891
8892   If 'bfd_openr_iovec' returns 'NULL' then an error has occurred.
8893Possible errors are 'bfd_error_no_memory', 'bfd_error_invalid_target'
8894and 'bfd_error_system_call'.
8895
8896   A copy of the FILENAME argument is stored in the newly created BFD.
8897It can be accessed via the bfd_get_filename() macro.
8898
88992.14.1.6 'bfd_openw'
8900....................
8901
8902*Synopsis*
8903     bfd *bfd_openw (const char *filename, const char *target);
8904   *Description*
8905Create a BFD, associated with file FILENAME, using the file format
8906TARGET, and return a pointer to it.
8907
8908   Possible errors are 'bfd_error_system_call', 'bfd_error_no_memory',
8909'bfd_error_invalid_target'.
8910
8911   A copy of the FILENAME argument is stored in the newly created BFD.
8912It can be accessed via the bfd_get_filename() macro.
8913
89142.14.1.7 'bfd_close'
8915....................
8916
8917*Synopsis*
8918     bfd_boolean bfd_close (bfd *abfd);
8919   *Description*
8920Close a BFD. If the BFD was open for writing, then pending operations
8921are completed and the file written out and closed.  If the created file
8922is executable, then 'chmod' is called to mark it as such.
8923
8924   All memory attached to the BFD is released.
8925
8926   The file descriptor associated with the BFD is closed (even if it was
8927passed in to BFD by 'bfd_fdopenr').
8928
8929   *Returns*
8930'TRUE' is returned if all is ok, otherwise 'FALSE'.
8931
89322.14.1.8 'bfd_close_all_done'
8933.............................
8934
8935*Synopsis*
8936     bfd_boolean bfd_close_all_done (bfd *);
8937   *Description*
8938Close a BFD. Differs from 'bfd_close' since it does not complete any
8939pending operations.  This routine would be used if the application had
8940just used BFD for swapping and didn't want to use any of the writing
8941code.
8942
8943   If the created file is executable, then 'chmod' is called to mark it
8944as such.
8945
8946   All memory attached to the BFD is released.
8947
8948   *Returns*
8949'TRUE' is returned if all is ok, otherwise 'FALSE'.
8950
89512.14.1.9 'bfd_create'
8952.....................
8953
8954*Synopsis*
8955     bfd *bfd_create (const char *filename, bfd *templ);
8956   *Description*
8957Create a new BFD in the manner of 'bfd_openw', but without opening a
8958file.  The new BFD takes the target from the target used by TEMPL.  The
8959format is always set to 'bfd_object'.
8960
8961   A copy of the FILENAME argument is stored in the newly created BFD.
8962It can be accessed via the bfd_get_filename() macro.
8963
89642.14.1.10 'bfd_make_writable'
8965.............................
8966
8967*Synopsis*
8968     bfd_boolean bfd_make_writable (bfd *abfd);
8969   *Description*
8970Takes a BFD as created by 'bfd_create' and converts it into one like as
8971returned by 'bfd_openw'.  It does this by converting the BFD to
8972BFD_IN_MEMORY. It's assumed that you will call 'bfd_make_readable' on
8973this bfd later.
8974
8975   *Returns*
8976'TRUE' is returned if all is ok, otherwise 'FALSE'.
8977
89782.14.1.11 'bfd_make_readable'
8979.............................
8980
8981*Synopsis*
8982     bfd_boolean bfd_make_readable (bfd *abfd);
8983   *Description*
8984Takes a BFD as created by 'bfd_create' and 'bfd_make_writable' and
8985converts it into one like as returned by 'bfd_openr'.  It does this by
8986writing the contents out to the memory buffer, then reversing the
8987direction.
8988
8989   *Returns*
8990'TRUE' is returned if all is ok, otherwise 'FALSE'.
8991
89922.14.1.12 'bfd_alloc'
8993.....................
8994
8995*Synopsis*
8996     void *bfd_alloc (bfd *abfd, bfd_size_type wanted);
8997   *Description*
8998Allocate a block of WANTED bytes of memory attached to 'abfd' and return
8999a pointer to it.
9000
90012.14.1.13 'bfd_alloc2'
9002......................
9003
9004*Synopsis*
9005     void *bfd_alloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size);
9006   *Description*
9007Allocate a block of NMEMB elements of SIZE bytes each of memory attached
9008to 'abfd' and return a pointer to it.
9009
90102.14.1.14 'bfd_zalloc'
9011......................
9012
9013*Synopsis*
9014     void *bfd_zalloc (bfd *abfd, bfd_size_type wanted);
9015   *Description*
9016Allocate a block of WANTED bytes of zeroed memory attached to 'abfd' and
9017return a pointer to it.
9018
90192.14.1.15 'bfd_zalloc2'
9020.......................
9021
9022*Synopsis*
9023     void *bfd_zalloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size);
9024   *Description*
9025Allocate a block of NMEMB elements of SIZE bytes each of zeroed memory
9026attached to 'abfd' and return a pointer to it.
9027
90282.14.1.16 'bfd_calc_gnu_debuglink_crc32'
9029........................................
9030
9031*Synopsis*
9032     unsigned long bfd_calc_gnu_debuglink_crc32
9033        (unsigned long crc, const unsigned char *buf, bfd_size_type len);
9034   *Description*
9035Computes a CRC value as used in the .gnu_debuglink section.  Advances
9036the previously computed CRC value by computing and adding in the crc32
9037for LEN bytes of BUF.
9038
9039   *Returns*
9040Return the updated CRC32 value.
9041
90422.14.1.17 'bfd_get_debug_link_info_1'
9043.....................................
9044
9045*Synopsis*
9046     char *bfd_get_debug_link_info_1 (bfd *abfd, void *crc32_out);
9047   *Description*
9048Extracts the filename and CRC32 value for any separate debug information
9049file associated with ABFD.
9050
9051   The CRC32_OUT parameter is an untyped pointer because this routine is
9052used as a 'get_func_type' function, but it is expected to be an unsigned
9053long pointer.
9054
9055   *Returns*
9056The filename of the associated debug information file, or NULL if there
9057is no such file.  If the filename was found then the contents of
9058CRC32_OUT are updated to hold the corresponding CRC32 value for the
9059file.
9060
9061   The returned filename is allocated with 'malloc'; freeing it is the
9062responsibility of the caller.
9063
90642.14.1.18 'bfd_get_debug_link_info'
9065...................................
9066
9067*Synopsis*
9068     char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
9069   *Description*
9070Extracts the filename and CRC32 value for any separate debug information
9071file associated with ABFD.
9072
9073   *Returns*
9074The filename of the associated debug information file, or NULL if there
9075is no such file.  If the filename was found then the contents of
9076CRC32_OUT are updated to hold the corresponding CRC32 value for the
9077file.
9078
9079   The returned filename is allocated with 'malloc'; freeing it is the
9080responsibility of the caller.
9081
90822.14.1.19 'bfd_get_alt_debug_link_info'
9083.......................................
9084
9085*Synopsis*
9086     char *bfd_get_alt_debug_link_info (bfd * abfd,
9087         bfd_size_type *buildid_len,
9088         bfd_byte **buildid_out);
9089   *Description*
9090Fetch the filename and BuildID value for any alternate debuginfo
9091associated with ABFD.  Return NULL if no such info found, otherwise
9092return filename and update BUILDID_LEN and BUILDID_OUT.  The returned
9093filename and build_id are allocated with 'malloc'; freeing them is the
9094responsibility of the caller.
9095
90962.14.1.20 'separate_debug_file_exists'
9097......................................
9098
9099*Synopsis*
9100     bfd_boolean separate_debug_file_exists
9101        (char *name, void *crc32_p);
9102   *Description*
9103Checks to see if NAME is a file and if its contents match CRC32, which
9104is a pointer to an 'unsigned long' containing a CRC32.
9105
9106   The CRC32_P parameter is an untyped pointer because this routine is
9107used as a 'check_func_type' function.
9108
91092.14.1.21 'separate_alt_debug_file_exists'
9110..........................................
9111
9112*Synopsis*
9113     bfd_boolean separate_alt_debug_file_exists
9114        (char *name, void *unused);
9115   *Description*
9116Checks to see if NAME is a file.
9117
91182.14.1.22 'find_separate_debug_file'
9119....................................
9120
9121*Synopsis*
9122     char *find_separate_debug_file
9123        (bfd *abfd, const char *dir, bfd_boolean include_dirs,
9124         get_func_type get, check_func_type check, void *data);
9125   *Description*
9126Searches for a debug information file corresponding to ABFD.
9127
9128   The name of the separate debug info file is returned by the GET
9129function.  This function scans various fixed locations in the
9130filesystem, including the file tree rooted at DIR.  If the INCLUDE_DIRS
9131parameter is true then the directory components of ABFD's filename will
9132be included in the searched locations.
9133
9134   DATA is passed unmodified to the GET and CHECK functions.  It is
9135generally used to implement build-id-like matching in the callback
9136functions.
9137
9138   *Returns*
9139Returns the filename of the first file to be found which receives a TRUE
9140result from the CHECK function.  Returns NULL if no valid file could be
9141found.
9142
91432.14.1.23 'bfd_follow_gnu_debuglink'
9144....................................
9145
9146*Synopsis*
9147     char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
9148   *Description*
9149Takes a BFD and searches it for a .gnu_debuglink section.  If this
9150section is found, it examines the section for the name and checksum of a
9151'.debug' file containing auxiliary debugging information.  It then
9152searches the filesystem for this .debug file in some standard locations,
9153including the directory tree rooted at DIR, and if found returns the
9154full filename.
9155
9156   If DIR is NULL, the search will take place starting at the current
9157directory.
9158
9159   *Returns*
9160'NULL' on any errors or failure to locate the .debug file, otherwise a
9161pointer to a heap-allocated string containing the filename.  The caller
9162is responsible for freeing this string.
9163
91642.14.1.24 'bfd_follow_gnu_debugaltlink'
9165.......................................
9166
9167*Synopsis*
9168     char *bfd_follow_gnu_debugaltlink (bfd *abfd, const char *dir);
9169   *Description*
9170Takes a BFD and searches it for a .gnu_debugaltlink section.  If this
9171section is found, it examines the section for the name of a file
9172containing auxiliary debugging information.  It then searches the
9173filesystem for this file in a set of standard locations, including the
9174directory tree rooted at DIR, and if found returns the full filename.
9175
9176   If DIR is NULL, the search will take place starting at the current
9177directory.
9178
9179   *Returns*
9180'NULL' on any errors or failure to locate the debug file, otherwise a
9181pointer to a heap-allocated string containing the filename.  The caller
9182is responsible for freeing this string.
9183
91842.14.1.25 'bfd_create_gnu_debuglink_section'
9185............................................
9186
9187*Synopsis*
9188     struct bfd_section *bfd_create_gnu_debuglink_section
9189        (bfd *abfd, const char *filename);
9190   *Description*
9191Takes a BFD and adds a .gnu_debuglink section to it.  The section is
9192sized to be big enough to contain a link to the specified FILENAME.
9193
9194   *Returns*
9195A pointer to the new section is returned if all is ok.  Otherwise 'NULL'
9196is returned and bfd_error is set.
9197
91982.14.1.26 'bfd_fill_in_gnu_debuglink_section'
9199.............................................
9200
9201*Synopsis*
9202     bfd_boolean bfd_fill_in_gnu_debuglink_section
9203        (bfd *abfd, struct bfd_section *sect, const char *filename);
9204   *Description*
9205Takes a BFD and containing a .gnu_debuglink section SECT and fills in
9206the contents of the section to contain a link to the specified FILENAME.
9207The filename should be relative to the current directory.
9208
9209   *Returns*
9210'TRUE' is returned if all is ok.  Otherwise 'FALSE' is returned and
9211bfd_error is set.
9212
92132.14.1.27 'get_build_id'
9214........................
9215
9216*Synopsis*
9217     struct bfd_build_id * get_build_id (bfd *abfd);
9218   *Description*
9219Finds the build-id associated with ABFD.  If the build-id is extracted
9220from the note section then a build-id structure is built for it, using
9221memory allocated to ABFD, and this is then attached to the ABFD.
9222
9223   *Returns*
9224Returns a pointer to the build-id structure if a build-id could be
9225found.  If no build-id is found NULL is returned and error code is set.
9226
92272.14.1.28 'get_build_id_name'
9228.............................
9229
9230*Synopsis*
9231     char * get_build_id_name (bfd *abfd, void *build_id_out_p)
9232   *Description*
9233Searches ABFD for a build-id, and then constructs a pathname from it.
9234The path is computed as .build-id/NN/NN+NN.debug where NNNN+NN is the
9235build-id value as a hexadecimal string.
9236
9237   *Returns*
9238Returns the constructed filename or NULL upon error.  It is the caller's
9239responsibility to free the memory used to hold the filename.  If a
9240filename is returned then the BUILD_ID_OUT_P parameter (which points to
9241a 'struct bfd_build_id' pointer) is set to a pointer to the build_id
9242structure.
9243
92442.14.1.29 'check_build_id_file'
9245...............................
9246
9247*Synopsis*
9248     bfd_boolean check_build_id_file (char *name, void *buildid_p);
9249   *Description*
9250Checks to see if NAME is a readable file and if its build-id matches
9251BUILDID.
9252
9253   *Returns*
9254Returns TRUE if the file exists, is readable, and contains a build-id
9255which matches the build-id pointed at by BUILD_ID_P (which is really a
9256'struct bfd_build_id **').
9257
92582.14.1.30 'bfd_follow_build_id_debuglink'
9259.........................................
9260
9261*Synopsis*
9262     char *bfd_follow_build_id_debuglink (bfd *abfd, const char *dir);
9263   *Description*
9264Takes ABFD and searches it for a .note.gnu.build-id section.  If this
9265section is found, it extracts the value of the NT_GNU_BUILD_ID note,
9266which should be a hexadecimal value NNNN+NN (for 32+ hex digits).  It
9267then searches the filesystem for a file named .BUILD-ID/NN/NN+NN.DEBUG
9268in a set of standard locations, including the directory tree rooted at
9269DIR.  The filename of the first matching file to be found is returned.
9270A matching file should contain a .note.gnu.build-id section with the
9271same NNNN+NN note as ABFD, although this check is currently not
9272implemented.
9273
9274   If DIR is NULL, the search will take place starting at the current
9275directory.
9276
9277   *Returns*
9278'NULL' on any errors or failure to locate the debug file, otherwise a
9279pointer to a heap-allocated string containing the filename.  The caller
9280is responsible for freeing this string.
9281
92822.14.1.31 'bfd_set_filename'
9283............................
9284
9285*Synopsis*
9286     void bfd_set_filename (bfd *abfd, char *filename);
9287   *Description*
9288Set the filename of ABFD.  The old filename, if any, is freed.  FILENAME
9289must be allocated using 'xmalloc'.  After this call, it is owned ABFD.
9290
9291
9292File: bfd.info,  Node: Internal,  Next: File Caching,  Prev: Opening and Closing,  Up: BFD front end
9293
92942.15 Implementation details
9295===========================
9296
92972.15.1 Internal functions
9298-------------------------
9299
9300*Description*
9301These routines are used within BFD. They are not intended for export,
9302but are documented here for completeness.
9303
93042.15.1.1 'bfd_write_bigendian_4byte_int'
9305........................................
9306
9307*Synopsis*
9308     bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
9309   *Description*
9310Write a 4 byte integer I to the output BFD ABFD, in big endian order
9311regardless of what else is going on.  This is useful in archives.
9312
93132.15.1.2 'bfd_put_size'
9314.......................
9315
93162.15.1.3 'bfd_get_size'
9317.......................
9318
9319*Description*
9320These macros as used for reading and writing raw data in sections; each
9321access (except for bytes) is vectored through the target format of the
9322BFD and mangled accordingly.  The mangling performs any necessary endian
9323translations and removes alignment restrictions.  Note that types
9324accepted and returned by these macros are identical so they can be
9325swapped around in macros--for example, 'libaout.h' defines 'GET_WORD' to
9326either 'bfd_get_32' or 'bfd_get_64'.
9327
9328   In the put routines, VAL must be a 'bfd_vma'.  If we are on a system
9329without prototypes, the caller is responsible for making sure that is
9330true, with a cast if necessary.  We don't cast them in the macro
9331definitions because that would prevent 'lint' or 'gcc -Wall' from
9332detecting sins such as passing a pointer.  To detect calling these with
9333less than a 'bfd_vma', use 'gcc -Wconversion' on a host with 64 bit
9334'bfd_vma''s.
9335
9336     /* Byte swapping macros for user section data.  */
9337
9338     #define bfd_put_8(abfd, val, ptr) \
9339       ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
9340     #define bfd_put_signed_8 \
9341       bfd_put_8
9342     #define bfd_get_8(abfd, ptr) \
9343       ((bfd_vma) *(const unsigned char *) (ptr) & 0xff)
9344     #define bfd_get_signed_8(abfd, ptr) \
9345       ((((bfd_signed_vma) *(const unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
9346
9347     #define bfd_put_16(abfd, val, ptr) \
9348       BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
9349     #define bfd_put_signed_16 \
9350       bfd_put_16
9351     #define bfd_get_16(abfd, ptr) \
9352       BFD_SEND (abfd, bfd_getx16, (ptr))
9353     #define bfd_get_signed_16(abfd, ptr) \
9354       BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
9355
9356     #define bfd_put_24(abfd, val, ptr) \
9357       do                                   \
9358         if (bfd_big_endian (abfd))         \
9359           bfd_putb24 ((val), (ptr));       \
9360         else                               \
9361           bfd_putl24 ((val), (ptr));       \
9362       while (0)
9363
9364     bfd_vma bfd_getb24 (const void *p);
9365     bfd_vma bfd_getl24 (const void *p);
9366
9367     #define bfd_get_24(abfd, ptr) \
9368       (bfd_big_endian (abfd) ? bfd_getb24 (ptr) : bfd_getl24 (ptr))
9369
9370     #define bfd_put_32(abfd, val, ptr) \
9371       BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
9372     #define bfd_put_signed_32 \
9373       bfd_put_32
9374     #define bfd_get_32(abfd, ptr) \
9375       BFD_SEND (abfd, bfd_getx32, (ptr))
9376     #define bfd_get_signed_32(abfd, ptr) \
9377       BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
9378
9379     #define bfd_put_64(abfd, val, ptr) \
9380       BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
9381     #define bfd_put_signed_64 \
9382       bfd_put_64
9383     #define bfd_get_64(abfd, ptr) \
9384       BFD_SEND (abfd, bfd_getx64, (ptr))
9385     #define bfd_get_signed_64(abfd, ptr) \
9386       BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
9387
9388     #define bfd_get(bits, abfd, ptr)                       \
9389       ((bits) == 8 ? bfd_get_8 (abfd, ptr)                 \
9390        : (bits) == 16 ? bfd_get_16 (abfd, ptr)             \
9391        : (bits) == 32 ? bfd_get_32 (abfd, ptr)             \
9392        : (bits) == 64 ? bfd_get_64 (abfd, ptr)             \
9393        : (abort (), (bfd_vma) - 1))
9394
9395     #define bfd_put(bits, abfd, val, ptr)                  \
9396       ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)           \
9397        : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)        \
9398        : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)        \
9399        : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)        \
9400        : (abort (), (void) 0))
9401
9402
94032.15.1.4 'bfd_h_put_size'
9404.........................
9405
9406*Description*
9407These macros have the same function as their 'bfd_get_x' brethren,
9408except that they are used for removing information for the header
9409records of object files.  Believe it or not, some object files keep
9410their header records in big endian order and their data in little endian
9411order.
9412
9413     /* Byte swapping macros for file header data.  */
9414
9415     #define bfd_h_put_8(abfd, val, ptr) \
9416       bfd_put_8 (abfd, val, ptr)
9417     #define bfd_h_put_signed_8(abfd, val, ptr) \
9418       bfd_put_8 (abfd, val, ptr)
9419     #define bfd_h_get_8(abfd, ptr) \
9420       bfd_get_8 (abfd, ptr)
9421     #define bfd_h_get_signed_8(abfd, ptr) \
9422       bfd_get_signed_8 (abfd, ptr)
9423
9424     #define bfd_h_put_16(abfd, val, ptr) \
9425       BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
9426     #define bfd_h_put_signed_16 \
9427       bfd_h_put_16
9428     #define bfd_h_get_16(abfd, ptr) \
9429       BFD_SEND (abfd, bfd_h_getx16, (ptr))
9430     #define bfd_h_get_signed_16(abfd, ptr) \
9431       BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
9432
9433     #define bfd_h_put_32(abfd, val, ptr) \
9434       BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
9435     #define bfd_h_put_signed_32 \
9436       bfd_h_put_32
9437     #define bfd_h_get_32(abfd, ptr) \
9438       BFD_SEND (abfd, bfd_h_getx32, (ptr))
9439     #define bfd_h_get_signed_32(abfd, ptr) \
9440       BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
9441
9442     #define bfd_h_put_64(abfd, val, ptr) \
9443       BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
9444     #define bfd_h_put_signed_64 \
9445       bfd_h_put_64
9446     #define bfd_h_get_64(abfd, ptr) \
9447       BFD_SEND (abfd, bfd_h_getx64, (ptr))
9448     #define bfd_h_get_signed_64(abfd, ptr) \
9449       BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
9450
9451     /* Aliases for the above, which should eventually go away.  */
9452
9453     #define H_PUT_64  bfd_h_put_64
9454     #define H_PUT_32  bfd_h_put_32
9455     #define H_PUT_16  bfd_h_put_16
9456     #define H_PUT_8   bfd_h_put_8
9457     #define H_PUT_S64 bfd_h_put_signed_64
9458     #define H_PUT_S32 bfd_h_put_signed_32
9459     #define H_PUT_S16 bfd_h_put_signed_16
9460     #define H_PUT_S8  bfd_h_put_signed_8
9461     #define H_GET_64  bfd_h_get_64
9462     #define H_GET_32  bfd_h_get_32
9463     #define H_GET_16  bfd_h_get_16
9464     #define H_GET_8   bfd_h_get_8
9465     #define H_GET_S64 bfd_h_get_signed_64
9466     #define H_GET_S32 bfd_h_get_signed_32
9467     #define H_GET_S16 bfd_h_get_signed_16
9468     #define H_GET_S8  bfd_h_get_signed_8
9469
9470
9471
94722.15.1.5 'bfd_log2'
9473...................
9474
9475*Synopsis*
9476     unsigned int bfd_log2 (bfd_vma x);
9477   *Description*
9478Return the log base 2 of the value supplied, rounded up.  E.g., an X of
94791025 returns 11.  A X of 0 returns 0.
9480
9481
9482File: bfd.info,  Node: File Caching,  Next: Linker Functions,  Prev: Internal,  Up: BFD front end
9483
94842.16 File caching
9485=================
9486
9487The file caching mechanism is embedded within BFD and allows the
9488application to open as many BFDs as it wants without regard to the
9489underlying operating system's file descriptor limit (often as low as 20
9490open files).  The module in 'cache.c' maintains a least recently used
9491list of 'bfd_cache_max_open' files, and exports the name
9492'bfd_cache_lookup', which runs around and makes sure that the required
9493BFD is open.  If not, then it chooses a file to close, closes it and
9494opens the one wanted, returning its file handle.
9495
94962.16.1 Caching functions
9497------------------------
9498
94992.16.1.1 'bfd_cache_init'
9500.........................
9501
9502*Synopsis*
9503     bfd_boolean bfd_cache_init (bfd *abfd);
9504   *Description*
9505Add a newly opened BFD to the cache.
9506
95072.16.1.2 'bfd_cache_close'
9508..........................
9509
9510*Synopsis*
9511     bfd_boolean bfd_cache_close (bfd *abfd);
9512   *Description*
9513Remove the BFD ABFD from the cache.  If the attached file is open, then
9514close it too.
9515
9516   *Returns*
9517'FALSE' is returned if closing the file fails, 'TRUE' is returned if all
9518is well.
9519
95202.16.1.3 'bfd_cache_close_all'
9521..............................
9522
9523*Synopsis*
9524     bfd_boolean bfd_cache_close_all (void);
9525   *Description*
9526Remove all BFDs from the cache.  If the attached file is open, then
9527close it too.
9528
9529   *Returns*
9530'FALSE' is returned if closing one of the file fails, 'TRUE' is returned
9531if all is well.
9532
95332.16.1.4 'bfd_open_file'
9534........................
9535
9536*Synopsis*
9537     FILE* bfd_open_file (bfd *abfd);
9538   *Description*
9539Call the OS to open a file for ABFD.  Return the 'FILE *' (possibly
9540'NULL') that results from this operation.  Set up the BFD so that future
9541accesses know the file is open.  If the 'FILE *' returned is 'NULL',
9542then it won't have been put in the cache, so it won't have to be removed
9543from it.
9544
9545
9546File: bfd.info,  Node: Linker Functions,  Next: Hash Tables,  Prev: File Caching,  Up: BFD front end
9547
95482.17 Linker Functions
9549=====================
9550
9551The linker uses three special entry points in the BFD target vector.  It
9552is not necessary to write special routines for these entry points when
9553creating a new BFD back end, since generic versions are provided.
9554However, writing them can speed up linking and make it use significantly
9555less runtime memory.
9556
9557   The first routine creates a hash table used by the other routines.
9558The second routine adds the symbols from an object file to the hash
9559table.  The third routine takes all the object files and links them
9560together to create the output file.  These routines are designed so that
9561the linker proper does not need to know anything about the symbols in
9562the object files that it is linking.  The linker merely arranges the
9563sections as directed by the linker script and lets BFD handle the
9564details of symbols and relocs.
9565
9566   The second routine and third routines are passed a pointer to a
9567'struct bfd_link_info' structure (defined in 'bfdlink.h') which holds
9568information relevant to the link, including the linker hash table (which
9569was created by the first routine) and a set of callback functions to the
9570linker proper.
9571
9572   The generic linker routines are in 'linker.c', and use the header
9573file 'genlink.h'.  As of this writing, the only back ends which have
9574implemented versions of these routines are a.out (in 'aoutx.h') and
9575ECOFF (in 'ecoff.c').  The a.out routines are used as examples
9576throughout this section.
9577
9578* Menu:
9579
9580* Creating a Linker Hash Table::
9581* Adding Symbols to the Hash Table::
9582* Performing the Final Link::
9583
9584
9585File: bfd.info,  Node: Creating a Linker Hash Table,  Next: Adding Symbols to the Hash Table,  Prev: Linker Functions,  Up: Linker Functions
9586
95872.17.1 Creating a linker hash table
9588-----------------------------------
9589
9590The linker routines must create a hash table, which must be derived from
9591'struct bfd_link_hash_table' described in 'bfdlink.c'.  *Note Hash
9592Tables::, for information on how to create a derived hash table.  This
9593entry point is called using the target vector of the linker output file.
9594
9595   The '_bfd_link_hash_table_create' entry point must allocate and
9596initialize an instance of the desired hash table.  If the back end does
9597not require any additional information to be stored with the entries in
9598the hash table, the entry point may simply create a 'struct
9599bfd_link_hash_table'.  Most likely, however, some additional information
9600will be needed.
9601
9602   For example, with each entry in the hash table the a.out linker keeps
9603the index the symbol has in the final output file (this index number is
9604used so that when doing a relocatable link the symbol index used in the
9605output file can be quickly filled in when copying over a reloc).  The
9606a.out linker code defines the required structures and functions for a
9607hash table derived from 'struct bfd_link_hash_table'.  The a.out linker
9608hash table is created by the function
9609'NAME(aout,link_hash_table_create)'; it simply allocates space for the
9610hash table, initializes it, and returns a pointer to it.
9611
9612   When writing the linker routines for a new back end, you will
9613generally not know exactly which fields will be required until you have
9614finished.  You should simply create a new hash table which defines no
9615additional fields, and then simply add fields as they become necessary.
9616
9617
9618File: bfd.info,  Node: Adding Symbols to the Hash Table,  Next: Performing the Final Link,  Prev: Creating a Linker Hash Table,  Up: Linker Functions
9619
96202.17.2 Adding symbols to the hash table
9621---------------------------------------
9622
9623The linker proper will call the '_bfd_link_add_symbols' entry point for
9624each object file or archive which is to be linked (typically these are
9625the files named on the command line, but some may also come from the
9626linker script).  The entry point is responsible for examining the file.
9627For an object file, BFD must add any relevant symbol information to the
9628hash table.  For an archive, BFD must determine which elements of the
9629archive should be used and adding them to the link.
9630
9631   The a.out version of this entry point is
9632'NAME(aout,link_add_symbols)'.
9633
9634* Menu:
9635
9636* Differing file formats::
9637* Adding symbols from an object file::
9638* Adding symbols from an archive::
9639
9640
9641File: 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
9642
96432.17.2.1 Differing file formats
9644...............................
9645
9646Normally all the files involved in a link will be of the same format,
9647but it is also possible to link together different format object files,
9648and the back end must support that.  The '_bfd_link_add_symbols' entry
9649point is called via the target vector of the file to be added.  This has
9650an important consequence: the function may not assume that the hash
9651table is the type created by the corresponding
9652'_bfd_link_hash_table_create' vector.  All the '_bfd_link_add_symbols'
9653function can assume about the hash table is that it is derived from
9654'struct bfd_link_hash_table'.
9655
9656   Sometimes the '_bfd_link_add_symbols' function must store some
9657information in the hash table entry to be used by the '_bfd_final_link'
9658function.  In such a case the output bfd xvec must be checked to make
9659sure that the hash table was created by an object file of the same
9660format.
9661
9662   The '_bfd_final_link' routine must be prepared to handle a hash entry
9663without any extra information added by the '_bfd_link_add_symbols'
9664function.  A hash entry without extra information will also occur when
9665the linker script directs the linker to create a symbol.  Note that,
9666regardless of how a hash table entry is added, all the fields will be
9667initialized to some sort of null value by the hash table entry
9668initialization function.
9669
9670   See 'ecoff_link_add_externals' for an example of how to check the
9671output bfd before saving information (in this case, the ECOFF external
9672symbol debugging information) in a hash table entry.
9673
9674
9675File: 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
9676
96772.17.2.2 Adding symbols from an object file
9678...........................................
9679
9680When the '_bfd_link_add_symbols' routine is passed an object file, it
9681must add all externally visible symbols in that object file to the hash
9682table.  The actual work of adding the symbol to the hash table is
9683normally handled by the function '_bfd_generic_link_add_one_symbol'.
9684The '_bfd_link_add_symbols' routine is responsible for reading all the
9685symbols from the object file and passing the correct information to
9686'_bfd_generic_link_add_one_symbol'.
9687
9688   The '_bfd_link_add_symbols' routine should not use
9689'bfd_canonicalize_symtab' to read the symbols.  The point of providing
9690this routine is to avoid the overhead of converting the symbols into
9691generic 'asymbol' structures.
9692
9693   '_bfd_generic_link_add_one_symbol' handles the details of combining
9694common symbols, warning about multiple definitions, and so forth.  It
9695takes arguments which describe the symbol to add, notably symbol flags,
9696a section, and an offset.  The symbol flags include such things as
9697'BSF_WEAK' or 'BSF_INDIRECT'.  The section is a section in the object
9698file, or something like 'bfd_und_section_ptr' for an undefined symbol or
9699'bfd_com_section_ptr' for a common symbol.
9700
9701   If the '_bfd_final_link' routine is also going to need to read the
9702symbol information, the '_bfd_link_add_symbols' routine should save it
9703somewhere attached to the object file BFD. However, the information
9704should only be saved if the 'keep_memory' field of the 'info' argument
9705is TRUE, so that the '-no-keep-memory' linker switch is effective.
9706
9707   The a.out function which adds symbols from an object file is
9708'aout_link_add_object_symbols', and most of the interesting work is in
9709'aout_link_add_symbols'.  The latter saves pointers to the hash tables
9710entries created by '_bfd_generic_link_add_one_symbol' indexed by symbol
9711number, so that the '_bfd_final_link' routine does not have to call the
9712hash table lookup routine to locate the entry.
9713
9714
9715File: bfd.info,  Node: Adding symbols from an archive,  Prev: Adding symbols from an object file,  Up: Adding Symbols to the Hash Table
9716
97172.17.2.3 Adding symbols from an archive
9718.......................................
9719
9720When the '_bfd_link_add_symbols' routine is passed an archive, it must
9721look through the symbols defined by the archive and decide which
9722elements of the archive should be included in the link.  For each such
9723element it must call the 'add_archive_element' linker callback, and it
9724must add the symbols from the object file to the linker hash table.
9725(The callback may in fact indicate that a replacement BFD should be
9726used, in which case the symbols from that BFD should be added to the
9727linker hash table instead.)
9728
9729   In most cases the work of looking through the symbols in the archive
9730should be done by the '_bfd_generic_link_add_archive_symbols' function.
9731'_bfd_generic_link_add_archive_symbols' is passed a function to call to
9732make the final decision about adding an archive element to the link and
9733to do the actual work of adding the symbols to the linker hash table.
9734If the element is to be included, the 'add_archive_element' linker
9735callback routine must be called with the element as an argument, and the
9736element's symbols must be added to the linker hash table just as though
9737the element had itself been passed to the '_bfd_link_add_symbols'
9738function.
9739
9740   When the a.out '_bfd_link_add_symbols' function receives an archive,
9741it calls '_bfd_generic_link_add_archive_symbols' passing
9742'aout_link_check_archive_element' as the function argument.
9743'aout_link_check_archive_element' calls 'aout_link_check_ar_symbols'.
9744If the latter decides to add the element (an element is only added if it
9745provides a real, non-common, definition for a previously undefined or
9746common symbol) it calls the 'add_archive_element' callback and then
9747'aout_link_check_archive_element' calls 'aout_link_add_symbols' to
9748actually add the symbols to the linker hash table - possibly those of a
9749substitute BFD, if the 'add_archive_element' callback avails itself of
9750that option.
9751
9752   The ECOFF back end is unusual in that it does not normally call
9753'_bfd_generic_link_add_archive_symbols', because ECOFF archives already
9754contain a hash table of symbols.  The ECOFF back end searches the
9755archive itself to avoid the overhead of creating a new hash table.
9756
9757
9758File: bfd.info,  Node: Performing the Final Link,  Prev: Adding Symbols to the Hash Table,  Up: Linker Functions
9759
97602.17.3 Performing the final link
9761--------------------------------
9762
9763When all the input files have been processed, the linker calls the
9764'_bfd_final_link' entry point of the output BFD. This routine is
9765responsible for producing the final output file, which has several
9766aspects.  It must relocate the contents of the input sections and copy
9767the data into the output sections.  It must build an output symbol table
9768including any local symbols from the input files and the global symbols
9769from the hash table.  When producing relocatable output, it must modify
9770the input relocs and write them into the output file.  There may also be
9771object format dependent work to be done.
9772
9773   The linker will also call the 'write_object_contents' entry point
9774when the BFD is closed.  The two entry points must work together in
9775order to produce the correct output file.
9776
9777   The details of how this works are inevitably dependent upon the
9778specific object file format.  The a.out '_bfd_final_link' routine is
9779'NAME(aout,final_link)'.
9780
9781* Menu:
9782
9783* Information provided by the linker::
9784* Relocating the section contents::
9785* Writing the symbol table::
9786
9787
9788File: bfd.info,  Node: Information provided by the linker,  Next: Relocating the section contents,  Prev: Performing the Final Link,  Up: Performing the Final Link
9789
97902.17.3.1 Information provided by the linker
9791...........................................
9792
9793Before the linker calls the '_bfd_final_link' entry point, it sets up
9794some data structures for the function to use.
9795
9796   The 'input_bfds' field of the 'bfd_link_info' structure will point to
9797a list of all the input files included in the link.  These files are
9798linked through the 'link.next' field of the 'bfd' structure.
9799
9800   Each section in the output file will have a list of 'link_order'
9801structures attached to the 'map_head.link_order' field (the 'link_order'
9802structure is defined in 'bfdlink.h').  These structures describe how to
9803create the contents of the output section in terms of the contents of
9804various input sections, fill constants, and, eventually, other types of
9805information.  They also describe relocs that must be created by the BFD
9806backend, but do not correspond to any input file; this is used to
9807support -Ur, which builds constructors while generating a relocatable
9808object file.
9809
9810
9811File: bfd.info,  Node: Relocating the section contents,  Next: Writing the symbol table,  Prev: Information provided by the linker,  Up: Performing the Final Link
9812
98132.17.3.2 Relocating the section contents
9814........................................
9815
9816The '_bfd_final_link' function should look through the 'link_order'
9817structures attached to each section of the output file.  Each
9818'link_order' structure should either be handled specially, or it should
9819be passed to the function '_bfd_default_link_order' which will do the
9820right thing ('_bfd_default_link_order' is defined in 'linker.c').
9821
9822   For efficiency, a 'link_order' of type 'bfd_indirect_link_order'
9823whose associated section belongs to a BFD of the same format as the
9824output BFD must be handled specially.  This type of 'link_order'
9825describes part of an output section in terms of a section belonging to
9826one of the input files.  The '_bfd_final_link' function should read the
9827contents of the section and any associated relocs, apply the relocs to
9828the section contents, and write out the modified section contents.  If
9829performing a relocatable link, the relocs themselves must also be
9830modified and written out.
9831
9832   The functions '_bfd_relocate_contents' and '_bfd_final_link_relocate'
9833provide some general support for performing the actual relocations,
9834notably overflow checking.  Their arguments include information about
9835the symbol the relocation is against and a 'reloc_howto_type' argument
9836which describes the relocation to perform.  These functions are defined
9837in 'reloc.c'.
9838
9839   The a.out function which handles reading, relocating, and writing
9840section contents is 'aout_link_input_section'.  The actual relocation is
9841done in 'aout_link_input_section_std' and 'aout_link_input_section_ext'.
9842
9843
9844File: bfd.info,  Node: Writing the symbol table,  Prev: Relocating the section contents,  Up: Performing the Final Link
9845
98462.17.3.3 Writing the symbol table
9847.................................
9848
9849The '_bfd_final_link' function must gather all the symbols in the input
9850files and write them out.  It must also write out all the symbols in the
9851global hash table.  This must be controlled by the 'strip' and 'discard'
9852fields of the 'bfd_link_info' structure.
9853
9854   The local symbols of the input files will not have been entered into
9855the linker hash table.  The '_bfd_final_link' routine must consider each
9856input file and include the symbols in the output file.  It may be
9857convenient to do this when looking through the 'link_order' structures,
9858or it may be done by stepping through the 'input_bfds' list.
9859
9860   The '_bfd_final_link' routine must also traverse the global hash
9861table to gather all the externally visible symbols.  It is possible that
9862most of the externally visible symbols may be written out when
9863considering the symbols of each input file, but it is still necessary to
9864traverse the hash table since the linker script may have defined some
9865symbols that are not in any of the input files.
9866
9867   The 'strip' field of the 'bfd_link_info' structure controls which
9868symbols are written out.  The possible values are listed in 'bfdlink.h'.
9869If the value is 'strip_some', then the 'keep_hash' field of the
9870'bfd_link_info' structure is a hash table of symbols to keep; each
9871symbol should be looked up in this hash table, and only symbols which
9872are present should be included in the output file.
9873
9874   If the 'strip' field of the 'bfd_link_info' structure permits local
9875symbols to be written out, the 'discard' field is used to further
9876controls which local symbols are included in the output file.  If the
9877value is 'discard_l', then all local symbols which begin with a certain
9878prefix are discarded; this is controlled by the
9879'bfd_is_local_label_name' entry point.
9880
9881   The a.out backend handles symbols by calling
9882'aout_link_write_symbols' on each input BFD and then traversing the
9883global hash table with the function 'aout_link_write_other_symbol'.  It
9884builds a string table while writing out the symbols, which is written to
9885the output file at the end of 'NAME(aout,final_link)'.
9886
98872.17.3.4 'bfd_link_split_section'
9888.................................
9889
9890*Synopsis*
9891     bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
9892   *Description*
9893Return nonzero if SEC should be split during a reloceatable or final
9894link.
9895     #define bfd_link_split_section(abfd, sec) \
9896            BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
9897
9898
98992.17.3.5 'bfd_section_already_linked'
9900.....................................
9901
9902*Synopsis*
9903     bfd_boolean bfd_section_already_linked (bfd *abfd,
9904         asection *sec,
9905         struct bfd_link_info *info);
9906   *Description*
9907Check if DATA has been already linked during a reloceatable or final
9908link.  Return TRUE if it has.
9909     #define bfd_section_already_linked(abfd, sec, info) \
9910            BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
9911
9912
99132.17.3.6 'bfd_generic_define_common_symbol'
9914...........................................
9915
9916*Synopsis*
9917     bfd_boolean bfd_generic_define_common_symbol
9918        (bfd *output_bfd, struct bfd_link_info *info,
9919         struct bfd_link_hash_entry *h);
9920   *Description*
9921Convert common symbol H into a defined symbol.  Return TRUE on success
9922and FALSE on failure.
9923     #define bfd_define_common_symbol(output_bfd, info, h) \
9924            BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h))
9925
9926
99272.17.3.7 '_bfd_generic_link_hide_symbol'
9928........................................
9929
9930*Synopsis*
9931     void _bfd_generic_link_hide_symbol
9932        (bfd *output_bfd, struct bfd_link_info *info,
9933         struct bfd_link_hash_entry *h);
9934   *Description*
9935Hide symbol H.  This is an internal function.  It should not be called
9936from outside the BFD library.
9937     #define bfd_link_hide_symbol(output_bfd, info, h) \
9938            BFD_SEND (output_bfd, _bfd_link_hide_symbol, (output_bfd, info, h))
9939
9940
99412.17.3.8 'bfd_generic_define_start_stop'
9942........................................
9943
9944*Synopsis*
9945     struct bfd_link_hash_entry *bfd_generic_define_start_stop
9946        (struct bfd_link_info *info,
9947         const char *symbol, asection *sec);
9948   *Description*
9949Define a __start, __stop, .startof.  or .sizeof.  symbol.  Return the
9950symbol or NULL if no such undefined symbol exists.
9951     #define bfd_define_start_stop(output_bfd, info, symbol, sec) \
9952            BFD_SEND (output_bfd, _bfd_define_start_stop, (info, symbol, sec))
9953
9954
99552.17.3.9 'bfd_find_version_for_sym'
9956...................................
9957
9958*Synopsis*
9959     struct bfd_elf_version_tree * bfd_find_version_for_sym
9960        (struct bfd_elf_version_tree *verdefs,
9961         const char *sym_name, bfd_boolean *hide);
9962   *Description*
9963Search an elf version script tree for symbol versioning info and export
9964/ don't-export status for a given symbol.  Return non-NULL on success
9965and NULL on failure; also sets the output 'hide' boolean parameter.
9966
99672.17.3.10 'bfd_hide_sym_by_version'
9968...................................
9969
9970*Synopsis*
9971     bfd_boolean bfd_hide_sym_by_version
9972        (struct bfd_elf_version_tree *verdefs, const char *sym_name);
9973   *Description*
9974Search an elf version script tree for symbol versioning info for a given
9975symbol.  Return TRUE if the symbol is hidden.
9976
99772.17.3.11 'bfd_link_check_relocs'
9978.................................
9979
9980*Synopsis*
9981     bfd_boolean bfd_link_check_relocs
9982        (bfd *abfd, struct bfd_link_info *info);
9983   *Description*
9984Checks the relocs in ABFD for validity.  Does not execute the relocs.
9985Return TRUE if everything is OK, FALSE otherwise.  This is the external
9986entry point to this code.
9987
99882.17.3.12 '_bfd_generic_link_check_relocs'
9989..........................................
9990
9991*Synopsis*
9992     bfd_boolean _bfd_generic_link_check_relocs
9993        (bfd *abfd, struct bfd_link_info *info);
9994   *Description*
9995Stub function for targets that do not implement reloc checking.  Return
9996TRUE. This is an internal function.  It should not be called from
9997outside the BFD library.
9998
99992.17.3.13 'bfd_merge_private_bfd_data'
10000......................................
10001
10002*Synopsis*
10003     bfd_boolean bfd_merge_private_bfd_data
10004        (bfd *ibfd, struct bfd_link_info *info);
10005   *Description*
10006Merge private BFD information from the BFD IBFD to the the output file
10007BFD when linking.  Return 'TRUE' on success, 'FALSE' on error.  Possible
10008error returns are:
10009
10010   * 'bfd_error_no_memory' - Not enough memory exists to create private
10011     data for OBFD.
10012     #define bfd_merge_private_bfd_data(ibfd, info) \
10013            BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \
10014                      (ibfd, info))
10015
100162.17.3.14 '_bfd_generic_verify_endian_match'
10017............................................
10018
10019*Synopsis*
10020     bfd_boolean _bfd_generic_verify_endian_match
10021        (bfd *ibfd, struct bfd_link_info *info);
10022   *Description*
10023Can be used from / for bfd_merge_private_bfd_data to check that
10024endianness matches between input and output file.  Returns TRUE for a
10025match, otherwise returns FALSE and emits an error.
10026
10027
10028File: bfd.info,  Node: Hash Tables,  Prev: Linker Functions,  Up: BFD front end
10029
100302.18 Hash Tables
10031================
10032
10033BFD provides a simple set of hash table functions.  Routines are
10034provided to initialize a hash table, to free a hash table, to look up a
10035string in a hash table and optionally create an entry for it, and to
10036traverse a hash table.  There is currently no routine to delete an
10037string from a hash table.
10038
10039   The basic hash table does not permit any data to be stored with a
10040string.  However, a hash table is designed to present a base class from
10041which other types of hash tables may be derived.  These derived types
10042may store additional information with the string.  Hash tables were
10043implemented in this way, rather than simply providing a data pointer in
10044a hash table entry, because they were designed for use by the linker
10045back ends.  The linker may create thousands of hash table entries, and
10046the overhead of allocating private data and storing and following
10047pointers becomes noticeable.
10048
10049   The basic hash table code is in 'hash.c'.
10050
10051* Menu:
10052
10053* Creating and Freeing a Hash Table::
10054* Looking Up or Entering a String::
10055* Traversing a Hash Table::
10056* Deriving a New Hash Table Type::
10057
10058
10059File: bfd.info,  Node: Creating and Freeing a Hash Table,  Next: Looking Up or Entering a String,  Prev: Hash Tables,  Up: Hash Tables
10060
100612.18.1 Creating and freeing a hash table
10062----------------------------------------
10063
10064To create a hash table, create an instance of a 'struct bfd_hash_table'
10065(defined in 'bfd.h') and call 'bfd_hash_table_init' (if you know
10066approximately how many entries you will need, the function
10067'bfd_hash_table_init_n', which takes a SIZE argument, may be used).
10068'bfd_hash_table_init' returns 'FALSE' if some sort of error occurs.
10069
10070   The function 'bfd_hash_table_init' take as an argument a function to
10071use to create new entries.  For a basic hash table, use the function
10072'bfd_hash_newfunc'.  *Note Deriving a New Hash Table Type::, for why you
10073would want to use a different value for this argument.
10074
10075   'bfd_hash_table_init' will create an objalloc which will be used to
10076allocate new entries.  You may allocate memory on this objalloc using
10077'bfd_hash_allocate'.
10078
10079   Use 'bfd_hash_table_free' to free up all the memory that has been
10080allocated for a hash table.  This will not free up the 'struct
10081bfd_hash_table' itself, which you must provide.
10082
10083   Use 'bfd_hash_set_default_size' to set the default size of hash table
10084to use.
10085
10086
10087File: bfd.info,  Node: Looking Up or Entering a String,  Next: Traversing a Hash Table,  Prev: Creating and Freeing a Hash Table,  Up: Hash Tables
10088
100892.18.2 Looking up or entering a string
10090--------------------------------------
10091
10092The function 'bfd_hash_lookup' is used both to look up a string in the
10093hash table and to create a new entry.
10094
10095   If the CREATE argument is 'FALSE', 'bfd_hash_lookup' will look up a
10096string.  If the string is found, it will returns a pointer to a 'struct
10097bfd_hash_entry'.  If the string is not found in the table
10098'bfd_hash_lookup' will return 'NULL'.  You should not modify any of the
10099fields in the returns 'struct bfd_hash_entry'.
10100
10101   If the CREATE argument is 'TRUE', the string will be entered into the
10102hash table if it is not already there.  Either way a pointer to a
10103'struct bfd_hash_entry' will be returned, either to the existing
10104structure or to a newly created one.  In this case, a 'NULL' return
10105means that an error occurred.
10106
10107   If the CREATE argument is 'TRUE', and a new entry is created, the
10108COPY argument is used to decide whether to copy the string onto the hash
10109table objalloc or not.  If COPY is passed as 'FALSE', you must be
10110careful not to deallocate or modify the string as long as the hash table
10111exists.
10112
10113
10114File: bfd.info,  Node: Traversing a Hash Table,  Next: Deriving a New Hash Table Type,  Prev: Looking Up or Entering a String,  Up: Hash Tables
10115
101162.18.3 Traversing a hash table
10117------------------------------
10118
10119The function 'bfd_hash_traverse' may be used to traverse a hash table,
10120calling a function on each element.  The traversal is done in a random
10121order.
10122
10123   'bfd_hash_traverse' takes as arguments a function and a generic 'void
10124*' pointer.  The function is called with a hash table entry (a 'struct
10125bfd_hash_entry *') and the generic pointer passed to
10126'bfd_hash_traverse'.  The function must return a 'boolean' value, which
10127indicates whether to continue traversing the hash table.  If the
10128function returns 'FALSE', 'bfd_hash_traverse' will stop the traversal
10129and return immediately.
10130
10131
10132File: bfd.info,  Node: Deriving a New Hash Table Type,  Prev: Traversing a Hash Table,  Up: Hash Tables
10133
101342.18.4 Deriving a new hash table type
10135-------------------------------------
10136
10137Many uses of hash tables want to store additional information which each
10138entry in the hash table.  Some also find it convenient to store
10139additional information with the hash table itself.  This may be done
10140using a derived hash table.
10141
10142   Since C is not an object oriented language, creating a derived hash
10143table requires sticking together some boilerplate routines with a few
10144differences specific to the type of hash table you want to create.
10145
10146   An example of a derived hash table is the linker hash table.  The
10147structures for this are defined in 'bfdlink.h'.  The functions are in
10148'linker.c'.
10149
10150   You may also derive a hash table from an already derived hash table.
10151For example, the a.out linker backend code uses a hash table derived
10152from the linker hash table.
10153
10154* Menu:
10155
10156* Define the Derived Structures::
10157* Write the Derived Creation Routine::
10158* Write Other Derived Routines::
10159
10160
10161File: 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
10162
101632.18.4.1 Define the derived structures
10164......................................
10165
10166You must define a structure for an entry in the hash table, and a
10167structure for the hash table itself.
10168
10169   The first field in the structure for an entry in the hash table must
10170be of the type used for an entry in the hash table you are deriving
10171from.  If you are deriving from a basic hash table this is 'struct
10172bfd_hash_entry', which is defined in 'bfd.h'.  The first field in the
10173structure for the hash table itself must be of the type of the hash
10174table you are deriving from itself.  If you are deriving from a basic
10175hash table, this is 'struct bfd_hash_table'.
10176
10177   For example, the linker hash table defines 'struct
10178bfd_link_hash_entry' (in 'bfdlink.h').  The first field, 'root', is of
10179type 'struct bfd_hash_entry'.  Similarly, the first field in 'struct
10180bfd_link_hash_table', 'table', is of type 'struct bfd_hash_table'.
10181
10182
10183File: 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
10184
101852.18.4.2 Write the derived creation routine
10186...........................................
10187
10188You must write a routine which will create and initialize an entry in
10189the hash table.  This routine is passed as the function argument to
10190'bfd_hash_table_init'.
10191
10192   In order to permit other hash tables to be derived from the hash
10193table you are creating, this routine must be written in a standard way.
10194
10195   The first argument to the creation routine is a pointer to a hash
10196table entry.  This may be 'NULL', in which case the routine should
10197allocate the right amount of space.  Otherwise the space has already
10198been allocated by a hash table type derived from this one.
10199
10200   After allocating space, the creation routine must call the creation
10201routine of the hash table type it is derived from, passing in a pointer
10202to the space it just allocated.  This will initialize any fields used by
10203the base hash table.
10204
10205   Finally the creation routine must initialize any local fields for the
10206new hash table type.
10207
10208   Here is a boilerplate example of a creation routine.  FUNCTION_NAME
10209is the name of the routine.  ENTRY_TYPE is the type of an entry in the
10210hash table you are creating.  BASE_NEWFUNC is the name of the creation
10211routine of the hash table type your hash table is derived from.
10212
10213     struct bfd_hash_entry *
10214     FUNCTION_NAME (struct bfd_hash_entry *entry,
10215                          struct bfd_hash_table *table,
10216                          const char *string)
10217     {
10218       struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry;
10219
10220      /* Allocate the structure if it has not already been allocated by a
10221         derived class.  */
10222       if (ret == NULL)
10223         {
10224           ret = bfd_hash_allocate (table, sizeof (* ret));
10225           if (ret == NULL)
10226             return NULL;
10227         }
10228
10229      /* Call the allocation method of the base class.  */
10230       ret = ((ENTRY_TYPE *)
10231              BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string));
10232
10233      /* Initialize the local fields here.  */
10234
10235       return (struct bfd_hash_entry *) ret;
10236     }
10237   *Description*
10238The creation routine for the linker hash table, which is in 'linker.c',
10239looks just like this example.  FUNCTION_NAME is
10240'_bfd_link_hash_newfunc'.  ENTRY_TYPE is 'struct bfd_link_hash_entry'.
10241BASE_NEWFUNC is 'bfd_hash_newfunc', the creation routine for a basic
10242hash table.
10243
10244   '_bfd_link_hash_newfunc' also initializes the local fields in a
10245linker hash table entry: 'type', 'written' and 'next'.
10246
10247
10248File: bfd.info,  Node: Write Other Derived Routines,  Prev: Write the Derived Creation Routine,  Up: Deriving a New Hash Table Type
10249
102502.18.4.3 Write other derived routines
10251.....................................
10252
10253You will want to write other routines for your new hash table, as well.
10254
10255   You will want an initialization routine which calls the
10256initialization routine of the hash table you are deriving from and
10257initializes any other local fields.  For the linker hash table, this is
10258'_bfd_link_hash_table_init' in 'linker.c'.
10259
10260   You will want a lookup routine which calls the lookup routine of the
10261hash table you are deriving from and casts the result.  The linker hash
10262table uses 'bfd_link_hash_lookup' in 'linker.c' (this actually takes an
10263additional argument which it uses to decide how to return the looked up
10264value).
10265
10266   You may want a traversal routine.  This should just call the
10267traversal routine of the hash table you are deriving from with
10268appropriate casts.  The linker hash table uses 'bfd_link_hash_traverse'
10269in 'linker.c'.
10270
10271   These routines may simply be defined as macros.  For example, the
10272a.out backend linker hash table, which is derived from the linker hash
10273table, uses macros for the lookup and traversal routines.  These are
10274'aout_link_hash_lookup' and 'aout_link_hash_traverse' in aoutx.h.
10275
10276
10277File: bfd.info,  Node: BFD back ends,  Next: GNU Free Documentation License,  Prev: BFD front end,  Up: Top
10278
102793 BFD back ends
10280***************
10281
10282* Menu:
10283
10284* What to Put Where::
10285* aout ::	a.out backends
10286* coff ::	coff backends
10287* elf  ::	elf backends
10288* mmo  ::	mmo backend
10289
10290
10291File: bfd.info,  Node: What to Put Where,  Next: aout,  Prev: BFD back ends,  Up: BFD back ends
10292
102933.1 What to Put Where
10294=====================
10295
10296All of BFD lives in one directory.
10297
10298
10299File: bfd.info,  Node: aout,  Next: coff,  Prev: What to Put Where,  Up: BFD back ends
10300
103013.2 a.out backends
10302==================
10303
10304*Description*
10305BFD supports a number of different flavours of a.out format, though the
10306major differences are only the sizes of the structures on disk, and the
10307shape of the relocation information.
10308
10309   The support is split into a basic support file 'aoutx.h' and other
10310files which derive functions from the base.  One derivation file is
10311'aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions
10312support for sun3, sun4, and 386 a.out files, to create a target jump
10313vector for a specific target.
10314
10315   This information is further split out into more specific files for
10316each machine, including 'sunos.c' for sun3 and sun4, and 'demo64.c' for
10317a demonstration of a 64 bit a.out format.
10318
10319   The base file 'aoutx.h' defines general mechanisms for reading and
10320writing records to and from disk and various other methods which BFD
10321requires.  It is included by 'aout32.c' and 'aout64.c' to form the names
10322'aout_32_swap_exec_header_in', 'aout_64_swap_exec_header_in', etc.
10323
10324   As an example, this is what goes on to make the back end for a sun4,
10325from 'aout32.c':
10326
10327            #define ARCH_SIZE 32
10328            #include "aoutx.h"
10329
10330   Which exports names:
10331
10332            ...
10333            aout_32_canonicalize_reloc
10334            aout_32_find_nearest_line
10335            aout_32_get_lineno
10336            aout_32_get_reloc_upper_bound
10337            ...
10338
10339   from 'sunos.c':
10340
10341            #define TARGET_NAME "a.out-sunos-big"
10342            #define VECNAME    sparc_aout_sunos_be_vec
10343            #include "aoutf1.h"
10344
10345   requires all the names from 'aout32.c', and produces the jump vector
10346
10347            sparc_aout_sunos_be_vec
10348
10349   The file 'host-aout.c' is a special case.  It is for a large set of
10350hosts that use "more or less standard" a.out files, and for which
10351cross-debugging is not interesting.  It uses the standard 32-bit a.out
10352support routines, but determines the file offsets and addresses of the
10353text, data, and BSS sections, the machine architecture and machine type,
10354and the entry point address, in a host-dependent manner.  Once these
10355values have been determined, generic code is used to handle the object
10356file.
10357
10358   When porting it to run on a new system, you must supply:
10359
10360             HOST_PAGE_SIZE
10361             HOST_SEGMENT_SIZE
10362             HOST_MACHINE_ARCH       (optional)
10363             HOST_MACHINE_MACHINE    (optional)
10364             HOST_TEXT_START_ADDR
10365             HOST_STACK_END_ADDR
10366
10367   in the file '../include/sys/h-XXX.h' (for your host).  These values,
10368plus the structures and macros defined in 'a.out.h' on your host system,
10369will produce a BFD target that will access ordinary a.out files on your
10370host.  To configure a new machine to use 'host-aout.c', specify:
10371
10372            TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec
10373            TDEPFILES= host-aout.o trad-core.o
10374
10375   in the 'config/XXX.mt' file, and modify 'configure.ac' to use the
10376'XXX.mt' file (by setting "'bfd_target=XXX'") when your configuration is
10377selected.
10378
103793.2.1 Relocations
10380-----------------
10381
10382*Description*
10383The file 'aoutx.h' provides for both the _standard_ and _extended_ forms
10384of a.out relocation records.
10385
10386   The standard records contain only an address, a symbol index, and a
10387type field.  The extended records also have a full integer for an
10388addend.
10389
103903.2.2 Internal entry points
10391---------------------------
10392
10393*Description*
10394'aoutx.h' exports several routines for accessing the contents of an
10395a.out file, which are gathered and exported in turn by various format
10396specific files (eg sunos.c).
10397
103983.2.2.1 'aout_SIZE_swap_exec_header_in'
10399.......................................
10400
10401*Synopsis*
10402     void aout_SIZE_swap_exec_header_in,
10403        (bfd *abfd,
10404         struct external_exec *bytes,
10405         struct internal_exec *execp);
10406   *Description*
10407Swap the information in an executable header RAW_BYTES taken from a raw
10408byte stream memory image into the internal exec header structure EXECP.
10409
104103.2.2.2 'aout_SIZE_swap_exec_header_out'
10411........................................
10412
10413*Synopsis*
10414     void aout_SIZE_swap_exec_header_out
10415        (bfd *abfd,
10416         struct internal_exec *execp,
10417         struct external_exec *raw_bytes);
10418   *Description*
10419Swap the information in an internal exec header structure EXECP into the
10420buffer RAW_BYTES ready for writing to disk.
10421
104223.2.2.3 'aout_SIZE_some_aout_object_p'
10423......................................
10424
10425*Synopsis*
10426     const bfd_target *aout_SIZE_some_aout_object_p
10427        (bfd *abfd,
10428         struct internal_exec *execp,
10429         const bfd_target *(*callback_to_real_object_p) (bfd *));
10430   *Description*
10431Some a.out variant thinks that the file open in ABFD checking is an
10432a.out file.  Do some more checking, and set up for access if it really
10433is.  Call back to the calling environment's "finish up" function just
10434before returning, to handle any last-minute setup.
10435
104363.2.2.4 'aout_SIZE_mkobject'
10437............................
10438
10439*Synopsis*
10440     bfd_boolean aout_SIZE_mkobject, (bfd *abfd);
10441   *Description*
10442Initialize BFD ABFD for use with a.out files.
10443
104443.2.2.5 'aout_SIZE_machine_type'
10445................................
10446
10447*Synopsis*
10448     enum machine_type  aout_SIZE_machine_type
10449        (enum bfd_architecture arch,
10450         unsigned long machine,
10451         bfd_boolean *unknown);
10452   *Description*
10453Keep track of machine architecture and machine type for a.out's.  Return
10454the 'machine_type' for a particular architecture and machine, or
10455'M_UNKNOWN' if that exact architecture and machine can't be represented
10456in a.out format.
10457
10458   If the architecture is understood, machine type 0 (default) is always
10459understood.
10460
104613.2.2.6 'aout_SIZE_set_arch_mach'
10462.................................
10463
10464*Synopsis*
10465     bfd_boolean aout_SIZE_set_arch_mach,
10466        (bfd *,
10467         enum bfd_architecture arch,
10468         unsigned long machine);
10469   *Description*
10470Set the architecture and the machine of the BFD ABFD to the values ARCH
10471and MACHINE.  Verify that ABFD's format can support the architecture
10472required.
10473
104743.2.2.7 'aout_SIZE_new_section_hook'
10475....................................
10476
10477*Synopsis*
10478     bfd_boolean aout_SIZE_new_section_hook,
10479        (bfd *abfd,
10480         asection *newsect);
10481   *Description*
10482Called by the BFD in response to a 'bfd_make_section' request.
10483
10484
10485File: bfd.info,  Node: coff,  Next: elf,  Prev: aout,  Up: BFD back ends
10486
104873.3 coff backends
10488=================
10489
10490BFD supports a number of different flavours of coff format.  The major
10491differences between formats are the sizes and alignments of fields in
10492structures on disk, and the occasional extra field.
10493
10494   Coff in all its varieties is implemented with a few common files and
10495a number of implementation specific files.  For example, the i386 coff
10496format is implemented in the file 'coff-i386.c'.  This file '#include's
10497'coff/i386.h' which defines the external structure of the coff format
10498for the i386, and 'coff/internal.h' which defines the internal
10499structure.  'coff-i386.c' also defines the relocations used by the i386
10500coff format *Note Relocations::.
10501
105023.3.1 Porting to a new version of coff
10503--------------------------------------
10504
10505The recommended method is to select from the existing implementations
10506the version of coff which is most like the one you want to use.  For
10507example, we'll say that i386 coff is the one you select, and that your
10508coff flavour is called foo.  Copy 'i386coff.c' to 'foocoff.c', copy
10509'../include/coff/i386.h' to '../include/coff/foo.h', and add the lines
10510to 'targets.c' and 'Makefile.in' so that your new back end is used.
10511Alter the shapes of the structures in '../include/coff/foo.h' so that
10512they match what you need.  You will probably also have to add '#ifdef's
10513to the code in 'coff/internal.h' and 'coffcode.h' if your version of
10514coff is too wild.
10515
10516   You can verify that your new BFD backend works quite simply by
10517building 'objdump' from the 'binutils' directory, and making sure that
10518its version of what's going on and your host system's idea (assuming it
10519has the pretty standard coff dump utility, usually called 'att-dump' or
10520just 'dump') are the same.  Then clean up your code, and send what
10521you've done to Cygnus.  Then your stuff will be in the next release, and
10522you won't have to keep integrating it.
10523
105243.3.2 How the coff backend works
10525--------------------------------
10526
105273.3.2.1 File layout
10528...................
10529
10530The Coff backend is split into generic routines that are applicable to
10531any Coff target and routines that are specific to a particular target.
10532The target-specific routines are further split into ones which are
10533basically the same for all Coff targets except that they use the
10534external symbol format or use different values for certain constants.
10535
10536   The generic routines are in 'coffgen.c'.  These routines work for any
10537Coff target.  They use some hooks into the target specific code; the
10538hooks are in a 'bfd_coff_backend_data' structure, one of which exists
10539for each target.
10540
10541   The essentially similar target-specific routines are in 'coffcode.h'.
10542This header file includes executable C code.  The various Coff targets
10543first include the appropriate Coff header file, make any special defines
10544that are needed, and then include 'coffcode.h'.
10545
10546   Some of the Coff targets then also have additional routines in the
10547target source file itself.
10548
105493.3.2.2 Coff long section names
10550...............................
10551
10552In the standard Coff object format, section names are limited to the
10553eight bytes available in the 's_name' field of the 'SCNHDR' section
10554header structure.  The format requires the field to be NUL-padded, but
10555not necessarily NUL-terminated, so the longest section names permitted
10556are a full eight characters.
10557
10558   The Microsoft PE variants of the Coff object file format add an
10559extension to support the use of long section names.  This extension is
10560defined in section 4 of the Microsoft PE/COFF specification (rev 8.1).
10561If a section name is too long to fit into the section header's 's_name'
10562field, it is instead placed into the string table, and the 's_name'
10563field is filled with a slash ("/") followed by the ASCII decimal
10564representation of the offset of the full name relative to the string
10565table base.
10566
10567   Note that this implies that the extension can only be used in object
10568files, as executables do not contain a string table.  The standard
10569specifies that long section names from objects emitted into executable
10570images are to be truncated.
10571
10572   However, as a GNU extension, BFD can generate executable images that
10573contain a string table and long section names.  This would appear to be
10574technically valid, as the standard only says that Coff debugging
10575information is deprecated, not forbidden, and in practice it works,
10576although some tools that parse PE files expecting the MS standard format
10577may become confused; 'PEview' is one known example.
10578
10579   The functionality is supported in BFD by code implemented under the
10580control of the macro 'COFF_LONG_SECTION_NAMES'.  If not defined, the
10581format does not support long section names in any way.  If defined, it
10582is used to initialise a flag, '_bfd_coff_long_section_names', and a hook
10583function pointer, '_bfd_coff_set_long_section_names', in the Coff
10584backend data structure.  The flag controls the generation of long
10585section names in output BFDs at runtime; if it is false, as it will be
10586by default when generating an executable image, long section names are
10587truncated; if true, the long section names extension is employed.  The
10588hook points to a function that allows the value of the flag to be
10589altered at runtime, on formats that support long section names at all;
10590on other formats it points to a stub that returns an error indication.
10591
10592   With input BFDs, the flag is set according to whether any long
10593section names are detected while reading the section headers.  For a
10594completely new BFD, the flag is set to the default for the target
10595format.  This information can be used by a client of the BFD library
10596when deciding what output format to generate, and means that a BFD that
10597is opened for read and subsequently converted to a writeable BFD and
10598modified in-place will retain whatever format it had on input.
10599
10600   If 'COFF_LONG_SECTION_NAMES' is simply defined (blank), or is defined
10601to the value "1", then long section names are enabled by default; if it
10602is defined to the value zero, they are disabled by default (but still
10603accepted in input BFDs).  The header 'coffcode.h' defines a macro,
10604'COFF_DEFAULT_LONG_SECTION_NAMES', which is used in the backends to
10605initialise the backend data structure fields appropriately; see the
10606comments for further detail.
10607
106083.3.2.3 Bit twiddling
10609.....................
10610
10611Each flavour of coff supported in BFD has its own header file describing
10612the external layout of the structures.  There is also an internal
10613description of the coff layout, in 'coff/internal.h'.  A major function
10614of the coff backend is swapping the bytes and twiddling the bits to
10615translate the external form of the structures into the normal internal
10616form.  This is all performed in the 'bfd_swap'_thing_direction routines.
10617Some elements are different sizes between different versions of coff; it
10618is the duty of the coff version specific include file to override the
10619definitions of various packing routines in 'coffcode.h'.  E.g., the size
10620of line number entry in coff is sometimes 16 bits, and sometimes 32
10621bits.  '#define'ing 'PUT_LNSZ_LNNO' and 'GET_LNSZ_LNNO' will select the
10622correct one.  No doubt, some day someone will find a version of coff
10623which has a varying field size not catered to at the moment.  To port
10624BFD, that person will have to add more '#defines'.  Three of the bit
10625twiddling routines are exported to 'gdb'; 'coff_swap_aux_in',
10626'coff_swap_sym_in' and 'coff_swap_lineno_in'.  'GDB' reads the symbol
10627table on its own, but uses BFD to fix things up.  More of the bit
10628twiddlers are exported for 'gas'; 'coff_swap_aux_out',
10629'coff_swap_sym_out', 'coff_swap_lineno_out', 'coff_swap_reloc_out',
10630'coff_swap_filehdr_out', 'coff_swap_aouthdr_out',
10631'coff_swap_scnhdr_out'.  'Gas' currently keeps track of all the symbol
10632table and reloc drudgery itself, thereby saving the internal BFD
10633overhead, but uses BFD to swap things on the way out, making cross ports
10634much safer.  Doing so also allows BFD (and thus the linker) to use the
10635same header files as 'gas', which makes one avenue to disaster
10636disappear.
10637
106383.3.2.4 Symbol reading
10639......................
10640
10641The simple canonical form for symbols used by BFD is not rich enough to
10642keep all the information available in a coff symbol table.  The back end
10643gets around this problem by keeping the original symbol table around,
10644"behind the scenes".
10645
10646   When a symbol table is requested (through a call to
10647'bfd_canonicalize_symtab'), a request gets through to
10648'coff_get_normalized_symtab'.  This reads the symbol table from the coff
10649file and swaps all the structures inside into the internal form.  It
10650also fixes up all the pointers in the table (represented in the file by
10651offsets from the first symbol in the table) into physical pointers to
10652elements in the new internal table.  This involves some work since the
10653meanings of fields change depending upon context: a field that is a
10654pointer to another structure in the symbol table at one moment may be
10655the size in bytes of a structure at the next.  Another pass is made over
10656the table.  All symbols which mark file names ('C_FILE' symbols) are
10657modified so that the internal string points to the value in the auxent
10658(the real filename) rather than the normal text associated with the
10659symbol ('".file"').
10660
10661   At this time the symbol names are moved around.  Coff stores all
10662symbols less than nine characters long physically within the symbol
10663table; longer strings are kept at the end of the file in the string
10664table.  This pass moves all strings into memory and replaces them with
10665pointers to the strings.
10666
10667   The symbol table is massaged once again, this time to create the
10668canonical table used by the BFD application.  Each symbol is inspected
10669in turn, and a decision made (using the 'sclass' field) about the
10670various flags to set in the 'asymbol'.  *Note Symbols::.  The generated
10671canonical table shares strings with the hidden internal symbol table.
10672
10673   Any linenumbers are read from the coff file too, and attached to the
10674symbols which own the functions the linenumbers belong to.
10675
106763.3.2.5 Symbol writing
10677......................
10678
10679Writing a symbol to a coff file which didn't come from a coff file will
10680lose any debugging information.  The 'asymbol' structure remembers the
10681BFD from which the symbol was taken, and on output the back end makes
10682sure that the same destination target as source target is present.
10683
10684   When the symbols have come from a coff file then all the debugging
10685information is preserved.
10686
10687   Symbol tables are provided for writing to the back end in a vector of
10688pointers to pointers.  This allows applications like the linker to
10689accumulate and output large symbol tables without having to do too much
10690byte copying.
10691
10692   This function runs through the provided symbol table and patches each
10693symbol marked as a file place holder ('C_FILE') to point to the next
10694file place holder in the list.  It also marks each 'offset' field in the
10695list with the offset from the first symbol of the current symbol.
10696
10697   Another function of this procedure is to turn the canonical value
10698form of BFD into the form used by coff.  Internally, BFD expects symbol
10699values to be offsets from a section base; so a symbol physically at
107000x120, but in a section starting at 0x100, would have the value 0x20.
10701Coff expects symbols to contain their final value, so symbols have their
10702values changed at this point to reflect their sum with their owning
10703section.  This transformation uses the 'output_section' field of the
10704'asymbol''s 'asection' *Note Sections::.
10705
10706   * 'coff_mangle_symbols'
10707   This routine runs though the provided symbol table and uses the
10708offsets generated by the previous pass and the pointers generated when
10709the symbol table was read in to create the structured hierarchy required
10710by coff.  It changes each pointer to a symbol into the index into the
10711symbol table of the asymbol.
10712
10713   * 'coff_write_symbols'
10714   This routine runs through the symbol table and patches up the symbols
10715from their internal form into the coff way, calls the bit twiddlers, and
10716writes out the table to the file.
10717
107183.3.2.6 'coff_symbol_type'
10719..........................
10720
10721*Description*
10722The hidden information for an 'asymbol' is described in a
10723'combined_entry_type':
10724
10725
10726     typedef struct coff_ptr_struct
10727     {
10728       /* Remembers the offset from the first symbol in the file for
10729          this symbol. Generated by coff_renumber_symbols.  */
10730       unsigned int offset;
10731
10732       /* Should the value of this symbol be renumbered.  Used for
10733          XCOFF C_BSTAT symbols.  Set by coff_slurp_symbol_table.  */
10734       unsigned int fix_value : 1;
10735
10736       /* Should the tag field of this symbol be renumbered.
10737          Created by coff_pointerize_aux.  */
10738       unsigned int fix_tag : 1;
10739
10740       /* Should the endidx field of this symbol be renumbered.
10741          Created by coff_pointerize_aux.  */
10742       unsigned int fix_end : 1;
10743
10744       /* Should the x_csect.x_scnlen field be renumbered.
10745          Created by coff_pointerize_aux.  */
10746       unsigned int fix_scnlen : 1;
10747
10748       /* Fix up an XCOFF C_BINCL/C_EINCL symbol.  The value is the
10749          index into the line number entries.  Set by coff_slurp_symbol_table.  */
10750       unsigned int fix_line : 1;
10751
10752       /* The container for the symbol structure as read and translated
10753          from the file.  */
10754       union
10755       {
10756         union internal_auxent auxent;
10757         struct internal_syment syment;
10758       } u;
10759
10760      /* Selector for the union above.  */
10761      bfd_boolean is_sym;
10762     } combined_entry_type;
10763
10764
10765     /* Each canonical asymbol really looks like this: */
10766
10767     typedef struct coff_symbol_struct
10768     {
10769       /* The actual symbol which the rest of BFD works with */
10770       asymbol symbol;
10771
10772       /* A pointer to the hidden information for this symbol */
10773       combined_entry_type *native;
10774
10775       /* A pointer to the linenumber information for this symbol */
10776       struct lineno_cache_entry *lineno;
10777
10778       /* Have the line numbers been relocated yet ? */
10779       bfd_boolean done_lineno;
10780     } coff_symbol_type;
10781
107823.3.2.7 'bfd_coff_backend_data'
10783...............................
10784
10785     /* COFF symbol classifications.  */
10786
10787     enum coff_symbol_classification
10788     {
10789       /* Global symbol.  */
10790       COFF_SYMBOL_GLOBAL,
10791       /* Common symbol.  */
10792       COFF_SYMBOL_COMMON,
10793       /* Undefined symbol.  */
10794       COFF_SYMBOL_UNDEFINED,
10795       /* Local symbol.  */
10796       COFF_SYMBOL_LOCAL,
10797       /* PE section symbol.  */
10798       COFF_SYMBOL_PE_SECTION
10799     };
10800
10801     typedef asection * (*coff_gc_mark_hook_fn)
10802       (asection *, struct bfd_link_info *, struct internal_reloc *,
10803        struct coff_link_hash_entry *, struct internal_syment *);
10804
10805   Special entry points for gdb to swap in coff symbol table parts:
10806     typedef struct
10807     {
10808       void (*_bfd_coff_swap_aux_in)
10809         (bfd *, void *, int, int, int, int, void *);
10810
10811       void (*_bfd_coff_swap_sym_in)
10812         (bfd *, void *, void *);
10813
10814       void (*_bfd_coff_swap_lineno_in)
10815         (bfd *, void *, void *);
10816
10817       unsigned int (*_bfd_coff_swap_aux_out)
10818         (bfd *, void *, int, int, int, int, void *);
10819
10820       unsigned int (*_bfd_coff_swap_sym_out)
10821         (bfd *, void *, void *);
10822
10823       unsigned int (*_bfd_coff_swap_lineno_out)
10824         (bfd *, void *, void *);
10825
10826       unsigned int (*_bfd_coff_swap_reloc_out)
10827         (bfd *, void *, void *);
10828
10829       unsigned int (*_bfd_coff_swap_filehdr_out)
10830         (bfd *, void *, void *);
10831
10832       unsigned int (*_bfd_coff_swap_aouthdr_out)
10833         (bfd *, void *, void *);
10834
10835       unsigned int (*_bfd_coff_swap_scnhdr_out)
10836         (bfd *, void *, void *);
10837
10838       unsigned int _bfd_filhsz;
10839       unsigned int _bfd_aoutsz;
10840       unsigned int _bfd_scnhsz;
10841       unsigned int _bfd_symesz;
10842       unsigned int _bfd_auxesz;
10843       unsigned int _bfd_relsz;
10844       unsigned int _bfd_linesz;
10845       unsigned int _bfd_filnmlen;
10846       bfd_boolean _bfd_coff_long_filenames;
10847
10848       bfd_boolean _bfd_coff_long_section_names;
10849       bfd_boolean (*_bfd_coff_set_long_section_names)
10850         (bfd *, int);
10851
10852       unsigned int _bfd_coff_default_section_alignment_power;
10853       bfd_boolean _bfd_coff_force_symnames_in_strings;
10854       unsigned int _bfd_coff_debug_string_prefix_length;
10855       unsigned int _bfd_coff_max_nscns;
10856
10857       void (*_bfd_coff_swap_filehdr_in)
10858         (bfd *, void *, void *);
10859
10860       void (*_bfd_coff_swap_aouthdr_in)
10861         (bfd *, void *, void *);
10862
10863       void (*_bfd_coff_swap_scnhdr_in)
10864         (bfd *, void *, void *);
10865
10866       void (*_bfd_coff_swap_reloc_in)
10867         (bfd *abfd, void *, void *);
10868
10869       bfd_boolean (*_bfd_coff_bad_format_hook)
10870         (bfd *, void *);
10871
10872       bfd_boolean (*_bfd_coff_set_arch_mach_hook)
10873         (bfd *, void *);
10874
10875       void * (*_bfd_coff_mkobject_hook)
10876         (bfd *, void *, void *);
10877
10878       bfd_boolean (*_bfd_styp_to_sec_flags_hook)
10879         (bfd *, void *, const char *, asection *, flagword *);
10880
10881       void (*_bfd_set_alignment_hook)
10882         (bfd *, asection *, void *);
10883
10884       bfd_boolean (*_bfd_coff_slurp_symbol_table)
10885         (bfd *);
10886
10887       bfd_boolean (*_bfd_coff_symname_in_debug)
10888         (bfd *, struct internal_syment *);
10889
10890       bfd_boolean (*_bfd_coff_pointerize_aux_hook)
10891         (bfd *, combined_entry_type *, combined_entry_type *,
10892          unsigned int, combined_entry_type *);
10893
10894       bfd_boolean (*_bfd_coff_print_aux)
10895         (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
10896          combined_entry_type *, unsigned int);
10897
10898       void (*_bfd_coff_reloc16_extra_cases)
10899         (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
10900          bfd_byte *, unsigned int *, unsigned int *);
10901
10902       int (*_bfd_coff_reloc16_estimate)
10903         (bfd *, asection *, arelent *, unsigned int,
10904          struct bfd_link_info *);
10905
10906       enum coff_symbol_classification (*_bfd_coff_classify_symbol)
10907         (bfd *, struct internal_syment *);
10908
10909       bfd_boolean (*_bfd_coff_compute_section_file_positions)
10910         (bfd *);
10911
10912       bfd_boolean (*_bfd_coff_start_final_link)
10913         (bfd *, struct bfd_link_info *);
10914
10915       bfd_boolean (*_bfd_coff_relocate_section)
10916         (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
10917          struct internal_reloc *, struct internal_syment *, asection **);
10918
10919       reloc_howto_type *(*_bfd_coff_rtype_to_howto)
10920         (bfd *, asection *, struct internal_reloc *,
10921          struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *);
10922
10923       bfd_boolean (*_bfd_coff_adjust_symndx)
10924         (bfd *, struct bfd_link_info *, bfd *, asection *,
10925          struct internal_reloc *, bfd_boolean *);
10926
10927       bfd_boolean (*_bfd_coff_link_add_one_symbol)
10928         (struct bfd_link_info *, bfd *, const char *, flagword,
10929          asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
10930          struct bfd_link_hash_entry **);
10931
10932       bfd_boolean (*_bfd_coff_link_output_has_begun)
10933         (bfd *, struct coff_final_link_info *);
10934
10935       bfd_boolean (*_bfd_coff_final_link_postscript)
10936         (bfd *, struct coff_final_link_info *);
10937
10938       bfd_boolean (*_bfd_coff_print_pdata)
10939         (bfd *, void *);
10940
10941     } bfd_coff_backend_data;
10942
10943     #define coff_backend_info(abfd) \
10944       ((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
10945
10946     #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \
10947       ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))
10948
10949     #define bfd_coff_swap_sym_in(a,e,i) \
10950       ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))
10951
10952     #define bfd_coff_swap_lineno_in(a,e,i) \
10953       ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))
10954
10955     #define bfd_coff_swap_reloc_out(abfd, i, o) \
10956       ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))
10957
10958     #define bfd_coff_swap_lineno_out(abfd, i, o) \
10959       ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))
10960
10961     #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \
10962       ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))
10963
10964     #define bfd_coff_swap_sym_out(abfd, i,o) \
10965       ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))
10966
10967     #define bfd_coff_swap_scnhdr_out(abfd, i,o) \
10968       ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))
10969
10970     #define bfd_coff_swap_filehdr_out(abfd, i,o) \
10971       ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))
10972
10973     #define bfd_coff_swap_aouthdr_out(abfd, i,o) \
10974       ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))
10975
10976     #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz)
10977     #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz)
10978     #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz)
10979     #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz)
10980     #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz)
10981     #define bfd_coff_relsz(abfd)  (coff_backend_info (abfd)->_bfd_relsz)
10982     #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz)
10983     #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
10984     #define bfd_coff_long_filenames(abfd) \
10985       (coff_backend_info (abfd)->_bfd_coff_long_filenames)
10986     #define bfd_coff_long_section_names(abfd) \
10987       (coff_backend_info (abfd)->_bfd_coff_long_section_names)
10988     #define bfd_coff_set_long_section_names(abfd, enable) \
10989       ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable))
10990     #define bfd_coff_default_section_alignment_power(abfd) \
10991       (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
10992     #define bfd_coff_max_nscns(abfd) \
10993       (coff_backend_info (abfd)->_bfd_coff_max_nscns)
10994
10995     #define bfd_coff_swap_filehdr_in(abfd, i,o) \
10996       ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
10997
10998     #define bfd_coff_swap_aouthdr_in(abfd, i,o) \
10999       ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))
11000
11001     #define bfd_coff_swap_scnhdr_in(abfd, i,o) \
11002       ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))
11003
11004     #define bfd_coff_swap_reloc_in(abfd, i, o) \
11005       ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))
11006
11007     #define bfd_coff_bad_format_hook(abfd, filehdr) \
11008       ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))
11009
11010     #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
11011       ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
11012     #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
11013       ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\
11014        (abfd, filehdr, aouthdr))
11015
11016     #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
11017       ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
11018        (abfd, scnhdr, name, section, flags_ptr))
11019
11020     #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
11021       ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
11022
11023     #define bfd_coff_slurp_symbol_table(abfd)\
11024       ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))
11025
11026     #define bfd_coff_symname_in_debug(abfd, sym)\
11027       ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
11028
11029     #define bfd_coff_force_symnames_in_strings(abfd)\
11030       (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
11031
11032     #define bfd_coff_debug_string_prefix_length(abfd)\
11033       (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
11034
11035     #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
11036       ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
11037        (abfd, file, base, symbol, aux, indaux))
11038
11039     #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
11040                                          reloc, data, src_ptr, dst_ptr)\
11041       ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
11042        (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
11043
11044     #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\
11045       ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
11046        (abfd, section, reloc, shrink, link_info))
11047
11048     #define bfd_coff_classify_symbol(abfd, sym)\
11049       ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
11050        (abfd, sym))
11051
11052     #define bfd_coff_compute_section_file_positions(abfd)\
11053       ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
11054        (abfd))
11055
11056     #define bfd_coff_start_final_link(obfd, info)\
11057       ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
11058        (obfd, info))
11059     #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\
11060       ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
11061        (obfd, info, ibfd, o, con, rel, isyms, secs))
11062     #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\
11063       ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
11064        (abfd, sec, rel, h, sym, addendp))
11065     #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
11066       ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
11067        (obfd, info, ibfd, sec, rel, adjustedp))
11068     #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
11069                                          value, string, cp, coll, hashp)\
11070       ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
11071        (info, abfd, name, flags, section, value, string, cp, coll, hashp))
11072
11073     #define bfd_coff_link_output_has_begun(a,p) \
11074       ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p))
11075     #define bfd_coff_final_link_postscript(a,p) \
11076       ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p))
11077
11078     #define bfd_coff_have_print_pdata(a) \
11079       (coff_backend_info (a)->_bfd_coff_print_pdata)
11080     #define bfd_coff_print_pdata(a,p) \
11081       ((coff_backend_info (a)->_bfd_coff_print_pdata) (a, p))
11082
11083     /* Macro: Returns true if the bfd is a PE executable as opposed to a
11084        PE object file.  */
11085     #define bfd_pei_p(abfd) \
11086       (CONST_STRNEQ ((abfd)->xvec->name, "pei-"))
11087
110883.3.2.8 Writing relocations
11089...........................
11090
11091To write relocations, the back end steps though the canonical relocation
11092table and create an 'internal_reloc'.  The symbol index to use is
11093removed from the 'offset' field in the symbol table supplied.  The
11094address comes directly from the sum of the section base address and the
11095relocation offset; the type is dug directly from the howto field.  Then
11096the 'internal_reloc' is swapped into the shape of an 'external_reloc'
11097and written out to disk.
11098
110993.3.2.9 Reading linenumbers
11100...........................
11101
11102Creating the linenumber table is done by reading in the entire coff
11103linenumber table, and creating another table for internal use.
11104
11105   A coff linenumber table is structured so that each function is marked
11106as having a line number of 0.  Each line within the function is an
11107offset from the first line in the function.  The base of the line number
11108information for the table is stored in the symbol associated with the
11109function.
11110
11111   Note: The PE format uses line number 0 for a flag indicating a new
11112source file.
11113
11114   The information is copied from the external to the internal table,
11115and each symbol which marks a function is marked by pointing its...
11116
11117   How does this work ?
11118
111193.3.2.10 Reading relocations
11120............................
11121
11122Coff relocations are easily transformed into the internal BFD form
11123('arelent').
11124
11125   Reading a coff relocation table is done in the following stages:
11126
11127   * Read the entire coff relocation table into memory.
11128
11129   * Process each relocation in turn; first swap it from the external to
11130     the internal form.
11131
11132   * Turn the symbol referenced in the relocation's symbol index into a
11133     pointer into the canonical symbol table.  This table is the same as
11134     the one returned by a call to 'bfd_canonicalize_symtab'.  The back
11135     end will call that routine and save the result if a
11136     canonicalization hasn't been done.
11137
11138   * The reloc index is turned into a pointer to a howto structure, in a
11139     back end specific way.  For instance, the 386 uses the 'r_type' to
11140     directly produce an index into a howto table vector.
11141
11142
11143File: bfd.info,  Node: elf,  Next: mmo,  Prev: coff,  Up: BFD back ends
11144
111453.4 ELF backends
11146================
11147
11148BFD support for ELF formats is being worked on.  Currently, the best
11149supported back ends are for sparc and i386 (running svr4 or Solaris 2).
11150
11151   Documentation of the internals of the support code still needs to be
11152written.  The code is changing quickly enough that we haven't bothered
11153yet.
11154
11155
11156File: bfd.info,  Node: mmo,  Prev: elf,  Up: BFD back ends
11157
111583.5 mmo backend
11159===============
11160
11161The mmo object format is used exclusively together with Professor Donald
11162E. Knuth's educational 64-bit processor MMIX. The simulator 'mmix' which
11163is available at <http://mmix.cs.hm.edu/src/index.html> understands this
11164format.  That package also includes a combined assembler and linker
11165called 'mmixal'.  The mmo format has no advantages feature-wise compared
11166to e.g.  ELF. It is a simple non-relocatable object format with no
11167support for archives or debugging information, except for symbol value
11168information and line numbers (which is not yet implemented in BFD). See
11169<http://mmix.cs.hm.edu/> for more information about MMIX. The ELF format
11170is used for intermediate object files in the BFD implementation.
11171
11172* Menu:
11173
11174* File layout::
11175* Symbol-table::
11176* mmo section mapping::
11177
11178
11179File: bfd.info,  Node: File layout,  Next: Symbol-table,  Prev: mmo,  Up: mmo
11180
111813.5.1 File layout
11182-----------------
11183
11184The mmo file contents is not partitioned into named sections as with
11185e.g. ELF. Memory areas is formed by specifying the location of the data
11186that follows.  Only the memory area '0x0000...00' to '0x01ff...ff' is
11187executable, so it is used for code (and constants) and the area
11188'0x2000...00' to '0x20ff...ff' is used for writable data.  *Note mmo
11189section mapping::.
11190
11191   There is provision for specifying "special data" of 65536 different
11192types.  We use type 80 (decimal), arbitrarily chosen the same as the ELF
11193'e_machine' number for MMIX, filling it with section information
11194normally found in ELF objects.  *Note mmo section mapping::.
11195
11196   Contents is entered as 32-bit words, xor:ed over previous contents,
11197always zero-initialized.  A word that starts with the byte '0x98' forms
11198a command called a 'lopcode', where the next byte distinguished between
11199the thirteen lopcodes.  The two remaining bytes, called the 'Y' and 'Z'
11200fields, or the 'YZ' field (a 16-bit big-endian number), are used for
11201various purposes different for each lopcode.  As documented in
11202<http://mmix.cs.hm.edu/doc/mmixal.pdf>, the lopcodes are:
11203
11204'lop_quote'
11205     0x98000001.  The next word is contents, regardless of whether it
11206     starts with 0x98 or not.
11207
11208'lop_loc'
11209     0x9801YYZZ, where 'Z' is 1 or 2.  This is a location directive,
11210     setting the location for the next data to the next 32-bit word (for
11211     Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56.  Normally 'Y' is
11212     0 for the text segment and 2 for the data segment.  Beware that the
11213     low bits of non- tetrabyte-aligned values are silently discarded
11214     when being automatically incremented and when storing contents (in
11215     contrast to e.g.  its use as current location when followed by
11216     lop_fixo et al before the next possibly-quoted tetrabyte contents).
11217
11218'lop_skip'
11219     0x9802YYZZ. Increase the current location by 'YZ' bytes.
11220
11221'lop_fixo'
11222     0x9803YYZZ, where 'Z' is 1 or 2.  Store the current location as 64
11223     bits into the location pointed to by the next 32-bit (Z = 1) or
11224     64-bit (Z = 2) word, plus Y * 2^56.
11225
11226'lop_fixr'
11227     0x9804YYZZ. 'YZ' is stored into the current location plus 2 - 4 *
11228     YZ.
11229
11230'lop_fixrx'
11231     0x980500ZZ. 'Z' is 16 or 24.  A value 'L' derived from the
11232     following 32-bit word are used in a manner similar to 'YZ' in
11233     lop_fixr: it is xor:ed into the current location minus 4 * L. The
11234     first byte of the word is 0 or 1.  If it is 1, then L = (LOWEST 24
11235     BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD).
11236
11237'lop_file'
11238     0x9806YYZZ. 'Y' is the file number, 'Z' is count of 32-bit words.
11239     Set the file number to 'Y' and the line counter to 0.  The next Z *
11240     4 bytes contain the file name, padded with zeros if the count is
11241     not a multiple of four.  The same 'Y' may occur multiple times, but
11242     'Z' must be 0 for all but the first occurrence.
11243
11244'lop_line'
11245     0x9807YYZZ. 'YZ' is the line number.  Together with lop_file, it
11246     forms the source location for the next 32-bit word.  Note that for
11247     each non-lopcode 32-bit word, line numbers are assumed incremented
11248     by one.
11249
11250'lop_spec'
11251     0x9808YYZZ. 'YZ' is the type number.  Data until the next lopcode
11252     other than lop_quote forms special data of type 'YZ'.  *Note mmo
11253     section mapping::.
11254
11255     Other types than 80, (or type 80 with a content that does not
11256     parse) is stored in sections named '.MMIX.spec_data.N' where N is
11257     the 'YZ'-type.  The flags for such a sections say not to allocate
11258     or load the data.  The vma is 0.  Contents of multiple occurrences
11259     of special data N is concatenated to the data of the previous
11260     lop_spec Ns.  The location in data or code at which the lop_spec
11261     occurred is lost.
11262
11263'lop_pre'
11264     0x980901ZZ. The first lopcode in a file.  The 'Z' field forms the
11265     length of header information in 32-bit words, where the first word
11266     tells the time in seconds since '00:00:00 GMT Jan 1 1970'.
11267
11268'lop_post'
11269     0x980a00ZZ. Z > 32.  This lopcode follows after all
11270     content-generating lopcodes in a program.  The 'Z' field denotes
11271     the value of 'rG' at the beginning of the program.  The following
11272     256 - Z big-endian 64-bit words are loaded into global registers
11273     '$G' ... '$255'.
11274
11275'lop_stab'
11276     0x980b0000.  The next-to-last lopcode in a program.  Must follow
11277     immediately after the lop_post lopcode and its data.  After this
11278     lopcode follows all symbols in a compressed format (*note
11279     Symbol-table::).
11280
11281'lop_end'
11282     0x980cYYZZ. The last lopcode in a program.  It must follow the
11283     lop_stab lopcode and its data.  The 'YZ' field contains the number
11284     of 32-bit words of symbol table information after the preceding
11285     lop_stab lopcode.
11286
11287   Note that the lopcode "fixups"; 'lop_fixr', 'lop_fixrx' and
11288'lop_fixo' are not generated by BFD, but are handled.  They are
11289generated by 'mmixal'.
11290
11291   This trivial one-label, one-instruction file:
11292
11293      :Main TRAP 1,2,3
11294
11295   can be represented this way in mmo:
11296
11297      0x98090101 - lop_pre, one 32-bit word with timestamp.
11298      <timestamp>
11299      0x98010002 - lop_loc, text segment, using a 64-bit address.
11300                   Note that mmixal does not emit this for the file above.
11301      0x00000000 - Address, high 32 bits.
11302      0x00000000 - Address, low 32 bits.
11303      0x98060002 - lop_file, 2 32-bit words for file-name.
11304      0x74657374 - "test"
11305      0x2e730000 - ".s\0\0"
11306      0x98070001 - lop_line, line 1.
11307      0x00010203 - TRAP 1,2,3
11308      0x980a00ff - lop_post, setting $255 to 0.
11309      0x00000000
11310      0x00000000
11311      0x980b0000 - lop_stab for ":Main" = 0, serial 1.
11312      0x203a4040   *Note Symbol-table::.
11313      0x10404020
11314      0x4d206120
11315      0x69016e00
11316      0x81000000
11317      0x980c0005 - lop_end; symbol table contained five 32-bit words.
11318
11319
11320File: bfd.info,  Node: Symbol-table,  Next: mmo section mapping,  Prev: File layout,  Up: mmo
11321
113223.5.2 Symbol table format
11323-------------------------
11324
11325From mmixal.w (or really, the generated mmixal.tex) in the MMIXware
11326package which also contains the 'mmix' simulator: "Symbols are stored
11327and retrieved by means of a 'ternary search trie', following ideas of
11328Bentley and Sedgewick.  (See ACM-SIAM Symp. on Discrete Algorithms '8'
11329(1997), 360-369; R.Sedgewick, 'Algorithms in C' (Reading, Mass.
11330Addison-Wesley, 1998), '15.4'.)  Each trie node stores a character, and
11331there are branches to subtries for the cases where a given character is
11332less than, equal to, or greater than the character in the trie.  There
11333also is a pointer to a symbol table entry if a symbol ends at the
11334current node."
11335
11336   So it's a tree encoded as a stream of bytes.  The stream of bytes
11337acts on a single virtual global symbol, adding and removing characters
11338and signalling complete symbol points.  Here, we read the stream and
11339create symbols at the completion points.
11340
11341   First, there's a control byte 'm'.  If any of the listed bits in 'm'
11342is nonzero, we execute what stands at the right, in the listed order:
11343
11344      (MMO3_LEFT)
11345      0x40 - Traverse left trie.
11346             (Read a new command byte and recurse.)
11347
11348      (MMO3_SYMBITS)
11349      0x2f - Read the next byte as a character and store it in the
11350             current character position; increment character position.
11351             Test the bits of m:
11352
11353             (MMO3_WCHAR)
11354             0x80 - The character is 16-bit (so read another byte,
11355                    merge into current character.
11356
11357             (MMO3_TYPEBITS)
11358             0xf  - We have a complete symbol; parse the type, value
11359                    and serial number and do what should be done
11360                    with a symbol.  The type and length information
11361                    is in j = (m & 0xf).
11362
11363                    (MMO3_REGQUAL_BITS)
11364                    j == 0xf: A register variable.  The following
11365                              byte tells which register.
11366                    j <= 8:   An absolute symbol.  Read j bytes as the
11367                              big-endian number the symbol equals.
11368                              A j = 2 with two zero bytes denotes an
11369                              unknown symbol.
11370                    j > 8:    As with j <= 8, but add (0x20 << 56)
11371                              to the value in the following j - 8
11372                              bytes.
11373
11374                    Then comes the serial number, as a variant of
11375                    uleb128, but better named ubeb128:
11376                    Read bytes and shift the previous value left 7
11377                    (multiply by 128).  Add in the new byte, repeat
11378                    until a byte has bit 7 set.  The serial number
11379                    is the computed value minus 128.
11380
11381             (MMO3_MIDDLE)
11382             0x20 - Traverse middle trie.  (Read a new command byte
11383                    and recurse.)  Decrement character position.
11384
11385      (MMO3_RIGHT)
11386      0x10 - Traverse right trie.  (Read a new command byte and
11387             recurse.)
11388
11389   Let's look again at the 'lop_stab' for the trivial file (*note File
11390layout::).
11391
11392      0x980b0000 - lop_stab for ":Main" = 0, serial 1.
11393      0x203a4040
11394      0x10404020
11395      0x4d206120
11396      0x69016e00
11397      0x81000000
11398
11399   This forms the trivial trie (note that the path between ":" and "M"
11400is redundant):
11401
11402      203a     ":"
11403      40       /
11404      40      /
11405      10      \
11406      40      /
11407      40     /
11408      204d  "M"
11409      2061  "a"
11410      2069  "i"
11411      016e  "n" is the last character in a full symbol, and
11412            with a value represented in one byte.
11413      00    The value is 0.
11414      81    The serial number is 1.
11415
11416
11417File: bfd.info,  Node: mmo section mapping,  Prev: Symbol-table,  Up: mmo
11418
114193.5.3 mmo section mapping
11420-------------------------
11421
11422The implementation in BFD uses special data type 80 (decimal) to
11423encapsulate and describe named sections, containing e.g. debug
11424information.  If needed, any datum in the encapsulation will be quoted
11425using lop_quote.  First comes a 32-bit word holding the number of 32-bit
11426words containing the zero-terminated zero-padded segment name.  After
11427the name there's a 32-bit word holding flags describing the section
11428type.  Then comes a 64-bit big-endian word with the section length (in
11429bytes), then another with the section start address.  Depending on the
11430type of section, the contents might follow, zero-padded to 32-bit
11431boundary.  For a loadable section (such as data or code), the contents
11432might follow at some later point, not necessarily immediately, as a
11433lop_loc with the same start address as in the section description,
11434followed by the contents.  This in effect forms a descriptor that must
11435be emitted before the actual contents.  Sections described this way must
11436not overlap.
11437
11438   For areas that don't have such descriptors, synthetic sections are
11439formed by BFD. Consecutive contents in the two memory areas
11440'0x0000...00' to '0x01ff...ff' and '0x2000...00' to '0x20ff...ff' are
11441entered in sections named '.text' and '.data' respectively.  If an area
11442is not otherwise described, but would together with a neighboring lower
11443area be less than '0x40000000' bytes long, it is joined with the lower
11444area and the gap is zero-filled.  For other cases, a new section is
11445formed, named '.MMIX.sec.N'.  Here, N is a number, a running count
11446through the mmo file, starting at 0.
11447
11448   A loadable section specified as:
11449
11450      .section secname,"ax"
11451      TETRA 1,2,3,4,-1,-2009
11452      BYTE 80
11453
11454   and linked to address '0x4', is represented by the sequence:
11455
11456      0x98080050 - lop_spec 80
11457      0x00000002 - two 32-bit words for the section name
11458      0x7365636e - "secn"
11459      0x616d6500 - "ame\0"
11460      0x00000033 - flags CODE, READONLY, LOAD, ALLOC
11461      0x00000000 - high 32 bits of section length
11462      0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits
11463      0x00000000 - high 32 bits of section address
11464      0x00000004 - section address is 4
11465      0x98010002 - 64 bits with address of following data
11466      0x00000000 - high 32 bits of address
11467      0x00000004 - low 32 bits: data starts at address 4
11468      0x00000001 - 1
11469      0x00000002 - 2
11470      0x00000003 - 3
11471      0x00000004 - 4
11472      0xffffffff - -1
11473      0xfffff827 - -2009
11474      0x50000000 - 80 as a byte, padded with zeros.
11475
11476   Note that the lop_spec wrapping does not include the section
11477contents.  Compare this to a non-loaded section specified as:
11478
11479      .section thirdsec
11480      TETRA 200001,100002
11481      BYTE 38,40
11482
11483   This, when linked to address '0x200000000000001c', is represented by:
11484
11485      0x98080050 - lop_spec 80
11486      0x00000002 - two 32-bit words for the section name
11487      0x7365636e - "thir"
11488      0x616d6500 - "dsec"
11489      0x00000010 - flag READONLY
11490      0x00000000 - high 32 bits of section length
11491      0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits
11492      0x20000000 - high 32 bits of address
11493      0x0000001c - low 32 bits of address 0x200000000000001c
11494      0x00030d41 - 200001
11495      0x000186a2 - 100002
11496      0x26280000 - 38, 40 as bytes, padded with zeros
11497
11498   For the latter example, the section contents must not be loaded in
11499memory, and is therefore specified as part of the special data.  The
11500address is usually unimportant but might provide information for e.g.
11501the DWARF 2 debugging format.
11502
11503
11504File: bfd.info,  Node: GNU Free Documentation License,  Next: BFD Index,  Prev: BFD back ends,  Up: Top
11505
11506                     Version 1.3, 3 November 2008
11507
11508     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
11509     <http://fsf.org/>
11510
11511     Everyone is permitted to copy and distribute verbatim copies
11512     of this license document, but changing it is not allowed.
11513
11514  0. PREAMBLE
11515
11516     The purpose of this License is to make a manual, textbook, or other
11517     functional and useful document "free" in the sense of freedom: to
11518     assure everyone the effective freedom to copy and redistribute it,
11519     with or without modifying it, either commercially or
11520     noncommercially.  Secondarily, this License preserves for the
11521     author and publisher a way to get credit for their work, while not
11522     being considered responsible for modifications made by others.
11523
11524     This License is a kind of "copyleft", which means that derivative
11525     works of the document must themselves be free in the same sense.
11526     It complements the GNU General Public License, which is a copyleft
11527     license designed for free software.
11528
11529     We have designed this License in order to use it for manuals for
11530     free software, because free software needs free documentation: a
11531     free program should come with manuals providing the same freedoms
11532     that the software does.  But this License is not limited to
11533     software manuals; it can be used for any textual work, regardless
11534     of subject matter or whether it is published as a printed book.  We
11535     recommend this License principally for works whose purpose is
11536     instruction or reference.
11537
11538  1. APPLICABILITY AND DEFINITIONS
11539
11540     This License applies to any manual or other work, in any medium,
11541     that contains a notice placed by the copyright holder saying it can
11542     be distributed under the terms of this License.  Such a notice
11543     grants a world-wide, royalty-free license, unlimited in duration,
11544     to use that work under the conditions stated herein.  The
11545     "Document", below, refers to any such manual or work.  Any member
11546     of the public is a licensee, and is addressed as "you".  You accept
11547     the license if you copy, modify or distribute the work in a way
11548     requiring permission under copyright law.
11549
11550     A "Modified Version" of the Document means any work containing the
11551     Document or a portion of it, either copied verbatim, or with
11552     modifications and/or translated into another language.
11553
11554     A "Secondary Section" is a named appendix or a front-matter section
11555     of the Document that deals exclusively with the relationship of the
11556     publishers or authors of the Document to the Document's overall
11557     subject (or to related matters) and contains nothing that could
11558     fall directly within that overall subject.  (Thus, if the Document
11559     is in part a textbook of mathematics, a Secondary Section may not
11560     explain any mathematics.)  The relationship could be a matter of
11561     historical connection with the subject or with related matters, or
11562     of legal, commercial, philosophical, ethical or political position
11563     regarding them.
11564
11565     The "Invariant Sections" are certain Secondary Sections whose
11566     titles are designated, as being those of Invariant Sections, in the
11567     notice that says that the Document is released under this License.
11568     If a section does not fit the above definition of Secondary then it
11569     is not allowed to be designated as Invariant.  The Document may
11570     contain zero Invariant Sections.  If the Document does not identify
11571     any Invariant Sections then there are none.
11572
11573     The "Cover Texts" are certain short passages of text that are
11574     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
11575     that says that the Document is released under this License.  A
11576     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
11577     be at most 25 words.
11578
11579     A "Transparent" copy of the Document means a machine-readable copy,
11580     represented in a format whose specification is available to the
11581     general public, that is suitable for revising the document
11582     straightforwardly with generic text editors or (for images composed
11583     of pixels) generic paint programs or (for drawings) some widely
11584     available drawing editor, and that is suitable for input to text
11585     formatters or for automatic translation to a variety of formats
11586     suitable for input to text formatters.  A copy made in an otherwise
11587     Transparent file format whose markup, or absence of markup, has
11588     been arranged to thwart or discourage subsequent modification by
11589     readers is not Transparent.  An image format is not Transparent if
11590     used for any substantial amount of text.  A copy that is not
11591     "Transparent" is called "Opaque".
11592
11593     Examples of suitable formats for Transparent copies include plain
11594     ASCII without markup, Texinfo input format, LaTeX input format,
11595     SGML or XML using a publicly available DTD, and standard-conforming
11596     simple HTML, PostScript or PDF designed for human modification.
11597     Examples of transparent image formats include PNG, XCF and JPG.
11598     Opaque formats include proprietary formats that can be read and
11599     edited only by proprietary word processors, SGML or XML for which
11600     the DTD and/or processing tools are not generally available, and
11601     the machine-generated HTML, PostScript or PDF produced by some word
11602     processors for output purposes only.
11603
11604     The "Title Page" means, for a printed book, the title page itself,
11605     plus such following pages as are needed to hold, legibly, the
11606     material this License requires to appear in the title page.  For
11607     works in formats which do not have any title page as such, "Title
11608     Page" means the text near the most prominent appearance of the
11609     work's title, preceding the beginning of the body of the text.
11610
11611     The "publisher" means any person or entity that distributes copies
11612     of the Document to the public.
11613
11614     A section "Entitled XYZ" means a named subunit of the Document
11615     whose title either is precisely XYZ or contains XYZ in parentheses
11616     following text that translates XYZ in another language.  (Here XYZ
11617     stands for a specific section name mentioned below, such as
11618     "Acknowledgements", "Dedications", "Endorsements", or "History".)
11619     To "Preserve the Title" of such a section when you modify the
11620     Document means that it remains a section "Entitled XYZ" according
11621     to this definition.
11622
11623     The Document may include Warranty Disclaimers next to the notice
11624     which states that this License applies to the Document.  These
11625     Warranty Disclaimers are considered to be included by reference in
11626     this License, but only as regards disclaiming warranties: any other
11627     implication that these Warranty Disclaimers may have is void and
11628     has no effect on the meaning of this License.
11629
11630  2. VERBATIM COPYING
11631
11632     You may copy and distribute the Document in any medium, either
11633     commercially or noncommercially, provided that this License, the
11634     copyright notices, and the license notice saying this License
11635     applies to the Document are reproduced in all copies, and that you
11636     add no other conditions whatsoever to those of this License.  You
11637     may not use technical measures to obstruct or control the reading
11638     or further copying of the copies you make or distribute.  However,
11639     you may accept compensation in exchange for copies.  If you
11640     distribute a large enough number of copies you must also follow the
11641     conditions in section 3.
11642
11643     You may also lend copies, under the same conditions stated above,
11644     and you may publicly display copies.
11645
11646  3. COPYING IN QUANTITY
11647
11648     If you publish printed copies (or copies in media that commonly
11649     have printed covers) of the Document, numbering more than 100, and
11650     the Document's license notice requires Cover Texts, you must
11651     enclose the copies in covers that carry, clearly and legibly, all
11652     these Cover Texts: Front-Cover Texts on the front cover, and
11653     Back-Cover Texts on the back cover.  Both covers must also clearly
11654     and legibly identify you as the publisher of these copies.  The
11655     front cover must present the full title with all words of the title
11656     equally prominent and visible.  You may add other material on the
11657     covers in addition.  Copying with changes limited to the covers, as
11658     long as they preserve the title of the Document and satisfy these
11659     conditions, can be treated as verbatim copying in other respects.
11660
11661     If the required texts for either cover are too voluminous to fit
11662     legibly, you should put the first ones listed (as many as fit
11663     reasonably) on the actual cover, and continue the rest onto
11664     adjacent pages.
11665
11666     If you publish or distribute Opaque copies of the Document
11667     numbering more than 100, you must either include a machine-readable
11668     Transparent copy along with each Opaque copy, or state in or with
11669     each Opaque copy a computer-network location from which the general
11670     network-using public has access to download using public-standard
11671     network protocols a complete Transparent copy of the Document, free
11672     of added material.  If you use the latter option, you must take
11673     reasonably prudent steps, when you begin distribution of Opaque
11674     copies in quantity, to ensure that this Transparent copy will
11675     remain thus accessible at the stated location until at least one
11676     year after the last time you distribute an Opaque copy (directly or
11677     through your agents or retailers) of that edition to the public.
11678
11679     It is requested, but not required, that you contact the authors of
11680     the Document well before redistributing any large number of copies,
11681     to give them a chance to provide you with an updated version of the
11682     Document.
11683
11684  4. MODIFICATIONS
11685
11686     You may copy and distribute a Modified Version of the Document
11687     under the conditions of sections 2 and 3 above, provided that you
11688     release the Modified Version under precisely this License, with the
11689     Modified Version filling the role of the Document, thus licensing
11690     distribution and modification of the Modified Version to whoever
11691     possesses a copy of it.  In addition, you must do these things in
11692     the Modified Version:
11693
11694       A. Use in the Title Page (and on the covers, if any) a title
11695          distinct from that of the Document, and from those of previous
11696          versions (which should, if there were any, be listed in the
11697          History section of the Document).  You may use the same title
11698          as a previous version if the original publisher of that
11699          version gives permission.
11700
11701       B. List on the Title Page, as authors, one or more persons or
11702          entities responsible for authorship of the modifications in
11703          the Modified Version, together with at least five of the
11704          principal authors of the Document (all of its principal
11705          authors, if it has fewer than five), unless they release you
11706          from this requirement.
11707
11708       C. State on the Title page the name of the publisher of the
11709          Modified Version, as the publisher.
11710
11711       D. Preserve all the copyright notices of the Document.
11712
11713       E. Add an appropriate copyright notice for your modifications
11714          adjacent to the other copyright notices.
11715
11716       F. Include, immediately after the copyright notices, a license
11717          notice giving the public permission to use the Modified
11718          Version under the terms of this License, in the form shown in
11719          the Addendum below.
11720
11721       G. Preserve in that license notice the full lists of Invariant
11722          Sections and required Cover Texts given in the Document's
11723          license notice.
11724
11725       H. Include an unaltered copy of this License.
11726
11727       I. Preserve the section Entitled "History", Preserve its Title,
11728          and add to it an item stating at least the title, year, new
11729          authors, and publisher of the Modified Version as given on the
11730          Title Page.  If there is no section Entitled "History" in the
11731          Document, create one stating the title, year, authors, and
11732          publisher of the Document as given on its Title Page, then add
11733          an item describing the Modified Version as stated in the
11734          previous sentence.
11735
11736       J. Preserve the network location, if any, given in the Document
11737          for public access to a Transparent copy of the Document, and
11738          likewise the network locations given in the Document for
11739          previous versions it was based on.  These may be placed in the
11740          "History" section.  You may omit a network location for a work
11741          that was published at least four years before the Document
11742          itself, or if the original publisher of the version it refers
11743          to gives permission.
11744
11745       K. For any section Entitled "Acknowledgements" or "Dedications",
11746          Preserve the Title of the section, and preserve in the section
11747          all the substance and tone of each of the contributor
11748          acknowledgements and/or dedications given therein.
11749
11750       L. Preserve all the Invariant Sections of the Document, unaltered
11751          in their text and in their titles.  Section numbers or the
11752          equivalent are not considered part of the section titles.
11753
11754       M. Delete any section Entitled "Endorsements".  Such a section
11755          may not be included in the Modified Version.
11756
11757       N. Do not retitle any existing section to be Entitled
11758          "Endorsements" or to conflict in title with any Invariant
11759          Section.
11760
11761       O. Preserve any Warranty Disclaimers.
11762
11763     If the Modified Version includes new front-matter sections or
11764     appendices that qualify as Secondary Sections and contain no
11765     material copied from the Document, you may at your option designate
11766     some or all of these sections as invariant.  To do this, add their
11767     titles to the list of Invariant Sections in the Modified Version's
11768     license notice.  These titles must be distinct from any other
11769     section titles.
11770
11771     You may add a section Entitled "Endorsements", provided it contains
11772     nothing but endorsements of your Modified Version by various
11773     parties--for example, statements of peer review or that the text
11774     has been approved by an organization as the authoritative
11775     definition of a standard.
11776
11777     You may add a passage of up to five words as a Front-Cover Text,
11778     and a passage of up to 25 words as a Back-Cover Text, to the end of
11779     the list of Cover Texts in the Modified Version.  Only one passage
11780     of Front-Cover Text and one of Back-Cover Text may be added by (or
11781     through arrangements made by) any one entity.  If the Document
11782     already includes a cover text for the same cover, previously added
11783     by you or by arrangement made by the same entity you are acting on
11784     behalf of, you may not add another; but you may replace the old
11785     one, on explicit permission from the previous publisher that added
11786     the old one.
11787
11788     The author(s) and publisher(s) of the Document do not by this
11789     License give permission to use their names for publicity for or to
11790     assert or imply endorsement of any Modified Version.
11791
11792  5. COMBINING DOCUMENTS
11793
11794     You may combine the Document with other documents released under
11795     this License, under the terms defined in section 4 above for
11796     modified versions, provided that you include in the combination all
11797     of the Invariant Sections of all of the original documents,
11798     unmodified, and list them all as Invariant Sections of your
11799     combined work in its license notice, and that you preserve all
11800     their Warranty Disclaimers.
11801
11802     The combined work need only contain one copy of this License, and
11803     multiple identical Invariant Sections may be replaced with a single
11804     copy.  If there are multiple Invariant Sections with the same name
11805     but different contents, make the title of each such section unique
11806     by adding at the end of it, in parentheses, the name of the
11807     original author or publisher of that section if known, or else a
11808     unique number.  Make the same adjustment to the section titles in
11809     the list of Invariant Sections in the license notice of the
11810     combined work.
11811
11812     In the combination, you must combine any sections Entitled
11813     "History" in the various original documents, forming one section
11814     Entitled "History"; likewise combine any sections Entitled
11815     "Acknowledgements", and any sections Entitled "Dedications".  You
11816     must delete all sections Entitled "Endorsements."
11817
11818  6. COLLECTIONS OF DOCUMENTS
11819
11820     You may make a collection consisting of the Document and other
11821     documents released under this License, and replace the individual
11822     copies of this License in the various documents with a single copy
11823     that is included in the collection, provided that you follow the
11824     rules of this License for verbatim copying of each of the documents
11825     in all other respects.
11826
11827     You may extract a single document from such a collection, and
11828     distribute it individually under this License, provided you insert
11829     a copy of this License into the extracted document, and follow this
11830     License in all other respects regarding verbatim copying of that
11831     document.
11832
11833  7. AGGREGATION WITH INDEPENDENT WORKS
11834
11835     A compilation of the Document or its derivatives with other
11836     separate and independent documents or works, in or on a volume of a
11837     storage or distribution medium, is called an "aggregate" if the
11838     copyright resulting from the compilation is not used to limit the
11839     legal rights of the compilation's users beyond what the individual
11840     works permit.  When the Document is included in an aggregate, this
11841     License does not apply to the other works in the aggregate which
11842     are not themselves derivative works of the Document.
11843
11844     If the Cover Text requirement of section 3 is applicable to these
11845     copies of the Document, then if the Document is less than one half
11846     of the entire aggregate, the Document's Cover Texts may be placed
11847     on covers that bracket the Document within the aggregate, or the
11848     electronic equivalent of covers if the Document is in electronic
11849     form.  Otherwise they must appear on printed covers that bracket
11850     the whole aggregate.
11851
11852  8. TRANSLATION
11853
11854     Translation is considered a kind of modification, so you may
11855     distribute translations of the Document under the terms of section
11856     4.  Replacing Invariant Sections with translations requires special
11857     permission from their copyright holders, but you may include
11858     translations of some or all Invariant Sections in addition to the
11859     original versions of these Invariant Sections.  You may include a
11860     translation of this License, and all the license notices in the
11861     Document, and any Warranty Disclaimers, provided that you also
11862     include the original English version of this License and the
11863     original versions of those notices and disclaimers.  In case of a
11864     disagreement between the translation and the original version of
11865     this License or a notice or disclaimer, the original version will
11866     prevail.
11867
11868     If a section in the Document is Entitled "Acknowledgements",
11869     "Dedications", or "History", the requirement (section 4) to
11870     Preserve its Title (section 1) will typically require changing the
11871     actual title.
11872
11873  9. TERMINATION
11874
11875     You may not copy, modify, sublicense, or distribute the Document
11876     except as expressly provided under this License.  Any attempt
11877     otherwise to copy, modify, sublicense, or distribute it is void,
11878     and will automatically terminate your rights under this License.
11879
11880     However, if you cease all violation of this License, then your
11881     license from a particular copyright holder is reinstated (a)
11882     provisionally, unless and until the copyright holder explicitly and
11883     finally terminates your license, and (b) permanently, if the
11884     copyright holder fails to notify you of the violation by some
11885     reasonable means prior to 60 days after the cessation.
11886
11887     Moreover, your license from a particular copyright holder is
11888     reinstated permanently if the copyright holder notifies you of the
11889     violation by some reasonable means, this is the first time you have
11890     received notice of violation of this License (for any work) from
11891     that copyright holder, and you cure the violation prior to 30 days
11892     after your receipt of the notice.
11893
11894     Termination of your rights under this section does not terminate
11895     the licenses of parties who have received copies or rights from you
11896     under this License.  If your rights have been terminated and not
11897     permanently reinstated, receipt of a copy of some or all of the
11898     same material does not give you any rights to use it.
11899
11900  10. FUTURE REVISIONS OF THIS LICENSE
11901
11902     The Free Software Foundation may publish new, revised versions of
11903     the GNU Free Documentation License from time to time.  Such new
11904     versions will be similar in spirit to the present version, but may
11905     differ in detail to address new problems or concerns.  See
11906     <http://www.gnu.org/copyleft/>.
11907
11908     Each version of the License is given a distinguishing version
11909     number.  If the Document specifies that a particular numbered
11910     version of this License "or any later version" applies to it, you
11911     have the option of following the terms and conditions either of
11912     that specified version or of any later version that has been
11913     published (not as a draft) by the Free Software Foundation.  If the
11914     Document does not specify a version number of this License, you may
11915     choose any version ever published (not as a draft) by the Free
11916     Software Foundation.  If the Document specifies that a proxy can
11917     decide which future versions of this License can be used, that
11918     proxy's public statement of acceptance of a version permanently
11919     authorizes you to choose that version for the Document.
11920
11921  11. RELICENSING
11922
11923     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
11924     World Wide Web server that publishes copyrightable works and also
11925     provides prominent facilities for anybody to edit those works.  A
11926     public wiki that anybody can edit is an example of such a server.
11927     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
11928     site means any set of copyrightable works thus published on the MMC
11929     site.
11930
11931     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
11932     license published by Creative Commons Corporation, a not-for-profit
11933     corporation with a principal place of business in San Francisco,
11934     California, as well as future copyleft versions of that license
11935     published by that same organization.
11936
11937     "Incorporate" means to publish or republish a Document, in whole or
11938     in part, as part of another Document.
11939
11940     An MMC is "eligible for relicensing" if it is licensed under this
11941     License, and if all works that were first published under this
11942     License somewhere other than this MMC, and subsequently
11943     incorporated in whole or in part into the MMC, (1) had no cover
11944     texts or invariant sections, and (2) were thus incorporated prior
11945     to November 1, 2008.
11946
11947     The operator of an MMC Site may republish an MMC contained in the
11948     site under CC-BY-SA on the same site at any time before August 1,
11949     2009, provided the MMC is eligible for relicensing.
11950
11951ADDENDUM: How to use this License for your documents
11952====================================================
11953
11954To use this License in a document you have written, include a copy of
11955the License in the document and put the following copyright and license
11956notices just after the title page:
11957
11958       Copyright (C)  YEAR  YOUR NAME.
11959       Permission is granted to copy, distribute and/or modify this document
11960       under the terms of the GNU Free Documentation License, Version 1.3
11961       or any later version published by the Free Software Foundation;
11962       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
11963       Texts.  A copy of the license is included in the section entitled ``GNU
11964       Free Documentation License''.
11965
11966   If you have Invariant Sections, Front-Cover Texts and Back-Cover
11967Texts, replace the "with...Texts."  line with this:
11968
11969         with the Invariant Sections being LIST THEIR TITLES, with
11970         the Front-Cover Texts being LIST, and with the Back-Cover Texts
11971         being LIST.
11972
11973   If you have Invariant Sections without Cover Texts, or some other
11974combination of the three, merge those two alternatives to suit the
11975situation.
11976
11977   If your document contains nontrivial examples of program code, we
11978recommend releasing these examples in parallel under your choice of free
11979software license, such as the GNU General Public License, to permit
11980their use in free software.
11981
11982
11983File: bfd.info,  Node: BFD Index,  Prev: GNU Free Documentation License,  Up: Top
11984
11985BFD Index
11986*********
11987
11988[index]
11989* Menu:
11990
11991* _bfd_error_handler:                    Error reporting.    (line  112)
11992* _bfd_final_link_relocate:              Relocating the section contents.
11993                                                             (line   22)
11994* _bfd_generic_link_add_archive_symbols: Adding symbols from an archive.
11995                                                             (line   15)
11996* _bfd_generic_link_add_one_symbol:      Adding symbols from an object file.
11997                                                             (line   19)
11998* _bfd_generic_link_check_relocs:        Writing the symbol table.
11999                                                             (line  144)
12000* _bfd_generic_link_hide_symbol:         Writing the symbol table.
12001                                                             (line   83)
12002* _bfd_generic_make_empty_symbol:        symbol handling functions.
12003                                                             (line   96)
12004* _bfd_generic_set_reloc:                howto manager.      (line 3508)
12005* _bfd_generic_verify_endian_match:      Writing the symbol table.
12006                                                             (line  172)
12007* _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table.
12008                                                             (line    6)
12009* _bfd_link_final_link in target vector: Performing the Final Link.
12010                                                             (line    6)
12011* _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table.
12012                                                             (line    6)
12013* _bfd_relocate_contents:                Relocating the section contents.
12014                                                             (line   22)
12015* _bfd_unrecognized_reloc:               howto manager.      (line 3520)
12016* aout_SIZE_machine_type:                aout.               (line  145)
12017* aout_SIZE_mkobject:                    aout.               (line  137)
12018* aout_SIZE_new_section_hook:            aout.               (line  175)
12019* aout_SIZE_set_arch_mach:               aout.               (line  162)
12020* aout_SIZE_some_aout_object_p:          aout.               (line  123)
12021* aout_SIZE_swap_exec_header_in:         aout.               (line   99)
12022* aout_SIZE_swap_exec_header_out:        aout.               (line  111)
12023* arelent_chain:                         typedef arelent.    (line  315)
12024* BFD:                                   Overview.           (line    6)
12025* BFD canonical format:                  Canonical format.   (line   11)
12026* bfd_alloc:                             Opening and Closing.
12027                                                             (line  239)
12028* bfd_alloc2:                            Opening and Closing.
12029                                                             (line  248)
12030* bfd_alt_mach_code:                     Miscellaneous.      (line  291)
12031* bfd_arch_bits_per_address:             Architectures.      (line  658)
12032* bfd_arch_bits_per_byte:                Architectures.      (line  650)
12033* bfd_arch_default_fill:                 Architectures.      (line  740)
12034* bfd_arch_get_compatible:               Architectures.      (line  593)
12035* bfd_arch_list:                         Architectures.      (line  584)
12036* bfd_arch_mach_octets_per_byte:         Architectures.      (line  728)
12037* BFD_ARELOC_BFIN_ADD:                   howto manager.      (line 1144)
12038* BFD_ARELOC_BFIN_ADDR:                  howto manager.      (line 1178)
12039* BFD_ARELOC_BFIN_AND:                   howto manager.      (line 1158)
12040* BFD_ARELOC_BFIN_COMP:                  howto manager.      (line 1172)
12041* BFD_ARELOC_BFIN_CONST:                 howto manager.      (line 1142)
12042* BFD_ARELOC_BFIN_DIV:                   howto manager.      (line 1150)
12043* BFD_ARELOC_BFIN_HWPAGE:                howto manager.      (line 1176)
12044* BFD_ARELOC_BFIN_LAND:                  howto manager.      (line 1164)
12045* BFD_ARELOC_BFIN_LEN:                   howto manager.      (line 1168)
12046* BFD_ARELOC_BFIN_LOR:                   howto manager.      (line 1166)
12047* BFD_ARELOC_BFIN_LSHIFT:                howto manager.      (line 1154)
12048* BFD_ARELOC_BFIN_MOD:                   howto manager.      (line 1152)
12049* BFD_ARELOC_BFIN_MULT:                  howto manager.      (line 1148)
12050* BFD_ARELOC_BFIN_NEG:                   howto manager.      (line 1170)
12051* BFD_ARELOC_BFIN_OR:                    howto manager.      (line 1160)
12052* BFD_ARELOC_BFIN_PAGE:                  howto manager.      (line 1174)
12053* BFD_ARELOC_BFIN_PUSH:                  howto manager.      (line 1140)
12054* BFD_ARELOC_BFIN_RSHIFT:                howto manager.      (line 1156)
12055* BFD_ARELOC_BFIN_SUB:                   howto manager.      (line 1146)
12056* BFD_ARELOC_BFIN_XOR:                   howto manager.      (line 1162)
12057* bfd_cache_close:                       File Caching.       (line   25)
12058* bfd_cache_close_all:                   File Caching.       (line   38)
12059* bfd_cache_init:                        File Caching.       (line   17)
12060* bfd_calc_gnu_debuglink_crc32:          Opening and Closing.
12061                                                             (line  275)
12062* bfd_canonicalize_reloc:                Miscellaneous.      (line   18)
12063* bfd_canonicalize_symtab:               symbol handling functions.
12064                                                             (line   52)
12065* bfd_check_compression_header:          Miscellaneous.      (line  363)
12066* bfd_check_format:                      Formats.            (line   20)
12067* bfd_check_format_matches:              Formats.            (line   51)
12068* bfd_check_overflow:                    typedef arelent.    (line  328)
12069* bfd_close:                             Opening and Closing.
12070                                                             (line  161)
12071* bfd_close_all_done:                    Opening and Closing.
12072                                                             (line  179)
12073* bfd_coff_backend_data:                 coff.               (line  296)
12074* bfd_convert_section_contents:          Miscellaneous.      (line  401)
12075* bfd_convert_section_size:              Miscellaneous.      (line  391)
12076* bfd_copy_private_bfd_data:             Miscellaneous.      (line  159)
12077* bfd_copy_private_header_data:          Miscellaneous.      (line  142)
12078* bfd_copy_private_section_data:         section prototypes. (line  279)
12079* bfd_copy_private_symbol_data:          symbol handling functions.
12080                                                             (line  145)
12081* bfd_core_file_failing_command:         Core Files.         (line   11)
12082* bfd_core_file_failing_signal:          Core Files.         (line   20)
12083* bfd_core_file_pid:                     Core Files.         (line   29)
12084* bfd_create:                            Opening and Closing.
12085                                                             (line  198)
12086* bfd_create_gnu_debuglink_section:      Opening and Closing.
12087                                                             (line  431)
12088* bfd_decode_symclass:                   symbol handling functions.
12089                                                             (line  116)
12090* bfd_default_arch_struct:               Architectures.      (line  605)
12091* bfd_default_compatible:                Architectures.      (line  667)
12092* bfd_default_reloc_type_lookup:         howto manager.      (line 3432)
12093* bfd_default_scan:                      Architectures.      (line  676)
12094* bfd_default_set_arch_mach:             Architectures.      (line  623)
12095* bfd_demangle:                          Miscellaneous.      (line  342)
12096* bfd_emul_get_commonpagesize:           Miscellaneous.      (line  322)
12097* bfd_emul_get_maxpagesize:              Miscellaneous.      (line  302)
12098* bfd_emul_set_commonpagesize:           Miscellaneous.      (line  333)
12099* bfd_emul_set_maxpagesize:              Miscellaneous.      (line  313)
12100* bfd_errmsg:                            Error reporting.    (line   79)
12101* bfd_fdopenr:                           Opening and Closing.
12102                                                             (line   56)
12103* bfd_fill_in_gnu_debuglink_section:     Opening and Closing.
12104                                                             (line  445)
12105* bfd_find_target:                       bfd_target.         (line  567)
12106* bfd_find_version_for_sym:              Writing the symbol table.
12107                                                             (line  111)
12108* bfd_flavour_name:                      bfd_target.         (line  630)
12109* bfd_follow_build_id_debuglink:         Opening and Closing.
12110                                                             (line  505)
12111* bfd_follow_gnu_debugaltlink:           Opening and Closing.
12112                                                             (line  411)
12113* bfd_follow_gnu_debuglink:              Opening and Closing.
12114                                                             (line  390)
12115* bfd_fopen:                             Opening and Closing.
12116                                                             (line   11)
12117* bfd_format_string:                     Formats.            (line   78)
12118* bfd_generic_define_common_symbol:      Writing the symbol table.
12119                                                             (line   69)
12120* bfd_generic_define_start_stop:         Writing the symbol table.
12121                                                             (line   97)
12122* bfd_generic_discard_group:             section prototypes. (line  312)
12123* bfd_generic_gc_sections:               howto manager.      (line 3463)
12124* bfd_generic_get_relocated_section_contents: howto manager. (line 3493)
12125* bfd_generic_group_name:                section prototypes. (line  304)
12126* bfd_generic_is_group_section:          section prototypes. (line  296)
12127* bfd_generic_lookup_section_flags:      howto manager.      (line 3473)
12128* bfd_generic_merge_sections:            howto manager.      (line 3483)
12129* bfd_generic_relax_section:             howto manager.      (line 3450)
12130* bfd_get_alt_debug_link_info:           Opening and Closing.
12131                                                             (line  329)
12132* bfd_get_arch:                          Architectures.      (line  634)
12133* bfd_get_arch_info:                     Architectures.      (line  686)
12134* bfd_get_arch_size:                     Miscellaneous.      (line   63)
12135* bfd_get_compression_header_size:       Miscellaneous.      (line  380)
12136* bfd_get_debug_link_info:               Opening and Closing.
12137                                                             (line  311)
12138* bfd_get_debug_link_info_1:             Opening and Closing.
12139                                                             (line  289)
12140* bfd_get_error:                         Error reporting.    (line   49)
12141* bfd_get_file_size:                     Miscellaneous.      (line  490)
12142* bfd_get_gp_size:                       Miscellaneous.      (line  106)
12143* bfd_get_linker_section:                section prototypes. (line   37)
12144* bfd_get_mach:                          Architectures.      (line  642)
12145* bfd_get_mtime:                         Miscellaneous.      (line  453)
12146* bfd_get_next_mapent:                   Archives.           (line   57)
12147* bfd_get_next_section_by_name:          section prototypes. (line   25)
12148* bfd_get_reloc_code_name:               howto manager.      (line 3441)
12149* bfd_get_reloc_size:                    typedef arelent.    (line  306)
12150* bfd_get_reloc_upper_bound:             Miscellaneous.      (line    8)
12151* bfd_get_section_by_name:               section prototypes. (line   16)
12152* bfd_get_section_by_name_if:            section prototypes. (line   46)
12153* bfd_get_section_contents:              section prototypes. (line  252)
12154* bfd_get_sign_extend_vma:               Miscellaneous.      (line   78)
12155* bfd_get_size:                          Miscellaneous.      (line  462)
12156* bfd_get_size <1>:                      Internal.           (line   24)
12157* bfd_get_symtab_upper_bound:            symbol handling functions.
12158                                                             (line    5)
12159* bfd_get_target_info:                   bfd_target.         (line  583)
12160* bfd_get_unique_section_name:           section prototypes. (line   65)
12161* bfd_hash_allocate:                     Creating and Freeing a Hash Table.
12162                                                             (line   17)
12163* bfd_hash_lookup:                       Looking Up or Entering a String.
12164                                                             (line    6)
12165* bfd_hash_newfunc:                      Creating and Freeing a Hash Table.
12166                                                             (line   12)
12167* bfd_hash_set_default_size:             Creating and Freeing a Hash Table.
12168                                                             (line   25)
12169* bfd_hash_table_free:                   Creating and Freeing a Hash Table.
12170                                                             (line   21)
12171* bfd_hash_table_init:                   Creating and Freeing a Hash Table.
12172                                                             (line    6)
12173* bfd_hash_table_init_n:                 Creating and Freeing a Hash Table.
12174                                                             (line    6)
12175* bfd_hash_traverse:                     Traversing a Hash Table.
12176                                                             (line    6)
12177* bfd_hide_sym_by_version:               Writing the symbol table.
12178                                                             (line  123)
12179* bfd_h_put_size:                        Internal.           (line  111)
12180* bfd_init:                              Initialization.     (line   10)
12181* bfd_install_relocation:                typedef arelent.    (line  382)
12182* bfd_is_local_label:                    symbol handling functions.
12183                                                             (line   17)
12184* bfd_is_local_label_name:               symbol handling functions.
12185                                                             (line   26)
12186* bfd_is_target_special_symbol:          symbol handling functions.
12187                                                             (line   39)
12188* bfd_is_undefined_symclass:             symbol handling functions.
12189                                                             (line  125)
12190* bfd_iterate_over_targets:              bfd_target.         (line  618)
12191* bfd_link_check_relocs:                 Writing the symbol table.
12192                                                             (line  133)
12193* bfd_link_split_section:                Writing the symbol table.
12194                                                             (line   43)
12195* bfd_log2:                              Internal.           (line  180)
12196* bfd_lookup_arch:                       Architectures.      (line  694)
12197* bfd_make_debug_symbol:                 symbol handling functions.
12198                                                             (line  106)
12199* bfd_make_empty_symbol:                 symbol handling functions.
12200                                                             (line   81)
12201* bfd_make_readable:                     Opening and Closing.
12202                                                             (line  225)
12203* bfd_make_section:                      section prototypes. (line  143)
12204* bfd_make_section_anyway:               section prototypes. (line  115)
12205* bfd_make_section_anyway_with_flags:    section prototypes. (line   97)
12206* bfd_make_section_old_way:              section prototypes. (line   77)
12207* bfd_make_section_with_flags:           section prototypes. (line  131)
12208* bfd_make_writable:                     Opening and Closing.
12209                                                             (line  211)
12210* bfd_malloc_and_get_section:            section prototypes. (line  269)
12211* bfd_map_over_sections:                 section prototypes. (line  176)
12212* bfd_merge_private_bfd_data:            Writing the symbol table.
12213                                                             (line  155)
12214* bfd_mmap:                              Miscellaneous.      (line  499)
12215* bfd_octets_per_byte:                   Architectures.      (line  717)
12216* bfd_openr:                             Opening and Closing.
12217                                                             (line   37)
12218* bfd_openr_iovec:                       Opening and Closing.
12219                                                             (line   95)
12220* bfd_openr_next_archived_file:          Archives.           (line   83)
12221* bfd_openstreamr:                       Opening and Closing.
12222                                                             (line   82)
12223* bfd_openw:                             Opening and Closing.
12224                                                             (line  146)
12225* bfd_open_file:                         File Caching.       (line   51)
12226* bfd_perform_relocation:                typedef arelent.    (line  357)
12227* bfd_perror:                            Error reporting.    (line   88)
12228* bfd_printable_arch_mach:               Architectures.      (line  705)
12229* bfd_printable_name:                    Architectures.      (line  565)
12230* bfd_print_symbol_vandf:                symbol handling functions.
12231                                                             (line   73)
12232* bfd_put_size:                          Internal.           (line   21)
12233* BFD_RELOC_12_PCREL:                    howto manager.      (line   37)
12234* BFD_RELOC_14:                          howto manager.      (line   30)
12235* BFD_RELOC_16:                          howto manager.      (line   29)
12236* BFD_RELOC_16_BASEREL:                  howto manager.      (line   90)
12237* BFD_RELOC_16_GOTOFF:                   howto manager.      (line   49)
12238* BFD_RELOC_16_GOT_PCREL:                howto manager.      (line   46)
12239* BFD_RELOC_16_PCREL:                    howto manager.      (line   36)
12240* BFD_RELOC_16_PCREL_S2:                 howto manager.      (line  100)
12241* BFD_RELOC_16_PLTOFF:                   howto manager.      (line   61)
12242* BFD_RELOC_16_PLT_PCREL:                howto manager.      (line   57)
12243* BFD_RELOC_23_PCREL_S2:                 howto manager.      (line  101)
12244* BFD_RELOC_24:                          howto manager.      (line   28)
12245* BFD_RELOC_24_PCREL:                    howto manager.      (line   35)
12246* BFD_RELOC_24_PLT_PCREL:                howto manager.      (line   56)
12247* BFD_RELOC_26:                          howto manager.      (line   27)
12248* BFD_RELOC_32:                          howto manager.      (line   26)
12249* BFD_RELOC_32_BASEREL:                  howto manager.      (line   89)
12250* BFD_RELOC_32_GOTOFF:                   howto manager.      (line   48)
12251* BFD_RELOC_32_GOT_PCREL:                howto manager.      (line   45)
12252* BFD_RELOC_32_PCREL:                    howto manager.      (line   34)
12253* BFD_RELOC_32_PCREL_S2:                 howto manager.      (line   99)
12254* BFD_RELOC_32_PLTOFF:                   howto manager.      (line   60)
12255* BFD_RELOC_32_PLT_PCREL:                howto manager.      (line   55)
12256* BFD_RELOC_32_SECREL:                   howto manager.      (line   43)
12257* BFD_RELOC_386_COPY:                    howto manager.      (line  523)
12258* BFD_RELOC_386_GLOB_DAT:                howto manager.      (line  524)
12259* BFD_RELOC_386_GOT32:                   howto manager.      (line  521)
12260* BFD_RELOC_386_GOT32X:                  howto manager.      (line  545)
12261* BFD_RELOC_386_GOTOFF:                  howto manager.      (line  527)
12262* BFD_RELOC_386_GOTPC:                   howto manager.      (line  528)
12263* BFD_RELOC_386_IRELATIVE:               howto manager.      (line  544)
12264* BFD_RELOC_386_JUMP_SLOT:               howto manager.      (line  525)
12265* BFD_RELOC_386_PLT32:                   howto manager.      (line  522)
12266* BFD_RELOC_386_RELATIVE:                howto manager.      (line  526)
12267* BFD_RELOC_386_TLS_DESC:                howto manager.      (line  543)
12268* BFD_RELOC_386_TLS_DESC_CALL:           howto manager.      (line  542)
12269* BFD_RELOC_386_TLS_DTPMOD32:            howto manager.      (line  538)
12270* BFD_RELOC_386_TLS_DTPOFF32:            howto manager.      (line  539)
12271* BFD_RELOC_386_TLS_GD:                  howto manager.      (line  533)
12272* BFD_RELOC_386_TLS_GOTDESC:             howto manager.      (line  541)
12273* BFD_RELOC_386_TLS_GOTIE:               howto manager.      (line  531)
12274* BFD_RELOC_386_TLS_IE:                  howto manager.      (line  530)
12275* BFD_RELOC_386_TLS_IE_32:               howto manager.      (line  536)
12276* BFD_RELOC_386_TLS_LDM:                 howto manager.      (line  534)
12277* BFD_RELOC_386_TLS_LDO_32:              howto manager.      (line  535)
12278* BFD_RELOC_386_TLS_LE:                  howto manager.      (line  532)
12279* BFD_RELOC_386_TLS_LE_32:               howto manager.      (line  537)
12280* BFD_RELOC_386_TLS_TPOFF:               howto manager.      (line  529)
12281* BFD_RELOC_386_TLS_TPOFF32:             howto manager.      (line  540)
12282* BFD_RELOC_390_12:                      howto manager.      (line 1950)
12283* BFD_RELOC_390_20:                      howto manager.      (line 2031)
12284* BFD_RELOC_390_COPY:                    howto manager.      (line 1956)
12285* BFD_RELOC_390_GLOB_DAT:                howto manager.      (line 1958)
12286* BFD_RELOC_390_GOT12:                   howto manager.      (line 1952)
12287* BFD_RELOC_390_GOT16:                   howto manager.      (line 1966)
12288* BFD_RELOC_390_GOT20:                   howto manager.      (line 2032)
12289* BFD_RELOC_390_GOT64:                   howto manager.      (line 1986)
12290* BFD_RELOC_390_GOTENT:                  howto manager.      (line 1990)
12291* BFD_RELOC_390_GOTOFF64:                howto manager.      (line 1992)
12292* BFD_RELOC_390_GOTPC:                   howto manager.      (line 1964)
12293* BFD_RELOC_390_GOTPCDBL:                howto manager.      (line 1984)
12294* BFD_RELOC_390_GOTPLT12:                howto manager.      (line 1994)
12295* BFD_RELOC_390_GOTPLT16:                howto manager.      (line 1996)
12296* BFD_RELOC_390_GOTPLT20:                howto manager.      (line 2033)
12297* BFD_RELOC_390_GOTPLT32:                howto manager.      (line 1998)
12298* BFD_RELOC_390_GOTPLT64:                howto manager.      (line 2000)
12299* BFD_RELOC_390_GOTPLTENT:               howto manager.      (line 2002)
12300* BFD_RELOC_390_IRELATIVE:               howto manager.      (line 2036)
12301* BFD_RELOC_390_JMP_SLOT:                howto manager.      (line 1960)
12302* BFD_RELOC_390_PC12DBL:                 howto manager.      (line 1968)
12303* BFD_RELOC_390_PC16DBL:                 howto manager.      (line 1972)
12304* BFD_RELOC_390_PC24DBL:                 howto manager.      (line 1976)
12305* BFD_RELOC_390_PC32DBL:                 howto manager.      (line 1980)
12306* BFD_RELOC_390_PLT12DBL:                howto manager.      (line 1970)
12307* BFD_RELOC_390_PLT16DBL:                howto manager.      (line 1974)
12308* BFD_RELOC_390_PLT24DBL:                howto manager.      (line 1978)
12309* BFD_RELOC_390_PLT32:                   howto manager.      (line 1954)
12310* BFD_RELOC_390_PLT32DBL:                howto manager.      (line 1982)
12311* BFD_RELOC_390_PLT64:                   howto manager.      (line 1988)
12312* BFD_RELOC_390_PLTOFF16:                howto manager.      (line 2004)
12313* BFD_RELOC_390_PLTOFF32:                howto manager.      (line 2006)
12314* BFD_RELOC_390_PLTOFF64:                howto manager.      (line 2008)
12315* BFD_RELOC_390_RELATIVE:                howto manager.      (line 1962)
12316* BFD_RELOC_390_TLS_DTPMOD:              howto manager.      (line 2027)
12317* BFD_RELOC_390_TLS_DTPOFF:              howto manager.      (line 2028)
12318* BFD_RELOC_390_TLS_GD32:                howto manager.      (line 2013)
12319* BFD_RELOC_390_TLS_GD64:                howto manager.      (line 2014)
12320* BFD_RELOC_390_TLS_GDCALL:              howto manager.      (line 2011)
12321* BFD_RELOC_390_TLS_GOTIE12:             howto manager.      (line 2015)
12322* BFD_RELOC_390_TLS_GOTIE20:             howto manager.      (line 2034)
12323* BFD_RELOC_390_TLS_GOTIE32:             howto manager.      (line 2016)
12324* BFD_RELOC_390_TLS_GOTIE64:             howto manager.      (line 2017)
12325* BFD_RELOC_390_TLS_IE32:                howto manager.      (line 2020)
12326* BFD_RELOC_390_TLS_IE64:                howto manager.      (line 2021)
12327* BFD_RELOC_390_TLS_IEENT:               howto manager.      (line 2022)
12328* BFD_RELOC_390_TLS_LDCALL:              howto manager.      (line 2012)
12329* BFD_RELOC_390_TLS_LDM32:               howto manager.      (line 2018)
12330* BFD_RELOC_390_TLS_LDM64:               howto manager.      (line 2019)
12331* BFD_RELOC_390_TLS_LDO32:               howto manager.      (line 2025)
12332* BFD_RELOC_390_TLS_LDO64:               howto manager.      (line 2026)
12333* BFD_RELOC_390_TLS_LE32:                howto manager.      (line 2023)
12334* BFD_RELOC_390_TLS_LE64:                howto manager.      (line 2024)
12335* BFD_RELOC_390_TLS_LOAD:                howto manager.      (line 2010)
12336* BFD_RELOC_390_TLS_TPOFF:               howto manager.      (line 2029)
12337* BFD_RELOC_64:                          howto manager.      (line   25)
12338* BFD_RELOC_64_PCREL:                    howto manager.      (line   33)
12339* BFD_RELOC_64_PLTOFF:                   howto manager.      (line   59)
12340* BFD_RELOC_64_PLT_PCREL:                howto manager.      (line   54)
12341* BFD_RELOC_68K_GLOB_DAT:                howto manager.      (line   70)
12342* BFD_RELOC_68K_JMP_SLOT:                howto manager.      (line   71)
12343* BFD_RELOC_68K_RELATIVE:                howto manager.      (line   72)
12344* BFD_RELOC_68K_TLS_GD16:                howto manager.      (line   74)
12345* BFD_RELOC_68K_TLS_GD32:                howto manager.      (line   73)
12346* BFD_RELOC_68K_TLS_GD8:                 howto manager.      (line   75)
12347* BFD_RELOC_68K_TLS_IE16:                howto manager.      (line   83)
12348* BFD_RELOC_68K_TLS_IE32:                howto manager.      (line   82)
12349* BFD_RELOC_68K_TLS_IE8:                 howto manager.      (line   84)
12350* BFD_RELOC_68K_TLS_LDM16:               howto manager.      (line   77)
12351* BFD_RELOC_68K_TLS_LDM32:               howto manager.      (line   76)
12352* BFD_RELOC_68K_TLS_LDM8:                howto manager.      (line   78)
12353* BFD_RELOC_68K_TLS_LDO16:               howto manager.      (line   80)
12354* BFD_RELOC_68K_TLS_LDO32:               howto manager.      (line   79)
12355* BFD_RELOC_68K_TLS_LDO8:                howto manager.      (line   81)
12356* BFD_RELOC_68K_TLS_LE16:                howto manager.      (line   86)
12357* BFD_RELOC_68K_TLS_LE32:                howto manager.      (line   85)
12358* BFD_RELOC_68K_TLS_LE8:                 howto manager.      (line   87)
12359* BFD_RELOC_8:                           howto manager.      (line   31)
12360* BFD_RELOC_8_BASEREL:                   howto manager.      (line   94)
12361* BFD_RELOC_8_FFnn:                      howto manager.      (line   97)
12362* BFD_RELOC_8_GOTOFF:                    howto manager.      (line   53)
12363* BFD_RELOC_8_GOT_PCREL:                 howto manager.      (line   47)
12364* BFD_RELOC_8_PCREL:                     howto manager.      (line   38)
12365* BFD_RELOC_8_PLTOFF:                    howto manager.      (line   65)
12366* BFD_RELOC_8_PLT_PCREL:                 howto manager.      (line   58)
12367* BFD_RELOC_AARCH64_16:                  howto manager.      (line 2773)
12368* BFD_RELOC_AARCH64_16_PCREL:            howto manager.      (line 2779)
12369* BFD_RELOC_AARCH64_32:                  howto manager.      (line 2772)
12370* BFD_RELOC_AARCH64_32_PCREL:            howto manager.      (line 2778)
12371* BFD_RELOC_AARCH64_64:                  howto manager.      (line 2771)
12372* BFD_RELOC_AARCH64_64_PCREL:            howto manager.      (line 2777)
12373* BFD_RELOC_AARCH64_ADD_LO12:            howto manager.      (line 2852)
12374* BFD_RELOC_AARCH64_ADR_GOT_PAGE:        howto manager.      (line 2898)
12375* BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL:   howto manager.      (line 2848)
12376* BFD_RELOC_AARCH64_ADR_HI21_PCREL:      howto manager.      (line 2845)
12377* BFD_RELOC_AARCH64_ADR_LO21_PCREL:      howto manager.      (line 2842)
12378* BFD_RELOC_AARCH64_BRANCH19:            howto manager.      (line 2864)
12379* BFD_RELOC_AARCH64_CALL26:              howto manager.      (line 2872)
12380* BFD_RELOC_AARCH64_COPY:                howto manager.      (line 3065)
12381* BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP:  howto manager.      (line 3089)
12382* BFD_RELOC_AARCH64_GLOB_DAT:            howto manager.      (line 3067)
12383* BFD_RELOC_AARCH64_GOT_LD_PREL19:       howto manager.      (line 2892)
12384* BFD_RELOC_AARCH64_IRELATIVE:           howto manager.      (line 3081)
12385* BFD_RELOC_AARCH64_JUMP26:              howto manager.      (line 2868)
12386* BFD_RELOC_AARCH64_JUMP_SLOT:           howto manager.      (line 3069)
12387* BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14:   howto manager.      (line 2919)
12388* BFD_RELOC_AARCH64_LD32_GOT_LO12_NC:    howto manager.      (line 2906)
12389* BFD_RELOC_AARCH64_LD64_GOTOFF_LO15:    howto manager.      (line 2916)
12390* BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15:   howto manager.      (line 2922)
12391* BFD_RELOC_AARCH64_LD64_GOT_LO12_NC:    howto manager.      (line 2902)
12392* BFD_RELOC_AARCH64_LDST128_LO12:        howto manager.      (line 2888)
12393* BFD_RELOC_AARCH64_LDST16_LO12:         howto manager.      (line 2876)
12394* BFD_RELOC_AARCH64_LDST32_LO12:         howto manager.      (line 2880)
12395* BFD_RELOC_AARCH64_LDST64_LO12:         howto manager.      (line 2884)
12396* BFD_RELOC_AARCH64_LDST8_LO12:          howto manager.      (line 2856)
12397* BFD_RELOC_AARCH64_LDST_LO12:           howto manager.      (line 3092)
12398* BFD_RELOC_AARCH64_LD_GOT_LO12_NC:      howto manager.      (line 3110)
12399* BFD_RELOC_AARCH64_LD_LO19_PCREL:       howto manager.      (line 2838)
12400* BFD_RELOC_AARCH64_MOVW_G0:             howto manager.      (line 2782)
12401* BFD_RELOC_AARCH64_MOVW_G0_NC:          howto manager.      (line 2785)
12402* BFD_RELOC_AARCH64_MOVW_G0_S:           howto manager.      (line 2803)
12403* BFD_RELOC_AARCH64_MOVW_G1:             howto manager.      (line 2788)
12404* BFD_RELOC_AARCH64_MOVW_G1_NC:          howto manager.      (line 2791)
12405* BFD_RELOC_AARCH64_MOVW_G1_S:           howto manager.      (line 2807)
12406* BFD_RELOC_AARCH64_MOVW_G2:             howto manager.      (line 2794)
12407* BFD_RELOC_AARCH64_MOVW_G2_NC:          howto manager.      (line 2797)
12408* BFD_RELOC_AARCH64_MOVW_G2_S:           howto manager.      (line 2811)
12409* BFD_RELOC_AARCH64_MOVW_G3:             howto manager.      (line 2800)
12410* BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC:   howto manager.      (line 2910)
12411* BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:      howto manager.      (line 2913)
12412* BFD_RELOC_AARCH64_MOVW_PREL_G0:        howto manager.      (line 2815)
12413* BFD_RELOC_AARCH64_MOVW_PREL_G0_NC:     howto manager.      (line 2819)
12414* BFD_RELOC_AARCH64_MOVW_PREL_G1:        howto manager.      (line 2823)
12415* BFD_RELOC_AARCH64_MOVW_PREL_G1_NC:     howto manager.      (line 2826)
12416* BFD_RELOC_AARCH64_MOVW_PREL_G2:        howto manager.      (line 2829)
12417* BFD_RELOC_AARCH64_MOVW_PREL_G2_NC:     howto manager.      (line 2832)
12418* BFD_RELOC_AARCH64_MOVW_PREL_G3:        howto manager.      (line 2835)
12419* BFD_RELOC_AARCH64_NONE:                howto manager.      (line 2769)
12420* BFD_RELOC_AARCH64_NULL:                howto manager.      (line 2767)
12421* BFD_RELOC_AARCH64_RELATIVE:            howto manager.      (line 3071)
12422* BFD_RELOC_AARCH64_RELOC_END:           howto manager.      (line 3083)
12423* BFD_RELOC_AARCH64_RELOC_START:         howto manager.      (line 2762)
12424* BFD_RELOC_AARCH64_TLSDESC:             howto manager.      (line 3079)
12425* BFD_RELOC_AARCH64_TLSDESC_ADD:         howto manager.      (line 3061)
12426* BFD_RELOC_AARCH64_TLSDESC_ADD_LO12:    howto manager.      (line 3053)
12427* BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21:  howto manager.      (line 3047)
12428* BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21:  howto manager.      (line 3045)
12429* BFD_RELOC_AARCH64_TLSDESC_CALL:        howto manager.      (line 3063)
12430* BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC: howto manager.     (line 3051)
12431* BFD_RELOC_AARCH64_TLSDESC_LD64_LO12:   howto manager.      (line 3049)
12432* BFD_RELOC_AARCH64_TLSDESC_LDR:         howto manager.      (line 3059)
12433* BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC:  howto manager.      (line 3116)
12434* BFD_RELOC_AARCH64_TLSDESC_LD_PREL19:   howto manager.      (line 3043)
12435* BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC:   howto manager.      (line 3057)
12436* BFD_RELOC_AARCH64_TLSDESC_OFF_G1:      howto manager.      (line 3055)
12437* BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC:   howto manager.      (line 2932)
12438* BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21:    howto manager.      (line 2925)
12439* BFD_RELOC_AARCH64_TLSGD_ADR_PREL21:    howto manager.      (line 2930)
12440* BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:    howto manager.      (line 2936)
12441* BFD_RELOC_AARCH64_TLSGD_MOVW_G1:       howto manager.      (line 2938)
12442* BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21: howto manager.
12443                                                             (line 2940)
12444* BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC: howto manager.
12445                                                             (line 2944)
12446* BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC: howto manager.
12447                                                             (line 2942)
12448* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC: howto manager.
12449                                                             (line 3113)
12450* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19: howto manager. (line 2946)
12451* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC: howto manager.
12452                                                             (line 2948)
12453* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1: howto manager.   (line 2950)
12454* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12: howto manager.    (line 2952)
12455* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12: howto manager.    (line 2954)
12456* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: howto manager. (line 2956)
12457* BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC:   howto manager.      (line 2959)
12458* BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21:    howto manager.      (line 2963)
12459* BFD_RELOC_AARCH64_TLSLD_ADR_PREL21:    howto manager.      (line 2966)
12460* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12: howto manager. (line 2969)
12461* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC: howto manager.
12462                                                             (line 2972)
12463* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12: howto manager. (line 2975)
12464* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC: howto manager.
12465                                                             (line 2978)
12466* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12: howto manager. (line 2981)
12467* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: howto manager.
12468                                                             (line 2984)
12469* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: howto manager.  (line 2987)
12470* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: howto manager.
12471                                                             (line 2990)
12472* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12: howto manager.   (line 3096)
12473* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC: howto manager.
12474                                                             (line 3100)
12475* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: howto manager.     (line 2993)
12476* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: howto manager.  (line 2995)
12477* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: howto manager.     (line 2997)
12478* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: howto manager.  (line 2999)
12479* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: howto manager.     (line 3001)
12480* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: howto manager.     (line 3013)
12481* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: howto manager.     (line 3015)
12482* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: howto manager.  (line 3017)
12483* BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12: howto manager.  (line 3019)
12484* BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC: howto manager.
12485                                                             (line 3022)
12486* BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12: howto manager.  (line 3025)
12487* BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC: howto manager.
12488                                                             (line 3028)
12489* BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12: howto manager.  (line 3031)
12490* BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC: howto manager.
12491                                                             (line 3034)
12492* BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12: howto manager.   (line 3037)
12493* BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC: howto manager.
12494                                                             (line 3040)
12495* BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12: howto manager.    (line 3103)
12496* BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC: howto manager. (line 3107)
12497* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: howto manager.      (line 3009)
12498* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: howto manager.   (line 3011)
12499* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: howto manager.      (line 3005)
12500* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: howto manager.   (line 3007)
12501* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: howto manager.      (line 3003)
12502* BFD_RELOC_AARCH64_TLS_DTPMOD:          howto manager.      (line 3073)
12503* BFD_RELOC_AARCH64_TLS_DTPREL:          howto manager.      (line 3075)
12504* BFD_RELOC_AARCH64_TLS_TPREL:           howto manager.      (line 3077)
12505* BFD_RELOC_AARCH64_TSTBR14:             howto manager.      (line 2860)
12506* BFD_RELOC_AC_SECTOFF_S9:               howto manager.      (line 1062)
12507* BFD_RELOC_AC_SECTOFF_S9_1:             howto manager.      (line 1063)
12508* BFD_RELOC_AC_SECTOFF_S9_2:             howto manager.      (line 1064)
12509* BFD_RELOC_AC_SECTOFF_U8:               howto manager.      (line 1059)
12510* BFD_RELOC_AC_SECTOFF_U8_1:             howto manager.      (line 1060)
12511* BFD_RELOC_AC_SECTOFF_U8_2:             howto manager.      (line 1061)
12512* BFD_RELOC_ALPHA_BOH:                   howto manager.      (line  288)
12513* BFD_RELOC_ALPHA_BRSGP:                 howto manager.      (line  275)
12514* BFD_RELOC_ALPHA_BSR:                   howto manager.      (line  282)
12515* BFD_RELOC_ALPHA_CODEADDR:              howto manager.      (line  268)
12516* BFD_RELOC_ALPHA_DTPMOD64:              howto manager.      (line  293)
12517* BFD_RELOC_ALPHA_DTPREL16:              howto manager.      (line  298)
12518* BFD_RELOC_ALPHA_DTPREL64:              howto manager.      (line  295)
12519* BFD_RELOC_ALPHA_DTPREL_HI16:           howto manager.      (line  296)
12520* BFD_RELOC_ALPHA_DTPREL_LO16:           howto manager.      (line  297)
12521* BFD_RELOC_ALPHA_ELF_LITERAL:           howto manager.      (line  236)
12522* BFD_RELOC_ALPHA_GOTDTPREL16:           howto manager.      (line  294)
12523* BFD_RELOC_ALPHA_GOTTPREL16:            howto manager.      (line  299)
12524* BFD_RELOC_ALPHA_GPDISP:                howto manager.      (line  231)
12525* BFD_RELOC_ALPHA_GPDISP_HI16:           howto manager.      (line  219)
12526* BFD_RELOC_ALPHA_GPDISP_LO16:           howto manager.      (line  226)
12527* BFD_RELOC_ALPHA_GPREL_HI16:            howto manager.      (line  271)
12528* BFD_RELOC_ALPHA_GPREL_LO16:            howto manager.      (line  272)
12529* BFD_RELOC_ALPHA_HINT:                  howto manager.      (line  261)
12530* BFD_RELOC_ALPHA_LDA:                   howto manager.      (line  285)
12531* BFD_RELOC_ALPHA_LINKAGE:               howto manager.      (line  265)
12532* BFD_RELOC_ALPHA_LITERAL:               howto manager.      (line  235)
12533* BFD_RELOC_ALPHA_LITUSE:                howto manager.      (line  237)
12534* BFD_RELOC_ALPHA_NOP:                   howto manager.      (line  279)
12535* BFD_RELOC_ALPHA_TLSGD:                 howto manager.      (line  291)
12536* BFD_RELOC_ALPHA_TLSLDM:                howto manager.      (line  292)
12537* BFD_RELOC_ALPHA_TPREL16:               howto manager.      (line  303)
12538* BFD_RELOC_ALPHA_TPREL64:               howto manager.      (line  300)
12539* BFD_RELOC_ALPHA_TPREL_HI16:            howto manager.      (line  301)
12540* BFD_RELOC_ALPHA_TPREL_LO16:            howto manager.      (line  302)
12541* BFD_RELOC_ARC_16:                      howto manager.      (line 1031)
12542* BFD_RELOC_ARC_24:                      howto manager.      (line 1032)
12543* BFD_RELOC_ARC_32:                      howto manager.      (line 1033)
12544* BFD_RELOC_ARC_32_ME:                   howto manager.      (line 1053)
12545* BFD_RELOC_ARC_32_ME_S:                 howto manager.      (line 1054)
12546* BFD_RELOC_ARC_32_PCREL:                howto manager.      (line 1071)
12547* BFD_RELOC_ARC_8:                       howto manager.      (line 1030)
12548* BFD_RELOC_ARC_COPY:                    howto manager.      (line 1076)
12549* BFD_RELOC_ARC_GLOB_DAT:                howto manager.      (line 1077)
12550* BFD_RELOC_ARC_GOT32:                   howto manager.      (line 1073)
12551* BFD_RELOC_ARC_GOTOFF:                  howto manager.      (line 1080)
12552* BFD_RELOC_ARC_GOTPC:                   howto manager.      (line 1081)
12553* BFD_RELOC_ARC_GOTPC32:                 howto manager.      (line 1074)
12554* BFD_RELOC_ARC_JLI_SECTOFF:             howto manager.      (line 1097)
12555* BFD_RELOC_ARC_JMP_SLOT:                howto manager.      (line 1078)
12556* BFD_RELOC_ARC_N16:                     howto manager.      (line 1035)
12557* BFD_RELOC_ARC_N24:                     howto manager.      (line 1036)
12558* BFD_RELOC_ARC_N32:                     howto manager.      (line 1037)
12559* BFD_RELOC_ARC_N32_ME:                  howto manager.      (line 1055)
12560* BFD_RELOC_ARC_N8:                      howto manager.      (line 1034)
12561* BFD_RELOC_ARC_NONE:                    howto manager.      (line 1029)
12562* BFD_RELOC_ARC_NPS_CMEM16:              howto manager.      (line 1096)
12563* BFD_RELOC_ARC_PC32:                    howto manager.      (line 1072)
12564* BFD_RELOC_ARC_PLT32:                   howto manager.      (line 1075)
12565* BFD_RELOC_ARC_RELATIVE:                howto manager.      (line 1079)
12566* BFD_RELOC_ARC_S13_PCREL:               howto manager.      (line 1051)
12567* BFD_RELOC_ARC_S21H_PCREL:              howto manager.      (line 1040)
12568* BFD_RELOC_ARC_S21H_PCREL_PLT:          howto manager.      (line 1095)
12569* BFD_RELOC_ARC_S21W_PCREL:              howto manager.      (line 1041)
12570* BFD_RELOC_ARC_S21W_PCREL_PLT:          howto manager.      (line 1082)
12571* BFD_RELOC_ARC_S25H_PCREL:              howto manager.      (line 1042)
12572* BFD_RELOC_ARC_S25H_PCREL_PLT:          howto manager.      (line 1083)
12573* BFD_RELOC_ARC_S25W_PCREL:              howto manager.      (line 1043)
12574* BFD_RELOC_ARC_S25W_PCREL_PLT:          howto manager.      (line 1094)
12575* BFD_RELOC_ARC_SDA:                     howto manager.      (line 1038)
12576* BFD_RELOC_ARC_SDA16_LD:                howto manager.      (line 1048)
12577* BFD_RELOC_ARC_SDA16_LD1:               howto manager.      (line 1049)
12578* BFD_RELOC_ARC_SDA16_LD2:               howto manager.      (line 1050)
12579* BFD_RELOC_ARC_SDA16_ST2:               howto manager.      (line 1070)
12580* BFD_RELOC_ARC_SDA32:                   howto manager.      (line 1044)
12581* BFD_RELOC_ARC_SDA32_ME:                howto manager.      (line 1057)
12582* BFD_RELOC_ARC_SDA_12:                  howto manager.      (line 1069)
12583* BFD_RELOC_ARC_SDA_LDST:                howto manager.      (line 1045)
12584* BFD_RELOC_ARC_SDA_LDST1:               howto manager.      (line 1046)
12585* BFD_RELOC_ARC_SDA_LDST2:               howto manager.      (line 1047)
12586* BFD_RELOC_ARC_SECTOFF:                 howto manager.      (line 1039)
12587* BFD_RELOC_ARC_SECTOFF_1:               howto manager.      (line 1067)
12588* BFD_RELOC_ARC_SECTOFF_2:               howto manager.      (line 1068)
12589* BFD_RELOC_ARC_SECTOFF_ME:              howto manager.      (line 1056)
12590* BFD_RELOC_ARC_SECTOFF_ME_1:            howto manager.      (line 1065)
12591* BFD_RELOC_ARC_SECTOFF_ME_2:            howto manager.      (line 1066)
12592* BFD_RELOC_ARC_TLS_DTPMOD:              howto manager.      (line 1084)
12593* BFD_RELOC_ARC_TLS_DTPOFF:              howto manager.      (line 1090)
12594* BFD_RELOC_ARC_TLS_DTPOFF_S9:           howto manager.      (line 1091)
12595* BFD_RELOC_ARC_TLS_GD_CALL:             howto manager.      (line 1088)
12596* BFD_RELOC_ARC_TLS_GD_GOT:              howto manager.      (line 1086)
12597* BFD_RELOC_ARC_TLS_GD_LD:               howto manager.      (line 1087)
12598* BFD_RELOC_ARC_TLS_IE_GOT:              howto manager.      (line 1089)
12599* BFD_RELOC_ARC_TLS_LE_32:               howto manager.      (line 1093)
12600* BFD_RELOC_ARC_TLS_LE_S9:               howto manager.      (line 1092)
12601* BFD_RELOC_ARC_TLS_TPOFF:               howto manager.      (line 1085)
12602* BFD_RELOC_ARC_W:                       howto manager.      (line 1052)
12603* BFD_RELOC_ARC_W_ME:                    howto manager.      (line 1058)
12604* BFD_RELOC_ARM_ADRL_IMMEDIATE:          howto manager.      (line  902)
12605* BFD_RELOC_ARM_ADR_IMM:                 howto manager.      (line  917)
12606* BFD_RELOC_ARM_ALU_PC_G0:               howto manager.      (line  864)
12607* BFD_RELOC_ARM_ALU_PC_G0_NC:            howto manager.      (line  863)
12608* BFD_RELOC_ARM_ALU_PC_G1:               howto manager.      (line  866)
12609* BFD_RELOC_ARM_ALU_PC_G1_NC:            howto manager.      (line  865)
12610* BFD_RELOC_ARM_ALU_PC_G2:               howto manager.      (line  867)
12611* BFD_RELOC_ARM_ALU_SB_G0:               howto manager.      (line  878)
12612* BFD_RELOC_ARM_ALU_SB_G0_NC:            howto manager.      (line  877)
12613* BFD_RELOC_ARM_ALU_SB_G1:               howto manager.      (line  880)
12614* BFD_RELOC_ARM_ALU_SB_G1_NC:            howto manager.      (line  879)
12615* BFD_RELOC_ARM_ALU_SB_G2:               howto manager.      (line  881)
12616* BFD_RELOC_ARM_CP_OFF_IMM:              howto manager.      (line  912)
12617* BFD_RELOC_ARM_CP_OFF_IMM_S2:           howto manager.      (line  913)
12618* BFD_RELOC_ARM_FUNCDESC:                howto manager.      (line  833)
12619* BFD_RELOC_ARM_FUNCDESC_VALUE:          howto manager.      (line  834)
12620* BFD_RELOC_ARM_GLOB_DAT:                howto manager.      (line  840)
12621* BFD_RELOC_ARM_GOT32:                   howto manager.      (line  841)
12622* BFD_RELOC_ARM_GOTFUNCDESC:             howto manager.      (line  831)
12623* BFD_RELOC_ARM_GOTOFF:                  howto manager.      (line  844)
12624* BFD_RELOC_ARM_GOTOFFFUNCDESC:          howto manager.      (line  832)
12625* BFD_RELOC_ARM_GOTPC:                   howto manager.      (line  845)
12626* BFD_RELOC_ARM_GOT_PREL:                howto manager.      (line  846)
12627* BFD_RELOC_ARM_HVC:                     howto manager.      (line  909)
12628* BFD_RELOC_ARM_HWLITERAL:               howto manager.      (line  924)
12629* BFD_RELOC_ARM_IMMEDIATE:               howto manager.      (line  901)
12630* BFD_RELOC_ARM_IN_POOL:                 howto manager.      (line  920)
12631* BFD_RELOC_ARM_IRELATIVE:               howto manager.      (line  894)
12632* BFD_RELOC_ARM_JUMP_SLOT:               howto manager.      (line  839)
12633* BFD_RELOC_ARM_LDC_PC_G0:               howto manager.      (line  874)
12634* BFD_RELOC_ARM_LDC_PC_G1:               howto manager.      (line  875)
12635* BFD_RELOC_ARM_LDC_PC_G2:               howto manager.      (line  876)
12636* BFD_RELOC_ARM_LDC_SB_G0:               howto manager.      (line  888)
12637* BFD_RELOC_ARM_LDC_SB_G1:               howto manager.      (line  889)
12638* BFD_RELOC_ARM_LDC_SB_G2:               howto manager.      (line  890)
12639* BFD_RELOC_ARM_LDRS_PC_G0:              howto manager.      (line  871)
12640* BFD_RELOC_ARM_LDRS_PC_G1:              howto manager.      (line  872)
12641* BFD_RELOC_ARM_LDRS_PC_G2:              howto manager.      (line  873)
12642* BFD_RELOC_ARM_LDRS_SB_G0:              howto manager.      (line  885)
12643* BFD_RELOC_ARM_LDRS_SB_G1:              howto manager.      (line  886)
12644* BFD_RELOC_ARM_LDRS_SB_G2:              howto manager.      (line  887)
12645* BFD_RELOC_ARM_LDR_IMM:                 howto manager.      (line  918)
12646* BFD_RELOC_ARM_LDR_PC_G0:               howto manager.      (line  868)
12647* BFD_RELOC_ARM_LDR_PC_G1:               howto manager.      (line  869)
12648* BFD_RELOC_ARM_LDR_PC_G2:               howto manager.      (line  870)
12649* BFD_RELOC_ARM_LDR_SB_G0:               howto manager.      (line  882)
12650* BFD_RELOC_ARM_LDR_SB_G1:               howto manager.      (line  883)
12651* BFD_RELOC_ARM_LDR_SB_G2:               howto manager.      (line  884)
12652* BFD_RELOC_ARM_LITERAL:                 howto manager.      (line  919)
12653* BFD_RELOC_ARM_MOVT:                    howto manager.      (line  823)
12654* BFD_RELOC_ARM_MOVT_PCREL:              howto manager.      (line  825)
12655* BFD_RELOC_ARM_MOVW:                    howto manager.      (line  822)
12656* BFD_RELOC_ARM_MOVW_PCREL:              howto manager.      (line  824)
12657* BFD_RELOC_ARM_MULTI:                   howto manager.      (line  911)
12658* BFD_RELOC_ARM_OFFSET_IMM:              howto manager.      (line  803)
12659* BFD_RELOC_ARM_OFFSET_IMM8:             howto manager.      (line  921)
12660* BFD_RELOC_ARM_PCREL_BLX:               howto manager.      (line  767)
12661* BFD_RELOC_ARM_PCREL_BRANCH:            howto manager.      (line  764)
12662* BFD_RELOC_ARM_PCREL_CALL:              howto manager.      (line  775)
12663* BFD_RELOC_ARM_PCREL_JUMP:              howto manager.      (line  778)
12664* BFD_RELOC_ARM_PLT32:                   howto manager.      (line  842)
12665* BFD_RELOC_ARM_PREL31:                  howto manager.      (line  820)
12666* BFD_RELOC_ARM_RELATIVE:                howto manager.      (line  843)
12667* BFD_RELOC_ARM_ROSEGREL32:              howto manager.      (line  812)
12668* BFD_RELOC_ARM_SBREL32:                 howto manager.      (line  814)
12669* BFD_RELOC_ARM_SHIFT_IMM:               howto manager.      (line  907)
12670* BFD_RELOC_ARM_SMC:                     howto manager.      (line  908)
12671* BFD_RELOC_ARM_SWI:                     howto manager.      (line  910)
12672* BFD_RELOC_ARM_T32_ADD_IMM:             howto manager.      (line  904)
12673* BFD_RELOC_ARM_T32_ADD_PC12:            howto manager.      (line  906)
12674* BFD_RELOC_ARM_T32_CP_OFF_IMM:          howto manager.      (line  914)
12675* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2:       howto manager.      (line  915)
12676* BFD_RELOC_ARM_T32_IMM12:               howto manager.      (line  905)
12677* BFD_RELOC_ARM_T32_IMMEDIATE:           howto manager.      (line  903)
12678* BFD_RELOC_ARM_T32_OFFSET_IMM:          howto manager.      (line  923)
12679* BFD_RELOC_ARM_T32_OFFSET_U8:           howto manager.      (line  922)
12680* BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM:   howto manager.      (line  916)
12681* BFD_RELOC_ARM_TARGET1:                 howto manager.      (line  809)
12682* BFD_RELOC_ARM_TARGET2:                 howto manager.      (line  816)
12683* BFD_RELOC_ARM_THM_TLS_CALL:            howto manager.      (line  858)
12684* BFD_RELOC_ARM_THM_TLS_DESCSEQ:         howto manager.      (line  860)
12685* BFD_RELOC_ARM_THUMB_ADD:               howto manager.      (line  925)
12686* BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC:     howto manager.      (line  896)
12687* BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC:     howto manager.      (line  897)
12688* BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC:     howto manager.      (line  898)
12689* BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC:     howto manager.      (line  899)
12690* BFD_RELOC_ARM_THUMB_BF13:              howto manager.      (line  786)
12691* BFD_RELOC_ARM_THUMB_BF17:              howto manager.      (line  784)
12692* BFD_RELOC_ARM_THUMB_BF19:              howto manager.      (line  788)
12693* BFD_RELOC_ARM_THUMB_IMM:               howto manager.      (line  926)
12694* BFD_RELOC_ARM_THUMB_LOOP12:            howto manager.      (line  790)
12695* BFD_RELOC_ARM_THUMB_MOVT:              howto manager.      (line  827)
12696* BFD_RELOC_ARM_THUMB_MOVT_PCREL:        howto manager.      (line  829)
12697* BFD_RELOC_ARM_THUMB_MOVW:              howto manager.      (line  826)
12698* BFD_RELOC_ARM_THUMB_MOVW_PCREL:        howto manager.      (line  828)
12699* BFD_RELOC_ARM_THUMB_OFFSET:            howto manager.      (line  806)
12700* BFD_RELOC_ARM_THUMB_SHIFT:             howto manager.      (line  927)
12701* BFD_RELOC_ARM_TLS_CALL:                howto manager.      (line  857)
12702* BFD_RELOC_ARM_TLS_DESC:                howto manager.      (line  861)
12703* BFD_RELOC_ARM_TLS_DESCSEQ:             howto manager.      (line  859)
12704* BFD_RELOC_ARM_TLS_DTPMOD32:            howto manager.      (line  852)
12705* BFD_RELOC_ARM_TLS_DTPOFF32:            howto manager.      (line  851)
12706* BFD_RELOC_ARM_TLS_GD32:                howto manager.      (line  848)
12707* BFD_RELOC_ARM_TLS_GD32_FDPIC:          howto manager.      (line  835)
12708* BFD_RELOC_ARM_TLS_GOTDESC:             howto manager.      (line  856)
12709* BFD_RELOC_ARM_TLS_IE32:                howto manager.      (line  854)
12710* BFD_RELOC_ARM_TLS_IE32_FDPIC:          howto manager.      (line  837)
12711* BFD_RELOC_ARM_TLS_LDM32:               howto manager.      (line  850)
12712* BFD_RELOC_ARM_TLS_LDM32_FDPIC:         howto manager.      (line  836)
12713* BFD_RELOC_ARM_TLS_LDO32:               howto manager.      (line  849)
12714* BFD_RELOC_ARM_TLS_LE32:                howto manager.      (line  855)
12715* BFD_RELOC_ARM_TLS_TPOFF32:             howto manager.      (line  853)
12716* BFD_RELOC_ARM_V4BX:                    howto manager.      (line  892)
12717* BFD_RELOC_AVR_13_PCREL:                howto manager.      (line 1734)
12718* BFD_RELOC_AVR_16_PM:                   howto manager.      (line 1737)
12719* BFD_RELOC_AVR_6:                       howto manager.      (line 1805)
12720* BFD_RELOC_AVR_6_ADIW:                  howto manager.      (line 1808)
12721* BFD_RELOC_AVR_7_PCREL:                 howto manager.      (line 1731)
12722* BFD_RELOC_AVR_8_HI:                    howto manager.      (line 1814)
12723* BFD_RELOC_AVR_8_HLO:                   howto manager.      (line 1817)
12724* BFD_RELOC_AVR_8_LO:                    howto manager.      (line 1811)
12725* BFD_RELOC_AVR_CALL:                    howto manager.      (line 1799)
12726* BFD_RELOC_AVR_DIFF16:                  howto manager.      (line 1821)
12727* BFD_RELOC_AVR_DIFF32:                  howto manager.      (line 1822)
12728* BFD_RELOC_AVR_DIFF8:                   howto manager.      (line 1820)
12729* BFD_RELOC_AVR_HH8_LDI:                 howto manager.      (line 1746)
12730* BFD_RELOC_AVR_HH8_LDI_NEG:             howto manager.      (line 1761)
12731* BFD_RELOC_AVR_HH8_LDI_PM:              howto manager.      (line 1784)
12732* BFD_RELOC_AVR_HH8_LDI_PM_NEG:          howto manager.      (line 1795)
12733* BFD_RELOC_AVR_HI8_LDI:                 howto manager.      (line 1743)
12734* BFD_RELOC_AVR_HI8_LDI_GS:              howto manager.      (line 1779)
12735* BFD_RELOC_AVR_HI8_LDI_NEG:             howto manager.      (line 1757)
12736* BFD_RELOC_AVR_HI8_LDI_PM:              howto manager.      (line 1776)
12737* BFD_RELOC_AVR_HI8_LDI_PM_NEG:          howto manager.      (line 1791)
12738* BFD_RELOC_AVR_LDI:                     howto manager.      (line 1802)
12739* BFD_RELOC_AVR_LDS_STS_16:              howto manager.      (line 1829)
12740* BFD_RELOC_AVR_LO8_LDI:                 howto manager.      (line 1740)
12741* BFD_RELOC_AVR_LO8_LDI_GS:              howto manager.      (line 1771)
12742* BFD_RELOC_AVR_LO8_LDI_NEG:             howto manager.      (line 1753)
12743* BFD_RELOC_AVR_LO8_LDI_PM:              howto manager.      (line 1768)
12744* BFD_RELOC_AVR_LO8_LDI_PM_NEG:          howto manager.      (line 1788)
12745* BFD_RELOC_AVR_MS8_LDI:                 howto manager.      (line 1750)
12746* BFD_RELOC_AVR_MS8_LDI_NEG:             howto manager.      (line 1765)
12747* BFD_RELOC_AVR_PORT5:                   howto manager.      (line 1835)
12748* BFD_RELOC_AVR_PORT6:                   howto manager.      (line 1832)
12749* BFD_RELOC_BFIN_10_PCREL:               howto manager.      (line 1109)
12750* BFD_RELOC_BFIN_11_PCREL:               howto manager.      (line 1111)
12751* BFD_RELOC_BFIN_12_PCREL_JUMP:          howto manager.      (line 1113)
12752* BFD_RELOC_BFIN_12_PCREL_JUMP_S:        howto manager.      (line 1115)
12753* BFD_RELOC_BFIN_16_HIGH:                howto manager.      (line 1101)
12754* BFD_RELOC_BFIN_16_IMM:                 howto manager.      (line 1099)
12755* BFD_RELOC_BFIN_16_LOW:                 howto manager.      (line 1107)
12756* BFD_RELOC_BFIN_24_PCREL_CALL_X:        howto manager.      (line 1117)
12757* BFD_RELOC_BFIN_24_PCREL_JUMP_L:        howto manager.      (line 1119)
12758* BFD_RELOC_BFIN_4_PCREL:                howto manager.      (line 1103)
12759* BFD_RELOC_BFIN_5_PCREL:                howto manager.      (line 1105)
12760* BFD_RELOC_BFIN_FUNCDESC:               howto manager.      (line 1124)
12761* BFD_RELOC_BFIN_FUNCDESC_GOT17M4:       howto manager.      (line 1125)
12762* BFD_RELOC_BFIN_FUNCDESC_GOTHI:         howto manager.      (line 1126)
12763* BFD_RELOC_BFIN_FUNCDESC_GOTLO:         howto manager.      (line 1127)
12764* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4:    howto manager.      (line 1129)
12765* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI:      howto manager.      (line 1130)
12766* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO:      howto manager.      (line 1131)
12767* BFD_RELOC_BFIN_FUNCDESC_VALUE:         howto manager.      (line 1128)
12768* BFD_RELOC_BFIN_GOT:                    howto manager.      (line 1136)
12769* BFD_RELOC_BFIN_GOT17M4:                howto manager.      (line 1121)
12770* BFD_RELOC_BFIN_GOTHI:                  howto manager.      (line 1122)
12771* BFD_RELOC_BFIN_GOTLO:                  howto manager.      (line 1123)
12772* BFD_RELOC_BFIN_GOTOFF17M4:             howto manager.      (line 1132)
12773* BFD_RELOC_BFIN_GOTOFFHI:               howto manager.      (line 1133)
12774* BFD_RELOC_BFIN_GOTOFFLO:               howto manager.      (line 1134)
12775* BFD_RELOC_BFIN_PLTPC:                  howto manager.      (line 1138)
12776* BFD_RELOC_BPF_16:                      howto manager.      (line 3311)
12777* BFD_RELOC_BPF_32:                      howto manager.      (line 3310)
12778* BFD_RELOC_BPF_64:                      howto manager.      (line 3309)
12779* BFD_RELOC_BPF_DISP16:                  howto manager.      (line 3312)
12780* BFD_RELOC_BPF_DISP32:                  howto manager.      (line 3313)
12781* BFD_RELOC_C6000_ABS_H16:               howto manager.      (line 1576)
12782* BFD_RELOC_C6000_ABS_L16:               howto manager.      (line 1575)
12783* BFD_RELOC_C6000_ABS_S16:               howto manager.      (line 1574)
12784* BFD_RELOC_C6000_ALIGN:                 howto manager.      (line 1597)
12785* BFD_RELOC_C6000_COPY:                  howto manager.      (line 1592)
12786* BFD_RELOC_C6000_DSBT_INDEX:            howto manager.      (line 1590)
12787* BFD_RELOC_C6000_EHTYPE:                howto manager.      (line 1594)
12788* BFD_RELOC_C6000_FPHEAD:                howto manager.      (line 1598)
12789* BFD_RELOC_C6000_JUMP_SLOT:             howto manager.      (line 1593)
12790* BFD_RELOC_C6000_NOCMP:                 howto manager.      (line 1599)
12791* BFD_RELOC_C6000_PCR_H16:               howto manager.      (line 1595)
12792* BFD_RELOC_C6000_PCR_L16:               howto manager.      (line 1596)
12793* BFD_RELOC_C6000_PCR_S10:               howto manager.      (line 1572)
12794* BFD_RELOC_C6000_PCR_S12:               howto manager.      (line 1571)
12795* BFD_RELOC_C6000_PCR_S21:               howto manager.      (line 1570)
12796* BFD_RELOC_C6000_PCR_S7:                howto manager.      (line 1573)
12797* BFD_RELOC_C6000_PREL31:                howto manager.      (line 1591)
12798* BFD_RELOC_C6000_SBR_GOT_H16_W:         howto manager.      (line 1589)
12799* BFD_RELOC_C6000_SBR_GOT_L16_W:         howto manager.      (line 1588)
12800* BFD_RELOC_C6000_SBR_GOT_U15_W:         howto manager.      (line 1587)
12801* BFD_RELOC_C6000_SBR_H16_B:             howto manager.      (line 1584)
12802* BFD_RELOC_C6000_SBR_H16_H:             howto manager.      (line 1585)
12803* BFD_RELOC_C6000_SBR_H16_W:             howto manager.      (line 1586)
12804* BFD_RELOC_C6000_SBR_L16_B:             howto manager.      (line 1581)
12805* BFD_RELOC_C6000_SBR_L16_H:             howto manager.      (line 1582)
12806* BFD_RELOC_C6000_SBR_L16_W:             howto manager.      (line 1583)
12807* BFD_RELOC_C6000_SBR_S16:               howto manager.      (line 1580)
12808* BFD_RELOC_C6000_SBR_U15_B:             howto manager.      (line 1577)
12809* BFD_RELOC_C6000_SBR_U15_H:             howto manager.      (line 1578)
12810* BFD_RELOC_C6000_SBR_U15_W:             howto manager.      (line 1579)
12811* BFD_RELOC_CKCORE_ADDR32:               howto manager.      (line 3350)
12812* BFD_RELOC_CKCORE_ADDRGOT:              howto manager.      (line 3366)
12813* BFD_RELOC_CKCORE_ADDRGOT_HI16:         howto manager.      (line 3385)
12814* BFD_RELOC_CKCORE_ADDRGOT_LO16:         howto manager.      (line 3386)
12815* BFD_RELOC_CKCORE_ADDRPLT:              howto manager.      (line 3367)
12816* BFD_RELOC_CKCORE_ADDRPLT_HI16:         howto manager.      (line 3387)
12817* BFD_RELOC_CKCORE_ADDRPLT_LO16:         howto manager.      (line 3388)
12818* BFD_RELOC_CKCORE_ADDR_HI16:            howto manager.      (line 3373)
12819* BFD_RELOC_CKCORE_ADDR_LO16:            howto manager.      (line 3374)
12820* BFD_RELOC_CKCORE_CALLGRAPH:            howto manager.      (line 3410)
12821* BFD_RELOC_CKCORE_COPY:                 howto manager.      (line 3359)
12822* BFD_RELOC_CKCORE_DOFFSET_IMM18:        howto manager.      (line 3393)
12823* BFD_RELOC_CKCORE_DOFFSET_IMM18BY2:     howto manager.      (line 3394)
12824* BFD_RELOC_CKCORE_DOFFSET_IMM18BY4:     howto manager.      (line 3395)
12825* BFD_RELOC_CKCORE_DOFFSET_LO16:         howto manager.      (line 3391)
12826* BFD_RELOC_CKCORE_GLOB_DAT:             howto manager.      (line 3360)
12827* BFD_RELOC_CKCORE_GNU_VTENTRY:          howto manager.      (line 3357)
12828* BFD_RELOC_CKCORE_GNU_VTINHERIT:        howto manager.      (line 3356)
12829* BFD_RELOC_CKCORE_GOT12:                howto manager.      (line 3379)
12830* BFD_RELOC_CKCORE_GOT32:                howto manager.      (line 3364)
12831* BFD_RELOC_CKCORE_GOTOFF:               howto manager.      (line 3362)
12832* BFD_RELOC_CKCORE_GOTOFF_HI16:          howto manager.      (line 3377)
12833* BFD_RELOC_CKCORE_GOTOFF_IMM18:         howto manager.      (line 3396)
12834* BFD_RELOC_CKCORE_GOTOFF_LO16:          howto manager.      (line 3378)
12835* BFD_RELOC_CKCORE_GOTPC:                howto manager.      (line 3363)
12836* BFD_RELOC_CKCORE_GOTPC_HI16:           howto manager.      (line 3375)
12837* BFD_RELOC_CKCORE_GOTPC_LO16:           howto manager.      (line 3376)
12838* BFD_RELOC_CKCORE_GOT_HI16:             howto manager.      (line 3380)
12839* BFD_RELOC_CKCORE_GOT_IMM18BY4:         howto manager.      (line 3397)
12840* BFD_RELOC_CKCORE_GOT_LO16:             howto manager.      (line 3381)
12841* BFD_RELOC_CKCORE_IRELATIVE:            howto manager.      (line 3411)
12842* BFD_RELOC_CKCORE_JUMP_SLOT:            howto manager.      (line 3361)
12843* BFD_RELOC_CKCORE_NOJSRI:               howto manager.      (line 3409)
12844* BFD_RELOC_CKCORE_NONE:                 howto manager.      (line 3349)
12845* BFD_RELOC_CKCORE_PCREL32:              howto manager.      (line 3354)
12846* BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4: howto manager.      (line 3413)
12847* BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4:  howto manager.      (line 3412)
12848* BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4:   howto manager.      (line 3408)
12849* BFD_RELOC_CKCORE_PCREL_IMM10BY2:       howto manager.      (line 3371)
12850* BFD_RELOC_CKCORE_PCREL_IMM10BY4:       howto manager.      (line 3372)
12851* BFD_RELOC_CKCORE_PCREL_IMM11BY2:       howto manager.      (line 3352)
12852* BFD_RELOC_CKCORE_PCREL_IMM16BY2:       howto manager.      (line 3369)
12853* BFD_RELOC_CKCORE_PCREL_IMM16BY4:       howto manager.      (line 3370)
12854* BFD_RELOC_CKCORE_PCREL_IMM18BY2:       howto manager.      (line 3392)
12855* BFD_RELOC_CKCORE_PCREL_IMM26BY2:       howto manager.      (line 3368)
12856* BFD_RELOC_CKCORE_PCREL_IMM4BY2:        howto manager.      (line 3353)
12857* BFD_RELOC_CKCORE_PCREL_IMM7BY4:        howto manager.      (line 3399)
12858* BFD_RELOC_CKCORE_PCREL_IMM8BY4:        howto manager.      (line 3351)
12859* BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2:   howto manager.      (line 3355)
12860* BFD_RELOC_CKCORE_PCREL_JSR_IMM26BY2:   howto manager.      (line 3389)
12861* BFD_RELOC_CKCORE_PLT12:                howto manager.      (line 3382)
12862* BFD_RELOC_CKCORE_PLT32:                howto manager.      (line 3365)
12863* BFD_RELOC_CKCORE_PLT_HI16:             howto manager.      (line 3383)
12864* BFD_RELOC_CKCORE_PLT_IMM18BY4:         howto manager.      (line 3398)
12865* BFD_RELOC_CKCORE_PLT_LO16:             howto manager.      (line 3384)
12866* BFD_RELOC_CKCORE_RELATIVE:             howto manager.      (line 3358)
12867* BFD_RELOC_CKCORE_TLS_DTPMOD32:         howto manager.      (line 3405)
12868* BFD_RELOC_CKCORE_TLS_DTPOFF32:         howto manager.      (line 3406)
12869* BFD_RELOC_CKCORE_TLS_GD32:             howto manager.      (line 3402)
12870* BFD_RELOC_CKCORE_TLS_IE32:             howto manager.      (line 3401)
12871* BFD_RELOC_CKCORE_TLS_LDM32:            howto manager.      (line 3403)
12872* BFD_RELOC_CKCORE_TLS_LDO32:            howto manager.      (line 3404)
12873* BFD_RELOC_CKCORE_TLS_LE32:             howto manager.      (line 3400)
12874* BFD_RELOC_CKCORE_TLS_TPOFF32:          howto manager.      (line 3407)
12875* BFD_RELOC_CKCORE_TOFFSET_LO16:         howto manager.      (line 3390)
12876* bfd_reloc_code_type:                   howto manager.      (line    9)
12877* BFD_RELOC_CR16_ABS20:                  howto manager.      (line 2276)
12878* BFD_RELOC_CR16_ABS24:                  howto manager.      (line 2277)
12879* BFD_RELOC_CR16_DISP16:                 howto manager.      (line 2287)
12880* BFD_RELOC_CR16_DISP20:                 howto manager.      (line 2288)
12881* BFD_RELOC_CR16_DISP24:                 howto manager.      (line 2289)
12882* BFD_RELOC_CR16_DISP24a:                howto manager.      (line 2290)
12883* BFD_RELOC_CR16_DISP4:                  howto manager.      (line 2285)
12884* BFD_RELOC_CR16_DISP8:                  howto manager.      (line 2286)
12885* BFD_RELOC_CR16_GLOB_DAT:               howto manager.      (line 2296)
12886* BFD_RELOC_CR16_GOTC_REGREL20:          howto manager.      (line 2295)
12887* BFD_RELOC_CR16_GOT_REGREL20:           howto manager.      (line 2294)
12888* BFD_RELOC_CR16_IMM16:                  howto manager.      (line 2280)
12889* BFD_RELOC_CR16_IMM20:                  howto manager.      (line 2281)
12890* BFD_RELOC_CR16_IMM24:                  howto manager.      (line 2282)
12891* BFD_RELOC_CR16_IMM32:                  howto manager.      (line 2283)
12892* BFD_RELOC_CR16_IMM32a:                 howto manager.      (line 2284)
12893* BFD_RELOC_CR16_IMM4:                   howto manager.      (line 2278)
12894* BFD_RELOC_CR16_IMM8:                   howto manager.      (line 2279)
12895* BFD_RELOC_CR16_NUM16:                  howto manager.      (line 2265)
12896* BFD_RELOC_CR16_NUM32:                  howto manager.      (line 2266)
12897* BFD_RELOC_CR16_NUM32a:                 howto manager.      (line 2267)
12898* BFD_RELOC_CR16_NUM8:                   howto manager.      (line 2264)
12899* BFD_RELOC_CR16_REGREL0:                howto manager.      (line 2268)
12900* BFD_RELOC_CR16_REGREL14:               howto manager.      (line 2271)
12901* BFD_RELOC_CR16_REGREL14a:              howto manager.      (line 2272)
12902* BFD_RELOC_CR16_REGREL16:               howto manager.      (line 2273)
12903* BFD_RELOC_CR16_REGREL20:               howto manager.      (line 2274)
12904* BFD_RELOC_CR16_REGREL20a:              howto manager.      (line 2275)
12905* BFD_RELOC_CR16_REGREL4:                howto manager.      (line 2269)
12906* BFD_RELOC_CR16_REGREL4a:               howto manager.      (line 2270)
12907* BFD_RELOC_CR16_SWITCH16:               howto manager.      (line 2292)
12908* BFD_RELOC_CR16_SWITCH32:               howto manager.      (line 2293)
12909* BFD_RELOC_CR16_SWITCH8:                howto manager.      (line 2291)
12910* BFD_RELOC_CRIS_16_DTPREL:              howto manager.      (line 2356)
12911* BFD_RELOC_CRIS_16_GOT:                 howto manager.      (line 2338)
12912* BFD_RELOC_CRIS_16_GOTPLT:              howto manager.      (line 2342)
12913* BFD_RELOC_CRIS_16_GOT_GD:              howto manager.      (line 2352)
12914* BFD_RELOC_CRIS_16_GOT_TPREL:           howto manager.      (line 2358)
12915* BFD_RELOC_CRIS_16_TPREL:               howto manager.      (line 2360)
12916* BFD_RELOC_CRIS_32_DTPREL:              howto manager.      (line 2355)
12917* BFD_RELOC_CRIS_32_GD:                  howto manager.      (line 2353)
12918* BFD_RELOC_CRIS_32_GOT:                 howto manager.      (line 2336)
12919* BFD_RELOC_CRIS_32_GOTPLT:              howto manager.      (line 2340)
12920* BFD_RELOC_CRIS_32_GOTREL:              howto manager.      (line 2344)
12921* BFD_RELOC_CRIS_32_GOT_GD:              howto manager.      (line 2351)
12922* BFD_RELOC_CRIS_32_GOT_TPREL:           howto manager.      (line 2357)
12923* BFD_RELOC_CRIS_32_IE:                  howto manager.      (line 2362)
12924* BFD_RELOC_CRIS_32_PLT_GOTREL:          howto manager.      (line 2346)
12925* BFD_RELOC_CRIS_32_PLT_PCREL:           howto manager.      (line 2348)
12926* BFD_RELOC_CRIS_32_TPREL:               howto manager.      (line 2359)
12927* BFD_RELOC_CRIS_BDISP8:                 howto manager.      (line 2319)
12928* BFD_RELOC_CRIS_COPY:                   howto manager.      (line 2331)
12929* BFD_RELOC_CRIS_DTP:                    howto manager.      (line 2354)
12930* BFD_RELOC_CRIS_DTPMOD:                 howto manager.      (line 2361)
12931* BFD_RELOC_CRIS_GLOB_DAT:               howto manager.      (line 2332)
12932* BFD_RELOC_CRIS_JUMP_SLOT:              howto manager.      (line 2333)
12933* BFD_RELOC_CRIS_LAPCQ_OFFSET:           howto manager.      (line 2327)
12934* BFD_RELOC_CRIS_RELATIVE:               howto manager.      (line 2334)
12935* BFD_RELOC_CRIS_SIGNED_16:              howto manager.      (line 2325)
12936* BFD_RELOC_CRIS_SIGNED_6:               howto manager.      (line 2321)
12937* BFD_RELOC_CRIS_SIGNED_8:               howto manager.      (line 2323)
12938* BFD_RELOC_CRIS_UNSIGNED_16:            howto manager.      (line 2326)
12939* BFD_RELOC_CRIS_UNSIGNED_4:             howto manager.      (line 2328)
12940* BFD_RELOC_CRIS_UNSIGNED_5:             howto manager.      (line 2320)
12941* BFD_RELOC_CRIS_UNSIGNED_6:             howto manager.      (line 2322)
12942* BFD_RELOC_CRIS_UNSIGNED_8:             howto manager.      (line 2324)
12943* BFD_RELOC_CRX_ABS16:                   howto manager.      (line 2308)
12944* BFD_RELOC_CRX_ABS32:                   howto manager.      (line 2309)
12945* BFD_RELOC_CRX_IMM16:                   howto manager.      (line 2313)
12946* BFD_RELOC_CRX_IMM32:                   howto manager.      (line 2314)
12947* BFD_RELOC_CRX_NUM16:                   howto manager.      (line 2311)
12948* BFD_RELOC_CRX_NUM32:                   howto manager.      (line 2312)
12949* BFD_RELOC_CRX_NUM8:                    howto manager.      (line 2310)
12950* BFD_RELOC_CRX_REGREL12:                howto manager.      (line 2304)
12951* BFD_RELOC_CRX_REGREL22:                howto manager.      (line 2305)
12952* BFD_RELOC_CRX_REGREL28:                howto manager.      (line 2306)
12953* BFD_RELOC_CRX_REGREL32:                howto manager.      (line 2307)
12954* BFD_RELOC_CRX_REL16:                   howto manager.      (line 2301)
12955* BFD_RELOC_CRX_REL24:                   howto manager.      (line 2302)
12956* BFD_RELOC_CRX_REL32:                   howto manager.      (line 2303)
12957* BFD_RELOC_CRX_REL4:                    howto manager.      (line 2298)
12958* BFD_RELOC_CRX_REL8:                    howto manager.      (line 2299)
12959* BFD_RELOC_CRX_REL8_CMP:                howto manager.      (line 2300)
12960* BFD_RELOC_CRX_SWITCH16:                howto manager.      (line 2316)
12961* BFD_RELOC_CRX_SWITCH32:                howto manager.      (line 2317)
12962* BFD_RELOC_CRX_SWITCH8:                 howto manager.      (line 2315)
12963* BFD_RELOC_CTOR:                        howto manager.      (line  759)
12964* BFD_RELOC_D10V_10_PCREL_L:             howto manager.      (line 1183)
12965* BFD_RELOC_D10V_10_PCREL_R:             howto manager.      (line 1180)
12966* BFD_RELOC_D10V_18:                     howto manager.      (line 1187)
12967* BFD_RELOC_D10V_18_PCREL:               howto manager.      (line 1189)
12968* BFD_RELOC_D30V_15:                     howto manager.      (line 1200)
12969* BFD_RELOC_D30V_15_PCREL:               howto manager.      (line 1203)
12970* BFD_RELOC_D30V_15_PCREL_R:             howto manager.      (line 1206)
12971* BFD_RELOC_D30V_21:                     howto manager.      (line 1210)
12972* BFD_RELOC_D30V_21_PCREL:               howto manager.      (line 1213)
12973* BFD_RELOC_D30V_21_PCREL_R:             howto manager.      (line 1216)
12974* BFD_RELOC_D30V_32:                     howto manager.      (line 1220)
12975* BFD_RELOC_D30V_32_PCREL:               howto manager.      (line 1222)
12976* BFD_RELOC_D30V_6:                      howto manager.      (line 1191)
12977* BFD_RELOC_D30V_9_PCREL:                howto manager.      (line 1193)
12978* BFD_RELOC_D30V_9_PCREL_R:              howto manager.      (line 1196)
12979* BFD_RELOC_DLX_HI16_S:                  howto manager.      (line 1224)
12980* BFD_RELOC_DLX_JMP26:                   howto manager.      (line 1228)
12981* BFD_RELOC_DLX_LO16:                    howto manager.      (line 1226)
12982* BFD_RELOC_EPIPHANY_HIGH:               howto manager.      (line 3319)
12983* BFD_RELOC_EPIPHANY_IMM11:              howto manager.      (line 3325)
12984* BFD_RELOC_EPIPHANY_IMM8:               howto manager.      (line 3328)
12985* BFD_RELOC_EPIPHANY_LOW:                howto manager.      (line 3321)
12986* BFD_RELOC_EPIPHANY_SIMM11:             howto manager.      (line 3323)
12987* BFD_RELOC_EPIPHANY_SIMM24:             howto manager.      (line 3317)
12988* BFD_RELOC_EPIPHANY_SIMM8:              howto manager.      (line 3315)
12989* BFD_RELOC_FR30_10_IN_8:                howto manager.      (line 1615)
12990* BFD_RELOC_FR30_12_PCREL:               howto manager.      (line 1621)
12991* BFD_RELOC_FR30_20:                     howto manager.      (line 1603)
12992* BFD_RELOC_FR30_48:                     howto manager.      (line 1601)
12993* BFD_RELOC_FR30_6_IN_4:                 howto manager.      (line 1606)
12994* BFD_RELOC_FR30_8_IN_8:                 howto manager.      (line 1609)
12995* BFD_RELOC_FR30_9_IN_8:                 howto manager.      (line 1612)
12996* BFD_RELOC_FR30_9_PCREL:                howto manager.      (line 1618)
12997* BFD_RELOC_FRV_FUNCDESC:                howto manager.      (line  451)
12998* BFD_RELOC_FRV_FUNCDESC_GOT12:          howto manager.      (line  452)
12999* BFD_RELOC_FRV_FUNCDESC_GOTHI:          howto manager.      (line  453)
13000* BFD_RELOC_FRV_FUNCDESC_GOTLO:          howto manager.      (line  454)
13001* BFD_RELOC_FRV_FUNCDESC_GOTOFF12:       howto manager.      (line  456)
13002* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI:       howto manager.      (line  457)
13003* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO:       howto manager.      (line  458)
13004* BFD_RELOC_FRV_FUNCDESC_VALUE:          howto manager.      (line  455)
13005* BFD_RELOC_FRV_GETTLSOFF:               howto manager.      (line  462)
13006* BFD_RELOC_FRV_GETTLSOFF_RELAX:         howto manager.      (line  475)
13007* BFD_RELOC_FRV_GOT12:                   howto manager.      (line  448)
13008* BFD_RELOC_FRV_GOTHI:                   howto manager.      (line  449)
13009* BFD_RELOC_FRV_GOTLO:                   howto manager.      (line  450)
13010* BFD_RELOC_FRV_GOTOFF12:                howto manager.      (line  459)
13011* BFD_RELOC_FRV_GOTOFFHI:                howto manager.      (line  460)
13012* BFD_RELOC_FRV_GOTOFFLO:                howto manager.      (line  461)
13013* BFD_RELOC_FRV_GOTTLSDESC12:            howto manager.      (line  464)
13014* BFD_RELOC_FRV_GOTTLSDESCHI:            howto manager.      (line  465)
13015* BFD_RELOC_FRV_GOTTLSDESCLO:            howto manager.      (line  466)
13016* BFD_RELOC_FRV_GOTTLSOFF12:             howto manager.      (line  470)
13017* BFD_RELOC_FRV_GOTTLSOFFHI:             howto manager.      (line  471)
13018* BFD_RELOC_FRV_GOTTLSOFFLO:             howto manager.      (line  472)
13019* BFD_RELOC_FRV_GPREL12:                 howto manager.      (line  443)
13020* BFD_RELOC_FRV_GPREL32:                 howto manager.      (line  445)
13021* BFD_RELOC_FRV_GPRELHI:                 howto manager.      (line  446)
13022* BFD_RELOC_FRV_GPRELLO:                 howto manager.      (line  447)
13023* BFD_RELOC_FRV_GPRELU12:                howto manager.      (line  444)
13024* BFD_RELOC_FRV_HI16:                    howto manager.      (line  442)
13025* BFD_RELOC_FRV_LABEL16:                 howto manager.      (line  439)
13026* BFD_RELOC_FRV_LABEL24:                 howto manager.      (line  440)
13027* BFD_RELOC_FRV_LO16:                    howto manager.      (line  441)
13028* BFD_RELOC_FRV_TLSDESC_RELAX:           howto manager.      (line  474)
13029* BFD_RELOC_FRV_TLSDESC_VALUE:           howto manager.      (line  463)
13030* BFD_RELOC_FRV_TLSMOFF:                 howto manager.      (line  477)
13031* BFD_RELOC_FRV_TLSMOFF12:               howto manager.      (line  467)
13032* BFD_RELOC_FRV_TLSMOFFHI:               howto manager.      (line  468)
13033* BFD_RELOC_FRV_TLSMOFFLO:               howto manager.      (line  469)
13034* BFD_RELOC_FRV_TLSOFF:                  howto manager.      (line  473)
13035* BFD_RELOC_FRV_TLSOFF_RELAX:            howto manager.      (line  476)
13036* BFD_RELOC_FT32_10:                     howto manager.      (line  429)
13037* BFD_RELOC_FT32_15:                     howto manager.      (line  436)
13038* BFD_RELOC_FT32_17:                     howto manager.      (line  431)
13039* BFD_RELOC_FT32_18:                     howto manager.      (line  432)
13040* BFD_RELOC_FT32_20:                     howto manager.      (line  430)
13041* BFD_RELOC_FT32_DIFF32:                 howto manager.      (line  437)
13042* BFD_RELOC_FT32_RELAX:                  howto manager.      (line  433)
13043* BFD_RELOC_FT32_SC0:                    howto manager.      (line  434)
13044* BFD_RELOC_FT32_SC1:                    howto manager.      (line  435)
13045* BFD_RELOC_GPREL16:                     howto manager.      (line  112)
13046* BFD_RELOC_GPREL32:                     howto manager.      (line  113)
13047* BFD_RELOC_H8_DIR16A8:                  howto manager.      (line 2404)
13048* BFD_RELOC_H8_DIR16R8:                  howto manager.      (line 2405)
13049* BFD_RELOC_H8_DIR24A8:                  howto manager.      (line 2406)
13050* BFD_RELOC_H8_DIR24R8:                  howto manager.      (line 2407)
13051* BFD_RELOC_H8_DIR32A16:                 howto manager.      (line 2408)
13052* BFD_RELOC_H8_DISP32A16:                howto manager.      (line 2409)
13053* BFD_RELOC_HI16:                        howto manager.      (line  312)
13054* BFD_RELOC_HI16_BASEREL:                howto manager.      (line   92)
13055* BFD_RELOC_HI16_GOTOFF:                 howto manager.      (line   51)
13056* BFD_RELOC_HI16_PCREL:                  howto manager.      (line  321)
13057* BFD_RELOC_HI16_PLTOFF:                 howto manager.      (line   63)
13058* BFD_RELOC_HI16_S:                      howto manager.      (line  314)
13059* BFD_RELOC_HI16_S_BASEREL:              howto manager.      (line   93)
13060* BFD_RELOC_HI16_S_GOTOFF:               howto manager.      (line   52)
13061* BFD_RELOC_HI16_S_PCREL:                howto manager.      (line  323)
13062* BFD_RELOC_HI16_S_PLTOFF:               howto manager.      (line   64)
13063* BFD_RELOC_HI22:                        howto manager.      (line  108)
13064* BFD_RELOC_I370_D12:                    howto manager.      (line  757)
13065* BFD_RELOC_IA64_COPY:                   howto manager.      (line 2162)
13066* BFD_RELOC_IA64_DIR32LSB:               howto manager.      (line 2107)
13067* BFD_RELOC_IA64_DIR32MSB:               howto manager.      (line 2106)
13068* BFD_RELOC_IA64_DIR64LSB:               howto manager.      (line 2109)
13069* BFD_RELOC_IA64_DIR64MSB:               howto manager.      (line 2108)
13070* BFD_RELOC_IA64_DTPMOD64LSB:            howto manager.      (line 2172)
13071* BFD_RELOC_IA64_DTPMOD64MSB:            howto manager.      (line 2171)
13072* BFD_RELOC_IA64_DTPREL14:               howto manager.      (line 2174)
13073* BFD_RELOC_IA64_DTPREL22:               howto manager.      (line 2175)
13074* BFD_RELOC_IA64_DTPREL32LSB:            howto manager.      (line 2178)
13075* BFD_RELOC_IA64_DTPREL32MSB:            howto manager.      (line 2177)
13076* BFD_RELOC_IA64_DTPREL64I:              howto manager.      (line 2176)
13077* BFD_RELOC_IA64_DTPREL64LSB:            howto manager.      (line 2180)
13078* BFD_RELOC_IA64_DTPREL64MSB:            howto manager.      (line 2179)
13079* BFD_RELOC_IA64_FPTR32LSB:              howto manager.      (line 2124)
13080* BFD_RELOC_IA64_FPTR32MSB:              howto manager.      (line 2123)
13081* BFD_RELOC_IA64_FPTR64I:                howto manager.      (line 2122)
13082* BFD_RELOC_IA64_FPTR64LSB:              howto manager.      (line 2126)
13083* BFD_RELOC_IA64_FPTR64MSB:              howto manager.      (line 2125)
13084* BFD_RELOC_IA64_GPREL22:                howto manager.      (line 2110)
13085* BFD_RELOC_IA64_GPREL32LSB:             howto manager.      (line 2113)
13086* BFD_RELOC_IA64_GPREL32MSB:             howto manager.      (line 2112)
13087* BFD_RELOC_IA64_GPREL64I:               howto manager.      (line 2111)
13088* BFD_RELOC_IA64_GPREL64LSB:             howto manager.      (line 2115)
13089* BFD_RELOC_IA64_GPREL64MSB:             howto manager.      (line 2114)
13090* BFD_RELOC_IA64_IMM14:                  howto manager.      (line 2103)
13091* BFD_RELOC_IA64_IMM22:                  howto manager.      (line 2104)
13092* BFD_RELOC_IA64_IMM64:                  howto manager.      (line 2105)
13093* BFD_RELOC_IA64_IPLTLSB:                howto manager.      (line 2161)
13094* BFD_RELOC_IA64_IPLTMSB:                howto manager.      (line 2160)
13095* BFD_RELOC_IA64_LDXMOV:                 howto manager.      (line 2164)
13096* BFD_RELOC_IA64_LTOFF22:                howto manager.      (line 2116)
13097* BFD_RELOC_IA64_LTOFF22X:               howto manager.      (line 2163)
13098* BFD_RELOC_IA64_LTOFF64I:               howto manager.      (line 2117)
13099* BFD_RELOC_IA64_LTOFF_DTPMOD22:         howto manager.      (line 2173)
13100* BFD_RELOC_IA64_LTOFF_DTPREL22:         howto manager.      (line 2181)
13101* BFD_RELOC_IA64_LTOFF_FPTR22:           howto manager.      (line 2138)
13102* BFD_RELOC_IA64_LTOFF_FPTR32LSB:        howto manager.      (line 2141)
13103* BFD_RELOC_IA64_LTOFF_FPTR32MSB:        howto manager.      (line 2140)
13104* BFD_RELOC_IA64_LTOFF_FPTR64I:          howto manager.      (line 2139)
13105* BFD_RELOC_IA64_LTOFF_FPTR64LSB:        howto manager.      (line 2143)
13106* BFD_RELOC_IA64_LTOFF_FPTR64MSB:        howto manager.      (line 2142)
13107* BFD_RELOC_IA64_LTOFF_TPREL22:          howto manager.      (line 2170)
13108* BFD_RELOC_IA64_LTV32LSB:               howto manager.      (line 2157)
13109* BFD_RELOC_IA64_LTV32MSB:               howto manager.      (line 2156)
13110* BFD_RELOC_IA64_LTV64LSB:               howto manager.      (line 2159)
13111* BFD_RELOC_IA64_LTV64MSB:               howto manager.      (line 2158)
13112* BFD_RELOC_IA64_PCREL21B:               howto manager.      (line 2127)
13113* BFD_RELOC_IA64_PCREL21BI:              howto manager.      (line 2128)
13114* BFD_RELOC_IA64_PCREL21F:               howto manager.      (line 2130)
13115* BFD_RELOC_IA64_PCREL21M:               howto manager.      (line 2129)
13116* BFD_RELOC_IA64_PCREL22:                howto manager.      (line 2131)
13117* BFD_RELOC_IA64_PCREL32LSB:             howto manager.      (line 2135)
13118* BFD_RELOC_IA64_PCREL32MSB:             howto manager.      (line 2134)
13119* BFD_RELOC_IA64_PCREL60B:               howto manager.      (line 2132)
13120* BFD_RELOC_IA64_PCREL64I:               howto manager.      (line 2133)
13121* BFD_RELOC_IA64_PCREL64LSB:             howto manager.      (line 2137)
13122* BFD_RELOC_IA64_PCREL64MSB:             howto manager.      (line 2136)
13123* BFD_RELOC_IA64_PLTOFF22:               howto manager.      (line 2118)
13124* BFD_RELOC_IA64_PLTOFF64I:              howto manager.      (line 2119)
13125* BFD_RELOC_IA64_PLTOFF64LSB:            howto manager.      (line 2121)
13126* BFD_RELOC_IA64_PLTOFF64MSB:            howto manager.      (line 2120)
13127* BFD_RELOC_IA64_REL32LSB:               howto manager.      (line 2153)
13128* BFD_RELOC_IA64_REL32MSB:               howto manager.      (line 2152)
13129* BFD_RELOC_IA64_REL64LSB:               howto manager.      (line 2155)
13130* BFD_RELOC_IA64_REL64MSB:               howto manager.      (line 2154)
13131* BFD_RELOC_IA64_SECREL32LSB:            howto manager.      (line 2149)
13132* BFD_RELOC_IA64_SECREL32MSB:            howto manager.      (line 2148)
13133* BFD_RELOC_IA64_SECREL64LSB:            howto manager.      (line 2151)
13134* BFD_RELOC_IA64_SECREL64MSB:            howto manager.      (line 2150)
13135* BFD_RELOC_IA64_SEGREL32LSB:            howto manager.      (line 2145)
13136* BFD_RELOC_IA64_SEGREL32MSB:            howto manager.      (line 2144)
13137* BFD_RELOC_IA64_SEGREL64LSB:            howto manager.      (line 2147)
13138* BFD_RELOC_IA64_SEGREL64MSB:            howto manager.      (line 2146)
13139* BFD_RELOC_IA64_TPREL14:                howto manager.      (line 2165)
13140* BFD_RELOC_IA64_TPREL22:                howto manager.      (line 2166)
13141* BFD_RELOC_IA64_TPREL64I:               howto manager.      (line 2167)
13142* BFD_RELOC_IA64_TPREL64LSB:             howto manager.      (line 2169)
13143* BFD_RELOC_IA64_TPREL64MSB:             howto manager.      (line 2168)
13144* BFD_RELOC_IP2K_ADDR16CJP:              howto manager.      (line 2064)
13145* BFD_RELOC_IP2K_BANK:                   howto manager.      (line 2062)
13146* BFD_RELOC_IP2K_EX8DATA:                howto manager.      (line 2070)
13147* BFD_RELOC_IP2K_FR9:                    howto manager.      (line 2060)
13148* BFD_RELOC_IP2K_FR_OFFSET:              howto manager.      (line 2079)
13149* BFD_RELOC_IP2K_HI8DATA:                howto manager.      (line 2069)
13150* BFD_RELOC_IP2K_HI8INSN:                howto manager.      (line 2073)
13151* BFD_RELOC_IP2K_LO8DATA:                howto manager.      (line 2068)
13152* BFD_RELOC_IP2K_LO8INSN:                howto manager.      (line 2072)
13153* BFD_RELOC_IP2K_PAGE3:                  howto manager.      (line 2066)
13154* BFD_RELOC_IP2K_PC_SKIP:                howto manager.      (line 2075)
13155* BFD_RELOC_IP2K_TEXT:                   howto manager.      (line 2077)
13156* BFD_RELOC_IQ2000_OFFSET_16:            howto manager.      (line 2543)
13157* BFD_RELOC_IQ2000_OFFSET_21:            howto manager.      (line 2544)
13158* BFD_RELOC_IQ2000_UHI16:                howto manager.      (line 2545)
13159* BFD_RELOC_LM32_16_GOT:                 howto manager.      (line 2647)
13160* BFD_RELOC_LM32_BRANCH:                 howto manager.      (line 2646)
13161* BFD_RELOC_LM32_CALL:                   howto manager.      (line 2645)
13162* BFD_RELOC_LM32_COPY:                   howto manager.      (line 2650)
13163* BFD_RELOC_LM32_GLOB_DAT:               howto manager.      (line 2651)
13164* BFD_RELOC_LM32_GOTOFF_HI16:            howto manager.      (line 2648)
13165* BFD_RELOC_LM32_GOTOFF_LO16:            howto manager.      (line 2649)
13166* BFD_RELOC_LM32_JMP_SLOT:               howto manager.      (line 2652)
13167* BFD_RELOC_LM32_RELATIVE:               howto manager.      (line 2653)
13168* BFD_RELOC_LO10:                        howto manager.      (line  109)
13169* BFD_RELOC_LO16:                        howto manager.      (line  319)
13170* BFD_RELOC_LO16_BASEREL:                howto manager.      (line   91)
13171* BFD_RELOC_LO16_GOTOFF:                 howto manager.      (line   50)
13172* BFD_RELOC_LO16_PCREL:                  howto manager.      (line  325)
13173* BFD_RELOC_LO16_PLTOFF:                 howto manager.      (line   62)
13174* BFD_RELOC_M32C_HI8:                    howto manager.      (line 1230)
13175* BFD_RELOC_M32C_RL_1ADDR:               howto manager.      (line 1232)
13176* BFD_RELOC_M32C_RL_2ADDR:               howto manager.      (line 1233)
13177* BFD_RELOC_M32C_RL_JUMP:                howto manager.      (line 1231)
13178* BFD_RELOC_M32R_10_PCREL:               howto manager.      (line 1238)
13179* BFD_RELOC_M32R_18_PCREL:               howto manager.      (line 1241)
13180* BFD_RELOC_M32R_24:                     howto manager.      (line 1235)
13181* BFD_RELOC_M32R_26_PCREL:               howto manager.      (line 1243)
13182* BFD_RELOC_M32R_26_PLTREL:              howto manager.      (line 1257)
13183* BFD_RELOC_M32R_COPY:                   howto manager.      (line 1258)
13184* BFD_RELOC_M32R_GLOB_DAT:               howto manager.      (line 1259)
13185* BFD_RELOC_M32R_GOT16_HI_SLO:           howto manager.      (line 1268)
13186* BFD_RELOC_M32R_GOT16_HI_ULO:           howto manager.      (line 1267)
13187* BFD_RELOC_M32R_GOT16_LO:               howto manager.      (line 1269)
13188* BFD_RELOC_M32R_GOT24:                  howto manager.      (line 1256)
13189* BFD_RELOC_M32R_GOTOFF:                 howto manager.      (line 1262)
13190* BFD_RELOC_M32R_GOTOFF_HI_SLO:          howto manager.      (line 1264)
13191* BFD_RELOC_M32R_GOTOFF_HI_ULO:          howto manager.      (line 1263)
13192* BFD_RELOC_M32R_GOTOFF_LO:              howto manager.      (line 1265)
13193* BFD_RELOC_M32R_GOTPC24:                howto manager.      (line 1266)
13194* BFD_RELOC_M32R_GOTPC_HI_SLO:           howto manager.      (line 1271)
13195* BFD_RELOC_M32R_GOTPC_HI_ULO:           howto manager.      (line 1270)
13196* BFD_RELOC_M32R_GOTPC_LO:               howto manager.      (line 1272)
13197* BFD_RELOC_M32R_HI16_SLO:               howto manager.      (line 1248)
13198* BFD_RELOC_M32R_HI16_ULO:               howto manager.      (line 1245)
13199* BFD_RELOC_M32R_JMP_SLOT:               howto manager.      (line 1260)
13200* BFD_RELOC_M32R_LO16:                   howto manager.      (line 1251)
13201* BFD_RELOC_M32R_RELATIVE:               howto manager.      (line 1261)
13202* BFD_RELOC_M32R_SDA16:                  howto manager.      (line 1253)
13203* BFD_RELOC_M68HC11_24:                  howto manager.      (line 2209)
13204* BFD_RELOC_M68HC11_3B:                  howto manager.      (line 2189)
13205* BFD_RELOC_M68HC11_HI8:                 howto manager.      (line 2183)
13206* BFD_RELOC_M68HC11_LO16:                howto manager.      (line 2200)
13207* BFD_RELOC_M68HC11_LO8:                 howto manager.      (line 2186)
13208* BFD_RELOC_M68HC11_PAGE:                howto manager.      (line 2205)
13209* BFD_RELOC_M68HC11_RL_GROUP:            howto manager.      (line 2196)
13210* BFD_RELOC_M68HC11_RL_JUMP:             howto manager.      (line 2191)
13211* BFD_RELOC_M68HC12_10_PCREL:            howto manager.      (line 2252)
13212* BFD_RELOC_M68HC12_16B:                 howto manager.      (line 2248)
13213* BFD_RELOC_M68HC12_5B:                  howto manager.      (line 2214)
13214* BFD_RELOC_M68HC12_9B:                  howto manager.      (line 2246)
13215* BFD_RELOC_M68HC12_9_PCREL:             howto manager.      (line 2250)
13216* BFD_RELOC_M68HC12_HI8XG:               howto manager.      (line 2257)
13217* BFD_RELOC_M68HC12_LO8XG:               howto manager.      (line 2254)
13218* BFD_RELOC_MACH_O_ARM64_ADDEND:         howto manager.      (line 2683)
13219* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21: howto manager.     (line 2685)
13220* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12: howto manager.  (line 2687)
13221* BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT: howto manager.      (line 2689)
13222* BFD_RELOC_MACH_O_LOCAL_SECTDIFF:       howto manager.      (line 2658)
13223* BFD_RELOC_MACH_O_PAIR:                 howto manager.      (line 2660)
13224* BFD_RELOC_MACH_O_SECTDIFF:             howto manager.      (line 2655)
13225* BFD_RELOC_MACH_O_SUBTRACTOR32:         howto manager.      (line 2662)
13226* BFD_RELOC_MACH_O_SUBTRACTOR64:         howto manager.      (line 2664)
13227* BFD_RELOC_MACH_O_X86_64_BRANCH32:      howto manager.      (line 2666)
13228* BFD_RELOC_MACH_O_X86_64_BRANCH8:       howto manager.      (line 2667)
13229* BFD_RELOC_MACH_O_X86_64_GOT:           howto manager.      (line 2670)
13230* BFD_RELOC_MACH_O_X86_64_GOT_LOAD:      howto manager.      (line 2672)
13231* BFD_RELOC_MACH_O_X86_64_PCREL32_1:     howto manager.      (line 2675)
13232* BFD_RELOC_MACH_O_X86_64_PCREL32_2:     howto manager.      (line 2677)
13233* BFD_RELOC_MACH_O_X86_64_PCREL32_4:     howto manager.      (line 2679)
13234* BFD_RELOC_MACH_O_X86_64_TLV:           howto manager.      (line 2681)
13235* BFD_RELOC_MCORE_PCREL_32:              howto manager.      (line 1627)
13236* BFD_RELOC_MCORE_PCREL_IMM11BY2:        howto manager.      (line 1625)
13237* BFD_RELOC_MCORE_PCREL_IMM4BY2:         howto manager.      (line 1626)
13238* BFD_RELOC_MCORE_PCREL_IMM8BY4:         howto manager.      (line 1624)
13239* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2:    howto manager.      (line 1628)
13240* BFD_RELOC_MCORE_RVA:                   howto manager.      (line 1629)
13241* BFD_RELOC_MEP_16:                      howto manager.      (line 1632)
13242* BFD_RELOC_MEP_32:                      howto manager.      (line 1633)
13243* BFD_RELOC_MEP_8:                       howto manager.      (line 1631)
13244* BFD_RELOC_MEP_ADDR24A4:                howto manager.      (line 1648)
13245* BFD_RELOC_MEP_GNU_VTENTRY:             howto manager.      (line 1650)
13246* BFD_RELOC_MEP_GNU_VTINHERIT:           howto manager.      (line 1649)
13247* BFD_RELOC_MEP_GPREL:                   howto manager.      (line 1642)
13248* BFD_RELOC_MEP_HI16S:                   howto manager.      (line 1641)
13249* BFD_RELOC_MEP_HI16U:                   howto manager.      (line 1640)
13250* BFD_RELOC_MEP_LOW16:                   howto manager.      (line 1639)
13251* BFD_RELOC_MEP_PCABS24A2:               howto manager.      (line 1638)
13252* BFD_RELOC_MEP_PCREL12A2:               howto manager.      (line 1635)
13253* BFD_RELOC_MEP_PCREL17A2:               howto manager.      (line 1636)
13254* BFD_RELOC_MEP_PCREL24A2:               howto manager.      (line 1637)
13255* BFD_RELOC_MEP_PCREL8A2:                howto manager.      (line 1634)
13256* BFD_RELOC_MEP_TPREL:                   howto manager.      (line 1643)
13257* BFD_RELOC_MEP_TPREL7:                  howto manager.      (line 1644)
13258* BFD_RELOC_MEP_TPREL7A2:                howto manager.      (line 1645)
13259* BFD_RELOC_MEP_TPREL7A4:                howto manager.      (line 1646)
13260* BFD_RELOC_MEP_UIMM24:                  howto manager.      (line 1647)
13261* BFD_RELOC_METAG_COPY:                  howto manager.      (line 1671)
13262* BFD_RELOC_METAG_GETSETOFF:             howto manager.      (line 1655)
13263* BFD_RELOC_METAG_GETSET_GOT:            howto manager.      (line 1663)
13264* BFD_RELOC_METAG_GETSET_GOTOFF:         howto manager.      (line 1662)
13265* BFD_RELOC_METAG_GLOB_DAT:              howto manager.      (line 1674)
13266* BFD_RELOC_METAG_GOTOFF:                howto manager.      (line 1669)
13267* BFD_RELOC_METAG_HI16_GOTOFF:           howto manager.      (line 1660)
13268* BFD_RELOC_METAG_HI16_GOTPC:            howto manager.      (line 1664)
13269* BFD_RELOC_METAG_HI16_PLT:              howto manager.      (line 1666)
13270* BFD_RELOC_METAG_HIADDR16:              howto manager.      (line 1652)
13271* BFD_RELOC_METAG_HIOG:                  howto manager.      (line 1656)
13272* BFD_RELOC_METAG_JMP_SLOT:              howto manager.      (line 1672)
13273* BFD_RELOC_METAG_LO16_GOTOFF:           howto manager.      (line 1661)
13274* BFD_RELOC_METAG_LO16_GOTPC:            howto manager.      (line 1665)
13275* BFD_RELOC_METAG_LO16_PLT:              howto manager.      (line 1667)
13276* BFD_RELOC_METAG_LOADDR16:              howto manager.      (line 1653)
13277* BFD_RELOC_METAG_LOOG:                  howto manager.      (line 1657)
13278* BFD_RELOC_METAG_PLT:                   howto manager.      (line 1670)
13279* BFD_RELOC_METAG_REL16:                 howto manager.      (line 1659)
13280* BFD_RELOC_METAG_REL8:                  howto manager.      (line 1658)
13281* BFD_RELOC_METAG_RELATIVE:              howto manager.      (line 1673)
13282* BFD_RELOC_METAG_RELBRANCH:             howto manager.      (line 1654)
13283* BFD_RELOC_METAG_RELBRANCH_PLT:         howto manager.      (line 1668)
13284* BFD_RELOC_METAG_TLS_DTPMOD:            howto manager.      (line 1685)
13285* BFD_RELOC_METAG_TLS_DTPOFF:            howto manager.      (line 1686)
13286* BFD_RELOC_METAG_TLS_GD:                howto manager.      (line 1675)
13287* BFD_RELOC_METAG_TLS_IE:                howto manager.      (line 1680)
13288* BFD_RELOC_METAG_TLS_IENONPIC:          howto manager.      (line 1681)
13289* BFD_RELOC_METAG_TLS_IENONPIC_HI16:     howto manager.      (line 1682)
13290* BFD_RELOC_METAG_TLS_IENONPIC_LO16:     howto manager.      (line 1683)
13291* BFD_RELOC_METAG_TLS_LDM:               howto manager.      (line 1676)
13292* BFD_RELOC_METAG_TLS_LDO:               howto manager.      (line 1679)
13293* BFD_RELOC_METAG_TLS_LDO_HI16:          howto manager.      (line 1677)
13294* BFD_RELOC_METAG_TLS_LDO_LO16:          howto manager.      (line 1678)
13295* BFD_RELOC_METAG_TLS_LE:                howto manager.      (line 1687)
13296* BFD_RELOC_METAG_TLS_LE_HI16:           howto manager.      (line 1688)
13297* BFD_RELOC_METAG_TLS_LE_LO16:           howto manager.      (line 1689)
13298* BFD_RELOC_METAG_TLS_TPOFF:             howto manager.      (line 1684)
13299* BFD_RELOC_MICROBLAZE_32_GOTOFF:        howto manager.      (line 2725)
13300* BFD_RELOC_MICROBLAZE_32_LO:            howto manager.      (line 2691)
13301* BFD_RELOC_MICROBLAZE_32_LO_PCREL:      howto manager.      (line 2694)
13302* BFD_RELOC_MICROBLAZE_32_ROSDA:         howto manager.      (line 2697)
13303* BFD_RELOC_MICROBLAZE_32_RWSDA:         howto manager.      (line 2700)
13304* BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM:    howto manager.      (line 2703)
13305* BFD_RELOC_MICROBLAZE_32_TLSDTPMOD:     howto manager.      (line 2741)
13306* BFD_RELOC_MICROBLAZE_32_TLSDTPREL:     howto manager.      (line 2743)
13307* BFD_RELOC_MICROBLAZE_64_GOT:           howto manager.      (line 2714)
13308* BFD_RELOC_MICROBLAZE_64_GOTOFF:        howto manager.      (line 2721)
13309* BFD_RELOC_MICROBLAZE_64_GOTPC:         howto manager.      (line 2710)
13310* BFD_RELOC_MICROBLAZE_64_NONE:          howto manager.      (line 2706)
13311* BFD_RELOC_MICROBLAZE_64_PLT:           howto manager.      (line 2717)
13312* BFD_RELOC_MICROBLAZE_64_TEXTPCREL:     howto manager.      (line 2754)
13313* BFD_RELOC_MICROBLAZE_64_TEXTREL:       howto manager.      (line 2758)
13314* BFD_RELOC_MICROBLAZE_64_TLS:           howto manager.      (line 2731)
13315* BFD_RELOC_MICROBLAZE_64_TLSDTPREL:     howto manager.      (line 2745)
13316* BFD_RELOC_MICROBLAZE_64_TLSGD:         howto manager.      (line 2733)
13317* BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL:   howto manager.      (line 2748)
13318* BFD_RELOC_MICROBLAZE_64_TLSLD:         howto manager.      (line 2737)
13319* BFD_RELOC_MICROBLAZE_64_TLSTPREL:      howto manager.      (line 2751)
13320* BFD_RELOC_MICROBLAZE_COPY:             howto manager.      (line 2728)
13321* BFD_RELOC_MICROMIPS_10_PCREL_S1:       howto manager.      (line  352)
13322* BFD_RELOC_MICROMIPS_16_PCREL_S1:       howto manager.      (line  353)
13323* BFD_RELOC_MICROMIPS_7_PCREL_S1:        howto manager.      (line  351)
13324* BFD_RELOC_MICROMIPS_CALL16:            howto manager.      (line  370)
13325* BFD_RELOC_MICROMIPS_CALL_HI16:         howto manager.      (line  376)
13326* BFD_RELOC_MICROMIPS_CALL_LO16:         howto manager.      (line  378)
13327* BFD_RELOC_MICROMIPS_GOT16:             howto manager.      (line  368)
13328* BFD_RELOC_MICROMIPS_GOT_DISP:          howto manager.      (line  386)
13329* BFD_RELOC_MICROMIPS_GOT_HI16:          howto manager.      (line  372)
13330* BFD_RELOC_MICROMIPS_GOT_LO16:          howto manager.      (line  374)
13331* BFD_RELOC_MICROMIPS_GOT_OFST:          howto manager.      (line  384)
13332* BFD_RELOC_MICROMIPS_GOT_PAGE:          howto manager.      (line  382)
13333* BFD_RELOC_MICROMIPS_GPREL16:           howto manager.      (line  362)
13334* BFD_RELOC_MICROMIPS_HI16:              howto manager.      (line  363)
13335* BFD_RELOC_MICROMIPS_HI16_S:            howto manager.      (line  364)
13336* BFD_RELOC_MICROMIPS_HIGHER:            howto manager.      (line  395)
13337* BFD_RELOC_MICROMIPS_HIGHEST:           howto manager.      (line  393)
13338* BFD_RELOC_MICROMIPS_JALR:              howto manager.      (line  401)
13339* BFD_RELOC_MICROMIPS_JMP:               howto manager.      (line  306)
13340* BFD_RELOC_MICROMIPS_LITERAL:           howto manager.      (line  349)
13341* BFD_RELOC_MICROMIPS_LO16:              howto manager.      (line  365)
13342* BFD_RELOC_MICROMIPS_SCN_DISP:          howto manager.      (line  397)
13343* BFD_RELOC_MICROMIPS_SUB:               howto manager.      (line  380)
13344* BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16:   howto manager.      (line  411)
13345* BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16:   howto manager.      (line  413)
13346* BFD_RELOC_MICROMIPS_TLS_GD:            howto manager.      (line  407)
13347* BFD_RELOC_MICROMIPS_TLS_GOTTPREL:      howto manager.      (line  415)
13348* BFD_RELOC_MICROMIPS_TLS_LDM:           howto manager.      (line  409)
13349* BFD_RELOC_MICROMIPS_TLS_TPREL_HI16:    howto manager.      (line  419)
13350* BFD_RELOC_MICROMIPS_TLS_TPREL_LO16:    howto manager.      (line  421)
13351* BFD_RELOC_MIPS16_16_PCREL_S1:          howto manager.      (line  355)
13352* BFD_RELOC_MIPS16_CALL16:               howto manager.      (line  328)
13353* BFD_RELOC_MIPS16_GOT16:                howto manager.      (line  327)
13354* BFD_RELOC_MIPS16_GPREL:                howto manager.      (line  310)
13355* BFD_RELOC_MIPS16_HI16:                 howto manager.      (line  331)
13356* BFD_RELOC_MIPS16_HI16_S:               howto manager.      (line  333)
13357* BFD_RELOC_MIPS16_JMP:                  howto manager.      (line  308)
13358* BFD_RELOC_MIPS16_LO16:                 howto manager.      (line  338)
13359* BFD_RELOC_MIPS16_TLS_DTPREL_HI16:      howto manager.      (line  342)
13360* BFD_RELOC_MIPS16_TLS_DTPREL_LO16:      howto manager.      (line  343)
13361* BFD_RELOC_MIPS16_TLS_GD:               howto manager.      (line  340)
13362* BFD_RELOC_MIPS16_TLS_GOTTPREL:         howto manager.      (line  344)
13363* BFD_RELOC_MIPS16_TLS_LDM:              howto manager.      (line  341)
13364* BFD_RELOC_MIPS16_TLS_TPREL_HI16:       howto manager.      (line  345)
13365* BFD_RELOC_MIPS16_TLS_TPREL_LO16:       howto manager.      (line  346)
13366* BFD_RELOC_MIPS_18_PCREL_S3:            howto manager.      (line  359)
13367* BFD_RELOC_MIPS_19_PCREL_S2:            howto manager.      (line  360)
13368* BFD_RELOC_MIPS_21_PCREL_S2:            howto manager.      (line  357)
13369* BFD_RELOC_MIPS_26_PCREL_S2:            howto manager.      (line  358)
13370* BFD_RELOC_MIPS_CALL16:                 howto manager.      (line  369)
13371* BFD_RELOC_MIPS_CALL_HI16:              howto manager.      (line  375)
13372* BFD_RELOC_MIPS_CALL_LO16:              howto manager.      (line  377)
13373* BFD_RELOC_MIPS_COPY:                   howto manager.      (line  424)
13374* BFD_RELOC_MIPS_DELETE:                 howto manager.      (line  391)
13375* BFD_RELOC_MIPS_EH:                     howto manager.      (line  422)
13376* BFD_RELOC_MIPS_GOT16:                  howto manager.      (line  367)
13377* BFD_RELOC_MIPS_GOT_DISP:               howto manager.      (line  385)
13378* BFD_RELOC_MIPS_GOT_HI16:               howto manager.      (line  371)
13379* BFD_RELOC_MIPS_GOT_LO16:               howto manager.      (line  373)
13380* BFD_RELOC_MIPS_GOT_OFST:               howto manager.      (line  383)
13381* BFD_RELOC_MIPS_GOT_PAGE:               howto manager.      (line  381)
13382* BFD_RELOC_MIPS_HIGHER:                 howto manager.      (line  394)
13383* BFD_RELOC_MIPS_HIGHEST:                howto manager.      (line  392)
13384* BFD_RELOC_MIPS_INSERT_A:               howto manager.      (line  389)
13385* BFD_RELOC_MIPS_INSERT_B:               howto manager.      (line  390)
13386* BFD_RELOC_MIPS_JALR:                   howto manager.      (line  400)
13387* BFD_RELOC_MIPS_JMP:                    howto manager.      (line  305)
13388* BFD_RELOC_MIPS_JUMP_SLOT:              howto manager.      (line  425)
13389* BFD_RELOC_MIPS_LITERAL:                howto manager.      (line  348)
13390* BFD_RELOC_MIPS_REL16:                  howto manager.      (line  398)
13391* BFD_RELOC_MIPS_RELGOT:                 howto manager.      (line  399)
13392* BFD_RELOC_MIPS_SCN_DISP:               howto manager.      (line  396)
13393* BFD_RELOC_MIPS_SHIFT5:                 howto manager.      (line  387)
13394* BFD_RELOC_MIPS_SHIFT6:                 howto manager.      (line  388)
13395* BFD_RELOC_MIPS_SUB:                    howto manager.      (line  379)
13396* BFD_RELOC_MIPS_TLS_DTPMOD32:           howto manager.      (line  402)
13397* BFD_RELOC_MIPS_TLS_DTPMOD64:           howto manager.      (line  404)
13398* BFD_RELOC_MIPS_TLS_DTPREL32:           howto manager.      (line  403)
13399* BFD_RELOC_MIPS_TLS_DTPREL64:           howto manager.      (line  405)
13400* BFD_RELOC_MIPS_TLS_DTPREL_HI16:        howto manager.      (line  410)
13401* BFD_RELOC_MIPS_TLS_DTPREL_LO16:        howto manager.      (line  412)
13402* BFD_RELOC_MIPS_TLS_GD:                 howto manager.      (line  406)
13403* BFD_RELOC_MIPS_TLS_GOTTPREL:           howto manager.      (line  414)
13404* BFD_RELOC_MIPS_TLS_LDM:                howto manager.      (line  408)
13405* BFD_RELOC_MIPS_TLS_TPREL32:            howto manager.      (line  416)
13406* BFD_RELOC_MIPS_TLS_TPREL64:            howto manager.      (line  417)
13407* BFD_RELOC_MIPS_TLS_TPREL_HI16:         howto manager.      (line  418)
13408* BFD_RELOC_MIPS_TLS_TPREL_LO16:         howto manager.      (line  420)
13409* BFD_RELOC_MMIX_ADDR19:                 howto manager.      (line 1713)
13410* BFD_RELOC_MMIX_ADDR27:                 howto manager.      (line 1716)
13411* BFD_RELOC_MMIX_BASE_PLUS_OFFSET:       howto manager.      (line 1725)
13412* BFD_RELOC_MMIX_CBRANCH:                howto manager.      (line 1696)
13413* BFD_RELOC_MMIX_CBRANCH_1:              howto manager.      (line 1698)
13414* BFD_RELOC_MMIX_CBRANCH_2:              howto manager.      (line 1699)
13415* BFD_RELOC_MMIX_CBRANCH_3:              howto manager.      (line 1700)
13416* BFD_RELOC_MMIX_CBRANCH_J:              howto manager.      (line 1697)
13417* BFD_RELOC_MMIX_GETA:                   howto manager.      (line 1691)
13418* BFD_RELOC_MMIX_GETA_1:                 howto manager.      (line 1692)
13419* BFD_RELOC_MMIX_GETA_2:                 howto manager.      (line 1693)
13420* BFD_RELOC_MMIX_GETA_3:                 howto manager.      (line 1694)
13421* BFD_RELOC_MMIX_JMP:                    howto manager.      (line 1708)
13422* BFD_RELOC_MMIX_JMP_1:                  howto manager.      (line 1709)
13423* BFD_RELOC_MMIX_JMP_2:                  howto manager.      (line 1710)
13424* BFD_RELOC_MMIX_JMP_3:                  howto manager.      (line 1711)
13425* BFD_RELOC_MMIX_LOCAL:                  howto manager.      (line 1728)
13426* BFD_RELOC_MMIX_PUSHJ:                  howto manager.      (line 1702)
13427* BFD_RELOC_MMIX_PUSHJ_1:                howto manager.      (line 1703)
13428* BFD_RELOC_MMIX_PUSHJ_2:                howto manager.      (line 1704)
13429* BFD_RELOC_MMIX_PUSHJ_3:                howto manager.      (line 1705)
13430* BFD_RELOC_MMIX_PUSHJ_STUBBABLE:        howto manager.      (line 1706)
13431* BFD_RELOC_MMIX_REG:                    howto manager.      (line 1722)
13432* BFD_RELOC_MMIX_REG_OR_BYTE:            howto manager.      (line 1719)
13433* BFD_RELOC_MN10300_16_PCREL:            howto manager.      (line  518)
13434* BFD_RELOC_MN10300_32_PCREL:            howto manager.      (line  515)
13435* BFD_RELOC_MN10300_ALIGN:               howto manager.      (line  502)
13436* BFD_RELOC_MN10300_COPY:                howto manager.      (line  490)
13437* BFD_RELOC_MN10300_GLOB_DAT:            howto manager.      (line  492)
13438* BFD_RELOC_MN10300_GOT16:               howto manager.      (line  487)
13439* BFD_RELOC_MN10300_GOT24:               howto manager.      (line  484)
13440* BFD_RELOC_MN10300_GOT32:               howto manager.      (line  481)
13441* BFD_RELOC_MN10300_GOTOFF24:            howto manager.      (line  479)
13442* BFD_RELOC_MN10300_JMP_SLOT:            howto manager.      (line  494)
13443* BFD_RELOC_MN10300_RELATIVE:            howto manager.      (line  496)
13444* BFD_RELOC_MN10300_SYM_DIFF:            howto manager.      (line  498)
13445* BFD_RELOC_MN10300_TLS_DTPMOD:          howto manager.      (line  511)
13446* BFD_RELOC_MN10300_TLS_DTPOFF:          howto manager.      (line  512)
13447* BFD_RELOC_MN10300_TLS_GD:              howto manager.      (line  505)
13448* BFD_RELOC_MN10300_TLS_GOTIE:           howto manager.      (line  508)
13449* BFD_RELOC_MN10300_TLS_IE:              howto manager.      (line  509)
13450* BFD_RELOC_MN10300_TLS_LD:              howto manager.      (line  506)
13451* BFD_RELOC_MN10300_TLS_LDO:             howto manager.      (line  507)
13452* BFD_RELOC_MN10300_TLS_LE:              howto manager.      (line  510)
13453* BFD_RELOC_MN10300_TLS_TPOFF:           howto manager.      (line  513)
13454* BFD_RELOC_MOXIE_10_PCREL:              howto manager.      (line  427)
13455* BFD_RELOC_MSP430X_ABS16:               howto manager.      (line 2457)
13456* BFD_RELOC_MSP430X_ABS20_ADR_DST:       howto manager.      (line 2454)
13457* BFD_RELOC_MSP430X_ABS20_ADR_SRC:       howto manager.      (line 2453)
13458* BFD_RELOC_MSP430X_ABS20_EXT_DST:       howto manager.      (line 2451)
13459* BFD_RELOC_MSP430X_ABS20_EXT_ODST:      howto manager.      (line 2452)
13460* BFD_RELOC_MSP430X_ABS20_EXT_SRC:       howto manager.      (line 2450)
13461* BFD_RELOC_MSP430X_PCR16:               howto manager.      (line 2455)
13462* BFD_RELOC_MSP430X_PCR20_CALL:          howto manager.      (line 2456)
13463* BFD_RELOC_MSP430X_PCR20_EXT_DST:       howto manager.      (line 2448)
13464* BFD_RELOC_MSP430X_PCR20_EXT_ODST:      howto manager.      (line 2449)
13465* BFD_RELOC_MSP430X_PCR20_EXT_SRC:       howto manager.      (line 2447)
13466* BFD_RELOC_MSP430_10_PCREL:             howto manager.      (line 2439)
13467* BFD_RELOC_MSP430_16:                   howto manager.      (line 2441)
13468* BFD_RELOC_MSP430_16_BYTE:              howto manager.      (line 2443)
13469* BFD_RELOC_MSP430_16_PCREL:             howto manager.      (line 2440)
13470* BFD_RELOC_MSP430_16_PCREL_BYTE:        howto manager.      (line 2442)
13471* BFD_RELOC_MSP430_2X_PCREL:             howto manager.      (line 2444)
13472* BFD_RELOC_MSP430_ABS8:                 howto manager.      (line 2446)
13473* BFD_RELOC_MSP430_ABS_HI16:             howto manager.      (line 2458)
13474* BFD_RELOC_MSP430_PREL31:               howto manager.      (line 2459)
13475* BFD_RELOC_MSP430_RL_PCREL:             howto manager.      (line 2445)
13476* BFD_RELOC_MSP430_SYM_DIFF:             howto manager.      (line 2460)
13477* BFD_RELOC_MT_GNU_VTENTRY:              howto manager.      (line 2435)
13478* BFD_RELOC_MT_GNU_VTINHERIT:            howto manager.      (line 2433)
13479* BFD_RELOC_MT_HI16:                     howto manager.      (line 2429)
13480* BFD_RELOC_MT_LO16:                     howto manager.      (line 2431)
13481* BFD_RELOC_MT_PC16:                     howto manager.      (line 2427)
13482* BFD_RELOC_MT_PCINSN8:                  howto manager.      (line 2437)
13483* BFD_RELOC_NDS32_10IFCU_PCREL:          howto manager.      (line 1424)
13484* BFD_RELOC_NDS32_10_UPCREL:             howto manager.      (line 1395)
13485* BFD_RELOC_NDS32_15_FIXED:              howto manager.      (line 1356)
13486* BFD_RELOC_NDS32_15_PCREL:              howto manager.      (line 1282)
13487* BFD_RELOC_NDS32_17IFC_PCREL:           howto manager.      (line 1423)
13488* BFD_RELOC_NDS32_17_FIXED:              howto manager.      (line 1357)
13489* BFD_RELOC_NDS32_17_PCREL:              howto manager.      (line 1284)
13490* BFD_RELOC_NDS32_20:                    howto manager.      (line 1274)
13491* BFD_RELOC_NDS32_25_ABS:                howto manager.      (line 1419)
13492* BFD_RELOC_NDS32_25_FIXED:              howto manager.      (line 1358)
13493* BFD_RELOC_NDS32_25_PCREL:              howto manager.      (line 1286)
13494* BFD_RELOC_NDS32_25_PLTREL:             howto manager.      (line 1332)
13495* BFD_RELOC_NDS32_5:                     howto manager.      (line 1393)
13496* BFD_RELOC_NDS32_9_FIXED:               howto manager.      (line 1355)
13497* BFD_RELOC_NDS32_9_PCREL:               howto manager.      (line 1276)
13498* BFD_RELOC_NDS32_9_PLTREL:              howto manager.      (line 1331)
13499* BFD_RELOC_NDS32_COPY:                  howto manager.      (line 1333)
13500* BFD_RELOC_NDS32_DATA:                  howto manager.      (line 1421)
13501* BFD_RELOC_NDS32_DIFF16:                howto manager.      (line 1414)
13502* BFD_RELOC_NDS32_DIFF32:                howto manager.      (line 1415)
13503* BFD_RELOC_NDS32_DIFF8:                 howto manager.      (line 1413)
13504* BFD_RELOC_NDS32_DIFF_ULEB128:          howto manager.      (line 1416)
13505* BFD_RELOC_NDS32_DWARF2_LEB:            howto manager.      (line 1379)
13506* BFD_RELOC_NDS32_DWARF2_OP1:            howto manager.      (line 1377)
13507* BFD_RELOC_NDS32_DWARF2_OP2:            howto manager.      (line 1378)
13508* BFD_RELOC_NDS32_EMPTY:                 howto manager.      (line 1417)
13509* BFD_RELOC_NDS32_GLOB_DAT:              howto manager.      (line 1334)
13510* BFD_RELOC_NDS32_GOT15S2:               howto manager.      (line 1390)
13511* BFD_RELOC_NDS32_GOT17S2:               howto manager.      (line 1391)
13512* BFD_RELOC_NDS32_GOT20:                 howto manager.      (line 1330)
13513* BFD_RELOC_NDS32_GOTOFF:                howto manager.      (line 1337)
13514* BFD_RELOC_NDS32_GOTOFF_HI20:           howto manager.      (line 1338)
13515* BFD_RELOC_NDS32_GOTOFF_LO12:           howto manager.      (line 1339)
13516* BFD_RELOC_NDS32_GOTOFF_LO15:           howto manager.      (line 1388)
13517* BFD_RELOC_NDS32_GOTOFF_LO19:           howto manager.      (line 1389)
13518* BFD_RELOC_NDS32_GOTOFF_SUFF:           howto manager.      (line 1402)
13519* BFD_RELOC_NDS32_GOTPC20:               howto manager.      (line 1340)
13520* BFD_RELOC_NDS32_GOTPC_HI20:            howto manager.      (line 1343)
13521* BFD_RELOC_NDS32_GOTPC_LO12:            howto manager.      (line 1344)
13522* BFD_RELOC_NDS32_GOTTPOFF:              howto manager.      (line 1427)
13523* BFD_RELOC_NDS32_GOT_HI20:              howto manager.      (line 1341)
13524* BFD_RELOC_NDS32_GOT_LO12:              howto manager.      (line 1342)
13525* BFD_RELOC_NDS32_GOT_LO15:              howto manager.      (line 1386)
13526* BFD_RELOC_NDS32_GOT_LO19:              howto manager.      (line 1387)
13527* BFD_RELOC_NDS32_GOT_SUFF:              howto manager.      (line 1401)
13528* BFD_RELOC_NDS32_GROUP:                 howto manager.      (line 1453)
13529* BFD_RELOC_NDS32_HI20:                  howto manager.      (line 1288)
13530* BFD_RELOC_NDS32_INSN16:                howto manager.      (line 1346)
13531* BFD_RELOC_NDS32_JMP_SLOT:              howto manager.      (line 1335)
13532* BFD_RELOC_NDS32_LABEL:                 howto manager.      (line 1347)
13533* BFD_RELOC_NDS32_LO12S0:                howto manager.      (line 1300)
13534* BFD_RELOC_NDS32_LO12S0_ORI:            howto manager.      (line 1303)
13535* BFD_RELOC_NDS32_LO12S1:                howto manager.      (line 1297)
13536* BFD_RELOC_NDS32_LO12S2:                howto manager.      (line 1294)
13537* BFD_RELOC_NDS32_LO12S2_DP:             howto manager.      (line 1374)
13538* BFD_RELOC_NDS32_LO12S2_SP:             howto manager.      (line 1375)
13539* BFD_RELOC_NDS32_LO12S3:                howto manager.      (line 1291)
13540* BFD_RELOC_NDS32_LOADSTORE:             howto manager.      (line 1354)
13541* BFD_RELOC_NDS32_LONGCALL1:             howto manager.      (line 1348)
13542* BFD_RELOC_NDS32_LONGCALL2:             howto manager.      (line 1349)
13543* BFD_RELOC_NDS32_LONGCALL3:             howto manager.      (line 1350)
13544* BFD_RELOC_NDS32_LONGCALL4:             howto manager.      (line 1359)
13545* BFD_RELOC_NDS32_LONGCALL5:             howto manager.      (line 1360)
13546* BFD_RELOC_NDS32_LONGCALL6:             howto manager.      (line 1361)
13547* BFD_RELOC_NDS32_LONGJUMP1:             howto manager.      (line 1351)
13548* BFD_RELOC_NDS32_LONGJUMP2:             howto manager.      (line 1352)
13549* BFD_RELOC_NDS32_LONGJUMP3:             howto manager.      (line 1353)
13550* BFD_RELOC_NDS32_LONGJUMP4:             howto manager.      (line 1362)
13551* BFD_RELOC_NDS32_LONGJUMP5:             howto manager.      (line 1363)
13552* BFD_RELOC_NDS32_LONGJUMP6:             howto manager.      (line 1364)
13553* BFD_RELOC_NDS32_LONGJUMP7:             howto manager.      (line 1365)
13554* BFD_RELOC_NDS32_LSI:                   howto manager.      (line 1455)
13555* BFD_RELOC_NDS32_MINUEND:               howto manager.      (line 1411)
13556* BFD_RELOC_NDS32_MULCALL_SUFF:          howto manager.      (line 1404)
13557* BFD_RELOC_NDS32_PLTBLOCK:              howto manager.      (line 1408)
13558* BFD_RELOC_NDS32_PLTREL_HI20:           howto manager.      (line 1367)
13559* BFD_RELOC_NDS32_PLTREL_LO12:           howto manager.      (line 1368)
13560* BFD_RELOC_NDS32_PLT_GOTREL_HI20:       howto manager.      (line 1369)
13561* BFD_RELOC_NDS32_PLT_GOTREL_LO12:       howto manager.      (line 1370)
13562* BFD_RELOC_NDS32_PLT_GOTREL_LO15:       howto manager.      (line 1384)
13563* BFD_RELOC_NDS32_PLT_GOTREL_LO19:       howto manager.      (line 1385)
13564* BFD_RELOC_NDS32_PLT_GOTREL_LO20:       howto manager.      (line 1383)
13565* BFD_RELOC_NDS32_PLT_GOT_SUFF:          howto manager.      (line 1403)
13566* BFD_RELOC_NDS32_PTR:                   howto manager.      (line 1405)
13567* BFD_RELOC_NDS32_PTR_COUNT:             howto manager.      (line 1406)
13568* BFD_RELOC_NDS32_PTR_RESOLVED:          howto manager.      (line 1407)
13569* BFD_RELOC_NDS32_RELATIVE:              howto manager.      (line 1336)
13570* BFD_RELOC_NDS32_RELAX_ENTRY:           howto manager.      (line 1400)
13571* BFD_RELOC_NDS32_RELAX_REGION_BEGIN:    howto manager.      (line 1409)
13572* BFD_RELOC_NDS32_RELAX_REGION_END:      howto manager.      (line 1410)
13573* BFD_RELOC_NDS32_REMOVE:                howto manager.      (line 1452)
13574* BFD_RELOC_NDS32_SDA12S2_DP:            howto manager.      (line 1372)
13575* BFD_RELOC_NDS32_SDA12S2_SP:            howto manager.      (line 1373)
13576* BFD_RELOC_NDS32_SDA15S0:               howto manager.      (line 1315)
13577* BFD_RELOC_NDS32_SDA15S1:               howto manager.      (line 1312)
13578* BFD_RELOC_NDS32_SDA15S2:               howto manager.      (line 1309)
13579* BFD_RELOC_NDS32_SDA15S3:               howto manager.      (line 1306)
13580* BFD_RELOC_NDS32_SDA16S3:               howto manager.      (line 1318)
13581* BFD_RELOC_NDS32_SDA17S2:               howto manager.      (line 1321)
13582* BFD_RELOC_NDS32_SDA18S1:               howto manager.      (line 1324)
13583* BFD_RELOC_NDS32_SDA19S0:               howto manager.      (line 1327)
13584* BFD_RELOC_NDS32_SDA_FP7U2_RELA:        howto manager.      (line 1398)
13585* BFD_RELOC_NDS32_SUBTRAHEND:            howto manager.      (line 1412)
13586* BFD_RELOC_NDS32_TLS_DESC:              howto manager.      (line 1443)
13587* BFD_RELOC_NDS32_TLS_DESC_20:           howto manager.      (line 1446)
13588* BFD_RELOC_NDS32_TLS_DESC_ADD:          howto manager.      (line 1448)
13589* BFD_RELOC_NDS32_TLS_DESC_CALL:         howto manager.      (line 1450)
13590* BFD_RELOC_NDS32_TLS_DESC_FUNC:         howto manager.      (line 1449)
13591* BFD_RELOC_NDS32_TLS_DESC_HI20:         howto manager.      (line 1444)
13592* BFD_RELOC_NDS32_TLS_DESC_LO12:         howto manager.      (line 1445)
13593* BFD_RELOC_NDS32_TLS_DESC_MEM:          howto manager.      (line 1451)
13594* BFD_RELOC_NDS32_TLS_DESC_SDA17S2:      howto manager.      (line 1447)
13595* BFD_RELOC_NDS32_TLS_IEGP_HI20:         howto manager.      (line 1439)
13596* BFD_RELOC_NDS32_TLS_IEGP_LO12:         howto manager.      (line 1440)
13597* BFD_RELOC_NDS32_TLS_IEGP_LO12S2:       howto manager.      (line 1441)
13598* BFD_RELOC_NDS32_TLS_IEGP_LW:           howto manager.      (line 1442)
13599* BFD_RELOC_NDS32_TLS_IE_HI20:           howto manager.      (line 1436)
13600* BFD_RELOC_NDS32_TLS_IE_LO12:           howto manager.      (line 1437)
13601* BFD_RELOC_NDS32_TLS_IE_LO12S2:         howto manager.      (line 1438)
13602* BFD_RELOC_NDS32_TLS_LE_15S0:           howto manager.      (line 1431)
13603* BFD_RELOC_NDS32_TLS_LE_15S1:           howto manager.      (line 1432)
13604* BFD_RELOC_NDS32_TLS_LE_15S2:           howto manager.      (line 1433)
13605* BFD_RELOC_NDS32_TLS_LE_20:             howto manager.      (line 1430)
13606* BFD_RELOC_NDS32_TLS_LE_ADD:            howto manager.      (line 1434)
13607* BFD_RELOC_NDS32_TLS_LE_HI20:           howto manager.      (line 1428)
13608* BFD_RELOC_NDS32_TLS_LE_LO12:           howto manager.      (line 1429)
13609* BFD_RELOC_NDS32_TLS_LE_LS:             howto manager.      (line 1435)
13610* BFD_RELOC_NDS32_TPOFF:                 howto manager.      (line 1426)
13611* BFD_RELOC_NDS32_TRAN:                  howto manager.      (line 1422)
13612* BFD_RELOC_NDS32_UPDATE_TA:             howto manager.      (line 1381)
13613* BFD_RELOC_NDS32_WORD_9_PCREL:          howto manager.      (line 1279)
13614* BFD_RELOC_NIOS2_ALIGN:                 howto manager.      (line 2476)
13615* BFD_RELOC_NIOS2_CACHE_OPX:             howto manager.      (line 2466)
13616* BFD_RELOC_NIOS2_CALL16:                howto manager.      (line 2478)
13617* BFD_RELOC_NIOS2_CALL26:                howto manager.      (line 2464)
13618* BFD_RELOC_NIOS2_CALL26_NOAT:           howto manager.      (line 2496)
13619* BFD_RELOC_NIOS2_CALLR:                 howto manager.      (line 2475)
13620* BFD_RELOC_NIOS2_CALL_HA:               howto manager.      (line 2500)
13621* BFD_RELOC_NIOS2_CALL_LO:               howto manager.      (line 2499)
13622* BFD_RELOC_NIOS2_CJMP:                  howto manager.      (line 2474)
13623* BFD_RELOC_NIOS2_COPY:                  howto manager.      (line 2491)
13624* BFD_RELOC_NIOS2_GLOB_DAT:              howto manager.      (line 2492)
13625* BFD_RELOC_NIOS2_GOT16:                 howto manager.      (line 2477)
13626* BFD_RELOC_NIOS2_GOTOFF:                howto manager.      (line 2495)
13627* BFD_RELOC_NIOS2_GOTOFF_HA:             howto manager.      (line 2480)
13628* BFD_RELOC_NIOS2_GOTOFF_LO:             howto manager.      (line 2479)
13629* BFD_RELOC_NIOS2_GOT_HA:                howto manager.      (line 2498)
13630* BFD_RELOC_NIOS2_GOT_LO:                howto manager.      (line 2497)
13631* BFD_RELOC_NIOS2_GPREL:                 howto manager.      (line 2472)
13632* BFD_RELOC_NIOS2_HI16:                  howto manager.      (line 2469)
13633* BFD_RELOC_NIOS2_HIADJ16:               howto manager.      (line 2471)
13634* BFD_RELOC_NIOS2_IMM5:                  howto manager.      (line 2465)
13635* BFD_RELOC_NIOS2_IMM6:                  howto manager.      (line 2467)
13636* BFD_RELOC_NIOS2_IMM8:                  howto manager.      (line 2468)
13637* BFD_RELOC_NIOS2_JUMP_SLOT:             howto manager.      (line 2493)
13638* BFD_RELOC_NIOS2_LO16:                  howto manager.      (line 2470)
13639* BFD_RELOC_NIOS2_PCREL_HA:              howto manager.      (line 2482)
13640* BFD_RELOC_NIOS2_PCREL_LO:              howto manager.      (line 2481)
13641* BFD_RELOC_NIOS2_R2_F1I5_2:             howto manager.      (line 2510)
13642* BFD_RELOC_NIOS2_R2_I10_1_PCREL:        howto manager.      (line 2502)
13643* BFD_RELOC_NIOS2_R2_L5I4X1:             howto manager.      (line 2511)
13644* BFD_RELOC_NIOS2_R2_S12:                howto manager.      (line 2501)
13645* BFD_RELOC_NIOS2_R2_T1I7_1_PCREL:       howto manager.      (line 2503)
13646* BFD_RELOC_NIOS2_R2_T1I7_2:             howto manager.      (line 2504)
13647* BFD_RELOC_NIOS2_R2_T1X1I6:             howto manager.      (line 2512)
13648* BFD_RELOC_NIOS2_R2_T1X1I6_2:           howto manager.      (line 2513)
13649* BFD_RELOC_NIOS2_R2_T2I4:               howto manager.      (line 2505)
13650* BFD_RELOC_NIOS2_R2_T2I4_1:             howto manager.      (line 2506)
13651* BFD_RELOC_NIOS2_R2_T2I4_2:             howto manager.      (line 2507)
13652* BFD_RELOC_NIOS2_R2_X1I7_2:             howto manager.      (line 2508)
13653* BFD_RELOC_NIOS2_R2_X2L5:               howto manager.      (line 2509)
13654* BFD_RELOC_NIOS2_RELATIVE:              howto manager.      (line 2494)
13655* BFD_RELOC_NIOS2_S16:                   howto manager.      (line 2462)
13656* BFD_RELOC_NIOS2_TLS_DTPMOD:            howto manager.      (line 2488)
13657* BFD_RELOC_NIOS2_TLS_DTPREL:            howto manager.      (line 2489)
13658* BFD_RELOC_NIOS2_TLS_GD16:              howto manager.      (line 2483)
13659* BFD_RELOC_NIOS2_TLS_IE16:              howto manager.      (line 2486)
13660* BFD_RELOC_NIOS2_TLS_LDM16:             howto manager.      (line 2484)
13661* BFD_RELOC_NIOS2_TLS_LDO16:             howto manager.      (line 2485)
13662* BFD_RELOC_NIOS2_TLS_LE16:              howto manager.      (line 2487)
13663* BFD_RELOC_NIOS2_TLS_TPREL:             howto manager.      (line 2490)
13664* BFD_RELOC_NIOS2_U16:                   howto manager.      (line 2463)
13665* BFD_RELOC_NIOS2_UJMP:                  howto manager.      (line 2473)
13666* BFD_RELOC_NONE:                        howto manager.      (line  118)
13667* BFD_RELOC_NS32K_DISP_16:               howto manager.      (line  586)
13668* BFD_RELOC_NS32K_DISP_16_PCREL:         howto manager.      (line  589)
13669* BFD_RELOC_NS32K_DISP_32:               howto manager.      (line  587)
13670* BFD_RELOC_NS32K_DISP_32_PCREL:         howto manager.      (line  590)
13671* BFD_RELOC_NS32K_DISP_8:                howto manager.      (line  585)
13672* BFD_RELOC_NS32K_DISP_8_PCREL:          howto manager.      (line  588)
13673* BFD_RELOC_NS32K_IMM_16:                howto manager.      (line  580)
13674* BFD_RELOC_NS32K_IMM_16_PCREL:          howto manager.      (line  583)
13675* BFD_RELOC_NS32K_IMM_32:                howto manager.      (line  581)
13676* BFD_RELOC_NS32K_IMM_32_PCREL:          howto manager.      (line  584)
13677* BFD_RELOC_NS32K_IMM_8:                 howto manager.      (line  579)
13678* BFD_RELOC_NS32K_IMM_8_PCREL:           howto manager.      (line  582)
13679* bfd_reloc_offset_in_range:             typedef arelent.    (line  344)
13680* BFD_RELOC_OR1K_COPY:                   howto manager.      (line 2377)
13681* BFD_RELOC_OR1K_GLOB_DAT:               howto manager.      (line 2378)
13682* BFD_RELOC_OR1K_GOT16:                  howto manager.      (line 2371)
13683* BFD_RELOC_OR1K_GOTOFF_SLO16:           howto manager.      (line 2376)
13684* BFD_RELOC_OR1K_GOTPC_HI16:             howto manager.      (line 2369)
13685* BFD_RELOC_OR1K_GOTPC_LO16:             howto manager.      (line 2370)
13686* BFD_RELOC_OR1K_GOT_LO13:               howto manager.      (line 2373)
13687* BFD_RELOC_OR1K_GOT_PG21:               howto manager.      (line 2372)
13688* BFD_RELOC_OR1K_JMP_SLOT:               howto manager.      (line 2379)
13689* BFD_RELOC_OR1K_LO13:                   howto manager.      (line 2367)
13690* BFD_RELOC_OR1K_PCREL_PG21:             howto manager.      (line 2366)
13691* BFD_RELOC_OR1K_PLT26:                  howto manager.      (line 2374)
13692* BFD_RELOC_OR1K_PLTA26:                 howto manager.      (line 2375)
13693* BFD_RELOC_OR1K_RELATIVE:               howto manager.      (line 2380)
13694* BFD_RELOC_OR1K_REL_26:                 howto manager.      (line 2364)
13695* BFD_RELOC_OR1K_SLO13:                  howto manager.      (line 2368)
13696* BFD_RELOC_OR1K_SLO16:                  howto manager.      (line 2365)
13697* BFD_RELOC_OR1K_TLS_DTPMOD:             howto manager.      (line 2402)
13698* BFD_RELOC_OR1K_TLS_DTPOFF:             howto manager.      (line 2401)
13699* BFD_RELOC_OR1K_TLS_GD_HI16:            howto manager.      (line 2381)
13700* BFD_RELOC_OR1K_TLS_GD_LO13:            howto manager.      (line 2384)
13701* BFD_RELOC_OR1K_TLS_GD_LO16:            howto manager.      (line 2382)
13702* BFD_RELOC_OR1K_TLS_GD_PG21:            howto manager.      (line 2383)
13703* BFD_RELOC_OR1K_TLS_IE_AHI16:           howto manager.      (line 2392)
13704* BFD_RELOC_OR1K_TLS_IE_HI16:            howto manager.      (line 2391)
13705* BFD_RELOC_OR1K_TLS_IE_LO13:            howto manager.      (line 2395)
13706* BFD_RELOC_OR1K_TLS_IE_LO16:            howto manager.      (line 2393)
13707* BFD_RELOC_OR1K_TLS_IE_PG21:            howto manager.      (line 2394)
13708* BFD_RELOC_OR1K_TLS_LDM_HI16:           howto manager.      (line 2385)
13709* BFD_RELOC_OR1K_TLS_LDM_LO13:           howto manager.      (line 2388)
13710* BFD_RELOC_OR1K_TLS_LDM_LO16:           howto manager.      (line 2386)
13711* BFD_RELOC_OR1K_TLS_LDM_PG21:           howto manager.      (line 2387)
13712* BFD_RELOC_OR1K_TLS_LDO_HI16:           howto manager.      (line 2389)
13713* BFD_RELOC_OR1K_TLS_LDO_LO16:           howto manager.      (line 2390)
13714* BFD_RELOC_OR1K_TLS_LE_AHI16:           howto manager.      (line 2397)
13715* BFD_RELOC_OR1K_TLS_LE_HI16:            howto manager.      (line 2396)
13716* BFD_RELOC_OR1K_TLS_LE_LO16:            howto manager.      (line 2398)
13717* BFD_RELOC_OR1K_TLS_LE_SLO16:           howto manager.      (line 2399)
13718* BFD_RELOC_OR1K_TLS_TPOFF:              howto manager.      (line 2400)
13719* BFD_RELOC_PDP11_DISP_6_PCREL:          howto manager.      (line  593)
13720* BFD_RELOC_PDP11_DISP_8_PCREL:          howto manager.      (line  592)
13721* BFD_RELOC_PJ_CODE_DIR16:               howto manager.      (line  597)
13722* BFD_RELOC_PJ_CODE_DIR32:               howto manager.      (line  598)
13723* BFD_RELOC_PJ_CODE_HI16:                howto manager.      (line  595)
13724* BFD_RELOC_PJ_CODE_LO16:                howto manager.      (line  596)
13725* BFD_RELOC_PJ_CODE_REL16:               howto manager.      (line  599)
13726* BFD_RELOC_PJ_CODE_REL32:               howto manager.      (line  600)
13727* BFD_RELOC_PPC64_ADDR16_DS:             howto manager.      (line  663)
13728* BFD_RELOC_PPC64_ADDR16_HIGH:           howto manager.      (line  674)
13729* BFD_RELOC_PPC64_ADDR16_HIGHA:          howto manager.      (line  675)
13730* BFD_RELOC_PPC64_ADDR16_HIGHER34:       howto manager.      (line  692)
13731* BFD_RELOC_PPC64_ADDR16_HIGHERA34:      howto manager.      (line  693)
13732* BFD_RELOC_PPC64_ADDR16_HIGHEST34:      howto manager.      (line  694)
13733* BFD_RELOC_PPC64_ADDR16_HIGHESTA34:     howto manager.      (line  695)
13734* BFD_RELOC_PPC64_ADDR16_LO_DS:          howto manager.      (line  664)
13735* BFD_RELOC_PPC64_ADDR64_LOCAL:          howto manager.      (line  682)
13736* BFD_RELOC_PPC64_D28:                   howto manager.      (line  700)
13737* BFD_RELOC_PPC64_D34:                   howto manager.      (line  685)
13738* BFD_RELOC_PPC64_D34_HA30:              howto manager.      (line  688)
13739* BFD_RELOC_PPC64_D34_HI30:              howto manager.      (line  687)
13740* BFD_RELOC_PPC64_D34_LO:                howto manager.      (line  686)
13741* BFD_RELOC_PPC64_DTPREL16_DS:           howto manager.      (line  741)
13742* BFD_RELOC_PPC64_DTPREL16_HIGH:         howto manager.      (line  743)
13743* BFD_RELOC_PPC64_DTPREL16_HIGHA:        howto manager.      (line  744)
13744* BFD_RELOC_PPC64_DTPREL16_HIGHER:       howto manager.      (line  745)
13745* BFD_RELOC_PPC64_DTPREL16_HIGHERA:      howto manager.      (line  746)
13746* BFD_RELOC_PPC64_DTPREL16_HIGHEST:      howto manager.      (line  747)
13747* BFD_RELOC_PPC64_DTPREL16_HIGHESTA:     howto manager.      (line  748)
13748* BFD_RELOC_PPC64_DTPREL16_LO_DS:        howto manager.      (line  742)
13749* BFD_RELOC_PPC64_DTPREL34:              howto manager.      (line  750)
13750* BFD_RELOC_PPC64_ENTRY:                 howto manager.      (line  683)
13751* BFD_RELOC_PPC64_GOT16_DS:              howto manager.      (line  665)
13752* BFD_RELOC_PPC64_GOT16_LO_DS:           howto manager.      (line  666)
13753* BFD_RELOC_PPC64_GOT_DTPREL34:          howto manager.      (line  754)
13754* BFD_RELOC_PPC64_GOT_PCREL34:           howto manager.      (line  690)
13755* BFD_RELOC_PPC64_GOT_TLSGD34:           howto manager.      (line  751)
13756* BFD_RELOC_PPC64_GOT_TLSLD34:           howto manager.      (line  752)
13757* BFD_RELOC_PPC64_GOT_TPREL34:           howto manager.      (line  753)
13758* BFD_RELOC_PPC64_HIGHER:                howto manager.      (line  651)
13759* BFD_RELOC_PPC64_HIGHER_S:              howto manager.      (line  652)
13760* BFD_RELOC_PPC64_HIGHEST:               howto manager.      (line  653)
13761* BFD_RELOC_PPC64_HIGHEST_S:             howto manager.      (line  654)
13762* BFD_RELOC_PPC64_PCREL28:               howto manager.      (line  701)
13763* BFD_RELOC_PPC64_PCREL34:               howto manager.      (line  689)
13764* BFD_RELOC_PPC64_PLT16_LO_DS:           howto manager.      (line  667)
13765* BFD_RELOC_PPC64_PLTGOT16:              howto manager.      (line  659)
13766* BFD_RELOC_PPC64_PLTGOT16_DS:           howto manager.      (line  672)
13767* BFD_RELOC_PPC64_PLTGOT16_HA:           howto manager.      (line  662)
13768* BFD_RELOC_PPC64_PLTGOT16_HI:           howto manager.      (line  661)
13769* BFD_RELOC_PPC64_PLTGOT16_LO:           howto manager.      (line  660)
13770* BFD_RELOC_PPC64_PLTGOT16_LO_DS:        howto manager.      (line  673)
13771* BFD_RELOC_PPC64_PLT_PCREL34:           howto manager.      (line  691)
13772* BFD_RELOC_PPC64_REL16_HIGH:            howto manager.      (line  676)
13773* BFD_RELOC_PPC64_REL16_HIGHA:           howto manager.      (line  677)
13774* BFD_RELOC_PPC64_REL16_HIGHER:          howto manager.      (line  678)
13775* BFD_RELOC_PPC64_REL16_HIGHER34:        howto manager.      (line  696)
13776* BFD_RELOC_PPC64_REL16_HIGHERA:         howto manager.      (line  679)
13777* BFD_RELOC_PPC64_REL16_HIGHERA34:       howto manager.      (line  697)
13778* BFD_RELOC_PPC64_REL16_HIGHEST:         howto manager.      (line  680)
13779* BFD_RELOC_PPC64_REL16_HIGHEST34:       howto manager.      (line  698)
13780* BFD_RELOC_PPC64_REL16_HIGHESTA:        howto manager.      (line  681)
13781* BFD_RELOC_PPC64_REL16_HIGHESTA34:      howto manager.      (line  699)
13782* BFD_RELOC_PPC64_REL24_NOTOC:           howto manager.      (line  684)
13783* BFD_RELOC_PPC64_SECTOFF_DS:            howto manager.      (line  668)
13784* BFD_RELOC_PPC64_SECTOFF_LO_DS:         howto manager.      (line  669)
13785* BFD_RELOC_PPC64_TLS_PCREL:             howto manager.      (line  755)
13786* BFD_RELOC_PPC64_TOC:                   howto manager.      (line  658)
13787* BFD_RELOC_PPC64_TOC16_DS:              howto manager.      (line  670)
13788* BFD_RELOC_PPC64_TOC16_HA:              howto manager.      (line  657)
13789* BFD_RELOC_PPC64_TOC16_HI:              howto manager.      (line  656)
13790* BFD_RELOC_PPC64_TOC16_LO:              howto manager.      (line  655)
13791* BFD_RELOC_PPC64_TOC16_LO_DS:           howto manager.      (line  671)
13792* BFD_RELOC_PPC64_TPREL16_DS:            howto manager.      (line  733)
13793* BFD_RELOC_PPC64_TPREL16_HIGH:          howto manager.      (line  735)
13794* BFD_RELOC_PPC64_TPREL16_HIGHA:         howto manager.      (line  736)
13795* BFD_RELOC_PPC64_TPREL16_HIGHER:        howto manager.      (line  737)
13796* BFD_RELOC_PPC64_TPREL16_HIGHERA:       howto manager.      (line  738)
13797* BFD_RELOC_PPC64_TPREL16_HIGHEST:       howto manager.      (line  739)
13798* BFD_RELOC_PPC64_TPREL16_HIGHESTA:      howto manager.      (line  740)
13799* BFD_RELOC_PPC64_TPREL16_LO_DS:         howto manager.      (line  734)
13800* BFD_RELOC_PPC64_TPREL34:               howto manager.      (line  749)
13801* BFD_RELOC_PPC_16DX_HA:                 howto manager.      (line  649)
13802* BFD_RELOC_PPC_B16:                     howto manager.      (line  605)
13803* BFD_RELOC_PPC_B16_BRNTAKEN:            howto manager.      (line  607)
13804* BFD_RELOC_PPC_B16_BRTAKEN:             howto manager.      (line  606)
13805* BFD_RELOC_PPC_B26:                     howto manager.      (line  602)
13806* BFD_RELOC_PPC_BA16:                    howto manager.      (line  608)
13807* BFD_RELOC_PPC_BA16_BRNTAKEN:           howto manager.      (line  610)
13808* BFD_RELOC_PPC_BA16_BRTAKEN:            howto manager.      (line  609)
13809* BFD_RELOC_PPC_BA26:                    howto manager.      (line  603)
13810* BFD_RELOC_PPC_COPY:                    howto manager.      (line  611)
13811* BFD_RELOC_PPC_DTPMOD:                  howto manager.      (line  706)
13812* BFD_RELOC_PPC_DTPREL:                  howto manager.      (line  716)
13813* BFD_RELOC_PPC_DTPREL16:                howto manager.      (line  712)
13814* BFD_RELOC_PPC_DTPREL16_HA:             howto manager.      (line  715)
13815* BFD_RELOC_PPC_DTPREL16_HI:             howto manager.      (line  714)
13816* BFD_RELOC_PPC_DTPREL16_LO:             howto manager.      (line  713)
13817* BFD_RELOC_PPC_EMB_BIT_FLD:             howto manager.      (line  630)
13818* BFD_RELOC_PPC_EMB_MRKREF:              howto manager.      (line  625)
13819* BFD_RELOC_PPC_EMB_NADDR16:             howto manager.      (line  617)
13820* BFD_RELOC_PPC_EMB_NADDR16_HA:          howto manager.      (line  620)
13821* BFD_RELOC_PPC_EMB_NADDR16_HI:          howto manager.      (line  619)
13822* BFD_RELOC_PPC_EMB_NADDR16_LO:          howto manager.      (line  618)
13823* BFD_RELOC_PPC_EMB_NADDR32:             howto manager.      (line  616)
13824* BFD_RELOC_PPC_EMB_RELSDA:              howto manager.      (line  631)
13825* BFD_RELOC_PPC_EMB_RELSEC16:            howto manager.      (line  626)
13826* BFD_RELOC_PPC_EMB_RELST_HA:            howto manager.      (line  629)
13827* BFD_RELOC_PPC_EMB_RELST_HI:            howto manager.      (line  628)
13828* BFD_RELOC_PPC_EMB_RELST_LO:            howto manager.      (line  627)
13829* BFD_RELOC_PPC_EMB_SDA21:               howto manager.      (line  624)
13830* BFD_RELOC_PPC_EMB_SDA2I16:             howto manager.      (line  622)
13831* BFD_RELOC_PPC_EMB_SDA2REL:             howto manager.      (line  623)
13832* BFD_RELOC_PPC_EMB_SDAI16:              howto manager.      (line  621)
13833* BFD_RELOC_PPC_GLOB_DAT:                howto manager.      (line  612)
13834* BFD_RELOC_PPC_GOT_DTPREL16:            howto manager.      (line  729)
13835* BFD_RELOC_PPC_GOT_DTPREL16_HA:         howto manager.      (line  732)
13836* BFD_RELOC_PPC_GOT_DTPREL16_HI:         howto manager.      (line  731)
13837* BFD_RELOC_PPC_GOT_DTPREL16_LO:         howto manager.      (line  730)
13838* BFD_RELOC_PPC_GOT_TLSGD16:             howto manager.      (line  717)
13839* BFD_RELOC_PPC_GOT_TLSGD16_HA:          howto manager.      (line  720)
13840* BFD_RELOC_PPC_GOT_TLSGD16_HI:          howto manager.      (line  719)
13841* BFD_RELOC_PPC_GOT_TLSGD16_LO:          howto manager.      (line  718)
13842* BFD_RELOC_PPC_GOT_TLSLD16:             howto manager.      (line  721)
13843* BFD_RELOC_PPC_GOT_TLSLD16_HA:          howto manager.      (line  724)
13844* BFD_RELOC_PPC_GOT_TLSLD16_HI:          howto manager.      (line  723)
13845* BFD_RELOC_PPC_GOT_TLSLD16_LO:          howto manager.      (line  722)
13846* BFD_RELOC_PPC_GOT_TPREL16:             howto manager.      (line  725)
13847* BFD_RELOC_PPC_GOT_TPREL16_HA:          howto manager.      (line  728)
13848* BFD_RELOC_PPC_GOT_TPREL16_HI:          howto manager.      (line  727)
13849* BFD_RELOC_PPC_GOT_TPREL16_LO:          howto manager.      (line  726)
13850* BFD_RELOC_PPC_JMP_SLOT:                howto manager.      (line  613)
13851* BFD_RELOC_PPC_LOCAL24PC:               howto manager.      (line  615)
13852* BFD_RELOC_PPC_REL16DX_HA:              howto manager.      (line  650)
13853* BFD_RELOC_PPC_RELATIVE:                howto manager.      (line  614)
13854* BFD_RELOC_PPC_TLS:                     howto manager.      (line  703)
13855* BFD_RELOC_PPC_TLSGD:                   howto manager.      (line  704)
13856* BFD_RELOC_PPC_TLSLD:                   howto manager.      (line  705)
13857* BFD_RELOC_PPC_TOC16:                   howto manager.      (line  604)
13858* BFD_RELOC_PPC_TPREL:                   howto manager.      (line  711)
13859* BFD_RELOC_PPC_TPREL16:                 howto manager.      (line  707)
13860* BFD_RELOC_PPC_TPREL16_HA:              howto manager.      (line  710)
13861* BFD_RELOC_PPC_TPREL16_HI:              howto manager.      (line  709)
13862* BFD_RELOC_PPC_TPREL16_LO:              howto manager.      (line  708)
13863* BFD_RELOC_PPC_VLE_HA16A:               howto manager.      (line  639)
13864* BFD_RELOC_PPC_VLE_HA16D:               howto manager.      (line  640)
13865* BFD_RELOC_PPC_VLE_HI16A:               howto manager.      (line  637)
13866* BFD_RELOC_PPC_VLE_HI16D:               howto manager.      (line  638)
13867* BFD_RELOC_PPC_VLE_LO16A:               howto manager.      (line  635)
13868* BFD_RELOC_PPC_VLE_LO16D:               howto manager.      (line  636)
13869* BFD_RELOC_PPC_VLE_REL15:               howto manager.      (line  633)
13870* BFD_RELOC_PPC_VLE_REL24:               howto manager.      (line  634)
13871* BFD_RELOC_PPC_VLE_REL8:                howto manager.      (line  632)
13872* BFD_RELOC_PPC_VLE_SDA21:               howto manager.      (line  641)
13873* BFD_RELOC_PPC_VLE_SDA21_LO:            howto manager.      (line  642)
13874* BFD_RELOC_PPC_VLE_SDAREL_HA16A:        howto manager.      (line  647)
13875* BFD_RELOC_PPC_VLE_SDAREL_HA16D:        howto manager.      (line  648)
13876* BFD_RELOC_PPC_VLE_SDAREL_HI16A:        howto manager.      (line  645)
13877* BFD_RELOC_PPC_VLE_SDAREL_HI16D:        howto manager.      (line  646)
13878* BFD_RELOC_PPC_VLE_SDAREL_LO16A:        howto manager.      (line  643)
13879* BFD_RELOC_PPC_VLE_SDAREL_LO16D:        howto manager.      (line  644)
13880* BFD_RELOC_PRU_16_PMEM:                 howto manager.      (line 2528)
13881* BFD_RELOC_PRU_32_PMEM:                 howto manager.      (line 2527)
13882* BFD_RELOC_PRU_GNU_DIFF16:              howto manager.      (line 2532)
13883* BFD_RELOC_PRU_GNU_DIFF16_PMEM:         howto manager.      (line 2534)
13884* BFD_RELOC_PRU_GNU_DIFF32:              howto manager.      (line 2533)
13885* BFD_RELOC_PRU_GNU_DIFF32_PMEM:         howto manager.      (line 2535)
13886* BFD_RELOC_PRU_GNU_DIFF8:               howto manager.      (line 2531)
13887* BFD_RELOC_PRU_LDI32:                   howto manager.      (line 2519)
13888* BFD_RELOC_PRU_S10_PCREL:               howto manager.      (line 2523)
13889* BFD_RELOC_PRU_U16:                     howto manager.      (line 2515)
13890* BFD_RELOC_PRU_U16_PMEMIMM:             howto manager.      (line 2517)
13891* BFD_RELOC_PRU_U8_PCREL:                howto manager.      (line 2525)
13892* BFD_RELOC_RELC:                        howto manager.      (line 2416)
13893* BFD_RELOC_RISCV_32_PCREL:              howto manager.      (line 1885)
13894* BFD_RELOC_RISCV_ADD16:                 howto manager.      (line 1853)
13895* BFD_RELOC_RISCV_ADD32:                 howto manager.      (line 1854)
13896* BFD_RELOC_RISCV_ADD64:                 howto manager.      (line 1855)
13897* BFD_RELOC_RISCV_ADD8:                  howto manager.      (line 1852)
13898* BFD_RELOC_RISCV_ALIGN:                 howto manager.      (line 1870)
13899* BFD_RELOC_RISCV_CALL:                  howto manager.      (line 1850)
13900* BFD_RELOC_RISCV_CALL_PLT:              howto manager.      (line 1851)
13901* BFD_RELOC_RISCV_CFA:                   howto manager.      (line 1879)
13902* BFD_RELOC_RISCV_GOT_HI20:              howto manager.      (line 1860)
13903* BFD_RELOC_RISCV_GPREL12_I:             howto manager.      (line 1844)
13904* BFD_RELOC_RISCV_GPREL12_S:             howto manager.      (line 1845)
13905* BFD_RELOC_RISCV_GPREL_I:               howto manager.      (line 1874)
13906* BFD_RELOC_RISCV_GPREL_S:               howto manager.      (line 1875)
13907* BFD_RELOC_RISCV_HI20:                  howto manager.      (line 1838)
13908* BFD_RELOC_RISCV_JMP:                   howto manager.      (line 1863)
13909* BFD_RELOC_RISCV_LO12_I:                howto manager.      (line 1842)
13910* BFD_RELOC_RISCV_LO12_S:                howto manager.      (line 1843)
13911* BFD_RELOC_RISCV_PCREL_HI20:            howto manager.      (line 1839)
13912* BFD_RELOC_RISCV_PCREL_LO12_I:          howto manager.      (line 1840)
13913* BFD_RELOC_RISCV_PCREL_LO12_S:          howto manager.      (line 1841)
13914* BFD_RELOC_RISCV_RELAX:                 howto manager.      (line 1878)
13915* BFD_RELOC_RISCV_RVC_BRANCH:            howto manager.      (line 1871)
13916* BFD_RELOC_RISCV_RVC_JUMP:              howto manager.      (line 1872)
13917* BFD_RELOC_RISCV_RVC_LUI:               howto manager.      (line 1873)
13918* BFD_RELOC_RISCV_SET16:                 howto manager.      (line 1883)
13919* BFD_RELOC_RISCV_SET32:                 howto manager.      (line 1884)
13920* BFD_RELOC_RISCV_SET6:                  howto manager.      (line 1881)
13921* BFD_RELOC_RISCV_SET8:                  howto manager.      (line 1882)
13922* BFD_RELOC_RISCV_SUB16:                 howto manager.      (line 1857)
13923* BFD_RELOC_RISCV_SUB32:                 howto manager.      (line 1858)
13924* BFD_RELOC_RISCV_SUB6:                  howto manager.      (line 1880)
13925* BFD_RELOC_RISCV_SUB64:                 howto manager.      (line 1859)
13926* BFD_RELOC_RISCV_SUB8:                  howto manager.      (line 1856)
13927* BFD_RELOC_RISCV_TLS_DTPMOD32:          howto manager.      (line 1864)
13928* BFD_RELOC_RISCV_TLS_DTPMOD64:          howto manager.      (line 1866)
13929* BFD_RELOC_RISCV_TLS_DTPREL32:          howto manager.      (line 1865)
13930* BFD_RELOC_RISCV_TLS_DTPREL64:          howto manager.      (line 1867)
13931* BFD_RELOC_RISCV_TLS_GD_HI20:           howto manager.      (line 1862)
13932* BFD_RELOC_RISCV_TLS_GOT_HI20:          howto manager.      (line 1861)
13933* BFD_RELOC_RISCV_TLS_TPREL32:           howto manager.      (line 1868)
13934* BFD_RELOC_RISCV_TLS_TPREL64:           howto manager.      (line 1869)
13935* BFD_RELOC_RISCV_TPREL_ADD:             howto manager.      (line 1849)
13936* BFD_RELOC_RISCV_TPREL_HI20:            howto manager.      (line 1846)
13937* BFD_RELOC_RISCV_TPREL_I:               howto manager.      (line 1876)
13938* BFD_RELOC_RISCV_TPREL_LO12_I:          howto manager.      (line 1847)
13939* BFD_RELOC_RISCV_TPREL_LO12_S:          howto manager.      (line 1848)
13940* BFD_RELOC_RISCV_TPREL_S:               howto manager.      (line 1877)
13941* BFD_RELOC_RL78_16U:                    howto manager.      (line 1895)
13942* BFD_RELOC_RL78_16_OP:                  howto manager.      (line 1891)
13943* BFD_RELOC_RL78_24U:                    howto manager.      (line 1896)
13944* BFD_RELOC_RL78_24_OP:                  howto manager.      (line 1892)
13945* BFD_RELOC_RL78_32_OP:                  howto manager.      (line 1893)
13946* BFD_RELOC_RL78_8U:                     howto manager.      (line 1894)
13947* BFD_RELOC_RL78_ABS16:                  howto manager.      (line 1908)
13948* BFD_RELOC_RL78_ABS16U:                 howto manager.      (line 1912)
13949* BFD_RELOC_RL78_ABS16UL:                howto manager.      (line 1914)
13950* BFD_RELOC_RL78_ABS16UW:                howto manager.      (line 1913)
13951* BFD_RELOC_RL78_ABS16_REV:              howto manager.      (line 1909)
13952* BFD_RELOC_RL78_ABS32:                  howto manager.      (line 1910)
13953* BFD_RELOC_RL78_ABS32_REV:              howto manager.      (line 1911)
13954* BFD_RELOC_RL78_ABS8:                   howto manager.      (line 1907)
13955* BFD_RELOC_RL78_CODE:                   howto manager.      (line 1919)
13956* BFD_RELOC_RL78_DIFF:                   howto manager.      (line 1898)
13957* BFD_RELOC_RL78_DIR3U_PCREL:            howto manager.      (line 1897)
13958* BFD_RELOC_RL78_GPRELB:                 howto manager.      (line 1899)
13959* BFD_RELOC_RL78_GPRELL:                 howto manager.      (line 1901)
13960* BFD_RELOC_RL78_GPRELW:                 howto manager.      (line 1900)
13961* BFD_RELOC_RL78_HI16:                   howto manager.      (line 1916)
13962* BFD_RELOC_RL78_HI8:                    howto manager.      (line 1917)
13963* BFD_RELOC_RL78_LO16:                   howto manager.      (line 1918)
13964* BFD_RELOC_RL78_NEG16:                  howto manager.      (line 1888)
13965* BFD_RELOC_RL78_NEG24:                  howto manager.      (line 1889)
13966* BFD_RELOC_RL78_NEG32:                  howto manager.      (line 1890)
13967* BFD_RELOC_RL78_NEG8:                   howto manager.      (line 1887)
13968* BFD_RELOC_RL78_OP_AND:                 howto manager.      (line 1905)
13969* BFD_RELOC_RL78_OP_NEG:                 howto manager.      (line 1904)
13970* BFD_RELOC_RL78_OP_SHRA:                howto manager.      (line 1906)
13971* BFD_RELOC_RL78_OP_SUBTRACT:            howto manager.      (line 1903)
13972* BFD_RELOC_RL78_RELAX:                  howto manager.      (line 1915)
13973* BFD_RELOC_RL78_SADDR:                  howto manager.      (line 1920)
13974* BFD_RELOC_RL78_SYM:                    howto manager.      (line 1902)
13975* BFD_RELOC_RVA:                         howto manager.      (line   95)
13976* BFD_RELOC_RX_16U:                      howto manager.      (line 1930)
13977* BFD_RELOC_RX_16_OP:                    howto manager.      (line 1926)
13978* BFD_RELOC_RX_24U:                      howto manager.      (line 1931)
13979* BFD_RELOC_RX_24_OP:                    howto manager.      (line 1927)
13980* BFD_RELOC_RX_32_OP:                    howto manager.      (line 1928)
13981* BFD_RELOC_RX_8U:                       howto manager.      (line 1929)
13982* BFD_RELOC_RX_ABS16:                    howto manager.      (line 1941)
13983* BFD_RELOC_RX_ABS16U:                   howto manager.      (line 1945)
13984* BFD_RELOC_RX_ABS16UL:                  howto manager.      (line 1947)
13985* BFD_RELOC_RX_ABS16UW:                  howto manager.      (line 1946)
13986* BFD_RELOC_RX_ABS16_REV:                howto manager.      (line 1942)
13987* BFD_RELOC_RX_ABS32:                    howto manager.      (line 1943)
13988* BFD_RELOC_RX_ABS32_REV:                howto manager.      (line 1944)
13989* BFD_RELOC_RX_ABS8:                     howto manager.      (line 1940)
13990* BFD_RELOC_RX_DIFF:                     howto manager.      (line 1933)
13991* BFD_RELOC_RX_DIR3U_PCREL:              howto manager.      (line 1932)
13992* BFD_RELOC_RX_GPRELB:                   howto manager.      (line 1934)
13993* BFD_RELOC_RX_GPRELL:                   howto manager.      (line 1936)
13994* BFD_RELOC_RX_GPRELW:                   howto manager.      (line 1935)
13995* BFD_RELOC_RX_NEG16:                    howto manager.      (line 1923)
13996* BFD_RELOC_RX_NEG24:                    howto manager.      (line 1924)
13997* BFD_RELOC_RX_NEG32:                    howto manager.      (line 1925)
13998* BFD_RELOC_RX_NEG8:                     howto manager.      (line 1922)
13999* BFD_RELOC_RX_OP_NEG:                   howto manager.      (line 1939)
14000* BFD_RELOC_RX_OP_SUBTRACT:              howto manager.      (line 1938)
14001* BFD_RELOC_RX_RELAX:                    howto manager.      (line 1948)
14002* BFD_RELOC_RX_SYM:                      howto manager.      (line 1937)
14003* BFD_RELOC_S12Z_15_PCREL:               howto manager.      (line 2260)
14004* BFD_RELOC_S12Z_OPR:                    howto manager.      (line 3415)
14005* BFD_RELOC_SCORE16_BRANCH:              howto manager.      (line 2051)
14006* BFD_RELOC_SCORE16_JMP:                 howto manager.      (line 2049)
14007* BFD_RELOC_SCORE_BCMP:                  howto manager.      (line 2053)
14008* BFD_RELOC_SCORE_BRANCH:                howto manager.      (line 2043)
14009* BFD_RELOC_SCORE_CALL15:                howto manager.      (line 2057)
14010* BFD_RELOC_SCORE_DUMMY2:                howto manager.      (line 2040)
14011* BFD_RELOC_SCORE_DUMMY_HI16:            howto manager.      (line 2058)
14012* BFD_RELOC_SCORE_GOT15:                 howto manager.      (line 2055)
14013* BFD_RELOC_SCORE_GOT_LO16:              howto manager.      (line 2056)
14014* BFD_RELOC_SCORE_GPREL15:               howto manager.      (line 2038)
14015* BFD_RELOC_SCORE_IMM30:                 howto manager.      (line 2045)
14016* BFD_RELOC_SCORE_IMM32:                 howto manager.      (line 2047)
14017* BFD_RELOC_SCORE_JMP:                   howto manager.      (line 2041)
14018* BFD_RELOC_SH_ALIGN:                    howto manager.      (line  952)
14019* BFD_RELOC_SH_CODE:                     howto manager.      (line  953)
14020* BFD_RELOC_SH_COPY:                     howto manager.      (line  958)
14021* BFD_RELOC_SH_COPY64:                   howto manager.      (line  983)
14022* BFD_RELOC_SH_COUNT:                    howto manager.      (line  951)
14023* BFD_RELOC_SH_DATA:                     howto manager.      (line  954)
14024* BFD_RELOC_SH_DISP12:                   howto manager.      (line  934)
14025* BFD_RELOC_SH_DISP12BY2:                howto manager.      (line  935)
14026* BFD_RELOC_SH_DISP12BY4:                howto manager.      (line  936)
14027* BFD_RELOC_SH_DISP12BY8:                howto manager.      (line  937)
14028* BFD_RELOC_SH_DISP20:                   howto manager.      (line  938)
14029* BFD_RELOC_SH_DISP20BY8:                howto manager.      (line  939)
14030* BFD_RELOC_SH_FUNCDESC:                 howto manager.      (line 1026)
14031* BFD_RELOC_SH_GLOB_DAT:                 howto manager.      (line  959)
14032* BFD_RELOC_SH_GLOB_DAT64:               howto manager.      (line  984)
14033* BFD_RELOC_SH_GOT10BY4:                 howto manager.      (line  987)
14034* BFD_RELOC_SH_GOT10BY8:                 howto manager.      (line  988)
14035* BFD_RELOC_SH_GOT20:                    howto manager.      (line 1020)
14036* BFD_RELOC_SH_GOTFUNCDESC:              howto manager.      (line 1022)
14037* BFD_RELOC_SH_GOTFUNCDESC20:            howto manager.      (line 1023)
14038* BFD_RELOC_SH_GOTOFF20:                 howto manager.      (line 1021)
14039* BFD_RELOC_SH_GOTOFFFUNCDESC:           howto manager.      (line 1024)
14040* BFD_RELOC_SH_GOTOFFFUNCDESC20:         howto manager.      (line 1025)
14041* BFD_RELOC_SH_GOTOFF_HI16:              howto manager.      (line  978)
14042* BFD_RELOC_SH_GOTOFF_LOW16:             howto manager.      (line  975)
14043* BFD_RELOC_SH_GOTOFF_MEDHI16:           howto manager.      (line  977)
14044* BFD_RELOC_SH_GOTOFF_MEDLOW16:          howto manager.      (line  976)
14045* BFD_RELOC_SH_GOTPC:                    howto manager.      (line  962)
14046* BFD_RELOC_SH_GOTPC_HI16:               howto manager.      (line  982)
14047* BFD_RELOC_SH_GOTPC_LOW16:              howto manager.      (line  979)
14048* BFD_RELOC_SH_GOTPC_MEDHI16:            howto manager.      (line  981)
14049* BFD_RELOC_SH_GOTPC_MEDLOW16:           howto manager.      (line  980)
14050* BFD_RELOC_SH_GOTPLT10BY4:              howto manager.      (line  989)
14051* BFD_RELOC_SH_GOTPLT10BY8:              howto manager.      (line  990)
14052* BFD_RELOC_SH_GOTPLT32:                 howto manager.      (line  991)
14053* BFD_RELOC_SH_GOTPLT_HI16:              howto manager.      (line  970)
14054* BFD_RELOC_SH_GOTPLT_LOW16:             howto manager.      (line  967)
14055* BFD_RELOC_SH_GOTPLT_MEDHI16:           howto manager.      (line  969)
14056* BFD_RELOC_SH_GOTPLT_MEDLOW16:          howto manager.      (line  968)
14057* BFD_RELOC_SH_GOT_HI16:                 howto manager.      (line  966)
14058* BFD_RELOC_SH_GOT_LOW16:                howto manager.      (line  963)
14059* BFD_RELOC_SH_GOT_MEDHI16:              howto manager.      (line  965)
14060* BFD_RELOC_SH_GOT_MEDLOW16:             howto manager.      (line  964)
14061* BFD_RELOC_SH_IMM3:                     howto manager.      (line  932)
14062* BFD_RELOC_SH_IMM3U:                    howto manager.      (line  933)
14063* BFD_RELOC_SH_IMM4:                     howto manager.      (line  940)
14064* BFD_RELOC_SH_IMM4BY2:                  howto manager.      (line  941)
14065* BFD_RELOC_SH_IMM4BY4:                  howto manager.      (line  942)
14066* BFD_RELOC_SH_IMM8:                     howto manager.      (line  943)
14067* BFD_RELOC_SH_IMM8BY2:                  howto manager.      (line  944)
14068* BFD_RELOC_SH_IMM8BY4:                  howto manager.      (line  945)
14069* BFD_RELOC_SH_IMMS10:                   howto manager.      (line  997)
14070* BFD_RELOC_SH_IMMS10BY2:                howto manager.      (line  998)
14071* BFD_RELOC_SH_IMMS10BY4:                howto manager.      (line  999)
14072* BFD_RELOC_SH_IMMS10BY8:                howto manager.      (line 1000)
14073* BFD_RELOC_SH_IMMS16:                   howto manager.      (line 1001)
14074* BFD_RELOC_SH_IMMS6:                    howto manager.      (line  994)
14075* BFD_RELOC_SH_IMMS6BY32:                howto manager.      (line  995)
14076* BFD_RELOC_SH_IMMU16:                   howto manager.      (line 1002)
14077* BFD_RELOC_SH_IMMU5:                    howto manager.      (line  993)
14078* BFD_RELOC_SH_IMMU6:                    howto manager.      (line  996)
14079* BFD_RELOC_SH_IMM_HI16:                 howto manager.      (line 1009)
14080* BFD_RELOC_SH_IMM_HI16_PCREL:           howto manager.      (line 1010)
14081* BFD_RELOC_SH_IMM_LOW16:                howto manager.      (line 1003)
14082* BFD_RELOC_SH_IMM_LOW16_PCREL:          howto manager.      (line 1004)
14083* BFD_RELOC_SH_IMM_MEDHI16:              howto manager.      (line 1007)
14084* BFD_RELOC_SH_IMM_MEDHI16_PCREL:        howto manager.      (line 1008)
14085* BFD_RELOC_SH_IMM_MEDLOW16:             howto manager.      (line 1005)
14086* BFD_RELOC_SH_IMM_MEDLOW16_PCREL:       howto manager.      (line 1006)
14087* BFD_RELOC_SH_JMP_SLOT:                 howto manager.      (line  960)
14088* BFD_RELOC_SH_JMP_SLOT64:               howto manager.      (line  985)
14089* BFD_RELOC_SH_LABEL:                    howto manager.      (line  955)
14090* BFD_RELOC_SH_LOOP_END:                 howto manager.      (line  957)
14091* BFD_RELOC_SH_LOOP_START:               howto manager.      (line  956)
14092* BFD_RELOC_SH_PCDISP12BY2:              howto manager.      (line  931)
14093* BFD_RELOC_SH_PCDISP8BY2:               howto manager.      (line  930)
14094* BFD_RELOC_SH_PCRELIMM8BY2:             howto manager.      (line  946)
14095* BFD_RELOC_SH_PCRELIMM8BY4:             howto manager.      (line  947)
14096* BFD_RELOC_SH_PLT_HI16:                 howto manager.      (line  974)
14097* BFD_RELOC_SH_PLT_LOW16:                howto manager.      (line  971)
14098* BFD_RELOC_SH_PLT_MEDHI16:              howto manager.      (line  973)
14099* BFD_RELOC_SH_PLT_MEDLOW16:             howto manager.      (line  972)
14100* BFD_RELOC_SH_PT_16:                    howto manager.      (line 1011)
14101* BFD_RELOC_SH_RELATIVE:                 howto manager.      (line  961)
14102* BFD_RELOC_SH_RELATIVE64:               howto manager.      (line  986)
14103* BFD_RELOC_SH_SHMEDIA_CODE:             howto manager.      (line  992)
14104* BFD_RELOC_SH_SWITCH16:                 howto manager.      (line  948)
14105* BFD_RELOC_SH_SWITCH32:                 howto manager.      (line  949)
14106* BFD_RELOC_SH_TLS_DTPMOD32:             howto manager.      (line 1017)
14107* BFD_RELOC_SH_TLS_DTPOFF32:             howto manager.      (line 1018)
14108* BFD_RELOC_SH_TLS_GD_32:                howto manager.      (line 1012)
14109* BFD_RELOC_SH_TLS_IE_32:                howto manager.      (line 1015)
14110* BFD_RELOC_SH_TLS_LDO_32:               howto manager.      (line 1014)
14111* BFD_RELOC_SH_TLS_LD_32:                howto manager.      (line 1013)
14112* BFD_RELOC_SH_TLS_LE_32:                howto manager.      (line 1016)
14113* BFD_RELOC_SH_TLS_TPOFF32:              howto manager.      (line 1019)
14114* BFD_RELOC_SH_USES:                     howto manager.      (line  950)
14115* BFD_RELOC_SIZE32:                      howto manager.      (line   67)
14116* BFD_RELOC_SIZE64:                      howto manager.      (line   68)
14117* BFD_RELOC_SPARC13:                     howto manager.      (line  121)
14118* BFD_RELOC_SPARC22:                     howto manager.      (line  120)
14119* BFD_RELOC_SPARC_10:                    howto manager.      (line  148)
14120* BFD_RELOC_SPARC_11:                    howto manager.      (line  149)
14121* BFD_RELOC_SPARC_5:                     howto manager.      (line  161)
14122* BFD_RELOC_SPARC_6:                     howto manager.      (line  160)
14123* BFD_RELOC_SPARC_64:                    howto manager.      (line  147)
14124* BFD_RELOC_SPARC_7:                     howto manager.      (line  159)
14125* BFD_RELOC_SPARC_BASE13:                howto manager.      (line  144)
14126* BFD_RELOC_SPARC_BASE22:                howto manager.      (line  145)
14127* BFD_RELOC_SPARC_COPY:                  howto manager.      (line  128)
14128* BFD_RELOC_SPARC_DISP64:                howto manager.      (line  162)
14129* BFD_RELOC_SPARC_GLOB_DAT:              howto manager.      (line  129)
14130* BFD_RELOC_SPARC_GOT10:                 howto manager.      (line  122)
14131* BFD_RELOC_SPARC_GOT13:                 howto manager.      (line  123)
14132* BFD_RELOC_SPARC_GOT22:                 howto manager.      (line  124)
14133* BFD_RELOC_SPARC_GOTDATA_HIX22:         howto manager.      (line  135)
14134* BFD_RELOC_SPARC_GOTDATA_LOX10:         howto manager.      (line  136)
14135* BFD_RELOC_SPARC_GOTDATA_OP:            howto manager.      (line  139)
14136* BFD_RELOC_SPARC_GOTDATA_OP_HIX22:      howto manager.      (line  137)
14137* BFD_RELOC_SPARC_GOTDATA_OP_LOX10:      howto manager.      (line  138)
14138* BFD_RELOC_SPARC_H34:                   howto manager.      (line  171)
14139* BFD_RELOC_SPARC_H44:                   howto manager.      (line  167)
14140* BFD_RELOC_SPARC_HH22:                  howto manager.      (line  151)
14141* BFD_RELOC_SPARC_HIX22:                 howto manager.      (line  165)
14142* BFD_RELOC_SPARC_HM10:                  howto manager.      (line  152)
14143* BFD_RELOC_SPARC_IRELATIVE:             howto manager.      (line  141)
14144* BFD_RELOC_SPARC_JMP_IREL:              howto manager.      (line  140)
14145* BFD_RELOC_SPARC_JMP_SLOT:              howto manager.      (line  130)
14146* BFD_RELOC_SPARC_L44:                   howto manager.      (line  169)
14147* BFD_RELOC_SPARC_LM22:                  howto manager.      (line  153)
14148* BFD_RELOC_SPARC_LOX10:                 howto manager.      (line  166)
14149* BFD_RELOC_SPARC_M44:                   howto manager.      (line  168)
14150* BFD_RELOC_SPARC_OLO10:                 howto manager.      (line  150)
14151* BFD_RELOC_SPARC_PC10:                  howto manager.      (line  125)
14152* BFD_RELOC_SPARC_PC22:                  howto manager.      (line  126)
14153* BFD_RELOC_SPARC_PC_HH22:               howto manager.      (line  154)
14154* BFD_RELOC_SPARC_PC_HM10:               howto manager.      (line  155)
14155* BFD_RELOC_SPARC_PC_LM22:               howto manager.      (line  156)
14156* BFD_RELOC_SPARC_PLT32:                 howto manager.      (line  163)
14157* BFD_RELOC_SPARC_PLT64:                 howto manager.      (line  164)
14158* BFD_RELOC_SPARC_REGISTER:              howto manager.      (line  170)
14159* BFD_RELOC_SPARC_RELATIVE:              howto manager.      (line  131)
14160* BFD_RELOC_SPARC_REV32:                 howto manager.      (line  176)
14161* BFD_RELOC_SPARC_SIZE32:                howto manager.      (line  172)
14162* BFD_RELOC_SPARC_SIZE64:                howto manager.      (line  173)
14163* BFD_RELOC_SPARC_TLS_DTPMOD32:          howto manager.      (line  196)
14164* BFD_RELOC_SPARC_TLS_DTPMOD64:          howto manager.      (line  197)
14165* BFD_RELOC_SPARC_TLS_DTPOFF32:          howto manager.      (line  198)
14166* BFD_RELOC_SPARC_TLS_DTPOFF64:          howto manager.      (line  199)
14167* BFD_RELOC_SPARC_TLS_GD_ADD:            howto manager.      (line  180)
14168* BFD_RELOC_SPARC_TLS_GD_CALL:           howto manager.      (line  181)
14169* BFD_RELOC_SPARC_TLS_GD_HI22:           howto manager.      (line  178)
14170* BFD_RELOC_SPARC_TLS_GD_LO10:           howto manager.      (line  179)
14171* BFD_RELOC_SPARC_TLS_IE_ADD:            howto manager.      (line  193)
14172* BFD_RELOC_SPARC_TLS_IE_HI22:           howto manager.      (line  189)
14173* BFD_RELOC_SPARC_TLS_IE_LD:             howto manager.      (line  191)
14174* BFD_RELOC_SPARC_TLS_IE_LDX:            howto manager.      (line  192)
14175* BFD_RELOC_SPARC_TLS_IE_LO10:           howto manager.      (line  190)
14176* BFD_RELOC_SPARC_TLS_LDM_ADD:           howto manager.      (line  184)
14177* BFD_RELOC_SPARC_TLS_LDM_CALL:          howto manager.      (line  185)
14178* BFD_RELOC_SPARC_TLS_LDM_HI22:          howto manager.      (line  182)
14179* BFD_RELOC_SPARC_TLS_LDM_LO10:          howto manager.      (line  183)
14180* BFD_RELOC_SPARC_TLS_LDO_ADD:           howto manager.      (line  188)
14181* BFD_RELOC_SPARC_TLS_LDO_HIX22:         howto manager.      (line  186)
14182* BFD_RELOC_SPARC_TLS_LDO_LOX10:         howto manager.      (line  187)
14183* BFD_RELOC_SPARC_TLS_LE_HIX22:          howto manager.      (line  194)
14184* BFD_RELOC_SPARC_TLS_LE_LOX10:          howto manager.      (line  195)
14185* BFD_RELOC_SPARC_TLS_TPOFF32:           howto manager.      (line  200)
14186* BFD_RELOC_SPARC_TLS_TPOFF64:           howto manager.      (line  201)
14187* BFD_RELOC_SPARC_UA16:                  howto manager.      (line  132)
14188* BFD_RELOC_SPARC_UA32:                  howto manager.      (line  133)
14189* BFD_RELOC_SPARC_UA64:                  howto manager.      (line  134)
14190* BFD_RELOC_SPARC_WDISP10:               howto manager.      (line  174)
14191* BFD_RELOC_SPARC_WDISP16:               howto manager.      (line  157)
14192* BFD_RELOC_SPARC_WDISP19:               howto manager.      (line  158)
14193* BFD_RELOC_SPARC_WDISP22:               howto manager.      (line  119)
14194* BFD_RELOC_SPARC_WPLT30:                howto manager.      (line  127)
14195* BFD_RELOC_SPU_ADD_PIC:                 howto manager.      (line  217)
14196* BFD_RELOC_SPU_HI16:                    howto manager.      (line  214)
14197* BFD_RELOC_SPU_IMM10:                   howto manager.      (line  205)
14198* BFD_RELOC_SPU_IMM10W:                  howto manager.      (line  206)
14199* BFD_RELOC_SPU_IMM16:                   howto manager.      (line  207)
14200* BFD_RELOC_SPU_IMM16W:                  howto manager.      (line  208)
14201* BFD_RELOC_SPU_IMM18:                   howto manager.      (line  209)
14202* BFD_RELOC_SPU_IMM7:                    howto manager.      (line  203)
14203* BFD_RELOC_SPU_IMM8:                    howto manager.      (line  204)
14204* BFD_RELOC_SPU_LO16:                    howto manager.      (line  213)
14205* BFD_RELOC_SPU_PCREL16:                 howto manager.      (line  212)
14206* BFD_RELOC_SPU_PCREL9a:                 howto manager.      (line  210)
14207* BFD_RELOC_SPU_PCREL9b:                 howto manager.      (line  211)
14208* BFD_RELOC_SPU_PPU32:                   howto manager.      (line  215)
14209* BFD_RELOC_SPU_PPU64:                   howto manager.      (line  216)
14210* BFD_RELOC_THUMB_PCREL_BFCSEL:          howto manager.      (line  782)
14211* BFD_RELOC_THUMB_PCREL_BLX:             howto manager.      (line  771)
14212* BFD_RELOC_THUMB_PCREL_BRANCH12:        howto manager.      (line  794)
14213* BFD_RELOC_THUMB_PCREL_BRANCH20:        howto manager.      (line  795)
14214* BFD_RELOC_THUMB_PCREL_BRANCH23:        howto manager.      (line  796)
14215* BFD_RELOC_THUMB_PCREL_BRANCH25:        howto manager.      (line  797)
14216* BFD_RELOC_THUMB_PCREL_BRANCH5:         howto manager.      (line  780)
14217* BFD_RELOC_THUMB_PCREL_BRANCH7:         howto manager.      (line  792)
14218* BFD_RELOC_THUMB_PCREL_BRANCH9:         howto manager.      (line  793)
14219* BFD_RELOC_TIC30_LDP:                   howto manager.      (line 1549)
14220* BFD_RELOC_TIC54X_16_OF_23:             howto manager.      (line 1563)
14221* BFD_RELOC_TIC54X_23:                   howto manager.      (line 1561)
14222* BFD_RELOC_TIC54X_MS7_OF_23:            howto manager.      (line 1567)
14223* BFD_RELOC_TIC54X_PARTLS7:              howto manager.      (line 1553)
14224* BFD_RELOC_TIC54X_PARTMS9:              howto manager.      (line 1557)
14225* BFD_RELOC_TILEGX_BROFF_X1:             howto manager.      (line 3210)
14226* BFD_RELOC_TILEGX_COPY:                 howto manager.      (line 3206)
14227* BFD_RELOC_TILEGX_DEST_IMM8_X1:         howto manager.      (line 3217)
14228* BFD_RELOC_TILEGX_GLOB_DAT:             howto manager.      (line 3207)
14229* BFD_RELOC_TILEGX_HW0:                  howto manager.      (line 3199)
14230* BFD_RELOC_TILEGX_HW0_LAST:             howto manager.      (line 3203)
14231* BFD_RELOC_TILEGX_HW1:                  howto manager.      (line 3200)
14232* BFD_RELOC_TILEGX_HW1_LAST:             howto manager.      (line 3204)
14233* BFD_RELOC_TILEGX_HW2:                  howto manager.      (line 3201)
14234* BFD_RELOC_TILEGX_HW2_LAST:             howto manager.      (line 3205)
14235* BFD_RELOC_TILEGX_HW3:                  howto manager.      (line 3202)
14236* BFD_RELOC_TILEGX_IMM16_X0_HW0:         howto manager.      (line 3226)
14237* BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT:     howto manager.      (line 3254)
14238* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST:    howto manager.      (line 3234)
14239* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager.     (line 3262)
14240* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager.   (line 3248)
14241* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL: howto manager.
14242                                                             (line 3282)
14243* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager.  (line 3276)
14244* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager.  (line 3288)
14245* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: howto manager.  (line 3272)
14246* BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL:   howto manager.      (line 3240)
14247* BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL: howto manager.    (line 3256)
14248* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD:  howto manager.      (line 3268)
14249* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE:  howto manager.      (line 3280)
14250* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE:  howto manager.      (line 3270)
14251* BFD_RELOC_TILEGX_IMM16_X0_HW1:         howto manager.      (line 3228)
14252* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST:    howto manager.      (line 3236)
14253* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager.     (line 3264)
14254* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager.   (line 3250)
14255* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL: howto manager.
14256                                                             (line 3284)
14257* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager.  (line 3278)
14258* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager.  (line 3290)
14259* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: howto manager.  (line 3274)
14260* BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL:   howto manager.      (line 3242)
14261* BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL: howto manager.    (line 3258)
14262* BFD_RELOC_TILEGX_IMM16_X0_HW2:         howto manager.      (line 3230)
14263* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST:    howto manager.      (line 3238)
14264* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager.   (line 3252)
14265* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL: howto manager.
14266                                                             (line 3286)
14267* BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL:   howto manager.      (line 3244)
14268* BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL: howto manager.    (line 3260)
14269* BFD_RELOC_TILEGX_IMM16_X0_HW3:         howto manager.      (line 3232)
14270* BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL:   howto manager.      (line 3246)
14271* BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL: howto manager.    (line 3266)
14272* BFD_RELOC_TILEGX_IMM16_X1_HW0:         howto manager.      (line 3227)
14273* BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT:     howto manager.      (line 3255)
14274* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST:    howto manager.      (line 3235)
14275* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager.     (line 3263)
14276* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager.   (line 3249)
14277* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL: howto manager.
14278                                                             (line 3283)
14279* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager.  (line 3277)
14280* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager.  (line 3289)
14281* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: howto manager.  (line 3273)
14282* BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL:   howto manager.      (line 3241)
14283* BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL: howto manager.    (line 3257)
14284* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD:  howto manager.      (line 3269)
14285* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE:  howto manager.      (line 3281)
14286* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE:  howto manager.      (line 3271)
14287* BFD_RELOC_TILEGX_IMM16_X1_HW1:         howto manager.      (line 3229)
14288* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST:    howto manager.      (line 3237)
14289* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager.     (line 3265)
14290* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager.   (line 3251)
14291* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL: howto manager.
14292                                                             (line 3285)
14293* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager.  (line 3279)
14294* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager.  (line 3291)
14295* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: howto manager.  (line 3275)
14296* BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL:   howto manager.      (line 3243)
14297* BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL: howto manager.    (line 3259)
14298* BFD_RELOC_TILEGX_IMM16_X1_HW2:         howto manager.      (line 3231)
14299* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST:    howto manager.      (line 3239)
14300* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager.   (line 3253)
14301* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL: howto manager.
14302                                                             (line 3287)
14303* BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL:   howto manager.      (line 3245)
14304* BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL: howto manager.    (line 3261)
14305* BFD_RELOC_TILEGX_IMM16_X1_HW3:         howto manager.      (line 3233)
14306* BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL:   howto manager.      (line 3247)
14307* BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL: howto manager.    (line 3267)
14308* BFD_RELOC_TILEGX_IMM8_X0:              howto manager.      (line 3213)
14309* BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD:      howto manager.      (line 3304)
14310* BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD:   howto manager.      (line 3299)
14311* BFD_RELOC_TILEGX_IMM8_X1:              howto manager.      (line 3215)
14312* BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD:      howto manager.      (line 3305)
14313* BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD:   howto manager.      (line 3300)
14314* BFD_RELOC_TILEGX_IMM8_Y0:              howto manager.      (line 3214)
14315* BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD:      howto manager.      (line 3306)
14316* BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD:   howto manager.      (line 3301)
14317* BFD_RELOC_TILEGX_IMM8_Y1:              howto manager.      (line 3216)
14318* BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD:      howto manager.      (line 3307)
14319* BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD:   howto manager.      (line 3302)
14320* BFD_RELOC_TILEGX_JMP_SLOT:             howto manager.      (line 3208)
14321* BFD_RELOC_TILEGX_JUMPOFF_X1:           howto manager.      (line 3211)
14322* BFD_RELOC_TILEGX_JUMPOFF_X1_PLT:       howto manager.      (line 3212)
14323* BFD_RELOC_TILEGX_MF_IMM14_X1:          howto manager.      (line 3219)
14324* BFD_RELOC_TILEGX_MMEND_X0:             howto manager.      (line 3221)
14325* BFD_RELOC_TILEGX_MMSTART_X0:           howto manager.      (line 3220)
14326* BFD_RELOC_TILEGX_MT_IMM14_X1:          howto manager.      (line 3218)
14327* BFD_RELOC_TILEGX_RELATIVE:             howto manager.      (line 3209)
14328* BFD_RELOC_TILEGX_SHAMT_X0:             howto manager.      (line 3222)
14329* BFD_RELOC_TILEGX_SHAMT_X1:             howto manager.      (line 3223)
14330* BFD_RELOC_TILEGX_SHAMT_Y0:             howto manager.      (line 3224)
14331* BFD_RELOC_TILEGX_SHAMT_Y1:             howto manager.      (line 3225)
14332* BFD_RELOC_TILEGX_TLS_DTPMOD32:         howto manager.      (line 3295)
14333* BFD_RELOC_TILEGX_TLS_DTPMOD64:         howto manager.      (line 3292)
14334* BFD_RELOC_TILEGX_TLS_DTPOFF32:         howto manager.      (line 3296)
14335* BFD_RELOC_TILEGX_TLS_DTPOFF64:         howto manager.      (line 3293)
14336* BFD_RELOC_TILEGX_TLS_GD_CALL:          howto manager.      (line 3298)
14337* BFD_RELOC_TILEGX_TLS_IE_LOAD:          howto manager.      (line 3303)
14338* BFD_RELOC_TILEGX_TLS_TPOFF32:          howto manager.      (line 3297)
14339* BFD_RELOC_TILEGX_TLS_TPOFF64:          howto manager.      (line 3294)
14340* BFD_RELOC_TILEPRO_BROFF_X1:            howto manager.      (line 3123)
14341* BFD_RELOC_TILEPRO_COPY:                howto manager.      (line 3119)
14342* BFD_RELOC_TILEPRO_DEST_IMM8_X1:        howto manager.      (line 3130)
14343* BFD_RELOC_TILEPRO_GLOB_DAT:            howto manager.      (line 3120)
14344* BFD_RELOC_TILEPRO_IMM16_X0:            howto manager.      (line 3133)
14345* BFD_RELOC_TILEPRO_IMM16_X0_GOT:        howto manager.      (line 3149)
14346* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA:     howto manager.      (line 3155)
14347* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI:     howto manager.      (line 3153)
14348* BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO:     howto manager.      (line 3151)
14349* BFD_RELOC_TILEPRO_IMM16_X0_HA:         howto manager.      (line 3139)
14350* BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL:   howto manager.      (line 3147)
14351* BFD_RELOC_TILEPRO_IMM16_X0_HI:         howto manager.      (line 3137)
14352* BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL:   howto manager.      (line 3145)
14353* BFD_RELOC_TILEPRO_IMM16_X0_LO:         howto manager.      (line 3135)
14354* BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL:   howto manager.      (line 3143)
14355* BFD_RELOC_TILEPRO_IMM16_X0_PCREL:      howto manager.      (line 3141)
14356* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD:     howto manager.      (line 3171)
14357* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA:  howto manager.      (line 3177)
14358* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI:  howto manager.      (line 3175)
14359* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO:  howto manager.      (line 3173)
14360* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE:     howto manager.      (line 3179)
14361* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA:  howto manager.      (line 3185)
14362* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI:  howto manager.      (line 3183)
14363* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO:  howto manager.      (line 3181)
14364* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE:     howto manager.      (line 3190)
14365* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA:  howto manager.      (line 3196)
14366* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI:  howto manager.      (line 3194)
14367* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO:  howto manager.      (line 3192)
14368* BFD_RELOC_TILEPRO_IMM16_X1:            howto manager.      (line 3134)
14369* BFD_RELOC_TILEPRO_IMM16_X1_GOT:        howto manager.      (line 3150)
14370* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA:     howto manager.      (line 3156)
14371* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI:     howto manager.      (line 3154)
14372* BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO:     howto manager.      (line 3152)
14373* BFD_RELOC_TILEPRO_IMM16_X1_HA:         howto manager.      (line 3140)
14374* BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL:   howto manager.      (line 3148)
14375* BFD_RELOC_TILEPRO_IMM16_X1_HI:         howto manager.      (line 3138)
14376* BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL:   howto manager.      (line 3146)
14377* BFD_RELOC_TILEPRO_IMM16_X1_LO:         howto manager.      (line 3136)
14378* BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL:   howto manager.      (line 3144)
14379* BFD_RELOC_TILEPRO_IMM16_X1_PCREL:      howto manager.      (line 3142)
14380* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD:     howto manager.      (line 3172)
14381* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA:  howto manager.      (line 3178)
14382* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI:  howto manager.      (line 3176)
14383* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO:  howto manager.      (line 3174)
14384* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE:     howto manager.      (line 3180)
14385* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA:  howto manager.      (line 3186)
14386* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI:  howto manager.      (line 3184)
14387* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO:  howto manager.      (line 3182)
14388* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE:     howto manager.      (line 3191)
14389* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA:  howto manager.      (line 3197)
14390* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI:  howto manager.      (line 3195)
14391* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO:  howto manager.      (line 3193)
14392* BFD_RELOC_TILEPRO_IMM8_X0:             howto manager.      (line 3126)
14393* BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD:  howto manager.      (line 3166)
14394* BFD_RELOC_TILEPRO_IMM8_X1:             howto manager.      (line 3128)
14395* BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD:  howto manager.      (line 3167)
14396* BFD_RELOC_TILEPRO_IMM8_Y0:             howto manager.      (line 3127)
14397* BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD:  howto manager.      (line 3168)
14398* BFD_RELOC_TILEPRO_IMM8_Y1:             howto manager.      (line 3129)
14399* BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD:  howto manager.      (line 3169)
14400* BFD_RELOC_TILEPRO_JMP_SLOT:            howto manager.      (line 3121)
14401* BFD_RELOC_TILEPRO_JOFFLONG_X1:         howto manager.      (line 3124)
14402* BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT:     howto manager.      (line 3125)
14403* BFD_RELOC_TILEPRO_MF_IMM15_X1:         howto manager.      (line 3132)
14404* BFD_RELOC_TILEPRO_MMEND_X0:            howto manager.      (line 3158)
14405* BFD_RELOC_TILEPRO_MMEND_X1:            howto manager.      (line 3160)
14406* BFD_RELOC_TILEPRO_MMSTART_X0:          howto manager.      (line 3157)
14407* BFD_RELOC_TILEPRO_MMSTART_X1:          howto manager.      (line 3159)
14408* BFD_RELOC_TILEPRO_MT_IMM15_X1:         howto manager.      (line 3131)
14409* BFD_RELOC_TILEPRO_RELATIVE:            howto manager.      (line 3122)
14410* BFD_RELOC_TILEPRO_SHAMT_X0:            howto manager.      (line 3161)
14411* BFD_RELOC_TILEPRO_SHAMT_X1:            howto manager.      (line 3162)
14412* BFD_RELOC_TILEPRO_SHAMT_Y0:            howto manager.      (line 3163)
14413* BFD_RELOC_TILEPRO_SHAMT_Y1:            howto manager.      (line 3164)
14414* BFD_RELOC_TILEPRO_TLS_DTPMOD32:        howto manager.      (line 3187)
14415* BFD_RELOC_TILEPRO_TLS_DTPOFF32:        howto manager.      (line 3188)
14416* BFD_RELOC_TILEPRO_TLS_GD_CALL:         howto manager.      (line 3165)
14417* BFD_RELOC_TILEPRO_TLS_IE_LOAD:         howto manager.      (line 3170)
14418* BFD_RELOC_TILEPRO_TLS_TPOFF32:         howto manager.      (line 3189)
14419* bfd_reloc_type_lookup:                 howto manager.      (line 3419)
14420* BFD_RELOC_V850_16_GOT:                 howto manager.      (line 1525)
14421* BFD_RELOC_V850_16_GOTOFF:              howto manager.      (line 1541)
14422* BFD_RELOC_V850_16_PCREL:               howto manager.      (line 1505)
14423* BFD_RELOC_V850_16_S1:                  howto manager.      (line 1517)
14424* BFD_RELOC_V850_16_SPLIT_OFFSET:        howto manager.      (line 1515)
14425* BFD_RELOC_V850_17_PCREL:               howto manager.      (line 1507)
14426* BFD_RELOC_V850_22_PCREL:               howto manager.      (line 1459)
14427* BFD_RELOC_V850_22_PLT_PCREL:           howto manager.      (line 1529)
14428* BFD_RELOC_V850_23:                     howto manager.      (line 1509)
14429* BFD_RELOC_V850_32_ABS:                 howto manager.      (line 1513)
14430* BFD_RELOC_V850_32_GOT:                 howto manager.      (line 1527)
14431* BFD_RELOC_V850_32_GOTOFF:              howto manager.      (line 1543)
14432* BFD_RELOC_V850_32_GOTPCREL:            howto manager.      (line 1523)
14433* BFD_RELOC_V850_32_PCREL:               howto manager.      (line 1511)
14434* BFD_RELOC_V850_32_PLT_PCREL:           howto manager.      (line 1531)
14435* BFD_RELOC_V850_9_PCREL:                howto manager.      (line 1457)
14436* BFD_RELOC_V850_ALIGN:                  howto manager.      (line 1500)
14437* BFD_RELOC_V850_CALLT_15_16_OFFSET:     howto manager.      (line 1521)
14438* BFD_RELOC_V850_CALLT_16_16_OFFSET:     howto manager.      (line 1494)
14439* BFD_RELOC_V850_CALLT_6_7_OFFSET:       howto manager.      (line 1492)
14440* BFD_RELOC_V850_CODE:                   howto manager.      (line 1545)
14441* BFD_RELOC_V850_COPY:                   howto manager.      (line 1533)
14442* BFD_RELOC_V850_DATA:                   howto manager.      (line 1547)
14443* BFD_RELOC_V850_GLOB_DAT:               howto manager.      (line 1535)
14444* BFD_RELOC_V850_JMP_SLOT:               howto manager.      (line 1537)
14445* BFD_RELOC_V850_LO16_S1:                howto manager.      (line 1519)
14446* BFD_RELOC_V850_LO16_SPLIT_OFFSET:      howto manager.      (line 1502)
14447* BFD_RELOC_V850_LONGCALL:               howto manager.      (line 1496)
14448* BFD_RELOC_V850_LONGJUMP:               howto manager.      (line 1498)
14449* BFD_RELOC_V850_RELATIVE:               howto manager.      (line 1539)
14450* BFD_RELOC_V850_SDA_15_16_OFFSET:       howto manager.      (line 1463)
14451* BFD_RELOC_V850_SDA_16_16_OFFSET:       howto manager.      (line 1461)
14452* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager.      (line 1486)
14453* BFD_RELOC_V850_TDA_16_16_OFFSET:       howto manager.      (line 1479)
14454* BFD_RELOC_V850_TDA_4_4_OFFSET:         howto manager.      (line 1484)
14455* BFD_RELOC_V850_TDA_4_5_OFFSET:         howto manager.      (line 1481)
14456* BFD_RELOC_V850_TDA_6_8_OFFSET:         howto manager.      (line 1471)
14457* BFD_RELOC_V850_TDA_7_7_OFFSET:         howto manager.      (line 1477)
14458* BFD_RELOC_V850_TDA_7_8_OFFSET:         howto manager.      (line 1474)
14459* BFD_RELOC_V850_ZDA_15_16_OFFSET:       howto manager.      (line 1468)
14460* BFD_RELOC_V850_ZDA_16_16_OFFSET:       howto manager.      (line 1466)
14461* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager.      (line 1489)
14462* BFD_RELOC_VAX_GLOB_DAT:                howto manager.      (line 2423)
14463* BFD_RELOC_VAX_JMP_SLOT:                howto manager.      (line 2424)
14464* BFD_RELOC_VAX_RELATIVE:                howto manager.      (line 2425)
14465* BFD_RELOC_VISIUM_HI16:                 howto manager.      (line 3330)
14466* BFD_RELOC_VISIUM_HI16_PCREL:           howto manager.      (line 3334)
14467* BFD_RELOC_VISIUM_IM16:                 howto manager.      (line 3332)
14468* BFD_RELOC_VISIUM_IM16_PCREL:           howto manager.      (line 3336)
14469* BFD_RELOC_VISIUM_LO16:                 howto manager.      (line 3331)
14470* BFD_RELOC_VISIUM_LO16_PCREL:           howto manager.      (line 3335)
14471* BFD_RELOC_VISIUM_REL16:                howto manager.      (line 3333)
14472* BFD_RELOC_VPE4KMATH_DATA:              howto manager.      (line 2081)
14473* BFD_RELOC_VPE4KMATH_INSN:              howto manager.      (line 2082)
14474* BFD_RELOC_VTABLE_ENTRY:                howto manager.      (line 2085)
14475* BFD_RELOC_VTABLE_INHERIT:              howto manager.      (line 2084)
14476* BFD_RELOC_WASM32_ABS32_CODE:           howto manager.      (line 3343)
14477* BFD_RELOC_WASM32_CODE_POINTER:         howto manager.      (line 3345)
14478* BFD_RELOC_WASM32_COPY:                 howto manager.      (line 3344)
14479* BFD_RELOC_WASM32_INDEX:                howto manager.      (line 3346)
14480* BFD_RELOC_WASM32_LEB128:               howto manager.      (line 3338)
14481* BFD_RELOC_WASM32_LEB128_GOT:           howto manager.      (line 3339)
14482* BFD_RELOC_WASM32_LEB128_GOT_CODE:      howto manager.      (line 3340)
14483* BFD_RELOC_WASM32_LEB128_PLT:           howto manager.      (line 3341)
14484* BFD_RELOC_WASM32_PLT_INDEX:            howto manager.      (line 3342)
14485* BFD_RELOC_WASM32_PLT_SIG:              howto manager.      (line 3347)
14486* BFD_RELOC_X86_64_32S:                  howto manager.      (line  554)
14487* BFD_RELOC_X86_64_COPY:                 howto manager.      (line  549)
14488* BFD_RELOC_X86_64_DTPMOD64:             howto manager.      (line  555)
14489* BFD_RELOC_X86_64_DTPOFF32:             howto manager.      (line  560)
14490* BFD_RELOC_X86_64_DTPOFF64:             howto manager.      (line  556)
14491* BFD_RELOC_X86_64_GLOB_DAT:             howto manager.      (line  550)
14492* BFD_RELOC_X86_64_GOT32:                howto manager.      (line  547)
14493* BFD_RELOC_X86_64_GOT64:                howto manager.      (line  565)
14494* BFD_RELOC_X86_64_GOTOFF64:             howto manager.      (line  563)
14495* BFD_RELOC_X86_64_GOTPC32:              howto manager.      (line  564)
14496* BFD_RELOC_X86_64_GOTPC32_TLSDESC:      howto manager.      (line  570)
14497* BFD_RELOC_X86_64_GOTPC64:              howto manager.      (line  567)
14498* BFD_RELOC_X86_64_GOTPCREL:             howto manager.      (line  553)
14499* BFD_RELOC_X86_64_GOTPCREL64:           howto manager.      (line  566)
14500* BFD_RELOC_X86_64_GOTPCRELX:            howto manager.      (line  576)
14501* BFD_RELOC_X86_64_GOTPLT64:             howto manager.      (line  568)
14502* BFD_RELOC_X86_64_GOTTPOFF:             howto manager.      (line  561)
14503* BFD_RELOC_X86_64_IRELATIVE:            howto manager.      (line  573)
14504* BFD_RELOC_X86_64_JUMP_SLOT:            howto manager.      (line  551)
14505* BFD_RELOC_X86_64_PC32_BND:             howto manager.      (line  574)
14506* BFD_RELOC_X86_64_PLT32:                howto manager.      (line  548)
14507* BFD_RELOC_X86_64_PLT32_BND:            howto manager.      (line  575)
14508* BFD_RELOC_X86_64_PLTOFF64:             howto manager.      (line  569)
14509* BFD_RELOC_X86_64_RELATIVE:             howto manager.      (line  552)
14510* BFD_RELOC_X86_64_REX_GOTPCRELX:        howto manager.      (line  577)
14511* BFD_RELOC_X86_64_TLSDESC:              howto manager.      (line  572)
14512* BFD_RELOC_X86_64_TLSDESC_CALL:         howto manager.      (line  571)
14513* BFD_RELOC_X86_64_TLSGD:                howto manager.      (line  558)
14514* BFD_RELOC_X86_64_TLSLD:                howto manager.      (line  559)
14515* BFD_RELOC_X86_64_TPOFF32:              howto manager.      (line  562)
14516* BFD_RELOC_X86_64_TPOFF64:              howto manager.      (line  557)
14517* BFD_RELOC_XC16X_PAG:                   howto manager.      (line 2418)
14518* BFD_RELOC_XC16X_POF:                   howto manager.      (line 2419)
14519* BFD_RELOC_XC16X_SEG:                   howto manager.      (line 2420)
14520* BFD_RELOC_XC16X_SOF:                   howto manager.      (line 2421)
14521* BFD_RELOC_XGATE_24:                    howto manager.      (line 2228)
14522* BFD_RELOC_XGATE_GPAGE:                 howto manager.      (line 2226)
14523* BFD_RELOC_XGATE_IMM3:                  howto manager.      (line 2240)
14524* BFD_RELOC_XGATE_IMM4:                  howto manager.      (line 2242)
14525* BFD_RELOC_XGATE_IMM5:                  howto manager.      (line 2244)
14526* BFD_RELOC_XGATE_IMM8_HI:               howto manager.      (line 2237)
14527* BFD_RELOC_XGATE_IMM8_LO:               howto manager.      (line 2234)
14528* BFD_RELOC_XGATE_LO16:                  howto manager.      (line 2223)
14529* BFD_RELOC_XGATE_PCREL_10:              howto manager.      (line 2232)
14530* BFD_RELOC_XGATE_PCREL_9:               howto manager.      (line 2230)
14531* BFD_RELOC_XGATE_RL_GROUP:              howto manager.      (line 2219)
14532* BFD_RELOC_XGATE_RL_JUMP:               howto manager.      (line 2216)
14533* BFD_RELOC_XSTORMY16_12:                howto manager.      (line 2412)
14534* BFD_RELOC_XSTORMY16_24:                howto manager.      (line 2413)
14535* BFD_RELOC_XSTORMY16_FPTR16:            howto manager.      (line 2414)
14536* BFD_RELOC_XSTORMY16_REL_12:            howto manager.      (line 2411)
14537* BFD_RELOC_XTENSA_ASM_EXPAND:           howto manager.      (line 2609)
14538* BFD_RELOC_XTENSA_ASM_SIMPLIFY:         howto manager.      (line 2613)
14539* BFD_RELOC_XTENSA_DIFF16:               howto manager.      (line 2560)
14540* BFD_RELOC_XTENSA_DIFF32:               howto manager.      (line 2561)
14541* BFD_RELOC_XTENSA_DIFF8:                howto manager.      (line 2559)
14542* BFD_RELOC_XTENSA_GLOB_DAT:             howto manager.      (line 2551)
14543* BFD_RELOC_XTENSA_JMP_SLOT:             howto manager.      (line 2552)
14544* BFD_RELOC_XTENSA_OP0:                  howto manager.      (line 2604)
14545* BFD_RELOC_XTENSA_OP1:                  howto manager.      (line 2605)
14546* BFD_RELOC_XTENSA_OP2:                  howto manager.      (line 2606)
14547* BFD_RELOC_XTENSA_PLT:                  howto manager.      (line 2555)
14548* BFD_RELOC_XTENSA_RELATIVE:             howto manager.      (line 2553)
14549* BFD_RELOC_XTENSA_RTLD:                 howto manager.      (line 2547)
14550* BFD_RELOC_XTENSA_SLOT0_ALT:            howto manager.      (line 2587)
14551* BFD_RELOC_XTENSA_SLOT0_OP:             howto manager.      (line 2568)
14552* BFD_RELOC_XTENSA_SLOT10_ALT:           howto manager.      (line 2597)
14553* BFD_RELOC_XTENSA_SLOT10_OP:            howto manager.      (line 2578)
14554* BFD_RELOC_XTENSA_SLOT11_ALT:           howto manager.      (line 2598)
14555* BFD_RELOC_XTENSA_SLOT11_OP:            howto manager.      (line 2579)
14556* BFD_RELOC_XTENSA_SLOT12_ALT:           howto manager.      (line 2599)
14557* BFD_RELOC_XTENSA_SLOT12_OP:            howto manager.      (line 2580)
14558* BFD_RELOC_XTENSA_SLOT13_ALT:           howto manager.      (line 2600)
14559* BFD_RELOC_XTENSA_SLOT13_OP:            howto manager.      (line 2581)
14560* BFD_RELOC_XTENSA_SLOT14_ALT:           howto manager.      (line 2601)
14561* BFD_RELOC_XTENSA_SLOT14_OP:            howto manager.      (line 2582)
14562* BFD_RELOC_XTENSA_SLOT1_ALT:            howto manager.      (line 2588)
14563* BFD_RELOC_XTENSA_SLOT1_OP:             howto manager.      (line 2569)
14564* BFD_RELOC_XTENSA_SLOT2_ALT:            howto manager.      (line 2589)
14565* BFD_RELOC_XTENSA_SLOT2_OP:             howto manager.      (line 2570)
14566* BFD_RELOC_XTENSA_SLOT3_ALT:            howto manager.      (line 2590)
14567* BFD_RELOC_XTENSA_SLOT3_OP:             howto manager.      (line 2571)
14568* BFD_RELOC_XTENSA_SLOT4_ALT:            howto manager.      (line 2591)
14569* BFD_RELOC_XTENSA_SLOT4_OP:             howto manager.      (line 2572)
14570* BFD_RELOC_XTENSA_SLOT5_ALT:            howto manager.      (line 2592)
14571* BFD_RELOC_XTENSA_SLOT5_OP:             howto manager.      (line 2573)
14572* BFD_RELOC_XTENSA_SLOT6_ALT:            howto manager.      (line 2593)
14573* BFD_RELOC_XTENSA_SLOT6_OP:             howto manager.      (line 2574)
14574* BFD_RELOC_XTENSA_SLOT7_ALT:            howto manager.      (line 2594)
14575* BFD_RELOC_XTENSA_SLOT7_OP:             howto manager.      (line 2575)
14576* BFD_RELOC_XTENSA_SLOT8_ALT:            howto manager.      (line 2595)
14577* BFD_RELOC_XTENSA_SLOT8_OP:             howto manager.      (line 2576)
14578* BFD_RELOC_XTENSA_SLOT9_ALT:            howto manager.      (line 2596)
14579* BFD_RELOC_XTENSA_SLOT9_OP:             howto manager.      (line 2577)
14580* BFD_RELOC_XTENSA_TLSDESC_ARG:          howto manager.      (line 2618)
14581* BFD_RELOC_XTENSA_TLSDESC_FN:           howto manager.      (line 2617)
14582* BFD_RELOC_XTENSA_TLS_ARG:              howto manager.      (line 2622)
14583* BFD_RELOC_XTENSA_TLS_CALL:             howto manager.      (line 2623)
14584* BFD_RELOC_XTENSA_TLS_DTPOFF:           howto manager.      (line 2619)
14585* BFD_RELOC_XTENSA_TLS_FUNC:             howto manager.      (line 2621)
14586* BFD_RELOC_XTENSA_TLS_TPOFF:            howto manager.      (line 2620)
14587* BFD_RELOC_Z80_BYTE0:                   howto manager.      (line 2627)
14588* BFD_RELOC_Z80_BYTE1:                   howto manager.      (line 2629)
14589* BFD_RELOC_Z80_BYTE2:                   howto manager.      (line 2631)
14590* BFD_RELOC_Z80_BYTE3:                   howto manager.      (line 2633)
14591* BFD_RELOC_Z80_DISP8:                   howto manager.      (line 2625)
14592* BFD_RELOC_Z80_WORD0:                   howto manager.      (line 2635)
14593* BFD_RELOC_Z80_WORD1:                   howto manager.      (line 2637)
14594* BFD_RELOC_Z8K_CALLR:                   howto manager.      (line 2641)
14595* BFD_RELOC_Z8K_DISP7:                   howto manager.      (line 2639)
14596* BFD_RELOC_Z8K_IMM4L:                   howto manager.      (line 2643)
14597* bfd_rename_section:                    section prototypes. (line  167)
14598* bfd_scan_arch:                         Architectures.      (line  574)
14599* bfd_scan_vma:                          Miscellaneous.      (line  126)
14600* bfd_sections_find_if:                  section prototypes. (line  197)
14601* bfd_section_already_linked:            Writing the symbol table.
14602                                                             (line   55)
14603* bfd_section_list_clear:                section prototypes. (line    7)
14604* bfd_set_archive_head:                  Archives.           (line   74)
14605* bfd_set_arch_info:                     Architectures.      (line  615)
14606* bfd_set_assert_handler:                Error reporting.    (line  162)
14607* bfd_set_default_target:                bfd_target.         (line  557)
14608* bfd_set_error:                         Error reporting.    (line   58)
14609* bfd_set_error_handler:                 Error reporting.    (line  128)
14610* bfd_set_error_program_name:            Error reporting.    (line  136)
14611* bfd_set_filename:                      Opening and Closing.
14612                                                             (line  529)
14613* bfd_set_file_flags:                    Miscellaneous.      (line   45)
14614* bfd_set_format:                        Formats.            (line   67)
14615* bfd_set_gp_size:                       Miscellaneous.      (line  116)
14616* bfd_set_input_error:                   Error reporting.    (line   69)
14617* bfd_set_private_flags:                 Miscellaneous.      (line  174)
14618* bfd_set_reloc:                         Miscellaneous.      (line   33)
14619* bfd_set_section_contents:              section prototypes. (line  228)
14620* bfd_set_section_flags:                 section prototypes. (line  154)
14621* bfd_set_section_size:                  section prototypes. (line  214)
14622* bfd_set_start_address:                 Miscellaneous.      (line   95)
14623* bfd_set_symtab:                        symbol handling functions.
14624                                                             (line   63)
14625* bfd_symbol_info:                       symbol handling functions.
14626                                                             (line  135)
14627* bfd_target_list:                       bfd_target.         (line  609)
14628* bfd_update_compression_header:         Miscellaneous.      (line  353)
14629* bfd_write_bigendian_4byte_int:         Internal.           (line   12)
14630* bfd_zalloc:                            Opening and Closing.
14631                                                             (line  257)
14632* bfd_zalloc2:                           Opening and Closing.
14633                                                             (line  266)
14634* check_build_id_file:                   Opening and Closing.
14635                                                             (line  491)
14636* coff_symbol_type:                      coff.               (line  233)
14637* core_file_matches_executable_p:        Core Files.         (line   38)
14638* find_separate_debug_file:              Opening and Closing.
14639                                                             (line  365)
14640* generic_core_file_matches_executable_p: Core Files.        (line   48)
14641* get_build_id:                          Opening and Closing.
14642                                                             (line  460)
14643* get_build_id_name:                     Opening and Closing.
14644                                                             (line  474)
14645* Hash tables:                           Hash Tables.        (line    6)
14646* internal object-file format:           Canonical format.   (line   11)
14647* Linker:                                Linker Functions.   (line    6)
14648* Other functions:                       Miscellaneous.      (line  188)
14649* separate_alt_debug_file_exists:        Opening and Closing.
14650                                                             (line  356)
14651* separate_debug_file_exists:            Opening and Closing.
14652                                                             (line  343)
14653* struct bfd_iovec:                      Miscellaneous.      (line  414)
14654* target vector (_bfd_final_link):       Performing the Final Link.
14655                                                             (line    6)
14656* target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table.
14657                                                             (line    6)
14658* target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table.
14659                                                             (line    6)
14660* The HOWTO Macro:                       typedef arelent.    (line  287)
14661* what is it?:                           Overview.           (line    6)
14662
14663
14664
14665Tag Table:
14666Node: Top1051
14667Node: Overview1387
14668Node: History2445
14669Node: How It Works3390
14670Node: What BFD Version 2 Can Do4927
14671Node: BFD information loss6244
14672Node: Canonical format8785
14673Node: BFD front end13128
14674Node: typedef bfd13552
14675Node: Error reporting31009
14676Node: Miscellaneous36260
14677Node: Memory Usage55374
14678Node: Initialization56605
14679Node: Sections57281
14680Node: Section Input57764
14681Node: Section Output58958
14682Node: typedef asection61445
14683Node: section prototypes85488
14684Node: Symbols96232
14685Node: Reading Symbols97835
14686Node: Writing Symbols98943
14687Node: Mini Symbols100687
14688Node: typedef asymbol101661
14689Node: symbol handling functions107746
14690Node: Archives113121
14691Node: Formats117258
14692Node: Relocations120209
14693Node: typedef arelent120936
14694Node: howto manager135854
14695Node: Core Files268408
14696Node: Targets270446
14697Node: bfd_target272421
14698Node: Architectures299756
14699Node: Opening and Closing331593
14700Node: Internal350056
14701Node: File Caching356888
14702Node: Linker Functions358806
14703Node: Creating a Linker Hash Table360480
14704Node: Adding Symbols to the Hash Table362219
14705Node: Differing file formats363119
14706Node: Adding symbols from an object file364844
14707Node: Adding symbols from an archive366994
14708Node: Performing the Final Link369340
14709Node: Information provided by the linker370581
14710Node: Relocating the section contents371735
14711Node: Writing the symbol table373487
14712Node: Hash Tables380641
14713Node: Creating and Freeing a Hash Table381839
14714Node: Looking Up or Entering a String383089
14715Node: Traversing a Hash Table384342
14716Node: Deriving a New Hash Table Type385131
14717Node: Define the Derived Structures386197
14718Node: Write the Derived Creation Routine387278
14719Node: Write Other Derived Routines389903
14720Node: BFD back ends391218
14721Node: What to Put Where391488
14722Node: aout391668
14723Node: coff397950
14724Node: elf426101
14725Node: mmo426502
14726Node: File layout427372
14727Node: Symbol-table433285
14728Node: mmo section mapping437048
14729Node: GNU Free Documentation License440702
14730Node: BFD Index465766
14731
14732End Tag Table
14733