1194140SimpThis is
2194140Simp/net/quasar/src-5/NetBSD/src/tools/binutils/../../external/gpl3/binutils/dist/bfd/doc/bfd.info,
3194140Simpproduced by makeinfo version 4.8 from
4194153Simp/net/quasar/src-5/NetBSD/src/tools/binutils/../../external/gpl3/binutils/dist/bfd/doc/bfd.texi.
5194153Simp
6194153SimpINFO-DIR-SECTION Software development
7194153SimpSTART-INFO-DIR-ENTRY
8194153Simp* Bfd: (bfd).                   The Binary File Descriptor library.
9194153SimpEND-INFO-DIR-ENTRY
10194153Simp
11194153Simp   This file documents the BFD library.
12194153Simp
13194150Simp   Copyright (C) 1991-2022 Free Software Foundation, Inc.
14194153Simp
15194148Simp   Permission is granted to copy, distribute and/or modify this document
16under the terms of the GNU Free Documentation License, Version 1.3 or
17any later version published by the Free Software Foundation; with the
18Invariant Sections being "GNU General Public License" and "Funding Free
19Software", the Front-Cover texts being (a) (see below), and with the
20Back-Cover Texts being (b) (see below).  A copy of the license is
21included in the section entitled "GNU Free Documentation License".
22
23   (a) The FSF's Front-Cover Text is:
24
25   A GNU Manual
26
27   (b) The FSF's Back-Cover Text is:
28
29   You have freedom to copy and modify this GNU Manual, like GNU
30software.  Copies published by the Free Software Foundation raise
31funds for GNU development.
32
33
34File: bfd.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
35
36   This file documents the binary file descriptor library libbfd.
37
38* Menu:
39
40* Overview::			Overview of BFD
41* BFD front end::		BFD front end
42* BFD back ends::		BFD back ends
43* GNU Free Documentation License::  GNU Free Documentation License
44* BFD Index::		BFD Index
45
46
47File: bfd.info,  Node: Overview,  Next: BFD front end,  Prev: Top,  Up: Top
48
491 Introduction
50**************
51
52BFD is a package which allows applications to use the same routines to
53operate on object files whatever the object file format.  A new object
54file format can be supported simply by creating a new BFD back end and
55adding it to the library.
56
57   BFD is split into two parts: the front end, and the back ends (one
58for each object file format).
59   * The front end of BFD provides the interface to the user. It manages
60     memory and various canonical data structures. The front end also
61     decides which back end to use and when to call back end routines.
62
63   * The back ends provide BFD its view of the real world. Each back
64     end provides a set of calls which the BFD front end can use to
65     maintain its canonical form. The back ends also may keep around
66     information for their own use, for greater efficiency.
67
68* Menu:
69
70* History::			History
71* How It Works::		How It Works
72* What BFD Version 2 Can Do::	What BFD Version 2 Can Do
73
74
75File: bfd.info,  Node: History,  Next: How It Works,  Prev: Overview,  Up: Overview
76
771.1 History
78===========
79
80One spur behind BFD was the desire, on the part of the GNU 960 team at
81Intel Oregon, for interoperability of applications on their COFF and
82b.out file formats.  Cygnus was providing GNU support for the team, and
83was contracted to provide the required functionality.
84
85   The name came from a conversation David Wallace was having with
86Richard Stallman about the library: RMS said that it would be quite
87hard--David said "BFD".  Stallman was right, but the name stuck.
88
89   At the same time, Ready Systems wanted much the same thing, but for
90different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k
91coff.
92
93   BFD was first implemented by members of Cygnus Support; Steve
94Chamberlain (`sac@cygnus.com'), John Gilmore (`gnu@cygnus.com'), K.
95Richard Pixley (`rich@cygnus.com') and David Henkel-Wallace
96(`gumby@cygnus.com').
97
98
99File: bfd.info,  Node: How It Works,  Next: What BFD Version 2 Can Do,  Prev: History,  Up: Overview
100
1011.2 How To Use BFD
102==================
103
104To use the library, include `bfd.h' and link with `libbfd.a'.
105
106   BFD provides a common interface to the parts of an object file for a
107calling application.
108
109   When an application successfully opens a target file (object,
110archive, or whatever), a pointer to an internal structure is returned.
111This pointer points to a structure called `bfd', described in `bfd.h'.
112Our convention is to call this pointer a BFD, and instances of it
113within code `abfd'.  All operations on the target object file are
114applied as methods to the BFD.  The mapping is defined within `bfd.h'
115in a set of macros, all beginning with `bfd_' to reduce namespace
116pollution.
117
118   For example, this sequence does what you would probably expect:
119return the number of sections in an object file attached to a BFD
120`abfd'.
121
122     #include "bfd.h"
123
124     unsigned int number_of_sections (abfd)
125     bfd *abfd;
126     {
127       return bfd_count_sections (abfd);
128     }
129
130   The abstraction used within BFD is that an object file has:
131
132   * a header,
133
134   * a number of sections containing raw data (*note Sections::),
135
136   * a set of relocations (*note Relocations::), and
137
138   * some symbol information (*note Symbols::).
139   Also, BFDs opened for archives have the additional attribute of an
140index and contain subordinate BFDs. This approach is fine for a.out and
141coff, but loses efficiency when applied to formats such as S-records and
142IEEE-695.
143
144
145File: bfd.info,  Node: What BFD Version 2 Can Do,  Prev: How It Works,  Up: Overview
146
1471.3 What BFD Version 2 Can Do
148=============================
149
150When an object file is opened, BFD subroutines automatically determine
151the format of the input object file.  They then build a descriptor in
152memory with pointers to routines that will be used to access elements of
153the object file's data structures.
154
155   As different information from the object files is required, BFD
156reads from different sections of the file and processes them.  For
157example, a very common operation for the linker is processing symbol
158tables.  Each BFD back end provides a routine for converting between
159the object file's representation of symbols and an internal canonical
160format. When the linker asks for the symbol table of an object file, it
161calls through a memory pointer to the routine from the relevant BFD
162back end which reads and converts the table into a canonical form.  The
163linker then operates upon the canonical form. When the link is finished
164and the linker writes the output file's symbol table, another BFD back
165end routine is called to take the newly created symbol table and
166convert it into the chosen output format.
167
168* Menu:
169
170* BFD information loss::	Information Loss
171* Canonical format::		The BFD	canonical object-file format
172
173
174File: bfd.info,  Node: BFD information loss,  Next: Canonical format,  Up: What BFD Version 2 Can Do
175
1761.3.1 Information Loss
177----------------------
178
179_Information can be lost during output._ The output formats supported
180by BFD do not provide identical facilities, and information which can
181be described in one form has nowhere to go in another format. One
182example of this is alignment information in `b.out'. There is nowhere
183in an `a.out' format file to store alignment information on the
184contained data, so when a file is linked from `b.out' and an `a.out'
185image is produced, alignment information will not propagate to the
186output file. (The linker will still use the alignment information
187internally, so the link is performed correctly).
188
189   Another example is COFF section names. COFF files may contain an
190unlimited number of sections, each one with a textual section name. If
191the target of the link is a format which does not have many sections
192(e.g., `a.out') or has sections without names (e.g., the Oasys format),
193the link cannot be done simply. You can circumvent this problem by
194describing the desired input-to-output section mapping with the linker
195command language.
196
197   _Information can be lost during canonicalization._ The BFD internal
198canonical form of the external formats is not exhaustive; there are
199structures in input formats for which there is no direct representation
200internally.  This means that the BFD back ends cannot maintain all
201possible data richness through the transformation between external to
202internal and back to external formats.
203
204   This limitation is only a problem when an application reads one
205format and writes another.  Each BFD back end is responsible for
206maintaining as much data as possible, and the internal BFD canonical
207form has structures which are opaque to the BFD core, and exported only
208to the back ends. When a file is read in one format, the canonical form
209is generated for BFD and the application. At the same time, the back
210end saves away any information which may otherwise be lost. If the data
211is then written back in the same format, the back end routine will be
212able to use the canonical form provided by the BFD core as well as the
213information it prepared earlier.  Since there is a great deal of
214commonality between back ends, there is no information lost when
215linking or copying big endian COFF to little endian COFF, or `a.out' to
216`b.out'.  When a mixture of formats is linked, the information is only
217lost from the files whose format differs from the destination.
218
219
220File: bfd.info,  Node: Canonical format,  Prev: BFD information loss,  Up: What BFD Version 2 Can Do
221
2221.3.2 The BFD canonical object-file format
223------------------------------------------
224
225The greatest potential for loss of information occurs when there is the
226least overlap between the information provided by the source format,
227that stored by the canonical format, and that needed by the destination
228format. A brief description of the canonical form may help you
229understand which kinds of data you can count on preserving across
230conversions.  
231
232_files_
233     Information stored on a per-file basis includes target machine
234     architecture, particular implementation format type, a demand
235     pageable bit, and a write protected bit.  Information like Unix
236     magic numbers is not stored here--only the magic numbers' meaning,
237     so a `ZMAGIC' file would have both the demand pageable bit and the
238     write protected text bit set.  The byte order of the target is
239     stored on a per-file basis, so that big- and little-endian object
240     files may be used with one another.
241
242_sections_
243     Each section in the input file contains the name of the section,
244     the section's original address in the object file, size and
245     alignment information, various flags, and pointers into other BFD
246     data structures.
247
248_symbols_
249     Each symbol contains a pointer to the information for the object
250     file which originally defined it, its name, its value, and various
251     flag bits.  When a BFD back end reads in a symbol table, it
252     relocates all symbols to make them relative to the base of the
253     section where they were defined.  Doing this ensures that each
254     symbol points to its containing section.  Each symbol also has a
255     varying amount of hidden private data for the BFD back end.  Since
256     the symbol points to the original file, the private data format
257     for that symbol is accessible.  `ld' can operate on a collection
258     of symbols of wildly different formats without problems.
259
260     Normal global and simple local symbols are maintained on output,
261     so an output file (no matter its format) will retain symbols
262     pointing to functions and to global, static, and common variables.
263     Some symbol information is not worth retaining; in `a.out', type
264     information is stored in the symbol table as long symbol names.
265     This information would be useless to most COFF debuggers; the
266     linker has command-line switches to allow users to throw it away.
267
268     There is one word of type information within the symbol, so if the
269     format supports symbol type information within symbols (for
270     example, COFF, Oasys) and the type is simple enough to fit within
271     one word (nearly everything but aggregates), the information will
272     be preserved.
273
274_relocation level_
275     Each canonical BFD relocation record contains a pointer to the
276     symbol to relocate to, the offset of the data to relocate, the
277     section the data is in, and a pointer to a relocation type
278     descriptor. Relocation is performed by passing messages through
279     the relocation type descriptor and the symbol pointer. Therefore,
280     relocations can be performed on output data using a relocation
281     method that is only available in one of the input formats. For
282     instance, Oasys provides a byte relocation format.  A relocation
283     record requesting this relocation type would point indirectly to a
284     routine to perform this, so the relocation may be performed on a
285     byte being written to a 68k COFF file, even though 68k COFF has no
286     such relocation type.
287
288_line numbers_
289     Object formats can contain, for debugging purposes, some form of
290     mapping between symbols, source line numbers, and addresses in the
291     output file.  These addresses have to be relocated along with the
292     symbol information.  Each symbol with an associated list of line
293     number records points to the first record of the list.  The head
294     of a line number list consists of a pointer to the symbol, which
295     allows finding out the address of the function whose line number
296     is being described. The rest of the list is made up of pairs:
297     offsets into the section and line numbers. Any format which can
298     simply derive this information can pass it successfully between
299     formats.
300
301
302File: bfd.info,  Node: BFD front end,  Next: BFD back ends,  Prev: Overview,  Up: Top
303
3042 BFD Front End
305***************
306
307* Menu:
308
309* typedef bfd::
310* Error reporting::
311* Miscellaneous::
312* Memory Usage::
313* Initialization::
314* Sections::
315* Symbols::
316* Archives::
317* Formats::
318* Relocations::
319* Core Files::
320* Targets::
321* Architectures::
322* Opening and Closing::
323* Internal::
324* File Caching::
325* Linker Functions::
326* Hash Tables::
327
328
329File: bfd.info,  Node: typedef bfd,  Next: Error reporting,  Prev: BFD front end,  Up: BFD front end
330
3312.1 `typedef bfd'
332=================
333
334A BFD has type `bfd'; objects of this type are the cornerstone of any
335application using BFD. Using BFD consists of making references though
336the BFD and to data in the BFD.
337
338   Here is the structure that defines the type `bfd'.  It contains the
339major data about the file and pointers to the rest of the data.
340
341
342     enum bfd_direction
343       {
344         no_direction = 0,
345         read_direction = 1,
346         write_direction = 2,
347         both_direction = 3
348       };
349
350     enum bfd_plugin_format
351       {
352         bfd_plugin_unknown = 0,
353         bfd_plugin_yes = 1,
354         bfd_plugin_no = 2
355       };
356
357     struct bfd_build_id
358       {
359         bfd_size_type size;
360         bfd_byte data[1];
361       };
362
363     struct bfd
364     {
365       /* The filename the application opened the BFD with.  */
366       const char *filename;
367
368       /* A pointer to the target jump table.  */
369       const struct bfd_target *xvec;
370
371       /* The IOSTREAM, and corresponding IO vector that provide access
372          to the file backing the BFD.  */
373       void *iostream;
374       const struct bfd_iovec *iovec;
375
376       /* The caching routines use these to maintain a
377          least-recently-used list of BFDs.  */
378       struct bfd *lru_prev, *lru_next;
379
380       /* Track current file position (or current buffer offset for
381          in-memory BFDs).  When a file is closed by the caching routines,
382          BFD retains state information on the file here.  */
383       ufile_ptr where;
384
385       /* File modified time, if mtime_set is TRUE.  */
386       long mtime;
387
388       /* A unique identifier of the BFD  */
389       unsigned int id;
390
391       /* Format_specific flags.  */
392       flagword flags;
393
394       /* Values that may appear in the flags field of a BFD.  These also
395          appear in the object_flags field of the bfd_target structure, where
396          they indicate the set of flags used by that backend (not all flags
397          are meaningful for all object file formats) (FIXME: at the moment,
398          the object_flags values have mostly just been copied from backend
399          to another, and are not necessarily correct).  */
400
401     #define BFD_NO_FLAGS                0x0
402
403       /* BFD contains relocation entries.  */
404     #define HAS_RELOC                   0x1
405
406       /* BFD is directly executable.  */
407     #define EXEC_P                      0x2
408
409       /* BFD has line number information (basically used for F_LNNO in a
410          COFF header).  */
411     #define HAS_LINENO                  0x4
412
413       /* BFD has debugging information.  */
414     #define HAS_DEBUG                  0x08
415
416       /* BFD has symbols.  */
417     #define HAS_SYMS                   0x10
418
419       /* BFD has local symbols (basically used for F_LSYMS in a COFF
420          header).  */
421     #define HAS_LOCALS                 0x20
422
423       /* BFD is a dynamic object.  */
424     #define DYNAMIC                    0x40
425
426       /* Text section is write protected (if D_PAGED is not set, this is
427          like an a.out NMAGIC file) (the linker sets this by default, but
428          clears it for -r or -N).  */
429     #define WP_TEXT                    0x80
430
431       /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
432          linker sets this by default, but clears it for -r or -n or -N).  */
433     #define D_PAGED                   0x100
434
435       /* BFD is relaxable (this means that bfd_relax_section may be able to
436          do something) (sometimes bfd_relax_section can do something even if
437          this is not set).  */
438     #define BFD_IS_RELAXABLE          0x200
439
440       /* This may be set before writing out a BFD to request using a
441          traditional format.  For example, this is used to request that when
442          writing out an a.out object the symbols not be hashed to eliminate
443          duplicates.  */
444     #define BFD_TRADITIONAL_FORMAT    0x400
445
446       /* This flag indicates that the BFD contents are actually cached
447          in memory.  If this is set, iostream points to a bfd_in_memory
448          struct.  */
449     #define BFD_IN_MEMORY             0x800
450
451       /* This BFD has been created by the linker and doesn't correspond
452          to any input file.  */
453     #define BFD_LINKER_CREATED       0x1000
454
455       /* This may be set before writing out a BFD to request that it
456          be written using values for UIDs, GIDs, timestamps, etc. that
457          will be consistent from run to run.  */
458     #define BFD_DETERMINISTIC_OUTPUT 0x2000
459
460       /* Compress sections in this BFD.  */
461     #define BFD_COMPRESS             0x4000
462
463       /* Decompress sections in this BFD.  */
464     #define BFD_DECOMPRESS           0x8000
465
466       /* BFD is a dummy, for plugins.  */
467     #define BFD_PLUGIN              0x10000
468
469       /* Compress sections in this BFD with SHF_COMPRESSED from gABI.  */
470     #define BFD_COMPRESS_GABI       0x20000
471
472       /* Convert ELF common symbol type to STT_COMMON or STT_OBJECT in this
473          BFD.  */
474     #define BFD_CONVERT_ELF_COMMON  0x40000
475
476       /* Use the ELF STT_COMMON type in this BFD.  */
477     #define BFD_USE_ELF_STT_COMMON  0x80000
478
479       /* Put pathnames into archives (non-POSIX).  */
480     #define BFD_ARCHIVE_FULL_PATH  0x100000
481
482       /* Flags bits to be saved in bfd_preserve_save.  */
483     #define BFD_FLAGS_SAVED \
484       (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
485        | BFD_PLUGIN | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON \
486        | BFD_USE_ELF_STT_COMMON)
487
488       /* Flags bits which are for BFD use only.  */
489     #define BFD_FLAGS_FOR_BFD_USE_MASK \
490       (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
491        | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT \
492        | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON)
493
494       /* The format which belongs to the BFD. (object, core, etc.)  */
495       ENUM_BITFIELD (bfd_format) format : 3;
496
497       /* The direction with which the BFD was opened.  */
498       ENUM_BITFIELD (bfd_direction) direction : 2;
499
500       /* Is the file descriptor being cached?  That is, can it be closed as
501          needed, and re-opened when accessed later?  */
502       unsigned int cacheable : 1;
503
504       /* Marks whether there was a default target specified when the
505          BFD was opened. This is used to select which matching algorithm
506          to use to choose the back end.  */
507       unsigned int target_defaulted : 1;
508
509       /* ... and here: (``once'' means at least once).  */
510       unsigned int opened_once : 1;
511
512       /* Set if we have a locally maintained mtime value, rather than
513          getting it from the file each time.  */
514       unsigned int mtime_set : 1;
515
516       /* Flag set if symbols from this BFD should not be exported.  */
517       unsigned int no_export : 1;
518
519       /* Remember when output has begun, to stop strange things
520          from happening.  */
521       unsigned int output_has_begun : 1;
522
523       /* Have archive map.  */
524       unsigned int has_armap : 1;
525
526       /* Set if this is a thin archive.  */
527       unsigned int is_thin_archive : 1;
528
529       /* Set if this archive should not cache element positions.  */
530       unsigned int no_element_cache : 1;
531
532       /* Set if only required symbols should be added in the link hash table for
533          this object.  Used by VMS linkers.  */
534       unsigned int selective_search : 1;
535
536       /* Set if this is the linker output BFD.  */
537       unsigned int is_linker_output : 1;
538
539       /* Set if this is the linker input BFD.  */
540       unsigned int is_linker_input : 1;
541
542       /* If this is an input for a compiler plug-in library.  */
543       ENUM_BITFIELD (bfd_plugin_format) plugin_format : 2;
544
545       /* Set if this is a plugin output file.  */
546       unsigned int lto_output : 1;
547
548       /* Set if this is a slim LTO object not loaded with a compiler plugin.  */
549       unsigned int lto_slim_object : 1;
550
551       /* Do not attempt to modify this file.  Set when detecting errors
552          that BFD is not prepared to handle for objcopy/strip.  */
553       unsigned int read_only : 1;
554
555       /* Set to dummy BFD created when claimed by a compiler plug-in
556          library.  */
557       bfd *plugin_dummy_bfd;
558
559       /* The offset of this bfd in the file, typically 0 if it is not
560          contained in an archive.  */
561       ufile_ptr origin;
562
563       /* The origin in the archive of the proxy entry.  This will
564          normally be the same as origin, except for thin archives,
565          when it will contain the current offset of the proxy in the
566          thin archive rather than the offset of the bfd in its actual
567          container.  */
568       ufile_ptr proxy_origin;
569
570       /* A hash table for section names.  */
571       struct bfd_hash_table section_htab;
572
573       /* Pointer to linked list of sections.  */
574       struct bfd_section *sections;
575
576       /* The last section on the section list.  */
577       struct bfd_section *section_last;
578
579       /* The number of sections.  */
580       unsigned int section_count;
581
582       /* The archive plugin file descriptor.  */
583       int archive_plugin_fd;
584
585       /* The number of opens on the archive plugin file descriptor.  */
586       unsigned int archive_plugin_fd_open_count;
587
588       /* A field used by _bfd_generic_link_add_archive_symbols.  This will
589          be used only for archive elements.  */
590       int archive_pass;
591
592       /* The total size of memory from bfd_alloc.  */
593       bfd_size_type alloc_size;
594
595       /* Stuff only useful for object files:
596          The start address.  */
597       bfd_vma start_address;
598
599       /* Symbol table for output BFD (with symcount entries).
600          Also used by the linker to cache input BFD symbols.  */
601       struct bfd_symbol **outsymbols;
602
603       /* Used for input and output.  */
604       unsigned int symcount;
605
606       /* Used for slurped dynamic symbol tables.  */
607       unsigned int dynsymcount;
608
609       /* Pointer to structure which contains architecture information.  */
610       const struct bfd_arch_info *arch_info;
611
612       /* Cached length of file for bfd_get_size.  0 until bfd_get_size is
613          called, 1 if stat returns an error or the file size is too large to
614          return in ufile_ptr.  Both 0 and 1 should be treated as "unknown".  */
615       ufile_ptr size;
616
617       /* Stuff only useful for archives.  */
618       void *arelt_data;
619       struct bfd *my_archive;      /* The containing archive BFD.  */
620       struct bfd *archive_next;    /* The next BFD in the archive.  */
621       struct bfd *archive_head;    /* The first BFD in the archive.  */
622       struct bfd *nested_archives; /* List of nested archive in a flattened
623                                       thin archive.  */
624
625       union {
626         /* For input BFDs, a chain of BFDs involved in a link.  */
627         struct bfd *next;
628         /* For output BFD, the linker hash table.  */
629         struct bfd_link_hash_table *hash;
630       } link;
631
632       /* Used by the back end to hold private data.  */
633       union
634         {
635           struct aout_data_struct *aout_data;
636           struct artdata *aout_ar_data;
637           struct coff_tdata *coff_obj_data;
638           struct pe_tdata *pe_obj_data;
639           struct xcoff_tdata *xcoff_obj_data;
640           struct ecoff_tdata *ecoff_obj_data;
641           struct srec_data_struct *srec_data;
642           struct verilog_data_struct *verilog_data;
643           struct ihex_data_struct *ihex_data;
644           struct tekhex_data_struct *tekhex_data;
645           struct elf_obj_tdata *elf_obj_data;
646           struct mmo_data_struct *mmo_data;
647           struct sun_core_struct *sun_core_data;
648           struct sco5_core_struct *sco5_core_data;
649           struct trad_core_struct *trad_core_data;
650           struct som_data_struct *som_data;
651           struct hpux_core_struct *hpux_core_data;
652           struct hppabsd_core_struct *hppabsd_core_data;
653           struct sgi_core_struct *sgi_core_data;
654           struct lynx_core_struct *lynx_core_data;
655           struct osf_core_struct *osf_core_data;
656           struct cisco_core_struct *cisco_core_data;
657           struct versados_data_struct *versados_data;
658           struct netbsd_core_struct *netbsd_core_data;
659           struct mach_o_data_struct *mach_o_data;
660           struct mach_o_fat_data_struct *mach_o_fat_data;
661           struct plugin_data_struct *plugin_data;
662           struct bfd_pef_data_struct *pef_data;
663           struct bfd_pef_xlib_data_struct *pef_xlib_data;
664           struct bfd_sym_data_struct *sym_data;
665           void *any;
666         }
667       tdata;
668
669       /* Used by the application to hold private data.  */
670       void *usrdata;
671
672       /* Where all the allocated stuff under this BFD goes.  This is a
673          struct objalloc *, but we use void * to avoid requiring the inclusion
674          of objalloc.h.  */
675       void *memory;
676
677       /* For input BFDs, the build ID, if the object has one. */
678       const struct bfd_build_id *build_id;
679     };
680
681     static inline const char *
682     bfd_get_filename (const bfd *abfd)
683     {
684       return abfd->filename;
685     }
686
687     static inline bool
688     bfd_get_cacheable (const bfd *abfd)
689     {
690       return abfd->cacheable;
691     }
692
693     static inline enum bfd_format
694     bfd_get_format (const bfd *abfd)
695     {
696       return abfd->format;
697     }
698
699     static inline flagword
700     bfd_get_file_flags (const bfd *abfd)
701     {
702       return abfd->flags;
703     }
704
705     static inline bfd_vma
706     bfd_get_start_address (const bfd *abfd)
707     {
708       return abfd->start_address;
709     }
710
711     static inline unsigned int
712     bfd_get_symcount (const bfd *abfd)
713     {
714       return abfd->symcount;
715     }
716
717     static inline unsigned int
718     bfd_get_dynamic_symcount (const bfd *abfd)
719     {
720       return abfd->dynsymcount;
721     }
722
723     static inline struct bfd_symbol **
724     bfd_get_outsymbols (const bfd *abfd)
725     {
726       return abfd->outsymbols;
727     }
728
729     static inline unsigned int
730     bfd_count_sections (const bfd *abfd)
731     {
732       return abfd->section_count;
733     }
734
735     static inline bool
736     bfd_has_map (const bfd *abfd)
737     {
738       return abfd->has_armap;
739     }
740
741     static inline bool
742     bfd_is_thin_archive (const bfd *abfd)
743     {
744       return abfd->is_thin_archive;
745     }
746
747     static inline void *
748     bfd_usrdata (const bfd *abfd)
749     {
750       return abfd->usrdata;
751     }
752
753     /* See note beside bfd_set_section_userdata.  */
754     static inline bool
755     bfd_set_cacheable (bfd * abfd, bool val)
756     {
757       abfd->cacheable = val;
758       return true;
759     }
760
761     static inline void
762     bfd_set_thin_archive (bfd *abfd, bool val)
763     {
764       abfd->is_thin_archive = val;
765     }
766
767     static inline void
768     bfd_set_usrdata (bfd *abfd, void *val)
769     {
770       abfd->usrdata = val;
771     }
772
773     static inline asection *
774     bfd_asymbol_section (const asymbol *sy)
775     {
776       return sy->section;
777     }
778
779     static inline bfd_vma
780     bfd_asymbol_value (const asymbol *sy)
781     {
782       return sy->section->vma + sy->value;
783     }
784
785     static inline const char *
786     bfd_asymbol_name (const asymbol *sy)
787     {
788       return sy->name;
789     }
790
791     static inline struct bfd *
792     bfd_asymbol_bfd (const asymbol *sy)
793     {
794       return sy->the_bfd;
795     }
796
797     static inline void
798     bfd_set_asymbol_name (asymbol *sy, const char *name)
799     {
800       sy->name = name;
801     }
802
803     static inline bfd_size_type
804     bfd_get_section_limit_octets (const bfd *abfd, const asection *sec)
805     {
806       if (abfd->direction != write_direction && sec->rawsize != 0)
807         return sec->rawsize;
808       return sec->size;
809     }
810
811     /* Find the address one past the end of SEC.  */
812     static inline bfd_size_type
813     bfd_get_section_limit (const bfd *abfd, const asection *sec)
814     {
815       return (bfd_get_section_limit_octets (abfd, sec)
816               / bfd_octets_per_byte (abfd, sec));
817     }
818
819     /* Functions to handle insertion and deletion of a bfd's sections.  These
820        only handle the list pointers, ie. do not adjust section_count,
821        target_index etc.  */
822     static inline void
823     bfd_section_list_remove (bfd *abfd, asection *s)
824     {
825       asection *next = s->next;
826       asection *prev = s->prev;
827       if (prev)
828         prev->next = next;
829       else
830         abfd->sections = next;
831       if (next)
832         next->prev = prev;
833       else
834         abfd->section_last = prev;
835     }
836
837     static inline void
838     bfd_section_list_append (bfd *abfd, asection *s)
839     {
840       s->next = 0;
841       if (abfd->section_last)
842         {
843           s->prev = abfd->section_last;
844           abfd->section_last->next = s;
845         }
846       else
847         {
848           s->prev = 0;
849           abfd->sections = s;
850         }
851       abfd->section_last = s;
852     }
853
854     static inline void
855     bfd_section_list_prepend (bfd *abfd, asection *s)
856     {
857       s->prev = 0;
858       if (abfd->sections)
859         {
860           s->next = abfd->sections;
861           abfd->sections->prev = s;
862         }
863       else
864         {
865           s->next = 0;
866           abfd->section_last = s;
867         }
868       abfd->sections = s;
869     }
870
871     static inline void
872     bfd_section_list_insert_after (bfd *abfd, asection *a, asection *s)
873     {
874       asection *next = a->next;
875       s->next = next;
876       s->prev = a;
877       a->next = s;
878       if (next)
879         next->prev = s;
880       else
881         abfd->section_last = s;
882     }
883
884     static inline void
885     bfd_section_list_insert_before (bfd *abfd, asection *b, asection *s)
886     {
887       asection *prev = b->prev;
888       s->prev = prev;
889       s->next = b;
890       b->prev = s;
891       if (prev)
892         prev->next = s;
893       else
894         abfd->sections = s;
895     }
896
897     static inline bool
898     bfd_section_removed_from_list (const bfd *abfd, const asection *s)
899     {
900       return s->next ? s->next->prev != s : abfd->section_last != s;
901     }
902
903
904File: bfd.info,  Node: Error reporting,  Next: Miscellaneous,  Prev: typedef bfd,  Up: BFD front end
905
9062.2 Error reporting
907===================
908
909Most BFD functions return nonzero on success (check their individual
910documentation for precise semantics).  On an error, they call
911`bfd_set_error' to set an error condition that callers can check by
912calling `bfd_get_error'.  If that returns `bfd_error_system_call', then
913check `errno'.
914
915   The easiest way to report a BFD error to the user is to use
916`bfd_perror'.
917
9182.2.1 Type `bfd_error_type'
919---------------------------
920
921The values returned by `bfd_get_error' are defined by the enumerated
922type `bfd_error_type'.
923
924
925     typedef enum bfd_error
926     {
927       bfd_error_no_error = 0,
928       bfd_error_system_call,
929       bfd_error_invalid_target,
930       bfd_error_wrong_format,
931       bfd_error_wrong_object_format,
932       bfd_error_invalid_operation,
933       bfd_error_no_memory,
934       bfd_error_no_symbols,
935       bfd_error_no_armap,
936       bfd_error_no_more_archived_files,
937       bfd_error_malformed_archive,
938       bfd_error_missing_dso,
939       bfd_error_file_not_recognized,
940       bfd_error_file_ambiguously_recognized,
941       bfd_error_no_contents,
942       bfd_error_nonrepresentable_section,
943       bfd_error_no_debug_section,
944       bfd_error_bad_value,
945       bfd_error_file_truncated,
946       bfd_error_file_too_big,
947       bfd_error_sorry,
948       bfd_error_on_input,
949       bfd_error_invalid_error_code
950     }
951     bfd_error_type;
952   
9532.2.1.1 `bfd_get_error'
954.......................
955
956*Synopsis*
957     bfd_error_type bfd_get_error (void);
958   *Description*
959Return the current BFD error condition.
960
9612.2.1.2 `bfd_set_error'
962.......................
963
964*Synopsis*
965     void bfd_set_error (bfd_error_type error_tag);
966   *Description*
967Set the BFD error condition to be ERROR_TAG.
968
969   ERROR_TAG must not be bfd_error_on_input.  Use bfd_set_input_error
970for input errors instead.
971
9722.2.1.3 `bfd_set_input_error'
973.............................
974
975*Synopsis*
976     void bfd_set_input_error (bfd *input, bfd_error_type error_tag);
977   *Description*
978Set the BFD error condition to be bfd_error_on_input.  INPUT is the
979input bfd where the error occurred, and ERROR_TAG the bfd_error_type
980error.
981
9822.2.1.4 `bfd_errmsg'
983....................
984
985*Synopsis*
986     const char *bfd_errmsg (bfd_error_type error_tag);
987   *Description*
988Return a string describing the error ERROR_TAG, or the system error if
989ERROR_TAG is `bfd_error_system_call'.
990
9912.2.1.5 `bfd_perror'
992....................
993
994*Synopsis*
995     void bfd_perror (const char *message);
996   *Description*
997Print to the standard error stream a string describing the last BFD
998error that occurred, or the last system error if the last BFD error was
999a system call failure.  If MESSAGE is non-NULL and non-empty, the error
1000string printed is preceded by MESSAGE, a colon, and a space.  It is
1001followed by a newline.
1002
10032.2.2 BFD error handler
1004-----------------------
1005
1006Some BFD functions want to print messages describing the problem.  They
1007call a BFD error handler function.  This function may be overridden by
1008the program.
1009
1010   The BFD error handler acts like vprintf.
1011
1012
1013     typedef void (*bfd_error_handler_type) (const char *, va_list);
1014   
10152.2.2.1 `_bfd_error_handler'
1016............................
1017
1018*Synopsis*
1019     void _bfd_error_handler (const char *fmt, ...) ATTRIBUTE_PRINTF_1;
1020   *Description*
1021This is the default routine to handle BFD error messages.  Like fprintf
1022(stderr, ...), but also handles some extra format specifiers.
1023
1024   %pA section name from section.  For group components, prints group
1025name too.  %pB file name from bfd.  For archive components, prints
1026archive too.
1027
1028   Beware: Only supports a maximum of 9 format arguments.
1029
10302.2.2.2 `bfd_set_error_handler'
1031...............................
1032
1033*Synopsis*
1034     bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
1035   *Description*
1036Set the BFD error handler function.  Returns the previous function.
1037
10382.2.2.3 `bfd_set_error_program_name'
1039....................................
1040
1041*Synopsis*
1042     void bfd_set_error_program_name (const char *);
1043   *Description*
1044Set the program name to use when printing a BFD error.  This is printed
1045before the error message followed by a colon and space.  The string
1046must not be changed after it is passed to this function.
1047
10482.2.3 BFD assert handler
1049------------------------
1050
1051If BFD finds an internal inconsistency, the bfd assert handler is
1052called with information on the BFD version, BFD source file and line.
1053If this happens, most programs linked against BFD are expected to want
1054to exit with an error, or mark the current BFD operation as failed, so
1055it is recommended to override the default handler, which just calls
1056_bfd_error_handler and continues.
1057
1058
1059     typedef void (*bfd_assert_handler_type) (const char *bfd_formatmsg,
1060                                              const char *bfd_version,
1061                                              const char *bfd_file,
1062                                              int bfd_line);
1063   
10642.2.3.1 `bfd_set_assert_handler'
1065................................
1066
1067*Synopsis*
1068     bfd_assert_handler_type bfd_set_assert_handler (bfd_assert_handler_type);
1069   *Description*
1070Set the BFD assert handler function.  Returns the previous function.
1071
1072
1073File: bfd.info,  Node: Miscellaneous,  Next: Memory Usage,  Prev: Error reporting,  Up: BFD front end
1074
10752.3 Miscellaneous
1076=================
1077
10782.3.1 Miscellaneous functions
1079-----------------------------
1080
10812.3.1.1 `bfd_get_reloc_upper_bound'
1082...................................
1083
1084*Synopsis*
1085     long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
1086   *Description*
1087Return the number of bytes required to store the relocation information
1088associated with section SECT attached to bfd ABFD.  If an error occurs,
1089return -1.
1090
10912.3.1.2 `bfd_canonicalize_reloc'
1092................................
1093
1094*Synopsis*
1095     long bfd_canonicalize_reloc
1096        (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
1097   *Description*
1098Call the back end associated with the open BFD ABFD and translate the
1099external form of the relocation information attached to SEC into the
1100internal canonical form.  Place the table into memory at LOC, which has
1101been preallocated, usually by a call to `bfd_get_reloc_upper_bound'.
1102Returns the number of relocs, or -1 on error.
1103
1104   The SYMS table is also needed for horrible internal magic reasons.
1105
11062.3.1.3 `bfd_set_reloc'
1107.......................
1108
1109*Synopsis*
1110     void bfd_set_reloc
1111        (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
1112   *Description*
1113Set the relocation pointer and count within section SEC to the values
1114REL and COUNT.  The argument ABFD is ignored.
1115     #define bfd_set_reloc(abfd, asect, location, count) \
1116            BFD_SEND (abfd, _bfd_set_reloc, (abfd, asect, location, count))
1117
11182.3.1.4 `bfd_set_file_flags'
1119............................
1120
1121*Synopsis*
1122     bool bfd_set_file_flags (bfd *abfd, flagword flags);
1123   *Description*
1124Set the flag word in the BFD ABFD to the value FLAGS.
1125
1126   Possible errors are:
1127   * `bfd_error_wrong_format' - The target bfd was not of object format.
1128
1129   * `bfd_error_invalid_operation' - The target bfd was open for
1130     reading.
1131
1132   * `bfd_error_invalid_operation' - The flag word contained a bit
1133     which was not applicable to the type of file.  E.g., an attempt
1134     was made to set the `D_PAGED' bit on a BFD format which does not
1135     support demand paging.
1136
11372.3.1.5 `bfd_get_arch_size'
1138...........................
1139
1140*Synopsis*
1141     int bfd_get_arch_size (bfd *abfd);
1142   *Description*
1143Returns the normalized architecture address size, in bits, as
1144determined by the object file's format.  By normalized, we mean either
114532 or 64.  For ELF, this information is included in the header.  Use
1146bfd_arch_bits_per_address for number of bits in the architecture
1147address.
1148
1149   *Returns*
1150Returns the arch size in bits if known, `-1' otherwise.
1151
11522.3.1.6 `bfd_get_sign_extend_vma'
1153.................................
1154
1155*Synopsis*
1156     int bfd_get_sign_extend_vma (bfd *abfd);
1157   *Description*
1158Indicates if the target architecture "naturally" sign extends an
1159address.  Some architectures implicitly sign extend address values when
1160they are converted to types larger than the size of an address.  For
1161instance, bfd_get_start_address() will return an address sign extended
1162to fill a bfd_vma when this is the case.
1163
1164   *Returns*
1165Returns `1' if the target architecture is known to sign extend
1166addresses, `0' if the target architecture is known to not sign extend
1167addresses, and `-1' otherwise.
1168
11692.3.1.7 `bfd_set_start_address'
1170...............................
1171
1172*Synopsis*
1173     bool bfd_set_start_address (bfd *abfd, bfd_vma vma);
1174   *Description*
1175Make VMA the entry point of output BFD ABFD.
1176
1177   *Returns*
1178Returns `TRUE' on success, `FALSE' otherwise.
1179
11802.3.1.8 `bfd_get_gp_size'
1181.........................
1182
1183*Synopsis*
1184     unsigned int bfd_get_gp_size (bfd *abfd);
1185   *Description*
1186Return the maximum size of objects to be optimized using the GP
1187register under MIPS ECOFF.  This is typically set by the `-G' argument
1188to the compiler, assembler or linker.
1189
11902.3.1.9 `bfd_set_gp_size'
1191.........................
1192
1193*Synopsis*
1194     void bfd_set_gp_size (bfd *abfd, unsigned int i);
1195   *Description*
1196Set the maximum size of objects to be optimized using the GP register
1197under ECOFF or MIPS ELF.  This is typically set by the `-G' argument to
1198the compiler, assembler or linker.
1199
12002.3.1.10 `bfd_set_gp_value'
1201...........................
1202
1203*Synopsis*
1204     void bfd_set_gp_value (bfd *abfd, bfd_vma v);
1205   *Description*
1206Allow external access to the fucntion to set the GP value.  This is
1207specifically added for gdb-compile support.
1208
12092.3.1.11 `bfd_scan_vma'
1210.......................
1211
1212*Synopsis*
1213     bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
1214   *Description*
1215Convert, like `strtoul', a numerical expression STRING into a `bfd_vma'
1216integer, and return that integer.  (Though without as many bells and
1217whistles as `strtoul'.)  The expression is assumed to be unsigned
1218(i.e., positive).  If given a BASE, it is used as the base for
1219conversion.  A base of 0 causes the function to interpret the string in
1220hex if a leading "0x" or "0X" is found, otherwise in octal if a leading
1221zero is found, otherwise in decimal.
1222
1223   If the value would overflow, the maximum `bfd_vma' value is returned.
1224
12252.3.1.12 `bfd_copy_private_header_data'
1226.......................................
1227
1228*Synopsis*
1229     bool bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
1230   *Description*
1231Copy private BFD header information from the BFD IBFD to the the BFD
1232OBFD.  This copies information that may require sections to exist, but
1233does not require symbol tables.  Return `true' on success, `false' on
1234error.  Possible error returns are:
1235
1236   * `bfd_error_no_memory' - Not enough memory exists to create private
1237     data for OBFD.
1238
1239     #define bfd_copy_private_header_data(ibfd, obfd) \
1240            BFD_SEND (obfd, _bfd_copy_private_header_data, \
1241                      (ibfd, obfd))
1242
12432.3.1.13 `bfd_copy_private_bfd_data'
1244....................................
1245
1246*Synopsis*
1247     bool bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
1248   *Description*
1249Copy private BFD information from the BFD IBFD to the the BFD OBFD.
1250Return `TRUE' on success, `FALSE' on error.  Possible error returns are:
1251
1252   * `bfd_error_no_memory' - Not enough memory exists to create private
1253     data for OBFD.
1254
1255     #define bfd_copy_private_bfd_data(ibfd, obfd) \
1256            BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
1257                      (ibfd, obfd))
1258
12592.3.1.14 `bfd_set_private_flags'
1260................................
1261
1262*Synopsis*
1263     bool bfd_set_private_flags (bfd *abfd, flagword flags);
1264   *Description*
1265Set private BFD flag information in the BFD ABFD.  Return `TRUE' on
1266success, `FALSE' on error.  Possible error returns are:
1267
1268   * `bfd_error_no_memory' - Not enough memory exists to create private
1269     data for OBFD.
1270
1271     #define bfd_set_private_flags(abfd, flags) \
1272            BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
1273
12742.3.1.15 `Other functions'
1275..........................
1276
1277*Description*
1278The following functions exist but have not yet been documented.
1279     #define bfd_sizeof_headers(abfd, info) \
1280            BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
1281
1282     #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
1283            BFD_SEND (abfd, _bfd_find_nearest_line, \
1284                      (abfd, syms, sec, off, file, func, line, NULL))
1285
1286     #define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
1287                                                line, disc) \
1288            BFD_SEND (abfd, _bfd_find_nearest_line, \
1289                      (abfd, syms, sec, off, file, func, line, disc))
1290
1291     #define bfd_find_line(abfd, syms, sym, file, line) \
1292            BFD_SEND (abfd, _bfd_find_line, \
1293                      (abfd, syms, sym, file, line))
1294
1295     #define bfd_find_inliner_info(abfd, file, func, line) \
1296            BFD_SEND (abfd, _bfd_find_inliner_info, \
1297                      (abfd, file, func, line))
1298
1299     #define bfd_debug_info_start(abfd) \
1300            BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
1301
1302     #define bfd_debug_info_end(abfd) \
1303            BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
1304
1305     #define bfd_debug_info_accumulate(abfd, section) \
1306            BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
1307
1308     #define bfd_stat_arch_elt(abfd, stat) \
1309            BFD_SEND (abfd->my_archive ? abfd->my_archive : abfd, \
1310                      _bfd_stat_arch_elt, (abfd, stat))
1311
1312     #define bfd_update_armap_timestamp(abfd) \
1313            BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
1314
1315     #define bfd_set_arch_mach(abfd, arch, mach)\
1316            BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
1317
1318     #define bfd_relax_section(abfd, section, link_info, again) \
1319            BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
1320
1321     #define bfd_gc_sections(abfd, link_info) \
1322            BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
1323
1324     #define bfd_lookup_section_flags(link_info, flag_info, section) \
1325            BFD_SEND (abfd, _bfd_lookup_section_flags, (link_info, flag_info, section))
1326
1327     #define bfd_merge_sections(abfd, link_info) \
1328            BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
1329
1330     #define bfd_is_group_section(abfd, sec) \
1331            BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
1332
1333     #define bfd_group_name(abfd, sec) \
1334            BFD_SEND (abfd, _bfd_group_name, (abfd, sec))
1335
1336     #define bfd_discard_group(abfd, sec) \
1337            BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
1338
1339     #define bfd_link_hash_table_create(abfd) \
1340            BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
1341
1342     #define bfd_link_add_symbols(abfd, info) \
1343            BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
1344
1345     #define bfd_link_just_syms(abfd, sec, info) \
1346            BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
1347
1348     #define bfd_final_link(abfd, info) \
1349            BFD_SEND (abfd, _bfd_final_link, (abfd, info))
1350
1351     #define bfd_free_cached_info(abfd) \
1352            BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
1353
1354     #define bfd_get_dynamic_symtab_upper_bound(abfd) \
1355            BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
1356
1357     #define bfd_print_private_bfd_data(abfd, file)\
1358            BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
1359
1360     #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
1361            BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
1362
1363     #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
1364            BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
1365                                                        dyncount, dynsyms, ret))
1366
1367     #define bfd_get_dynamic_reloc_upper_bound(abfd) \
1368            BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
1369
1370     #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
1371            BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
1372
1373     extern bfd_byte *bfd_get_relocated_section_contents
1374       (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
1375        bool, asymbol **);
1376
13772.3.1.16 `bfd_alt_mach_code'
1378............................
1379
1380*Synopsis*
1381     bool bfd_alt_mach_code (bfd *abfd, int alternative);
1382   *Description*
1383When more than one machine code number is available for the same
1384machine type, this function can be used to switch between the preferred
1385one (alternative == 0) and any others.  Currently, only ELF supports
1386this feature, with up to two alternate machine codes.
1387
13882.3.1.17 `bfd_emul_get_maxpagesize'
1389...................................
1390
1391*Synopsis*
1392     bfd_vma bfd_emul_get_maxpagesize (const char *);
1393   *Description*
1394Returns the maximum page size, in bytes, as determined by emulation.
1395
1396   *Returns*
1397Returns the maximum page size in bytes for ELF, 0 otherwise.
1398
13992.3.1.18 `bfd_emul_get_commonpagesize'
1400......................................
1401
1402*Synopsis*
1403     bfd_vma bfd_emul_get_commonpagesize (const char *);
1404   *Description*
1405Returns the common page size, in bytes, as determined by emulation.
1406
1407   *Returns*
1408Returns the common page size in bytes for ELF, 0 otherwise.
1409
14102.3.1.19 `bfd_demangle'
1411.......................
1412
1413*Synopsis*
1414     char *bfd_demangle (bfd *, const char *, int);
1415   *Description*
1416Wrapper around cplus_demangle.  Strips leading underscores and other
1417such chars that would otherwise confuse the demangler.  If passed a g++
1418v3 ABI mangled name, returns a buffer allocated with malloc holding the
1419demangled name.  Returns NULL otherwise and on memory alloc failure.
1420
14212.3.1.20 `bfd_update_compression_header'
1422........................................
1423
1424*Synopsis*
1425     void bfd_update_compression_header
1426        (bfd *abfd, bfd_byte *contents, asection *sec);
1427   *Description*
1428Set the compression header at CONTENTS of SEC in ABFD and update
1429elf_section_flags for compression.
1430
14312.3.1.21 `bfd_check_compression_header'
1432.......................................
1433
1434*Synopsis*
1435     bool bfd_check_compression_header
1436        (bfd *abfd, bfd_byte *contents, asection *sec,
1437         bfd_size_type *uncompressed_size,
1438         unsigned int *uncompressed_alignment_power);
1439   *Description*
1440Check the compression header at CONTENTS of SEC in ABFD and store the
1441uncompressed size in UNCOMPRESSED_SIZE and the uncompressed data
1442alignment in UNCOMPRESSED_ALIGNMENT_POWER if the compression header is
1443valid.
1444
1445   *Returns*
1446Return TRUE if the compression header is valid.
1447
14482.3.1.22 `bfd_get_compression_header_size'
1449..........................................
1450
1451*Synopsis*
1452     int bfd_get_compression_header_size (bfd *abfd, asection *sec);
1453   *Description*
1454Return the size of the compression header of SEC in ABFD.
1455
1456   *Returns*
1457Return the size of the compression header in bytes.
1458
14592.3.1.23 `bfd_convert_section_size'
1460...................................
1461
1462*Synopsis*
1463     bfd_size_type bfd_convert_section_size
1464        (bfd *ibfd, asection *isec, bfd *obfd, bfd_size_type size);
1465   *Description*
1466Convert the size SIZE of the section ISEC in input BFD IBFD to the
1467section size in output BFD OBFD.
1468
14692.3.1.24 `bfd_convert_section_contents'
1470.......................................
1471
1472*Synopsis*
1473     bool bfd_convert_section_contents
1474        (bfd *ibfd, asection *isec, bfd *obfd,
1475         bfd_byte **ptr, bfd_size_type *ptr_size);
1476   *Description*
1477Convert the contents, stored in *PTR, of the section ISEC in input BFD
1478IBFD to output BFD OBFD if needed.  The original buffer pointed to by
1479*PTR may be freed and *PTR is returned with memory malloc'd by this
1480function, and the new size written to PTR_SIZE.
1481
14822.3.1.25 `struct bfd_iovec'
1483...........................
1484
1485*Description*
1486The `struct bfd_iovec' contains the internal file I/O class.  Each
1487`BFD' has an instance of this class and all file I/O is routed through
1488it (it is assumed that the instance implements all methods listed
1489below).
1490     struct bfd_iovec
1491     {
1492       /* To avoid problems with macros, a "b" rather than "f"
1493          prefix is prepended to each method name.  */
1494       /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching
1495          bytes starting at PTR.  Return the number of bytes actually
1496          transfered (a read past end-of-file returns less than NBYTES),
1497          or -1 (setting `bfd_error') if an error occurs.  */
1498       file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
1499       file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
1500                           file_ptr nbytes);
1501       /* Return the current IOSTREAM file offset, or -1 (setting `bfd_error'
1502          if an error occurs.  */
1503       file_ptr (*btell) (struct bfd *abfd);
1504       /* For the following, on successful completion a value of 0 is returned.
1505          Otherwise, a value of -1 is returned (and `bfd_error' is set).  */
1506       int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
1507       int (*bclose) (struct bfd *abfd);
1508       int (*bflush) (struct bfd *abfd);
1509       int (*bstat) (struct bfd *abfd, struct stat *sb);
1510       /* Mmap a part of the files. ADDR, LEN, PROT, FLAGS and OFFSET are the usual
1511          mmap parameter, except that LEN and OFFSET do not need to be page
1512          aligned.  Returns (void *)-1 on failure, mmapped address on success.
1513          Also write in MAP_ADDR the address of the page aligned buffer and in
1514          MAP_LEN the size mapped (a page multiple).  Use unmap with MAP_ADDR and
1515          MAP_LEN to unmap.  */
1516       void *(*bmmap) (struct bfd *abfd, void *addr, bfd_size_type len,
1517                       int prot, int flags, file_ptr offset,
1518                       void **map_addr, bfd_size_type *map_len);
1519     };
1520     extern const struct bfd_iovec _bfd_memory_iovec;
1521
15222.3.1.26 `bfd_get_mtime'
1523........................
1524
1525*Synopsis*
1526     long bfd_get_mtime (bfd *abfd);
1527   *Description*
1528Return the file modification time (as read from the file system, or
1529from the archive header for archive members).
1530
15312.3.1.27 `bfd_get_size'
1532.......................
1533
1534*Synopsis*
1535     ufile_ptr bfd_get_size (bfd *abfd);
1536   *Description*
1537Return the file size (as read from file system) for the file associated
1538with BFD ABFD.
1539
1540   The initial motivation for, and use of, this routine is not so we
1541can get the exact size of the object the BFD applies to, since that
1542might not be generally possible (archive members for example).  It
1543would be ideal if someone could eventually modify it so that such
1544results were guaranteed.
1545
1546   Instead, we want to ask questions like "is this NNN byte sized
1547object I'm about to try read from file offset YYY reasonable?"  As as
1548example of where we might do this, some object formats use string
1549tables for which the first `sizeof (long)' bytes of the table contain
1550the size of the table itself, including the size bytes.  If an
1551application tries to read what it thinks is one of these string tables,
1552without some way to validate the size, and for some reason the size is
1553wrong (byte swapping error, wrong location for the string table, etc.),
1554the only clue is likely to be a read error when it tries to read the
1555table, or a "virtual memory exhausted" error when it tries to allocate
155615 bazillon bytes of space for the 15 bazillon byte table it is about
1557to read.  This function at least allows us to answer the question, "is
1558the size reasonable?".
1559
1560   A return value of zero indicates the file size is unknown.
1561
15622.3.1.28 `bfd_get_file_size'
1563............................
1564
1565*Synopsis*
1566     ufile_ptr bfd_get_file_size (bfd *abfd);
1567   *Description*
1568Return the file size (as read from file system) for the file associated
1569with BFD ABFD.  It supports both normal files and archive elements.
1570
15712.3.1.29 `bfd_mmap'
1572...................
1573
1574*Synopsis*
1575     void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len,
1576         int prot, int flags, file_ptr offset,
1577         void **map_addr, bfd_size_type *map_len);
1578   *Description*
1579Return mmap()ed region of the file, if possible and implemented.  LEN
1580and OFFSET do not need to be page aligned.  The page aligned address
1581and length are written to MAP_ADDR and MAP_LEN.
1582
1583
1584File: bfd.info,  Node: Memory Usage,  Next: Initialization,  Prev: Miscellaneous,  Up: BFD front end
1585
15862.4 Memory Usage
1587================
1588
1589BFD keeps all of its internal structures in obstacks. There is one
1590obstack per open BFD file, into which the current state is stored. When
1591a BFD is closed, the obstack is deleted, and so everything which has
1592been allocated by BFD for the closing file is thrown away.
1593
1594   BFD does not free anything created by an application, but pointers
1595into `bfd' structures become invalid on a `bfd_close'; for example,
1596after a `bfd_close' the vector passed to `bfd_canonicalize_symtab' is
1597still around, since it has been allocated by the application, but the
1598data that it pointed to are lost.
1599
1600   The general rule is to not close a BFD until all operations dependent
1601upon data from the BFD have been completed, or all the data from within
1602the file has been copied. To help with the management of memory, there
1603is a function (`bfd_alloc_size') which returns the number of bytes in
1604obstacks associated with the supplied BFD. This could be used to select
1605the greediest open BFD, close it to reclaim the memory, perform some
1606operation and reopen the BFD again, to get a fresh copy of the data
1607structures.
1608
1609
1610File: bfd.info,  Node: Initialization,  Next: Sections,  Prev: Memory Usage,  Up: BFD front end
1611
16122.5 Initialization
1613==================
1614
16152.5.1 Initialization functions
1616------------------------------
1617
1618These are the functions that handle initializing a BFD.
1619
16202.5.1.1 `bfd_init'
1621..................
1622
1623*Synopsis*
1624     unsigned int bfd_init (void);
1625   *Description*
1626This routine must be called before any other BFD function to initialize
1627magical internal data structures.  Returns a magic number, which may be
1628used to check that the bfd library is configured as expected by users.
1629
1630     /* Value returned by bfd_init.  */
1631
1632     #define BFD_INIT_MAGIC (sizeof (struct bfd_section))
1633
1634
1635File: bfd.info,  Node: Sections,  Next: Symbols,  Prev: Initialization,  Up: BFD front end
1636
16372.6 Sections
1638============
1639
1640The raw data contained within a BFD is maintained through the section
1641abstraction.  A single BFD may have any number of sections.  It keeps
1642hold of them by pointing to the first; each one points to the next in
1643the list.
1644
1645   Sections are supported in BFD in `section.c'.
1646
1647* Menu:
1648
1649* Section Input::
1650* Section Output::
1651* typedef asection::
1652* section prototypes::
1653
1654
1655File: bfd.info,  Node: Section Input,  Next: Section Output,  Prev: Sections,  Up: Sections
1656
16572.6.1 Section input
1658-------------------
1659
1660When a BFD is opened for reading, the section structures are created
1661and attached to the BFD.
1662
1663   Each section has a name which describes the section in the outside
1664world--for example, `a.out' would contain at least three sections,
1665called `.text', `.data' and `.bss'.
1666
1667   Names need not be unique; for example a COFF file may have several
1668sections named `.data'.
1669
1670   Sometimes a BFD will contain more than the "natural" number of
1671sections. A back end may attach other sections containing constructor
1672data, or an application may add a section (using `bfd_make_section') to
1673the sections attached to an already open BFD. For example, the linker
1674creates an extra section `COMMON' for each input file's BFD to hold
1675information about common storage.
1676
1677   The raw data is not necessarily read in when the section descriptor
1678is created. Some targets may leave the data in place until a
1679`bfd_get_section_contents' call is made. Other back ends may read in
1680all the data at once.  For example, an S-record file has to be read
1681once to determine the size of the data.
1682
1683
1684File: bfd.info,  Node: Section Output,  Next: typedef asection,  Prev: Section Input,  Up: Sections
1685
16862.6.2 Section output
1687--------------------
1688
1689To write a new object style BFD, the various sections to be written
1690have to be created. They are attached to the BFD in the same way as
1691input sections; data is written to the sections using
1692`bfd_set_section_contents'.
1693
1694   Any program that creates or combines sections (e.g., the assembler
1695and linker) must use the `asection' fields `output_section' and
1696`output_offset' to indicate the file sections to which each section
1697must be written.  (If the section is being created from scratch,
1698`output_section' should probably point to the section itself and
1699`output_offset' should probably be zero.)
1700
1701   The data to be written comes from input sections attached (via
1702`output_section' pointers) to the output sections.  The output section
1703structure can be considered a filter for the input section: the output
1704section determines the vma of the output data and the name, but the
1705input section determines the offset into the output section of the data
1706to be written.
1707
1708   E.g., to create a section "O", starting at 0x100, 0x123 long,
1709containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and
1710"B" at offset 0x20 (i.e., at vma 0x120) the `asection' structures would
1711look like:
1712
1713        section name          "A"
1714          output_offset   0x00
1715          size            0x20
1716          output_section ----------->  section name    "O"
1717                                  |    vma             0x100
1718        section name          "B" |    size            0x123
1719          output_offset   0x20    |
1720          size            0x103   |
1721          output_section  --------|
1722
17232.6.3 Link orders
1724-----------------
1725
1726The data within a section is stored in a "link_order".  These are much
1727like the fixups in `gas'.  The link_order abstraction allows a section
1728to grow and shrink within itself.
1729
1730   A link_order knows how big it is, and which is the next link_order
1731and where the raw data for it is; it also points to a list of
1732relocations which apply to it.
1733
1734   The link_order is used by the linker to perform relaxing on final
1735code.  The compiler creates code which is as big as necessary to make
1736it work without relaxing, and the user can select whether to relax.
1737Sometimes relaxing takes a lot of time.  The linker runs around the
1738relocations to see if any are attached to data which can be shrunk, if
1739so it does it on a link_order by link_order basis.
1740
1741
1742File: bfd.info,  Node: typedef asection,  Next: section prototypes,  Prev: Section Output,  Up: Sections
1743
17442.6.4 typedef asection
1745----------------------
1746
1747Here is the section structure:
1748
1749
1750     typedef struct bfd_section
1751     {
1752       /* The name of the section; the name isn't a copy, the pointer is
1753          the same as that passed to bfd_make_section.  */
1754       const char *name;
1755
1756       /* The next section in the list belonging to the BFD, or NULL.  */
1757       struct bfd_section *next;
1758
1759       /* The previous section in the list belonging to the BFD, or NULL.  */
1760       struct bfd_section *prev;
1761
1762       /* A unique sequence number.  */
1763       unsigned int id;
1764
1765       /* A unique section number which can be used by assembler to
1766          distinguish different sections with the same section name.  */
1767       unsigned int section_id;
1768
1769       /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
1770       unsigned int index;
1771
1772       /* The field flags contains attributes of the section. Some
1773          flags are read in from the object file, and some are
1774          synthesized from other information.  */
1775       flagword flags;
1776
1777     #define SEC_NO_FLAGS                      0x0
1778
1779       /* Tells the OS to allocate space for this section when loading.
1780          This is clear for a section containing debug information only.  */
1781     #define SEC_ALLOC                         0x1
1782
1783       /* Tells the OS to load the section from the file when loading.
1784          This is clear for a .bss section.  */
1785     #define SEC_LOAD                          0x2
1786
1787       /* The section contains data still to be relocated, so there is
1788          some relocation information too.  */
1789     #define SEC_RELOC                         0x4
1790
1791       /* A signal to the OS that the section contains read only data.  */
1792     #define SEC_READONLY                      0x8
1793
1794       /* The section contains code only.  */
1795     #define SEC_CODE                         0x10
1796
1797       /* The section contains data only.  */
1798     #define SEC_DATA                         0x20
1799
1800       /* The section will reside in ROM.  */
1801     #define SEC_ROM                          0x40
1802
1803       /* The section contains constructor information. This section
1804          type is used by the linker to create lists of constructors and
1805          destructors used by `g++'. When a back end sees a symbol
1806          which should be used in a constructor list, it creates a new
1807          section for the type of name (e.g., `__CTOR_LIST__'), attaches
1808          the symbol to it, and builds a relocation. To build the lists
1809          of constructors, all the linker has to do is catenate all the
1810          sections called `__CTOR_LIST__' and relocate the data
1811          contained within - exactly the operations it would peform on
1812          standard data.  */
1813     #define SEC_CONSTRUCTOR                  0x80
1814
1815       /* The section has contents - a data section could be
1816          `SEC_ALLOC' | `SEC_HAS_CONTENTS'; a debug section could be
1817          `SEC_HAS_CONTENTS'  */
1818     #define SEC_HAS_CONTENTS                0x100
1819
1820       /* An instruction to the linker to not output the section
1821          even if it has information which would normally be written.  */
1822     #define SEC_NEVER_LOAD                  0x200
1823
1824       /* The section contains thread local data.  */
1825     #define SEC_THREAD_LOCAL                0x400
1826
1827       /* The section's size is fixed.  Generic linker code will not
1828          recalculate it and it is up to whoever has set this flag to
1829          get the size right.  */
1830     #define SEC_FIXED_SIZE                  0x800
1831
1832       /* The section contains common symbols (symbols may be defined
1833          multiple times, the value of a symbol is the amount of
1834          space it requires, and the largest symbol value is the one
1835          used).  Most targets have exactly one of these (which we
1836          translate to bfd_com_section_ptr), but ECOFF has two.  */
1837     #define SEC_IS_COMMON                  0x1000
1838
1839       /* The section contains only debugging information.  For
1840          example, this is set for ELF .debug and .stab sections.
1841          strip tests this flag to see if a section can be
1842          discarded.  */
1843     #define SEC_DEBUGGING                  0x2000
1844
1845       /* The contents of this section are held in memory pointed to
1846          by the contents field.  This is checked by bfd_get_section_contents,
1847          and the data is retrieved from memory if appropriate.  */
1848     #define SEC_IN_MEMORY                  0x4000
1849
1850       /* The contents of this section are to be excluded by the
1851          linker for executable and shared objects unless those
1852          objects are to be further relocated.  */
1853     #define SEC_EXCLUDE                    0x8000
1854
1855       /* The contents of this section are to be sorted based on the sum of
1856          the symbol and addend values specified by the associated relocation
1857          entries.  Entries without associated relocation entries will be
1858          appended to the end of the section in an unspecified order.  */
1859     #define SEC_SORT_ENTRIES              0x10000
1860
1861       /* When linking, duplicate sections of the same name should be
1862          discarded, rather than being combined into a single section as
1863          is usually done.  This is similar to how common symbols are
1864          handled.  See SEC_LINK_DUPLICATES below.  */
1865     #define SEC_LINK_ONCE                 0x20000
1866
1867       /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
1868          should handle duplicate sections.  */
1869     #define SEC_LINK_DUPLICATES           0xc0000
1870
1871       /* This value for SEC_LINK_DUPLICATES means that duplicate
1872          sections with the same name should simply be discarded.  */
1873     #define SEC_LINK_DUPLICATES_DISCARD       0x0
1874
1875       /* This value for SEC_LINK_DUPLICATES means that the linker
1876          should warn if there are any duplicate sections, although
1877          it should still only link one copy.  */
1878     #define SEC_LINK_DUPLICATES_ONE_ONLY  0x40000
1879
1880       /* This value for SEC_LINK_DUPLICATES means that the linker
1881          should warn if any duplicate sections are a different size.  */
1882     #define SEC_LINK_DUPLICATES_SAME_SIZE 0x80000
1883
1884       /* This value for SEC_LINK_DUPLICATES means that the linker
1885          should warn if any duplicate sections contain different
1886          contents.  */
1887     #define SEC_LINK_DUPLICATES_SAME_CONTENTS \
1888       (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
1889
1890       /* This section was created by the linker as part of dynamic
1891          relocation or other arcane processing.  It is skipped when
1892          going through the first-pass output, trusting that someone
1893          else up the line will take care of it later.  */
1894     #define SEC_LINKER_CREATED           0x100000
1895
1896       /* This section contains a section ID to distinguish different
1897          sections with the same section name.  */
1898     #define SEC_ASSEMBLER_SECTION_ID     0x100000
1899
1900       /* This section should not be subject to garbage collection.
1901          Also set to inform the linker that this section should not be
1902          listed in the link map as discarded.  */
1903     #define SEC_KEEP                     0x200000
1904
1905       /* This section contains "short" data, and should be placed
1906          "near" the GP.  */
1907     #define SEC_SMALL_DATA               0x400000
1908
1909       /* Attempt to merge identical entities in the section.
1910          Entity size is given in the entsize field.  */
1911     #define SEC_MERGE                    0x800000
1912
1913       /* If given with SEC_MERGE, entities to merge are zero terminated
1914          strings where entsize specifies character size instead of fixed
1915          size entries.  */
1916     #define SEC_STRINGS                 0x1000000
1917
1918       /* This section contains data about section groups.  */
1919     #define SEC_GROUP                   0x2000000
1920
1921       /* The section is a COFF shared library section.  This flag is
1922          only for the linker.  If this type of section appears in
1923          the input file, the linker must copy it to the output file
1924          without changing the vma or size.  FIXME: Although this
1925          was originally intended to be general, it really is COFF
1926          specific (and the flag was renamed to indicate this).  It
1927          might be cleaner to have some more general mechanism to
1928          allow the back end to control what the linker does with
1929          sections.  */
1930     #define SEC_COFF_SHARED_LIBRARY     0x4000000
1931
1932       /* This input section should be copied to output in reverse order
1933          as an array of pointers.  This is for ELF linker internal use
1934          only.  */
1935     #define SEC_ELF_REVERSE_COPY        0x4000000
1936
1937       /* This section contains data which may be shared with other
1938          executables or shared objects. This is for COFF only.  */
1939     #define SEC_COFF_SHARED             0x8000000
1940
1941       /* This section should be compressed.  This is for ELF linker
1942          internal use only.  */
1943     #define SEC_ELF_COMPRESS            0x8000000
1944
1945       /* When a section with this flag is being linked, then if the size of
1946          the input section is less than a page, it should not cross a page
1947          boundary.  If the size of the input section is one page or more,
1948          it should be aligned on a page boundary.  This is for TI
1949          TMS320C54X only.  */
1950     #define SEC_TIC54X_BLOCK           0x10000000
1951
1952       /* This section should be renamed.  This is for ELF linker
1953          internal use only.  */
1954     #define SEC_ELF_RENAME             0x10000000
1955
1956       /* Conditionally link this section; do not link if there are no
1957          references found to any symbol in the section.  This is for TI
1958          TMS320C54X only.  */
1959     #define SEC_TIC54X_CLINK           0x20000000
1960
1961       /* This section contains vliw code.  This is for Toshiba MeP only.  */
1962     #define SEC_MEP_VLIW               0x20000000
1963
1964       /* All symbols, sizes and relocations in this section are octets
1965          instead of bytes.  Required for DWARF debug sections as DWARF
1966          information is organized in octets, not bytes.  */
1967     #define SEC_ELF_OCTETS             0x40000000
1968
1969       /* Indicate that section has the no read flag set. This happens
1970          when memory read flag isn't set. */
1971     #define SEC_COFF_NOREAD            0x40000000
1972
1973       /* Indicate that section has the purecode flag set.  */
1974     #define SEC_ELF_PURECODE           0x80000000
1975
1976       /*  End of section flags.  */
1977
1978       /* Some internal packed boolean fields.  */
1979
1980       /* See the vma field.  */
1981       unsigned int user_set_vma : 1;
1982
1983       /* A mark flag used by some of the linker backends.  */
1984       unsigned int linker_mark : 1;
1985
1986       /* Another mark flag used by some of the linker backends.  Set for
1987          output sections that have an input section.  */
1988       unsigned int linker_has_input : 1;
1989
1990       /* Mark flag used by some linker backends for garbage collection.  */
1991       unsigned int gc_mark : 1;
1992
1993       /* Section compression status.  */
1994       unsigned int compress_status : 2;
1995     #define COMPRESS_SECTION_NONE    0
1996     #define COMPRESS_SECTION_DONE    1
1997     #define DECOMPRESS_SECTION_SIZED 2
1998
1999       /* The following flags are used by the ELF linker. */
2000
2001       /* Mark sections which have been allocated to segments.  */
2002       unsigned int segment_mark : 1;
2003
2004       /* Type of sec_info information.  */
2005       unsigned int sec_info_type:3;
2006     #define SEC_INFO_TYPE_NONE      0
2007     #define SEC_INFO_TYPE_STABS     1
2008     #define SEC_INFO_TYPE_MERGE     2
2009     #define SEC_INFO_TYPE_EH_FRAME  3
2010     #define SEC_INFO_TYPE_JUST_SYMS 4
2011     #define SEC_INFO_TYPE_TARGET    5
2012     #define SEC_INFO_TYPE_EH_FRAME_ENTRY 6
2013
2014       /* Nonzero if this section uses RELA relocations, rather than REL.  */
2015       unsigned int use_rela_p:1;
2016
2017       /* Bits used by various backends.  The generic code doesn't touch
2018          these fields.  */
2019
2020       unsigned int sec_flg0:1;
2021       unsigned int sec_flg1:1;
2022       unsigned int sec_flg2:1;
2023       unsigned int sec_flg3:1;
2024       unsigned int sec_flg4:1;
2025       unsigned int sec_flg5:1;
2026
2027       /* End of internal packed boolean fields.  */
2028
2029       /*  The virtual memory address of the section - where it will be
2030           at run time.  The symbols are relocated against this.  The
2031           user_set_vma flag is maintained by bfd; if it's not set, the
2032           backend can assign addresses (for example, in `a.out', where
2033           the default address for `.data' is dependent on the specific
2034           target and various flags).  */
2035       bfd_vma vma;
2036
2037       /*  The load address of the section - where it would be in a
2038           rom image; really only used for writing section header
2039           information.  */
2040       bfd_vma lma;
2041
2042       /* The size of the section in *octets*, as it will be output.
2043          Contains a value even if the section has no contents (e.g., the
2044          size of `.bss').  */
2045       bfd_size_type size;
2046
2047       /* For input sections, the original size on disk of the section, in
2048          octets.  This field should be set for any section whose size is
2049          changed by linker relaxation.  It is required for sections where
2050          the linker relaxation scheme doesn't cache altered section and
2051          reloc contents (stabs, eh_frame, SEC_MERGE, some coff relaxing
2052          targets), and thus the original size needs to be kept to read the
2053          section multiple times.  For output sections, rawsize holds the
2054          section size calculated on a previous linker relaxation pass.  */
2055       bfd_size_type rawsize;
2056
2057       /* The compressed size of the section in octets.  */
2058       bfd_size_type compressed_size;
2059
2060       /* If this section is going to be output, then this value is the
2061          offset in *bytes* into the output section of the first byte in the
2062          input section (byte ==> smallest addressable unit on the
2063          target).  In most cases, if this was going to start at the
2064          100th octet (8-bit quantity) in the output section, this value
2065          would be 100.  However, if the target byte size is 16 bits
2066          (bfd_octets_per_byte is "2"), this value would be 50.  */
2067       bfd_vma output_offset;
2068
2069       /* The output section through which to map on output.  */
2070       struct bfd_section *output_section;
2071
2072       /* If an input section, a pointer to a vector of relocation
2073          records for the data in this section.  */
2074       struct reloc_cache_entry *relocation;
2075
2076       /* If an output section, a pointer to a vector of pointers to
2077          relocation records for the data in this section.  */
2078       struct reloc_cache_entry **orelocation;
2079
2080       /* The number of relocation records in one of the above.  */
2081       unsigned reloc_count;
2082
2083       /* The alignment requirement of the section, as an exponent of 2 -
2084          e.g., 3 aligns to 2^3 (or 8).  */
2085       unsigned int alignment_power;
2086
2087       /* Information below is back end specific - and not always used
2088          or updated.  */
2089
2090       /* File position of section data.  */
2091       file_ptr filepos;
2092
2093       /* File position of relocation info.  */
2094       file_ptr rel_filepos;
2095
2096       /* File position of line data.  */
2097       file_ptr line_filepos;
2098
2099       /* Pointer to data for applications.  */
2100       void *userdata;
2101
2102       /* If the SEC_IN_MEMORY flag is set, this points to the actual
2103          contents.  */
2104       unsigned char *contents;
2105
2106       /* Attached line number information.  */
2107       alent *lineno;
2108
2109       /* Number of line number records.  */
2110       unsigned int lineno_count;
2111
2112       /* Entity size for merging purposes.  */
2113       unsigned int entsize;
2114
2115       /* Points to the kept section if this section is a link-once section,
2116          and is discarded.  */
2117       struct bfd_section *kept_section;
2118
2119       /* When a section is being output, this value changes as more
2120          linenumbers are written out.  */
2121       file_ptr moving_line_filepos;
2122
2123       /* What the section number is in the target world.  */
2124       int target_index;
2125
2126       void *used_by_bfd;
2127
2128       /* If this is a constructor section then here is a list of the
2129          relocations created to relocate items within it.  */
2130       struct relent_chain *constructor_chain;
2131
2132       /* The BFD which owns the section.  */
2133       bfd *owner;
2134
2135       /* A symbol which points at this section only.  */
2136       struct bfd_symbol *symbol;
2137       struct bfd_symbol **symbol_ptr_ptr;
2138
2139       /* Early in the link process, map_head and map_tail are used to build
2140          a list of input sections attached to an output section.  Later,
2141          output sections use these fields for a list of bfd_link_order
2142          structs.  The linked_to_symbol_name field is for ELF assembler
2143          internal use.  */
2144       union {
2145         struct bfd_link_order *link_order;
2146         struct bfd_section *s;
2147         const char *linked_to_symbol_name;
2148       } map_head, map_tail;
2149
2150       /* Points to the output section this section is already assigned to,
2151          if any.  This is used when support for non-contiguous memory
2152          regions is enabled.  */
2153       struct bfd_section *already_assigned;
2154
2155       /* Explicitly specified section type, if non-zero.  */
2156       unsigned int type;
2157
2158     } asection;
2159
2160     static inline const char *
2161     bfd_section_name (const asection *sec)
2162     {
2163       return sec->name;
2164     }
2165
2166     static inline bfd_size_type
2167     bfd_section_size (const asection *sec)
2168     {
2169       return sec->size;
2170     }
2171
2172     static inline bfd_vma
2173     bfd_section_vma (const asection *sec)
2174     {
2175       return sec->vma;
2176     }
2177
2178     static inline bfd_vma
2179     bfd_section_lma (const asection *sec)
2180     {
2181       return sec->lma;
2182     }
2183
2184     static inline unsigned int
2185     bfd_section_alignment (const asection *sec)
2186     {
2187       return sec->alignment_power;
2188     }
2189
2190     static inline flagword
2191     bfd_section_flags (const asection *sec)
2192     {
2193       return sec->flags;
2194     }
2195
2196     static inline void *
2197     bfd_section_userdata (const asection *sec)
2198     {
2199       return sec->userdata;
2200     }
2201     static inline bool
2202     bfd_is_com_section (const asection *sec)
2203     {
2204       return (sec->flags & SEC_IS_COMMON) != 0;
2205     }
2206
2207     /* Note: the following are provided as inline functions rather than macros
2208        because not all callers use the return value.  A macro implementation
2209        would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
2210        compilers will complain about comma expressions that have no effect.  */
2211     static inline bool
2212     bfd_set_section_userdata (asection *sec, void *val)
2213     {
2214       sec->userdata = val;
2215       return true;
2216     }
2217
2218     static inline bool
2219     bfd_set_section_vma (asection *sec, bfd_vma val)
2220     {
2221       sec->vma = sec->lma = val;
2222       sec->user_set_vma = true;
2223       return true;
2224     }
2225
2226     static inline bool
2227     bfd_set_section_lma (asection *sec, bfd_vma val)
2228     {
2229       sec->lma = val;
2230       return true;
2231     }
2232
2233     static inline bool
2234     bfd_set_section_alignment (asection *sec, unsigned int val)
2235     {
2236       sec->alignment_power = val;
2237       return true;
2238     }
2239
2240     /* These sections are global, and are managed by BFD.  The application
2241        and target back end are not permitted to change the values in
2242        these sections.  */
2243     extern asection _bfd_std_section[4];
2244
2245     #define BFD_ABS_SECTION_NAME "*ABS*"
2246     #define BFD_UND_SECTION_NAME "*UND*"
2247     #define BFD_COM_SECTION_NAME "*COM*"
2248     #define BFD_IND_SECTION_NAME "*IND*"
2249
2250     /* Pointer to the common section.  */
2251     #define bfd_com_section_ptr (&_bfd_std_section[0])
2252     /* Pointer to the undefined section.  */
2253     #define bfd_und_section_ptr (&_bfd_std_section[1])
2254     /* Pointer to the absolute section.  */
2255     #define bfd_abs_section_ptr (&_bfd_std_section[2])
2256     /* Pointer to the indirect section.  */
2257     #define bfd_ind_section_ptr (&_bfd_std_section[3])
2258
2259     static inline bool
2260     bfd_is_und_section (const asection *sec)
2261     {
2262       return sec == bfd_und_section_ptr;
2263     }
2264
2265     static inline bool
2266     bfd_is_abs_section (const asection *sec)
2267     {
2268       return sec == bfd_abs_section_ptr;
2269     }
2270
2271     static inline bool
2272     bfd_is_ind_section (const asection *sec)
2273     {
2274       return sec == bfd_ind_section_ptr;
2275     }
2276
2277     static inline bool
2278     bfd_is_const_section (const asection *sec)
2279     {
2280       return (sec >= _bfd_std_section
2281               && sec < _bfd_std_section + (sizeof (_bfd_std_section)
2282                                            / sizeof (_bfd_std_section[0])));
2283     }
2284
2285     /* Return TRUE if input section SEC has been discarded.  */
2286     static inline bool
2287     discarded_section (const asection *sec)
2288     {
2289       return (!bfd_is_abs_section (sec)
2290               && bfd_is_abs_section (sec->output_section)
2291               && sec->sec_info_type != SEC_INFO_TYPE_MERGE
2292               && sec->sec_info_type != SEC_INFO_TYPE_JUST_SYMS);
2293     }
2294
2295     #define BFD_FAKE_SECTION(SEC, SYM, NAME, IDX, FLAGS)                   \
2296       /* name, next, prev, id,  section_id, index, flags, user_set_vma, */ \
2297       {  NAME, NULL, NULL, IDX, 0,          0,     FLAGS, 0,               \
2298                                                                            \
2299       /* linker_mark, linker_has_input, gc_mark, decompress_status,     */ \
2300          0,           0,                1,       0,                        \
2301                                                                            \
2302       /* segment_mark, sec_info_type, use_rela_p,                       */ \
2303          0,            0,             0,                                   \
2304                                                                            \
2305       /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5,    */ \
2306          0,        0,        0,        0,        0,        0,              \
2307                                                                            \
2308       /* vma, lma, size, rawsize, compressed_size,                      */ \
2309          0,   0,   0,    0,       0,                                       \
2310                                                                            \
2311       /* output_offset, output_section, relocation, orelocation,        */ \
2312          0,             &SEC,           NULL,       NULL,                  \
2313                                                                            \
2314       /* reloc_count, alignment_power, filepos, rel_filepos,            */ \
2315          0,           0,               0,       0,                         \
2316                                                                            \
2317       /* line_filepos, userdata, contents, lineno, lineno_count,        */ \
2318          0,            NULL,     NULL,     NULL,   0,                      \
2319                                                                            \
2320       /* entsize, kept_section, moving_line_filepos,                    */ \
2321          0,       NULL,         0,                                         \
2322                                                                            \
2323       /* target_index, used_by_bfd, constructor_chain, owner,           */ \
2324          0,            NULL,        NULL,              NULL,               \
2325                                                                            \
2326       /* symbol,                    symbol_ptr_ptr,                     */ \
2327          (struct bfd_symbol *) SYM, &SEC.symbol,                           \
2328                                                                            \
2329       /* map_head, map_tail, already_assigned, type                     */ \
2330          { NULL }, { NULL }, NULL,             0                           \
2331                                                                            \
2332         }
2333
2334     /* We use a macro to initialize the static asymbol structures because
2335        traditional C does not permit us to initialize a union member while
2336        gcc warns if we don't initialize it.
2337        the_bfd, name, value, attr, section [, udata]  */
2338     #ifdef __STDC__
2339     #define GLOBAL_SYM_INIT(NAME, SECTION) \
2340       { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }}
2341     #else
2342     #define GLOBAL_SYM_INIT(NAME, SECTION) \
2343       { 0, NAME, 0, BSF_SECTION_SYM, SECTION }
2344     #endif
2345
2346
2347File: bfd.info,  Node: section prototypes,  Prev: typedef asection,  Up: Sections
2348
23492.6.5 Section prototypes
2350------------------------
2351
2352These are the functions exported by the section handling part of BFD.
2353
23542.6.5.1 `bfd_section_list_clear'
2355................................
2356
2357*Synopsis*
2358     void bfd_section_list_clear (bfd *);
2359   *Description*
2360Clears the section list, and also resets the section count and hash
2361table entries.
2362
23632.6.5.2 `bfd_get_section_by_name'
2364.................................
2365
2366*Synopsis*
2367     asection *bfd_get_section_by_name (bfd *abfd, const char *name);
2368   *Description*
2369Return the most recently created section attached to ABFD named NAME.
2370Return NULL if no such section exists.
2371
23722.6.5.3 `bfd_get_next_section_by_name'
2373......................................
2374
2375*Synopsis*
2376     asection *bfd_get_next_section_by_name (bfd *ibfd, asection *sec);
2377   *Description*
2378Given SEC is a section returned by `bfd_get_section_by_name', return
2379the next most recently created section attached to the same BFD with
2380the same name, or if no such section exists in the same BFD and IBFD is
2381non-NULL, the next section with the same name in any input BFD
2382following IBFD.  Return NULL on finding no section.
2383
23842.6.5.4 `bfd_get_linker_section'
2385................................
2386
2387*Synopsis*
2388     asection *bfd_get_linker_section (bfd *abfd, const char *name);
2389   *Description*
2390Return the linker created section attached to ABFD named NAME.  Return
2391NULL if no such section exists.
2392
23932.6.5.5 `bfd_get_section_by_name_if'
2394....................................
2395
2396*Synopsis*
2397     asection *bfd_get_section_by_name_if
2398        (bfd *abfd,
2399         const char *name,
2400         bool (*func) (bfd *abfd, asection *sect, void *obj),
2401         void *obj);
2402   *Description*
2403Call the provided function FUNC for each section attached to the BFD
2404ABFD whose name matches NAME, passing OBJ as an argument. The function
2405will be called as if by
2406
2407            func (abfd, the_section, obj);
2408
2409   It returns the first section for which FUNC returns true, otherwise
2410`NULL'.
2411
24122.6.5.6 `bfd_get_unique_section_name'
2413.....................................
2414
2415*Synopsis*
2416     char *bfd_get_unique_section_name
2417        (bfd *abfd, const char *templat, int *count);
2418   *Description*
2419Invent a section name that is unique in ABFD by tacking a dot and a
2420digit suffix onto the original TEMPLAT.  If COUNT is non-NULL, then it
2421specifies the first number tried as a suffix to generate a unique name.
2422The value pointed to by COUNT will be incremented in this case.
2423
24242.6.5.7 `bfd_make_section_old_way'
2425..................................
2426
2427*Synopsis*
2428     asection *bfd_make_section_old_way (bfd *abfd, const char *name);
2429   *Description*
2430Create a new empty section called NAME and attach it to the end of the
2431chain of sections for the BFD ABFD. An attempt to create a section with
2432a name which is already in use returns its pointer without changing the
2433section chain.
2434
2435   It has the funny name since this is the way it used to be before it
2436was rewritten....
2437
2438   Possible errors are:
2439   * `bfd_error_invalid_operation' - If output has already started for
2440     this BFD.
2441
2442   * `bfd_error_no_memory' - If memory allocation fails.
2443
24442.6.5.8 `bfd_make_section_anyway_with_flags'
2445............................................
2446
2447*Synopsis*
2448     asection *bfd_make_section_anyway_with_flags
2449        (bfd *abfd, const char *name, flagword flags);
2450   *Description*
2451Create a new empty section called NAME and attach it to the end of the
2452chain of sections for ABFD.  Create a new section even if there is
2453already a section with that name.  Also set the attributes of the new
2454section to the value FLAGS.
2455
2456   Return `NULL' and set `bfd_error' on error; possible errors are:
2457   * `bfd_error_invalid_operation' - If output has already started for
2458     ABFD.
2459
2460   * `bfd_error_no_memory' - If memory allocation fails.
2461
24622.6.5.9 `bfd_make_section_anyway'
2463.................................
2464
2465*Synopsis*
2466     asection *bfd_make_section_anyway (bfd *abfd, const char *name);
2467   *Description*
2468Create a new empty section called NAME and attach it to the end of the
2469chain of sections for ABFD.  Create a new section even if there is
2470already a section with that name.
2471
2472   Return `NULL' and set `bfd_error' on error; possible errors are:
2473   * `bfd_error_invalid_operation' - If output has already started for
2474     ABFD.
2475
2476   * `bfd_error_no_memory' - If memory allocation fails.
2477
24782.6.5.10 `bfd_make_section_with_flags'
2479......................................
2480
2481*Synopsis*
2482     asection *bfd_make_section_with_flags
2483        (bfd *, const char *name, flagword flags);
2484   *Description*
2485Like `bfd_make_section_anyway', but return `NULL' (without calling
2486bfd_set_error ()) without changing the section chain if there is
2487already a section named NAME.  Also set the attributes of the new
2488section to the value FLAGS.  If there is an error, return `NULL' and set
2489`bfd_error'.
2490
24912.6.5.11 `bfd_make_section'
2492...........................
2493
2494*Synopsis*
2495     asection *bfd_make_section (bfd *, const char *name);
2496   *Description*
2497Like `bfd_make_section_anyway', but return `NULL' (without calling
2498bfd_set_error ()) without changing the section chain if there is
2499already a section named NAME.  If there is an error, return `NULL' and
2500set `bfd_error'.
2501
25022.6.5.12 `bfd_set_section_flags'
2503................................
2504
2505*Synopsis*
2506     bool bfd_set_section_flags (asection *sec, flagword flags);
2507   *Description*
2508Set the attributes of the section SEC to the value FLAGS.  Return
2509`TRUE' on success, `FALSE' on error.  Possible error returns are:
2510
2511   * `bfd_error_invalid_operation' - The section cannot have one or
2512     more of the attributes requested. For example, a .bss section in
2513     `a.out' may not have the `SEC_HAS_CONTENTS' field set.
2514
25152.6.5.13 `bfd_rename_section'
2516.............................
2517
2518*Synopsis*
2519     void bfd_rename_section
2520        (asection *sec, const char *newname);
2521   *Description*
2522Rename section SEC to NEWNAME.
2523
25242.6.5.14 `bfd_map_over_sections'
2525................................
2526
2527*Synopsis*
2528     void bfd_map_over_sections
2529        (bfd *abfd,
2530         void (*func) (bfd *abfd, asection *sect, void *obj),
2531         void *obj);
2532   *Description*
2533Call the provided function FUNC for each section attached to the BFD
2534ABFD, passing OBJ as an argument. The function will be called as if by
2535
2536            func (abfd, the_section, obj);
2537
2538   This is the preferred method for iterating over sections; an
2539alternative would be to use a loop:
2540
2541               asection *p;
2542               for (p = abfd->sections; p != NULL; p = p->next)
2543                  func (abfd, p, ...)
2544
25452.6.5.15 `bfd_sections_find_if'
2546...............................
2547
2548*Synopsis*
2549     asection *bfd_sections_find_if
2550        (bfd *abfd,
2551         bool (*operation) (bfd *abfd, asection *sect, void *obj),
2552         void *obj);
2553   *Description*
2554Call the provided function OPERATION for each section attached to the
2555BFD ABFD, passing OBJ as an argument. The function will be called as if
2556by
2557
2558            operation (abfd, the_section, obj);
2559
2560   It returns the first section for which OPERATION returns true.
2561
25622.6.5.16 `bfd_set_section_size'
2563...............................
2564
2565*Synopsis*
2566     bool bfd_set_section_size (asection *sec, bfd_size_type val);
2567   *Description*
2568Set SEC to the size VAL. If the operation is ok, then `TRUE' is
2569returned, else `FALSE'.
2570
2571   Possible error returns:
2572   * `bfd_error_invalid_operation' - Writing has started to the BFD, so
2573     setting the size is invalid.
2574
25752.6.5.17 `bfd_set_section_contents'
2576...................................
2577
2578*Synopsis*
2579     bool bfd_set_section_contents
2580        (bfd *abfd, asection *section, const void *data,
2581         file_ptr offset, bfd_size_type count);
2582   *Description*
2583Sets the contents of the section SECTION in BFD ABFD to the data
2584starting in memory at LOCATION.  The data is written to the output
2585section starting at offset OFFSET for COUNT octets.
2586
2587   Normally `TRUE' is returned, but `FALSE' is returned if there was an
2588error.  Possible error returns are:
2589   * `bfd_error_no_contents' - The output section does not have the
2590     `SEC_HAS_CONTENTS' attribute, so nothing can be written to it.
2591
2592   * `bfd_error_bad_value' - The section is unable to contain all of
2593     the data.
2594
2595   * `bfd_error_invalid_operation' - The BFD is not writeable.
2596
2597   * and some more too.
2598   This routine is front end to the back end function
2599`_bfd_set_section_contents'.
2600
26012.6.5.18 `bfd_get_section_contents'
2602...................................
2603
2604*Synopsis*
2605     bool bfd_get_section_contents
2606        (bfd *abfd, asection *section, void *location, file_ptr offset,
2607         bfd_size_type count);
2608   *Description*
2609Read data from SECTION in BFD ABFD into memory starting at LOCATION.
2610The data is read at an offset of OFFSET from the start of the input
2611section, and is read for COUNT bytes.
2612
2613   If the contents of a constructor with the `SEC_CONSTRUCTOR' flag set
2614are requested or if the section does not have the `SEC_HAS_CONTENTS'
2615flag set, then the LOCATION is filled with zeroes. If no errors occur,
2616`TRUE' is returned, else `FALSE'.
2617
26182.6.5.19 `bfd_malloc_and_get_section'
2619.....................................
2620
2621*Synopsis*
2622     bool bfd_malloc_and_get_section
2623        (bfd *abfd, asection *section, bfd_byte **buf);
2624   *Description*
2625Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by
2626this function.
2627
26282.6.5.20 `bfd_copy_private_section_data'
2629........................................
2630
2631*Synopsis*
2632     bool bfd_copy_private_section_data
2633        (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
2634   *Description*
2635Copy private section information from ISEC in the BFD IBFD to the
2636section OSEC in the BFD OBFD.  Return `TRUE' on success, `FALSE' on
2637error.  Possible error returns are:
2638
2639   * `bfd_error_no_memory' - Not enough memory exists to create private
2640     data for OSEC.
2641
2642     #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
2643            BFD_SEND (obfd, _bfd_copy_private_section_data, \
2644                      (ibfd, isection, obfd, osection))
2645
26462.6.5.21 `bfd_generic_is_group_section'
2647.......................................
2648
2649*Synopsis*
2650     bool bfd_generic_is_group_section (bfd *, const asection *sec);
2651   *Description*
2652Returns TRUE if SEC is a member of a group.
2653
26542.6.5.22 `bfd_generic_group_name'
2655.................................
2656
2657*Synopsis*
2658     const char *bfd_generic_group_name (bfd *, const asection *sec);
2659   *Description*
2660Returns group name if SEC is a member of a group.
2661
26622.6.5.23 `bfd_generic_discard_group'
2663....................................
2664
2665*Synopsis*
2666     bool bfd_generic_discard_group (bfd *abfd, asection *group);
2667   *Description*
2668Remove all members of GROUP from the output.
2669
2670
2671File: bfd.info,  Node: Symbols,  Next: Archives,  Prev: Sections,  Up: BFD front end
2672
26732.7 Symbols
2674===========
2675
2676BFD tries to maintain as much symbol information as it can when it
2677moves information from file to file. BFD passes information to
2678applications though the `asymbol' structure. When the application
2679requests the symbol table, BFD reads the table in the native form and
2680translates parts of it into the internal format. To maintain more than
2681the information passed to applications, some targets keep some
2682information "behind the scenes" in a structure only the particular back
2683end knows about. For example, the coff back end keeps the original
2684symbol table structure as well as the canonical structure when a BFD is
2685read in. On output, the coff back end can reconstruct the output symbol
2686table so that no information is lost, even information unique to coff
2687which BFD doesn't know or understand. If a coff symbol table were read,
2688but were written through an a.out back end, all the coff specific
2689information would be lost. The symbol table of a BFD is not necessarily
2690read in until a canonicalize request is made. Then the BFD back end
2691fills in a table provided by the application with pointers to the
2692canonical information.  To output symbols, the application provides BFD
2693with a table of pointers to pointers to `asymbol's. This allows
2694applications like the linker to output a symbol as it was read, since
2695the "behind the scenes" information will be still available.
2696
2697* Menu:
2698
2699* Reading Symbols::
2700* Writing Symbols::
2701* Mini Symbols::
2702* typedef asymbol::
2703* symbol handling functions::
2704
2705
2706File: bfd.info,  Node: Reading Symbols,  Next: Writing Symbols,  Prev: Symbols,  Up: Symbols
2707
27082.7.1 Reading symbols
2709---------------------
2710
2711There are two stages to reading a symbol table from a BFD: allocating
2712storage, and the actual reading process. This is an excerpt from an
2713application which reads the symbol table:
2714
2715              long storage_needed;
2716              asymbol **symbol_table;
2717              long number_of_symbols;
2718              long i;
2719
2720              storage_needed = bfd_get_symtab_upper_bound (abfd);
2721
2722              if (storage_needed < 0)
2723                FAIL
2724
2725              if (storage_needed == 0)
2726                return;
2727
2728              symbol_table = xmalloc (storage_needed);
2729                ...
2730              number_of_symbols =
2731                 bfd_canonicalize_symtab (abfd, symbol_table);
2732
2733              if (number_of_symbols < 0)
2734                FAIL
2735
2736              for (i = 0; i < number_of_symbols; i++)
2737                process_symbol (symbol_table[i]);
2738
2739   All storage for the symbols themselves is in an objalloc connected
2740to the BFD; it is freed when the BFD is closed.
2741
2742
2743File: bfd.info,  Node: Writing Symbols,  Next: Mini Symbols,  Prev: Reading Symbols,  Up: Symbols
2744
27452.7.2 Writing symbols
2746---------------------
2747
2748Writing of a symbol table is automatic when a BFD open for writing is
2749closed. The application attaches a vector of pointers to pointers to
2750symbols to the BFD being written, and fills in the symbol count. The
2751close and cleanup code reads through the table provided and performs
2752all the necessary operations. The BFD output code must always be
2753provided with an "owned" symbol: one which has come from another BFD,
2754or one which has been created using `bfd_make_empty_symbol'.  Here is an
2755example showing the creation of a symbol table with only one element:
2756
2757            #include "sysdep.h"
2758            #include "bfd.h"
2759            int main (void)
2760            {
2761              bfd *abfd;
2762              asymbol *ptrs[2];
2763              asymbol *new;
2764
2765              abfd = bfd_openw ("foo","a.out-sunos-big");
2766              bfd_set_format (abfd, bfd_object);
2767              new = bfd_make_empty_symbol (abfd);
2768              new->name = "dummy_symbol";
2769              new->section = bfd_make_section_old_way (abfd, ".text");
2770              new->flags = BSF_GLOBAL;
2771              new->value = 0x12345;
2772
2773              ptrs[0] = new;
2774              ptrs[1] = 0;
2775
2776              bfd_set_symtab (abfd, ptrs, 1);
2777              bfd_close (abfd);
2778              return 0;
2779            }
2780
2781            ./makesym
2782            nm foo
2783            00012345 A dummy_symbol
2784
2785   Many formats cannot represent arbitrary symbol information; for
2786instance, the `a.out' object format does not allow an arbitrary number
2787of sections. A symbol pointing to a section which is not one  of
2788`.text', `.data' or `.bss' cannot be described.
2789
2790
2791File: bfd.info,  Node: Mini Symbols,  Next: typedef asymbol,  Prev: Writing Symbols,  Up: Symbols
2792
27932.7.3 Mini Symbols
2794------------------
2795
2796Mini symbols provide read-only access to the symbol table.  They use
2797less memory space, but require more time to access.  They can be useful
2798for tools like nm or objdump, which may have to handle symbol tables of
2799extremely large executables.
2800
2801   The `bfd_read_minisymbols' function will read the symbols into
2802memory in an internal form.  It will return a `void *' pointer to a
2803block of memory, a symbol count, and the size of each symbol.  The
2804pointer is allocated using `malloc', and should be freed by the caller
2805when it is no longer needed.
2806
2807   The function `bfd_minisymbol_to_symbol' will take a pointer to a
2808minisymbol, and a pointer to a structure returned by
2809`bfd_make_empty_symbol', and return a `asymbol' structure.  The return
2810value may or may not be the same as the value from
2811`bfd_make_empty_symbol' which was passed in.
2812
2813
2814File: bfd.info,  Node: typedef asymbol,  Next: symbol handling functions,  Prev: Mini Symbols,  Up: Symbols
2815
28162.7.4 typedef asymbol
2817---------------------
2818
2819An `asymbol' has the form:
2820
2821
2822     typedef struct bfd_symbol
2823     {
2824       /* A pointer to the BFD which owns the symbol. This information
2825          is necessary so that a back end can work out what additional
2826          information (invisible to the application writer) is carried
2827          with the symbol.
2828
2829          This field is *almost* redundant, since you can use section->owner
2830          instead, except that some symbols point to the global sections
2831          bfd_{abs,com,und}_section.  This could be fixed by making
2832          these globals be per-bfd (or per-target-flavor).  FIXME.  */
2833       struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field.  */
2834
2835       /* The text of the symbol. The name is left alone, and not copied; the
2836          application may not alter it.  */
2837       const char *name;
2838
2839       /* The value of the symbol.  This really should be a union of a
2840          numeric value with a pointer, since some flags indicate that
2841          a pointer to another symbol is stored here.  */
2842       symvalue value;
2843
2844       /* Attributes of a symbol.  */
2845     #define BSF_NO_FLAGS            0
2846
2847       /* The symbol has local scope; `static' in `C'. The value
2848          is the offset into the section of the data.  */
2849     #define BSF_LOCAL               (1 << 0)
2850
2851       /* The symbol has global scope; initialized data in `C'. The
2852          value is the offset into the section of the data.  */
2853     #define BSF_GLOBAL              (1 << 1)
2854
2855       /* The symbol has global scope and is exported. The value is
2856          the offset into the section of the data.  */
2857     #define BSF_EXPORT              BSF_GLOBAL /* No real difference.  */
2858
2859       /* A normal C symbol would be one of:
2860          `BSF_LOCAL', `BSF_UNDEFINED' or `BSF_GLOBAL'.  */
2861
2862       /* The symbol is a debugging record. The value has an arbitrary
2863          meaning, unless BSF_DEBUGGING_RELOC is also set.  */
2864     #define BSF_DEBUGGING           (1 << 2)
2865
2866       /* The symbol denotes a function entry point.  Used in ELF,
2867          perhaps others someday.  */
2868     #define BSF_FUNCTION            (1 << 3)
2869
2870       /* Used by the linker.  */
2871     #define BSF_KEEP                (1 << 5)
2872
2873       /* An ELF common symbol.  */
2874     #define BSF_ELF_COMMON          (1 << 6)
2875
2876       /* A weak global symbol, overridable without warnings by
2877          a regular global symbol of the same name.  */
2878     #define BSF_WEAK                (1 << 7)
2879
2880       /* This symbol was created to point to a section, e.g. ELF's
2881          STT_SECTION symbols.  */
2882     #define BSF_SECTION_SYM         (1 << 8)
2883
2884       /* The symbol used to be a common symbol, but now it is
2885          allocated.  */
2886     #define BSF_OLD_COMMON          (1 << 9)
2887
2888       /* In some files the type of a symbol sometimes alters its
2889          location in an output file - ie in coff a `ISFCN' symbol
2890          which is also `C_EXT' symbol appears where it was
2891          declared and not at the end of a section.  This bit is set
2892          by the target BFD part to convey this information.  */
2893     #define BSF_NOT_AT_END          (1 << 10)
2894
2895       /* Signal that the symbol is the label of constructor section.  */
2896     #define BSF_CONSTRUCTOR         (1 << 11)
2897
2898       /* Signal that the symbol is a warning symbol.  The name is a
2899          warning.  The name of the next symbol is the one to warn about;
2900          if a reference is made to a symbol with the same name as the next
2901          symbol, a warning is issued by the linker.  */
2902     #define BSF_WARNING             (1 << 12)
2903
2904       /* Signal that the symbol is indirect.  This symbol is an indirect
2905          pointer to the symbol with the same name as the next symbol.  */
2906     #define BSF_INDIRECT            (1 << 13)
2907
2908       /* BSF_FILE marks symbols that contain a file name.  This is used
2909          for ELF STT_FILE symbols.  */
2910     #define BSF_FILE                (1 << 14)
2911
2912       /* Symbol is from dynamic linking information.  */
2913     #define BSF_DYNAMIC             (1 << 15)
2914
2915       /* The symbol denotes a data object.  Used in ELF, and perhaps
2916          others someday.  */
2917     #define BSF_OBJECT              (1 << 16)
2918
2919       /* This symbol is a debugging symbol.  The value is the offset
2920          into the section of the data.  BSF_DEBUGGING should be set
2921          as well.  */
2922     #define BSF_DEBUGGING_RELOC     (1 << 17)
2923
2924       /* This symbol is thread local.  Used in ELF.  */
2925     #define BSF_THREAD_LOCAL        (1 << 18)
2926
2927       /* This symbol represents a complex relocation expression,
2928          with the expression tree serialized in the symbol name.  */
2929     #define BSF_RELC                (1 << 19)
2930
2931       /* This symbol represents a signed complex relocation expression,
2932          with the expression tree serialized in the symbol name.  */
2933     #define BSF_SRELC               (1 << 20)
2934
2935       /* This symbol was created by bfd_get_synthetic_symtab.  */
2936     #define BSF_SYNTHETIC           (1 << 21)
2937
2938       /* This symbol is an indirect code object.  Unrelated to BSF_INDIRECT.
2939          The dynamic linker will compute the value of this symbol by
2940          calling the function that it points to.  BSF_FUNCTION must
2941          also be also set.  */
2942     #define BSF_GNU_INDIRECT_FUNCTION (1 << 22)
2943       /* This symbol is a globally unique data object.  The dynamic linker
2944          will make sure that in the entire process there is just one symbol
2945          with this name and type in use.  BSF_OBJECT must also be set.  */
2946     #define BSF_GNU_UNIQUE          (1 << 23)
2947
2948       /* This section symbol should be included in the symbol table.  */
2949     #define BSF_SECTION_SYM_USED    (1 << 24)
2950
2951       flagword flags;
2952
2953       /* A pointer to the section to which this symbol is
2954          relative.  This will always be non NULL, there are special
2955          sections for undefined and absolute symbols.  */
2956       struct bfd_section *section;
2957
2958       /* Back end special data.  */
2959       union
2960         {
2961           void *p;
2962           bfd_vma i;
2963         }
2964       udata;
2965     }
2966     asymbol;
2967
2968
2969File: bfd.info,  Node: symbol handling functions,  Prev: typedef asymbol,  Up: Symbols
2970
29712.7.5 Symbol handling functions
2972-------------------------------
2973
29742.7.5.1 `bfd_get_symtab_upper_bound'
2975....................................
2976
2977*Description*
2978Return the number of bytes required to store a vector of pointers to
2979`asymbols' for all the symbols in the BFD ABFD, including a terminal
2980NULL pointer. If there are no symbols in the BFD, then return 0.  If an
2981error occurs, return -1.
2982     #define bfd_get_symtab_upper_bound(abfd) \
2983            BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
2984
29852.7.5.2 `bfd_is_local_label'
2986............................
2987
2988*Synopsis*
2989     bool bfd_is_local_label (bfd *abfd, asymbol *sym);
2990   *Description*
2991Return TRUE if the given symbol SYM in the BFD ABFD is a compiler
2992generated local label, else return FALSE.
2993
29942.7.5.3 `bfd_is_local_label_name'
2995.................................
2996
2997*Synopsis*
2998     bool bfd_is_local_label_name (bfd *abfd, const char *name);
2999   *Description*
3000Return TRUE if a symbol with the name NAME in the BFD ABFD is a
3001compiler generated local label, else return FALSE.  This just checks
3002whether the name has the form of a local label.
3003     #define bfd_is_local_label_name(abfd, name) \
3004            BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
3005
30062.7.5.4 `bfd_is_target_special_symbol'
3007......................................
3008
3009*Synopsis*
3010     bool bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
3011   *Description*
3012Return TRUE iff a symbol SYM in the BFD ABFD is something special to
3013the particular target represented by the BFD.  Such symbols should
3014normally not be mentioned to the user.
3015     #define bfd_is_target_special_symbol(abfd, sym) \
3016            BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
3017
30182.7.5.5 `bfd_canonicalize_symtab'
3019.................................
3020
3021*Description*
3022Read the symbols from the BFD ABFD, and fills in the vector LOCATION
3023with pointers to the symbols and a trailing NULL.  Return the actual
3024number of symbol pointers, not including the NULL.
3025     #define bfd_canonicalize_symtab(abfd, location) \
3026            BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
3027
30282.7.5.6 `bfd_set_symtab'
3029........................
3030
3031*Synopsis*
3032     bool bfd_set_symtab
3033        (bfd *abfd, asymbol **location, unsigned int count);
3034   *Description*
3035Arrange that when the output BFD ABFD is closed, the table LOCATION of
3036COUNT pointers to symbols will be written.
3037
30382.7.5.7 `bfd_print_symbol_vandf'
3039................................
3040
3041*Synopsis*
3042     void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
3043   *Description*
3044Print the value and flags of the SYMBOL supplied to the stream FILE.
3045
30462.7.5.8 `bfd_make_empty_symbol'
3047...............................
3048
3049*Description*
3050Create a new `asymbol' structure for the BFD ABFD and return a pointer
3051to it.
3052
3053   This routine is necessary because each back end has private
3054information surrounding the `asymbol'. Building your own `asymbol' and
3055pointing to it will not create the private information, and will cause
3056problems later on.
3057     #define bfd_make_empty_symbol(abfd) \
3058            BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
3059
30602.7.5.9 `_bfd_generic_make_empty_symbol'
3061........................................
3062
3063*Synopsis*
3064     asymbol *_bfd_generic_make_empty_symbol (bfd *);
3065   *Description*
3066Create a new `asymbol' structure for the BFD ABFD and return a pointer
3067to it.  Used by core file routines, binary back-end and anywhere else
3068where no private info is needed.
3069
30702.7.5.10 `bfd_make_debug_symbol'
3071................................
3072
3073*Description*
3074Create a new `asymbol' structure for the BFD ABFD, to be used as a
3075debugging symbol.  Further details of its use have yet to be worked out.
3076     #define bfd_make_debug_symbol(abfd,ptr,size) \
3077            BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
3078
30792.7.5.11 `bfd_decode_symclass'
3080..............................
3081
3082*Description*
3083Return a character corresponding to the symbol class of SYMBOL, or '?'
3084for an unknown class.
3085
3086   *Synopsis*
3087     int bfd_decode_symclass (asymbol *symbol);
3088   
30892.7.5.12 `bfd_is_undefined_symclass'
3090....................................
3091
3092*Description*
3093Returns non-zero if the class symbol returned by bfd_decode_symclass
3094represents an undefined symbol.  Returns zero otherwise.
3095
3096   *Synopsis*
3097     bool bfd_is_undefined_symclass (int symclass);
3098   
30992.7.5.13 `bfd_symbol_info'
3100..........................
3101
3102*Description*
3103Fill in the basic info about symbol that nm needs.  Additional info may
3104be added by the back-ends after calling this function.
3105
3106   *Synopsis*
3107     void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
3108   
31092.7.5.14 `bfd_copy_private_symbol_data'
3110.......................................
3111
3112*Synopsis*
3113     bool bfd_copy_private_symbol_data
3114        (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
3115   *Description*
3116Copy private symbol information from ISYM in the BFD IBFD to the symbol
3117OSYM in the BFD OBFD.  Return `TRUE' on success, `FALSE' on error.
3118Possible error returns are:
3119
3120   * `bfd_error_no_memory' - Not enough memory exists to create private
3121     data for OSEC.
3122
3123     #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
3124            BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
3125                      (ibfd, isymbol, obfd, osymbol))
3126
3127
3128File: bfd.info,  Node: Archives,  Next: Formats,  Prev: Symbols,  Up: BFD front end
3129
31302.8 Archives
3131============
3132
3133*Description*
3134An archive (or library) is just another BFD.  It has a symbol table,
3135although there's not much a user program will do with it.
3136
3137   The big difference between an archive BFD and an ordinary BFD is
3138that the archive doesn't have sections.  Instead it has a chain of BFDs
3139that are considered its contents.  These BFDs can be manipulated like
3140any other.  The BFDs contained in an archive opened for reading will
3141all be opened for reading.  You may put either input or output BFDs
3142into an archive opened for output; they will be handled correctly when
3143the archive is closed.
3144
3145   Use `bfd_openr_next_archived_file' to step through the contents of
3146an archive opened for input.  You don't have to read the entire archive
3147if you don't want to!  Read it until you find what you want.
3148
3149   A BFD returned by `bfd_openr_next_archived_file' can be closed
3150manually with `bfd_close'.  If you do not close it, then a second
3151iteration through the members of an archive may return the same BFD.
3152If you close the archive BFD, then all the member BFDs will
3153automatically be closed as well.
3154
3155   Archive contents of output BFDs are chained through the
3156`archive_next' pointer in a BFD.  The first one is findable through the
3157`archive_head' slot of the archive.  Set it with `bfd_set_archive_head'
3158(q.v.).  A given BFD may be in only one open output archive at a time.
3159
3160   As expected, the BFD archive code is more general than the archive
3161code of any given environment.  BFD archives may contain files of
3162different formats (e.g., a.out and coff) and even different
3163architectures.  You may even place archives recursively into archives!
3164
3165   This can cause unexpected confusion, since some archive formats are
3166more expressive than others.  For instance, Intel COFF archives can
3167preserve long filenames; SunOS a.out archives cannot.  If you move a
3168file from the first to the second format and back again, the filename
3169may be truncated.  Likewise, different a.out environments have different
3170conventions as to how they truncate filenames, whether they preserve
3171directory names in filenames, etc.  When interoperating with native
3172tools, be sure your files are homogeneous.
3173
3174   Beware: most of these formats do not react well to the presence of
3175spaces in filenames.  We do the best we can, but can't always handle
3176this case due to restrictions in the format of archives.  Many Unix
3177utilities are braindead in regards to spaces and such in filenames
3178anyway, so this shouldn't be much of a restriction.
3179
3180   Archives are supported in BFD in `archive.c'.
3181
31822.8.1 Archive functions
3183-----------------------
3184
31852.8.1.1 `bfd_get_next_mapent'
3186.............................
3187
3188*Synopsis*
3189     symindex bfd_get_next_mapent
3190        (bfd *abfd, symindex previous, carsym **sym);
3191   *Description*
3192Step through archive ABFD's symbol table (if it has one).  Successively
3193update SYM with the next symbol's information, returning that symbol's
3194(internal) index into the symbol table.
3195
3196   Supply `BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first
3197one; returns `BFD_NO_MORE_SYMBOLS' when you've already got the last one.
3198
3199   A `carsym' is a canonical archive symbol.  The only user-visible
3200element is its name, a null-terminated string.
3201
32022.8.1.2 `bfd_set_archive_head'
3203..............................
3204
3205*Synopsis*
3206     bool bfd_set_archive_head (bfd *output, bfd *new_head);
3207   *Description*
3208Set the head of the chain of BFDs contained in the archive OUTPUT to
3209NEW_HEAD.
3210
32112.8.1.3 `bfd_openr_next_archived_file'
3212......................................
3213
3214*Synopsis*
3215     bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
3216   *Description*
3217Provided a BFD, ARCHIVE, containing an archive and NULL, open an input
3218BFD on the first contained element and returns that.  Subsequent calls
3219should pass the archive and the previous return value to return a
3220created BFD to the next contained element.  NULL is returned when there
3221are no more.  Note - if you want to process the bfd returned by this
3222call be sure to call bfd_check_format() on it first.
3223
3224
3225File: bfd.info,  Node: Formats,  Next: Relocations,  Prev: Archives,  Up: BFD front end
3226
32272.9 File formats
3228================
3229
3230A format is a BFD concept of high level file contents type. The formats
3231supported by BFD are:
3232
3233   * `bfd_object'
3234   The BFD may contain data, symbols, relocations and debug info.
3235
3236   * `bfd_archive'
3237   The BFD contains other BFDs and an optional index.
3238
3239   * `bfd_core'
3240   The BFD contains the result of an executable core dump.
3241
32422.9.1 File format functions
3243---------------------------
3244
32452.9.1.1 `bfd_check_format'
3246..........................
3247
3248*Synopsis*
3249     bool bfd_check_format (bfd *abfd, bfd_format format);
3250   *Description*
3251Verify if the file attached to the BFD ABFD is compatible with the
3252format FORMAT (i.e., one of `bfd_object', `bfd_archive' or `bfd_core').
3253
3254   If the BFD has been set to a specific target before the call, only
3255the named target and format combination is checked. If the target has
3256not been set, or has been set to `default', then all the known target
3257backends is interrogated to determine a match.  If the default target
3258matches, it is used.  If not, exactly one target must recognize the
3259file, or an error results.
3260
3261   The function returns `TRUE' on success, otherwise `FALSE' with one
3262of the following error codes:
3263
3264   * `bfd_error_invalid_operation' - if `format' is not one of
3265     `bfd_object', `bfd_archive' or `bfd_core'.
3266
3267   * `bfd_error_system_call' - if an error occured during a read - even
3268     some file mismatches can cause bfd_error_system_calls.
3269
3270   * `file_not_recognised' - none of the backends recognised the file
3271     format.
3272
3273   * `bfd_error_file_ambiguously_recognized' - more than one backend
3274     recognised the file format.
3275
32762.9.1.2 `bfd_check_format_matches'
3277..................................
3278
3279*Synopsis*
3280     bool bfd_check_format_matches
3281        (bfd *abfd, bfd_format format, char ***matching);
3282   *Description*
3283Like `bfd_check_format', except when it returns FALSE with `bfd_errno'
3284set to `bfd_error_file_ambiguously_recognized'.  In that case, if
3285MATCHING is not NULL, it will be filled in with a NULL-terminated list
3286of the names of the formats that matched, allocated with `malloc'.
3287Then the user may choose a format and try again.
3288
3289   When done with the list that MATCHING points to, the caller should
3290free it.
3291
32922.9.1.3 `bfd_set_format'
3293........................
3294
3295*Synopsis*
3296     bool bfd_set_format (bfd *abfd, bfd_format format);
3297   *Description*
3298This function sets the file format of the BFD ABFD to the format
3299FORMAT. If the target set in the BFD does not support the format
3300requested, the format is invalid, or the BFD is not open for writing,
3301then an error occurs.
3302
33032.9.1.4 `bfd_format_string'
3304...........................
3305
3306*Synopsis*
3307     const char *bfd_format_string (bfd_format format);
3308   *Description*
3309Return a pointer to a const string `invalid', `object', `archive',
3310`core', or `unknown', depending upon the value of FORMAT.
3311
3312
3313File: bfd.info,  Node: Relocations,  Next: Core Files,  Prev: Formats,  Up: BFD front end
3314
33152.10 Relocations
3316================
3317
3318BFD maintains relocations in much the same way it maintains symbols:
3319they are left alone until required, then read in en-masse and
3320translated into an internal form.  A common routine
3321`bfd_perform_relocation' acts upon the canonical form to do the fixup.
3322
3323   Relocations are maintained on a per section basis, while symbols are
3324maintained on a per BFD basis.
3325
3326   All that a back end has to do to fit the BFD interface is to create
3327a `struct reloc_cache_entry' for each relocation in a particular
3328section, and fill in the right bits of the structures.
3329
3330* Menu:
3331
3332* typedef arelent::
3333* howto manager::
3334
3335
3336File: bfd.info,  Node: typedef arelent,  Next: howto manager,  Prev: Relocations,  Up: Relocations
3337
33382.10.1 typedef arelent
3339----------------------
3340
3341This is the structure of a relocation entry:
3342
3343
3344     typedef enum bfd_reloc_status
3345     {
3346       /* No errors detected.  Note - the value 2 is used so that it
3347          will not be mistaken for the boolean TRUE or FALSE values.  */
3348       bfd_reloc_ok = 2,
3349
3350       /* The relocation was performed, but there was an overflow.  */
3351       bfd_reloc_overflow,
3352
3353       /* The address to relocate was not within the section supplied.  */
3354       bfd_reloc_outofrange,
3355
3356       /* Used by special functions.  */
3357       bfd_reloc_continue,
3358
3359       /* Unsupported relocation size requested.  */
3360       bfd_reloc_notsupported,
3361
3362       /* Unused.  */
3363       bfd_reloc_other,
3364
3365       /* The symbol to relocate against was undefined.  */
3366       bfd_reloc_undefined,
3367
3368       /* The relocation was performed, but may not be ok.  If this type is
3369          returned, the error_message argument to bfd_perform_relocation
3370          will be set.  */
3371       bfd_reloc_dangerous
3372      }
3373      bfd_reloc_status_type;
3374
3375     typedef const struct reloc_howto_struct reloc_howto_type;
3376
3377     typedef struct reloc_cache_entry
3378     {
3379       /* A pointer into the canonical table of pointers.  */
3380       struct bfd_symbol **sym_ptr_ptr;
3381
3382       /* offset in section.  */
3383       bfd_size_type address;
3384
3385       /* addend for relocation value.  */
3386       bfd_vma addend;
3387
3388       /* Pointer to how to perform the required relocation.  */
3389       reloc_howto_type *howto;
3390
3391     }
3392     arelent;
3393   *Description*
3394Here is a description of each of the fields within an `arelent':
3395
3396   * `sym_ptr_ptr'
3397   The symbol table pointer points to a pointer to the symbol
3398associated with the relocation request.  It is the pointer into the
3399table returned by the back end's `canonicalize_symtab' action. *Note
3400Symbols::. The symbol is referenced through a pointer to a pointer so
3401that tools like the linker can fix up all the symbols of the same name
3402by modifying only one pointer. The relocation routine looks in the
3403symbol and uses the base of the section the symbol is attached to and
3404the value of the symbol as the initial relocation offset. If the symbol
3405pointer is zero, then the section provided is looked up.
3406
3407   * `address'
3408   The `address' field gives the offset in bytes from the base of the
3409section data which owns the relocation record to the first byte of
3410relocatable information. The actual data relocated will be relative to
3411this point; for example, a relocation type which modifies the bottom
3412two bytes of a four byte word would not touch the first byte pointed to
3413in a big endian world.
3414
3415   * `addend'
3416   The `addend' is a value provided by the back end to be added (!)  to
3417the relocation offset. Its interpretation is dependent upon the howto.
3418For example, on the 68k the code:
3419
3420             char foo[];
3421             main()
3422                     {
3423                     return foo[0x12345678];
3424                     }
3425
3426   Could be compiled into:
3427
3428             linkw fp,#-4
3429             moveb @#12345678,d0
3430             extbl d0
3431             unlk fp
3432             rts
3433
3434   This could create a reloc pointing to `foo', but leave the offset in
3435the data, something like:
3436
3437     RELOCATION RECORDS FOR [.text]:
3438     offset   type      value
3439     00000006 32        _foo
3440
3441     00000000 4e56 fffc          ; linkw fp,#-4
3442     00000004 1039 1234 5678     ; moveb @#12345678,d0
3443     0000000a 49c0               ; extbl d0
3444     0000000c 4e5e               ; unlk fp
3445     0000000e 4e75               ; rts
3446
3447   Using coff and an 88k, some instructions don't have enough space in
3448them to represent the full address range, and pointers have to be
3449loaded in two parts. So you'd get something like:
3450
3451             or.u     r13,r0,hi16(_foo+0x12345678)
3452             ld.b     r2,r13,lo16(_foo+0x12345678)
3453             jmp      r1
3454
3455   This should create two relocs, both pointing to `_foo', and with
34560x12340000 in their addend field. The data would consist of:
3457
3458     RELOCATION RECORDS FOR [.text]:
3459     offset   type      value
3460     00000002 HVRT16    _foo+0x12340000
3461     00000006 LVRT16    _foo+0x12340000
3462
3463     00000000 5da05678           ; or.u r13,r0,0x5678
3464     00000004 1c4d5678           ; ld.b r2,r13,0x5678
3465     00000008 f400c001           ; jmp r1
3466
3467   The relocation routine digs out the value from the data, adds it to
3468the addend to get the original offset, and then adds the value of
3469`_foo'. Note that all 32 bits have to be kept around somewhere, to cope
3470with carry from bit 15 to bit 16.
3471
3472   One further example is the sparc and the a.out format. The sparc has
3473a similar problem to the 88k, in that some instructions don't have room
3474for an entire offset, but on the sparc the parts are created in odd
3475sized lumps. The designers of the a.out format chose to not use the
3476data within the section for storing part of the offset; all the offset
3477is kept within the reloc. Anything in the data should be ignored.
3478
3479             save %sp,-112,%sp
3480             sethi %hi(_foo+0x12345678),%g2
3481             ldsb [%g2+%lo(_foo+0x12345678)],%i0
3482             ret
3483             restore
3484
3485   Both relocs contain a pointer to `foo', and the offsets contain junk.
3486
3487     RELOCATION RECORDS FOR [.text]:
3488     offset   type      value
3489     00000004 HI22      _foo+0x12345678
3490     00000008 LO10      _foo+0x12345678
3491
3492     00000000 9de3bf90     ; save %sp,-112,%sp
3493     00000004 05000000     ; sethi %hi(_foo+0),%g2
3494     00000008 f048a000     ; ldsb [%g2+%lo(_foo+0)],%i0
3495     0000000c 81c7e008     ; ret
3496     00000010 81e80000     ; restore
3497
3498   * `howto'
3499   The `howto' field can be imagined as a relocation instruction. It is
3500a pointer to a structure which contains information on what to do with
3501all of the other information in the reloc record and data section. A
3502back end would normally have a relocation instruction set and turn
3503relocations into pointers to the correct structure on input - but it
3504would be possible to create each howto field on demand.
3505
35062.10.1.1 `enum complain_overflow'
3507.................................
3508
3509Indicates what sort of overflow checking should be done when performing
3510a relocation.
3511
3512
3513     enum complain_overflow
3514     {
3515       /* Do not complain on overflow.  */
3516       complain_overflow_dont,
3517
3518       /* Complain if the value overflows when considered as a signed
3519          number one bit larger than the field.  ie. A bitfield of N bits
3520          is allowed to represent -2**n to 2**n-1.  */
3521       complain_overflow_bitfield,
3522
3523       /* Complain if the value overflows when considered as a signed
3524          number.  */
3525       complain_overflow_signed,
3526
3527       /* Complain if the value overflows when considered as an
3528          unsigned number.  */
3529       complain_overflow_unsigned
3530     };
3531
35322.10.1.2 `reloc_howto_type'
3533...........................
3534
3535The `reloc_howto_type' is a structure which contains all the
3536information that libbfd needs to know to tie up a back end's data.
3537
3538     struct reloc_howto_struct
3539     {
3540       /* The type field has mainly a documentary use - the back end can
3541          do what it wants with it, though normally the back end's idea of
3542          an external reloc number is stored in this field.  */
3543       unsigned int type;
3544
3545       /* The size of the item to be relocated in bytes.  */
3546       unsigned int size:4;
3547
3548       /* The number of bits in the field to be relocated.  This is used
3549          when doing overflow checking.  */
3550       unsigned int bitsize:7;
3551
3552       /* The value the final relocation is shifted right by.  This drops
3553          unwanted data from the relocation.  */
3554       unsigned int rightshift:6;
3555
3556       /* The bit position of the reloc value in the destination.
3557          The relocated value is left shifted by this amount.  */
3558       unsigned int bitpos:6;
3559
3560       /* What type of overflow error should be checked for when
3561          relocating.  */
3562       ENUM_BITFIELD (complain_overflow) complain_on_overflow:2;
3563
3564       /* The relocation value should be negated before applying.  */
3565       unsigned int negate:1;
3566
3567       /* The relocation is relative to the item being relocated.  */
3568       unsigned int pc_relative:1;
3569
3570       /* Some formats record a relocation addend in the section contents
3571          rather than with the relocation.  For ELF formats this is the
3572          distinction between USE_REL and USE_RELA (though the code checks
3573          for USE_REL == 1/0).  The value of this field is TRUE if the
3574          addend is recorded with the section contents; when performing a
3575          partial link (ld -r) the section contents (the data) will be
3576          modified.  The value of this field is FALSE if addends are
3577          recorded with the relocation (in arelent.addend); when performing
3578          a partial link the relocation will be modified.
3579          All relocations for all ELF USE_RELA targets should set this field
3580          to FALSE (values of TRUE should be looked on with suspicion).
3581          However, the converse is not true: not all relocations of all ELF
3582          USE_REL targets set this field to TRUE.  Why this is so is peculiar
3583          to each particular target.  For relocs that aren't used in partial
3584          links (e.g. GOT stuff) it doesn't matter what this is set to.  */
3585       unsigned int partial_inplace:1;
3586
3587       /* When some formats create PC relative instructions, they leave
3588          the value of the pc of the place being relocated in the offset
3589          slot of the instruction, so that a PC relative relocation can
3590          be made just by adding in an ordinary offset (e.g., sun3 a.out).
3591          Some formats leave the displacement part of an instruction
3592          empty (e.g., ELF); this flag signals the fact.  */
3593       unsigned int pcrel_offset:1;
3594
3595       /* src_mask selects the part of the instruction (or data) to be used
3596          in the relocation sum.  If the target relocations don't have an
3597          addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
3598          dst_mask to extract the addend from the section contents.  If
3599          relocations do have an addend in the reloc, eg. ELF USE_RELA, this
3600          field should normally be zero.  Non-zero values for ELF USE_RELA
3601          targets should be viewed with suspicion as normally the value in
3602          the dst_mask part of the section contents should be ignored.  */
3603       bfd_vma src_mask;
3604
3605       /* dst_mask selects which parts of the instruction (or data) are
3606          replaced with a relocated value.  */
3607       bfd_vma dst_mask;
3608
3609       /* If this field is non null, then the supplied function is
3610          called rather than the normal function.  This allows really
3611          strange relocation methods to be accommodated.  */
3612       bfd_reloc_status_type (*special_function)
3613         (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
3614          bfd *, char **);
3615
3616       /* The textual name of the relocation type.  */
3617       const char *name;
3618     };
3619   
36202.10.1.3 `The HOWTO Macro'
3621..........................
3622
3623*Description*
3624The HOWTO macro fills in a reloc_howto_type (a typedef for const struct
3625reloc_howto_struct).
3626     #define HOWTO_RSIZE(sz) ((sz) < 0 ? -(sz) : (sz))
3627     #define HOWTO(type, right, size, bits, pcrel, left, ovf, func, name,   \
3628                   inplace, src_mask, dst_mask, pcrel_off)                  \
3629       { (unsigned) type, HOWTO_RSIZE (size), bits, right, left, ovf,       \
3630         size < 0, pcrel, inplace, pcrel_off, src_mask, dst_mask, func, name }
3631
3632   *Description*
3633This is used to fill in an empty howto entry in an array.
3634     #define EMPTY_HOWTO(C) \
3635       HOWTO ((C), 0, 1, 0, false, 0, complain_overflow_dont, NULL, \
3636              NULL, false, 0, 0, false)
3637
3638     static inline unsigned int
3639     bfd_get_reloc_size (reloc_howto_type *howto)
3640     {
3641       return howto->size;
3642     }
3643
36442.10.1.4 `arelent_chain'
3645........................
3646
3647*Description*
3648How relocs are tied together in an `asection':
3649     typedef struct relent_chain
3650     {
3651       arelent relent;
3652       struct relent_chain *next;
3653     }
3654     arelent_chain;
3655
36562.10.1.5 `bfd_check_overflow'
3657.............................
3658
3659*Synopsis*
3660     bfd_reloc_status_type bfd_check_overflow
3661        (enum complain_overflow how,
3662         unsigned int bitsize,
3663         unsigned int rightshift,
3664         unsigned int addrsize,
3665         bfd_vma relocation);
3666   *Description*
3667Perform overflow checking on RELOCATION which has BITSIZE significant
3668bits and will be shifted right by RIGHTSHIFT bits, on a machine with
3669addresses containing ADDRSIZE significant bits.  The result is either of
3670`bfd_reloc_ok' or `bfd_reloc_overflow'.
3671
36722.10.1.6 `bfd_reloc_offset_in_range'
3673....................................
3674
3675*Synopsis*
3676     bool bfd_reloc_offset_in_range
3677        (reloc_howto_type *howto,
3678         bfd *abfd,
3679         asection *section,
3680         bfd_size_type offset);
3681   *Description*
3682Returns TRUE if the reloc described by HOWTO can be applied at OFFSET
3683octets in SECTION.
3684
36852.10.1.7 `bfd_perform_relocation'
3686.................................
3687
3688*Synopsis*
3689     bfd_reloc_status_type bfd_perform_relocation
3690        (bfd *abfd,
3691         arelent *reloc_entry,
3692         void *data,
3693         asection *input_section,
3694         bfd *output_bfd,
3695         char **error_message);
3696   *Description*
3697If OUTPUT_BFD is supplied to this function, the generated image will be
3698relocatable; the relocations are copied to the output file after they
3699have been changed to reflect the new state of the world. There are two
3700ways of reflecting the results of partial linkage in an output file: by
3701modifying the output data in place, and by modifying the relocation
3702record.  Some native formats (e.g., basic a.out and basic coff) have no
3703way of specifying an addend in the relocation type, so the addend has
3704to go in the output data.  This is no big deal since in these formats
3705the output data slot will always be big enough for the addend. Complex
3706reloc types with addends were invented to solve just this problem.  The
3707ERROR_MESSAGE argument is set to an error message if this return
3708`bfd_reloc_dangerous'.
3709
37102.10.1.8 `bfd_install_relocation'
3711.................................
3712
3713*Synopsis*
3714     bfd_reloc_status_type bfd_install_relocation
3715        (bfd *abfd,
3716         arelent *reloc_entry,
3717         void *data, bfd_vma data_start,
3718         asection *input_section,
3719         char **error_message);
3720   *Description*
3721This looks remarkably like `bfd_perform_relocation', except it does not
3722expect that the section contents have been filled in.  I.e., it's
3723suitable for use when creating, rather than applying a relocation.
3724
3725   For now, this function should be considered reserved for the
3726assembler.
3727
3728
3729File: bfd.info,  Node: howto manager,  Prev: typedef arelent,  Up: Relocations
3730
37312.10.2 The howto manager
3732------------------------
3733
3734When an application wants to create a relocation, but doesn't know what
3735the target machine might call it, it can find out by using this bit of
3736code.
3737
37382.10.2.1 `bfd_reloc_code_type'
3739..............................
3740
3741*Description*
3742The insides of a reloc code.  The idea is that, eventually, there will
3743be one enumerator for every type of relocation we ever do.  Pass one of
3744these values to `bfd_reloc_type_lookup', and it'll return a howto
3745pointer.
3746
3747   This does mean that the application must determine the correct
3748enumerator value; you can't get a howto pointer from a random set of
3749attributes.
3750
3751   Here are the possible values for `enum bfd_reloc_code_real':
3752
3753 -- : BFD_RELOC_64
3754 -- : BFD_RELOC_32
3755 -- : BFD_RELOC_26
3756 -- : BFD_RELOC_24
3757 -- : BFD_RELOC_16
3758 -- : BFD_RELOC_14
3759 -- : BFD_RELOC_8
3760     Basic absolute relocations of N bits.
3761
3762 -- : BFD_RELOC_64_PCREL
3763 -- : BFD_RELOC_32_PCREL
3764 -- : BFD_RELOC_24_PCREL
3765 -- : BFD_RELOC_16_PCREL
3766 -- : BFD_RELOC_12_PCREL
3767 -- : BFD_RELOC_8_PCREL
3768     PC-relative relocations.  Sometimes these are relative to the
3769     address of the relocation itself; sometimes they are relative to
3770     the start of the section containing the relocation.  It depends on
3771     the specific target.
3772
3773 -- : BFD_RELOC_32_SECREL
3774 -- : BFD_RELOC_16_SECIDX
3775     Section relative relocations.  Some targets need this for DWARF2.
3776
3777 -- : BFD_RELOC_32_GOT_PCREL
3778 -- : BFD_RELOC_16_GOT_PCREL
3779 -- : BFD_RELOC_8_GOT_PCREL
3780 -- : BFD_RELOC_32_GOTOFF
3781 -- : BFD_RELOC_16_GOTOFF
3782 -- : BFD_RELOC_LO16_GOTOFF
3783 -- : BFD_RELOC_HI16_GOTOFF
3784 -- : BFD_RELOC_HI16_S_GOTOFF
3785 -- : BFD_RELOC_8_GOTOFF
3786 -- : BFD_RELOC_64_PLT_PCREL
3787 -- : BFD_RELOC_32_PLT_PCREL
3788 -- : BFD_RELOC_24_PLT_PCREL
3789 -- : BFD_RELOC_16_PLT_PCREL
3790 -- : BFD_RELOC_8_PLT_PCREL
3791 -- : BFD_RELOC_64_PLTOFF
3792 -- : BFD_RELOC_32_PLTOFF
3793 -- : BFD_RELOC_16_PLTOFF
3794 -- : BFD_RELOC_LO16_PLTOFF
3795 -- : BFD_RELOC_HI16_PLTOFF
3796 -- : BFD_RELOC_HI16_S_PLTOFF
3797 -- : BFD_RELOC_8_PLTOFF
3798     For ELF.
3799
3800 -- : BFD_RELOC_SIZE32
3801 -- : BFD_RELOC_SIZE64
3802     Size relocations.
3803
3804 -- : BFD_RELOC_68K_GLOB_DAT
3805 -- : BFD_RELOC_68K_JMP_SLOT
3806 -- : BFD_RELOC_68K_RELATIVE
3807 -- : BFD_RELOC_68K_TLS_GD32
3808 -- : BFD_RELOC_68K_TLS_GD16
3809 -- : BFD_RELOC_68K_TLS_GD8
3810 -- : BFD_RELOC_68K_TLS_LDM32
3811 -- : BFD_RELOC_68K_TLS_LDM16
3812 -- : BFD_RELOC_68K_TLS_LDM8
3813 -- : BFD_RELOC_68K_TLS_LDO32
3814 -- : BFD_RELOC_68K_TLS_LDO16
3815 -- : BFD_RELOC_68K_TLS_LDO8
3816 -- : BFD_RELOC_68K_TLS_IE32
3817 -- : BFD_RELOC_68K_TLS_IE16
3818 -- : BFD_RELOC_68K_TLS_IE8
3819 -- : BFD_RELOC_68K_TLS_LE32
3820 -- : BFD_RELOC_68K_TLS_LE16
3821 -- : BFD_RELOC_68K_TLS_LE8
3822     Relocations used by 68K ELF.
3823
3824 -- : BFD_RELOC_VAX_GLOB_DAT
3825 -- : BFD_RELOC_VAX_GLOB_REF
3826 -- : BFD_RELOC_VAX_JMP_SLOT
3827 -- : BFD_RELOC_VAX_RELATIVE
3828     Relocations used by VAX ELF.
3829
3830 -- : BFD_RELOC_32_BASEREL
3831 -- : BFD_RELOC_16_BASEREL
3832 -- : BFD_RELOC_LO16_BASEREL
3833 -- : BFD_RELOC_HI16_BASEREL
3834 -- : BFD_RELOC_HI16_S_BASEREL
3835 -- : BFD_RELOC_8_BASEREL
3836 -- : BFD_RELOC_RVA
3837     Linkage-table relative.
3838
3839 -- : BFD_RELOC_8_FFnn
3840     Absolute 8-bit relocation, but used to form an address like 0xFFnn.
3841
3842 -- : BFD_RELOC_32_PCREL_S2
3843 -- : BFD_RELOC_16_PCREL_S2
3844 -- : BFD_RELOC_23_PCREL_S2
3845     These PC-relative relocations are stored as word displacements -
3846     i.e., byte displacements shifted right two bits.  The 30-bit word
3847     displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the
3848     SPARC.  (SPARC tools generally refer to this as <<WDISP30>>.)  The
3849     signed 16-bit displacement is used on the MIPS, and the 23-bit
3850     displacement is used on the Alpha.
3851
3852 -- : BFD_RELOC_HI22
3853 -- : BFD_RELOC_LO10
3854     High 22 bits and low 10 bits of 32-bit value, placed into lower
3855     bits of the target word.  These are used on the SPARC.
3856
3857 -- : BFD_RELOC_GPREL16
3858 -- : BFD_RELOC_GPREL32
3859     For systems that allocate a Global Pointer register, these are
3860     displacements off that register.  These relocation types are
3861     handled specially, because the value the register will have is
3862     decided relatively late.
3863
3864 -- : BFD_RELOC_NONE
3865 -- : BFD_RELOC_SPARC_WDISP22
3866 -- : BFD_RELOC_SPARC22
3867 -- : BFD_RELOC_SPARC13
3868 -- : BFD_RELOC_SPARC_GOT10
3869 -- : BFD_RELOC_SPARC_GOT13
3870 -- : BFD_RELOC_SPARC_GOT22
3871 -- : BFD_RELOC_SPARC_PC10
3872 -- : BFD_RELOC_SPARC_PC22
3873 -- : BFD_RELOC_SPARC_WPLT30
3874 -- : BFD_RELOC_SPARC_COPY
3875 -- : BFD_RELOC_SPARC_GLOB_DAT
3876 -- : BFD_RELOC_SPARC_JMP_SLOT
3877 -- : BFD_RELOC_SPARC_RELATIVE
3878 -- : BFD_RELOC_SPARC_UA16
3879 -- : BFD_RELOC_SPARC_UA32
3880 -- : BFD_RELOC_SPARC_UA64
3881 -- : BFD_RELOC_SPARC_GOTDATA_HIX22
3882 -- : BFD_RELOC_SPARC_GOTDATA_LOX10
3883 -- : BFD_RELOC_SPARC_GOTDATA_OP_HIX22
3884 -- : BFD_RELOC_SPARC_GOTDATA_OP_LOX10
3885 -- : BFD_RELOC_SPARC_GOTDATA_OP
3886 -- : BFD_RELOC_SPARC_JMP_IREL
3887 -- : BFD_RELOC_SPARC_IRELATIVE
3888     SPARC ELF relocations.  There is probably some overlap with other
3889     relocation types already defined.
3890
3891 -- : BFD_RELOC_SPARC_BASE13
3892 -- : BFD_RELOC_SPARC_BASE22
3893     I think these are specific to SPARC a.out (e.g., Sun 4).
3894
3895 -- : BFD_RELOC_SPARC_64
3896 -- : BFD_RELOC_SPARC_10
3897 -- : BFD_RELOC_SPARC_11
3898 -- : BFD_RELOC_SPARC_OLO10
3899 -- : BFD_RELOC_SPARC_HH22
3900 -- : BFD_RELOC_SPARC_HM10
3901 -- : BFD_RELOC_SPARC_LM22
3902 -- : BFD_RELOC_SPARC_PC_HH22
3903 -- : BFD_RELOC_SPARC_PC_HM10
3904 -- : BFD_RELOC_SPARC_PC_LM22
3905 -- : BFD_RELOC_SPARC_WDISP16
3906 -- : BFD_RELOC_SPARC_WDISP19
3907 -- : BFD_RELOC_SPARC_7
3908 -- : BFD_RELOC_SPARC_6
3909 -- : BFD_RELOC_SPARC_5
3910 -- : BFD_RELOC_SPARC_DISP64
3911 -- : BFD_RELOC_SPARC_PLT32
3912 -- : BFD_RELOC_SPARC_PLT64
3913 -- : BFD_RELOC_SPARC_HIX22
3914 -- : BFD_RELOC_SPARC_LOX10
3915 -- : BFD_RELOC_SPARC_H44
3916 -- : BFD_RELOC_SPARC_M44
3917 -- : BFD_RELOC_SPARC_L44
3918 -- : BFD_RELOC_SPARC_REGISTER
3919 -- : BFD_RELOC_SPARC_H34
3920 -- : BFD_RELOC_SPARC_SIZE32
3921 -- : BFD_RELOC_SPARC_SIZE64
3922 -- : BFD_RELOC_SPARC_WDISP10
3923     SPARC64 relocations
3924
3925 -- : BFD_RELOC_SPARC_REV32
3926     SPARC little endian relocation
3927
3928 -- : BFD_RELOC_SPARC_TLS_GD_HI22
3929 -- : BFD_RELOC_SPARC_TLS_GD_LO10
3930 -- : BFD_RELOC_SPARC_TLS_GD_ADD
3931 -- : BFD_RELOC_SPARC_TLS_GD_CALL
3932 -- : BFD_RELOC_SPARC_TLS_LDM_HI22
3933 -- : BFD_RELOC_SPARC_TLS_LDM_LO10
3934 -- : BFD_RELOC_SPARC_TLS_LDM_ADD
3935 -- : BFD_RELOC_SPARC_TLS_LDM_CALL
3936 -- : BFD_RELOC_SPARC_TLS_LDO_HIX22
3937 -- : BFD_RELOC_SPARC_TLS_LDO_LOX10
3938 -- : BFD_RELOC_SPARC_TLS_LDO_ADD
3939 -- : BFD_RELOC_SPARC_TLS_IE_HI22
3940 -- : BFD_RELOC_SPARC_TLS_IE_LO10
3941 -- : BFD_RELOC_SPARC_TLS_IE_LD
3942 -- : BFD_RELOC_SPARC_TLS_IE_LDX
3943 -- : BFD_RELOC_SPARC_TLS_IE_ADD
3944 -- : BFD_RELOC_SPARC_TLS_LE_HIX22
3945 -- : BFD_RELOC_SPARC_TLS_LE_LOX10
3946 -- : BFD_RELOC_SPARC_TLS_DTPMOD32
3947 -- : BFD_RELOC_SPARC_TLS_DTPMOD64
3948 -- : BFD_RELOC_SPARC_TLS_DTPOFF32
3949 -- : BFD_RELOC_SPARC_TLS_DTPOFF64
3950 -- : BFD_RELOC_SPARC_TLS_TPOFF32
3951 -- : BFD_RELOC_SPARC_TLS_TPOFF64
3952     SPARC TLS relocations
3953
3954 -- : BFD_RELOC_SPU_IMM7
3955 -- : BFD_RELOC_SPU_IMM8
3956 -- : BFD_RELOC_SPU_IMM10
3957 -- : BFD_RELOC_SPU_IMM10W
3958 -- : BFD_RELOC_SPU_IMM16
3959 -- : BFD_RELOC_SPU_IMM16W
3960 -- : BFD_RELOC_SPU_IMM18
3961 -- : BFD_RELOC_SPU_PCREL9a
3962 -- : BFD_RELOC_SPU_PCREL9b
3963 -- : BFD_RELOC_SPU_PCREL16
3964 -- : BFD_RELOC_SPU_LO16
3965 -- : BFD_RELOC_SPU_HI16
3966 -- : BFD_RELOC_SPU_PPU32
3967 -- : BFD_RELOC_SPU_PPU64
3968 -- : BFD_RELOC_SPU_ADD_PIC
3969     SPU Relocations.
3970
3971 -- : BFD_RELOC_ALPHA_GPDISP_HI16
3972     Alpha ECOFF and ELF relocations.  Some of these treat the symbol or
3973     "addend" in some special way.  For GPDISP_HI16 ("gpdisp")
3974     relocations, the symbol is ignored when writing; when reading, it
3975     will be the absolute section symbol.  The addend is the
3976     displacement in bytes of the "lda" instruction from the "ldah"
3977     instruction (which is at the address of this reloc).
3978
3979 -- : BFD_RELOC_ALPHA_GPDISP_LO16
3980     For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
3981     with GPDISP_HI16 relocs.  The addend is ignored when writing the
3982     relocations out, and is filled in with the file's GP value on
3983     reading, for convenience.
3984
3985 -- : BFD_RELOC_ALPHA_GPDISP
3986     The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
3987     relocation except that there is no accompanying GPDISP_LO16
3988     relocation.
3989
3990 -- : BFD_RELOC_ALPHA_LITERAL
3991 -- : BFD_RELOC_ALPHA_ELF_LITERAL
3992 -- : BFD_RELOC_ALPHA_LITUSE
3993     The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
3994     the assembler turns it into a LDQ instruction to load the address
3995     of the symbol, and then fills in a register in the real
3996     instruction.
3997
3998     The LITERAL reloc, at the LDQ instruction, refers to the .lita
3999     section symbol.  The addend is ignored when writing, but is filled
4000     in with the file's GP value on reading, for convenience, as with
4001     the GPDISP_LO16 reloc.
4002
4003     The ELF_LITERAL reloc is somewhere between 16_GOTOFF and
4004     GPDISP_LO16.  It should refer to the symbol to be referenced, as
4005     with 16_GOTOFF, but it generates output not based on the position
4006     within the .got section, but relative to the GP value chosen for
4007     the file during the final link stage.
4008
4009     The LITUSE reloc, on the instruction using the loaded address,
4010     gives information to the linker that it might be able to use to
4011     optimize away some literal section references.  The symbol is
4012     ignored (read as the absolute section symbol), and the "addend"
4013     indicates the type of instruction using the register: 1 - "memory"
4014     fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target
4015     of branch)
4016
4017 -- : BFD_RELOC_ALPHA_HINT
4018     The HINT relocation indicates a value that should be filled into
4019     the "hint" field of a jmp/jsr/ret instruction, for possible branch-
4020     prediction logic which may be provided on some processors.
4021
4022 -- : BFD_RELOC_ALPHA_LINKAGE
4023     The LINKAGE relocation outputs a linkage pair in the object file,
4024     which is filled by the linker.
4025
4026 -- : BFD_RELOC_ALPHA_CODEADDR
4027     The CODEADDR relocation outputs a STO_CA in the object file, which
4028     is filled by the linker.
4029
4030 -- : BFD_RELOC_ALPHA_GPREL_HI16
4031 -- : BFD_RELOC_ALPHA_GPREL_LO16
4032     The GPREL_HI/LO relocations together form a 32-bit offset from the
4033     GP register.
4034
4035 -- : BFD_RELOC_ALPHA_BRSGP
4036     Like BFD_RELOC_23_PCREL_S2, except that the source and target must
4037     share a common GP, and the target address is adjusted for
4038     STO_ALPHA_STD_GPLOAD.
4039
4040 -- : BFD_RELOC_ALPHA_NOP
4041     The NOP relocation outputs a NOP if the longword displacement
4042     between two procedure entry points is < 2^21.
4043
4044 -- : BFD_RELOC_ALPHA_BSR
4045     The BSR relocation outputs a BSR if the longword displacement
4046     between two procedure entry points is < 2^21.
4047
4048 -- : BFD_RELOC_ALPHA_LDA
4049     The LDA relocation outputs a LDA if the longword displacement
4050     between two procedure entry points is < 2^16.
4051
4052 -- : BFD_RELOC_ALPHA_BOH
4053     The BOH relocation outputs a BSR if the longword displacement
4054     between two procedure entry points is < 2^21, or else a hint.
4055
4056 -- : BFD_RELOC_ALPHA_TLSGD
4057 -- : BFD_RELOC_ALPHA_TLSLDM
4058 -- : BFD_RELOC_ALPHA_DTPMOD64
4059 -- : BFD_RELOC_ALPHA_GOTDTPREL16
4060 -- : BFD_RELOC_ALPHA_DTPREL64
4061 -- : BFD_RELOC_ALPHA_DTPREL_HI16
4062 -- : BFD_RELOC_ALPHA_DTPREL_LO16
4063 -- : BFD_RELOC_ALPHA_DTPREL16
4064 -- : BFD_RELOC_ALPHA_GOTTPREL16
4065 -- : BFD_RELOC_ALPHA_TPREL64
4066 -- : BFD_RELOC_ALPHA_TPREL_HI16
4067 -- : BFD_RELOC_ALPHA_TPREL_LO16
4068 -- : BFD_RELOC_ALPHA_TPREL16
4069     Alpha thread-local storage relocations.
4070
4071 -- : BFD_RELOC_MIPS_JMP
4072 -- : BFD_RELOC_MICROMIPS_JMP
4073     The MIPS jump instruction.
4074
4075 -- : BFD_RELOC_MIPS16_JMP
4076     The MIPS16 jump instruction.
4077
4078 -- : BFD_RELOC_MIPS16_GPREL
4079     MIPS16 GP relative reloc.
4080
4081 -- : BFD_RELOC_HI16
4082     High 16 bits of 32-bit value; simple reloc.
4083
4084 -- : BFD_RELOC_HI16_S
4085     High 16 bits of 32-bit value but the low 16 bits will be sign
4086     extended and added to form the final result.  If the low 16 bits
4087     form a negative number, we need to add one to the high value to
4088     compensate for the borrow when the low bits are added.
4089
4090 -- : BFD_RELOC_LO16
4091     Low 16 bits.
4092
4093 -- : BFD_RELOC_HI16_PCREL
4094     High 16 bits of 32-bit pc-relative value
4095
4096 -- : BFD_RELOC_HI16_S_PCREL
4097     High 16 bits of 32-bit pc-relative value, adjusted
4098
4099 -- : BFD_RELOC_LO16_PCREL
4100     Low 16 bits of pc-relative value
4101
4102 -- : BFD_RELOC_MIPS16_GOT16
4103 -- : BFD_RELOC_MIPS16_CALL16
4104     Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of
4105     16-bit immediate fields
4106
4107 -- : BFD_RELOC_MIPS16_HI16
4108     MIPS16 high 16 bits of 32-bit value.
4109
4110 -- : BFD_RELOC_MIPS16_HI16_S
4111     MIPS16 high 16 bits of 32-bit value but the low 16 bits will be
4112     sign extended and added to form the final result.  If the low 16
4113     bits form a negative number, we need to add one to the high value
4114     to compensate for the borrow when the low bits are added.
4115
4116 -- : BFD_RELOC_MIPS16_LO16
4117     MIPS16 low 16 bits.
4118
4119 -- : BFD_RELOC_MIPS16_TLS_GD
4120 -- : BFD_RELOC_MIPS16_TLS_LDM
4121 -- : BFD_RELOC_MIPS16_TLS_DTPREL_HI16
4122 -- : BFD_RELOC_MIPS16_TLS_DTPREL_LO16
4123 -- : BFD_RELOC_MIPS16_TLS_GOTTPREL
4124 -- : BFD_RELOC_MIPS16_TLS_TPREL_HI16
4125 -- : BFD_RELOC_MIPS16_TLS_TPREL_LO16
4126     MIPS16 TLS relocations
4127
4128 -- : BFD_RELOC_MIPS_LITERAL
4129 -- : BFD_RELOC_MICROMIPS_LITERAL
4130     Relocation against a MIPS literal section.
4131
4132 -- : BFD_RELOC_MICROMIPS_7_PCREL_S1
4133 -- : BFD_RELOC_MICROMIPS_10_PCREL_S1
4134 -- : BFD_RELOC_MICROMIPS_16_PCREL_S1
4135     microMIPS PC-relative relocations.
4136
4137 -- : BFD_RELOC_MIPS16_16_PCREL_S1
4138     MIPS16 PC-relative relocation.
4139
4140 -- : BFD_RELOC_MIPS_21_PCREL_S2
4141 -- : BFD_RELOC_MIPS_26_PCREL_S2
4142 -- : BFD_RELOC_MIPS_18_PCREL_S3
4143 -- : BFD_RELOC_MIPS_19_PCREL_S2
4144     MIPS PC-relative relocations.
4145
4146 -- : BFD_RELOC_MICROMIPS_GPREL16
4147 -- : BFD_RELOC_MICROMIPS_HI16
4148 -- : BFD_RELOC_MICROMIPS_HI16_S
4149 -- : BFD_RELOC_MICROMIPS_LO16
4150     microMIPS versions of generic BFD relocs.
4151
4152 -- : BFD_RELOC_MIPS_GOT16
4153 -- : BFD_RELOC_MICROMIPS_GOT16
4154 -- : BFD_RELOC_MIPS_CALL16
4155 -- : BFD_RELOC_MICROMIPS_CALL16
4156 -- : BFD_RELOC_MIPS_GOT_HI16
4157 -- : BFD_RELOC_MICROMIPS_GOT_HI16
4158 -- : BFD_RELOC_MIPS_GOT_LO16
4159 -- : BFD_RELOC_MICROMIPS_GOT_LO16
4160 -- : BFD_RELOC_MIPS_CALL_HI16
4161 -- : BFD_RELOC_MICROMIPS_CALL_HI16
4162 -- : BFD_RELOC_MIPS_CALL_LO16
4163 -- : BFD_RELOC_MICROMIPS_CALL_LO16
4164 -- : BFD_RELOC_MIPS_SUB
4165 -- : BFD_RELOC_MICROMIPS_SUB
4166 -- : BFD_RELOC_MIPS_GOT_PAGE
4167 -- : BFD_RELOC_MICROMIPS_GOT_PAGE
4168 -- : BFD_RELOC_MIPS_GOT_OFST
4169 -- : BFD_RELOC_MICROMIPS_GOT_OFST
4170 -- : BFD_RELOC_MIPS_GOT_DISP
4171 -- : BFD_RELOC_MICROMIPS_GOT_DISP
4172 -- : BFD_RELOC_MIPS_SHIFT5
4173 -- : BFD_RELOC_MIPS_SHIFT6
4174 -- : BFD_RELOC_MIPS_INSERT_A
4175 -- : BFD_RELOC_MIPS_INSERT_B
4176 -- : BFD_RELOC_MIPS_DELETE
4177 -- : BFD_RELOC_MIPS_HIGHEST
4178 -- : BFD_RELOC_MICROMIPS_HIGHEST
4179 -- : BFD_RELOC_MIPS_HIGHER
4180 -- : BFD_RELOC_MICROMIPS_HIGHER
4181 -- : BFD_RELOC_MIPS_SCN_DISP
4182 -- : BFD_RELOC_MICROMIPS_SCN_DISP
4183 -- : BFD_RELOC_MIPS_16
4184 -- : BFD_RELOC_MIPS_RELGOT
4185 -- : BFD_RELOC_MIPS_JALR
4186 -- : BFD_RELOC_MICROMIPS_JALR
4187 -- : BFD_RELOC_MIPS_TLS_DTPMOD32
4188 -- : BFD_RELOC_MIPS_TLS_DTPREL32
4189 -- : BFD_RELOC_MIPS_TLS_DTPMOD64
4190 -- : BFD_RELOC_MIPS_TLS_DTPREL64
4191 -- : BFD_RELOC_MIPS_TLS_GD
4192 -- : BFD_RELOC_MICROMIPS_TLS_GD
4193 -- : BFD_RELOC_MIPS_TLS_LDM
4194 -- : BFD_RELOC_MICROMIPS_TLS_LDM
4195 -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16
4196 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16
4197 -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16
4198 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16
4199 -- : BFD_RELOC_MIPS_TLS_GOTTPREL
4200 -- : BFD_RELOC_MICROMIPS_TLS_GOTTPREL
4201 -- : BFD_RELOC_MIPS_TLS_TPREL32
4202 -- : BFD_RELOC_MIPS_TLS_TPREL64
4203 -- : BFD_RELOC_MIPS_TLS_TPREL_HI16
4204 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_HI16
4205 -- : BFD_RELOC_MIPS_TLS_TPREL_LO16
4206 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_LO16
4207 -- : BFD_RELOC_MIPS_EH
4208     MIPS ELF relocations.
4209
4210 -- : BFD_RELOC_MIPS_COPY
4211 -- : BFD_RELOC_MIPS_JUMP_SLOT
4212     MIPS ELF relocations (VxWorks and PLT extensions).
4213
4214 -- : BFD_RELOC_MOXIE_10_PCREL
4215     Moxie ELF relocations.
4216
4217 -- : BFD_RELOC_FT32_10
4218 -- : BFD_RELOC_FT32_20
4219 -- : BFD_RELOC_FT32_17
4220 -- : BFD_RELOC_FT32_18
4221 -- : BFD_RELOC_FT32_RELAX
4222 -- : BFD_RELOC_FT32_SC0
4223 -- : BFD_RELOC_FT32_SC1
4224 -- : BFD_RELOC_FT32_15
4225 -- : BFD_RELOC_FT32_DIFF32
4226     FT32 ELF relocations.
4227
4228 -- : BFD_RELOC_FRV_LABEL16
4229 -- : BFD_RELOC_FRV_LABEL24
4230 -- : BFD_RELOC_FRV_LO16
4231 -- : BFD_RELOC_FRV_HI16
4232 -- : BFD_RELOC_FRV_GPREL12
4233 -- : BFD_RELOC_FRV_GPRELU12
4234 -- : BFD_RELOC_FRV_GPREL32
4235 -- : BFD_RELOC_FRV_GPRELHI
4236 -- : BFD_RELOC_FRV_GPRELLO
4237 -- : BFD_RELOC_FRV_GOT12
4238 -- : BFD_RELOC_FRV_GOTHI
4239 -- : BFD_RELOC_FRV_GOTLO
4240 -- : BFD_RELOC_FRV_FUNCDESC
4241 -- : BFD_RELOC_FRV_FUNCDESC_GOT12
4242 -- : BFD_RELOC_FRV_FUNCDESC_GOTHI
4243 -- : BFD_RELOC_FRV_FUNCDESC_GOTLO
4244 -- : BFD_RELOC_FRV_FUNCDESC_VALUE
4245 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12
4246 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI
4247 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO
4248 -- : BFD_RELOC_FRV_GOTOFF12
4249 -- : BFD_RELOC_FRV_GOTOFFHI
4250 -- : BFD_RELOC_FRV_GOTOFFLO
4251 -- : BFD_RELOC_FRV_GETTLSOFF
4252 -- : BFD_RELOC_FRV_TLSDESC_VALUE
4253 -- : BFD_RELOC_FRV_GOTTLSDESC12
4254 -- : BFD_RELOC_FRV_GOTTLSDESCHI
4255 -- : BFD_RELOC_FRV_GOTTLSDESCLO
4256 -- : BFD_RELOC_FRV_TLSMOFF12
4257 -- : BFD_RELOC_FRV_TLSMOFFHI
4258 -- : BFD_RELOC_FRV_TLSMOFFLO
4259 -- : BFD_RELOC_FRV_GOTTLSOFF12
4260 -- : BFD_RELOC_FRV_GOTTLSOFFHI
4261 -- : BFD_RELOC_FRV_GOTTLSOFFLO
4262 -- : BFD_RELOC_FRV_TLSOFF
4263 -- : BFD_RELOC_FRV_TLSDESC_RELAX
4264 -- : BFD_RELOC_FRV_GETTLSOFF_RELAX
4265 -- : BFD_RELOC_FRV_TLSOFF_RELAX
4266 -- : BFD_RELOC_FRV_TLSMOFF
4267     Fujitsu Frv Relocations.
4268
4269 -- : BFD_RELOC_MN10300_GOTOFF24
4270     This is a 24bit GOT-relative reloc for the mn10300.
4271
4272 -- : BFD_RELOC_MN10300_GOT32
4273     This is a 32bit GOT-relative reloc for the mn10300, offset by two
4274     bytes in the instruction.
4275
4276 -- : BFD_RELOC_MN10300_GOT24
4277     This is a 24bit GOT-relative reloc for the mn10300, offset by two
4278     bytes in the instruction.
4279
4280 -- : BFD_RELOC_MN10300_GOT16
4281     This is a 16bit GOT-relative reloc for the mn10300, offset by two
4282     bytes in the instruction.
4283
4284 -- : BFD_RELOC_MN10300_COPY
4285     Copy symbol at runtime.
4286
4287 -- : BFD_RELOC_MN10300_GLOB_DAT
4288     Create GOT entry.
4289
4290 -- : BFD_RELOC_MN10300_JMP_SLOT
4291     Create PLT entry.
4292
4293 -- : BFD_RELOC_MN10300_RELATIVE
4294     Adjust by program base.
4295
4296 -- : BFD_RELOC_MN10300_SYM_DIFF
4297     Together with another reloc targeted at the same location, allows
4298     for a value that is the difference of two symbols in the same
4299     section.
4300
4301 -- : BFD_RELOC_MN10300_ALIGN
4302     The addend of this reloc is an alignment power that must be
4303     honoured at the offset's location, regardless of linker relaxation.
4304
4305 -- : BFD_RELOC_MN10300_TLS_GD
4306 -- : BFD_RELOC_MN10300_TLS_LD
4307 -- : BFD_RELOC_MN10300_TLS_LDO
4308 -- : BFD_RELOC_MN10300_TLS_GOTIE
4309 -- : BFD_RELOC_MN10300_TLS_IE
4310 -- : BFD_RELOC_MN10300_TLS_LE
4311 -- : BFD_RELOC_MN10300_TLS_DTPMOD
4312 -- : BFD_RELOC_MN10300_TLS_DTPOFF
4313 -- : BFD_RELOC_MN10300_TLS_TPOFF
4314     Various TLS-related relocations.
4315
4316 -- : BFD_RELOC_MN10300_32_PCREL
4317     This is a 32bit pcrel reloc for the mn10300, offset by two bytes
4318     in the instruction.
4319
4320 -- : BFD_RELOC_MN10300_16_PCREL
4321     This is a 16bit pcrel reloc for the mn10300, offset by two bytes
4322     in the instruction.
4323
4324 -- : BFD_RELOC_386_GOT32
4325 -- : BFD_RELOC_386_PLT32
4326 -- : BFD_RELOC_386_COPY
4327 -- : BFD_RELOC_386_GLOB_DAT
4328 -- : BFD_RELOC_386_JUMP_SLOT
4329 -- : BFD_RELOC_386_RELATIVE
4330 -- : BFD_RELOC_386_GOTOFF
4331 -- : BFD_RELOC_386_GOTPC
4332 -- : BFD_RELOC_386_TLS_TPOFF
4333 -- : BFD_RELOC_386_TLS_IE
4334 -- : BFD_RELOC_386_TLS_GOTIE
4335 -- : BFD_RELOC_386_TLS_LE
4336 -- : BFD_RELOC_386_TLS_GD
4337 -- : BFD_RELOC_386_TLS_LDM
4338 -- : BFD_RELOC_386_TLS_LDO_32
4339 -- : BFD_RELOC_386_TLS_IE_32
4340 -- : BFD_RELOC_386_TLS_LE_32
4341 -- : BFD_RELOC_386_TLS_DTPMOD32
4342 -- : BFD_RELOC_386_TLS_DTPOFF32
4343 -- : BFD_RELOC_386_TLS_TPOFF32
4344 -- : BFD_RELOC_386_TLS_GOTDESC
4345 -- : BFD_RELOC_386_TLS_DESC_CALL
4346 -- : BFD_RELOC_386_TLS_DESC
4347 -- : BFD_RELOC_386_IRELATIVE
4348 -- : BFD_RELOC_386_GOT32X
4349     i386/elf relocations
4350
4351 -- : BFD_RELOC_X86_64_GOT32
4352 -- : BFD_RELOC_X86_64_PLT32
4353 -- : BFD_RELOC_X86_64_COPY
4354 -- : BFD_RELOC_X86_64_GLOB_DAT
4355 -- : BFD_RELOC_X86_64_JUMP_SLOT
4356 -- : BFD_RELOC_X86_64_RELATIVE
4357 -- : BFD_RELOC_X86_64_GOTPCREL
4358 -- : BFD_RELOC_X86_64_32S
4359 -- : BFD_RELOC_X86_64_DTPMOD64
4360 -- : BFD_RELOC_X86_64_DTPOFF64
4361 -- : BFD_RELOC_X86_64_TPOFF64
4362 -- : BFD_RELOC_X86_64_TLSGD
4363 -- : BFD_RELOC_X86_64_TLSLD
4364 -- : BFD_RELOC_X86_64_DTPOFF32
4365 -- : BFD_RELOC_X86_64_GOTTPOFF
4366 -- : BFD_RELOC_X86_64_TPOFF32
4367 -- : BFD_RELOC_X86_64_GOTOFF64
4368 -- : BFD_RELOC_X86_64_GOTPC32
4369 -- : BFD_RELOC_X86_64_GOT64
4370 -- : BFD_RELOC_X86_64_GOTPCREL64
4371 -- : BFD_RELOC_X86_64_GOTPC64
4372 -- : BFD_RELOC_X86_64_GOTPLT64
4373 -- : BFD_RELOC_X86_64_PLTOFF64
4374 -- : BFD_RELOC_X86_64_GOTPC32_TLSDESC
4375 -- : BFD_RELOC_X86_64_TLSDESC_CALL
4376 -- : BFD_RELOC_X86_64_TLSDESC
4377 -- : BFD_RELOC_X86_64_IRELATIVE
4378 -- : BFD_RELOC_X86_64_PC32_BND
4379 -- : BFD_RELOC_X86_64_PLT32_BND
4380 -- : BFD_RELOC_X86_64_GOTPCRELX
4381 -- : BFD_RELOC_X86_64_REX_GOTPCRELX
4382     x86-64/elf relocations
4383
4384 -- : BFD_RELOC_NS32K_IMM_8
4385 -- : BFD_RELOC_NS32K_IMM_16
4386 -- : BFD_RELOC_NS32K_IMM_32
4387 -- : BFD_RELOC_NS32K_IMM_8_PCREL
4388 -- : BFD_RELOC_NS32K_IMM_16_PCREL
4389 -- : BFD_RELOC_NS32K_IMM_32_PCREL
4390 -- : BFD_RELOC_NS32K_DISP_8
4391 -- : BFD_RELOC_NS32K_DISP_16
4392 -- : BFD_RELOC_NS32K_DISP_32
4393 -- : BFD_RELOC_NS32K_DISP_8_PCREL
4394 -- : BFD_RELOC_NS32K_DISP_16_PCREL
4395 -- : BFD_RELOC_NS32K_DISP_32_PCREL
4396     ns32k relocations
4397
4398 -- : BFD_RELOC_PDP11_DISP_8_PCREL
4399 -- : BFD_RELOC_PDP11_DISP_6_PCREL
4400     PDP11 relocations
4401
4402 -- : BFD_RELOC_PJ_CODE_HI16
4403 -- : BFD_RELOC_PJ_CODE_LO16
4404 -- : BFD_RELOC_PJ_CODE_DIR16
4405 -- : BFD_RELOC_PJ_CODE_DIR32
4406 -- : BFD_RELOC_PJ_CODE_REL16
4407 -- : BFD_RELOC_PJ_CODE_REL32
4408     Picojava relocs.  Not all of these appear in object files.
4409
4410 -- : BFD_RELOC_PPC_B26
4411 -- : BFD_RELOC_PPC_BA26
4412 -- : BFD_RELOC_PPC_TOC16
4413 -- : BFD_RELOC_PPC_TOC16_LO
4414 -- : BFD_RELOC_PPC_TOC16_HI
4415 -- : BFD_RELOC_PPC_B16
4416 -- : BFD_RELOC_PPC_B16_BRTAKEN
4417 -- : BFD_RELOC_PPC_B16_BRNTAKEN
4418 -- : BFD_RELOC_PPC_BA16
4419 -- : BFD_RELOC_PPC_BA16_BRTAKEN
4420 -- : BFD_RELOC_PPC_BA16_BRNTAKEN
4421 -- : BFD_RELOC_PPC_COPY
4422 -- : BFD_RELOC_PPC_GLOB_DAT
4423 -- : BFD_RELOC_PPC_JMP_SLOT
4424 -- : BFD_RELOC_PPC_RELATIVE
4425 -- : BFD_RELOC_PPC_LOCAL24PC
4426 -- : BFD_RELOC_PPC_EMB_NADDR32
4427 -- : BFD_RELOC_PPC_EMB_NADDR16
4428 -- : BFD_RELOC_PPC_EMB_NADDR16_LO
4429 -- : BFD_RELOC_PPC_EMB_NADDR16_HI
4430 -- : BFD_RELOC_PPC_EMB_NADDR16_HA
4431 -- : BFD_RELOC_PPC_EMB_SDAI16
4432 -- : BFD_RELOC_PPC_EMB_SDA2I16
4433 -- : BFD_RELOC_PPC_EMB_SDA2REL
4434 -- : BFD_RELOC_PPC_EMB_SDA21
4435 -- : BFD_RELOC_PPC_EMB_MRKREF
4436 -- : BFD_RELOC_PPC_EMB_RELSEC16
4437 -- : BFD_RELOC_PPC_EMB_RELST_LO
4438 -- : BFD_RELOC_PPC_EMB_RELST_HI
4439 -- : BFD_RELOC_PPC_EMB_RELST_HA
4440 -- : BFD_RELOC_PPC_EMB_BIT_FLD
4441 -- : BFD_RELOC_PPC_EMB_RELSDA
4442 -- : BFD_RELOC_PPC_VLE_REL8
4443 -- : BFD_RELOC_PPC_VLE_REL15
4444 -- : BFD_RELOC_PPC_VLE_REL24
4445 -- : BFD_RELOC_PPC_VLE_LO16A
4446 -- : BFD_RELOC_PPC_VLE_LO16D
4447 -- : BFD_RELOC_PPC_VLE_HI16A
4448 -- : BFD_RELOC_PPC_VLE_HI16D
4449 -- : BFD_RELOC_PPC_VLE_HA16A
4450 -- : BFD_RELOC_PPC_VLE_HA16D
4451 -- : BFD_RELOC_PPC_VLE_SDA21
4452 -- : BFD_RELOC_PPC_VLE_SDA21_LO
4453 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16A
4454 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16D
4455 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16A
4456 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16D
4457 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16A
4458 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16D
4459 -- : BFD_RELOC_PPC_16DX_HA
4460 -- : BFD_RELOC_PPC_REL16DX_HA
4461 -- : BFD_RELOC_PPC_NEG
4462 -- : BFD_RELOC_PPC64_HIGHER
4463 -- : BFD_RELOC_PPC64_HIGHER_S
4464 -- : BFD_RELOC_PPC64_HIGHEST
4465 -- : BFD_RELOC_PPC64_HIGHEST_S
4466 -- : BFD_RELOC_PPC64_TOC16_LO
4467 -- : BFD_RELOC_PPC64_TOC16_HI
4468 -- : BFD_RELOC_PPC64_TOC16_HA
4469 -- : BFD_RELOC_PPC64_TOC
4470 -- : BFD_RELOC_PPC64_PLTGOT16
4471 -- : BFD_RELOC_PPC64_PLTGOT16_LO
4472 -- : BFD_RELOC_PPC64_PLTGOT16_HI
4473 -- : BFD_RELOC_PPC64_PLTGOT16_HA
4474 -- : BFD_RELOC_PPC64_ADDR16_DS
4475 -- : BFD_RELOC_PPC64_ADDR16_LO_DS
4476 -- : BFD_RELOC_PPC64_GOT16_DS
4477 -- : BFD_RELOC_PPC64_GOT16_LO_DS
4478 -- : BFD_RELOC_PPC64_PLT16_LO_DS
4479 -- : BFD_RELOC_PPC64_SECTOFF_DS
4480 -- : BFD_RELOC_PPC64_SECTOFF_LO_DS
4481 -- : BFD_RELOC_PPC64_TOC16_DS
4482 -- : BFD_RELOC_PPC64_TOC16_LO_DS
4483 -- : BFD_RELOC_PPC64_PLTGOT16_DS
4484 -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS
4485 -- : BFD_RELOC_PPC64_ADDR16_HIGH
4486 -- : BFD_RELOC_PPC64_ADDR16_HIGHA
4487 -- : BFD_RELOC_PPC64_REL16_HIGH
4488 -- : BFD_RELOC_PPC64_REL16_HIGHA
4489 -- : BFD_RELOC_PPC64_REL16_HIGHER
4490 -- : BFD_RELOC_PPC64_REL16_HIGHERA
4491 -- : BFD_RELOC_PPC64_REL16_HIGHEST
4492 -- : BFD_RELOC_PPC64_REL16_HIGHESTA
4493 -- : BFD_RELOC_PPC64_ADDR64_LOCAL
4494 -- : BFD_RELOC_PPC64_ENTRY
4495 -- : BFD_RELOC_PPC64_REL24_NOTOC
4496 -- : BFD_RELOC_PPC64_REL24_P9NOTOC
4497 -- : BFD_RELOC_PPC64_D34
4498 -- : BFD_RELOC_PPC64_D34_LO
4499 -- : BFD_RELOC_PPC64_D34_HI30
4500 -- : BFD_RELOC_PPC64_D34_HA30
4501 -- : BFD_RELOC_PPC64_PCREL34
4502 -- : BFD_RELOC_PPC64_GOT_PCREL34
4503 -- : BFD_RELOC_PPC64_PLT_PCREL34
4504 -- : BFD_RELOC_PPC64_ADDR16_HIGHER34
4505 -- : BFD_RELOC_PPC64_ADDR16_HIGHERA34
4506 -- : BFD_RELOC_PPC64_ADDR16_HIGHEST34
4507 -- : BFD_RELOC_PPC64_ADDR16_HIGHESTA34
4508 -- : BFD_RELOC_PPC64_REL16_HIGHER34
4509 -- : BFD_RELOC_PPC64_REL16_HIGHERA34
4510 -- : BFD_RELOC_PPC64_REL16_HIGHEST34
4511 -- : BFD_RELOC_PPC64_REL16_HIGHESTA34
4512 -- : BFD_RELOC_PPC64_D28
4513 -- : BFD_RELOC_PPC64_PCREL28
4514     Power(rs6000) and PowerPC relocations.
4515
4516 -- : BFD_RELOC_PPC_TLS
4517 -- : BFD_RELOC_PPC_TLSGD
4518 -- : BFD_RELOC_PPC_TLSLD
4519 -- : BFD_RELOC_PPC_TLSLE
4520 -- : BFD_RELOC_PPC_TLSIE
4521 -- : BFD_RELOC_PPC_TLSM
4522 -- : BFD_RELOC_PPC_TLSML
4523 -- : BFD_RELOC_PPC_DTPMOD
4524 -- : BFD_RELOC_PPC_TPREL16
4525 -- : BFD_RELOC_PPC_TPREL16_LO
4526 -- : BFD_RELOC_PPC_TPREL16_HI
4527 -- : BFD_RELOC_PPC_TPREL16_HA
4528 -- : BFD_RELOC_PPC_TPREL
4529 -- : BFD_RELOC_PPC_DTPREL16
4530 -- : BFD_RELOC_PPC_DTPREL16_LO
4531 -- : BFD_RELOC_PPC_DTPREL16_HI
4532 -- : BFD_RELOC_PPC_DTPREL16_HA
4533 -- : BFD_RELOC_PPC_DTPREL
4534 -- : BFD_RELOC_PPC_GOT_TLSGD16
4535 -- : BFD_RELOC_PPC_GOT_TLSGD16_LO
4536 -- : BFD_RELOC_PPC_GOT_TLSGD16_HI
4537 -- : BFD_RELOC_PPC_GOT_TLSGD16_HA
4538 -- : BFD_RELOC_PPC_GOT_TLSLD16
4539 -- : BFD_RELOC_PPC_GOT_TLSLD16_LO
4540 -- : BFD_RELOC_PPC_GOT_TLSLD16_HI
4541 -- : BFD_RELOC_PPC_GOT_TLSLD16_HA
4542 -- : BFD_RELOC_PPC_GOT_TPREL16
4543 -- : BFD_RELOC_PPC_GOT_TPREL16_LO
4544 -- : BFD_RELOC_PPC_GOT_TPREL16_HI
4545 -- : BFD_RELOC_PPC_GOT_TPREL16_HA
4546 -- : BFD_RELOC_PPC_GOT_DTPREL16
4547 -- : BFD_RELOC_PPC_GOT_DTPREL16_LO
4548 -- : BFD_RELOC_PPC_GOT_DTPREL16_HI
4549 -- : BFD_RELOC_PPC_GOT_DTPREL16_HA
4550 -- : BFD_RELOC_PPC64_TLSGD
4551 -- : BFD_RELOC_PPC64_TLSLD
4552 -- : BFD_RELOC_PPC64_TLSLE
4553 -- : BFD_RELOC_PPC64_TLSIE
4554 -- : BFD_RELOC_PPC64_TLSM
4555 -- : BFD_RELOC_PPC64_TLSML
4556 -- : BFD_RELOC_PPC64_TPREL16_DS
4557 -- : BFD_RELOC_PPC64_TPREL16_LO_DS
4558 -- : BFD_RELOC_PPC64_TPREL16_HIGH
4559 -- : BFD_RELOC_PPC64_TPREL16_HIGHA
4560 -- : BFD_RELOC_PPC64_TPREL16_HIGHER
4561 -- : BFD_RELOC_PPC64_TPREL16_HIGHERA
4562 -- : BFD_RELOC_PPC64_TPREL16_HIGHEST
4563 -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA
4564 -- : BFD_RELOC_PPC64_DTPREL16_DS
4565 -- : BFD_RELOC_PPC64_DTPREL16_LO_DS
4566 -- : BFD_RELOC_PPC64_DTPREL16_HIGH
4567 -- : BFD_RELOC_PPC64_DTPREL16_HIGHA
4568 -- : BFD_RELOC_PPC64_DTPREL16_HIGHER
4569 -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA
4570 -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST
4571 -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA
4572 -- : BFD_RELOC_PPC64_TPREL34
4573 -- : BFD_RELOC_PPC64_DTPREL34
4574 -- : BFD_RELOC_PPC64_GOT_TLSGD_PCREL34
4575 -- : BFD_RELOC_PPC64_GOT_TLSLD_PCREL34
4576 -- : BFD_RELOC_PPC64_GOT_TPREL_PCREL34
4577 -- : BFD_RELOC_PPC64_GOT_DTPREL_PCREL34
4578 -- : BFD_RELOC_PPC64_TLS_PCREL
4579     PowerPC and PowerPC64 thread-local storage relocations.
4580
4581 -- : BFD_RELOC_I370_D12
4582     IBM 370/390 relocations
4583
4584 -- : BFD_RELOC_CTOR
4585     The type of reloc used to build a constructor table - at the moment
4586     probably a 32 bit wide absolute relocation, but the target can
4587     choose.  It generally does map to one of the other relocation
4588     types.
4589
4590 -- : BFD_RELOC_ARM_PCREL_BRANCH
4591     ARM 26 bit pc-relative branch.  The lowest two bits must be zero
4592     and are not stored in the instruction.
4593
4594 -- : BFD_RELOC_ARM_PCREL_BLX
4595     ARM 26 bit pc-relative branch.  The lowest bit must be zero and is
4596     not stored in the instruction.  The 2nd lowest bit comes from a 1
4597     bit field in the instruction.
4598
4599 -- : BFD_RELOC_THUMB_PCREL_BLX
4600     Thumb 22 bit pc-relative branch.  The lowest bit must be zero and
4601     is not stored in the instruction.  The 2nd lowest bit comes from a
4602     1 bit field in the instruction.
4603
4604 -- : BFD_RELOC_ARM_PCREL_CALL
4605     ARM 26-bit pc-relative branch for an unconditional BL or BLX
4606     instruction.
4607
4608 -- : BFD_RELOC_ARM_PCREL_JUMP
4609     ARM 26-bit pc-relative branch for B or conditional BL instruction.
4610
4611 -- : BFD_RELOC_THUMB_PCREL_BRANCH5
4612     ARM 5-bit pc-relative branch for Branch Future instructions.
4613
4614 -- : BFD_RELOC_THUMB_PCREL_BFCSEL
4615     ARM 6-bit pc-relative branch for BFCSEL instruction.
4616
4617 -- : BFD_RELOC_ARM_THUMB_BF17
4618     ARM 17-bit pc-relative branch for Branch Future instructions.
4619
4620 -- : BFD_RELOC_ARM_THUMB_BF13
4621     ARM 13-bit pc-relative branch for BFCSEL instruction.
4622
4623 -- : BFD_RELOC_ARM_THUMB_BF19
4624     ARM 19-bit pc-relative branch for Branch Future Link instruction.
4625
4626 -- : BFD_RELOC_ARM_THUMB_LOOP12
4627     ARM 12-bit pc-relative branch for Low Overhead Loop instructions.
4628
4629 -- : BFD_RELOC_THUMB_PCREL_BRANCH7
4630 -- : BFD_RELOC_THUMB_PCREL_BRANCH9
4631 -- : BFD_RELOC_THUMB_PCREL_BRANCH12
4632 -- : BFD_RELOC_THUMB_PCREL_BRANCH20
4633 -- : BFD_RELOC_THUMB_PCREL_BRANCH23
4634 -- : BFD_RELOC_THUMB_PCREL_BRANCH25
4635     Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.  The
4636     lowest bit must be zero and is not stored in the instruction.
4637     Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
4638     "nn" one smaller in all cases.  Note further that BRANCH23
4639     corresponds to R_ARM_THM_CALL.
4640
4641 -- : BFD_RELOC_ARM_OFFSET_IMM
4642     12-bit immediate offset, used in ARM-format ldr and str
4643     instructions.
4644
4645 -- : BFD_RELOC_ARM_THUMB_OFFSET
4646     5-bit immediate offset, used in Thumb-format ldr and str
4647     instructions.
4648
4649 -- : BFD_RELOC_ARM_TARGET1
4650     Pc-relative or absolute relocation depending on target.  Used for
4651     entries in .init_array sections.
4652
4653 -- : BFD_RELOC_ARM_ROSEGREL32
4654     Read-only segment base relative address.
4655
4656 -- : BFD_RELOC_ARM_SBREL32
4657     Data segment base relative address.
4658
4659 -- : BFD_RELOC_ARM_TARGET2
4660     This reloc is used for references to RTTI data from exception
4661     handling tables.  The actual definition depends on the target.  It
4662     may be a pc-relative or some form of GOT-indirect relocation.
4663
4664 -- : BFD_RELOC_ARM_PREL31
4665     31-bit PC relative address.
4666
4667 -- : BFD_RELOC_ARM_MOVW
4668 -- : BFD_RELOC_ARM_MOVT
4669 -- : BFD_RELOC_ARM_MOVW_PCREL
4670 -- : BFD_RELOC_ARM_MOVT_PCREL
4671 -- : BFD_RELOC_ARM_THUMB_MOVW
4672 -- : BFD_RELOC_ARM_THUMB_MOVT
4673 -- : BFD_RELOC_ARM_THUMB_MOVW_PCREL
4674 -- : BFD_RELOC_ARM_THUMB_MOVT_PCREL
4675     Low and High halfword relocations for MOVW and MOVT instructions.
4676
4677 -- : BFD_RELOC_ARM_GOTFUNCDESC
4678 -- : BFD_RELOC_ARM_GOTOFFFUNCDESC
4679 -- : BFD_RELOC_ARM_FUNCDESC
4680 -- : BFD_RELOC_ARM_FUNCDESC_VALUE
4681 -- : BFD_RELOC_ARM_TLS_GD32_FDPIC
4682 -- : BFD_RELOC_ARM_TLS_LDM32_FDPIC
4683 -- : BFD_RELOC_ARM_TLS_IE32_FDPIC
4684     ARM FDPIC specific relocations.
4685
4686 -- : BFD_RELOC_ARM_JUMP_SLOT
4687 -- : BFD_RELOC_ARM_GLOB_DAT
4688 -- : BFD_RELOC_ARM_GOT32
4689 -- : BFD_RELOC_ARM_PLT32
4690 -- : BFD_RELOC_ARM_RELATIVE
4691 -- : BFD_RELOC_ARM_GOTOFF
4692 -- : BFD_RELOC_ARM_GOTPC
4693 -- : BFD_RELOC_ARM_GOT_PREL
4694     Relocations for setting up GOTs and PLTs for shared libraries.
4695
4696 -- : BFD_RELOC_ARM_TLS_GD32
4697 -- : BFD_RELOC_ARM_TLS_LDO32
4698 -- : BFD_RELOC_ARM_TLS_LDM32
4699 -- : BFD_RELOC_ARM_TLS_DTPOFF32
4700 -- : BFD_RELOC_ARM_TLS_DTPMOD32
4701 -- : BFD_RELOC_ARM_TLS_TPOFF32
4702 -- : BFD_RELOC_ARM_TLS_IE32
4703 -- : BFD_RELOC_ARM_TLS_LE32
4704 -- : BFD_RELOC_ARM_TLS_GOTDESC
4705 -- : BFD_RELOC_ARM_TLS_CALL
4706 -- : BFD_RELOC_ARM_THM_TLS_CALL
4707 -- : BFD_RELOC_ARM_TLS_DESCSEQ
4708 -- : BFD_RELOC_ARM_THM_TLS_DESCSEQ
4709 -- : BFD_RELOC_ARM_TLS_DESC
4710     ARM thread-local storage relocations.
4711
4712 -- : BFD_RELOC_ARM_ALU_PC_G0_NC
4713 -- : BFD_RELOC_ARM_ALU_PC_G0
4714 -- : BFD_RELOC_ARM_ALU_PC_G1_NC
4715 -- : BFD_RELOC_ARM_ALU_PC_G1
4716 -- : BFD_RELOC_ARM_ALU_PC_G2
4717 -- : BFD_RELOC_ARM_LDR_PC_G0
4718 -- : BFD_RELOC_ARM_LDR_PC_G1
4719 -- : BFD_RELOC_ARM_LDR_PC_G2
4720 -- : BFD_RELOC_ARM_LDRS_PC_G0
4721 -- : BFD_RELOC_ARM_LDRS_PC_G1
4722 -- : BFD_RELOC_ARM_LDRS_PC_G2
4723 -- : BFD_RELOC_ARM_LDC_PC_G0
4724 -- : BFD_RELOC_ARM_LDC_PC_G1
4725 -- : BFD_RELOC_ARM_LDC_PC_G2
4726 -- : BFD_RELOC_ARM_ALU_SB_G0_NC
4727 -- : BFD_RELOC_ARM_ALU_SB_G0
4728 -- : BFD_RELOC_ARM_ALU_SB_G1_NC
4729 -- : BFD_RELOC_ARM_ALU_SB_G1
4730 -- : BFD_RELOC_ARM_ALU_SB_G2
4731 -- : BFD_RELOC_ARM_LDR_SB_G0
4732 -- : BFD_RELOC_ARM_LDR_SB_G1
4733 -- : BFD_RELOC_ARM_LDR_SB_G2
4734 -- : BFD_RELOC_ARM_LDRS_SB_G0
4735 -- : BFD_RELOC_ARM_LDRS_SB_G1
4736 -- : BFD_RELOC_ARM_LDRS_SB_G2
4737 -- : BFD_RELOC_ARM_LDC_SB_G0
4738 -- : BFD_RELOC_ARM_LDC_SB_G1
4739 -- : BFD_RELOC_ARM_LDC_SB_G2
4740     ARM group relocations.
4741
4742 -- : BFD_RELOC_ARM_V4BX
4743     Annotation of BX instructions.
4744
4745 -- : BFD_RELOC_ARM_IRELATIVE
4746     ARM support for STT_GNU_IFUNC.
4747
4748 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC
4749 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC
4750 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC
4751 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC
4752     Thumb1 relocations to support execute-only code.
4753
4754 -- : BFD_RELOC_ARM_IMMEDIATE
4755 -- : BFD_RELOC_ARM_ADRL_IMMEDIATE
4756 -- : BFD_RELOC_ARM_T32_IMMEDIATE
4757 -- : BFD_RELOC_ARM_T32_ADD_IMM
4758 -- : BFD_RELOC_ARM_T32_IMM12
4759 -- : BFD_RELOC_ARM_T32_ADD_PC12
4760 -- : BFD_RELOC_ARM_SHIFT_IMM
4761 -- : BFD_RELOC_ARM_SMC
4762 -- : BFD_RELOC_ARM_HVC
4763 -- : BFD_RELOC_ARM_SWI
4764 -- : BFD_RELOC_ARM_MULTI
4765 -- : BFD_RELOC_ARM_CP_OFF_IMM
4766 -- : BFD_RELOC_ARM_CP_OFF_IMM_S2
4767 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM
4768 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM_S2
4769 -- : BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM
4770 -- : BFD_RELOC_ARM_ADR_IMM
4771 -- : BFD_RELOC_ARM_LDR_IMM
4772 -- : BFD_RELOC_ARM_LITERAL
4773 -- : BFD_RELOC_ARM_IN_POOL
4774 -- : BFD_RELOC_ARM_OFFSET_IMM8
4775 -- : BFD_RELOC_ARM_T32_OFFSET_U8
4776 -- : BFD_RELOC_ARM_T32_OFFSET_IMM
4777 -- : BFD_RELOC_ARM_HWLITERAL
4778 -- : BFD_RELOC_ARM_THUMB_ADD
4779 -- : BFD_RELOC_ARM_THUMB_IMM
4780 -- : BFD_RELOC_ARM_THUMB_SHIFT
4781     These relocs are only used within the ARM assembler.  They are not
4782     (at present) written to any object files.
4783
4784 -- : BFD_RELOC_SH_PCDISP8BY2
4785 -- : BFD_RELOC_SH_PCDISP12BY2
4786 -- : BFD_RELOC_SH_IMM3
4787 -- : BFD_RELOC_SH_IMM3U
4788 -- : BFD_RELOC_SH_DISP12
4789 -- : BFD_RELOC_SH_DISP12BY2
4790 -- : BFD_RELOC_SH_DISP12BY4
4791 -- : BFD_RELOC_SH_DISP12BY8
4792 -- : BFD_RELOC_SH_DISP20
4793 -- : BFD_RELOC_SH_DISP20BY8
4794 -- : BFD_RELOC_SH_IMM4
4795 -- : BFD_RELOC_SH_IMM4BY2
4796 -- : BFD_RELOC_SH_IMM4BY4
4797 -- : BFD_RELOC_SH_IMM8
4798 -- : BFD_RELOC_SH_IMM8BY2
4799 -- : BFD_RELOC_SH_IMM8BY4
4800 -- : BFD_RELOC_SH_PCRELIMM8BY2
4801 -- : BFD_RELOC_SH_PCRELIMM8BY4
4802 -- : BFD_RELOC_SH_SWITCH16
4803 -- : BFD_RELOC_SH_SWITCH32
4804 -- : BFD_RELOC_SH_USES
4805 -- : BFD_RELOC_SH_COUNT
4806 -- : BFD_RELOC_SH_ALIGN
4807 -- : BFD_RELOC_SH_CODE
4808 -- : BFD_RELOC_SH_DATA
4809 -- : BFD_RELOC_SH_LABEL
4810 -- : BFD_RELOC_SH_LOOP_START
4811 -- : BFD_RELOC_SH_LOOP_END
4812 -- : BFD_RELOC_SH_COPY
4813 -- : BFD_RELOC_SH_GLOB_DAT
4814 -- : BFD_RELOC_SH_JMP_SLOT
4815 -- : BFD_RELOC_SH_RELATIVE
4816 -- : BFD_RELOC_SH_GOTPC
4817 -- : BFD_RELOC_SH_GOT_LOW16
4818 -- : BFD_RELOC_SH_GOT_MEDLOW16
4819 -- : BFD_RELOC_SH_GOT_MEDHI16
4820 -- : BFD_RELOC_SH_GOT_HI16
4821 -- : BFD_RELOC_SH_GOTPLT_LOW16
4822 -- : BFD_RELOC_SH_GOTPLT_MEDLOW16
4823 -- : BFD_RELOC_SH_GOTPLT_MEDHI16
4824 -- : BFD_RELOC_SH_GOTPLT_HI16
4825 -- : BFD_RELOC_SH_PLT_LOW16
4826 -- : BFD_RELOC_SH_PLT_MEDLOW16
4827 -- : BFD_RELOC_SH_PLT_MEDHI16
4828 -- : BFD_RELOC_SH_PLT_HI16
4829 -- : BFD_RELOC_SH_GOTOFF_LOW16
4830 -- : BFD_RELOC_SH_GOTOFF_MEDLOW16
4831 -- : BFD_RELOC_SH_GOTOFF_MEDHI16
4832 -- : BFD_RELOC_SH_GOTOFF_HI16
4833 -- : BFD_RELOC_SH_GOTPC_LOW16
4834 -- : BFD_RELOC_SH_GOTPC_MEDLOW16
4835 -- : BFD_RELOC_SH_GOTPC_MEDHI16
4836 -- : BFD_RELOC_SH_GOTPC_HI16
4837 -- : BFD_RELOC_SH_COPY64
4838 -- : BFD_RELOC_SH_GLOB_DAT64
4839 -- : BFD_RELOC_SH_JMP_SLOT64
4840 -- : BFD_RELOC_SH_RELATIVE64
4841 -- : BFD_RELOC_SH_GOT10BY4
4842 -- : BFD_RELOC_SH_GOT10BY8
4843 -- : BFD_RELOC_SH_GOTPLT10BY4
4844 -- : BFD_RELOC_SH_GOTPLT10BY8
4845 -- : BFD_RELOC_SH_GOTPLT32
4846 -- : BFD_RELOC_SH_SHMEDIA_CODE
4847 -- : BFD_RELOC_SH_IMMU5
4848 -- : BFD_RELOC_SH_IMMS6
4849 -- : BFD_RELOC_SH_IMMS6BY32
4850 -- : BFD_RELOC_SH_IMMU6
4851 -- : BFD_RELOC_SH_IMMS10
4852 -- : BFD_RELOC_SH_IMMS10BY2
4853 -- : BFD_RELOC_SH_IMMS10BY4
4854 -- : BFD_RELOC_SH_IMMS10BY8
4855 -- : BFD_RELOC_SH_IMMS16
4856 -- : BFD_RELOC_SH_IMMU16
4857 -- : BFD_RELOC_SH_IMM_LOW16
4858 -- : BFD_RELOC_SH_IMM_LOW16_PCREL
4859 -- : BFD_RELOC_SH_IMM_MEDLOW16
4860 -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL
4861 -- : BFD_RELOC_SH_IMM_MEDHI16
4862 -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL
4863 -- : BFD_RELOC_SH_IMM_HI16
4864 -- : BFD_RELOC_SH_IMM_HI16_PCREL
4865 -- : BFD_RELOC_SH_PT_16
4866 -- : BFD_RELOC_SH_TLS_GD_32
4867 -- : BFD_RELOC_SH_TLS_LD_32
4868 -- : BFD_RELOC_SH_TLS_LDO_32
4869 -- : BFD_RELOC_SH_TLS_IE_32
4870 -- : BFD_RELOC_SH_TLS_LE_32
4871 -- : BFD_RELOC_SH_TLS_DTPMOD32
4872 -- : BFD_RELOC_SH_TLS_DTPOFF32
4873 -- : BFD_RELOC_SH_TLS_TPOFF32
4874 -- : BFD_RELOC_SH_GOT20
4875 -- : BFD_RELOC_SH_GOTOFF20
4876 -- : BFD_RELOC_SH_GOTFUNCDESC
4877 -- : BFD_RELOC_SH_GOTFUNCDESC20
4878 -- : BFD_RELOC_SH_GOTOFFFUNCDESC
4879 -- : BFD_RELOC_SH_GOTOFFFUNCDESC20
4880 -- : BFD_RELOC_SH_FUNCDESC
4881     Renesas / SuperH SH relocs.  Not all of these appear in object
4882     files.
4883
4884 -- : BFD_RELOC_ARC_NONE
4885 -- : BFD_RELOC_ARC_8
4886 -- : BFD_RELOC_ARC_16
4887 -- : BFD_RELOC_ARC_24
4888 -- : BFD_RELOC_ARC_32
4889 -- : BFD_RELOC_ARC_N8
4890 -- : BFD_RELOC_ARC_N16
4891 -- : BFD_RELOC_ARC_N24
4892 -- : BFD_RELOC_ARC_N32
4893 -- : BFD_RELOC_ARC_SDA
4894 -- : BFD_RELOC_ARC_SECTOFF
4895 -- : BFD_RELOC_ARC_S21H_PCREL
4896 -- : BFD_RELOC_ARC_S21W_PCREL
4897 -- : BFD_RELOC_ARC_S25H_PCREL
4898 -- : BFD_RELOC_ARC_S25W_PCREL
4899 -- : BFD_RELOC_ARC_SDA32
4900 -- : BFD_RELOC_ARC_SDA_LDST
4901 -- : BFD_RELOC_ARC_SDA_LDST1
4902 -- : BFD_RELOC_ARC_SDA_LDST2
4903 -- : BFD_RELOC_ARC_SDA16_LD
4904 -- : BFD_RELOC_ARC_SDA16_LD1
4905 -- : BFD_RELOC_ARC_SDA16_LD2
4906 -- : BFD_RELOC_ARC_S13_PCREL
4907 -- : BFD_RELOC_ARC_W
4908 -- : BFD_RELOC_ARC_32_ME
4909 -- : BFD_RELOC_ARC_32_ME_S
4910 -- : BFD_RELOC_ARC_N32_ME
4911 -- : BFD_RELOC_ARC_SECTOFF_ME
4912 -- : BFD_RELOC_ARC_SDA32_ME
4913 -- : BFD_RELOC_ARC_W_ME
4914 -- : BFD_RELOC_AC_SECTOFF_U8
4915 -- : BFD_RELOC_AC_SECTOFF_U8_1
4916 -- : BFD_RELOC_AC_SECTOFF_U8_2
4917 -- : BFD_RELOC_AC_SECTOFF_S9
4918 -- : BFD_RELOC_AC_SECTOFF_S9_1
4919 -- : BFD_RELOC_AC_SECTOFF_S9_2
4920 -- : BFD_RELOC_ARC_SECTOFF_ME_1
4921 -- : BFD_RELOC_ARC_SECTOFF_ME_2
4922 -- : BFD_RELOC_ARC_SECTOFF_1
4923 -- : BFD_RELOC_ARC_SECTOFF_2
4924 -- : BFD_RELOC_ARC_SDA_12
4925 -- : BFD_RELOC_ARC_SDA16_ST2
4926 -- : BFD_RELOC_ARC_32_PCREL
4927 -- : BFD_RELOC_ARC_PC32
4928 -- : BFD_RELOC_ARC_GOT32
4929 -- : BFD_RELOC_ARC_GOTPC32
4930 -- : BFD_RELOC_ARC_PLT32
4931 -- : BFD_RELOC_ARC_COPY
4932 -- : BFD_RELOC_ARC_GLOB_DAT
4933 -- : BFD_RELOC_ARC_JMP_SLOT
4934 -- : BFD_RELOC_ARC_RELATIVE
4935 -- : BFD_RELOC_ARC_GOTOFF
4936 -- : BFD_RELOC_ARC_GOTPC
4937 -- : BFD_RELOC_ARC_S21W_PCREL_PLT
4938 -- : BFD_RELOC_ARC_S25H_PCREL_PLT
4939 -- : BFD_RELOC_ARC_TLS_DTPMOD
4940 -- : BFD_RELOC_ARC_TLS_TPOFF
4941 -- : BFD_RELOC_ARC_TLS_GD_GOT
4942 -- : BFD_RELOC_ARC_TLS_GD_LD
4943 -- : BFD_RELOC_ARC_TLS_GD_CALL
4944 -- : BFD_RELOC_ARC_TLS_IE_GOT
4945 -- : BFD_RELOC_ARC_TLS_DTPOFF
4946 -- : BFD_RELOC_ARC_TLS_DTPOFF_S9
4947 -- : BFD_RELOC_ARC_TLS_LE_S9
4948 -- : BFD_RELOC_ARC_TLS_LE_32
4949 -- : BFD_RELOC_ARC_S25W_PCREL_PLT
4950 -- : BFD_RELOC_ARC_S21H_PCREL_PLT
4951 -- : BFD_RELOC_ARC_NPS_CMEM16
4952 -- : BFD_RELOC_ARC_JLI_SECTOFF
4953     ARC relocs.
4954
4955 -- : BFD_RELOC_BFIN_16_IMM
4956     ADI Blackfin 16 bit immediate absolute reloc.
4957
4958 -- : BFD_RELOC_BFIN_16_HIGH
4959     ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.
4960
4961 -- : BFD_RELOC_BFIN_4_PCREL
4962     ADI Blackfin 'a' part of LSETUP.
4963
4964 -- : BFD_RELOC_BFIN_5_PCREL
4965     ADI Blackfin.
4966
4967 -- : BFD_RELOC_BFIN_16_LOW
4968     ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.
4969
4970 -- : BFD_RELOC_BFIN_10_PCREL
4971     ADI Blackfin.
4972
4973 -- : BFD_RELOC_BFIN_11_PCREL
4974     ADI Blackfin 'b' part of LSETUP.
4975
4976 -- : BFD_RELOC_BFIN_12_PCREL_JUMP
4977     ADI Blackfin.
4978
4979 -- : BFD_RELOC_BFIN_12_PCREL_JUMP_S
4980     ADI Blackfin Short jump, pcrel.
4981
4982 -- : BFD_RELOC_BFIN_24_PCREL_CALL_X
4983     ADI Blackfin Call.x not implemented.
4984
4985 -- : BFD_RELOC_BFIN_24_PCREL_JUMP_L
4986     ADI Blackfin Long Jump pcrel.
4987
4988 -- : BFD_RELOC_BFIN_GOT17M4
4989 -- : BFD_RELOC_BFIN_GOTHI
4990 -- : BFD_RELOC_BFIN_GOTLO
4991 -- : BFD_RELOC_BFIN_FUNCDESC
4992 -- : BFD_RELOC_BFIN_FUNCDESC_GOT17M4
4993 -- : BFD_RELOC_BFIN_FUNCDESC_GOTHI
4994 -- : BFD_RELOC_BFIN_FUNCDESC_GOTLO
4995 -- : BFD_RELOC_BFIN_FUNCDESC_VALUE
4996 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4
4997 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI
4998 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO
4999 -- : BFD_RELOC_BFIN_GOTOFF17M4
5000 -- : BFD_RELOC_BFIN_GOTOFFHI
5001 -- : BFD_RELOC_BFIN_GOTOFFLO
5002     ADI Blackfin FD-PIC relocations.
5003
5004 -- : BFD_RELOC_BFIN_GOT
5005     ADI Blackfin GOT relocation.
5006
5007 -- : BFD_RELOC_BFIN_PLTPC
5008     ADI Blackfin PLTPC relocation.
5009
5010 -- : BFD_ARELOC_BFIN_PUSH
5011     ADI Blackfin arithmetic relocation.
5012
5013 -- : BFD_ARELOC_BFIN_CONST
5014     ADI Blackfin arithmetic relocation.
5015
5016 -- : BFD_ARELOC_BFIN_ADD
5017     ADI Blackfin arithmetic relocation.
5018
5019 -- : BFD_ARELOC_BFIN_SUB
5020     ADI Blackfin arithmetic relocation.
5021
5022 -- : BFD_ARELOC_BFIN_MULT
5023     ADI Blackfin arithmetic relocation.
5024
5025 -- : BFD_ARELOC_BFIN_DIV
5026     ADI Blackfin arithmetic relocation.
5027
5028 -- : BFD_ARELOC_BFIN_MOD
5029     ADI Blackfin arithmetic relocation.
5030
5031 -- : BFD_ARELOC_BFIN_LSHIFT
5032     ADI Blackfin arithmetic relocation.
5033
5034 -- : BFD_ARELOC_BFIN_RSHIFT
5035     ADI Blackfin arithmetic relocation.
5036
5037 -- : BFD_ARELOC_BFIN_AND
5038     ADI Blackfin arithmetic relocation.
5039
5040 -- : BFD_ARELOC_BFIN_OR
5041     ADI Blackfin arithmetic relocation.
5042
5043 -- : BFD_ARELOC_BFIN_XOR
5044     ADI Blackfin arithmetic relocation.
5045
5046 -- : BFD_ARELOC_BFIN_LAND
5047     ADI Blackfin arithmetic relocation.
5048
5049 -- : BFD_ARELOC_BFIN_LOR
5050     ADI Blackfin arithmetic relocation.
5051
5052 -- : BFD_ARELOC_BFIN_LEN
5053     ADI Blackfin arithmetic relocation.
5054
5055 -- : BFD_ARELOC_BFIN_NEG
5056     ADI Blackfin arithmetic relocation.
5057
5058 -- : BFD_ARELOC_BFIN_COMP
5059     ADI Blackfin arithmetic relocation.
5060
5061 -- : BFD_ARELOC_BFIN_PAGE
5062     ADI Blackfin arithmetic relocation.
5063
5064 -- : BFD_ARELOC_BFIN_HWPAGE
5065     ADI Blackfin arithmetic relocation.
5066
5067 -- : BFD_ARELOC_BFIN_ADDR
5068     ADI Blackfin arithmetic relocation.
5069
5070 -- : BFD_RELOC_D10V_10_PCREL_R
5071     Mitsubishi D10V relocs.  This is a 10-bit reloc with the right 2
5072     bits assumed to be 0.
5073
5074 -- : BFD_RELOC_D10V_10_PCREL_L
5075     Mitsubishi D10V relocs.  This is a 10-bit reloc with the right 2
5076     bits assumed to be 0.  This is the same as the previous reloc
5077     except it is in the left container, i.e., shifted left 15 bits.
5078
5079 -- : BFD_RELOC_D10V_18
5080     This is an 18-bit reloc with the right 2 bits assumed to be 0.
5081
5082 -- : BFD_RELOC_D10V_18_PCREL
5083     This is an 18-bit reloc with the right 2 bits assumed to be 0.
5084
5085 -- : BFD_RELOC_D30V_6
5086     Mitsubishi D30V relocs.  This is a 6-bit absolute reloc.
5087
5088 -- : BFD_RELOC_D30V_9_PCREL
5089     This is a 6-bit pc-relative reloc with the right 3 bits assumed to
5090     be 0.
5091
5092 -- : BFD_RELOC_D30V_9_PCREL_R
5093     This is a 6-bit pc-relative reloc with the right 3 bits assumed to
5094     be 0. Same as the previous reloc but on the right side of the
5095     container.
5096
5097 -- : BFD_RELOC_D30V_15
5098     This is a 12-bit absolute reloc with the right 3 bitsassumed to be
5099     0.
5100
5101 -- : BFD_RELOC_D30V_15_PCREL
5102     This is a 12-bit pc-relative reloc with the right 3 bits assumed
5103     to be 0.
5104
5105 -- : BFD_RELOC_D30V_15_PCREL_R
5106     This is a 12-bit pc-relative reloc with the right 3 bits assumed
5107     to be 0. Same as the previous reloc but on the right side of the
5108     container.
5109
5110 -- : BFD_RELOC_D30V_21
5111     This is an 18-bit absolute reloc with the right 3 bits assumed to
5112     be 0.
5113
5114 -- : BFD_RELOC_D30V_21_PCREL
5115     This is an 18-bit pc-relative reloc with the right 3 bits assumed
5116     to be 0.
5117
5118 -- : BFD_RELOC_D30V_21_PCREL_R
5119     This is an 18-bit pc-relative reloc with the right 3 bits assumed
5120     to be 0. Same as the previous reloc but on the right side of the
5121     container.
5122
5123 -- : BFD_RELOC_D30V_32
5124     This is a 32-bit absolute reloc.
5125
5126 -- : BFD_RELOC_D30V_32_PCREL
5127     This is a 32-bit pc-relative reloc.
5128
5129 -- : BFD_RELOC_DLX_HI16_S
5130     DLX relocs
5131
5132 -- : BFD_RELOC_DLX_LO16
5133     DLX relocs
5134
5135 -- : BFD_RELOC_DLX_JMP26
5136     DLX relocs
5137
5138 -- : BFD_RELOC_M32C_HI8
5139 -- : BFD_RELOC_M32C_RL_JUMP
5140 -- : BFD_RELOC_M32C_RL_1ADDR
5141 -- : BFD_RELOC_M32C_RL_2ADDR
5142     Renesas M16C/M32C Relocations.
5143
5144 -- : BFD_RELOC_M32R_24
5145     Renesas M32R (formerly Mitsubishi M32R) relocs.  This is a 24 bit
5146     absolute address.
5147
5148 -- : BFD_RELOC_M32R_10_PCREL
5149     This is a 10-bit pc-relative reloc with the right 2 bits assumed
5150     to be 0.
5151
5152 -- : BFD_RELOC_M32R_18_PCREL
5153     This is an 18-bit reloc with the right 2 bits assumed to be 0.
5154
5155 -- : BFD_RELOC_M32R_26_PCREL
5156     This is a 26-bit reloc with the right 2 bits assumed to be 0.
5157
5158 -- : BFD_RELOC_M32R_HI16_ULO
5159     This is a 16-bit reloc containing the high 16 bits of an address
5160     used when the lower 16 bits are treated as unsigned.
5161
5162 -- : BFD_RELOC_M32R_HI16_SLO
5163     This is a 16-bit reloc containing the high 16 bits of an address
5164     used when the lower 16 bits are treated as signed.
5165
5166 -- : BFD_RELOC_M32R_LO16
5167     This is a 16-bit reloc containing the lower 16 bits of an address.
5168
5169 -- : BFD_RELOC_M32R_SDA16
5170     This is a 16-bit reloc containing the small data area offset for
5171     use in add3, load, and store instructions.
5172
5173 -- : BFD_RELOC_M32R_GOT24
5174 -- : BFD_RELOC_M32R_26_PLTREL
5175 -- : BFD_RELOC_M32R_COPY
5176 -- : BFD_RELOC_M32R_GLOB_DAT
5177 -- : BFD_RELOC_M32R_JMP_SLOT
5178 -- : BFD_RELOC_M32R_RELATIVE
5179 -- : BFD_RELOC_M32R_GOTOFF
5180 -- : BFD_RELOC_M32R_GOTOFF_HI_ULO
5181 -- : BFD_RELOC_M32R_GOTOFF_HI_SLO
5182 -- : BFD_RELOC_M32R_GOTOFF_LO
5183 -- : BFD_RELOC_M32R_GOTPC24
5184 -- : BFD_RELOC_M32R_GOT16_HI_ULO
5185 -- : BFD_RELOC_M32R_GOT16_HI_SLO
5186 -- : BFD_RELOC_M32R_GOT16_LO
5187 -- : BFD_RELOC_M32R_GOTPC_HI_ULO
5188 -- : BFD_RELOC_M32R_GOTPC_HI_SLO
5189 -- : BFD_RELOC_M32R_GOTPC_LO
5190     For PIC.
5191
5192 -- : BFD_RELOC_NDS32_20
5193     NDS32 relocs.  This is a 20 bit absolute address.
5194
5195 -- : BFD_RELOC_NDS32_9_PCREL
5196     This is a 9-bit pc-relative reloc with the right 1 bit assumed to
5197     be 0.
5198
5199 -- : BFD_RELOC_NDS32_WORD_9_PCREL
5200     This is a 9-bit pc-relative reloc with the right 1 bit assumed to
5201     be 0.
5202
5203 -- : BFD_RELOC_NDS32_15_PCREL
5204     This is an 15-bit reloc with the right 1 bit assumed to be 0.
5205
5206 -- : BFD_RELOC_NDS32_17_PCREL
5207     This is an 17-bit reloc with the right 1 bit assumed to be 0.
5208
5209 -- : BFD_RELOC_NDS32_25_PCREL
5210     This is a 25-bit reloc with the right 1 bit assumed to be 0.
5211
5212 -- : BFD_RELOC_NDS32_HI20
5213     This is a 20-bit reloc containing the high 20 bits of an address
5214     used with the lower 12 bits
5215
5216 -- : BFD_RELOC_NDS32_LO12S3
5217     This is a 12-bit reloc containing the lower 12 bits of an address
5218     then shift right by 3. This is used with ldi,sdi...
5219
5220 -- : BFD_RELOC_NDS32_LO12S2
5221     This is a 12-bit reloc containing the lower 12 bits of an address
5222     then shift left by 2. This is used with lwi,swi...
5223
5224 -- : BFD_RELOC_NDS32_LO12S1
5225     This is a 12-bit reloc containing the lower 12 bits of an address
5226     then shift left by 1. This is used with lhi,shi...
5227
5228 -- : BFD_RELOC_NDS32_LO12S0
5229     This is a 12-bit reloc containing the lower 12 bits of an address
5230     then shift left by 0. This is used with lbisbi...
5231
5232 -- : BFD_RELOC_NDS32_LO12S0_ORI
5233     This is a 12-bit reloc containing the lower 12 bits of an address
5234     then shift left by 0. This is only used with branch relaxations
5235
5236 -- : BFD_RELOC_NDS32_SDA15S3
5237     This is a 15-bit reloc containing the small data area 18-bit
5238     signed offset and shift left by 3 for use in ldi, sdi...
5239
5240 -- : BFD_RELOC_NDS32_SDA15S2
5241     This is a 15-bit reloc containing the small data area 17-bit
5242     signed offset and shift left by 2 for use in lwi, swi...
5243
5244 -- : BFD_RELOC_NDS32_SDA15S1
5245     This is a 15-bit reloc containing the small data area 16-bit
5246     signed offset and shift left by 1 for use in lhi, shi...
5247
5248 -- : BFD_RELOC_NDS32_SDA15S0
5249     This is a 15-bit reloc containing the small data area 15-bit
5250     signed offset and shift left by 0 for use in lbi, sbi...
5251
5252 -- : BFD_RELOC_NDS32_SDA16S3
5253     This is a 16-bit reloc containing the small data area 16-bit
5254     signed offset and shift left by 3
5255
5256 -- : BFD_RELOC_NDS32_SDA17S2
5257     This is a 17-bit reloc containing the small data area 17-bit
5258     signed offset and shift left by 2 for use in lwi.gp, swi.gp...
5259
5260 -- : BFD_RELOC_NDS32_SDA18S1
5261     This is a 18-bit reloc containing the small data area 18-bit
5262     signed offset and shift left by 1 for use in lhi.gp, shi.gp...
5263
5264 -- : BFD_RELOC_NDS32_SDA19S0
5265     This is a 19-bit reloc containing the small data area 19-bit
5266     signed offset and shift left by 0 for use in lbi.gp, sbi.gp...
5267
5268 -- : BFD_RELOC_NDS32_GOT20
5269 -- : BFD_RELOC_NDS32_9_PLTREL
5270 -- : BFD_RELOC_NDS32_25_PLTREL
5271 -- : BFD_RELOC_NDS32_COPY
5272 -- : BFD_RELOC_NDS32_GLOB_DAT
5273 -- : BFD_RELOC_NDS32_JMP_SLOT
5274 -- : BFD_RELOC_NDS32_RELATIVE
5275 -- : BFD_RELOC_NDS32_GOTOFF
5276 -- : BFD_RELOC_NDS32_GOTOFF_HI20
5277 -- : BFD_RELOC_NDS32_GOTOFF_LO12
5278 -- : BFD_RELOC_NDS32_GOTPC20
5279 -- : BFD_RELOC_NDS32_GOT_HI20
5280 -- : BFD_RELOC_NDS32_GOT_LO12
5281 -- : BFD_RELOC_NDS32_GOTPC_HI20
5282 -- : BFD_RELOC_NDS32_GOTPC_LO12
5283     for PIC
5284
5285 -- : BFD_RELOC_NDS32_INSN16
5286 -- : BFD_RELOC_NDS32_LABEL
5287 -- : BFD_RELOC_NDS32_LONGCALL1
5288 -- : BFD_RELOC_NDS32_LONGCALL2
5289 -- : BFD_RELOC_NDS32_LONGCALL3
5290 -- : BFD_RELOC_NDS32_LONGJUMP1
5291 -- : BFD_RELOC_NDS32_LONGJUMP2
5292 -- : BFD_RELOC_NDS32_LONGJUMP3
5293 -- : BFD_RELOC_NDS32_LOADSTORE
5294 -- : BFD_RELOC_NDS32_9_FIXED
5295 -- : BFD_RELOC_NDS32_15_FIXED
5296 -- : BFD_RELOC_NDS32_17_FIXED
5297 -- : BFD_RELOC_NDS32_25_FIXED
5298 -- : BFD_RELOC_NDS32_LONGCALL4
5299 -- : BFD_RELOC_NDS32_LONGCALL5
5300 -- : BFD_RELOC_NDS32_LONGCALL6
5301 -- : BFD_RELOC_NDS32_LONGJUMP4
5302 -- : BFD_RELOC_NDS32_LONGJUMP5
5303 -- : BFD_RELOC_NDS32_LONGJUMP6
5304 -- : BFD_RELOC_NDS32_LONGJUMP7
5305     for relax
5306
5307 -- : BFD_RELOC_NDS32_PLTREL_HI20
5308 -- : BFD_RELOC_NDS32_PLTREL_LO12
5309 -- : BFD_RELOC_NDS32_PLT_GOTREL_HI20
5310 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO12
5311     for PIC
5312
5313 -- : BFD_RELOC_NDS32_SDA12S2_DP
5314 -- : BFD_RELOC_NDS32_SDA12S2_SP
5315 -- : BFD_RELOC_NDS32_LO12S2_DP
5316 -- : BFD_RELOC_NDS32_LO12S2_SP
5317     for floating point
5318
5319 -- : BFD_RELOC_NDS32_DWARF2_OP1
5320 -- : BFD_RELOC_NDS32_DWARF2_OP2
5321 -- : BFD_RELOC_NDS32_DWARF2_LEB
5322     for dwarf2 debug_line.
5323
5324 -- : BFD_RELOC_NDS32_UPDATE_TA
5325     for eliminate 16-bit instructions
5326
5327 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO20
5328 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO15
5329 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO19
5330 -- : BFD_RELOC_NDS32_GOT_LO15
5331 -- : BFD_RELOC_NDS32_GOT_LO19
5332 -- : BFD_RELOC_NDS32_GOTOFF_LO15
5333 -- : BFD_RELOC_NDS32_GOTOFF_LO19
5334 -- : BFD_RELOC_NDS32_GOT15S2
5335 -- : BFD_RELOC_NDS32_GOT17S2
5336     for PIC object relaxation
5337
5338 -- : BFD_RELOC_NDS32_5
5339     NDS32 relocs.  This is a 5 bit absolute address.
5340
5341 -- : BFD_RELOC_NDS32_10_UPCREL
5342     This is a 10-bit unsigned pc-relative reloc with the right 1 bit
5343     assumed to be 0.
5344
5345 -- : BFD_RELOC_NDS32_SDA_FP7U2_RELA
5346     If fp were omitted, fp can used as another gp.
5347
5348 -- : BFD_RELOC_NDS32_RELAX_ENTRY
5349 -- : BFD_RELOC_NDS32_GOT_SUFF
5350 -- : BFD_RELOC_NDS32_GOTOFF_SUFF
5351 -- : BFD_RELOC_NDS32_PLT_GOT_SUFF
5352 -- : BFD_RELOC_NDS32_MULCALL_SUFF
5353 -- : BFD_RELOC_NDS32_PTR
5354 -- : BFD_RELOC_NDS32_PTR_COUNT
5355 -- : BFD_RELOC_NDS32_PTR_RESOLVED
5356 -- : BFD_RELOC_NDS32_PLTBLOCK
5357 -- : BFD_RELOC_NDS32_RELAX_REGION_BEGIN
5358 -- : BFD_RELOC_NDS32_RELAX_REGION_END
5359 -- : BFD_RELOC_NDS32_MINUEND
5360 -- : BFD_RELOC_NDS32_SUBTRAHEND
5361 -- : BFD_RELOC_NDS32_DIFF8
5362 -- : BFD_RELOC_NDS32_DIFF16
5363 -- : BFD_RELOC_NDS32_DIFF32
5364 -- : BFD_RELOC_NDS32_DIFF_ULEB128
5365 -- : BFD_RELOC_NDS32_EMPTY
5366     relaxation relative relocation types
5367
5368 -- : BFD_RELOC_NDS32_25_ABS
5369     This is a 25 bit absolute address.
5370
5371 -- : BFD_RELOC_NDS32_DATA
5372 -- : BFD_RELOC_NDS32_TRAN
5373 -- : BFD_RELOC_NDS32_17IFC_PCREL
5374 -- : BFD_RELOC_NDS32_10IFCU_PCREL
5375     For ex9 and ifc using.
5376
5377 -- : BFD_RELOC_NDS32_TPOFF
5378 -- : BFD_RELOC_NDS32_GOTTPOFF
5379 -- : BFD_RELOC_NDS32_TLS_LE_HI20
5380 -- : BFD_RELOC_NDS32_TLS_LE_LO12
5381 -- : BFD_RELOC_NDS32_TLS_LE_20
5382 -- : BFD_RELOC_NDS32_TLS_LE_15S0
5383 -- : BFD_RELOC_NDS32_TLS_LE_15S1
5384 -- : BFD_RELOC_NDS32_TLS_LE_15S2
5385 -- : BFD_RELOC_NDS32_TLS_LE_ADD
5386 -- : BFD_RELOC_NDS32_TLS_LE_LS
5387 -- : BFD_RELOC_NDS32_TLS_IE_HI20
5388 -- : BFD_RELOC_NDS32_TLS_IE_LO12
5389 -- : BFD_RELOC_NDS32_TLS_IE_LO12S2
5390 -- : BFD_RELOC_NDS32_TLS_IEGP_HI20
5391 -- : BFD_RELOC_NDS32_TLS_IEGP_LO12
5392 -- : BFD_RELOC_NDS32_TLS_IEGP_LO12S2
5393 -- : BFD_RELOC_NDS32_TLS_IEGP_LW
5394 -- : BFD_RELOC_NDS32_TLS_DESC
5395 -- : BFD_RELOC_NDS32_TLS_DESC_HI20
5396 -- : BFD_RELOC_NDS32_TLS_DESC_LO12
5397 -- : BFD_RELOC_NDS32_TLS_DESC_20
5398 -- : BFD_RELOC_NDS32_TLS_DESC_SDA17S2
5399 -- : BFD_RELOC_NDS32_TLS_DESC_ADD
5400 -- : BFD_RELOC_NDS32_TLS_DESC_FUNC
5401 -- : BFD_RELOC_NDS32_TLS_DESC_CALL
5402 -- : BFD_RELOC_NDS32_TLS_DESC_MEM
5403 -- : BFD_RELOC_NDS32_REMOVE
5404 -- : BFD_RELOC_NDS32_GROUP
5405     For TLS.
5406
5407 -- : BFD_RELOC_NDS32_LSI
5408     For floating load store relaxation.
5409
5410 -- : BFD_RELOC_V850_9_PCREL
5411     This is a 9-bit reloc
5412
5413 -- : BFD_RELOC_V850_22_PCREL
5414     This is a 22-bit reloc
5415
5416 -- : BFD_RELOC_V850_SDA_16_16_OFFSET
5417     This is a 16 bit offset from the short data area pointer.
5418
5419 -- : BFD_RELOC_V850_SDA_15_16_OFFSET
5420     This is a 16 bit offset (of which only 15 bits are used) from the
5421     short data area pointer.
5422
5423 -- : BFD_RELOC_V850_ZDA_16_16_OFFSET
5424     This is a 16 bit offset from the zero data area pointer.
5425
5426 -- : BFD_RELOC_V850_ZDA_15_16_OFFSET
5427     This is a 16 bit offset (of which only 15 bits are used) from the
5428     zero data area pointer.
5429
5430 -- : BFD_RELOC_V850_TDA_6_8_OFFSET
5431     This is an 8 bit offset (of which only 6 bits are used) from the
5432     tiny data area pointer.
5433
5434 -- : BFD_RELOC_V850_TDA_7_8_OFFSET
5435     This is an 8bit offset (of which only 7 bits are used) from the
5436     tiny data area pointer.
5437
5438 -- : BFD_RELOC_V850_TDA_7_7_OFFSET
5439     This is a 7 bit offset from the tiny data area pointer.
5440
5441 -- : BFD_RELOC_V850_TDA_16_16_OFFSET
5442     This is a 16 bit offset from the tiny data area pointer.
5443
5444 -- : BFD_RELOC_V850_TDA_4_5_OFFSET
5445     This is a 5 bit offset (of which only 4 bits are used) from the
5446     tiny data area pointer.
5447
5448 -- : BFD_RELOC_V850_TDA_4_4_OFFSET
5449     This is a 4 bit offset from the tiny data area pointer.
5450
5451 -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET
5452     This is a 16 bit offset from the short data area pointer, with the
5453     bits placed non-contiguously in the instruction.
5454
5455 -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET
5456     This is a 16 bit offset from the zero data area pointer, with the
5457     bits placed non-contiguously in the instruction.
5458
5459 -- : BFD_RELOC_V850_CALLT_6_7_OFFSET
5460     This is a 6 bit offset from the call table base pointer.
5461
5462 -- : BFD_RELOC_V850_CALLT_16_16_OFFSET
5463     This is a 16 bit offset from the call table base pointer.
5464
5465 -- : BFD_RELOC_V850_LONGCALL
5466     Used for relaxing indirect function calls.
5467
5468 -- : BFD_RELOC_V850_LONGJUMP
5469     Used for relaxing indirect jumps.
5470
5471 -- : BFD_RELOC_V850_ALIGN
5472     Used to maintain alignment whilst relaxing.
5473
5474 -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET
5475     This is a variation of BFD_RELOC_LO16 that can be used in v850e
5476     ld.bu instructions.
5477
5478 -- : BFD_RELOC_V850_16_PCREL
5479     This is a 16-bit reloc.
5480
5481 -- : BFD_RELOC_V850_17_PCREL
5482     This is a 17-bit reloc.
5483
5484 -- : BFD_RELOC_V850_23
5485     This is a 23-bit reloc.
5486
5487 -- : BFD_RELOC_V850_32_PCREL
5488     This is a 32-bit reloc.
5489
5490 -- : BFD_RELOC_V850_32_ABS
5491     This is a 32-bit reloc.
5492
5493 -- : BFD_RELOC_V850_16_SPLIT_OFFSET
5494     This is a 16-bit reloc.
5495
5496 -- : BFD_RELOC_V850_16_S1
5497     This is a 16-bit reloc.
5498
5499 -- : BFD_RELOC_V850_LO16_S1
5500     Low 16 bits. 16 bit shifted by 1.
5501
5502 -- : BFD_RELOC_V850_CALLT_15_16_OFFSET
5503     This is a 16 bit offset from the call table base pointer.
5504
5505 -- : BFD_RELOC_V850_32_GOTPCREL
5506     DSO relocations.
5507
5508 -- : BFD_RELOC_V850_16_GOT
5509     DSO relocations.
5510
5511 -- : BFD_RELOC_V850_32_GOT
5512     DSO relocations.
5513
5514 -- : BFD_RELOC_V850_22_PLT_PCREL
5515     DSO relocations.
5516
5517 -- : BFD_RELOC_V850_32_PLT_PCREL
5518     DSO relocations.
5519
5520 -- : BFD_RELOC_V850_COPY
5521     DSO relocations.
5522
5523 -- : BFD_RELOC_V850_GLOB_DAT
5524     DSO relocations.
5525
5526 -- : BFD_RELOC_V850_JMP_SLOT
5527     DSO relocations.
5528
5529 -- : BFD_RELOC_V850_RELATIVE
5530     DSO relocations.
5531
5532 -- : BFD_RELOC_V850_16_GOTOFF
5533     DSO relocations.
5534
5535 -- : BFD_RELOC_V850_32_GOTOFF
5536     DSO relocations.
5537
5538 -- : BFD_RELOC_V850_CODE
5539     start code.
5540
5541 -- : BFD_RELOC_V850_DATA
5542     start data in text.
5543
5544 -- : BFD_RELOC_TIC30_LDP
5545     This is a 8bit DP reloc for the tms320c30, where the most
5546     significant 8 bits of a 24 bit word are placed into the least
5547     significant 8 bits of the opcode.
5548
5549 -- : BFD_RELOC_TIC54X_PARTLS7
5550     This is a 7bit reloc for the tms320c54x, where the least
5551     significant 7 bits of a 16 bit word are placed into the least
5552     significant 7 bits of the opcode.
5553
5554 -- : BFD_RELOC_TIC54X_PARTMS9
5555     This is a 9bit DP reloc for the tms320c54x, where the most
5556     significant 9 bits of a 16 bit word are placed into the least
5557     significant 9 bits of the opcode.
5558
5559 -- : BFD_RELOC_TIC54X_23
5560     This is an extended address 23-bit reloc for the tms320c54x.
5561
5562 -- : BFD_RELOC_TIC54X_16_OF_23
5563     This is a 16-bit reloc for the tms320c54x, where the least
5564     significant 16 bits of a 23-bit extended address are placed into
5565     the opcode.
5566
5567 -- : BFD_RELOC_TIC54X_MS7_OF_23
5568     This is a reloc for the tms320c54x, where the most significant 7
5569     bits of a 23-bit extended address are placed into the opcode.
5570
5571 -- : BFD_RELOC_C6000_PCR_S21
5572 -- : BFD_RELOC_C6000_PCR_S12
5573 -- : BFD_RELOC_C6000_PCR_S10
5574 -- : BFD_RELOC_C6000_PCR_S7
5575 -- : BFD_RELOC_C6000_ABS_S16
5576 -- : BFD_RELOC_C6000_ABS_L16
5577 -- : BFD_RELOC_C6000_ABS_H16
5578 -- : BFD_RELOC_C6000_SBR_U15_B
5579 -- : BFD_RELOC_C6000_SBR_U15_H
5580 -- : BFD_RELOC_C6000_SBR_U15_W
5581 -- : BFD_RELOC_C6000_SBR_S16
5582 -- : BFD_RELOC_C6000_SBR_L16_B
5583 -- : BFD_RELOC_C6000_SBR_L16_H
5584 -- : BFD_RELOC_C6000_SBR_L16_W
5585 -- : BFD_RELOC_C6000_SBR_H16_B
5586 -- : BFD_RELOC_C6000_SBR_H16_H
5587 -- : BFD_RELOC_C6000_SBR_H16_W
5588 -- : BFD_RELOC_C6000_SBR_GOT_U15_W
5589 -- : BFD_RELOC_C6000_SBR_GOT_L16_W
5590 -- : BFD_RELOC_C6000_SBR_GOT_H16_W
5591 -- : BFD_RELOC_C6000_DSBT_INDEX
5592 -- : BFD_RELOC_C6000_PREL31
5593 -- : BFD_RELOC_C6000_COPY
5594 -- : BFD_RELOC_C6000_JUMP_SLOT
5595 -- : BFD_RELOC_C6000_EHTYPE
5596 -- : BFD_RELOC_C6000_PCR_H16
5597 -- : BFD_RELOC_C6000_PCR_L16
5598 -- : BFD_RELOC_C6000_ALIGN
5599 -- : BFD_RELOC_C6000_FPHEAD
5600 -- : BFD_RELOC_C6000_NOCMP
5601     TMS320C6000 relocations.
5602
5603 -- : BFD_RELOC_FR30_48
5604     This is a 48 bit reloc for the FR30 that stores 32 bits.
5605
5606 -- : BFD_RELOC_FR30_20
5607     This is a 32 bit reloc for the FR30 that stores 20 bits split up
5608     into two sections.
5609
5610 -- : BFD_RELOC_FR30_6_IN_4
5611     This is a 16 bit reloc for the FR30 that stores a 6 bit word
5612     offset in 4 bits.
5613
5614 -- : BFD_RELOC_FR30_8_IN_8
5615     This is a 16 bit reloc for the FR30 that stores an 8 bit byte
5616     offset into 8 bits.
5617
5618 -- : BFD_RELOC_FR30_9_IN_8
5619     This is a 16 bit reloc for the FR30 that stores a 9 bit short
5620     offset into 8 bits.
5621
5622 -- : BFD_RELOC_FR30_10_IN_8
5623     This is a 16 bit reloc for the FR30 that stores a 10 bit word
5624     offset into 8 bits.
5625
5626 -- : BFD_RELOC_FR30_9_PCREL
5627     This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
5628     short offset into 8 bits.
5629
5630 -- : BFD_RELOC_FR30_12_PCREL
5631     This is a 16 bit reloc for the FR30 that stores a 12 bit pc
5632     relative short offset into 11 bits.
5633
5634 -- : BFD_RELOC_MCORE_PCREL_IMM8BY4
5635 -- : BFD_RELOC_MCORE_PCREL_IMM11BY2
5636 -- : BFD_RELOC_MCORE_PCREL_IMM4BY2
5637 -- : BFD_RELOC_MCORE_PCREL_32
5638 -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2
5639 -- : BFD_RELOC_MCORE_RVA
5640     Motorola Mcore relocations.
5641
5642 -- : BFD_RELOC_MEP_8
5643 -- : BFD_RELOC_MEP_16
5644 -- : BFD_RELOC_MEP_32
5645 -- : BFD_RELOC_MEP_PCREL8A2
5646 -- : BFD_RELOC_MEP_PCREL12A2
5647 -- : BFD_RELOC_MEP_PCREL17A2
5648 -- : BFD_RELOC_MEP_PCREL24A2
5649 -- : BFD_RELOC_MEP_PCABS24A2
5650 -- : BFD_RELOC_MEP_LOW16
5651 -- : BFD_RELOC_MEP_HI16U
5652 -- : BFD_RELOC_MEP_HI16S
5653 -- : BFD_RELOC_MEP_GPREL
5654 -- : BFD_RELOC_MEP_TPREL
5655 -- : BFD_RELOC_MEP_TPREL7
5656 -- : BFD_RELOC_MEP_TPREL7A2
5657 -- : BFD_RELOC_MEP_TPREL7A4
5658 -- : BFD_RELOC_MEP_UIMM24
5659 -- : BFD_RELOC_MEP_ADDR24A4
5660 -- : BFD_RELOC_MEP_GNU_VTINHERIT
5661 -- : BFD_RELOC_MEP_GNU_VTENTRY
5662     Toshiba Media Processor Relocations.
5663
5664 -- : BFD_RELOC_METAG_HIADDR16
5665 -- : BFD_RELOC_METAG_LOADDR16
5666 -- : BFD_RELOC_METAG_RELBRANCH
5667 -- : BFD_RELOC_METAG_GETSETOFF
5668 -- : BFD_RELOC_METAG_HIOG
5669 -- : BFD_RELOC_METAG_LOOG
5670 -- : BFD_RELOC_METAG_REL8
5671 -- : BFD_RELOC_METAG_REL16
5672 -- : BFD_RELOC_METAG_HI16_GOTOFF
5673 -- : BFD_RELOC_METAG_LO16_GOTOFF
5674 -- : BFD_RELOC_METAG_GETSET_GOTOFF
5675 -- : BFD_RELOC_METAG_GETSET_GOT
5676 -- : BFD_RELOC_METAG_HI16_GOTPC
5677 -- : BFD_RELOC_METAG_LO16_GOTPC
5678 -- : BFD_RELOC_METAG_HI16_PLT
5679 -- : BFD_RELOC_METAG_LO16_PLT
5680 -- : BFD_RELOC_METAG_RELBRANCH_PLT
5681 -- : BFD_RELOC_METAG_GOTOFF
5682 -- : BFD_RELOC_METAG_PLT
5683 -- : BFD_RELOC_METAG_COPY
5684 -- : BFD_RELOC_METAG_JMP_SLOT
5685 -- : BFD_RELOC_METAG_RELATIVE
5686 -- : BFD_RELOC_METAG_GLOB_DAT
5687 -- : BFD_RELOC_METAG_TLS_GD
5688 -- : BFD_RELOC_METAG_TLS_LDM
5689 -- : BFD_RELOC_METAG_TLS_LDO_HI16
5690 -- : BFD_RELOC_METAG_TLS_LDO_LO16
5691 -- : BFD_RELOC_METAG_TLS_LDO
5692 -- : BFD_RELOC_METAG_TLS_IE
5693 -- : BFD_RELOC_METAG_TLS_IENONPIC
5694 -- : BFD_RELOC_METAG_TLS_IENONPIC_HI16
5695 -- : BFD_RELOC_METAG_TLS_IENONPIC_LO16
5696 -- : BFD_RELOC_METAG_TLS_TPOFF
5697 -- : BFD_RELOC_METAG_TLS_DTPMOD
5698 -- : BFD_RELOC_METAG_TLS_DTPOFF
5699 -- : BFD_RELOC_METAG_TLS_LE
5700 -- : BFD_RELOC_METAG_TLS_LE_HI16
5701 -- : BFD_RELOC_METAG_TLS_LE_LO16
5702     Imagination Technologies Meta relocations.
5703
5704 -- : BFD_RELOC_MMIX_GETA
5705 -- : BFD_RELOC_MMIX_GETA_1
5706 -- : BFD_RELOC_MMIX_GETA_2
5707 -- : BFD_RELOC_MMIX_GETA_3
5708     These are relocations for the GETA instruction.
5709
5710 -- : BFD_RELOC_MMIX_CBRANCH
5711 -- : BFD_RELOC_MMIX_CBRANCH_J
5712 -- : BFD_RELOC_MMIX_CBRANCH_1
5713 -- : BFD_RELOC_MMIX_CBRANCH_2
5714 -- : BFD_RELOC_MMIX_CBRANCH_3
5715     These are relocations for a conditional branch instruction.
5716
5717 -- : BFD_RELOC_MMIX_PUSHJ
5718 -- : BFD_RELOC_MMIX_PUSHJ_1
5719 -- : BFD_RELOC_MMIX_PUSHJ_2
5720 -- : BFD_RELOC_MMIX_PUSHJ_3
5721 -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE
5722     These are relocations for the PUSHJ instruction.
5723
5724 -- : BFD_RELOC_MMIX_JMP
5725 -- : BFD_RELOC_MMIX_JMP_1
5726 -- : BFD_RELOC_MMIX_JMP_2
5727 -- : BFD_RELOC_MMIX_JMP_3
5728     These are relocations for the JMP instruction.
5729
5730 -- : BFD_RELOC_MMIX_ADDR19
5731     This is a relocation for a relative address as in a GETA
5732     instruction or a branch.
5733
5734 -- : BFD_RELOC_MMIX_ADDR27
5735     This is a relocation for a relative address as in a JMP
5736     instruction.
5737
5738 -- : BFD_RELOC_MMIX_REG_OR_BYTE
5739     This is a relocation for an instruction field that may be a general
5740     register or a value 0..255.
5741
5742 -- : BFD_RELOC_MMIX_REG
5743     This is a relocation for an instruction field that may be a general
5744     register.
5745
5746 -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET
5747     This is a relocation for two instruction fields holding a register
5748     and an offset, the equivalent of the relocation.
5749
5750 -- : BFD_RELOC_MMIX_LOCAL
5751     This relocation is an assertion that the expression is not
5752     allocated as a global register.  It does not modify contents.
5753
5754 -- : BFD_RELOC_AVR_7_PCREL
5755     This is a 16 bit reloc for the AVR that stores 8 bit pc relative
5756     short offset into 7 bits.
5757
5758 -- : BFD_RELOC_AVR_13_PCREL
5759     This is a 16 bit reloc for the AVR that stores 13 bit pc relative
5760     short offset into 12 bits.
5761
5762 -- : BFD_RELOC_AVR_16_PM
5763     This is a 16 bit reloc for the AVR that stores 17 bit value
5764     (usually program memory address) into 16 bits.
5765
5766 -- : BFD_RELOC_AVR_LO8_LDI
5767     This is a 16 bit reloc for the AVR that stores 8 bit value (usually
5768     data memory address) into 8 bit immediate value of LDI insn.
5769
5770 -- : BFD_RELOC_AVR_HI8_LDI
5771     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
5772     bit of data memory address) into 8 bit immediate value of LDI insn.
5773
5774 -- : BFD_RELOC_AVR_HH8_LDI
5775     This is a 16 bit reloc for the AVR that stores 8 bit value (most
5776     high 8 bit of program memory address) into 8 bit immediate value
5777     of LDI insn.
5778
5779 -- : BFD_RELOC_AVR_MS8_LDI
5780     This is a 16 bit reloc for the AVR that stores 8 bit value (most
5781     high 8 bit of 32 bit value) into 8 bit immediate value of LDI insn.
5782
5783 -- : BFD_RELOC_AVR_LO8_LDI_NEG
5784     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5785     (usually data memory address) into 8 bit immediate value of SUBI
5786     insn.
5787
5788 -- : BFD_RELOC_AVR_HI8_LDI_NEG
5789     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5790     (high 8 bit of data memory address) into 8 bit immediate value of
5791     SUBI insn.
5792
5793 -- : BFD_RELOC_AVR_HH8_LDI_NEG
5794     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5795     (most high 8 bit of program memory address) into 8 bit immediate
5796     value of LDI or SUBI insn.
5797
5798 -- : BFD_RELOC_AVR_MS8_LDI_NEG
5799     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5800     (msb of 32 bit value) into 8 bit immediate value of LDI insn.
5801
5802 -- : BFD_RELOC_AVR_LO8_LDI_PM
5803     This is a 16 bit reloc for the AVR that stores 8 bit value (usually
5804     command address) into 8 bit immediate value of LDI insn.
5805
5806 -- : BFD_RELOC_AVR_LO8_LDI_GS
5807     This is a 16 bit reloc for the AVR that stores 8 bit value
5808     (command address) into 8 bit immediate value of LDI insn. If the
5809     address is beyond the 128k boundary, the linker inserts a jump
5810     stub for this reloc in the lower 128k.
5811
5812 -- : BFD_RELOC_AVR_HI8_LDI_PM
5813     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
5814     bit of command address) into 8 bit immediate value of LDI insn.
5815
5816 -- : BFD_RELOC_AVR_HI8_LDI_GS
5817     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
5818     bit of command address) into 8 bit immediate value of LDI insn.
5819     If the address is beyond the 128k boundary, the linker inserts a
5820     jump stub for this reloc below 128k.
5821
5822 -- : BFD_RELOC_AVR_HH8_LDI_PM
5823     This is a 16 bit reloc for the AVR that stores 8 bit value (most
5824     high 8 bit of command address) into 8 bit immediate value of LDI
5825     insn.
5826
5827 -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG
5828     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5829     (usually command address) into 8 bit immediate value of SUBI insn.
5830
5831 -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG
5832     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5833     (high 8 bit of 16 bit command address) into 8 bit immediate value
5834     of SUBI insn.
5835
5836 -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG
5837     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5838     (high 6 bit of 22 bit command address) into 8 bit immediate value
5839     of SUBI insn.
5840
5841 -- : BFD_RELOC_AVR_CALL
5842     This is a 32 bit reloc for the AVR that stores 23 bit value into
5843     22 bits.
5844
5845 -- : BFD_RELOC_AVR_LDI
5846     This is a 16 bit reloc for the AVR that stores all needed bits for
5847     absolute addressing with ldi with overflow check to linktime
5848
5849 -- : BFD_RELOC_AVR_6
5850     This is a 6 bit reloc for the AVR that stores offset for ldd/std
5851     instructions
5852
5853 -- : BFD_RELOC_AVR_6_ADIW
5854     This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
5855     instructions
5856
5857 -- : BFD_RELOC_AVR_8_LO
5858     This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol
5859     in .byte lo8(symbol)
5860
5861 -- : BFD_RELOC_AVR_8_HI
5862     This is a 8 bit reloc for the AVR that stores bits 8..15 of a
5863     symbol in .byte hi8(symbol)
5864
5865 -- : BFD_RELOC_AVR_8_HLO
5866     This is a 8 bit reloc for the AVR that stores bits 16..23 of a
5867     symbol in .byte hlo8(symbol)
5868
5869 -- : BFD_RELOC_AVR_DIFF8
5870 -- : BFD_RELOC_AVR_DIFF16
5871 -- : BFD_RELOC_AVR_DIFF32
5872     AVR relocations to mark the difference of two local symbols.
5873     These are only needed to support linker relaxation and can be
5874     ignored when not relaxing.  The field is set to the value of the
5875     difference assuming no relaxation.  The relocation encodes the
5876     position of the second symbol so the linker can determine whether
5877     to adjust the field value.
5878
5879 -- : BFD_RELOC_AVR_LDS_STS_16
5880     This is a 7 bit reloc for the AVR that stores SRAM address for
5881     16bit lds and sts instructions supported only tiny core.
5882
5883 -- : BFD_RELOC_AVR_PORT6
5884     This is a 6 bit reloc for the AVR that stores an I/O register
5885     number for the IN and OUT instructions
5886
5887 -- : BFD_RELOC_AVR_PORT5
5888     This is a 5 bit reloc for the AVR that stores an I/O register
5889     number for the SBIC, SBIS, SBI and CBI instructions
5890
5891 -- : BFD_RELOC_RISCV_HI20
5892 -- : BFD_RELOC_RISCV_PCREL_HI20
5893 -- : BFD_RELOC_RISCV_PCREL_LO12_I
5894 -- : BFD_RELOC_RISCV_PCREL_LO12_S
5895 -- : BFD_RELOC_RISCV_LO12_I
5896 -- : BFD_RELOC_RISCV_LO12_S
5897 -- : BFD_RELOC_RISCV_GPREL12_I
5898 -- : BFD_RELOC_RISCV_GPREL12_S
5899 -- : BFD_RELOC_RISCV_TPREL_HI20
5900 -- : BFD_RELOC_RISCV_TPREL_LO12_I
5901 -- : BFD_RELOC_RISCV_TPREL_LO12_S
5902 -- : BFD_RELOC_RISCV_TPREL_ADD
5903 -- : BFD_RELOC_RISCV_CALL
5904 -- : BFD_RELOC_RISCV_CALL_PLT
5905 -- : BFD_RELOC_RISCV_ADD8
5906 -- : BFD_RELOC_RISCV_ADD16
5907 -- : BFD_RELOC_RISCV_ADD32
5908 -- : BFD_RELOC_RISCV_ADD64
5909 -- : BFD_RELOC_RISCV_SUB8
5910 -- : BFD_RELOC_RISCV_SUB16
5911 -- : BFD_RELOC_RISCV_SUB32
5912 -- : BFD_RELOC_RISCV_SUB64
5913 -- : BFD_RELOC_RISCV_GOT_HI20
5914 -- : BFD_RELOC_RISCV_TLS_GOT_HI20
5915 -- : BFD_RELOC_RISCV_TLS_GD_HI20
5916 -- : BFD_RELOC_RISCV_JMP
5917 -- : BFD_RELOC_RISCV_TLS_DTPMOD32
5918 -- : BFD_RELOC_RISCV_TLS_DTPREL32
5919 -- : BFD_RELOC_RISCV_TLS_DTPMOD64
5920 -- : BFD_RELOC_RISCV_TLS_DTPREL64
5921 -- : BFD_RELOC_RISCV_TLS_TPREL32
5922 -- : BFD_RELOC_RISCV_TLS_TPREL64
5923 -- : BFD_RELOC_RISCV_ALIGN
5924 -- : BFD_RELOC_RISCV_RVC_BRANCH
5925 -- : BFD_RELOC_RISCV_RVC_JUMP
5926 -- : BFD_RELOC_RISCV_RVC_LUI
5927 -- : BFD_RELOC_RISCV_GPREL_I
5928 -- : BFD_RELOC_RISCV_GPREL_S
5929 -- : BFD_RELOC_RISCV_TPREL_I
5930 -- : BFD_RELOC_RISCV_TPREL_S
5931 -- : BFD_RELOC_RISCV_RELAX
5932 -- : BFD_RELOC_RISCV_CFA
5933 -- : BFD_RELOC_RISCV_SUB6
5934 -- : BFD_RELOC_RISCV_SET6
5935 -- : BFD_RELOC_RISCV_SET8
5936 -- : BFD_RELOC_RISCV_SET16
5937 -- : BFD_RELOC_RISCV_SET32
5938 -- : BFD_RELOC_RISCV_32_PCREL
5939     RISC-V relocations.
5940
5941 -- : BFD_RELOC_RL78_NEG8
5942 -- : BFD_RELOC_RL78_NEG16
5943 -- : BFD_RELOC_RL78_NEG24
5944 -- : BFD_RELOC_RL78_NEG32
5945 -- : BFD_RELOC_RL78_16_OP
5946 -- : BFD_RELOC_RL78_24_OP
5947 -- : BFD_RELOC_RL78_32_OP
5948 -- : BFD_RELOC_RL78_8U
5949 -- : BFD_RELOC_RL78_16U
5950 -- : BFD_RELOC_RL78_24U
5951 -- : BFD_RELOC_RL78_DIR3U_PCREL
5952 -- : BFD_RELOC_RL78_DIFF
5953 -- : BFD_RELOC_RL78_GPRELB
5954 -- : BFD_RELOC_RL78_GPRELW
5955 -- : BFD_RELOC_RL78_GPRELL
5956 -- : BFD_RELOC_RL78_SYM
5957 -- : BFD_RELOC_RL78_OP_SUBTRACT
5958 -- : BFD_RELOC_RL78_OP_NEG
5959 -- : BFD_RELOC_RL78_OP_AND
5960 -- : BFD_RELOC_RL78_OP_SHRA
5961 -- : BFD_RELOC_RL78_ABS8
5962 -- : BFD_RELOC_RL78_ABS16
5963 -- : BFD_RELOC_RL78_ABS16_REV
5964 -- : BFD_RELOC_RL78_ABS32
5965 -- : BFD_RELOC_RL78_ABS32_REV
5966 -- : BFD_RELOC_RL78_ABS16U
5967 -- : BFD_RELOC_RL78_ABS16UW
5968 -- : BFD_RELOC_RL78_ABS16UL
5969 -- : BFD_RELOC_RL78_RELAX
5970 -- : BFD_RELOC_RL78_HI16
5971 -- : BFD_RELOC_RL78_HI8
5972 -- : BFD_RELOC_RL78_LO16
5973 -- : BFD_RELOC_RL78_CODE
5974 -- : BFD_RELOC_RL78_SADDR
5975     Renesas RL78 Relocations.
5976
5977 -- : BFD_RELOC_RX_NEG8
5978 -- : BFD_RELOC_RX_NEG16
5979 -- : BFD_RELOC_RX_NEG24
5980 -- : BFD_RELOC_RX_NEG32
5981 -- : BFD_RELOC_RX_16_OP
5982 -- : BFD_RELOC_RX_24_OP
5983 -- : BFD_RELOC_RX_32_OP
5984 -- : BFD_RELOC_RX_8U
5985 -- : BFD_RELOC_RX_16U
5986 -- : BFD_RELOC_RX_24U
5987 -- : BFD_RELOC_RX_DIR3U_PCREL
5988 -- : BFD_RELOC_RX_DIFF
5989 -- : BFD_RELOC_RX_GPRELB
5990 -- : BFD_RELOC_RX_GPRELW
5991 -- : BFD_RELOC_RX_GPRELL
5992 -- : BFD_RELOC_RX_SYM
5993 -- : BFD_RELOC_RX_OP_SUBTRACT
5994 -- : BFD_RELOC_RX_OP_NEG
5995 -- : BFD_RELOC_RX_ABS8
5996 -- : BFD_RELOC_RX_ABS16
5997 -- : BFD_RELOC_RX_ABS16_REV
5998 -- : BFD_RELOC_RX_ABS32
5999 -- : BFD_RELOC_RX_ABS32_REV
6000 -- : BFD_RELOC_RX_ABS16U
6001 -- : BFD_RELOC_RX_ABS16UW
6002 -- : BFD_RELOC_RX_ABS16UL
6003 -- : BFD_RELOC_RX_RELAX
6004     Renesas RX Relocations.
6005
6006 -- : BFD_RELOC_390_12
6007     Direct 12 bit.
6008
6009 -- : BFD_RELOC_390_GOT12
6010     12 bit GOT offset.
6011
6012 -- : BFD_RELOC_390_PLT32
6013     32 bit PC relative PLT address.
6014
6015 -- : BFD_RELOC_390_COPY
6016     Copy symbol at runtime.
6017
6018 -- : BFD_RELOC_390_GLOB_DAT
6019     Create GOT entry.
6020
6021 -- : BFD_RELOC_390_JMP_SLOT
6022     Create PLT entry.
6023
6024 -- : BFD_RELOC_390_RELATIVE
6025     Adjust by program base.
6026
6027 -- : BFD_RELOC_390_GOTPC
6028     32 bit PC relative offset to GOT.
6029
6030 -- : BFD_RELOC_390_GOT16
6031     16 bit GOT offset.
6032
6033 -- : BFD_RELOC_390_PC12DBL
6034     PC relative 12 bit shifted by 1.
6035
6036 -- : BFD_RELOC_390_PLT12DBL
6037     12 bit PC rel. PLT shifted by 1.
6038
6039 -- : BFD_RELOC_390_PC16DBL
6040     PC relative 16 bit shifted by 1.
6041
6042 -- : BFD_RELOC_390_PLT16DBL
6043     16 bit PC rel. PLT shifted by 1.
6044
6045 -- : BFD_RELOC_390_PC24DBL
6046     PC relative 24 bit shifted by 1.
6047
6048 -- : BFD_RELOC_390_PLT24DBL
6049     24 bit PC rel. PLT shifted by 1.
6050
6051 -- : BFD_RELOC_390_PC32DBL
6052     PC relative 32 bit shifted by 1.
6053
6054 -- : BFD_RELOC_390_PLT32DBL
6055     32 bit PC rel. PLT shifted by 1.
6056
6057 -- : BFD_RELOC_390_GOTPCDBL
6058     32 bit PC rel. GOT shifted by 1.
6059
6060 -- : BFD_RELOC_390_GOT64
6061     64 bit GOT offset.
6062
6063 -- : BFD_RELOC_390_PLT64
6064     64 bit PC relative PLT address.
6065
6066 -- : BFD_RELOC_390_GOTENT
6067     32 bit rel. offset to GOT entry.
6068
6069 -- : BFD_RELOC_390_GOTOFF64
6070     64 bit offset to GOT.
6071
6072 -- : BFD_RELOC_390_GOTPLT12
6073     12-bit offset to symbol-entry within GOT, with PLT handling.
6074
6075 -- : BFD_RELOC_390_GOTPLT16
6076     16-bit offset to symbol-entry within GOT, with PLT handling.
6077
6078 -- : BFD_RELOC_390_GOTPLT32
6079     32-bit offset to symbol-entry within GOT, with PLT handling.
6080
6081 -- : BFD_RELOC_390_GOTPLT64
6082     64-bit offset to symbol-entry within GOT, with PLT handling.
6083
6084 -- : BFD_RELOC_390_GOTPLTENT
6085     32-bit rel. offset to symbol-entry within GOT, with PLT handling.
6086
6087 -- : BFD_RELOC_390_PLTOFF16
6088     16-bit rel. offset from the GOT to a PLT entry.
6089
6090 -- : BFD_RELOC_390_PLTOFF32
6091     32-bit rel. offset from the GOT to a PLT entry.
6092
6093 -- : BFD_RELOC_390_PLTOFF64
6094     64-bit rel. offset from the GOT to a PLT entry.
6095
6096 -- : BFD_RELOC_390_TLS_LOAD
6097 -- : BFD_RELOC_390_TLS_GDCALL
6098 -- : BFD_RELOC_390_TLS_LDCALL
6099 -- : BFD_RELOC_390_TLS_GD32
6100 -- : BFD_RELOC_390_TLS_GD64
6101 -- : BFD_RELOC_390_TLS_GOTIE12
6102 -- : BFD_RELOC_390_TLS_GOTIE32
6103 -- : BFD_RELOC_390_TLS_GOTIE64
6104 -- : BFD_RELOC_390_TLS_LDM32
6105 -- : BFD_RELOC_390_TLS_LDM64
6106 -- : BFD_RELOC_390_TLS_IE32
6107 -- : BFD_RELOC_390_TLS_IE64
6108 -- : BFD_RELOC_390_TLS_IEENT
6109 -- : BFD_RELOC_390_TLS_LE32
6110 -- : BFD_RELOC_390_TLS_LE64
6111 -- : BFD_RELOC_390_TLS_LDO32
6112 -- : BFD_RELOC_390_TLS_LDO64
6113 -- : BFD_RELOC_390_TLS_DTPMOD
6114 -- : BFD_RELOC_390_TLS_DTPOFF
6115 -- : BFD_RELOC_390_TLS_TPOFF
6116     s390 tls relocations.
6117
6118 -- : BFD_RELOC_390_20
6119 -- : BFD_RELOC_390_GOT20
6120 -- : BFD_RELOC_390_GOTPLT20
6121 -- : BFD_RELOC_390_TLS_GOTIE20
6122     Long displacement extension.
6123
6124 -- : BFD_RELOC_390_IRELATIVE
6125     STT_GNU_IFUNC relocation.
6126
6127 -- : BFD_RELOC_SCORE_GPREL15
6128     Score relocations Low 16 bit for load/store
6129
6130 -- : BFD_RELOC_SCORE_DUMMY2
6131 -- : BFD_RELOC_SCORE_JMP
6132     This is a 24-bit reloc with the right 1 bit assumed to be 0
6133
6134 -- : BFD_RELOC_SCORE_BRANCH
6135     This is a 19-bit reloc with the right 1 bit assumed to be 0
6136
6137 -- : BFD_RELOC_SCORE_IMM30
6138     This is a 32-bit reloc for 48-bit instructions.
6139
6140 -- : BFD_RELOC_SCORE_IMM32
6141     This is a 32-bit reloc for 48-bit instructions.
6142
6143 -- : BFD_RELOC_SCORE16_JMP
6144     This is a 11-bit reloc with the right 1 bit assumed to be 0
6145
6146 -- : BFD_RELOC_SCORE16_BRANCH
6147     This is a 8-bit reloc with the right 1 bit assumed to be 0
6148
6149 -- : BFD_RELOC_SCORE_BCMP
6150     This is a 9-bit reloc with the right 1 bit assumed to be 0
6151
6152 -- : BFD_RELOC_SCORE_GOT15
6153 -- : BFD_RELOC_SCORE_GOT_LO16
6154 -- : BFD_RELOC_SCORE_CALL15
6155 -- : BFD_RELOC_SCORE_DUMMY_HI16
6156     Undocumented Score relocs
6157
6158 -- : BFD_RELOC_IP2K_FR9
6159     Scenix IP2K - 9-bit register number / data address
6160
6161 -- : BFD_RELOC_IP2K_BANK
6162     Scenix IP2K - 4-bit register/data bank number
6163
6164 -- : BFD_RELOC_IP2K_ADDR16CJP
6165     Scenix IP2K - low 13 bits of instruction word address
6166
6167 -- : BFD_RELOC_IP2K_PAGE3
6168     Scenix IP2K - high 3 bits of instruction word address
6169
6170 -- : BFD_RELOC_IP2K_LO8DATA
6171 -- : BFD_RELOC_IP2K_HI8DATA
6172 -- : BFD_RELOC_IP2K_EX8DATA
6173     Scenix IP2K - ext/low/high 8 bits of data address
6174
6175 -- : BFD_RELOC_IP2K_LO8INSN
6176 -- : BFD_RELOC_IP2K_HI8INSN
6177     Scenix IP2K - low/high 8 bits of instruction word address
6178
6179 -- : BFD_RELOC_IP2K_PC_SKIP
6180     Scenix IP2K - even/odd PC modifier to modify snb pcl.0
6181
6182 -- : BFD_RELOC_IP2K_TEXT
6183     Scenix IP2K - 16 bit word address in text section.
6184
6185 -- : BFD_RELOC_IP2K_FR_OFFSET
6186     Scenix IP2K - 7-bit sp or dp offset
6187
6188 -- : BFD_RELOC_VPE4KMATH_DATA
6189 -- : BFD_RELOC_VPE4KMATH_INSN
6190     Scenix VPE4K coprocessor - data/insn-space addressing
6191
6192 -- : BFD_RELOC_VTABLE_INHERIT
6193 -- : BFD_RELOC_VTABLE_ENTRY
6194     These two relocations are used by the linker to determine which of
6195     the entries in a C++ virtual function table are actually used.
6196     When the -gc-sections option is given, the linker will zero out
6197     the entries that are not used, so that the code for those
6198     functions need not be included in the output.
6199
6200     VTABLE_INHERIT is a zero-space relocation used to describe to the
6201     linker the inheritance tree of a C++ virtual function table.  The
6202     relocation's symbol should be the parent class' vtable, and the
6203     relocation should be located at the child vtable.
6204
6205     VTABLE_ENTRY is a zero-space relocation that describes the use of a
6206     virtual function table entry.  The reloc's symbol should refer to
6207     the table of the class mentioned in the code.  Off of that base,
6208     an offset describes the entry that is being used.  For Rela hosts,
6209     this offset is stored in the reloc's addend.  For Rel hosts, we
6210     are forced to put this offset in the reloc's section offset.
6211
6212 -- : BFD_RELOC_IA64_IMM14
6213 -- : BFD_RELOC_IA64_IMM22
6214 -- : BFD_RELOC_IA64_IMM64
6215 -- : BFD_RELOC_IA64_DIR32MSB
6216 -- : BFD_RELOC_IA64_DIR32LSB
6217 -- : BFD_RELOC_IA64_DIR64MSB
6218 -- : BFD_RELOC_IA64_DIR64LSB
6219 -- : BFD_RELOC_IA64_GPREL22
6220 -- : BFD_RELOC_IA64_GPREL64I
6221 -- : BFD_RELOC_IA64_GPREL32MSB
6222 -- : BFD_RELOC_IA64_GPREL32LSB
6223 -- : BFD_RELOC_IA64_GPREL64MSB
6224 -- : BFD_RELOC_IA64_GPREL64LSB
6225 -- : BFD_RELOC_IA64_LTOFF22
6226 -- : BFD_RELOC_IA64_LTOFF64I
6227 -- : BFD_RELOC_IA64_PLTOFF22
6228 -- : BFD_RELOC_IA64_PLTOFF64I
6229 -- : BFD_RELOC_IA64_PLTOFF64MSB
6230 -- : BFD_RELOC_IA64_PLTOFF64LSB
6231 -- : BFD_RELOC_IA64_FPTR64I
6232 -- : BFD_RELOC_IA64_FPTR32MSB
6233 -- : BFD_RELOC_IA64_FPTR32LSB
6234 -- : BFD_RELOC_IA64_FPTR64MSB
6235 -- : BFD_RELOC_IA64_FPTR64LSB
6236 -- : BFD_RELOC_IA64_PCREL21B
6237 -- : BFD_RELOC_IA64_PCREL21BI
6238 -- : BFD_RELOC_IA64_PCREL21M
6239 -- : BFD_RELOC_IA64_PCREL21F
6240 -- : BFD_RELOC_IA64_PCREL22
6241 -- : BFD_RELOC_IA64_PCREL60B
6242 -- : BFD_RELOC_IA64_PCREL64I
6243 -- : BFD_RELOC_IA64_PCREL32MSB
6244 -- : BFD_RELOC_IA64_PCREL32LSB
6245 -- : BFD_RELOC_IA64_PCREL64MSB
6246 -- : BFD_RELOC_IA64_PCREL64LSB
6247 -- : BFD_RELOC_IA64_LTOFF_FPTR22
6248 -- : BFD_RELOC_IA64_LTOFF_FPTR64I
6249 -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB
6250 -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB
6251 -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB
6252 -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB
6253 -- : BFD_RELOC_IA64_SEGREL32MSB
6254 -- : BFD_RELOC_IA64_SEGREL32LSB
6255 -- : BFD_RELOC_IA64_SEGREL64MSB
6256 -- : BFD_RELOC_IA64_SEGREL64LSB
6257 -- : BFD_RELOC_IA64_SECREL32MSB
6258 -- : BFD_RELOC_IA64_SECREL32LSB
6259 -- : BFD_RELOC_IA64_SECREL64MSB
6260 -- : BFD_RELOC_IA64_SECREL64LSB
6261 -- : BFD_RELOC_IA64_REL32MSB
6262 -- : BFD_RELOC_IA64_REL32LSB
6263 -- : BFD_RELOC_IA64_REL64MSB
6264 -- : BFD_RELOC_IA64_REL64LSB
6265 -- : BFD_RELOC_IA64_LTV32MSB
6266 -- : BFD_RELOC_IA64_LTV32LSB
6267 -- : BFD_RELOC_IA64_LTV64MSB
6268 -- : BFD_RELOC_IA64_LTV64LSB
6269 -- : BFD_RELOC_IA64_IPLTMSB
6270 -- : BFD_RELOC_IA64_IPLTLSB
6271 -- : BFD_RELOC_IA64_COPY
6272 -- : BFD_RELOC_IA64_LTOFF22X
6273 -- : BFD_RELOC_IA64_LDXMOV
6274 -- : BFD_RELOC_IA64_TPREL14
6275 -- : BFD_RELOC_IA64_TPREL22
6276 -- : BFD_RELOC_IA64_TPREL64I
6277 -- : BFD_RELOC_IA64_TPREL64MSB
6278 -- : BFD_RELOC_IA64_TPREL64LSB
6279 -- : BFD_RELOC_IA64_LTOFF_TPREL22
6280 -- : BFD_RELOC_IA64_DTPMOD64MSB
6281 -- : BFD_RELOC_IA64_DTPMOD64LSB
6282 -- : BFD_RELOC_IA64_LTOFF_DTPMOD22
6283 -- : BFD_RELOC_IA64_DTPREL14
6284 -- : BFD_RELOC_IA64_DTPREL22
6285 -- : BFD_RELOC_IA64_DTPREL64I
6286 -- : BFD_RELOC_IA64_DTPREL32MSB
6287 -- : BFD_RELOC_IA64_DTPREL32LSB
6288 -- : BFD_RELOC_IA64_DTPREL64MSB
6289 -- : BFD_RELOC_IA64_DTPREL64LSB
6290 -- : BFD_RELOC_IA64_LTOFF_DTPREL22
6291     Intel IA64 Relocations.
6292
6293 -- : BFD_RELOC_M68HC11_HI8
6294     Motorola 68HC11 reloc.  This is the 8 bit high part of an absolute
6295     address.
6296
6297 -- : BFD_RELOC_M68HC11_LO8
6298     Motorola 68HC11 reloc.  This is the 8 bit low part of an absolute
6299     address.
6300
6301 -- : BFD_RELOC_M68HC11_3B
6302     Motorola 68HC11 reloc.  This is the 3 bit of a value.
6303
6304 -- : BFD_RELOC_M68HC11_RL_JUMP
6305     Motorola 68HC11 reloc.  This reloc marks the beginning of a
6306     jump/call instruction.  It is used for linker relaxation to
6307     correctly identify beginning of instruction and change some
6308     branches to use PC-relative addressing mode.
6309
6310 -- : BFD_RELOC_M68HC11_RL_GROUP
6311     Motorola 68HC11 reloc.  This reloc marks a group of several
6312     instructions that gcc generates and for which the linker
6313     relaxation pass can modify and/or remove some of them.
6314
6315 -- : BFD_RELOC_M68HC11_LO16
6316     Motorola 68HC11 reloc.  This is the 16-bit lower part of an
6317     address.  It is used for 'call' instruction to specify the symbol
6318     address without any special transformation (due to memory bank
6319     window).
6320
6321 -- : BFD_RELOC_M68HC11_PAGE
6322     Motorola 68HC11 reloc.  This is a 8-bit reloc that specifies the
6323     page number of an address.  It is used by 'call' instruction to
6324     specify the page number of the symbol.
6325
6326 -- : BFD_RELOC_M68HC11_24
6327     Motorola 68HC11 reloc.  This is a 24-bit reloc that represents the
6328     address with a 16-bit value and a 8-bit page number.  The symbol
6329     address is transformed to follow the 16K memory bank of 68HC12
6330     (seen as mapped in the window).
6331
6332 -- : BFD_RELOC_M68HC12_5B
6333     Motorola 68HC12 reloc.  This is the 5 bits of a value.
6334
6335 -- : BFD_RELOC_XGATE_RL_JUMP
6336     Freescale XGATE reloc.  This reloc marks the beginning of a
6337     bra/jal instruction.
6338
6339 -- : BFD_RELOC_XGATE_RL_GROUP
6340     Freescale XGATE reloc.  This reloc marks a group of several
6341     instructions that gcc generates and for which the linker
6342     relaxation pass can modify and/or remove some of them.
6343
6344 -- : BFD_RELOC_XGATE_LO16
6345     Freescale XGATE reloc.  This is the 16-bit lower part of an
6346     address.  It is used for the '16-bit' instructions.
6347
6348 -- : BFD_RELOC_XGATE_GPAGE
6349     Freescale XGATE reloc.
6350
6351 -- : BFD_RELOC_XGATE_24
6352     Freescale XGATE reloc.
6353
6354 -- : BFD_RELOC_XGATE_PCREL_9
6355     Freescale XGATE reloc.  This is a 9-bit pc-relative reloc.
6356
6357 -- : BFD_RELOC_XGATE_PCREL_10
6358     Freescale XGATE reloc.  This is a 10-bit pc-relative reloc.
6359
6360 -- : BFD_RELOC_XGATE_IMM8_LO
6361     Freescale XGATE reloc.  This is the 16-bit lower part of an
6362     address.  It is used for the '16-bit' instructions.
6363
6364 -- : BFD_RELOC_XGATE_IMM8_HI
6365     Freescale XGATE reloc.  This is the 16-bit higher part of an
6366     address.  It is used for the '16-bit' instructions.
6367
6368 -- : BFD_RELOC_XGATE_IMM3
6369     Freescale XGATE reloc.  This is a 3-bit pc-relative reloc.
6370
6371 -- : BFD_RELOC_XGATE_IMM4
6372     Freescale XGATE reloc.  This is a 4-bit pc-relative reloc.
6373
6374 -- : BFD_RELOC_XGATE_IMM5
6375     Freescale XGATE reloc.  This is a 5-bit pc-relative reloc.
6376
6377 -- : BFD_RELOC_M68HC12_9B
6378     Motorola 68HC12 reloc.  This is the 9 bits of a value.
6379
6380 -- : BFD_RELOC_M68HC12_16B
6381     Motorola 68HC12 reloc.  This is the 16 bits of a value.
6382
6383 -- : BFD_RELOC_M68HC12_9_PCREL
6384     Motorola 68HC12/XGATE reloc.  This is a PCREL9 branch.
6385
6386 -- : BFD_RELOC_M68HC12_10_PCREL
6387     Motorola 68HC12/XGATE reloc.  This is a PCREL10 branch.
6388
6389 -- : BFD_RELOC_M68HC12_LO8XG
6390     Motorola 68HC12/XGATE reloc.  This is the 8 bit low part of an
6391     absolute address and immediately precedes a matching HI8XG part.
6392
6393 -- : BFD_RELOC_M68HC12_HI8XG
6394     Motorola 68HC12/XGATE reloc.  This is the 8 bit high part of an
6395     absolute address and immediately follows a matching LO8XG part.
6396
6397 -- : BFD_RELOC_S12Z_15_PCREL
6398     Freescale S12Z reloc.  This is a 15 bit relative address.  If the
6399     most significant bits are all zero then it may be truncated to 8
6400     bits.
6401
6402 -- : BFD_RELOC_CR16_NUM8
6403 -- : BFD_RELOC_CR16_NUM16
6404 -- : BFD_RELOC_CR16_NUM32
6405 -- : BFD_RELOC_CR16_NUM32a
6406 -- : BFD_RELOC_CR16_REGREL0
6407 -- : BFD_RELOC_CR16_REGREL4
6408 -- : BFD_RELOC_CR16_REGREL4a
6409 -- : BFD_RELOC_CR16_REGREL14
6410 -- : BFD_RELOC_CR16_REGREL14a
6411 -- : BFD_RELOC_CR16_REGREL16
6412 -- : BFD_RELOC_CR16_REGREL20
6413 -- : BFD_RELOC_CR16_REGREL20a
6414 -- : BFD_RELOC_CR16_ABS20
6415 -- : BFD_RELOC_CR16_ABS24
6416 -- : BFD_RELOC_CR16_IMM4
6417 -- : BFD_RELOC_CR16_IMM8
6418 -- : BFD_RELOC_CR16_IMM16
6419 -- : BFD_RELOC_CR16_IMM20
6420 -- : BFD_RELOC_CR16_IMM24
6421 -- : BFD_RELOC_CR16_IMM32
6422 -- : BFD_RELOC_CR16_IMM32a
6423 -- : BFD_RELOC_CR16_DISP4
6424 -- : BFD_RELOC_CR16_DISP8
6425 -- : BFD_RELOC_CR16_DISP16
6426 -- : BFD_RELOC_CR16_DISP20
6427 -- : BFD_RELOC_CR16_DISP24
6428 -- : BFD_RELOC_CR16_DISP24a
6429 -- : BFD_RELOC_CR16_SWITCH8
6430 -- : BFD_RELOC_CR16_SWITCH16
6431 -- : BFD_RELOC_CR16_SWITCH32
6432 -- : BFD_RELOC_CR16_GOT_REGREL20
6433 -- : BFD_RELOC_CR16_GOTC_REGREL20
6434 -- : BFD_RELOC_CR16_GLOB_DAT
6435     NS CR16 Relocations.
6436
6437 -- : BFD_RELOC_CRX_REL4
6438 -- : BFD_RELOC_CRX_REL8
6439 -- : BFD_RELOC_CRX_REL8_CMP
6440 -- : BFD_RELOC_CRX_REL16
6441 -- : BFD_RELOC_CRX_REL24
6442 -- : BFD_RELOC_CRX_REL32
6443 -- : BFD_RELOC_CRX_REGREL12
6444 -- : BFD_RELOC_CRX_REGREL22
6445 -- : BFD_RELOC_CRX_REGREL28
6446 -- : BFD_RELOC_CRX_REGREL32
6447 -- : BFD_RELOC_CRX_ABS16
6448 -- : BFD_RELOC_CRX_ABS32
6449 -- : BFD_RELOC_CRX_NUM8
6450 -- : BFD_RELOC_CRX_NUM16
6451 -- : BFD_RELOC_CRX_NUM32
6452 -- : BFD_RELOC_CRX_IMM16
6453 -- : BFD_RELOC_CRX_IMM32
6454 -- : BFD_RELOC_CRX_SWITCH8
6455 -- : BFD_RELOC_CRX_SWITCH16
6456 -- : BFD_RELOC_CRX_SWITCH32
6457     NS CRX Relocations.
6458
6459 -- : BFD_RELOC_CRIS_BDISP8
6460 -- : BFD_RELOC_CRIS_UNSIGNED_5
6461 -- : BFD_RELOC_CRIS_SIGNED_6
6462 -- : BFD_RELOC_CRIS_UNSIGNED_6
6463 -- : BFD_RELOC_CRIS_SIGNED_8
6464 -- : BFD_RELOC_CRIS_UNSIGNED_8
6465 -- : BFD_RELOC_CRIS_SIGNED_16
6466 -- : BFD_RELOC_CRIS_UNSIGNED_16
6467 -- : BFD_RELOC_CRIS_LAPCQ_OFFSET
6468 -- : BFD_RELOC_CRIS_UNSIGNED_4
6469     These relocs are only used within the CRIS assembler.  They are not
6470     (at present) written to any object files.
6471
6472 -- : BFD_RELOC_CRIS_COPY
6473 -- : BFD_RELOC_CRIS_GLOB_DAT
6474 -- : BFD_RELOC_CRIS_JUMP_SLOT
6475 -- : BFD_RELOC_CRIS_RELATIVE
6476     Relocs used in ELF shared libraries for CRIS.
6477
6478 -- : BFD_RELOC_CRIS_32_GOT
6479     32-bit offset to symbol-entry within GOT.
6480
6481 -- : BFD_RELOC_CRIS_16_GOT
6482     16-bit offset to symbol-entry within GOT.
6483
6484 -- : BFD_RELOC_CRIS_32_GOTPLT
6485     32-bit offset to symbol-entry within GOT, with PLT handling.
6486
6487 -- : BFD_RELOC_CRIS_16_GOTPLT
6488     16-bit offset to symbol-entry within GOT, with PLT handling.
6489
6490 -- : BFD_RELOC_CRIS_32_GOTREL
6491     32-bit offset to symbol, relative to GOT.
6492
6493 -- : BFD_RELOC_CRIS_32_PLT_GOTREL
6494     32-bit offset to symbol with PLT entry, relative to GOT.
6495
6496 -- : BFD_RELOC_CRIS_32_PLT_PCREL
6497     32-bit offset to symbol with PLT entry, relative to this
6498     relocation.
6499
6500 -- : BFD_RELOC_CRIS_32_GOT_GD
6501 -- : BFD_RELOC_CRIS_16_GOT_GD
6502 -- : BFD_RELOC_CRIS_32_GD
6503 -- : BFD_RELOC_CRIS_DTP
6504 -- : BFD_RELOC_CRIS_32_DTPREL
6505 -- : BFD_RELOC_CRIS_16_DTPREL
6506 -- : BFD_RELOC_CRIS_32_GOT_TPREL
6507 -- : BFD_RELOC_CRIS_16_GOT_TPREL
6508 -- : BFD_RELOC_CRIS_32_TPREL
6509 -- : BFD_RELOC_CRIS_16_TPREL
6510 -- : BFD_RELOC_CRIS_DTPMOD
6511 -- : BFD_RELOC_CRIS_32_IE
6512     Relocs used in TLS code for CRIS.
6513
6514 -- : BFD_RELOC_OR1K_REL_26
6515 -- : BFD_RELOC_OR1K_SLO16
6516 -- : BFD_RELOC_OR1K_PCREL_PG21
6517 -- : BFD_RELOC_OR1K_LO13
6518 -- : BFD_RELOC_OR1K_SLO13
6519 -- : BFD_RELOC_OR1K_GOTPC_HI16
6520 -- : BFD_RELOC_OR1K_GOTPC_LO16
6521 -- : BFD_RELOC_OR1K_GOT_AHI16
6522 -- : BFD_RELOC_OR1K_GOT16
6523 -- : BFD_RELOC_OR1K_GOT_PG21
6524 -- : BFD_RELOC_OR1K_GOT_LO13
6525 -- : BFD_RELOC_OR1K_PLT26
6526 -- : BFD_RELOC_OR1K_PLTA26
6527 -- : BFD_RELOC_OR1K_GOTOFF_SLO16
6528 -- : BFD_RELOC_OR1K_COPY
6529 -- : BFD_RELOC_OR1K_GLOB_DAT
6530 -- : BFD_RELOC_OR1K_JMP_SLOT
6531 -- : BFD_RELOC_OR1K_RELATIVE
6532 -- : BFD_RELOC_OR1K_TLS_GD_HI16
6533 -- : BFD_RELOC_OR1K_TLS_GD_LO16
6534 -- : BFD_RELOC_OR1K_TLS_GD_PG21
6535 -- : BFD_RELOC_OR1K_TLS_GD_LO13
6536 -- : BFD_RELOC_OR1K_TLS_LDM_HI16
6537 -- : BFD_RELOC_OR1K_TLS_LDM_LO16
6538 -- : BFD_RELOC_OR1K_TLS_LDM_PG21
6539 -- : BFD_RELOC_OR1K_TLS_LDM_LO13
6540 -- : BFD_RELOC_OR1K_TLS_LDO_HI16
6541 -- : BFD_RELOC_OR1K_TLS_LDO_LO16
6542 -- : BFD_RELOC_OR1K_TLS_IE_HI16
6543 -- : BFD_RELOC_OR1K_TLS_IE_AHI16
6544 -- : BFD_RELOC_OR1K_TLS_IE_LO16
6545 -- : BFD_RELOC_OR1K_TLS_IE_PG21
6546 -- : BFD_RELOC_OR1K_TLS_IE_LO13
6547 -- : BFD_RELOC_OR1K_TLS_LE_HI16
6548 -- : BFD_RELOC_OR1K_TLS_LE_AHI16
6549 -- : BFD_RELOC_OR1K_TLS_LE_LO16
6550 -- : BFD_RELOC_OR1K_TLS_LE_SLO16
6551 -- : BFD_RELOC_OR1K_TLS_TPOFF
6552 -- : BFD_RELOC_OR1K_TLS_DTPOFF
6553 -- : BFD_RELOC_OR1K_TLS_DTPMOD
6554     OpenRISC 1000 Relocations.
6555
6556 -- : BFD_RELOC_H8_DIR16A8
6557 -- : BFD_RELOC_H8_DIR16R8
6558 -- : BFD_RELOC_H8_DIR24A8
6559 -- : BFD_RELOC_H8_DIR24R8
6560 -- : BFD_RELOC_H8_DIR32A16
6561 -- : BFD_RELOC_H8_DISP32A16
6562     H8 elf Relocations.
6563
6564 -- : BFD_RELOC_XSTORMY16_REL_12
6565 -- : BFD_RELOC_XSTORMY16_12
6566 -- : BFD_RELOC_XSTORMY16_24
6567 -- : BFD_RELOC_XSTORMY16_FPTR16
6568     Sony Xstormy16 Relocations.
6569
6570 -- : BFD_RELOC_RELC
6571     Self-describing complex relocations.
6572
6573 -- : BFD_RELOC_VAX_GLOB_DAT
6574 -- : BFD_RELOC_VAX_JMP_SLOT
6575 -- : BFD_RELOC_VAX_RELATIVE
6576     Relocations used by VAX ELF.
6577
6578 -- : BFD_RELOC_MT_PC16
6579     Morpho MT - 16 bit immediate relocation.
6580
6581 -- : BFD_RELOC_MT_HI16
6582     Morpho MT - Hi 16 bits of an address.
6583
6584 -- : BFD_RELOC_MT_LO16
6585     Morpho MT - Low 16 bits of an address.
6586
6587 -- : BFD_RELOC_MT_GNU_VTINHERIT
6588     Morpho MT - Used to tell the linker which vtable entries are used.
6589
6590 -- : BFD_RELOC_MT_GNU_VTENTRY
6591     Morpho MT - Used to tell the linker which vtable entries are used.
6592
6593 -- : BFD_RELOC_MT_PCINSN8
6594     Morpho MT - 8 bit immediate relocation.
6595
6596 -- : BFD_RELOC_MSP430_10_PCREL
6597 -- : BFD_RELOC_MSP430_16_PCREL
6598 -- : BFD_RELOC_MSP430_16
6599 -- : BFD_RELOC_MSP430_16_PCREL_BYTE
6600 -- : BFD_RELOC_MSP430_16_BYTE
6601 -- : BFD_RELOC_MSP430_2X_PCREL
6602 -- : BFD_RELOC_MSP430_RL_PCREL
6603 -- : BFD_RELOC_MSP430_ABS8
6604 -- : BFD_RELOC_MSP430X_PCR20_EXT_SRC
6605 -- : BFD_RELOC_MSP430X_PCR20_EXT_DST
6606 -- : BFD_RELOC_MSP430X_PCR20_EXT_ODST
6607 -- : BFD_RELOC_MSP430X_ABS20_EXT_SRC
6608 -- : BFD_RELOC_MSP430X_ABS20_EXT_DST
6609 -- : BFD_RELOC_MSP430X_ABS20_EXT_ODST
6610 -- : BFD_RELOC_MSP430X_ABS20_ADR_SRC
6611 -- : BFD_RELOC_MSP430X_ABS20_ADR_DST
6612 -- : BFD_RELOC_MSP430X_PCR16
6613 -- : BFD_RELOC_MSP430X_PCR20_CALL
6614 -- : BFD_RELOC_MSP430X_ABS16
6615 -- : BFD_RELOC_MSP430_ABS_HI16
6616 -- : BFD_RELOC_MSP430_PREL31
6617 -- : BFD_RELOC_MSP430_SYM_DIFF
6618 -- : BFD_RELOC_MSP430_SET_ULEB128
6619 -- : BFD_RELOC_MSP430_SUB_ULEB128
6620     msp430 specific relocation codes
6621
6622 -- : BFD_RELOC_NIOS2_S16
6623 -- : BFD_RELOC_NIOS2_U16
6624 -- : BFD_RELOC_NIOS2_CALL26
6625 -- : BFD_RELOC_NIOS2_IMM5
6626 -- : BFD_RELOC_NIOS2_CACHE_OPX
6627 -- : BFD_RELOC_NIOS2_IMM6
6628 -- : BFD_RELOC_NIOS2_IMM8
6629 -- : BFD_RELOC_NIOS2_HI16
6630 -- : BFD_RELOC_NIOS2_LO16
6631 -- : BFD_RELOC_NIOS2_HIADJ16
6632 -- : BFD_RELOC_NIOS2_GPREL
6633 -- : BFD_RELOC_NIOS2_UJMP
6634 -- : BFD_RELOC_NIOS2_CJMP
6635 -- : BFD_RELOC_NIOS2_CALLR
6636 -- : BFD_RELOC_NIOS2_ALIGN
6637 -- : BFD_RELOC_NIOS2_GOT16
6638 -- : BFD_RELOC_NIOS2_CALL16
6639 -- : BFD_RELOC_NIOS2_GOTOFF_LO
6640 -- : BFD_RELOC_NIOS2_GOTOFF_HA
6641 -- : BFD_RELOC_NIOS2_PCREL_LO
6642 -- : BFD_RELOC_NIOS2_PCREL_HA
6643 -- : BFD_RELOC_NIOS2_TLS_GD16
6644 -- : BFD_RELOC_NIOS2_TLS_LDM16
6645 -- : BFD_RELOC_NIOS2_TLS_LDO16
6646 -- : BFD_RELOC_NIOS2_TLS_IE16
6647 -- : BFD_RELOC_NIOS2_TLS_LE16
6648 -- : BFD_RELOC_NIOS2_TLS_DTPMOD
6649 -- : BFD_RELOC_NIOS2_TLS_DTPREL
6650 -- : BFD_RELOC_NIOS2_TLS_TPREL
6651 -- : BFD_RELOC_NIOS2_COPY
6652 -- : BFD_RELOC_NIOS2_GLOB_DAT
6653 -- : BFD_RELOC_NIOS2_JUMP_SLOT
6654 -- : BFD_RELOC_NIOS2_RELATIVE
6655 -- : BFD_RELOC_NIOS2_GOTOFF
6656 -- : BFD_RELOC_NIOS2_CALL26_NOAT
6657 -- : BFD_RELOC_NIOS2_GOT_LO
6658 -- : BFD_RELOC_NIOS2_GOT_HA
6659 -- : BFD_RELOC_NIOS2_CALL_LO
6660 -- : BFD_RELOC_NIOS2_CALL_HA
6661 -- : BFD_RELOC_NIOS2_R2_S12
6662 -- : BFD_RELOC_NIOS2_R2_I10_1_PCREL
6663 -- : BFD_RELOC_NIOS2_R2_T1I7_1_PCREL
6664 -- : BFD_RELOC_NIOS2_R2_T1I7_2
6665 -- : BFD_RELOC_NIOS2_R2_T2I4
6666 -- : BFD_RELOC_NIOS2_R2_T2I4_1
6667 -- : BFD_RELOC_NIOS2_R2_T2I4_2
6668 -- : BFD_RELOC_NIOS2_R2_X1I7_2
6669 -- : BFD_RELOC_NIOS2_R2_X2L5
6670 -- : BFD_RELOC_NIOS2_R2_F1I5_2
6671 -- : BFD_RELOC_NIOS2_R2_L5I4X1
6672 -- : BFD_RELOC_NIOS2_R2_T1X1I6
6673 -- : BFD_RELOC_NIOS2_R2_T1X1I6_2
6674     Relocations used by the Altera Nios II core.
6675
6676 -- : BFD_RELOC_PRU_U16
6677     PRU LDI 16-bit unsigned data-memory relocation.
6678
6679 -- : BFD_RELOC_PRU_U16_PMEMIMM
6680     PRU LDI 16-bit unsigned instruction-memory relocation.
6681
6682 -- : BFD_RELOC_PRU_LDI32
6683     PRU relocation for two consecutive LDI load instructions that load
6684     a 32 bit value into a register. If the higher bits are all zero,
6685     then the second instruction may be relaxed.
6686
6687 -- : BFD_RELOC_PRU_S10_PCREL
6688     PRU QBBx 10-bit signed PC-relative relocation.
6689
6690 -- : BFD_RELOC_PRU_U8_PCREL
6691     PRU 8-bit unsigned relocation used for the LOOP instruction.
6692
6693 -- : BFD_RELOC_PRU_32_PMEM
6694 -- : BFD_RELOC_PRU_16_PMEM
6695     PRU Program Memory relocations.  Used to convert from byte
6696     addressing to 32-bit word addressing.
6697
6698 -- : BFD_RELOC_PRU_GNU_DIFF8
6699 -- : BFD_RELOC_PRU_GNU_DIFF16
6700 -- : BFD_RELOC_PRU_GNU_DIFF32
6701 -- : BFD_RELOC_PRU_GNU_DIFF16_PMEM
6702 -- : BFD_RELOC_PRU_GNU_DIFF32_PMEM
6703     PRU relocations to mark the difference of two local symbols.
6704     These are only needed to support linker relaxation and can be
6705     ignored when not relaxing.  The field is set to the value of the
6706     difference assuming no relaxation.  The relocation encodes the
6707     position of the second symbol so the linker can determine whether
6708     to adjust the field value. The PMEM variants encode the word
6709     difference, instead of byte difference between symbols.
6710
6711 -- : BFD_RELOC_IQ2000_OFFSET_16
6712 -- : BFD_RELOC_IQ2000_OFFSET_21
6713 -- : BFD_RELOC_IQ2000_UHI16
6714     IQ2000 Relocations.
6715
6716 -- : BFD_RELOC_XTENSA_RTLD
6717     Special Xtensa relocation used only by PLT entries in ELF shared
6718     objects to indicate that the runtime linker should set the value
6719     to one of its own internal functions or data structures.
6720
6721 -- : BFD_RELOC_XTENSA_GLOB_DAT
6722 -- : BFD_RELOC_XTENSA_JMP_SLOT
6723 -- : BFD_RELOC_XTENSA_RELATIVE
6724     Xtensa relocations for ELF shared objects.
6725
6726 -- : BFD_RELOC_XTENSA_PLT
6727     Xtensa relocation used in ELF object files for symbols that may
6728     require PLT entries.  Otherwise, this is just a generic 32-bit
6729     relocation.
6730
6731 -- : BFD_RELOC_XTENSA_DIFF8
6732 -- : BFD_RELOC_XTENSA_DIFF16
6733 -- : BFD_RELOC_XTENSA_DIFF32
6734     Xtensa relocations for backward compatibility.  These have been
6735     replaced by BFD_RELOC_XTENSA_PDIFF and BFD_RELOC_XTENSA_NDIFF.
6736     Xtensa relocations to mark the difference of two local symbols.
6737     These are only needed to support linker relaxation and can be
6738     ignored when not relaxing.  The field is set to the value of the
6739     difference assuming no relaxation.  The relocation encodes the
6740     position of the first symbol so the linker can determine whether
6741     to adjust the field value.
6742
6743 -- : BFD_RELOC_XTENSA_SLOT0_OP
6744 -- : BFD_RELOC_XTENSA_SLOT1_OP
6745 -- : BFD_RELOC_XTENSA_SLOT2_OP
6746 -- : BFD_RELOC_XTENSA_SLOT3_OP
6747 -- : BFD_RELOC_XTENSA_SLOT4_OP
6748 -- : BFD_RELOC_XTENSA_SLOT5_OP
6749 -- : BFD_RELOC_XTENSA_SLOT6_OP
6750 -- : BFD_RELOC_XTENSA_SLOT7_OP
6751 -- : BFD_RELOC_XTENSA_SLOT8_OP
6752 -- : BFD_RELOC_XTENSA_SLOT9_OP
6753 -- : BFD_RELOC_XTENSA_SLOT10_OP
6754 -- : BFD_RELOC_XTENSA_SLOT11_OP
6755 -- : BFD_RELOC_XTENSA_SLOT12_OP
6756 -- : BFD_RELOC_XTENSA_SLOT13_OP
6757 -- : BFD_RELOC_XTENSA_SLOT14_OP
6758     Generic Xtensa relocations for instruction operands.  Only the slot
6759     number is encoded in the relocation.  The relocation applies to the
6760     last PC-relative immediate operand, or if there are no PC-relative
6761     immediates, to the last immediate operand.
6762
6763 -- : BFD_RELOC_XTENSA_SLOT0_ALT
6764 -- : BFD_RELOC_XTENSA_SLOT1_ALT
6765 -- : BFD_RELOC_XTENSA_SLOT2_ALT
6766 -- : BFD_RELOC_XTENSA_SLOT3_ALT
6767 -- : BFD_RELOC_XTENSA_SLOT4_ALT
6768 -- : BFD_RELOC_XTENSA_SLOT5_ALT
6769 -- : BFD_RELOC_XTENSA_SLOT6_ALT
6770 -- : BFD_RELOC_XTENSA_SLOT7_ALT
6771 -- : BFD_RELOC_XTENSA_SLOT8_ALT
6772 -- : BFD_RELOC_XTENSA_SLOT9_ALT
6773 -- : BFD_RELOC_XTENSA_SLOT10_ALT
6774 -- : BFD_RELOC_XTENSA_SLOT11_ALT
6775 -- : BFD_RELOC_XTENSA_SLOT12_ALT
6776 -- : BFD_RELOC_XTENSA_SLOT13_ALT
6777 -- : BFD_RELOC_XTENSA_SLOT14_ALT
6778     Alternate Xtensa relocations.  Only the slot is encoded in the
6779     relocation.  The meaning of these relocations is opcode-specific.
6780
6781 -- : BFD_RELOC_XTENSA_OP0
6782 -- : BFD_RELOC_XTENSA_OP1
6783 -- : BFD_RELOC_XTENSA_OP2
6784     Xtensa relocations for backward compatibility.  These have all been
6785     replaced by BFD_RELOC_XTENSA_SLOT0_OP.
6786
6787 -- : BFD_RELOC_XTENSA_ASM_EXPAND
6788     Xtensa relocation to mark that the assembler expanded the
6789     instructions from an original target.  The expansion size is
6790     encoded in the reloc size.
6791
6792 -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY
6793     Xtensa relocation to mark that the linker should simplify
6794     assembler-expanded instructions.  This is commonly used internally
6795     by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND.
6796
6797 -- : BFD_RELOC_XTENSA_TLSDESC_FN
6798 -- : BFD_RELOC_XTENSA_TLSDESC_ARG
6799 -- : BFD_RELOC_XTENSA_TLS_DTPOFF
6800 -- : BFD_RELOC_XTENSA_TLS_TPOFF
6801 -- : BFD_RELOC_XTENSA_TLS_FUNC
6802 -- : BFD_RELOC_XTENSA_TLS_ARG
6803 -- : BFD_RELOC_XTENSA_TLS_CALL
6804     Xtensa TLS relocations.
6805
6806 -- : BFD_RELOC_XTENSA_PDIFF8
6807 -- : BFD_RELOC_XTENSA_PDIFF16
6808 -- : BFD_RELOC_XTENSA_PDIFF32
6809 -- : BFD_RELOC_XTENSA_NDIFF8
6810 -- : BFD_RELOC_XTENSA_NDIFF16
6811 -- : BFD_RELOC_XTENSA_NDIFF32
6812     Xtensa relocations to mark the difference of two local symbols.
6813     These are only needed to support linker relaxation and can be
6814     ignored when not relaxing.  The field is set to the value of the
6815     difference assuming no relaxation.  The relocation encodes the
6816     position of the subtracted symbol so the linker can determine
6817     whether to adjust the field value.  PDIFF relocations are used for
6818     positive differences, NDIFF relocations are used for negative
6819     differences.  The difference value is treated as unsigned with
6820     these relocation types, giving full 8/16 value ranges.
6821
6822 -- : BFD_RELOC_Z80_DISP8
6823     8 bit signed offset in (ix+d) or (iy+d).
6824
6825 -- : BFD_RELOC_Z80_BYTE0
6826     First 8 bits of multibyte (32, 24 or 16 bit) value.
6827
6828 -- : BFD_RELOC_Z80_BYTE1
6829     Second 8 bits of multibyte (32, 24 or 16 bit) value.
6830
6831 -- : BFD_RELOC_Z80_BYTE2
6832     Third 8 bits of multibyte (32 or 24 bit) value.
6833
6834 -- : BFD_RELOC_Z80_BYTE3
6835     Fourth 8 bits of multibyte (32 bit) value.
6836
6837 -- : BFD_RELOC_Z80_WORD0
6838     Lowest 16 bits of multibyte (32 or 24 bit) value.
6839
6840 -- : BFD_RELOC_Z80_WORD1
6841     Highest 16 bits of multibyte (32 or 24 bit) value.
6842
6843 -- : BFD_RELOC_Z80_16_BE
6844     Like BFD_RELOC_16 but big-endian.
6845
6846 -- : BFD_RELOC_Z8K_DISP7
6847     DJNZ offset.
6848
6849 -- : BFD_RELOC_Z8K_CALLR
6850     CALR offset.
6851
6852 -- : BFD_RELOC_Z8K_IMM4L
6853     4 bit value.
6854
6855 -- : BFD_RELOC_LM32_CALL
6856 -- : BFD_RELOC_LM32_BRANCH
6857 -- : BFD_RELOC_LM32_16_GOT
6858 -- : BFD_RELOC_LM32_GOTOFF_HI16
6859 -- : BFD_RELOC_LM32_GOTOFF_LO16
6860 -- : BFD_RELOC_LM32_COPY
6861 -- : BFD_RELOC_LM32_GLOB_DAT
6862 -- : BFD_RELOC_LM32_JMP_SLOT
6863 -- : BFD_RELOC_LM32_RELATIVE
6864     Lattice Mico32 relocations.
6865
6866 -- : BFD_RELOC_MACH_O_SECTDIFF
6867     Difference between two section addreses.  Must be followed by a
6868     BFD_RELOC_MACH_O_PAIR.
6869
6870 -- : BFD_RELOC_MACH_O_LOCAL_SECTDIFF
6871     Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol.
6872
6873 -- : BFD_RELOC_MACH_O_PAIR
6874     Pair of relocation.  Contains the first symbol.
6875
6876 -- : BFD_RELOC_MACH_O_SUBTRACTOR32
6877     Symbol will be substracted.  Must be followed by a BFD_RELOC_32.
6878
6879 -- : BFD_RELOC_MACH_O_SUBTRACTOR64
6880     Symbol will be substracted.  Must be followed by a BFD_RELOC_64.
6881
6882 -- : BFD_RELOC_MACH_O_X86_64_BRANCH32
6883 -- : BFD_RELOC_MACH_O_X86_64_BRANCH8
6884     PCREL relocations.  They are marked as branch to create PLT entry
6885     if required.
6886
6887 -- : BFD_RELOC_MACH_O_X86_64_GOT
6888     Used when referencing a GOT entry.
6889
6890 -- : BFD_RELOC_MACH_O_X86_64_GOT_LOAD
6891     Used when loading a GOT entry with movq.  It is specially marked
6892     so that the linker could optimize the movq to a leaq if possible.
6893
6894 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_1
6895     Same as BFD_RELOC_32_PCREL but with an implicit -1 addend.
6896
6897 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_2
6898     Same as BFD_RELOC_32_PCREL but with an implicit -2 addend.
6899
6900 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_4
6901     Same as BFD_RELOC_32_PCREL but with an implicit -4 addend.
6902
6903 -- : BFD_RELOC_MACH_O_X86_64_TLV
6904     Used when referencing a TLV entry.
6905
6906 -- : BFD_RELOC_MACH_O_ARM64_ADDEND
6907     Addend for PAGE or PAGEOFF.
6908
6909 -- : BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21
6910     Relative offset to page of GOT slot.
6911
6912 -- : BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12
6913     Relative offset within page of GOT slot.
6914
6915 -- : BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT
6916     Address of a GOT entry.
6917
6918 -- : BFD_RELOC_MICROBLAZE_32_LO
6919     This is a 32 bit reloc for the microblaze that stores the low 16
6920     bits of a value
6921
6922 -- : BFD_RELOC_MICROBLAZE_32_LO_PCREL
6923     This is a 32 bit pc-relative reloc for the microblaze that stores
6924     the low 16 bits of a value
6925
6926 -- : BFD_RELOC_MICROBLAZE_32_ROSDA
6927     This is a 32 bit reloc for the microblaze that stores a value
6928     relative to the read-only small data area anchor
6929
6930 -- : BFD_RELOC_MICROBLAZE_32_RWSDA
6931     This is a 32 bit reloc for the microblaze that stores a value
6932     relative to the read-write small data area anchor
6933
6934 -- : BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM
6935     This is a 32 bit reloc for the microblaze to handle expressions of
6936     the form "Symbol Op Symbol"
6937
6938 -- : BFD_RELOC_MICROBLAZE_64_NONE
6939     This is a 64 bit reloc that stores the 32 bit pc relative value in
6940     two words (with an imm instruction).  No relocation is done here -
6941     only used for relaxing
6942
6943 -- : BFD_RELOC_MICROBLAZE_64_GOTPC
6944     This is a 64 bit reloc that stores the 32 bit pc relative value in
6945     two words (with an imm instruction).  The relocation is
6946     PC-relative GOT offset
6947
6948 -- : BFD_RELOC_MICROBLAZE_64_GOT
6949     This is a 64 bit reloc that stores the 32 bit pc relative value in
6950     two words (with an imm instruction).  The relocation is GOT offset
6951
6952 -- : BFD_RELOC_MICROBLAZE_64_PLT
6953     This is a 64 bit reloc that stores the 32 bit pc relative value in
6954     two words (with an imm instruction).  The relocation is
6955     PC-relative offset into PLT
6956
6957 -- : BFD_RELOC_MICROBLAZE_64_GOTOFF
6958     This is a 64 bit reloc that stores the 32 bit GOT relative value
6959     in two words (with an imm instruction).  The relocation is
6960     relative offset from _GLOBAL_OFFSET_TABLE_
6961
6962 -- : BFD_RELOC_MICROBLAZE_32_GOTOFF
6963     This is a 32 bit reloc that stores the 32 bit GOT relative value
6964     in a word.  The relocation is relative offset from
6965
6966 -- : BFD_RELOC_MICROBLAZE_COPY
6967     This is used to tell the dynamic linker to copy the value out of
6968     the dynamic object into the runtime process image.
6969
6970 -- : BFD_RELOC_MICROBLAZE_64_TLS
6971     Unused Reloc
6972
6973 -- : BFD_RELOC_MICROBLAZE_64_TLSGD
6974     This is a 64 bit reloc that stores the 32 bit GOT relative value
6975     of the GOT TLS GD info entry in two words (with an imm
6976     instruction). The relocation is GOT offset.
6977
6978 -- : BFD_RELOC_MICROBLAZE_64_TLSLD
6979     This is a 64 bit reloc that stores the 32 bit GOT relative value
6980     of the GOT TLS LD info entry in two words (with an imm
6981     instruction). The relocation is GOT offset.
6982
6983 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPMOD
6984     This is a 32 bit reloc that stores the Module ID to GOT(n).
6985
6986 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPREL
6987     This is a 32 bit reloc that stores TLS offset to GOT(n+1).
6988
6989 -- : BFD_RELOC_MICROBLAZE_64_TLSDTPREL
6990     This is a 32 bit reloc for storing TLS offset to two words (uses
6991     imm instruction)
6992
6993 -- : BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL
6994     This is a 64 bit reloc that stores 32-bit thread pointer relative
6995     offset to two words (uses imm instruction).
6996
6997 -- : BFD_RELOC_MICROBLAZE_64_TLSTPREL
6998     This is a 64 bit reloc that stores 32-bit thread pointer relative
6999     offset to two words (uses imm instruction).
7000
7001 -- : BFD_RELOC_MICROBLAZE_64_TEXTPCREL
7002     This is a 64 bit reloc that stores the 32 bit pc relative value in
7003     two words (with an imm instruction).  The relocation is
7004     PC-relative offset from start of TEXT.
7005
7006 -- : BFD_RELOC_MICROBLAZE_64_TEXTREL
7007     This is a 64 bit reloc that stores the 32 bit offset value in two
7008     words (with an imm instruction).  The relocation is relative
7009     offset from start of TEXT.
7010
7011 -- : BFD_RELOC_AARCH64_RELOC_START
7012     AArch64 pseudo relocation code to mark the start of the AArch64
7013     relocation enumerators.  N.B. the order of the enumerators is
7014     important as several tables in the AArch64 bfd backend are indexed
7015     by these enumerators; make sure they are all synced.
7016
7017 -- : BFD_RELOC_AARCH64_NULL
7018     Deprecated AArch64 null relocation code.
7019
7020 -- : BFD_RELOC_AARCH64_NONE
7021     AArch64 null relocation code.
7022
7023 -- : BFD_RELOC_AARCH64_64
7024 -- : BFD_RELOC_AARCH64_32
7025 -- : BFD_RELOC_AARCH64_16
7026     Basic absolute relocations of N bits.  These are equivalent to
7027     BFD_RELOC_N and they were added to assist the indexing of the howto
7028     table.
7029
7030 -- : BFD_RELOC_AARCH64_64_PCREL
7031 -- : BFD_RELOC_AARCH64_32_PCREL
7032 -- : BFD_RELOC_AARCH64_16_PCREL
7033     PC-relative relocations.  These are equivalent to BFD_RELOC_N_PCREL
7034     and they were added to assist the indexing of the howto table.
7035
7036 -- : BFD_RELOC_AARCH64_MOVW_G0
7037     AArch64 MOV[NZK] instruction with most significant bits 0 to 15 of
7038     an unsigned address/value.
7039
7040 -- : BFD_RELOC_AARCH64_MOVW_G0_NC
7041     AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of
7042     an address/value.  No overflow checking.
7043
7044 -- : BFD_RELOC_AARCH64_MOVW_G1
7045     AArch64 MOV[NZK] instruction with most significant bits 16 to 31
7046     of an unsigned address/value.
7047
7048 -- : BFD_RELOC_AARCH64_MOVW_G1_NC
7049     AArch64 MOV[NZK] instruction with less significant bits 16 to 31
7050     of an address/value.  No overflow checking.
7051
7052 -- : BFD_RELOC_AARCH64_MOVW_G2
7053     AArch64 MOV[NZK] instruction with most significant bits 32 to 47
7054     of an unsigned address/value.
7055
7056 -- : BFD_RELOC_AARCH64_MOVW_G2_NC
7057     AArch64 MOV[NZK] instruction with less significant bits 32 to 47
7058     of an address/value.  No overflow checking.
7059
7060 -- : BFD_RELOC_AARCH64_MOVW_G3
7061     AArch64 MOV[NZK] instruction with most signficant bits 48 to 64 of
7062     a signed or unsigned address/value.
7063
7064 -- : BFD_RELOC_AARCH64_MOVW_G0_S
7065     AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of
7066     a signed value.  Changes instruction to MOVZ or MOVN depending on
7067     the value's sign.
7068
7069 -- : BFD_RELOC_AARCH64_MOVW_G1_S
7070     AArch64 MOV[NZ] instruction with most significant bits 16 to 31 of
7071     a signed value.  Changes instruction to MOVZ or MOVN depending on
7072     the value's sign.
7073
7074 -- : BFD_RELOC_AARCH64_MOVW_G2_S
7075     AArch64 MOV[NZ] instruction with most significant bits 32 to 47 of
7076     a signed value.  Changes instruction to MOVZ or MOVN depending on
7077     the value's sign.
7078
7079 -- : BFD_RELOC_AARCH64_MOVW_PREL_G0
7080     AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of
7081     a signed value.  Changes instruction to MOVZ or MOVN depending on
7082     the value's sign.
7083
7084 -- : BFD_RELOC_AARCH64_MOVW_PREL_G0_NC
7085     AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of
7086     a signed value.  Changes instruction to MOVZ or MOVN depending on
7087     the value's sign.
7088
7089 -- : BFD_RELOC_AARCH64_MOVW_PREL_G1
7090     AArch64 MOVK instruction with most significant bits 16 to 31 of a
7091     signed value.
7092
7093 -- : BFD_RELOC_AARCH64_MOVW_PREL_G1_NC
7094     AArch64 MOVK instruction with most significant bits 16 to 31 of a
7095     signed value.
7096
7097 -- : BFD_RELOC_AARCH64_MOVW_PREL_G2
7098     AArch64 MOVK instruction with most significant bits 32 to 47 of a
7099     signed value.
7100
7101 -- : BFD_RELOC_AARCH64_MOVW_PREL_G2_NC
7102     AArch64 MOVK instruction with most significant bits 32 to 47 of a
7103     signed value.
7104
7105 -- : BFD_RELOC_AARCH64_MOVW_PREL_G3
7106     AArch64 MOVK instruction with most significant bits 47 to 63 of a
7107     signed value.
7108
7109 -- : BFD_RELOC_AARCH64_LD_LO19_PCREL
7110     AArch64 Load Literal instruction, holding a 19 bit pc-relative word
7111     offset.  The lowest two bits must be zero and are not stored in the
7112     instruction, giving a 21 bit signed byte offset.
7113
7114 -- : BFD_RELOC_AARCH64_ADR_LO21_PCREL
7115     AArch64 ADR instruction, holding a simple 21 bit pc-relative byte
7116     offset.
7117
7118 -- : BFD_RELOC_AARCH64_ADR_HI21_PCREL
7119     AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
7120     offset, giving a 4KB aligned page base address.
7121
7122 -- : BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL
7123     AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
7124     offset, giving a 4KB aligned page base address, but with no
7125     overflow checking.
7126
7127 -- : BFD_RELOC_AARCH64_ADD_LO12
7128     AArch64 ADD immediate instruction, holding bits 0 to 11 of the
7129     address.  Used in conjunction with
7130     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7131
7132 -- : BFD_RELOC_AARCH64_LDST8_LO12
7133     AArch64 8-bit load/store instruction, holding bits 0 to 11 of the
7134     address.  Used in conjunction with
7135     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7136
7137 -- : BFD_RELOC_AARCH64_TSTBR14
7138     AArch64 14 bit pc-relative test bit and branch.  The lowest two
7139     bits must be zero and are not stored in the instruction, giving a
7140     16 bit signed byte offset.
7141
7142 -- : BFD_RELOC_AARCH64_BRANCH19
7143     AArch64 19 bit pc-relative conditional branch and compare & branch.
7144     The lowest two bits must be zero and are not stored in the
7145     instruction, giving a 21 bit signed byte offset.
7146
7147 -- : BFD_RELOC_AARCH64_JUMP26
7148     AArch64 26 bit pc-relative unconditional branch.  The lowest two
7149     bits must be zero and are not stored in the instruction, giving a
7150     28 bit signed byte offset.
7151
7152 -- : BFD_RELOC_AARCH64_CALL26
7153     AArch64 26 bit pc-relative unconditional branch and link.  The
7154     lowest two bits must be zero and are not stored in the instruction,
7155     giving a 28 bit signed byte offset.
7156
7157 -- : BFD_RELOC_AARCH64_LDST16_LO12
7158     AArch64 16-bit load/store instruction, holding bits 0 to 11 of the
7159     address.  Used in conjunction with
7160     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7161
7162 -- : BFD_RELOC_AARCH64_LDST32_LO12
7163     AArch64 32-bit load/store instruction, holding bits 0 to 11 of the
7164     address.  Used in conjunction with
7165     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7166
7167 -- : BFD_RELOC_AARCH64_LDST64_LO12
7168     AArch64 64-bit load/store instruction, holding bits 0 to 11 of the
7169     address.  Used in conjunction with
7170     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7171
7172 -- : BFD_RELOC_AARCH64_LDST128_LO12
7173     AArch64 128-bit load/store instruction, holding bits 0 to 11 of the
7174     address.  Used in conjunction with
7175     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7176
7177 -- : BFD_RELOC_AARCH64_GOT_LD_PREL19
7178     AArch64 Load Literal instruction, holding a 19 bit PC relative word
7179     offset of the global offset table entry for a symbol.  The lowest
7180     two bits must be zero and are not stored in the instruction,
7181     giving a 21 bit signed byte offset.  This relocation type requires
7182     signed overflow checking.
7183
7184 -- : BFD_RELOC_AARCH64_ADR_GOT_PAGE
7185     Get to the page base of the global offset table entry for a symbol
7186     as part of an ADRP instruction using a 21 bit PC relative
7187     value.Used in conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC.
7188
7189 -- : BFD_RELOC_AARCH64_LD64_GOT_LO12_NC
7190     Unsigned 12 bit byte offset for 64 bit load/store from the page of
7191     the GOT entry for this symbol.  Used in conjunction with
7192     BFD_RELOC_AARCH64_ADR_GOT_PAGE.  Valid in LP64 ABI only.
7193
7194 -- : BFD_RELOC_AARCH64_LD32_GOT_LO12_NC
7195     Unsigned 12 bit byte offset for 32 bit load/store from the page of
7196     the GOT entry for this symbol.  Used in conjunction with
7197     BFD_RELOC_AARCH64_ADR_GOT_PAGE.  Valid in ILP32 ABI only.
7198
7199 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC
7200     Unsigned 16 bit byte offset for 64 bit load/store from the GOT
7201     entry for this symbol.  Valid in LP64 ABI only.
7202
7203 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G1
7204     Unsigned 16 bit byte higher offset for 64 bit load/store from the
7205     GOT entry for this symbol.  Valid in LP64 ABI only.
7206
7207 -- : BFD_RELOC_AARCH64_LD64_GOTOFF_LO15
7208     Unsigned 15 bit byte offset for 64 bit load/store from the page of
7209     the GOT entry for this symbol.  Valid in LP64 ABI only.
7210
7211 -- : BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14
7212     Scaled 14 bit byte offset to the page base of the global offset
7213     table.
7214
7215 -- : BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15
7216     Scaled 15 bit byte offset to the page base of the global offset
7217     table.
7218
7219 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21
7220     Get to the page base of the global offset table entry for a symbols
7221     tls_index structure as part of an adrp instruction using a 21 bit
7222     PC relative value.  Used in conjunction with
7223     BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC.
7224
7225 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PREL21
7226     AArch64 TLS General Dynamic
7227
7228 -- : BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC
7229     Unsigned 12 bit byte offset to global offset table entry for a
7230     symbols tls_index structure.  Used in conjunction with
7231     BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.
7232
7233 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC
7234     AArch64 TLS General Dynamic relocation.
7235
7236 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G1
7237     AArch64 TLS General Dynamic relocation.
7238
7239 -- : BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21
7240     AArch64 TLS INITIAL EXEC relocation.
7241
7242 -- : BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC
7243     AArch64 TLS INITIAL EXEC relocation.
7244
7245 -- : BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC
7246     AArch64 TLS INITIAL EXEC relocation.
7247
7248 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19
7249     AArch64 TLS INITIAL EXEC relocation.
7250
7251 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC
7252     AArch64 TLS INITIAL EXEC relocation.
7253
7254 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1
7255     AArch64 TLS INITIAL EXEC relocation.
7256
7257 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12
7258     bit[23:12] of byte offset to module TLS base address.
7259
7260 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12
7261     Unsigned 12 bit byte offset to module TLS base address.
7262
7263 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC
7264     No overflow check version of
7265     BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12.
7266
7267 -- : BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC
7268     Unsigned 12 bit byte offset to global offset table entry for a
7269     symbols tls_index structure.  Used in conjunction with
7270     BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21.
7271
7272 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21
7273     GOT entry page address for AArch64 TLS Local Dynamic, used with
7274     ADRP instruction.
7275
7276 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PREL21
7277     GOT entry address for AArch64 TLS Local Dynamic, used with ADR
7278     instruction.
7279
7280 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12
7281     bit[11:1] of byte offset to module TLS base address, encoded in
7282     ldst instructions.
7283
7284 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC
7285     Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no
7286     overflow check.
7287
7288 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12
7289     bit[11:2] of byte offset to module TLS base address, encoded in
7290     ldst instructions.
7291
7292 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC
7293     Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no
7294     overflow check.
7295
7296 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12
7297     bit[11:3] of byte offset to module TLS base address, encoded in
7298     ldst instructions.
7299
7300 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC
7301     Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no
7302     overflow check.
7303
7304 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12
7305     bit[11:0] of byte offset to module TLS base address, encoded in
7306     ldst instructions.
7307
7308 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC
7309     Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no
7310     overflow check.
7311
7312 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
7313     bit[15:0] of byte offset to module TLS base address.
7314
7315 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC
7316     No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
7317
7318 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
7319     bit[31:16] of byte offset to module TLS base address.
7320
7321 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC
7322     No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
7323
7324 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2
7325     bit[47:32] of byte offset to module TLS base address.
7326
7327 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2
7328     AArch64 TLS LOCAL EXEC relocation.
7329
7330 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1
7331     AArch64 TLS LOCAL EXEC relocation.
7332
7333 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC
7334     AArch64 TLS LOCAL EXEC relocation.
7335
7336 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0
7337     AArch64 TLS LOCAL EXEC relocation.
7338
7339 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC
7340     AArch64 TLS LOCAL EXEC relocation.
7341
7342 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12
7343     AArch64 TLS LOCAL EXEC relocation.
7344
7345 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12
7346     AArch64 TLS LOCAL EXEC relocation.
7347
7348 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC
7349     AArch64 TLS LOCAL EXEC relocation.
7350
7351 -- : BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12
7352     bit[11:1] of byte offset to module TLS base address, encoded in
7353     ldst instructions.
7354
7355 -- : BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC
7356     Similar as BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no
7357     overflow check.
7358
7359 -- : BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12
7360     bit[11:2] of byte offset to module TLS base address, encoded in
7361     ldst instructions.
7362
7363 -- : BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC
7364     Similar as BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no
7365     overflow check.
7366
7367 -- : BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12
7368     bit[11:3] of byte offset to module TLS base address, encoded in
7369     ldst instructions.
7370
7371 -- : BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC
7372     Similar as BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no
7373     overflow check.
7374
7375 -- : BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12
7376     bit[11:0] of byte offset to module TLS base address, encoded in
7377     ldst instructions.
7378
7379 -- : BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC
7380     Similar as BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no
7381     overflow check.
7382
7383 -- : BFD_RELOC_AARCH64_TLSDESC_LD_PREL19
7384     AArch64 TLS DESC relocation.
7385
7386 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21
7387     AArch64 TLS DESC relocation.
7388
7389 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21
7390     AArch64 TLS DESC relocation.
7391
7392 -- : BFD_RELOC_AARCH64_TLSDESC_LD64_LO12
7393     AArch64 TLS DESC relocation.
7394
7395 -- : BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC
7396     AArch64 TLS DESC relocation.
7397
7398 -- : BFD_RELOC_AARCH64_TLSDESC_ADD_LO12
7399     AArch64 TLS DESC relocation.
7400
7401 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G1
7402     AArch64 TLS DESC relocation.
7403
7404 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC
7405     AArch64 TLS DESC relocation.
7406
7407 -- : BFD_RELOC_AARCH64_TLSDESC_LDR
7408     AArch64 TLS DESC relocation.
7409
7410 -- : BFD_RELOC_AARCH64_TLSDESC_ADD
7411     AArch64 TLS DESC relocation.
7412
7413 -- : BFD_RELOC_AARCH64_TLSDESC_CALL
7414     AArch64 TLS DESC relocation.
7415
7416 -- : BFD_RELOC_AARCH64_COPY
7417     AArch64 TLS relocation.
7418
7419 -- : BFD_RELOC_AARCH64_GLOB_DAT
7420     AArch64 TLS relocation.
7421
7422 -- : BFD_RELOC_AARCH64_JUMP_SLOT
7423     AArch64 TLS relocation.
7424
7425 -- : BFD_RELOC_AARCH64_RELATIVE
7426     AArch64 TLS relocation.
7427
7428 -- : BFD_RELOC_AARCH64_TLS_DTPMOD
7429     AArch64 TLS relocation.
7430
7431 -- : BFD_RELOC_AARCH64_TLS_DTPREL
7432     AArch64 TLS relocation.
7433
7434 -- : BFD_RELOC_AARCH64_TLS_TPREL
7435     AArch64 TLS relocation.
7436
7437 -- : BFD_RELOC_AARCH64_TLSDESC
7438     AArch64 TLS relocation.
7439
7440 -- : BFD_RELOC_AARCH64_IRELATIVE
7441     AArch64 support for STT_GNU_IFUNC.
7442
7443 -- : BFD_RELOC_AARCH64_RELOC_END
7444     AArch64 pseudo relocation code to mark the end of the AArch64
7445     relocation enumerators that have direct mapping to ELF reloc codes.
7446     There are a few more enumerators after this one; those are mainly
7447     used by the AArch64 assembler for the internal fixup or to select
7448     one of the above enumerators.
7449
7450 -- : BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP
7451     AArch64 pseudo relocation code to be used internally by the AArch64
7452     assembler and not (currently) written to any object files.
7453
7454 -- : BFD_RELOC_AARCH64_LDST_LO12
7455     AArch64 unspecified load/store instruction, holding bits 0 to 11
7456     of the address.  Used in conjunction with
7457     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7458
7459 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12
7460     AArch64 pseudo relocation code for TLS local dynamic mode.  It's
7461     to be used internally by the AArch64 assembler and not (currently)
7462     written to any object files.
7463
7464 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC
7465     Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no
7466     overflow check.
7467
7468 -- : BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12
7469     AArch64 pseudo relocation code for TLS local exec mode.  It's to be
7470     used internally by the AArch64 assembler and not (currently)
7471     written to any object files.
7472
7473 -- : BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC
7474     Similar as BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12, but no
7475     overflow check.
7476
7477 -- : BFD_RELOC_AARCH64_LD_GOT_LO12_NC
7478     AArch64 pseudo relocation code to be used internally by the AArch64
7479     assembler and not (currently) written to any object files.
7480
7481 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC
7482     AArch64 pseudo relocation code to be used internally by the AArch64
7483     assembler and not (currently) written to any object files.
7484
7485 -- : BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC
7486     AArch64 pseudo relocation code to be used internally by the AArch64
7487     assembler and not (currently) written to any object files.
7488
7489 -- : BFD_RELOC_TILEPRO_COPY
7490 -- : BFD_RELOC_TILEPRO_GLOB_DAT
7491 -- : BFD_RELOC_TILEPRO_JMP_SLOT
7492 -- : BFD_RELOC_TILEPRO_RELATIVE
7493 -- : BFD_RELOC_TILEPRO_BROFF_X1
7494 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1
7495 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT
7496 -- : BFD_RELOC_TILEPRO_IMM8_X0
7497 -- : BFD_RELOC_TILEPRO_IMM8_Y0
7498 -- : BFD_RELOC_TILEPRO_IMM8_X1
7499 -- : BFD_RELOC_TILEPRO_IMM8_Y1
7500 -- : BFD_RELOC_TILEPRO_DEST_IMM8_X1
7501 -- : BFD_RELOC_TILEPRO_MT_IMM15_X1
7502 -- : BFD_RELOC_TILEPRO_MF_IMM15_X1
7503 -- : BFD_RELOC_TILEPRO_IMM16_X0
7504 -- : BFD_RELOC_TILEPRO_IMM16_X1
7505 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO
7506 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO
7507 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI
7508 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI
7509 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA
7510 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA
7511 -- : BFD_RELOC_TILEPRO_IMM16_X0_PCREL
7512 -- : BFD_RELOC_TILEPRO_IMM16_X1_PCREL
7513 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL
7514 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL
7515 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL
7516 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL
7517 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL
7518 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL
7519 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT
7520 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT
7521 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO
7522 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO
7523 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI
7524 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI
7525 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA
7526 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA
7527 -- : BFD_RELOC_TILEPRO_MMSTART_X0
7528 -- : BFD_RELOC_TILEPRO_MMEND_X0
7529 -- : BFD_RELOC_TILEPRO_MMSTART_X1
7530 -- : BFD_RELOC_TILEPRO_MMEND_X1
7531 -- : BFD_RELOC_TILEPRO_SHAMT_X0
7532 -- : BFD_RELOC_TILEPRO_SHAMT_X1
7533 -- : BFD_RELOC_TILEPRO_SHAMT_Y0
7534 -- : BFD_RELOC_TILEPRO_SHAMT_Y1
7535 -- : BFD_RELOC_TILEPRO_TLS_GD_CALL
7536 -- : BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD
7537 -- : BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD
7538 -- : BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD
7539 -- : BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD
7540 -- : BFD_RELOC_TILEPRO_TLS_IE_LOAD
7541 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD
7542 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD
7543 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO
7544 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO
7545 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI
7546 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI
7547 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA
7548 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA
7549 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE
7550 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE
7551 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO
7552 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO
7553 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI
7554 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI
7555 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA
7556 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA
7557 -- : BFD_RELOC_TILEPRO_TLS_DTPMOD32
7558 -- : BFD_RELOC_TILEPRO_TLS_DTPOFF32
7559 -- : BFD_RELOC_TILEPRO_TLS_TPOFF32
7560 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE
7561 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE
7562 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO
7563 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO
7564 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI
7565 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI
7566 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA
7567 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA
7568     Tilera TILEPro Relocations.
7569
7570 -- : BFD_RELOC_TILEGX_HW0
7571 -- : BFD_RELOC_TILEGX_HW1
7572 -- : BFD_RELOC_TILEGX_HW2
7573 -- : BFD_RELOC_TILEGX_HW3
7574 -- : BFD_RELOC_TILEGX_HW0_LAST
7575 -- : BFD_RELOC_TILEGX_HW1_LAST
7576 -- : BFD_RELOC_TILEGX_HW2_LAST
7577 -- : BFD_RELOC_TILEGX_COPY
7578 -- : BFD_RELOC_TILEGX_GLOB_DAT
7579 -- : BFD_RELOC_TILEGX_JMP_SLOT
7580 -- : BFD_RELOC_TILEGX_RELATIVE
7581 -- : BFD_RELOC_TILEGX_BROFF_X1
7582 -- : BFD_RELOC_TILEGX_JUMPOFF_X1
7583 -- : BFD_RELOC_TILEGX_JUMPOFF_X1_PLT
7584 -- : BFD_RELOC_TILEGX_IMM8_X0
7585 -- : BFD_RELOC_TILEGX_IMM8_Y0
7586 -- : BFD_RELOC_TILEGX_IMM8_X1
7587 -- : BFD_RELOC_TILEGX_IMM8_Y1
7588 -- : BFD_RELOC_TILEGX_DEST_IMM8_X1
7589 -- : BFD_RELOC_TILEGX_MT_IMM14_X1
7590 -- : BFD_RELOC_TILEGX_MF_IMM14_X1
7591 -- : BFD_RELOC_TILEGX_MMSTART_X0
7592 -- : BFD_RELOC_TILEGX_MMEND_X0
7593 -- : BFD_RELOC_TILEGX_SHAMT_X0
7594 -- : BFD_RELOC_TILEGX_SHAMT_X1
7595 -- : BFD_RELOC_TILEGX_SHAMT_Y0
7596 -- : BFD_RELOC_TILEGX_SHAMT_Y1
7597 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0
7598 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0
7599 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1
7600 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1
7601 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2
7602 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2
7603 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3
7604 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3
7605 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST
7606 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST
7607 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST
7608 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST
7609 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST
7610 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST
7611 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL
7612 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL
7613 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL
7614 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL
7615 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL
7616 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL
7617 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL
7618 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL
7619 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL
7620 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL
7621 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL
7622 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL
7623 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL
7624 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL
7625 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT
7626 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT
7627 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL
7628 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL
7629 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL
7630 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL
7631 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL
7632 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL
7633 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT
7634 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT
7635 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT
7636 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT
7637 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL
7638 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL
7639 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD
7640 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD
7641 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE
7642 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE
7643 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE
7644 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE
7645 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE
7646 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE
7647 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD
7648 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD
7649 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD
7650 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD
7651 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE
7652 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE
7653 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL
7654 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL
7655 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL
7656 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL
7657 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL
7658 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL
7659 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE
7660 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE
7661 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE
7662 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE
7663 -- : BFD_RELOC_TILEGX_TLS_DTPMOD64
7664 -- : BFD_RELOC_TILEGX_TLS_DTPOFF64
7665 -- : BFD_RELOC_TILEGX_TLS_TPOFF64
7666 -- : BFD_RELOC_TILEGX_TLS_DTPMOD32
7667 -- : BFD_RELOC_TILEGX_TLS_DTPOFF32
7668 -- : BFD_RELOC_TILEGX_TLS_TPOFF32
7669 -- : BFD_RELOC_TILEGX_TLS_GD_CALL
7670 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD
7671 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD
7672 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD
7673 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD
7674 -- : BFD_RELOC_TILEGX_TLS_IE_LOAD
7675 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD
7676 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD
7677 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD
7678 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD
7679     Tilera TILE-Gx Relocations.
7680
7681 -- : BFD_RELOC_BPF_64
7682 -- : BFD_RELOC_BPF_32
7683 -- : BFD_RELOC_BPF_16
7684 -- : BFD_RELOC_BPF_DISP16
7685 -- : BFD_RELOC_BPF_DISP32
7686     Linux eBPF relocations.
7687
7688 -- : BFD_RELOC_EPIPHANY_SIMM8
7689     Adapteva EPIPHANY - 8 bit signed pc-relative displacement
7690
7691 -- : BFD_RELOC_EPIPHANY_SIMM24
7692     Adapteva EPIPHANY - 24 bit signed pc-relative displacement
7693
7694 -- : BFD_RELOC_EPIPHANY_HIGH
7695     Adapteva EPIPHANY - 16 most-significant bits of absolute address
7696
7697 -- : BFD_RELOC_EPIPHANY_LOW
7698     Adapteva EPIPHANY - 16 least-significant bits of absolute address
7699
7700 -- : BFD_RELOC_EPIPHANY_SIMM11
7701     Adapteva EPIPHANY - 11 bit signed number - add/sub immediate
7702
7703 -- : BFD_RELOC_EPIPHANY_IMM11
7704     Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st
7705     displacement)
7706
7707 -- : BFD_RELOC_EPIPHANY_IMM8
7708     Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction.
7709
7710 -- : BFD_RELOC_VISIUM_HI16
7711 -- : BFD_RELOC_VISIUM_LO16
7712 -- : BFD_RELOC_VISIUM_IM16
7713 -- : BFD_RELOC_VISIUM_REL16
7714 -- : BFD_RELOC_VISIUM_HI16_PCREL
7715 -- : BFD_RELOC_VISIUM_LO16_PCREL
7716 -- : BFD_RELOC_VISIUM_IM16_PCREL
7717     Visium Relocations.
7718
7719 -- : BFD_RELOC_WASM32_LEB128
7720 -- : BFD_RELOC_WASM32_LEB128_GOT
7721 -- : BFD_RELOC_WASM32_LEB128_GOT_CODE
7722 -- : BFD_RELOC_WASM32_LEB128_PLT
7723 -- : BFD_RELOC_WASM32_PLT_INDEX
7724 -- : BFD_RELOC_WASM32_ABS32_CODE
7725 -- : BFD_RELOC_WASM32_COPY
7726 -- : BFD_RELOC_WASM32_CODE_POINTER
7727 -- : BFD_RELOC_WASM32_INDEX
7728 -- : BFD_RELOC_WASM32_PLT_SIG
7729     WebAssembly relocations.
7730
7731 -- : BFD_RELOC_CKCORE_NONE
7732 -- : BFD_RELOC_CKCORE_ADDR32
7733 -- : BFD_RELOC_CKCORE_PCREL_IMM8BY4
7734 -- : BFD_RELOC_CKCORE_PCREL_IMM11BY2
7735 -- : BFD_RELOC_CKCORE_PCREL_IMM4BY2
7736 -- : BFD_RELOC_CKCORE_PCREL32
7737 -- : BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2
7738 -- : BFD_RELOC_CKCORE_GNU_VTINHERIT
7739 -- : BFD_RELOC_CKCORE_GNU_VTENTRY
7740 -- : BFD_RELOC_CKCORE_RELATIVE
7741 -- : BFD_RELOC_CKCORE_COPY
7742 -- : BFD_RELOC_CKCORE_GLOB_DAT
7743 -- : BFD_RELOC_CKCORE_JUMP_SLOT
7744 -- : BFD_RELOC_CKCORE_GOTOFF
7745 -- : BFD_RELOC_CKCORE_GOTPC
7746 -- : BFD_RELOC_CKCORE_GOT32
7747 -- : BFD_RELOC_CKCORE_PLT32
7748 -- : BFD_RELOC_CKCORE_ADDRGOT
7749 -- : BFD_RELOC_CKCORE_ADDRPLT
7750 -- : BFD_RELOC_CKCORE_PCREL_IMM26BY2
7751 -- : BFD_RELOC_CKCORE_PCREL_IMM16BY2
7752 -- : BFD_RELOC_CKCORE_PCREL_IMM16BY4
7753 -- : BFD_RELOC_CKCORE_PCREL_IMM10BY2
7754 -- : BFD_RELOC_CKCORE_PCREL_IMM10BY4
7755 -- : BFD_RELOC_CKCORE_ADDR_HI16
7756 -- : BFD_RELOC_CKCORE_ADDR_LO16
7757 -- : BFD_RELOC_CKCORE_GOTPC_HI16
7758 -- : BFD_RELOC_CKCORE_GOTPC_LO16
7759 -- : BFD_RELOC_CKCORE_GOTOFF_HI16
7760 -- : BFD_RELOC_CKCORE_GOTOFF_LO16
7761 -- : BFD_RELOC_CKCORE_GOT12
7762 -- : BFD_RELOC_CKCORE_GOT_HI16
7763 -- : BFD_RELOC_CKCORE_GOT_LO16
7764 -- : BFD_RELOC_CKCORE_PLT12
7765 -- : BFD_RELOC_CKCORE_PLT_HI16
7766 -- : BFD_RELOC_CKCORE_PLT_LO16
7767 -- : BFD_RELOC_CKCORE_ADDRGOT_HI16
7768 -- : BFD_RELOC_CKCORE_ADDRGOT_LO16
7769 -- : BFD_RELOC_CKCORE_ADDRPLT_HI16
7770 -- : BFD_RELOC_CKCORE_ADDRPLT_LO16
7771 -- : BFD_RELOC_CKCORE_PCREL_JSR_IMM26BY2
7772 -- : BFD_RELOC_CKCORE_TOFFSET_LO16
7773 -- : BFD_RELOC_CKCORE_DOFFSET_LO16
7774 -- : BFD_RELOC_CKCORE_PCREL_IMM18BY2
7775 -- : BFD_RELOC_CKCORE_DOFFSET_IMM18
7776 -- : BFD_RELOC_CKCORE_DOFFSET_IMM18BY2
7777 -- : BFD_RELOC_CKCORE_DOFFSET_IMM18BY4
7778 -- : BFD_RELOC_CKCORE_GOTOFF_IMM18
7779 -- : BFD_RELOC_CKCORE_GOT_IMM18BY4
7780 -- : BFD_RELOC_CKCORE_PLT_IMM18BY4
7781 -- : BFD_RELOC_CKCORE_PCREL_IMM7BY4
7782 -- : BFD_RELOC_CKCORE_TLS_LE32
7783 -- : BFD_RELOC_CKCORE_TLS_IE32
7784 -- : BFD_RELOC_CKCORE_TLS_GD32
7785 -- : BFD_RELOC_CKCORE_TLS_LDM32
7786 -- : BFD_RELOC_CKCORE_TLS_LDO32
7787 -- : BFD_RELOC_CKCORE_TLS_DTPMOD32
7788 -- : BFD_RELOC_CKCORE_TLS_DTPOFF32
7789 -- : BFD_RELOC_CKCORE_TLS_TPOFF32
7790 -- : BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4
7791 -- : BFD_RELOC_CKCORE_NOJSRI
7792 -- : BFD_RELOC_CKCORE_CALLGRAPH
7793 -- : BFD_RELOC_CKCORE_IRELATIVE
7794 -- : BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4
7795 -- : BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4
7796     C-SKY relocations.
7797
7798 -- : BFD_RELOC_S12Z_OPR
7799     S12Z relocations.
7800
7801 -- : BFD_RELOC_LARCH_TLS_DTPMOD32
7802 -- : BFD_RELOC_LARCH_TLS_DTPREL32
7803 -- : BFD_RELOC_LARCH_TLS_DTPMOD64
7804 -- : BFD_RELOC_LARCH_TLS_DTPREL64
7805 -- : BFD_RELOC_LARCH_TLS_TPREL32
7806 -- : BFD_RELOC_LARCH_TLS_TPREL64
7807 -- : BFD_RELOC_LARCH_MARK_LA
7808 -- : BFD_RELOC_LARCH_MARK_PCREL
7809 -- : BFD_RELOC_LARCH_SOP_PUSH_PCREL
7810 -- : BFD_RELOC_LARCH_SOP_PUSH_ABSOLUTE
7811 -- : BFD_RELOC_LARCH_SOP_PUSH_DUP
7812 -- : BFD_RELOC_LARCH_SOP_PUSH_GPREL
7813 -- : BFD_RELOC_LARCH_SOP_PUSH_TLS_TPREL
7814 -- : BFD_RELOC_LARCH_SOP_PUSH_TLS_GOT
7815 -- : BFD_RELOC_LARCH_SOP_PUSH_TLS_GD
7816 -- : BFD_RELOC_LARCH_SOP_PUSH_PLT_PCREL
7817 -- : BFD_RELOC_LARCH_SOP_ASSERT
7818 -- : BFD_RELOC_LARCH_SOP_NOT
7819 -- : BFD_RELOC_LARCH_SOP_SUB
7820 -- : BFD_RELOC_LARCH_SOP_SL
7821 -- : BFD_RELOC_LARCH_SOP_SR
7822 -- : BFD_RELOC_LARCH_SOP_ADD
7823 -- : BFD_RELOC_LARCH_SOP_AND
7824 -- : BFD_RELOC_LARCH_SOP_IF_ELSE
7825 -- : BFD_RELOC_LARCH_SOP_POP_32_S_10_5
7826 -- : BFD_RELOC_LARCH_SOP_POP_32_U_10_12
7827 -- : BFD_RELOC_LARCH_SOP_POP_32_S_10_12
7828 -- : BFD_RELOC_LARCH_SOP_POP_32_S_10_16
7829 -- : BFD_RELOC_LARCH_SOP_POP_32_S_10_16_S2
7830 -- : BFD_RELOC_LARCH_SOP_POP_32_S_5_20
7831 -- : BFD_RELOC_LARCH_SOP_POP_32_S_0_5_10_16_S2
7832 -- : BFD_RELOC_LARCH_SOP_POP_32_S_0_10_10_16_S2
7833 -- : BFD_RELOC_LARCH_SOP_POP_32_U
7834 -- : BFD_RELOC_LARCH_ADD8
7835 -- : BFD_RELOC_LARCH_ADD16
7836 -- : BFD_RELOC_LARCH_ADD24
7837 -- : BFD_RELOC_LARCH_ADD32
7838 -- : BFD_RELOC_LARCH_ADD64
7839 -- : BFD_RELOC_LARCH_SUB8
7840 -- : BFD_RELOC_LARCH_SUB16
7841 -- : BFD_RELOC_LARCH_SUB24
7842 -- : BFD_RELOC_LARCH_SUB32
7843 -- : BFD_RELOC_LARCH_SUB64
7844     LARCH relocations.
7845
7846
7847     typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
7848   
78492.10.2.2 `bfd_reloc_type_lookup'
7850................................
7851
7852*Synopsis*
7853     reloc_howto_type *bfd_reloc_type_lookup
7854        (bfd *abfd, bfd_reloc_code_real_type code);
7855     reloc_howto_type *bfd_reloc_name_lookup
7856        (bfd *abfd, const char *reloc_name);
7857   *Description*
7858Return a pointer to a howto structure which, when invoked, will perform
7859the relocation CODE on data from the architecture noted.
7860
78612.10.2.3 `bfd_default_reloc_type_lookup'
7862........................................
7863
7864*Synopsis*
7865     reloc_howto_type *bfd_default_reloc_type_lookup
7866        (bfd *abfd, bfd_reloc_code_real_type  code);
7867   *Description*
7868Provides a default relocation lookup routine for any architecture.
7869
78702.10.2.4 `bfd_get_reloc_code_name'
7871..................................
7872
7873*Synopsis*
7874     const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
7875   *Description*
7876Provides a printable name for the supplied relocation code.  Useful
7877mainly for printing error messages.
7878
78792.10.2.5 `bfd_generic_relax_section'
7880....................................
7881
7882*Synopsis*
7883     bool bfd_generic_relax_section
7884        (bfd *abfd,
7885         asection *section,
7886         struct bfd_link_info *,
7887         bool *);
7888   *Description*
7889Provides default handling for relaxing for back ends which don't do
7890relaxing.
7891
78922.10.2.6 `bfd_generic_gc_sections'
7893..................................
7894
7895*Synopsis*
7896     bool bfd_generic_gc_sections
7897        (bfd *, struct bfd_link_info *);
7898   *Description*
7899Provides default handling for relaxing for back ends which don't do
7900section gc - i.e., does nothing.
7901
79022.10.2.7 `bfd_generic_lookup_section_flags'
7903...........................................
7904
7905*Synopsis*
7906     bool bfd_generic_lookup_section_flags
7907        (struct bfd_link_info *, struct flag_info *, asection *);
7908   *Description*
7909Provides default handling for section flags lookup - i.e., does nothing.
7910Returns FALSE if the section should be omitted, otherwise TRUE.
7911
79122.10.2.8 `bfd_generic_merge_sections'
7913.....................................
7914
7915*Synopsis*
7916     bool bfd_generic_merge_sections
7917        (bfd *, struct bfd_link_info *);
7918   *Description*
7919Provides default handling for SEC_MERGE section merging for back ends
7920which don't have SEC_MERGE support - i.e., does nothing.
7921
79222.10.2.9 `bfd_generic_get_relocated_section_contents'
7923.....................................................
7924
7925*Synopsis*
7926     bfd_byte *bfd_generic_get_relocated_section_contents
7927        (bfd *abfd,
7928         struct bfd_link_info *link_info,
7929         struct bfd_link_order *link_order,
7930         bfd_byte *data,
7931         bool relocatable,
7932         asymbol **symbols);
7933   *Description*
7934Provides default handling of relocation effort for back ends which
7935can't be bothered to do it efficiently.
7936
79372.10.2.10 `_bfd_generic_set_reloc'
7938..................................
7939
7940*Synopsis*
7941     void _bfd_generic_set_reloc
7942        (bfd *abfd,
7943         sec_ptr section,
7944         arelent **relptr,
7945         unsigned int count);
7946   *Description*
7947Installs a new set of internal relocations in SECTION.
7948
79492.10.2.11 `_bfd_unrecognized_reloc'
7950...................................
7951
7952*Synopsis*
7953     bool _bfd_unrecognized_reloc
7954        (bfd * abfd,
7955         sec_ptr section,
7956         unsigned int r_type);
7957   *Description*
7958Reports an unrecognized reloc.  Written as a function in order to
7959reduce code duplication.  Returns FALSE so that it can be called from a
7960return statement.
7961
7962
7963File: bfd.info,  Node: Core Files,  Next: Targets,  Prev: Relocations,  Up: BFD front end
7964
79652.11 Core files
7966===============
7967
79682.11.1 Core file functions
7969--------------------------
7970
7971*Description*
7972These are functions pertaining to core files.
7973
79742.11.1.1 `bfd_core_file_failing_command'
7975........................................
7976
7977*Synopsis*
7978     const char *bfd_core_file_failing_command (bfd *abfd);
7979   *Description*
7980Return a read-only string explaining which program was running when it
7981failed and produced the core file ABFD.
7982
79832.11.1.2 `bfd_core_file_failing_signal'
7984.......................................
7985
7986*Synopsis*
7987     int bfd_core_file_failing_signal (bfd *abfd);
7988   *Description*
7989Returns the signal number which caused the core dump which generated
7990the file the BFD ABFD is attached to.
7991
79922.11.1.3 `bfd_core_file_pid'
7993............................
7994
7995*Synopsis*
7996     int bfd_core_file_pid (bfd *abfd);
7997   *Description*
7998Returns the PID of the process the core dump the BFD ABFD is attached
7999to was generated from.
8000
80012.11.1.4 `core_file_matches_executable_p'
8002.........................................
8003
8004*Synopsis*
8005     bool core_file_matches_executable_p
8006        (bfd *core_bfd, bfd *exec_bfd);
8007   *Description*
8008Return `TRUE' if the core file attached to CORE_BFD was generated by a
8009run of the executable file attached to EXEC_BFD, `FALSE' otherwise.
8010
80112.11.1.5 `generic_core_file_matches_executable_p'
8012.................................................
8013
8014*Synopsis*
8015     bool generic_core_file_matches_executable_p
8016        (bfd *core_bfd, bfd *exec_bfd);
8017   *Description*
8018Return TRUE if the core file attached to CORE_BFD was generated by a
8019run of the executable file attached to EXEC_BFD.  The match is based on
8020executable basenames only.
8021
8022   Note: When not able to determine the core file failing command or
8023the executable name, we still return TRUE even though we're not sure
8024that core file and executable match.  This is to avoid generating a
8025false warning in situations where we really don't know whether they
8026match or not.
8027
8028
8029File: bfd.info,  Node: Targets,  Next: Architectures,  Prev: Core Files,  Up: BFD front end
8030
80312.12 Targets
8032============
8033
8034*Description*
8035Each port of BFD to a different machine requires the creation of a
8036target back end. All the back end provides to the root part of BFD is a
8037structure containing pointers to functions which perform certain low
8038level operations on files. BFD translates the applications's requests
8039through a pointer into calls to the back end routines.
8040
8041   When a file is opened with `bfd_openr', its format and target are
8042unknown. BFD uses various mechanisms to determine how to interpret the
8043file. The operations performed are:
8044
8045   * Create a BFD by calling the internal routine `_bfd_new_bfd', then
8046     call `bfd_find_target' with the target string supplied to
8047     `bfd_openr' and the new BFD pointer.
8048
8049   * If a null target string was provided to `bfd_find_target', look up
8050     the environment variable `GNUTARGET' and use that as the target
8051     string.
8052
8053   * If the target string is still `NULL', or the target string is
8054     `default', then use the first item in the target vector as the
8055     target type, and set `target_defaulted' in the BFD to cause
8056     `bfd_check_format' to loop through all the targets.  *Note
8057     bfd_target::.  *Note Formats::.
8058
8059   * Otherwise, inspect the elements in the target vector one by one,
8060     until a match on target name is found. When found, use it.
8061
8062   * Otherwise return the error `bfd_error_invalid_target' to
8063     `bfd_openr'.
8064
8065   * `bfd_openr' attempts to open the file using `bfd_open_file', and
8066     returns the BFD.
8067   Once the BFD has been opened and the target selected, the file
8068format may be determined. This is done by calling `bfd_check_format' on
8069the BFD with a suggested format.  If `target_defaulted' has been set,
8070each possible target type is tried to see if it recognizes the
8071specified format.  `bfd_check_format' returns `TRUE' when the caller
8072guesses right.
8073
8074* Menu:
8075
8076* bfd_target::
8077
8078
8079File: bfd.info,  Node: bfd_target,  Prev: Targets,  Up: Targets
8080
80812.12.1 bfd_target
8082-----------------
8083
8084*Description*
8085This structure contains everything that BFD knows about a target. It
8086includes things like its byte order, name, and which routines to call
8087to do various operations.
8088
8089   Every BFD points to a target structure with its `xvec' member.
8090
8091   The macros below are used to dispatch to functions through the
8092`bfd_target' vector. They are used in a number of macros further down
8093in `bfd.h', and are also used when calling various routines by hand
8094inside the BFD implementation.  The ARGLIST argument must be
8095parenthesized; it contains all the arguments to the called function.
8096
8097   They make the documentation (more) unpleasant to read, so if someone
8098wants to fix this and not break the above, please do.
8099     #define BFD_SEND(bfd, message, arglist) \
8100       ((*((bfd)->xvec->message)) arglist)
8101
8102     #ifdef DEBUG_BFD_SEND
8103     #undef BFD_SEND
8104     #define BFD_SEND(bfd, message, arglist) \
8105       (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
8106         ((*((bfd)->xvec->message)) arglist) : \
8107         (bfd_assert (__FILE__,__LINE__), NULL))
8108     #endif
8109   For operations which index on the BFD format:
8110     #define BFD_SEND_FMT(bfd, message, arglist) \
8111       (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
8112
8113     #ifdef DEBUG_BFD_SEND
8114     #undef BFD_SEND_FMT
8115     #define BFD_SEND_FMT(bfd, message, arglist) \
8116       (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
8117        (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
8118        (bfd_assert (__FILE__,__LINE__), NULL))
8119     #endif
8120
8121     /* Defined to TRUE if unused section symbol should be kept.  */
8122     #ifndef TARGET_KEEP_UNUSED_SECTION_SYMBOLS
8123     #define TARGET_KEEP_UNUSED_SECTION_SYMBOLS true
8124     #endif
8125   This is the structure which defines the type of BFD this is.  The
8126`xvec' member of the struct `bfd' itself points here.  Each module that
8127implements access to a different target under BFD, defines one of these.
8128
8129   FIXME, these names should be rationalised with the names of the
8130entry points which call them. Too bad we can't have one macro to define
8131them both!
8132     enum bfd_flavour
8133     {
8134       /* N.B. Update bfd_flavour_name if you change this.  */
8135       bfd_target_unknown_flavour,
8136       bfd_target_aout_flavour,
8137       bfd_target_coff_flavour,
8138       bfd_target_ecoff_flavour,
8139       bfd_target_xcoff_flavour,
8140       bfd_target_elf_flavour,
8141       bfd_target_tekhex_flavour,
8142       bfd_target_srec_flavour,
8143       bfd_target_verilog_flavour,
8144       bfd_target_ihex_flavour,
8145       bfd_target_som_flavour,
8146       bfd_target_os9k_flavour,
8147       bfd_target_versados_flavour,
8148       bfd_target_msdos_flavour,
8149       bfd_target_ovax_flavour,
8150       bfd_target_evax_flavour,
8151       bfd_target_mmo_flavour,
8152       bfd_target_mach_o_flavour,
8153       bfd_target_pef_flavour,
8154       bfd_target_pef_xlib_flavour,
8155       bfd_target_sym_flavour
8156     };
8157
8158     enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
8159
8160     /* Forward declaration.  */
8161     typedef struct bfd_link_info _bfd_link_info;
8162
8163     /* Forward declaration.  */
8164     typedef struct flag_info flag_info;
8165
8166     typedef void (*bfd_cleanup) (bfd *);
8167
8168     typedef struct bfd_target
8169     {
8170       /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  */
8171       const char *name;
8172
8173      /* The "flavour" of a back end is a general indication about
8174         the contents of a file.  */
8175       enum bfd_flavour flavour;
8176
8177       /* The order of bytes within the data area of a file.  */
8178       enum bfd_endian byteorder;
8179
8180      /* The order of bytes within the header parts of a file.  */
8181       enum bfd_endian header_byteorder;
8182
8183       /* A mask of all the flags which an executable may have set -
8184          from the set `BFD_NO_FLAGS', `HAS_RELOC', ...`D_PAGED'.  */
8185       flagword object_flags;
8186
8187      /* A mask of all the flags which a section may have set - from
8188         the set `SEC_NO_FLAGS', `SEC_ALLOC', ...`SET_NEVER_LOAD'.  */
8189       flagword section_flags;
8190
8191      /* The character normally found at the front of a symbol.
8192         (if any), perhaps `_'.  */
8193       char symbol_leading_char;
8194
8195      /* The pad character for file names within an archive header.  */
8196       char ar_pad_char;
8197
8198       /* The maximum number of characters in an archive header.  */
8199       unsigned char ar_max_namelen;
8200
8201       /* How well this target matches, used to select between various
8202          possible targets when more than one target matches.  */
8203       unsigned char match_priority;
8204
8205      /* TRUE if unused section symbols should be kept.  */
8206       bool keep_unused_section_symbols;
8207
8208       /* Entries for byte swapping for data. These are different from the
8209          other entry points, since they don't take a BFD as the first argument.
8210          Certain other handlers could do the same.  */
8211       uint64_t       (*bfd_getx64) (const void *);
8212       int64_t        (*bfd_getx_signed_64) (const void *);
8213       void           (*bfd_putx64) (uint64_t, void *);
8214       bfd_vma        (*bfd_getx32) (const void *);
8215       bfd_signed_vma (*bfd_getx_signed_32) (const void *);
8216       void           (*bfd_putx32) (bfd_vma, void *);
8217       bfd_vma        (*bfd_getx16) (const void *);
8218       bfd_signed_vma (*bfd_getx_signed_16) (const void *);
8219       void           (*bfd_putx16) (bfd_vma, void *);
8220
8221       /* Byte swapping for the headers.  */
8222       uint64_t       (*bfd_h_getx64) (const void *);
8223       int64_t        (*bfd_h_getx_signed_64) (const void *);
8224       void           (*bfd_h_putx64) (uint64_t, void *);
8225       bfd_vma        (*bfd_h_getx32) (const void *);
8226       bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
8227       void           (*bfd_h_putx32) (bfd_vma, void *);
8228       bfd_vma        (*bfd_h_getx16) (const void *);
8229       bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
8230       void           (*bfd_h_putx16) (bfd_vma, void *);
8231
8232       /* Format dependent routines: these are vectors of entry points
8233          within the target vector structure, one for each format to check.  */
8234
8235       /* Check the format of a file being read.  Return a `bfd_cleanup' on
8236          success or zero on failure.  */
8237       bfd_cleanup (*_bfd_check_format[bfd_type_end]) (bfd *);
8238
8239       /* Set the format of a file being written.  */
8240       bool (*_bfd_set_format[bfd_type_end]) (bfd *);
8241
8242       /* Write cached information into a file being written, at `bfd_close'.  */
8243       bool (*_bfd_write_contents[bfd_type_end]) (bfd *);
8244   The general target vector.  These vectors are initialized using the
8245BFD_JUMP_TABLE macros.
8246
8247       /* Generic entry points.  */
8248     #define BFD_JUMP_TABLE_GENERIC(NAME) \
8249       NAME##_close_and_cleanup, \
8250       NAME##_bfd_free_cached_info, \
8251       NAME##_new_section_hook, \
8252       NAME##_get_section_contents, \
8253       NAME##_get_section_contents_in_window
8254
8255       /* Called when the BFD is being closed to do any necessary cleanup.  */
8256       bool (*_close_and_cleanup) (bfd *);
8257       /* Ask the BFD to free all cached information.  */
8258       bool (*_bfd_free_cached_info) (bfd *);
8259       /* Called when a new section is created.  */
8260       bool (*_new_section_hook) (bfd *, sec_ptr);
8261       /* Read the contents of a section.  */
8262       bool (*_bfd_get_section_contents) (bfd *, sec_ptr, void *, file_ptr,
8263                                          bfd_size_type);
8264       bool (*_bfd_get_section_contents_in_window) (bfd *, sec_ptr, bfd_window *,
8265                                                    file_ptr, bfd_size_type);
8266
8267       /* Entry points to copy private data.  */
8268     #define BFD_JUMP_TABLE_COPY(NAME) \
8269       NAME##_bfd_copy_private_bfd_data, \
8270       NAME##_bfd_merge_private_bfd_data, \
8271       _bfd_generic_init_private_section_data, \
8272       NAME##_bfd_copy_private_section_data, \
8273       NAME##_bfd_copy_private_symbol_data, \
8274       NAME##_bfd_copy_private_header_data, \
8275       NAME##_bfd_set_private_flags, \
8276       NAME##_bfd_print_private_bfd_data
8277
8278       /* Called to copy BFD general private data from one object file
8279          to another.  */
8280       bool (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
8281       /* Called to merge BFD general private data from one object file
8282          to a common output file when linking.  */
8283       bool (*_bfd_merge_private_bfd_data) (bfd *, struct bfd_link_info *);
8284       /* Called to initialize BFD private section data from one object file
8285          to another.  */
8286     #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
8287            BFD_SEND (obfd, _bfd_init_private_section_data, \
8288                      (ibfd, isec, obfd, osec, link_info))
8289       bool (*_bfd_init_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr,
8290                                               struct bfd_link_info *);
8291       /* Called to copy BFD private section data from one object file
8292          to another.  */
8293       bool (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr);
8294       /* Called to copy BFD private symbol data from one symbol
8295          to another.  */
8296       bool (*_bfd_copy_private_symbol_data) (bfd *, asymbol *,
8297                                              bfd *, asymbol *);
8298       /* Called to copy BFD private header data from one object file
8299          to another.  */
8300       bool (*_bfd_copy_private_header_data) (bfd *, bfd *);
8301       /* Called to set private backend flags.  */
8302       bool (*_bfd_set_private_flags) (bfd *, flagword);
8303
8304       /* Called to print private BFD data.  */
8305       bool (*_bfd_print_private_bfd_data) (bfd *, void *);
8306
8307       /* Core file entry points.  */
8308     #define BFD_JUMP_TABLE_CORE(NAME) \
8309       NAME##_core_file_failing_command, \
8310       NAME##_core_file_failing_signal, \
8311       NAME##_core_file_matches_executable_p, \
8312       NAME##_core_file_pid
8313
8314       char *(*_core_file_failing_command) (bfd *);
8315       int   (*_core_file_failing_signal) (bfd *);
8316       bool  (*_core_file_matches_executable_p) (bfd *, bfd *);
8317       int   (*_core_file_pid) (bfd *);
8318
8319       /* Archive entry points.  */
8320     #define BFD_JUMP_TABLE_ARCHIVE(NAME) \
8321       NAME##_slurp_armap, \
8322       NAME##_slurp_extended_name_table, \
8323       NAME##_construct_extended_name_table, \
8324       NAME##_truncate_arname, \
8325       NAME##_write_armap, \
8326       NAME##_read_ar_hdr, \
8327       NAME##_write_ar_hdr, \
8328       NAME##_openr_next_archived_file, \
8329       NAME##_get_elt_at_index, \
8330       NAME##_generic_stat_arch_elt, \
8331       NAME##_update_armap_timestamp
8332
8333       bool (*_bfd_slurp_armap) (bfd *);
8334       bool (*_bfd_slurp_extended_name_table) (bfd *);
8335       bool (*_bfd_construct_extended_name_table) (bfd *, char **,
8336                                                   bfd_size_type *,
8337                                                   const char **);
8338       void (*_bfd_truncate_arname) (bfd *, const char *, char *);
8339       bool (*write_armap) (bfd *, unsigned, struct orl *, unsigned, int);
8340       void *(*_bfd_read_ar_hdr_fn) (bfd *);
8341       bool (*_bfd_write_ar_hdr_fn) (bfd *, bfd *);
8342       bfd *(*openr_next_archived_file) (bfd *, bfd *);
8343     #define bfd_get_elt_at_index(b,i) \
8344            BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
8345       bfd *(*_bfd_get_elt_at_index) (bfd *, symindex);
8346       int  (*_bfd_stat_arch_elt) (bfd *, struct stat *);
8347       bool (*_bfd_update_armap_timestamp) (bfd *);
8348
8349       /* Entry points used for symbols.  */
8350     #define BFD_JUMP_TABLE_SYMBOLS(NAME) \
8351       NAME##_get_symtab_upper_bound, \
8352       NAME##_canonicalize_symtab, \
8353       NAME##_make_empty_symbol, \
8354       NAME##_print_symbol, \
8355       NAME##_get_symbol_info, \
8356       NAME##_get_symbol_version_string, \
8357       NAME##_bfd_is_local_label_name, \
8358       NAME##_bfd_is_target_special_symbol, \
8359       NAME##_get_lineno, \
8360       NAME##_find_nearest_line, \
8361       NAME##_find_line, \
8362       NAME##_find_inliner_info, \
8363       NAME##_bfd_make_debug_symbol, \
8364       NAME##_read_minisymbols, \
8365       NAME##_minisymbol_to_symbol
8366
8367       long (*_bfd_get_symtab_upper_bound) (bfd *);
8368       long (*_bfd_canonicalize_symtab) (bfd *, struct bfd_symbol **);
8369       struct bfd_symbol *
8370            (*_bfd_make_empty_symbol) (bfd *);
8371       void (*_bfd_print_symbol) (bfd *, void *, struct bfd_symbol *,
8372                                  bfd_print_symbol_type);
8373     #define bfd_print_symbol(b,p,s,e) \
8374            BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
8375       void  (*_bfd_get_symbol_info) (bfd *, struct bfd_symbol *, symbol_info *);
8376     #define bfd_get_symbol_info(b,p,e) \
8377            BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
8378       const char *
8379            (*_bfd_get_symbol_version_string) (bfd *, struct bfd_symbol *,
8380                                               bool, bool *);
8381     #define bfd_get_symbol_version_string(b,s,p,h) \
8382            BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,p,h))
8383       bool (*_bfd_is_local_label_name) (bfd *, const char *);
8384       bool (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
8385       alent *
8386            (*_get_lineno) (bfd *, struct bfd_symbol *);
8387       bool (*_bfd_find_nearest_line) (bfd *, struct bfd_symbol **,
8388                                       struct bfd_section *, bfd_vma,
8389                                       const char **, const char **,
8390                                       unsigned int *, unsigned int *);
8391       bool (*_bfd_find_line) (bfd *, struct bfd_symbol **,
8392                               struct bfd_symbol *, const char **,
8393                               unsigned int *);
8394       bool (*_bfd_find_inliner_info)
8395         (bfd *, const char **, const char **, unsigned int *);
8396      /* Back-door to allow format-aware applications to create debug symbols
8397         while using BFD for everything else.  Currently used by the assembler
8398         when creating COFF files.  */
8399       asymbol *
8400            (*_bfd_make_debug_symbol) (bfd *, void *, unsigned long size);
8401     #define bfd_read_minisymbols(b, d, m, s) \
8402            BFD_SEND (b, _read_minisymbols, (b, d, m, s))
8403       long (*_read_minisymbols) (bfd *, bool, void **, unsigned int *);
8404     #define bfd_minisymbol_to_symbol(b, d, m, f) \
8405            BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
8406       asymbol *
8407            (*_minisymbol_to_symbol) (bfd *, bool, const void *, asymbol *);
8408
8409       /* Routines for relocs.  */
8410     #define BFD_JUMP_TABLE_RELOCS(NAME) \
8411       NAME##_get_reloc_upper_bound, \
8412       NAME##_canonicalize_reloc, \
8413       NAME##_set_reloc, \
8414       NAME##_bfd_reloc_type_lookup, \
8415       NAME##_bfd_reloc_name_lookup
8416
8417       long (*_get_reloc_upper_bound) (bfd *, sec_ptr);
8418       long (*_bfd_canonicalize_reloc) (bfd *, sec_ptr, arelent **,
8419                                        struct bfd_symbol **);
8420       void (*_bfd_set_reloc) (bfd *, sec_ptr, arelent **, unsigned int);
8421       /* See documentation on reloc types.  */
8422       reloc_howto_type *
8423            (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
8424       reloc_howto_type *
8425            (*reloc_name_lookup) (bfd *, const char *);
8426
8427       /* Routines used when writing an object file.  */
8428     #define BFD_JUMP_TABLE_WRITE(NAME) \
8429       NAME##_set_arch_mach, \
8430       NAME##_set_section_contents
8431
8432       bool (*_bfd_set_arch_mach) (bfd *, enum bfd_architecture,
8433                                          unsigned long);
8434       bool (*_bfd_set_section_contents) (bfd *, sec_ptr, const void *,
8435                                          file_ptr, bfd_size_type);
8436
8437       /* Routines used by the linker.  */
8438     #define BFD_JUMP_TABLE_LINK(NAME) \
8439       NAME##_sizeof_headers, \
8440       NAME##_bfd_get_relocated_section_contents, \
8441       NAME##_bfd_relax_section, \
8442       NAME##_bfd_link_hash_table_create, \
8443       NAME##_bfd_link_add_symbols, \
8444       NAME##_bfd_link_just_syms, \
8445       NAME##_bfd_copy_link_hash_symbol_type, \
8446       NAME##_bfd_final_link, \
8447       NAME##_bfd_link_split_section, \
8448       NAME##_bfd_link_check_relocs, \
8449       NAME##_bfd_gc_sections, \
8450       NAME##_bfd_lookup_section_flags, \
8451       NAME##_bfd_merge_sections, \
8452       NAME##_bfd_is_group_section, \
8453       NAME##_bfd_group_name, \
8454       NAME##_bfd_discard_group, \
8455       NAME##_section_already_linked, \
8456       NAME##_bfd_define_common_symbol, \
8457       NAME##_bfd_link_hide_symbol, \
8458       NAME##_bfd_define_start_stop
8459
8460       int  (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
8461       bfd_byte *
8462            (*_bfd_get_relocated_section_contents) (bfd *,
8463                                                    struct bfd_link_info *,
8464                                                    struct bfd_link_order *,
8465                                                    bfd_byte *, bool,
8466                                                    struct bfd_symbol **);
8467
8468       bool (*_bfd_relax_section) (bfd *, struct bfd_section *,
8469                                   struct bfd_link_info *, bool *);
8470
8471       /* Create a hash table for the linker.  Different backends store
8472          different information in this table.  */
8473       struct bfd_link_hash_table *
8474            (*_bfd_link_hash_table_create) (bfd *);
8475
8476       /* Add symbols from this object file into the hash table.  */
8477       bool (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
8478
8479       /* Indicate that we are only retrieving symbol values from this section.  */
8480       void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
8481
8482       /* Copy the symbol type and other attributes for a linker script
8483          assignment of one symbol to another.  */
8484     #define bfd_copy_link_hash_symbol_type(b, t, f) \
8485            BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
8486       void (*_bfd_copy_link_hash_symbol_type) (bfd *,
8487                                                struct bfd_link_hash_entry *,
8488                                                struct bfd_link_hash_entry *);
8489
8490       /* Do a link based on the link_order structures attached to each
8491          section of the BFD.  */
8492       bool (*_bfd_final_link) (bfd *, struct bfd_link_info *);
8493
8494       /* Should this section be split up into smaller pieces during linking.  */
8495       bool (*_bfd_link_split_section) (bfd *, struct bfd_section *);
8496
8497       /* Check the relocations in the bfd for validity.  */
8498       bool (* _bfd_link_check_relocs)(bfd *, struct bfd_link_info *);
8499
8500       /* Remove sections that are not referenced from the output.  */
8501       bool (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
8502
8503       /* Sets the bitmask of allowed and disallowed section flags.  */
8504       bool (*_bfd_lookup_section_flags) (struct bfd_link_info *,
8505                                          struct flag_info *, asection *);
8506
8507       /* Attempt to merge SEC_MERGE sections.  */
8508       bool (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
8509
8510       /* Is this section a member of a group?  */
8511       bool (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
8512
8513       /* The group name, if section is a member of a group.  */
8514       const char *(*_bfd_group_name) (bfd *, const struct bfd_section *);
8515
8516       /* Discard members of a group.  */
8517       bool (*_bfd_discard_group) (bfd *, struct bfd_section *);
8518
8519       /* Check if SEC has been already linked during a reloceatable or
8520          final link.  */
8521       bool (*_section_already_linked) (bfd *, asection *,
8522                                        struct bfd_link_info *);
8523
8524       /* Define a common symbol.  */
8525       bool (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *,
8526                                          struct bfd_link_hash_entry *);
8527
8528       /* Hide a symbol.  */
8529       void (*_bfd_link_hide_symbol) (bfd *, struct bfd_link_info *,
8530                                      struct bfd_link_hash_entry *);
8531
8532       /* Define a __start, __stop, .startof. or .sizeof. symbol.  */
8533       struct bfd_link_hash_entry *
8534            (*_bfd_define_start_stop) (struct bfd_link_info *, const char *,
8535                                       asection *);
8536
8537       /* Routines to handle dynamic symbols and relocs.  */
8538     #define BFD_JUMP_TABLE_DYNAMIC(NAME) \
8539       NAME##_get_dynamic_symtab_upper_bound, \
8540       NAME##_canonicalize_dynamic_symtab, \
8541       NAME##_get_synthetic_symtab, \
8542       NAME##_get_dynamic_reloc_upper_bound, \
8543       NAME##_canonicalize_dynamic_reloc
8544
8545       /* Get the amount of memory required to hold the dynamic symbols.  */
8546       long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
8547       /* Read in the dynamic symbols.  */
8548       long (*_bfd_canonicalize_dynamic_symtab) (bfd *, struct bfd_symbol **);
8549       /* Create synthetized symbols.  */
8550       long (*_bfd_get_synthetic_symtab) (bfd *, long, struct bfd_symbol **,
8551                                          long, struct bfd_symbol **,
8552                                          struct bfd_symbol **);
8553       /* Get the amount of memory required to hold the dynamic relocs.  */
8554       long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
8555       /* Read in the dynamic relocs.  */
8556       long (*_bfd_canonicalize_dynamic_reloc) (bfd *, arelent **,
8557                                                struct bfd_symbol **);
8558   A pointer to an alternative bfd_target in case the current one is not
8559satisfactory.  This can happen when the target cpu supports both big
8560and little endian code, and target chosen by the linker has the wrong
8561endianness.  The function open_output() in ld/ldlang.c uses this field
8562to find an alternative output format that is suitable.
8563       /* Opposite endian version of this target.  */
8564       const struct bfd_target *alternative_target;
8565
8566       /* Data for use by back-end routines, which isn't
8567          generic enough to belong in this structure.  */
8568       const void *backend_data;
8569
8570     } bfd_target;
8571
8572     static inline const char *
8573     bfd_get_target (const bfd *abfd)
8574     {
8575       return abfd->xvec->name;
8576     }
8577
8578     static inline enum bfd_flavour
8579     bfd_get_flavour (const bfd *abfd)
8580     {
8581       return abfd->xvec->flavour;
8582     }
8583
8584     static inline flagword
8585     bfd_applicable_file_flags (const bfd *abfd)
8586     {
8587       return abfd->xvec->object_flags;
8588     }
8589
8590     static inline bool
8591     bfd_family_coff (const bfd *abfd)
8592     {
8593       return (bfd_get_flavour (abfd) == bfd_target_coff_flavour
8594               || bfd_get_flavour (abfd) == bfd_target_xcoff_flavour);
8595     }
8596
8597     static inline bool
8598     bfd_big_endian (const bfd *abfd)
8599     {
8600       return abfd->xvec->byteorder == BFD_ENDIAN_BIG;
8601     }
8602     static inline bool
8603     bfd_little_endian (const bfd *abfd)
8604     {
8605       return abfd->xvec->byteorder == BFD_ENDIAN_LITTLE;
8606     }
8607
8608     static inline bool
8609     bfd_header_big_endian (const bfd *abfd)
8610     {
8611       return abfd->xvec->header_byteorder == BFD_ENDIAN_BIG;
8612     }
8613
8614     static inline bool
8615     bfd_header_little_endian (const bfd *abfd)
8616     {
8617       return abfd->xvec->header_byteorder == BFD_ENDIAN_LITTLE;
8618     }
8619
8620     static inline flagword
8621     bfd_applicable_section_flags (const bfd *abfd)
8622     {
8623       return abfd->xvec->section_flags;
8624     }
8625
8626     static inline char
8627     bfd_get_symbol_leading_char (const bfd *abfd)
8628     {
8629       return abfd->xvec->symbol_leading_char;
8630     }
8631
8632     static inline enum bfd_flavour
8633     bfd_asymbol_flavour (const asymbol *sy)
8634     {
8635       if ((sy->flags & BSF_SYNTHETIC) != 0)
8636         return bfd_target_unknown_flavour;
8637       return sy->the_bfd->xvec->flavour;
8638     }
8639
8640     static inline bool
8641     bfd_keep_unused_section_symbols (const bfd *abfd)
8642     {
8643       return abfd->xvec->keep_unused_section_symbols;
8644     }
8645
86462.12.1.1 `bfd_set_default_target'
8647.................................
8648
8649*Synopsis*
8650     bool bfd_set_default_target (const char *name);
8651   *Description*
8652Set the default target vector to use when recognizing a BFD.  This
8653takes the name of the target, which may be a BFD target name or a
8654configuration triplet.
8655
86562.12.1.2 `bfd_find_target'
8657..........................
8658
8659*Synopsis*
8660     const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
8661   *Description*
8662Return a pointer to the transfer vector for the object target named
8663TARGET_NAME.  If TARGET_NAME is `NULL', choose the one in the
8664environment variable `GNUTARGET'; if that is null or not defined, then
8665choose the first entry in the target list.  Passing in the string
8666"default" or setting the environment variable to "default" will cause
8667the first entry in the target list to be returned, and
8668"target_defaulted" will be set in the BFD if ABFD isn't `NULL'.  This
8669causes `bfd_check_format' to loop over all the targets to find the one
8670that matches the file being read.
8671
86722.12.1.3 `bfd_get_target_info'
8673..............................
8674
8675*Synopsis*
8676     const bfd_target *bfd_get_target_info (const char *target_name,
8677         bfd *abfd,
8678         bool *is_bigendian,
8679         int *underscoring,
8680         const char **def_target_arch);
8681   *Description*
8682Return a pointer to the transfer vector for the object target named
8683TARGET_NAME.  If TARGET_NAME is `NULL', choose the one in the
8684environment variable `GNUTARGET'; if that is null or not defined, then
8685choose the first entry in the target list.  Passing in the string
8686"default" or setting the environment variable to "default" will cause
8687the first entry in the target list to be returned, and
8688"target_defaulted" will be set in the BFD if ABFD isn't `NULL'.  This
8689causes `bfd_check_format' to loop over all the targets to find the one
8690that matches the file being read.  If IS_BIGENDIAN is not `NULL', then
8691set this value to target's endian mode. True for big-endian, FALSE for
8692little-endian or for invalid target.  If UNDERSCORING is not `NULL',
8693then set this value to target's underscoring mode. Zero for
8694none-underscoring, -1 for invalid target, else the value of target
8695vector's symbol underscoring.  If DEF_TARGET_ARCH is not `NULL', then
8696set it to the architecture string specified by the target_name.
8697
86982.12.1.4 `bfd_target_list'
8699..........................
8700
8701*Synopsis*
8702     const char ** bfd_target_list (void);
8703   *Description*
8704Return a freshly malloced NULL-terminated vector of the names of all
8705the valid BFD targets. Do not modify the names.
8706
87072.12.1.5 `bfd_iterate_over_targets'
8708...................................
8709
8710*Synopsis*
8711     const bfd_target *bfd_iterate_over_targets
8712        (int (*func) (const bfd_target *, void *),
8713         void *data);
8714   *Description*
8715Call FUNC for each target in the list of BFD target vectors, passing
8716DATA to FUNC.  Stop iterating if FUNC returns a non-zero result, and
8717return that target vector.  Return NULL if FUNC always returns zero.
8718
87192.12.1.6 `bfd_flavour_name'
8720...........................
8721
8722*Synopsis*
8723     const char *bfd_flavour_name (enum bfd_flavour flavour);
8724   *Description*
8725Return the string form of FLAVOUR.
8726
8727
8728File: bfd.info,  Node: Architectures,  Next: Opening and Closing,  Prev: Targets,  Up: BFD front end
8729
87302.13 Architectures
8731==================
8732
8733BFD keeps one atom in a BFD describing the architecture of the data
8734attached to the BFD: a pointer to a `bfd_arch_info_type'.
8735
8736   Pointers to structures can be requested independently of a BFD so
8737that an architecture's information can be interrogated without access
8738to an open BFD.
8739
8740   The architecture information is provided by each architecture
8741package.  The set of default architectures is selected by the macro
8742`SELECT_ARCHITECTURES'.  This is normally set up in the
8743`config/TARGET.mt' file of your choice.  If the name is not defined,
8744then all the architectures supported are included.
8745
8746   When BFD starts up, all the architectures are called with an
8747initialize method.  It is up to the architecture back end to insert as
8748many items into the list of architectures as it wants to; generally
8749this would be one for each machine and one for the default case (an
8750item with a machine field of 0).
8751
8752   BFD's idea of an architecture is implemented in `archures.c'.
8753
87542.13.1 bfd_architecture
8755-----------------------
8756
8757*Description*
8758This enum gives the object file's CPU architecture, in a global
8759sense--i.e., what processor family does it belong to?  Another field
8760indicates which processor within the family is in use.  The machine
8761gives a number which distinguishes different versions of the
8762architecture, containing, for example, 68020 for Motorola 68020.
8763     enum bfd_architecture
8764     {
8765       bfd_arch_unknown,   /* File arch not known.  */
8766       bfd_arch_obscure,   /* Arch known, not one of these.  */
8767       bfd_arch_m68k,      /* Motorola 68xxx.  */
8768     #define bfd_mach_m68000                1
8769     #define bfd_mach_m68008                2
8770     #define bfd_mach_m68010                3
8771     #define bfd_mach_m68020                4
8772     #define bfd_mach_m68030                5
8773     #define bfd_mach_m68040                6
8774     #define bfd_mach_m68060                7
8775     #define bfd_mach_cpu32                 8
8776     #define bfd_mach_fido                  9
8777     #define bfd_mach_mcf_isa_a_nodiv       10
8778     #define bfd_mach_mcf_isa_a             11
8779     #define bfd_mach_mcf_isa_a_mac         12
8780     #define bfd_mach_mcf_isa_a_emac        13
8781     #define bfd_mach_mcf_isa_aplus         14
8782     #define bfd_mach_mcf_isa_aplus_mac     15
8783     #define bfd_mach_mcf_isa_aplus_emac    16
8784     #define bfd_mach_mcf_isa_b_nousp       17
8785     #define bfd_mach_mcf_isa_b_nousp_mac   18
8786     #define bfd_mach_mcf_isa_b_nousp_emac  19
8787     #define bfd_mach_mcf_isa_b             20
8788     #define bfd_mach_mcf_isa_b_mac         21
8789     #define bfd_mach_mcf_isa_b_emac        22
8790     #define bfd_mach_mcf_isa_b_float       23
8791     #define bfd_mach_mcf_isa_b_float_mac   24
8792     #define bfd_mach_mcf_isa_b_float_emac  25
8793     #define bfd_mach_mcf_isa_c             26
8794     #define bfd_mach_mcf_isa_c_mac         27
8795     #define bfd_mach_mcf_isa_c_emac        28
8796     #define bfd_mach_mcf_isa_c_nodiv       29
8797     #define bfd_mach_mcf_isa_c_nodiv_mac   30
8798     #define bfd_mach_mcf_isa_c_nodiv_emac  31
8799       bfd_arch_vax,       /* DEC Vax.  */
8800
8801       bfd_arch_or1k,      /* OpenRISC 1000.  */
8802     #define bfd_mach_or1k          1
8803     #define bfd_mach_or1knd        2
8804
8805       bfd_arch_sparc,     /* SPARC.  */
8806     #define bfd_mach_sparc                 1
8807     /* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
8808     #define bfd_mach_sparc_sparclet        2
8809     #define bfd_mach_sparc_sparclite       3
8810     #define bfd_mach_sparc_v8plus          4
8811     #define bfd_mach_sparc_v8plusa         5 /* with ultrasparc add'ns.  */
8812     #define bfd_mach_sparc_sparclite_le    6
8813     #define bfd_mach_sparc_v9              7
8814     #define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
8815     #define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
8816     #define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
8817     #define bfd_mach_sparc_v8plusc         11 /* with UA2005 and T1 add'ns.  */
8818     #define bfd_mach_sparc_v9c             12 /* with UA2005 and T1 add'ns.  */
8819     #define bfd_mach_sparc_v8plusd         13 /* with UA2007 and T3 add'ns.  */
8820     #define bfd_mach_sparc_v9d             14 /* with UA2007 and T3 add'ns.  */
8821     #define bfd_mach_sparc_v8pluse         15 /* with OSA2001 and T4 add'ns (no IMA).  */
8822     #define bfd_mach_sparc_v9e             16 /* with OSA2001 and T4 add'ns (no IMA).  */
8823     #define bfd_mach_sparc_v8plusv         17 /* with OSA2011 and T4 and IMA and FJMAU add'ns.  */
8824     #define bfd_mach_sparc_v9v             18 /* with OSA2011 and T4 and IMA and FJMAU add'ns.  */
8825     #define bfd_mach_sparc_v8plusm         19 /* with OSA2015 and M7 add'ns.  */
8826     #define bfd_mach_sparc_v9m             20 /* with OSA2015 and M7 add'ns.  */
8827     #define bfd_mach_sparc_v8plusm8        21 /* with OSA2017 and M8 add'ns.  */
8828     #define bfd_mach_sparc_v9m8            22 /* with OSA2017 and M8 add'ns.  */
8829     /* Nonzero if MACH has the v9 instruction set.  */
8830     #define bfd_mach_sparc_v9_p(mach) \
8831       ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m8 \
8832        && (mach) != bfd_mach_sparc_sparclite_le)
8833     /* Nonzero if MACH is a 64 bit sparc architecture.  */
8834     #define bfd_mach_sparc_64bit_p(mach) \
8835       ((mach) >= bfd_mach_sparc_v9 \
8836        && (mach) != bfd_mach_sparc_v8plusb \
8837        && (mach) != bfd_mach_sparc_v8plusc \
8838        && (mach) != bfd_mach_sparc_v8plusd \
8839        && (mach) != bfd_mach_sparc_v8pluse \
8840        && (mach) != bfd_mach_sparc_v8plusv \
8841        && (mach) != bfd_mach_sparc_v8plusm \
8842        && (mach) != bfd_mach_sparc_v8plusm8)
8843       bfd_arch_spu,       /* PowerPC SPU.  */
8844     #define bfd_mach_spu           256
8845       bfd_arch_mips,      /* MIPS Rxxxx.  */
8846     #define bfd_mach_mips3000              3000
8847     #define bfd_mach_mips3900              3900
8848     #define bfd_mach_mips4000              4000
8849     #define bfd_mach_mips4010              4010
8850     #define bfd_mach_mips4100              4100
8851     #define bfd_mach_mips4111              4111
8852     #define bfd_mach_mips4120              4120
8853     #define bfd_mach_mips4300              4300
8854     #define bfd_mach_mips4400              4400
8855     #define bfd_mach_mips4600              4600
8856     #define bfd_mach_mips4650              4650
8857     #define bfd_mach_mips5000              5000
8858     #define bfd_mach_mips5400              5400
8859     #define bfd_mach_mips5500              5500
8860     #define bfd_mach_mips5900              5900
8861     #define bfd_mach_mips6000              6000
8862     #define bfd_mach_mips7000              7000
8863     #define bfd_mach_mips8000              8000
8864     #define bfd_mach_mips9000              9000
8865     #define bfd_mach_mips10000             10000
8866     #define bfd_mach_mips12000             12000
8867     #define bfd_mach_mips14000             14000
8868     #define bfd_mach_mips16000             16000
8869     #define bfd_mach_mips16                16
8870     #define bfd_mach_mips5                 5
8871     #define bfd_mach_mips_loongson_2e      3001
8872     #define bfd_mach_mips_loongson_2f      3002
8873     #define bfd_mach_mips_gs464            3003
8874     #define bfd_mach_mips_gs464e           3004
8875     #define bfd_mach_mips_gs264e           3005
8876     #define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01.  */
8877     #define bfd_mach_mips_octeon           6501
8878     #define bfd_mach_mips_octeonp          6601
8879     #define bfd_mach_mips_octeon2          6502
8880     #define bfd_mach_mips_octeon3          6503
8881     #define bfd_mach_mips_xlr              887682   /* decimal 'XLR'.  */
8882     #define bfd_mach_mips_interaptiv_mr2   736550   /* decimal 'IA2'.  */
8883     #define bfd_mach_mipsisa32             32
8884     #define bfd_mach_mipsisa32r2           33
8885     #define bfd_mach_mipsisa32r3           34
8886     #define bfd_mach_mipsisa32r5           36
8887     #define bfd_mach_mipsisa32r6           37
8888     #define bfd_mach_mipsisa64             64
8889     #define bfd_mach_mipsisa64r2           65
8890     #define bfd_mach_mipsisa64r3           66
8891     #define bfd_mach_mipsisa64r5           68
8892     #define bfd_mach_mipsisa64r6           69
8893     #define bfd_mach_mips_micromips        96
8894       bfd_arch_i386,      /* Intel 386.  */
8895     #define bfd_mach_i386_intel_syntax     (1 << 0)
8896     #define bfd_mach_i386_i8086            (1 << 1)
8897     #define bfd_mach_i386_i386             (1 << 2)
8898     #define bfd_mach_x86_64                (1 << 3)
8899     #define bfd_mach_x64_32                (1 << 4)
8900     #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax)
8901     #define bfd_mach_x86_64_intel_syntax   (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax)
8902     #define bfd_mach_x64_32_intel_syntax   (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax)
8903       bfd_arch_iamcu,     /* Intel MCU.  */
8904     #define bfd_mach_iamcu                 (1 << 8)
8905     #define bfd_mach_i386_iamcu            (bfd_mach_i386_i386 | bfd_mach_iamcu)
8906     #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax)
8907       bfd_arch_romp,      /* IBM ROMP PC/RT.  */
8908       bfd_arch_convex,    /* Convex.  */
8909       bfd_arch_m98k,      /* Motorola 98xxx.  */
8910       bfd_arch_pyramid,   /* Pyramid Technology.  */
8911       bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300).  */
8912     #define bfd_mach_h8300         1
8913     #define bfd_mach_h8300h        2
8914     #define bfd_mach_h8300s        3
8915     #define bfd_mach_h8300hn       4
8916     #define bfd_mach_h8300sn       5
8917     #define bfd_mach_h8300sx       6
8918     #define bfd_mach_h8300sxn      7
8919       bfd_arch_pdp11,     /* DEC PDP-11.  */
8920       bfd_arch_powerpc,   /* PowerPC.  */
8921     #define bfd_mach_ppc           32
8922     #define bfd_mach_ppc64         64
8923     #define bfd_mach_ppc_403       403
8924     #define bfd_mach_ppc_403gc     4030
8925     #define bfd_mach_ppc_405       405
8926     #define bfd_mach_ppc_505       505
8927     #define bfd_mach_ppc_601       601
8928     #define bfd_mach_ppc_602       602
8929     #define bfd_mach_ppc_603       603
8930     #define bfd_mach_ppc_ec603e    6031
8931     #define bfd_mach_ppc_604       604
8932     #define bfd_mach_ppc_620       620
8933     #define bfd_mach_ppc_630       630
8934     #define bfd_mach_ppc_750       750
8935     #define bfd_mach_ppc_860       860
8936     #define bfd_mach_ppc_a35       35
8937     #define bfd_mach_ppc_rs64ii    642
8938     #define bfd_mach_ppc_rs64iii   643
8939     #define bfd_mach_ppc_7400      7400
8940     #define bfd_mach_ppc_e500      500
8941     #define bfd_mach_ppc_e500mc    5001
8942     #define bfd_mach_ppc_e500mc64  5005
8943     #define bfd_mach_ppc_e5500     5006
8944     #define bfd_mach_ppc_e6500     5007
8945     #define bfd_mach_ppc_titan     83
8946     #define bfd_mach_ppc_vle       84
8947       bfd_arch_rs6000,    /* IBM RS/6000.  */
8948     #define bfd_mach_rs6k          6000
8949     #define bfd_mach_rs6k_rs1      6001
8950     #define bfd_mach_rs6k_rsc      6003
8951     #define bfd_mach_rs6k_rs2      6002
8952       bfd_arch_hppa,      /* HP PA RISC.  */
8953     #define bfd_mach_hppa10        10
8954     #define bfd_mach_hppa11        11
8955     #define bfd_mach_hppa20        20
8956     #define bfd_mach_hppa20w       25
8957       bfd_arch_d10v,      /* Mitsubishi D10V.  */
8958     #define bfd_mach_d10v          1
8959     #define bfd_mach_d10v_ts2      2
8960     #define bfd_mach_d10v_ts3      3
8961       bfd_arch_d30v,      /* Mitsubishi D30V.  */
8962       bfd_arch_dlx,       /* DLX.  */
8963       bfd_arch_m68hc11,   /* Motorola 68HC11.  */
8964       bfd_arch_m68hc12,   /* Motorola 68HC12.  */
8965     #define bfd_mach_m6812_default 0
8966     #define bfd_mach_m6812         1
8967     #define bfd_mach_m6812s        2
8968       bfd_arch_m9s12x,    /* Freescale S12X.  */
8969       bfd_arch_m9s12xg,   /* Freescale XGATE.  */
8970       bfd_arch_s12z,    /* Freescale S12Z.  */
8971     #define bfd_mach_s12z_default 0
8972       bfd_arch_z8k,       /* Zilog Z8000.  */
8973     #define bfd_mach_z8001         1
8974     #define bfd_mach_z8002         2
8975       bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH).  */
8976     #define bfd_mach_sh                            1
8977     #define bfd_mach_sh2                           0x20
8978     #define bfd_mach_sh_dsp                        0x2d
8979     #define bfd_mach_sh2a                          0x2a
8980     #define bfd_mach_sh2a_nofpu                    0x2b
8981     #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
8982     #define bfd_mach_sh2a_nofpu_or_sh3_nommu       0x2a2
8983     #define bfd_mach_sh2a_or_sh4                   0x2a3
8984     #define bfd_mach_sh2a_or_sh3e                  0x2a4
8985     #define bfd_mach_sh2e                          0x2e
8986     #define bfd_mach_sh3                           0x30
8987     #define bfd_mach_sh3_nommu                     0x31
8988     #define bfd_mach_sh3_dsp                       0x3d
8989     #define bfd_mach_sh3e                          0x3e
8990     #define bfd_mach_sh4                           0x40
8991     #define bfd_mach_sh4_nofpu                     0x41
8992     #define bfd_mach_sh4_nommu_nofpu               0x42
8993     #define bfd_mach_sh4a                          0x4a
8994     #define bfd_mach_sh4a_nofpu                    0x4b
8995     #define bfd_mach_sh4al_dsp                     0x4d
8996       bfd_arch_alpha,     /* Dec Alpha.  */
8997     #define bfd_mach_alpha_ev4     0x10
8998     #define bfd_mach_alpha_ev5     0x20
8999     #define bfd_mach_alpha_ev6     0x30
9000       bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
9001     #define bfd_mach_arm_unknown   0
9002     #define bfd_mach_arm_2         1
9003     #define bfd_mach_arm_2a        2
9004     #define bfd_mach_arm_3         3
9005     #define bfd_mach_arm_3M        4
9006     #define bfd_mach_arm_4         5
9007     #define bfd_mach_arm_4T        6
9008     #define bfd_mach_arm_5         7
9009     #define bfd_mach_arm_5T        8
9010     #define bfd_mach_arm_5TE       9
9011     #define bfd_mach_arm_XScale    10
9012     #define bfd_mach_arm_ep9312    11
9013     #define bfd_mach_arm_iWMMXt    12
9014     #define bfd_mach_arm_iWMMXt2   13
9015     #define bfd_mach_arm_5TEJ      14
9016     #define bfd_mach_arm_6         15
9017     #define bfd_mach_arm_6KZ       16
9018     #define bfd_mach_arm_6T2       17
9019     #define bfd_mach_arm_6K        18
9020     #define bfd_mach_arm_7         19
9021     #define bfd_mach_arm_6M        20
9022     #define bfd_mach_arm_6SM       21
9023     #define bfd_mach_arm_7EM       22
9024     #define bfd_mach_arm_8         23
9025     #define bfd_mach_arm_8R        24
9026     #define bfd_mach_arm_8M_BASE   25
9027     #define bfd_mach_arm_8M_MAIN   26
9028     #define bfd_mach_arm_8_1M_MAIN 27
9029     #define bfd_mach_arm_9         28
9030       bfd_arch_nds32,     /* Andes NDS32.  */
9031     #define bfd_mach_n1            1
9032     #define bfd_mach_n1h           2
9033     #define bfd_mach_n1h_v2        3
9034     #define bfd_mach_n1h_v3        4
9035     #define bfd_mach_n1h_v3m       5
9036       bfd_arch_ns32k,     /* National Semiconductors ns32000.  */
9037       bfd_arch_tic30,     /* Texas Instruments TMS320C30.  */
9038       bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X.  */
9039     #define bfd_mach_tic3x         30
9040     #define bfd_mach_tic4x         40
9041       bfd_arch_tic54x,    /* Texas Instruments TMS320C54X.  */
9042       bfd_arch_tic6x,     /* Texas Instruments TMS320C6X.  */
9043       bfd_arch_v850,      /* NEC V850.  */
9044       bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI).  */
9045     #define bfd_mach_v850          1
9046     #define bfd_mach_v850e         'E'
9047     #define bfd_mach_v850e1        '1'
9048     #define bfd_mach_v850e2        0x4532
9049     #define bfd_mach_v850e2v3      0x45325633
9050     #define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5').  */
9051       bfd_arch_arc,       /* ARC Cores.  */
9052     #define bfd_mach_arc_a4        0
9053     #define bfd_mach_arc_a5        1
9054     #define bfd_mach_arc_arc600    2
9055     #define bfd_mach_arc_arc601    4
9056     #define bfd_mach_arc_arc700    3
9057     #define bfd_mach_arc_arcv2     5
9058      bfd_arch_m32c,       /* Renesas M16C/M32C.  */
9059     #define bfd_mach_m16c          0x75
9060     #define bfd_mach_m32c          0x78
9061       bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D).  */
9062     #define bfd_mach_m32r          1 /* For backwards compatibility.  */
9063     #define bfd_mach_m32rx         'x'
9064     #define bfd_mach_m32r2         '2'
9065       bfd_arch_mn10200,   /* Matsushita MN10200.  */
9066       bfd_arch_mn10300,   /* Matsushita MN10300.  */
9067     #define bfd_mach_mn10300       300
9068     #define bfd_mach_am33          330
9069     #define bfd_mach_am33_2        332
9070       bfd_arch_fr30,
9071     #define bfd_mach_fr30          0x46523330
9072       bfd_arch_frv,
9073     #define bfd_mach_frv           1
9074     #define bfd_mach_frvsimple     2
9075     #define bfd_mach_fr300         300
9076     #define bfd_mach_fr400         400
9077     #define bfd_mach_fr450         450
9078     #define bfd_mach_frvtomcat     499     /* fr500 prototype.  */
9079     #define bfd_mach_fr500         500
9080     #define bfd_mach_fr550         550
9081       bfd_arch_moxie,     /* The moxie processor.  */
9082     #define bfd_mach_moxie         1
9083       bfd_arch_ft32,      /* The ft32 processor.  */
9084     #define bfd_mach_ft32          1
9085     #define bfd_mach_ft32b         2
9086       bfd_arch_mcore,
9087       bfd_arch_mep,
9088     #define bfd_mach_mep           1
9089     #define bfd_mach_mep_h1        0x6831
9090     #define bfd_mach_mep_c5        0x6335
9091       bfd_arch_metag,
9092     #define bfd_mach_metag         1
9093       bfd_arch_ia64,      /* HP/Intel ia64.  */
9094     #define bfd_mach_ia64_elf64    64
9095     #define bfd_mach_ia64_elf32    32
9096       bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
9097     #define bfd_mach_ip2022        1
9098     #define bfd_mach_ip2022ext     2
9099      bfd_arch_iq2000,     /* Vitesse IQ2000.  */
9100     #define bfd_mach_iq2000        1
9101     #define bfd_mach_iq10          2
9102       bfd_arch_bpf,       /* Linux eBPF.  */
9103     #define bfd_mach_bpf           1
9104     #define bfd_mach_xbpf          2
9105       bfd_arch_epiphany,  /* Adapteva EPIPHANY.  */
9106     #define bfd_mach_epiphany16    1
9107     #define bfd_mach_epiphany32    2
9108       bfd_arch_mt,
9109     #define bfd_mach_ms1           1
9110     #define bfd_mach_mrisc2        2
9111     #define bfd_mach_ms2           3
9112       bfd_arch_pj,
9113       bfd_arch_avr,       /* Atmel AVR microcontrollers.  */
9114     #define bfd_mach_avr1          1
9115     #define bfd_mach_avr2          2
9116     #define bfd_mach_avr25         25
9117     #define bfd_mach_avr3          3
9118     #define bfd_mach_avr31         31
9119     #define bfd_mach_avr35         35
9120     #define bfd_mach_avr4          4
9121     #define bfd_mach_avr5          5
9122     #define bfd_mach_avr51         51
9123     #define bfd_mach_avr6          6
9124     #define bfd_mach_avrtiny       100
9125     #define bfd_mach_avrxmega1     101
9126     #define bfd_mach_avrxmega2     102
9127     #define bfd_mach_avrxmega3     103
9128     #define bfd_mach_avrxmega4     104
9129     #define bfd_mach_avrxmega5     105
9130     #define bfd_mach_avrxmega6     106
9131     #define bfd_mach_avrxmega7     107
9132       bfd_arch_bfin,      /* ADI Blackfin.  */
9133     #define bfd_mach_bfin          1
9134       bfd_arch_cr16,      /* National Semiconductor CompactRISC (ie CR16).  */
9135     #define bfd_mach_cr16          1
9136       bfd_arch_crx,       /*  National Semiconductor CRX.  */
9137     #define bfd_mach_crx           1
9138       bfd_arch_cris,      /* Axis CRIS.  */
9139     #define bfd_mach_cris_v0_v10   255
9140     #define bfd_mach_cris_v32      32
9141     #define bfd_mach_cris_v10_v32  1032
9142       bfd_arch_riscv,
9143     #define bfd_mach_riscv32       132
9144     #define bfd_mach_riscv64       164
9145       bfd_arch_rl78,
9146     #define bfd_mach_rl78          0x75
9147       bfd_arch_rx,        /* Renesas RX.  */
9148     #define bfd_mach_rx            0x75
9149     #define bfd_mach_rx_v2         0x76
9150     #define bfd_mach_rx_v3         0x77
9151       bfd_arch_s390,      /* IBM s390.  */
9152     #define bfd_mach_s390_31       31
9153     #define bfd_mach_s390_64       64
9154       bfd_arch_score,     /* Sunplus score.  */
9155     #define bfd_mach_score3        3
9156     #define bfd_mach_score7        7
9157       bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
9158       bfd_arch_xstormy16,
9159     #define bfd_mach_xstormy16     1
9160       bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
9161     #define bfd_mach_msp11         11
9162     #define bfd_mach_msp110        110
9163     #define bfd_mach_msp12         12
9164     #define bfd_mach_msp13         13
9165     #define bfd_mach_msp14         14
9166     #define bfd_mach_msp15         15
9167     #define bfd_mach_msp16         16
9168     #define bfd_mach_msp20         20
9169     #define bfd_mach_msp21         21
9170     #define bfd_mach_msp22         22
9171     #define bfd_mach_msp23         23
9172     #define bfd_mach_msp24         24
9173     #define bfd_mach_msp26         26
9174     #define bfd_mach_msp31         31
9175     #define bfd_mach_msp32         32
9176     #define bfd_mach_msp33         33
9177     #define bfd_mach_msp41         41
9178     #define bfd_mach_msp42         42
9179     #define bfd_mach_msp43         43
9180     #define bfd_mach_msp44         44
9181     #define bfd_mach_msp430x       45
9182     #define bfd_mach_msp46         46
9183     #define bfd_mach_msp47         47
9184     #define bfd_mach_msp54         54
9185       bfd_arch_xgate,     /* Freescale XGATE.  */
9186     #define bfd_mach_xgate         1
9187       bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
9188     #define bfd_mach_xtensa        1
9189       bfd_arch_z80,
9190     /* Zilog Z80 without undocumented opcodes.  */
9191     #define bfd_mach_z80strict     1
9192     /* Zilog Z180: successor with additional instructions, but without
9193      halves of ix and iy.  */
9194     #define bfd_mach_z180          2
9195     /* Zilog Z80 with ixl, ixh, iyl, and iyh.  */
9196     #define bfd_mach_z80           3
9197     /* Zilog eZ80 (successor of Z80 & Z180) in Z80 (16-bit address) mode.  */
9198     #define bfd_mach_ez80_z80      4
9199     /* Zilog eZ80 (successor of Z80 & Z180) in ADL (24-bit address) mode.  */
9200     #define bfd_mach_ez80_adl      5
9201     /* Z80N */
9202     #define bfd_mach_z80n          6
9203     /* Zilog Z80 with all undocumented instructions.  */
9204     #define bfd_mach_z80full       7
9205     /* GameBoy Z80 (reduced instruction set).  */
9206     #define bfd_mach_gbz80         8
9207     /* ASCII R800: successor with multiplication.  */
9208     #define bfd_mach_r800          11
9209       bfd_arch_lm32,      /* Lattice Mico32.  */
9210     #define bfd_mach_lm32          1
9211       bfd_arch_microblaze,/* Xilinx MicroBlaze.  */
9212       bfd_arch_tilepro,   /* Tilera TILEPro.  */
9213       bfd_arch_tilegx,    /* Tilera TILE-Gx.  */
9214     #define bfd_mach_tilepro       1
9215     #define bfd_mach_tilegx        1
9216     #define bfd_mach_tilegx32      2
9217       bfd_arch_aarch64,   /* AArch64.  */
9218     #define bfd_mach_aarch64 0
9219     #define bfd_mach_aarch64_8R    1
9220     #define bfd_mach_aarch64_ilp32 32
9221       bfd_arch_nios2,     /* Nios II.  */
9222     #define bfd_mach_nios2         0
9223     #define bfd_mach_nios2r1       1
9224     #define bfd_mach_nios2r2       2
9225       bfd_arch_visium,    /* Visium.  */
9226     #define bfd_mach_visium        1
9227       bfd_arch_wasm32,    /* WebAssembly.  */
9228     #define bfd_mach_wasm32        1
9229       bfd_arch_pru,       /* PRU.  */
9230     #define bfd_mach_pru           0
9231       bfd_arch_nfp,       /* Netronome Flow Processor */
9232     #define bfd_mach_nfp3200       0x3200
9233     #define bfd_mach_nfp6000       0x6000
9234       bfd_arch_csky,      /* C-SKY.  */
9235     #define bfd_mach_ck_unknown    0
9236     #define bfd_mach_ck510         1
9237     #define bfd_mach_ck610         2
9238     #define bfd_mach_ck801         3
9239     #define bfd_mach_ck802         4
9240     #define bfd_mach_ck803         5
9241     #define bfd_mach_ck807         6
9242     #define bfd_mach_ck810         7
9243     #define bfd_mach_ck860         8
9244       bfd_arch_loongarch,       /* LoongArch */
9245     #define bfd_mach_loongarch32   1
9246     #define bfd_mach_loongarch64   2
9247       bfd_arch_amdgcn,     /* AMDGCN */
9248     #define bfd_mach_amdgcn_unknown 0x000
9249     #define bfd_mach_amdgcn_gfx900  0x02c
9250     #define bfd_mach_amdgcn_gfx904  0x02e
9251     #define bfd_mach_amdgcn_gfx906  0x02f
9252     #define bfd_mach_amdgcn_gfx908  0x030
9253     #define bfd_mach_amdgcn_gfx90a  0x03f
9254     #define bfd_mach_amdgcn_gfx1010 0x033
9255     #define bfd_mach_amdgcn_gfx1011 0x034
9256     #define bfd_mach_amdgcn_gfx1012 0x035
9257     #define bfd_mach_amdgcn_gfx1030 0x036
9258     #define bfd_mach_amdgcn_gfx1031 0x037
9259     #define bfd_mach_amdgcn_gfx1032 0x038
9260       bfd_arch_last
9261       };
9262
92632.13.2 bfd_arch_info
9264--------------------
9265
9266*Description*
9267This structure contains information on architectures for use within BFD.
9268
9269     typedef struct bfd_arch_info
9270     {
9271       int bits_per_word;
9272       int bits_per_address;
9273       int bits_per_byte;
9274       enum bfd_architecture arch;
9275       unsigned long mach;
9276       const char *arch_name;
9277       const char *printable_name;
9278       unsigned int section_align_power;
9279       /* TRUE if this is the default machine for the architecture.
9280          The default arch should be the first entry for an arch so that
9281          all the entries for that arch can be accessed via `next'.  */
9282       bool the_default;
9283       const struct bfd_arch_info * (*compatible) (const struct bfd_arch_info *,
9284                                                   const struct bfd_arch_info *);
9285
9286       bool (*scan) (const struct bfd_arch_info *, const char *);
9287
9288       /* Allocate via bfd_malloc and return a fill buffer of size COUNT.  If
9289          IS_BIGENDIAN is TRUE, the order of bytes is big endian.  If CODE is
9290          TRUE, the buffer contains code.  */
9291       void *(*fill) (bfd_size_type count, bool is_bigendian, bool code);
9292
9293       const struct bfd_arch_info *next;
9294
9295       /* On some architectures the offset for a relocation can point into
9296          the middle of an instruction.  This field specifies the maximum
9297          offset such a relocation can have (in octets).  This affects the
9298          behaviour of the disassembler, since a value greater than zero
9299          means that it may need to disassemble an instruction twice, once
9300          to get its length and then a second time to display it.  If the
9301          value is negative then this has to be done for every single
9302          instruction, regardless of the offset of the reloc.  */
9303       signed int max_reloc_offset_into_insn;
9304     }
9305     bfd_arch_info_type;
9306
93072.13.2.1 `bfd_printable_name'
9308.............................
9309
9310*Synopsis*
9311     const char *bfd_printable_name (bfd *abfd);
9312   *Description*
9313Return a printable string representing the architecture and machine
9314from the pointer to the architecture info structure.
9315
93162.13.2.2 `bfd_scan_arch'
9317........................
9318
9319*Synopsis*
9320     const bfd_arch_info_type *bfd_scan_arch (const char *string);
9321   *Description*
9322Figure out if BFD supports any cpu which could be described with the
9323name STRING.  Return a pointer to an `arch_info' structure if a machine
9324is found, otherwise NULL.
9325
93262.13.2.3 `bfd_arch_list'
9327........................
9328
9329*Synopsis*
9330     const char **bfd_arch_list (void);
9331   *Description*
9332Return a freshly malloced NULL-terminated vector of the names of all
9333the valid BFD architectures.  Do not modify the names.
9334
93352.13.2.4 `bfd_arch_get_compatible'
9336..................................
9337
9338*Synopsis*
9339     const bfd_arch_info_type *bfd_arch_get_compatible
9340        (const bfd *abfd, const bfd *bbfd, bool accept_unknowns);
9341   *Description*
9342Determine whether two BFDs' architectures and machine types are
9343compatible.  Calculates the lowest common denominator between the two
9344architectures and machine types implied by the BFDs and returns a
9345pointer to an `arch_info' structure describing the compatible machine.
9346
93472.13.2.5 `bfd_default_arch_struct'
9348..................................
9349
9350*Description*
9351The `bfd_default_arch_struct' is an item of `bfd_arch_info_type' which
9352has been initialized to a fairly generic state.  A BFD starts life by
9353pointing to this structure, until the correct back end has determined
9354the real architecture of the file.
9355     extern const bfd_arch_info_type bfd_default_arch_struct;
9356
93572.13.2.6 `bfd_set_arch_info'
9358............................
9359
9360*Synopsis*
9361     void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
9362   *Description*
9363Set the architecture info of ABFD to ARG.
9364
93652.13.2.7 `bfd_default_set_arch_mach'
9366....................................
9367
9368*Synopsis*
9369     bool bfd_default_set_arch_mach
9370        (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
9371   *Description*
9372Set the architecture and machine type in BFD ABFD to ARCH and MACH.
9373Find the correct pointer to a structure and insert it into the
9374`arch_info' pointer.
9375
93762.13.2.8 `bfd_get_arch'
9377.......................
9378
9379*Synopsis*
9380     enum bfd_architecture bfd_get_arch (const bfd *abfd);
9381   *Description*
9382Return the enumerated type which describes the BFD ABFD's architecture.
9383
93842.13.2.9 `bfd_get_mach'
9385.......................
9386
9387*Synopsis*
9388     unsigned long bfd_get_mach (const bfd *abfd);
9389   *Description*
9390Return the long type which describes the BFD ABFD's machine.
9391
93922.13.2.10 `bfd_arch_bits_per_byte'
9393..................................
9394
9395*Synopsis*
9396     unsigned int bfd_arch_bits_per_byte (const bfd *abfd);
9397   *Description*
9398Return the number of bits in one of the BFD ABFD's architecture's bytes.
9399
94002.13.2.11 `bfd_arch_bits_per_address'
9401.....................................
9402
9403*Synopsis*
9404     unsigned int bfd_arch_bits_per_address (const bfd *abfd);
9405   *Description*
9406Return the number of bits in one of the BFD ABFD's architecture's
9407addresses.
9408
94092.13.2.12 `bfd_default_compatible'
9410..................................
9411
9412*Synopsis*
9413     const bfd_arch_info_type *bfd_default_compatible
9414        (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
9415   *Description*
9416The default function for testing for compatibility.
9417
94182.13.2.13 `bfd_default_scan'
9419............................
9420
9421*Synopsis*
9422     bool bfd_default_scan
9423        (const struct bfd_arch_info *info, const char *string);
9424   *Description*
9425The default function for working out whether this is an architecture
9426hit and a machine hit.
9427
94282.13.2.14 `bfd_get_arch_info'
9429.............................
9430
9431*Synopsis*
9432     const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
9433   *Description*
9434Return the architecture info struct in ABFD.
9435
94362.13.2.15 `bfd_lookup_arch'
9437...........................
9438
9439*Synopsis*
9440     const bfd_arch_info_type *bfd_lookup_arch
9441        (enum bfd_architecture arch, unsigned long machine);
9442   *Description*
9443Look for the architecture info structure which matches the arguments
9444ARCH and MACHINE. A machine of 0 matches the machine/architecture
9445structure which marks itself as the default.
9446
94472.13.2.16 `bfd_printable_arch_mach'
9448...................................
9449
9450*Synopsis*
9451     const char *bfd_printable_arch_mach
9452        (enum bfd_architecture arch, unsigned long machine);
9453   *Description*
9454Return a printable string representing the architecture and machine
9455type.
9456
9457   This routine is depreciated.
9458
94592.13.2.17 `bfd_octets_per_byte'
9460...............................
9461
9462*Synopsis*
9463     unsigned int bfd_octets_per_byte (const bfd *abfd,
9464         const asection *sec);
9465   *Description*
9466Return the number of octets (8-bit quantities) per target byte (minimum
9467addressable unit).  In most cases, this will be one, but some DSP
9468targets have 16, 32, or even 48 bits per byte.
9469
94702.13.2.18 `bfd_arch_mach_octets_per_byte'
9471.........................................
9472
9473*Synopsis*
9474     unsigned int bfd_arch_mach_octets_per_byte
9475        (enum bfd_architecture arch, unsigned long machine);
9476   *Description*
9477See bfd_octets_per_byte.
9478
9479   This routine is provided for those cases where a bfd * is not
9480available
9481
94822.13.2.19 `bfd_arch_default_fill'
9483.................................
9484
9485*Synopsis*
9486     void *bfd_arch_default_fill (bfd_size_type count,
9487         bool is_bigendian,
9488         bool code);
9489   *Description*
9490Allocate via bfd_malloc and return a fill buffer of size COUNT.  If
9491IS_BIGENDIAN is TRUE, the order of bytes is big endian.  If CODE is
9492TRUE, the buffer contains code.
9493
9494
9495File: bfd.info,  Node: Opening and Closing,  Next: Internal,  Prev: Architectures,  Up: BFD front end
9496
9497     /* Set to N to open the next N BFDs using an alternate id space.  */
9498     extern unsigned int bfd_use_reserved_id;
9499
95002.14 Opening and closing BFDs
9501=============================
9502
95032.14.1 Functions for opening and closing
9504----------------------------------------
9505
95062.14.1.1 `bfd_fopen'
9507....................
9508
9509*Synopsis*
9510     bfd *bfd_fopen (const char *filename, const char *target,
9511         const char *mode, int fd);
9512   *Description*
9513Open the file FILENAME with the target TARGET.  Return a pointer to the
9514created BFD.  If FD is not -1, then `fdopen' is used to open the file;
9515otherwise, `fopen' is used.  MODE is passed directly to `fopen' or
9516`fdopen'.
9517
9518   Calls `bfd_find_target', so TARGET is interpreted as by that
9519function.
9520
9521   The new BFD is marked as cacheable iff FD is -1.
9522
9523   If `NULL' is returned then an error has occured.   Possible errors
9524are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call'
9525error.
9526
9527   On error, FD is always closed.
9528
9529   A copy of the FILENAME argument is stored in the newly created BFD.
9530It can be accessed via the bfd_get_filename() macro.
9531
95322.14.1.2 `bfd_openr'
9533....................
9534
9535*Synopsis*
9536     bfd *bfd_openr (const char *filename, const char *target);
9537   *Description*
9538Open the file FILENAME (using `fopen') with the target TARGET.  Return
9539a pointer to the created BFD.
9540
9541   Calls `bfd_find_target', so TARGET is interpreted as by that
9542function.
9543
9544   If `NULL' is returned then an error has occured.   Possible errors
9545are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call'
9546error.
9547
9548   A copy of the FILENAME argument is stored in the newly created BFD.
9549It can be accessed via the bfd_get_filename() macro.
9550
95512.14.1.3 `bfd_fdopenr'
9552......................
9553
9554*Synopsis*
9555     bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
9556   *Description*
9557`bfd_fdopenr' is to `bfd_fopenr' much like `fdopen' is to `fopen'.  It
9558opens a BFD on a file already described by the FD supplied.
9559
9560   When the file is later `bfd_close'd, the file descriptor will be
9561closed.  If the caller desires that this file descriptor be cached by
9562BFD (opened as needed, closed as needed to free descriptors for other
9563opens), with the supplied FD used as an initial file descriptor (but
9564subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the
9565returned BFD.  The default is to assume no caching; the file descriptor
9566will remain open until `bfd_close', and will not be affected by BFD
9567operations on other files.
9568
9569   Possible errors are `bfd_error_no_memory',
9570`bfd_error_invalid_target' and `bfd_error_system_call'.
9571
9572   On error, FD is closed.
9573
9574   A copy of the FILENAME argument is stored in the newly created BFD.
9575It can be accessed via the bfd_get_filename() macro.
9576
95772.14.1.4 `bfd_fdopenw'
9578......................
9579
9580*Synopsis*
9581     bfd *bfd_fdopenw (const char *filename, const char *target, int fd);
9582   *Description*
9583`bfd_fdopenw' is exactly like `bfd_fdopenr' with the exception that the
9584resulting BFD is suitable for output.
9585
95862.14.1.5 `bfd_openstreamr'
9587..........................
9588
9589*Synopsis*
9590     bfd *bfd_openstreamr (const char * filename, const char * target,
9591         void * stream);
9592   *Description*
9593Open a BFD for read access on an existing stdio stream.  When the BFD
9594is passed to `bfd_close', the stream will be closed.
9595
9596   A copy of the FILENAME argument is stored in the newly created BFD.
9597It can be accessed via the bfd_get_filename() macro.
9598
95992.14.1.6 `bfd_openr_iovec'
9600..........................
9601
9602*Synopsis*
9603     bfd *bfd_openr_iovec (const char *filename, const char *target,
9604         void *(*open_func) (struct bfd *nbfd,
9605         void *open_closure),
9606         void *open_closure,
9607         file_ptr (*pread_func) (struct bfd *nbfd,
9608         void *stream,
9609         void *buf,
9610         file_ptr nbytes,
9611         file_ptr offset),
9612         int (*close_func) (struct bfd *nbfd,
9613         void *stream),
9614         int (*stat_func) (struct bfd *abfd,
9615         void *stream,
9616         struct stat *sb));
9617   *Description*
9618Create and return a BFD backed by a read-only STREAM.  The STREAM is
9619created using OPEN_FUNC, accessed using PREAD_FUNC and destroyed using
9620CLOSE_FUNC.
9621
9622   Calls `bfd_find_target', so TARGET is interpreted as by that
9623function.
9624
9625   Calls OPEN_FUNC (which can call `bfd_zalloc' and `bfd_get_filename')
9626to obtain the read-only stream backing the BFD.  OPEN_FUNC either
9627succeeds returning the non-`NULL' STREAM, or fails returning `NULL'
9628(setting `bfd_error').
9629
9630   Calls PREAD_FUNC to request NBYTES of data from STREAM starting at
9631OFFSET (e.g., via a call to `bfd_read').  PREAD_FUNC either succeeds
9632returning the number of bytes read (which can be less than NBYTES when
9633end-of-file), or fails returning -1 (setting `bfd_error').
9634
9635   Calls CLOSE_FUNC when the BFD is later closed using `bfd_close'.
9636CLOSE_FUNC either succeeds returning 0, or fails returning -1 (setting
9637`bfd_error').
9638
9639   Calls STAT_FUNC to fill in a stat structure for bfd_stat,
9640bfd_get_size, and bfd_get_mtime calls.  STAT_FUNC returns 0 on success,
9641or returns -1 on failure (setting `bfd_error').
9642
9643   If `bfd_openr_iovec' returns `NULL' then an error has occurred.
9644Possible errors are `bfd_error_no_memory', `bfd_error_invalid_target'
9645and `bfd_error_system_call'.
9646
9647   A copy of the FILENAME argument is stored in the newly created BFD.
9648It can be accessed via the bfd_get_filename() macro.
9649
96502.14.1.7 `bfd_openw'
9651....................
9652
9653*Synopsis*
9654     bfd *bfd_openw (const char *filename, const char *target);
9655   *Description*
9656Create a BFD, associated with file FILENAME, using the file format
9657TARGET, and return a pointer to it.
9658
9659   Possible errors are `bfd_error_system_call', `bfd_error_no_memory',
9660`bfd_error_invalid_target'.
9661
9662   A copy of the FILENAME argument is stored in the newly created BFD.
9663It can be accessed via the bfd_get_filename() macro.
9664
96652.14.1.8 `bfd_close'
9666....................
9667
9668*Synopsis*
9669     bool bfd_close (bfd *abfd);
9670   *Description*
9671Close a BFD. If the BFD was open for writing, then pending operations
9672are completed and the file written out and closed.  If the created file
9673is executable, then `chmod' is called to mark it as such.
9674
9675   All memory attached to the BFD is released.
9676
9677   The file descriptor associated with the BFD is closed (even if it
9678was passed in to BFD by `bfd_fdopenr').
9679
9680   *Returns*
9681`TRUE' is returned if all is ok, otherwise `FALSE'.
9682
96832.14.1.9 `bfd_close_all_done'
9684.............................
9685
9686*Synopsis*
9687     bool bfd_close_all_done (bfd *);
9688   *Description*
9689Close a BFD.  Differs from `bfd_close' since it does not complete any
9690pending operations.  This routine would be used if the application had
9691just used BFD for swapping and didn't want to use any of the writing
9692code.
9693
9694   If the created file is executable, then `chmod' is called to mark it
9695as such.
9696
9697   All memory attached to the BFD is released.
9698
9699   *Returns*
9700`TRUE' is returned if all is ok, otherwise `FALSE'.
9701
97022.14.1.10 `bfd_create'
9703......................
9704
9705*Synopsis*
9706     bfd *bfd_create (const char *filename, bfd *templ);
9707   *Description*
9708Create a new BFD in the manner of `bfd_openw', but without opening a
9709file. The new BFD takes the target from the target used by TEMPL. The
9710format is always set to `bfd_object'.
9711
9712   A copy of the FILENAME argument is stored in the newly created BFD.
9713It can be accessed via the bfd_get_filename() macro.
9714
97152.14.1.11 `bfd_make_writable'
9716.............................
9717
9718*Synopsis*
9719     bool bfd_make_writable (bfd *abfd);
9720   *Description*
9721Takes a BFD as created by `bfd_create' and converts it into one like as
9722returned by `bfd_openw'.  It does this by converting the BFD to
9723BFD_IN_MEMORY.  It's assumed that you will call `bfd_make_readable' on
9724this bfd later.
9725
9726   *Returns*
9727`TRUE' is returned if all is ok, otherwise `FALSE'.
9728
97292.14.1.12 `bfd_make_readable'
9730.............................
9731
9732*Synopsis*
9733     bool bfd_make_readable (bfd *abfd);
9734   *Description*
9735Takes a BFD as created by `bfd_create' and `bfd_make_writable' and
9736converts it into one like as returned by `bfd_openr'.  It does this by
9737writing the contents out to the memory buffer, then reversing the
9738direction.
9739
9740   *Returns*
9741`TRUE' is returned if all is ok, otherwise `FALSE'.
9742
97432.14.1.13 `bfd_alloc'
9744.....................
9745
9746*Synopsis*
9747     void *bfd_alloc (bfd *abfd, bfd_size_type wanted);
9748   *Description*
9749Allocate a block of WANTED bytes of memory attached to `abfd' and
9750return a pointer to it.
9751
97522.14.1.14 `bfd_zalloc'
9753......................
9754
9755*Synopsis*
9756     void *bfd_zalloc (bfd *abfd, bfd_size_type wanted);
9757   *Description*
9758Allocate a block of WANTED bytes of zeroed memory attached to `abfd'
9759and return a pointer to it.
9760
97612.14.1.15 `bfd_calc_gnu_debuglink_crc32'
9762........................................
9763
9764*Synopsis*
9765     unsigned long bfd_calc_gnu_debuglink_crc32
9766        (unsigned long crc, const unsigned char *buf, bfd_size_type len);
9767   *Description*
9768Computes a CRC value as used in the .gnu_debuglink section.  Advances
9769the previously computed CRC value by computing and adding in the crc32
9770for LEN bytes of BUF.
9771
9772   *Returns*
9773Return the updated CRC32 value.
9774
97752.14.1.16 `bfd_get_debug_link_info_1'
9776.....................................
9777
9778*Synopsis*
9779     char *bfd_get_debug_link_info_1 (bfd *abfd, void *crc32_out);
9780   *Description*
9781Extracts the filename and CRC32 value for any separate debug
9782information file associated with ABFD.
9783
9784   The CRC32_OUT parameter is an untyped pointer because this routine
9785is used as a `get_func_type' function, but it is expected to be an
9786unsigned long pointer.
9787
9788   *Returns*
9789The filename of the associated debug information file, or NULL if there
9790is no such file.  If the filename was found then the contents of
9791CRC32_OUT are updated to hold the corresponding CRC32 value for the
9792file.
9793
9794   The returned filename is allocated with `malloc'; freeing it is the
9795responsibility of the caller.
9796
97972.14.1.17 `bfd_get_debug_link_info'
9798...................................
9799
9800*Synopsis*
9801     char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
9802   *Description*
9803Extracts the filename and CRC32 value for any separate debug
9804information file associated with ABFD.
9805
9806   *Returns*
9807The filename of the associated debug information file, or NULL if there
9808is no such file.  If the filename was found then the contents of
9809CRC32_OUT are updated to hold the corresponding CRC32 value for the
9810file.
9811
9812   The returned filename is allocated with `malloc'; freeing it is the
9813responsibility of the caller.
9814
98152.14.1.18 `bfd_get_alt_debug_link_info'
9816.......................................
9817
9818*Synopsis*
9819     char *bfd_get_alt_debug_link_info (bfd * abfd,
9820         bfd_size_type *buildid_len,
9821         bfd_byte **buildid_out);
9822   *Description*
9823Fetch the filename and BuildID value for any alternate debuginfo
9824associated with ABFD.  Return NULL if no such info found, otherwise
9825return filename and update BUILDID_LEN and BUILDID_OUT.  The returned
9826filename and build_id are allocated with `malloc'; freeing them is the
9827responsibility of the caller.
9828
98292.14.1.19 `separate_debug_file_exists'
9830......................................
9831
9832*Synopsis*
9833     bool separate_debug_file_exists
9834        (char *name, void *crc32_p);
9835   *Description*
9836Checks to see if NAME is a file and if its contents match CRC32, which
9837is a pointer to an `unsigned long' containing a CRC32.
9838
9839   The CRC32_P parameter is an untyped pointer because this routine is
9840used as a `check_func_type' function.
9841
98422.14.1.20 `separate_alt_debug_file_exists'
9843..........................................
9844
9845*Synopsis*
9846     bool separate_alt_debug_file_exists
9847        (char *name, void *unused);
9848   *Description*
9849Checks to see if NAME is a file.
9850
98512.14.1.21 `find_separate_debug_file'
9852....................................
9853
9854*Synopsis*
9855     char *find_separate_debug_file
9856        (bfd *abfd, const char *dir, bool include_dirs,
9857         get_func_type get, check_func_type check, void *data);
9858   *Description*
9859Searches for a debug information file corresponding to ABFD.
9860
9861   The name of the separate debug info file is returned by the GET
9862function.  This function scans various fixed locations in the
9863filesystem, including the file tree rooted at DIR.  If the INCLUDE_DIRS
9864parameter is true then the directory components of ABFD's filename will
9865be included in the searched locations.
9866
9867   DATA is passed unmodified to the GET and CHECK functions.  It is
9868generally used to implement build-id-like matching in the callback
9869functions.
9870
9871   *Returns*
9872Returns the filename of the first file to be found which receives a
9873TRUE result from the CHECK function.  Returns NULL if no valid file
9874could be found.
9875
98762.14.1.22 `bfd_follow_gnu_debuglink'
9877....................................
9878
9879*Synopsis*
9880     char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
9881   *Description*
9882Takes a BFD and searches it for a .gnu_debuglink section.  If this
9883section is found, it examines the section for the name and checksum of
9884a '.debug' file containing auxiliary debugging information.  It then
9885searches the filesystem for this .debug file in some standard
9886locations, including the directory tree rooted at DIR, and if found
9887returns the full filename.
9888
9889   If DIR is NULL, the search will take place starting at the current
9890directory.
9891
9892   *Returns*
9893`NULL' on any errors or failure to locate the .debug file, otherwise a
9894pointer to a heap-allocated string containing the filename.  The caller
9895is responsible for freeing this string.
9896
98972.14.1.23 `bfd_follow_gnu_debugaltlink'
9898.......................................
9899
9900*Synopsis*
9901     char *bfd_follow_gnu_debugaltlink (bfd *abfd, const char *dir);
9902   *Description*
9903Takes a BFD and searches it for a .gnu_debugaltlink section.  If this
9904section is found, it examines the section for the name of a file
9905containing auxiliary debugging information.  It then searches the
9906filesystem for this file in a set of standard locations, including the
9907directory tree rooted at DIR, and if found returns the full filename.
9908
9909   If DIR is NULL, the search will take place starting at the current
9910directory.
9911
9912   *Returns*
9913`NULL' on any errors or failure to locate the debug file, otherwise a
9914pointer to a heap-allocated string containing the filename.  The caller
9915is responsible for freeing this string.
9916
99172.14.1.24 `bfd_create_gnu_debuglink_section'
9918............................................
9919
9920*Synopsis*
9921     struct bfd_section *bfd_create_gnu_debuglink_section
9922        (bfd *abfd, const char *filename);
9923   *Description*
9924Takes a BFD and adds a .gnu_debuglink section to it.  The section is
9925sized to be big enough to contain a link to the specified FILENAME.
9926
9927   *Returns*
9928A pointer to the new section is returned if all is ok.  Otherwise
9929`NULL' is returned and bfd_error is set.
9930
99312.14.1.25 `bfd_fill_in_gnu_debuglink_section'
9932.............................................
9933
9934*Synopsis*
9935     bool bfd_fill_in_gnu_debuglink_section
9936        (bfd *abfd, struct bfd_section *sect, const char *filename);
9937   *Description*
9938Takes a BFD and containing a .gnu_debuglink section SECT and fills in
9939the contents of the section to contain a link to the specified
9940FILENAME.  The filename should be relative to the current directory.
9941
9942   *Returns*
9943`TRUE' is returned if all is ok.  Otherwise `FALSE' is returned and
9944bfd_error is set.
9945
99462.14.1.26 `get_build_id'
9947........................
9948
9949*Synopsis*
9950     struct bfd_build_id * get_build_id (bfd *abfd);
9951   *Description*
9952Finds the build-id associated with ABFD.  If the build-id is extracted
9953from the note section then a build-id structure is built for it, using
9954memory allocated to ABFD, and this is then attached to the ABFD.
9955
9956   *Returns*
9957Returns a pointer to the build-id structure if a build-id could be
9958found.  If no build-id is found NULL is returned and error code is set.
9959
99602.14.1.27 `get_build_id_name'
9961.............................
9962
9963*Synopsis*
9964     char * get_build_id_name (bfd *abfd, void *build_id_out_p)
9965   *Description*
9966Searches ABFD for a build-id, and then constructs a pathname from it.
9967The path is computed as .build-id/NN/NN+NN.debug where NNNN+NN is the
9968build-id value as a hexadecimal string.
9969
9970   *Returns*
9971Returns the constructed filename or NULL upon error.  It is the
9972caller's responsibility to free the memory used to hold the filename.
9973If a filename is returned then the BUILD_ID_OUT_P parameter (which
9974points to a `struct bfd_build_id' pointer) is set to a pointer to the
9975build_id structure.
9976
99772.14.1.28 `check_build_id_file'
9978...............................
9979
9980*Synopsis*
9981     bool check_build_id_file (char *name, void *buildid_p);
9982   *Description*
9983Checks to see if NAME is a readable file and if its build-id matches
9984BUILDID.
9985
9986   *Returns*
9987Returns TRUE if the file exists, is readable, and contains a build-id
9988which matches the build-id pointed at by BUILD_ID_P (which is really a
9989`struct bfd_build_id **').
9990
99912.14.1.29 `bfd_follow_build_id_debuglink'
9992.........................................
9993
9994*Synopsis*
9995     char *bfd_follow_build_id_debuglink (bfd *abfd, const char *dir);
9996   *Description*
9997Takes ABFD and searches it for a .note.gnu.build-id section.  If this
9998section is found, it extracts the value of the NT_GNU_BUILD_ID note,
9999which should be a hexadecimal value NNNN+NN (for 32+ hex digits).  It
10000then searches the filesystem for a file named .BUILD-ID/NN/NN+NN.DEBUG
10001in a set of standard locations, including the directory tree rooted at
10002DIR.  The filename of the first matching file to be found is returned.
10003A matching file should contain a .note.gnu.build-id section with the
10004same NNNN+NN note as ABFD, although this check is currently not
10005implemented.
10006
10007   If DIR is NULL, the search will take place starting at the current
10008directory.
10009
10010   *Returns*
10011`NULL' on any errors or failure to locate the debug file, otherwise a
10012pointer to a heap-allocated string containing the filename.  The caller
10013is responsible for freeing this string.
10014
100152.14.1.30 `bfd_set_filename'
10016............................
10017
10018*Synopsis*
10019     const char *bfd_set_filename (bfd *abfd, const char *filename);
10020   *Description*
10021Set the filename of ABFD, copying the FILENAME parameter to bfd_alloc'd
10022memory owned by ABFD.  Returns a pointer the newly allocated name, or
10023NULL if the allocation failed.
10024
10025
10026File: bfd.info,  Node: Internal,  Next: File Caching,  Prev: Opening and Closing,  Up: BFD front end
10027
10028
10029File: bfd.info,  Node: File Caching,  Next: Linker Functions,  Prev: Internal,  Up: BFD front end
10030
100312.15 File caching
10032=================
10033
10034The file caching mechanism is embedded within BFD and allows the
10035application to open as many BFDs as it wants without regard to the
10036underlying operating system's file descriptor limit (often as low as 20
10037open files).  The module in `cache.c' maintains a least recently used
10038list of `bfd_cache_max_open' files, and exports the name
10039`bfd_cache_lookup', which runs around and makes sure that the required
10040BFD is open. If not, then it chooses a file to close, closes it and
10041opens the one wanted, returning its file handle.
10042
100432.15.1 Caching functions
10044------------------------
10045
100462.15.1.1 `bfd_cache_init'
10047.........................
10048
10049*Synopsis*
10050     bool bfd_cache_init (bfd *abfd);
10051   *Description*
10052Add a newly opened BFD to the cache.
10053
100542.15.1.2 `bfd_cache_close'
10055..........................
10056
10057*Synopsis*
10058     bool bfd_cache_close (bfd *abfd);
10059   *Description*
10060Remove the BFD ABFD from the cache. If the attached file is open, then
10061close it too.
10062
10063   *Returns*
10064`FALSE' is returned if closing the file fails, `TRUE' is returned if
10065all is well.
10066
100672.15.1.3 `bfd_cache_close_all'
10068..............................
10069
10070*Synopsis*
10071     bool bfd_cache_close_all (void);
10072   *Description*
10073Remove all BFDs from the cache. If the attached file is open, then
10074close it too.
10075
10076   *Returns*
10077`FALSE' is returned if closing one of the file fails, `TRUE' is
10078returned if all is well.
10079
100802.15.1.4 `bfd_open_file'
10081........................
10082
10083*Synopsis*
10084     FILE* bfd_open_file (bfd *abfd);
10085   *Description*
10086Call the OS to open a file for ABFD.  Return the `FILE *' (possibly
10087`NULL') that results from this operation.  Set up the BFD so that
10088future accesses know the file is open. If the `FILE *' returned is
10089`NULL', then it won't have been put in the cache, so it won't have to
10090be removed from it.
10091
10092
10093File: bfd.info,  Node: Linker Functions,  Next: Hash Tables,  Prev: File Caching,  Up: BFD front end
10094
100952.16 Linker Functions
10096=====================
10097
10098The linker uses three special entry points in the BFD target vector.
10099It is not necessary to write special routines for these entry points
10100when creating a new BFD back end, since generic versions are provided.
10101However, writing them can speed up linking and make it use
10102significantly less runtime memory.
10103
10104   The first routine creates a hash table used by the other routines.
10105The second routine adds the symbols from an object file to the hash
10106table.  The third routine takes all the object files and links them
10107together to create the output file.  These routines are designed so
10108that the linker proper does not need to know anything about the symbols
10109in the object files that it is linking.  The linker merely arranges the
10110sections as directed by the linker script and lets BFD handle the
10111details of symbols and relocs.
10112
10113   The second routine and third routines are passed a pointer to a
10114`struct bfd_link_info' structure (defined in `bfdlink.h') which holds
10115information relevant to the link, including the linker hash table
10116(which was created by the first routine) and a set of callback
10117functions to the linker proper.
10118
10119   The generic linker routines are in `linker.c', and use the header
10120file `genlink.h'.  As of this writing, the only back ends which have
10121implemented versions of these routines are a.out (in `aoutx.h') and
10122ECOFF (in `ecoff.c').  The a.out routines are used as examples
10123throughout this section.
10124
10125* Menu:
10126
10127* Creating a Linker Hash Table::
10128* Adding Symbols to the Hash Table::
10129* Performing the Final Link::
10130
10131
10132File: bfd.info,  Node: Creating a Linker Hash Table,  Next: Adding Symbols to the Hash Table,  Prev: Linker Functions,  Up: Linker Functions
10133
101342.16.1 Creating a linker hash table
10135-----------------------------------
10136
10137The linker routines must create a hash table, which must be derived
10138from `struct bfd_link_hash_table' described in `bfdlink.c'.  *Note Hash
10139Tables::, for information on how to create a derived hash table.  This
10140entry point is called using the target vector of the linker output file.
10141
10142   The `_bfd_link_hash_table_create' entry point must allocate and
10143initialize an instance of the desired hash table.  If the back end does
10144not require any additional information to be stored with the entries in
10145the hash table, the entry point may simply create a `struct
10146bfd_link_hash_table'.  Most likely, however, some additional
10147information will be needed.
10148
10149   For example, with each entry in the hash table the a.out linker
10150keeps the index the symbol has in the final output file (this index
10151number is used so that when doing a relocatable link the symbol index
10152used in the output file can be quickly filled in when copying over a
10153reloc).  The a.out linker code defines the required structures and
10154functions for a hash table derived from `struct bfd_link_hash_table'.
10155The a.out linker hash table is created by the function
10156`NAME(aout,link_hash_table_create)'; it simply allocates space for the
10157hash table, initializes it, and returns a pointer to it.
10158
10159   When writing the linker routines for a new back end, you will
10160generally not know exactly which fields will be required until you have
10161finished.  You should simply create a new hash table which defines no
10162additional fields, and then simply add fields as they become necessary.
10163
10164
10165File: bfd.info,  Node: Adding Symbols to the Hash Table,  Next: Performing the Final Link,  Prev: Creating a Linker Hash Table,  Up: Linker Functions
10166
101672.16.2 Adding symbols to the hash table
10168---------------------------------------
10169
10170The linker proper will call the `_bfd_link_add_symbols' entry point for
10171each object file or archive which is to be linked (typically these are
10172the files named on the command line, but some may also come from the
10173linker script).  The entry point is responsible for examining the file.
10174For an object file, BFD must add any relevant symbol information to
10175the hash table.  For an archive, BFD must determine which elements of
10176the archive should be used and adding them to the link.
10177
10178   The a.out version of this entry point is
10179`NAME(aout,link_add_symbols)'.
10180
10181* Menu:
10182
10183* Differing file formats::
10184* Adding symbols from an object file::
10185* Adding symbols from an archive::
10186
10187
10188File: 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
10189
101902.16.2.1 Differing file formats
10191...............................
10192
10193Normally all the files involved in a link will be of the same format,
10194but it is also possible to link together different format object files,
10195and the back end must support that.  The `_bfd_link_add_symbols' entry
10196point is called via the target vector of the file to be added.  This
10197has an important consequence: the function may not assume that the hash
10198table is the type created by the corresponding
10199`_bfd_link_hash_table_create' vector.  All the `_bfd_link_add_symbols'
10200function can assume about the hash table is that it is derived from
10201`struct bfd_link_hash_table'.
10202
10203   Sometimes the `_bfd_link_add_symbols' function must store some
10204information in the hash table entry to be used by the `_bfd_final_link'
10205function.  In such a case the output bfd xvec must be checked to make
10206sure that the hash table was created by an object file of the same
10207format.
10208
10209   The `_bfd_final_link' routine must be prepared to handle a hash
10210entry without any extra information added by the
10211`_bfd_link_add_symbols' function.  A hash entry without extra
10212information will also occur when the linker script directs the linker
10213to create a symbol.  Note that, regardless of how a hash table entry is
10214added, all the fields will be initialized to some sort of null value by
10215the hash table entry initialization function.
10216
10217   See `ecoff_link_add_externals' for an example of how to check the
10218output bfd before saving information (in this case, the ECOFF external
10219symbol debugging information) in a hash table entry.
10220
10221
10222File: 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
10223
102242.16.2.2 Adding symbols from an object file
10225...........................................
10226
10227When the `_bfd_link_add_symbols' routine is passed an object file, it
10228must add all externally visible symbols in that object file to the hash
10229table.  The actual work of adding the symbol to the hash table is
10230normally handled by the function `_bfd_generic_link_add_one_symbol'.
10231The `_bfd_link_add_symbols' routine is responsible for reading all the
10232symbols from the object file and passing the correct information to
10233`_bfd_generic_link_add_one_symbol'.
10234
10235   The `_bfd_link_add_symbols' routine should not use
10236`bfd_canonicalize_symtab' to read the symbols.  The point of providing
10237this routine is to avoid the overhead of converting the symbols into
10238generic `asymbol' structures.
10239
10240   `_bfd_generic_link_add_one_symbol' handles the details of combining
10241common symbols, warning about multiple definitions, and so forth.  It
10242takes arguments which describe the symbol to add, notably symbol flags,
10243a section, and an offset.  The symbol flags include such things as
10244`BSF_WEAK' or `BSF_INDIRECT'.  The section is a section in the object
10245file, or something like `bfd_und_section_ptr' for an undefined symbol
10246or `bfd_com_section_ptr' for a common symbol.
10247
10248   If the `_bfd_final_link' routine is also going to need to read the
10249symbol information, the `_bfd_link_add_symbols' routine should save it
10250somewhere attached to the object file BFD.  However, the information
10251should only be saved if the `keep_memory' field of the `info' argument
10252is TRUE, so that the `-no-keep-memory' linker switch is effective.
10253
10254   The a.out function which adds symbols from an object file is
10255`aout_link_add_object_symbols', and most of the interesting work is in
10256`aout_link_add_symbols'.  The latter saves pointers to the hash tables
10257entries created by `_bfd_generic_link_add_one_symbol' indexed by symbol
10258number, so that the `_bfd_final_link' routine does not have to call the
10259hash table lookup routine to locate the entry.
10260
10261
10262File: bfd.info,  Node: Adding symbols from an archive,  Prev: Adding symbols from an object file,  Up: Adding Symbols to the Hash Table
10263
102642.16.2.3 Adding symbols from an archive
10265.......................................
10266
10267When the `_bfd_link_add_symbols' routine is passed an archive, it must
10268look through the symbols defined by the archive and decide which
10269elements of the archive should be included in the link.  For each such
10270element it must call the `add_archive_element' linker callback, and it
10271must add the symbols from the object file to the linker hash table.
10272(The callback may in fact indicate that a replacement BFD should be
10273used, in which case the symbols from that BFD should be added to the
10274linker hash table instead.)
10275
10276   In most cases the work of looking through the symbols in the archive
10277should be done by the `_bfd_generic_link_add_archive_symbols' function.
10278`_bfd_generic_link_add_archive_symbols' is passed a function to call to
10279make the final decision about adding an archive element to the link and
10280to do the actual work of adding the symbols to the linker hash table.
10281If the element is to be included, the `add_archive_element' linker
10282callback routine must be called with the element as an argument, and
10283the element's symbols must be added to the linker hash table just as
10284though the element had itself been passed to the
10285`_bfd_link_add_symbols' function.
10286
10287   When the a.out `_bfd_link_add_symbols' function receives an archive,
10288it calls `_bfd_generic_link_add_archive_symbols' passing
10289`aout_link_check_archive_element' as the function argument.
10290`aout_link_check_archive_element' calls `aout_link_check_ar_symbols'.
10291If the latter decides to add the element (an element is only added if
10292it provides a real, non-common, definition for a previously undefined
10293or common symbol) it calls the `add_archive_element' callback and then
10294`aout_link_check_archive_element' calls `aout_link_add_symbols' to
10295actually add the symbols to the linker hash table - possibly those of a
10296substitute BFD, if the `add_archive_element' callback avails itself of
10297that option.
10298
10299   The ECOFF back end is unusual in that it does not normally call
10300`_bfd_generic_link_add_archive_symbols', because ECOFF archives already
10301contain a hash table of symbols.  The ECOFF back end searches the
10302archive itself to avoid the overhead of creating a new hash table.
10303
10304
10305File: bfd.info,  Node: Performing the Final Link,  Prev: Adding Symbols to the Hash Table,  Up: Linker Functions
10306
103072.16.3 Performing the final link
10308--------------------------------
10309
10310When all the input files have been processed, the linker calls the
10311`_bfd_final_link' entry point of the output BFD.  This routine is
10312responsible for producing the final output file, which has several
10313aspects.  It must relocate the contents of the input sections and copy
10314the data into the output sections.  It must build an output symbol
10315table including any local symbols from the input files and the global
10316symbols from the hash table.  When producing relocatable output, it must
10317modify the input relocs and write them into the output file.  There may
10318also be object format dependent work to be done.
10319
10320   The linker will also call the `write_object_contents' entry point
10321when the BFD is closed.  The two entry points must work together in
10322order to produce the correct output file.
10323
10324   The details of how this works are inevitably dependent upon the
10325specific object file format.  The a.out `_bfd_final_link' routine is
10326`NAME(aout,final_link)'.
10327
10328* Menu:
10329
10330* Information provided by the linker::
10331* Relocating the section contents::
10332* Writing the symbol table::
10333
10334
10335File: bfd.info,  Node: Information provided by the linker,  Next: Relocating the section contents,  Prev: Performing the Final Link,  Up: Performing the Final Link
10336
103372.16.3.1 Information provided by the linker
10338...........................................
10339
10340Before the linker calls the `_bfd_final_link' entry point, it sets up
10341some data structures for the function to use.
10342
10343   The `input_bfds' field of the `bfd_link_info' structure will point
10344to a list of all the input files included in the link.  These files are
10345linked through the `link.next' field of the `bfd' structure.
10346
10347   Each section in the output file will have a list of `link_order'
10348structures attached to the `map_head.link_order' field (the
10349`link_order' structure is defined in `bfdlink.h').  These structures
10350describe how to create the contents of the output section in terms of
10351the contents of various input sections, fill constants, and,
10352eventually, other types of information.  They also describe relocs that
10353must be created by the BFD backend, but do not correspond to any input
10354file; this is used to support -Ur, which builds constructors while
10355generating a relocatable object file.
10356
10357
10358File: bfd.info,  Node: Relocating the section contents,  Next: Writing the symbol table,  Prev: Information provided by the linker,  Up: Performing the Final Link
10359
103602.16.3.2 Relocating the section contents
10361........................................
10362
10363The `_bfd_final_link' function should look through the `link_order'
10364structures attached to each section of the output file.  Each
10365`link_order' structure should either be handled specially, or it should
10366be passed to the function `_bfd_default_link_order' which will do the
10367right thing (`_bfd_default_link_order' is defined in `linker.c').
10368
10369   For efficiency, a `link_order' of type `bfd_indirect_link_order'
10370whose associated section belongs to a BFD of the same format as the
10371output BFD must be handled specially.  This type of `link_order'
10372describes part of an output section in terms of a section belonging to
10373one of the input files.  The `_bfd_final_link' function should read the
10374contents of the section and any associated relocs, apply the relocs to
10375the section contents, and write out the modified section contents.  If
10376performing a relocatable link, the relocs themselves must also be
10377modified and written out.
10378
10379   The functions `_bfd_relocate_contents' and
10380`_bfd_final_link_relocate' provide some general support for performing
10381the actual relocations, notably overflow checking.  Their arguments
10382include information about the symbol the relocation is against and a
10383`reloc_howto_type' argument which describes the relocation to perform.
10384These functions are defined in `reloc.c'.
10385
10386   The a.out function which handles reading, relocating, and writing
10387section contents is `aout_link_input_section'.  The actual relocation
10388is done in `aout_link_input_section_std' and
10389`aout_link_input_section_ext'.
10390
10391
10392File: bfd.info,  Node: Writing the symbol table,  Prev: Relocating the section contents,  Up: Performing the Final Link
10393
103942.16.3.3 Writing the symbol table
10395.................................
10396
10397The `_bfd_final_link' function must gather all the symbols in the input
10398files and write them out.  It must also write out all the symbols in
10399the global hash table.  This must be controlled by the `strip' and
10400`discard' fields of the `bfd_link_info' structure.
10401
10402   The local symbols of the input files will not have been entered into
10403the linker hash table.  The `_bfd_final_link' routine must consider
10404each input file and include the symbols in the output file.  It may be
10405convenient to do this when looking through the `link_order' structures,
10406or it may be done by stepping through the `input_bfds' list.
10407
10408   The `_bfd_final_link' routine must also traverse the global hash
10409table to gather all the externally visible symbols.  It is possible
10410that most of the externally visible symbols may be written out when
10411considering the symbols of each input file, but it is still necessary
10412to traverse the hash table since the linker script may have defined
10413some symbols that are not in any of the input files.
10414
10415   The `strip' field of the `bfd_link_info' structure controls which
10416symbols are written out.  The possible values are listed in
10417`bfdlink.h'.  If the value is `strip_some', then the `keep_hash' field
10418of the `bfd_link_info' structure is a hash table of symbols to keep;
10419each symbol should be looked up in this hash table, and only symbols
10420which are present should be included in the output file.
10421
10422   If the `strip' field of the `bfd_link_info' structure permits local
10423symbols to be written out, the `discard' field is used to further
10424controls which local symbols are included in the output file.  If the
10425value is `discard_l', then all local symbols which begin with a certain
10426prefix are discarded; this is controlled by the
10427`bfd_is_local_label_name' entry point.
10428
10429   The a.out backend handles symbols by calling
10430`aout_link_write_symbols' on each input BFD and then traversing the
10431global hash table with the function `aout_link_write_other_symbol'.  It
10432builds a string table while writing out the symbols, which is written
10433to the output file at the end of `NAME(aout,final_link)'.
10434
104352.16.3.4 `bfd_link_split_section'
10436.................................
10437
10438*Synopsis*
10439     bool bfd_link_split_section (bfd *abfd, asection *sec);
10440   *Description*
10441Return nonzero if SEC should be split during a reloceatable or final
10442link.
10443     #define bfd_link_split_section(abfd, sec) \
10444            BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
10445
104462.16.3.5 `bfd_section_already_linked'
10447.....................................
10448
10449*Synopsis*
10450     bool bfd_section_already_linked (bfd *abfd,
10451         asection *sec,
10452         struct bfd_link_info *info);
10453   *Description*
10454Check if DATA has been already linked during a reloceatable or final
10455link.  Return TRUE if it has.
10456     #define bfd_section_already_linked(abfd, sec, info) \
10457            BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
10458
104592.16.3.6 `bfd_generic_define_common_symbol'
10460...........................................
10461
10462*Synopsis*
10463     bool bfd_generic_define_common_symbol
10464        (bfd *output_bfd, struct bfd_link_info *info,
10465         struct bfd_link_hash_entry *h);
10466   *Description*
10467Convert common symbol H into a defined symbol.  Return TRUE on success
10468and FALSE on failure.
10469     #define bfd_define_common_symbol(output_bfd, info, h) \
10470            BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h))
10471
104722.16.3.7 `_bfd_generic_link_hide_symbol'
10473........................................
10474
10475*Synopsis*
10476     void _bfd_generic_link_hide_symbol
10477        (bfd *output_bfd, struct bfd_link_info *info,
10478         struct bfd_link_hash_entry *h);
10479   *Description*
10480Hide symbol H.  This is an internal function.  It should not be called
10481from outside the BFD library.
10482     #define bfd_link_hide_symbol(output_bfd, info, h) \
10483            BFD_SEND (output_bfd, _bfd_link_hide_symbol, (output_bfd, info, h))
10484
104852.16.3.8 `bfd_generic_define_start_stop'
10486........................................
10487
10488*Synopsis*
10489     struct bfd_link_hash_entry *bfd_generic_define_start_stop
10490        (struct bfd_link_info *info,
10491         const char *symbol, asection *sec);
10492   *Description*
10493Define a __start, __stop, .startof. or .sizeof. symbol.  Return the
10494symbol or NULL if no such undefined symbol exists.
10495     #define bfd_define_start_stop(output_bfd, info, symbol, sec) \
10496            BFD_SEND (output_bfd, _bfd_define_start_stop, (info, symbol, sec))
10497
104982.16.3.9 `bfd_find_version_for_sym'
10499...................................
10500
10501*Synopsis*
10502     struct bfd_elf_version_tree * bfd_find_version_for_sym
10503        (struct bfd_elf_version_tree *verdefs,
10504         const char *sym_name, bool *hide);
10505   *Description*
10506Search an elf version script tree for symbol versioning info and export
10507/ don't-export status for a given symbol.  Return non-NULL on success
10508and NULL on failure; also sets the output `hide' boolean parameter.
10509
105102.16.3.10 `bfd_hide_sym_by_version'
10511...................................
10512
10513*Synopsis*
10514     bool bfd_hide_sym_by_version
10515        (struct bfd_elf_version_tree *verdefs, const char *sym_name);
10516   *Description*
10517Search an elf version script tree for symbol versioning info for a
10518given symbol.  Return TRUE if the symbol is hidden.
10519
105202.16.3.11 `bfd_link_check_relocs'
10521.................................
10522
10523*Synopsis*
10524     bool bfd_link_check_relocs
10525        (bfd *abfd, struct bfd_link_info *info);
10526   *Description*
10527Checks the relocs in ABFD for validity.  Does not execute the relocs.
10528Return TRUE if everything is OK, FALSE otherwise.  This is the external
10529entry point to this code.
10530
105312.16.3.12 `_bfd_generic_link_check_relocs'
10532..........................................
10533
10534*Synopsis*
10535     bool _bfd_generic_link_check_relocs
10536        (bfd *abfd, struct bfd_link_info *info);
10537   *Description*
10538Stub function for targets that do not implement reloc checking.  Return
10539TRUE.  This is an internal function.  It should not be called from
10540outside the BFD library.
10541
105422.16.3.13 `bfd_merge_private_bfd_data'
10543......................................
10544
10545*Synopsis*
10546     bool bfd_merge_private_bfd_data
10547        (bfd *ibfd, struct bfd_link_info *info);
10548   *Description*
10549Merge private BFD information from the BFD IBFD to the the output file
10550BFD when linking.  Return `TRUE' on success, `FALSE' on error.
10551Possible error returns are:
10552
10553   * `bfd_error_no_memory' - Not enough memory exists to create private
10554     data for OBFD.
10555
10556     #define bfd_merge_private_bfd_data(ibfd, info) \
10557            BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \
10558                      (ibfd, info))
10559
105602.16.3.14 `_bfd_generic_verify_endian_match'
10561............................................
10562
10563*Synopsis*
10564     bool _bfd_generic_verify_endian_match
10565        (bfd *ibfd, struct bfd_link_info *info);
10566   *Description*
10567Can be used from / for bfd_merge_private_bfd_data to check that
10568endianness matches between input and output file.  Returns TRUE for a
10569match, otherwise returns FALSE and emits an error.
10570
10571
10572File: bfd.info,  Node: Hash Tables,  Prev: Linker Functions,  Up: BFD front end
10573
105742.17 Hash Tables
10575================
10576
10577BFD provides a simple set of hash table functions.  Routines are
10578provided to initialize a hash table, to free a hash table, to look up a
10579string in a hash table and optionally create an entry for it, and to
10580traverse a hash table.  There is currently no routine to delete an
10581string from a hash table.
10582
10583   The basic hash table does not permit any data to be stored with a
10584string.  However, a hash table is designed to present a base class from
10585which other types of hash tables may be derived.  These derived types
10586may store additional information with the string.  Hash tables were
10587implemented in this way, rather than simply providing a data pointer in
10588a hash table entry, because they were designed for use by the linker
10589back ends.  The linker may create thousands of hash table entries, and
10590the overhead of allocating private data and storing and following
10591pointers becomes noticeable.
10592
10593   The basic hash table code is in `hash.c'.
10594
10595* Menu:
10596
10597* Creating and Freeing a Hash Table::
10598* Looking Up or Entering a String::
10599* Traversing a Hash Table::
10600* Deriving a New Hash Table Type::
10601
10602
10603File: bfd.info,  Node: Creating and Freeing a Hash Table,  Next: Looking Up or Entering a String,  Prev: Hash Tables,  Up: Hash Tables
10604
106052.17.1 Creating and freeing a hash table
10606----------------------------------------
10607
10608To create a hash table, create an instance of a `struct bfd_hash_table'
10609(defined in `bfd.h') and call `bfd_hash_table_init' (if you know
10610approximately how many entries you will need, the function
10611`bfd_hash_table_init_n', which takes a SIZE argument, may be used).
10612`bfd_hash_table_init' returns `FALSE' if some sort of error occurs.
10613
10614   The function `bfd_hash_table_init' take as an argument a function to
10615use to create new entries.  For a basic hash table, use the function
10616`bfd_hash_newfunc'.  *Note Deriving a New Hash Table Type::, for why
10617you would want to use a different value for this argument.
10618
10619   `bfd_hash_table_init' will create an objalloc which will be used to
10620allocate new entries.  You may allocate memory on this objalloc using
10621`bfd_hash_allocate'.
10622
10623   Use `bfd_hash_table_free' to free up all the memory that has been
10624allocated for a hash table.  This will not free up the `struct
10625bfd_hash_table' itself, which you must provide.
10626
10627   Use `bfd_hash_set_default_size' to set the default size of hash
10628table to use.
10629
10630
10631File: bfd.info,  Node: Looking Up or Entering a String,  Next: Traversing a Hash Table,  Prev: Creating and Freeing a Hash Table,  Up: Hash Tables
10632
106332.17.2 Looking up or entering a string
10634--------------------------------------
10635
10636The function `bfd_hash_lookup' is used both to look up a string in the
10637hash table and to create a new entry.
10638
10639   If the CREATE argument is `FALSE', `bfd_hash_lookup' will look up a
10640string.  If the string is found, it will returns a pointer to a `struct
10641bfd_hash_entry'.  If the string is not found in the table
10642`bfd_hash_lookup' will return `NULL'.  You should not modify any of the
10643fields in the returns `struct bfd_hash_entry'.
10644
10645   If the CREATE argument is `TRUE', the string will be entered into
10646the hash table if it is not already there.  Either way a pointer to a
10647`struct bfd_hash_entry' will be returned, either to the existing
10648structure or to a newly created one.  In this case, a `NULL' return
10649means that an error occurred.
10650
10651   If the CREATE argument is `TRUE', and a new entry is created, the
10652COPY argument is used to decide whether to copy the string onto the
10653hash table objalloc or not.  If COPY is passed as `FALSE', you must be
10654careful not to deallocate or modify the string as long as the hash table
10655exists.
10656
10657
10658File: bfd.info,  Node: Traversing a Hash Table,  Next: Deriving a New Hash Table Type,  Prev: Looking Up or Entering a String,  Up: Hash Tables
10659
106602.17.3 Traversing a hash table
10661------------------------------
10662
10663The function `bfd_hash_traverse' may be used to traverse a hash table,
10664calling a function on each element.  The traversal is done in a random
10665order.
10666
10667   `bfd_hash_traverse' takes as arguments a function and a generic
10668`void *' pointer.  The function is called with a hash table entry (a
10669`struct bfd_hash_entry *') and the generic pointer passed to
10670`bfd_hash_traverse'.  The function must return a `boolean' value, which
10671indicates whether to continue traversing the hash table.  If the
10672function returns `FALSE', `bfd_hash_traverse' will stop the traversal
10673and return immediately.
10674
10675
10676File: bfd.info,  Node: Deriving a New Hash Table Type,  Prev: Traversing a Hash Table,  Up: Hash Tables
10677
106782.17.4 Deriving a new hash table type
10679-------------------------------------
10680
10681Many uses of hash tables want to store additional information which
10682each entry in the hash table.  Some also find it convenient to store
10683additional information with the hash table itself.  This may be done
10684using a derived hash table.
10685
10686   Since C is not an object oriented language, creating a derived hash
10687table requires sticking together some boilerplate routines with a few
10688differences specific to the type of hash table you want to create.
10689
10690   An example of a derived hash table is the linker hash table.  The
10691structures for this are defined in `bfdlink.h'.  The functions are in
10692`linker.c'.
10693
10694   You may also derive a hash table from an already derived hash table.
10695For example, the a.out linker backend code uses a hash table derived
10696from the linker hash table.
10697
10698* Menu:
10699
10700* Define the Derived Structures::
10701* Write the Derived Creation Routine::
10702* Write Other Derived Routines::
10703
10704
10705File: 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
10706
107072.17.4.1 Define the derived structures
10708......................................
10709
10710You must define a structure for an entry in the hash table, and a
10711structure for the hash table itself.
10712
10713   The first field in the structure for an entry in the hash table must
10714be of the type used for an entry in the hash table you are deriving
10715from.  If you are deriving from a basic hash table this is `struct
10716bfd_hash_entry', which is defined in `bfd.h'.  The first field in the
10717structure for the hash table itself must be of the type of the hash
10718table you are deriving from itself.  If you are deriving from a basic
10719hash table, this is `struct bfd_hash_table'.
10720
10721   For example, the linker hash table defines `struct
10722bfd_link_hash_entry' (in `bfdlink.h').  The first field, `root', is of
10723type `struct bfd_hash_entry'.  Similarly, the first field in `struct
10724bfd_link_hash_table', `table', is of type `struct bfd_hash_table'.
10725
10726
10727File: 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
10728
107292.17.4.2 Write the derived creation routine
10730...........................................
10731
10732You must write a routine which will create and initialize an entry in
10733the hash table.  This routine is passed as the function argument to
10734`bfd_hash_table_init'.
10735
10736   In order to permit other hash tables to be derived from the hash
10737table you are creating, this routine must be written in a standard way.
10738
10739   The first argument to the creation routine is a pointer to a hash
10740table entry.  This may be `NULL', in which case the routine should
10741allocate the right amount of space.  Otherwise the space has already
10742been allocated by a hash table type derived from this one.
10743
10744   After allocating space, the creation routine must call the creation
10745routine of the hash table type it is derived from, passing in a pointer
10746to the space it just allocated.  This will initialize any fields used
10747by the base hash table.
10748
10749   Finally the creation routine must initialize any local fields for
10750the new hash table type.
10751
10752   Here is a boilerplate example of a creation routine.  FUNCTION_NAME
10753is the name of the routine.  ENTRY_TYPE is the type of an entry in the
10754hash table you are creating.  BASE_NEWFUNC is the name of the creation
10755routine of the hash table type your hash table is derived from.
10756
10757     struct bfd_hash_entry *
10758     FUNCTION_NAME (struct bfd_hash_entry *entry,
10759                          struct bfd_hash_table *table,
10760                          const char *string)
10761     {
10762       struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry;
10763
10764      /* Allocate the structure if it has not already been allocated by a
10765         derived class.  */
10766       if (ret == NULL)
10767         {
10768           ret = bfd_hash_allocate (table, sizeof (* ret));
10769           if (ret == NULL)
10770             return NULL;
10771         }
10772
10773      /* Call the allocation method of the base class.  */
10774       ret = ((ENTRY_TYPE *)
10775              BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string));
10776
10777      /* Initialize the local fields here.  */
10778
10779       return (struct bfd_hash_entry *) ret;
10780     }
10781   *Description*
10782The creation routine for the linker hash table, which is in `linker.c',
10783looks just like this example.  FUNCTION_NAME is
10784`_bfd_link_hash_newfunc'.  ENTRY_TYPE is `struct bfd_link_hash_entry'.
10785BASE_NEWFUNC is `bfd_hash_newfunc', the creation routine for a basic
10786hash table.
10787
10788   `_bfd_link_hash_newfunc' also initializes the local fields in a
10789linker hash table entry: `type', `written' and `next'.
10790
10791
10792File: bfd.info,  Node: Write Other Derived Routines,  Prev: Write the Derived Creation Routine,  Up: Deriving a New Hash Table Type
10793
107942.17.4.3 Write other derived routines
10795.....................................
10796
10797You will want to write other routines for your new hash table, as well.
10798
10799   You will want an initialization routine which calls the
10800initialization routine of the hash table you are deriving from and
10801initializes any other local fields.  For the linker hash table, this is
10802`_bfd_link_hash_table_init' in `linker.c'.
10803
10804   You will want a lookup routine which calls the lookup routine of the
10805hash table you are deriving from and casts the result.  The linker hash
10806table uses `bfd_link_hash_lookup' in `linker.c' (this actually takes an
10807additional argument which it uses to decide how to return the looked up
10808value).
10809
10810   You may want a traversal routine.  This should just call the
10811traversal routine of the hash table you are deriving from with
10812appropriate casts.  The linker hash table uses `bfd_link_hash_traverse'
10813in `linker.c'.
10814
10815   These routines may simply be defined as macros.  For example, the
10816a.out backend linker hash table, which is derived from the linker hash
10817table, uses macros for the lookup and traversal routines.  These are
10818`aout_link_hash_lookup' and `aout_link_hash_traverse' in aoutx.h.
10819
10820
10821File: bfd.info,  Node: BFD back ends,  Next: GNU Free Documentation License,  Prev: BFD front end,  Up: Top
10822
108233 BFD back ends
10824***************
10825
10826* Menu:
10827
10828* What to Put Where::
10829* aout ::	a.out backends
10830* coff ::	coff backends
10831* elf  ::	elf backends
10832* mmo  ::	mmo backend
10833
10834
10835File: bfd.info,  Node: What to Put Where,  Next: aout,  Prev: BFD back ends,  Up: BFD back ends
10836
108373.1 What to Put Where
10838=====================
10839
10840All of BFD lives in one directory.
10841
10842
10843File: bfd.info,  Node: aout,  Next: coff,  Prev: What to Put Where,  Up: BFD back ends
10844
108453.2 a.out backends
10846==================
10847
10848*Description*
10849BFD supports a number of different flavours of a.out format, though the
10850major differences are only the sizes of the structures on disk, and the
10851shape of the relocation information.
10852
10853   The support is split into a basic support file `aoutx.h' and other
10854files which derive functions from the base. One derivation file is
10855`aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions
10856support for sun3, sun4, and 386 a.out files, to create a target jump
10857vector for a specific target.
10858
10859   This information is further split out into more specific files for
10860each machine, including `sunos.c' for sun3 and sun4, and `demo64.c' for
10861a demonstration of a 64 bit a.out format.
10862
10863   The base file `aoutx.h' defines general mechanisms for reading and
10864writing records to and from disk and various other methods which BFD
10865requires. It is included by `aout32.c' and `aout64.c' to form the names
10866`aout_32_swap_exec_header_in', `aout_64_swap_exec_header_in', etc.
10867
10868   As an example, this is what goes on to make the back end for a sun4,
10869from `aout32.c':
10870
10871            #define ARCH_SIZE 32
10872            #include "aoutx.h"
10873
10874   Which exports names:
10875
10876            ...
10877            aout_32_canonicalize_reloc
10878            aout_32_find_nearest_line
10879            aout_32_get_lineno
10880            aout_32_get_reloc_upper_bound
10881            ...
10882
10883   from `sunos.c':
10884
10885            #define TARGET_NAME "a.out-sunos-big"
10886            #define VECNAME    sparc_aout_sunos_be_vec
10887            #include "aoutf1.h"
10888
10889   requires all the names from `aout32.c', and produces the jump vector
10890
10891            sparc_aout_sunos_be_vec
10892
10893   The file `host-aout.c' is a special case.  It is for a large set of
10894hosts that use "more or less standard" a.out files, and for which
10895cross-debugging is not interesting.  It uses the standard 32-bit a.out
10896support routines, but determines the file offsets and addresses of the
10897text, data, and BSS sections, the machine architecture and machine
10898type, and the entry point address, in a host-dependent manner.  Once
10899these values have been determined, generic code is used to handle the
10900object file.
10901
10902   When porting it to run on a new system, you must supply:
10903
10904             HOST_PAGE_SIZE
10905             HOST_SEGMENT_SIZE
10906             HOST_MACHINE_ARCH       (optional)
10907             HOST_MACHINE_MACHINE    (optional)
10908             HOST_TEXT_START_ADDR
10909             HOST_STACK_END_ADDR
10910
10911   in the file `../include/sys/h-XXX.h' (for your host).  These values,
10912plus the structures and macros defined in `a.out.h' on your host
10913system, will produce a BFD target that will access ordinary a.out files
10914on your host. To configure a new machine to use `host-aout.c', specify:
10915
10916            TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec
10917            TDEPFILES= host-aout.o trad-core.o
10918
10919   in the `config/XXX.mt' file, and modify `configure.ac' to use the
10920`XXX.mt' file (by setting "`bfd_target=XXX'") when your configuration
10921is selected.
10922
109233.2.1 Relocations
10924-----------------
10925
10926*Description*
10927The file `aoutx.h' provides for both the _standard_ and _extended_
10928forms of a.out relocation records.
10929
10930   The standard records contain only an address, a symbol index, and a
10931type field.  The extended records also have a full integer for an
10932addend.
10933
109343.2.2 Internal entry points
10935---------------------------
10936
10937*Description*
10938`aoutx.h' exports several routines for accessing the contents of an
10939a.out file, which are gathered and exported in turn by various format
10940specific files (eg sunos.c).
10941
109423.2.2.1 `aout_SIZE_swap_exec_header_in'
10943.......................................
10944
10945*Synopsis*
10946     void aout_SIZE_swap_exec_header_in,
10947        (bfd *abfd,
10948         struct external_exec *bytes,
10949         struct internal_exec *execp);
10950   *Description*
10951Swap the information in an executable header RAW_BYTES taken from a raw
10952byte stream memory image into the internal exec header structure EXECP.
10953
109543.2.2.2 `aout_SIZE_swap_exec_header_out'
10955........................................
10956
10957*Synopsis*
10958     void aout_SIZE_swap_exec_header_out
10959        (bfd *abfd,
10960         struct internal_exec *execp,
10961         struct external_exec *raw_bytes);
10962   *Description*
10963Swap the information in an internal exec header structure EXECP into
10964the buffer RAW_BYTES ready for writing to disk.
10965
109663.2.2.3 `aout_SIZE_some_aout_object_p'
10967......................................
10968
10969*Synopsis*
10970     const bfd_target *aout_SIZE_some_aout_object_p
10971        (bfd *abfd,
10972         struct internal_exec *execp,
10973         const bfd_target *(*callback_to_real_object_p) (bfd *));
10974   *Description*
10975Some a.out variant thinks that the file open in ABFD checking is an
10976a.out file.  Do some more checking, and set up for access if it really
10977is.  Call back to the calling environment's "finish up" function just
10978before returning, to handle any last-minute setup.
10979
109803.2.2.4 `aout_SIZE_mkobject'
10981............................
10982
10983*Synopsis*
10984     bool aout_SIZE_mkobject, (bfd *abfd);
10985   *Description*
10986Initialize BFD ABFD for use with a.out files.
10987
109883.2.2.5 `aout_SIZE_machine_type'
10989................................
10990
10991*Synopsis*
10992     enum machine_type  aout_SIZE_machine_type
10993        (enum bfd_architecture arch,
10994         unsigned long machine,
10995         bool *unknown);
10996   *Description*
10997Keep track of machine architecture and machine type for a.out's. Return
10998the `machine_type' for a particular architecture and machine, or
10999`M_UNKNOWN' if that exact architecture and machine can't be represented
11000in a.out format.
11001
11002   If the architecture is understood, machine type 0 (default) is
11003always understood.
11004
110053.2.2.6 `aout_SIZE_set_arch_mach'
11006.................................
11007
11008*Synopsis*
11009     bool aout_SIZE_set_arch_mach,
11010        (bfd *,
11011         enum bfd_architecture arch,
11012         unsigned long machine);
11013   *Description*
11014Set the architecture and the machine of the BFD ABFD to the values ARCH
11015and MACHINE.  Verify that ABFD's format can support the architecture
11016required.
11017
110183.2.2.7 `aout_SIZE_new_section_hook'
11019....................................
11020
11021*Synopsis*
11022     bool aout_SIZE_new_section_hook,
11023        (bfd *abfd,
11024         asection *newsect);
11025   *Description*
11026Called by the BFD in response to a `bfd_make_section' request.
11027
11028
11029File: bfd.info,  Node: coff,  Next: elf,  Prev: aout,  Up: BFD back ends
11030
110313.3 coff backends
11032=================
11033
11034BFD supports a number of different flavours of coff format.  The major
11035differences between formats are the sizes and alignments of fields in
11036structures on disk, and the occasional extra field.
11037
11038   Coff in all its varieties is implemented with a few common files and
11039a number of implementation specific files. For example, the i386 coff
11040format is implemented in the file `coff-i386.c'.  This file `#include's
11041`coff/i386.h' which defines the external structure of the coff format
11042for the i386, and `coff/internal.h' which defines the internal
11043structure. `coff-i386.c' also defines the relocations used by the i386
11044coff format *Note Relocations::.
11045
110463.3.1 Porting to a new version of coff
11047--------------------------------------
11048
11049The recommended method is to select from the existing implementations
11050the version of coff which is most like the one you want to use.  For
11051example, we'll say that i386 coff is the one you select, and that your
11052coff flavour is called foo.  Copy `i386coff.c' to `foocoff.c', copy
11053`../include/coff/i386.h' to `../include/coff/foo.h', and add the lines
11054to `targets.c' and `Makefile.in' so that your new back end is used.
11055Alter the shapes of the structures in `../include/coff/foo.h' so that
11056they match what you need. You will probably also have to add `#ifdef's
11057to the code in `coff/internal.h' and `coffcode.h' if your version of
11058coff is too wild.
11059
11060   You can verify that your new BFD backend works quite simply by
11061building `objdump' from the `binutils' directory, and making sure that
11062its version of what's going on and your host system's idea (assuming it
11063has the pretty standard coff dump utility, usually called `att-dump' or
11064just `dump') are the same.  Then clean up your code, and send what
11065you've done to Cygnus. Then your stuff will be in the next release, and
11066you won't have to keep integrating it.
11067
110683.3.2 How the coff backend works
11069--------------------------------
11070
110713.3.2.1 File layout
11072...................
11073
11074The Coff backend is split into generic routines that are applicable to
11075any Coff target and routines that are specific to a particular target.
11076The target-specific routines are further split into ones which are
11077basically the same for all Coff targets except that they use the
11078external symbol format or use different values for certain constants.
11079
11080   The generic routines are in `coffgen.c'.  These routines work for
11081any Coff target.  They use some hooks into the target specific code;
11082the hooks are in a `bfd_coff_backend_data' structure, one of which
11083exists for each target.
11084
11085   The essentially similar target-specific routines are in
11086`coffcode.h'.  This header file includes executable C code.  The
11087various Coff targets first include the appropriate Coff header file,
11088make any special defines that are needed, and then include `coffcode.h'.
11089
11090   Some of the Coff targets then also have additional routines in the
11091target source file itself.
11092
110933.3.2.2 Coff long section names
11094...............................
11095
11096In the standard Coff object format, section names are limited to the
11097eight bytes available in the `s_name' field of the `SCNHDR' section
11098header structure.  The format requires the field to be NUL-padded, but
11099not necessarily NUL-terminated, so the longest section names permitted
11100are a full eight characters.
11101
11102   The Microsoft PE variants of the Coff object file format add an
11103extension to support the use of long section names.  This extension is
11104defined in section 4 of the Microsoft PE/COFF specification (rev 8.1).
11105If a section name is too long to fit into the section header's `s_name'
11106field, it is instead placed into the string table, and the `s_name'
11107field is filled with a slash ("/") followed by the ASCII decimal
11108representation of the offset of the full name relative to the string
11109table base.
11110
11111   Note that this implies that the extension can only be used in object
11112files, as executables do not contain a string table.  The standard
11113specifies that long section names from objects emitted into executable
11114images are to be truncated.
11115
11116   However, as a GNU extension, BFD can generate executable images that
11117contain a string table and long section names.  This would appear to be
11118technically valid, as the standard only says that Coff debugging
11119information is deprecated, not forbidden, and in practice it works,
11120although some tools that parse PE files expecting the MS standard
11121format may become confused; `PEview' is one known example.
11122
11123   The functionality is supported in BFD by code implemented under the
11124control of the macro `COFF_LONG_SECTION_NAMES'.  If not defined, the
11125format does not support long section names in any way.  If defined, it
11126is used to initialise a flag, `_bfd_coff_long_section_names', and a
11127hook function pointer, `_bfd_coff_set_long_section_names', in the Coff
11128backend data structure.  The flag controls the generation of long
11129section names in output BFDs at runtime; if it is false, as it will be
11130by default when generating an executable image, long section names are
11131truncated; if true, the long section names extension is employed.  The
11132hook points to a function that allows the value of the flag to be
11133altered at runtime, on formats that support long section names at all;
11134on other formats it points to a stub that returns an error indication.
11135
11136   With input BFDs, the flag is set according to whether any long
11137section names are detected while reading the section headers.  For a
11138completely new BFD, the flag is set to the default for the target
11139format.  This information can be used by a client of the BFD library
11140when deciding what output format to generate, and means that a BFD that
11141is opened for read and subsequently converted to a writeable BFD and
11142modified in-place will retain whatever format it had on input.
11143
11144   If `COFF_LONG_SECTION_NAMES' is simply defined (blank), or is
11145defined to the value "1", then long section names are enabled by
11146default; if it is defined to the value zero, they are disabled by
11147default (but still accepted in input BFDs).  The header `coffcode.h'
11148defines a macro, `COFF_DEFAULT_LONG_SECTION_NAMES', which is used in
11149the backends to initialise the backend data structure fields
11150appropriately; see the comments for further detail.
11151
111523.3.2.3 Bit twiddling
11153.....................
11154
11155Each flavour of coff supported in BFD has its own header file
11156describing the external layout of the structures. There is also an
11157internal description of the coff layout, in `coff/internal.h'. A major
11158function of the coff backend is swapping the bytes and twiddling the
11159bits to translate the external form of the structures into the normal
11160internal form. This is all performed in the `bfd_swap'_thing_direction
11161routines. Some elements are different sizes between different versions
11162of coff; it is the duty of the coff version specific include file to
11163override the definitions of various packing routines in `coffcode.h'.
11164E.g., the size of line number entry in coff is sometimes 16 bits, and
11165sometimes 32 bits. `#define'ing `PUT_LNSZ_LNNO' and `GET_LNSZ_LNNO'
11166will select the correct one. No doubt, some day someone will find a
11167version of coff which has a varying field size not catered to at the
11168moment. To port BFD, that person will have to add more `#defines'.
11169Three of the bit twiddling routines are exported to `gdb';
11170`coff_swap_aux_in', `coff_swap_sym_in' and `coff_swap_lineno_in'. `GDB'
11171reads the symbol table on its own, but uses BFD to fix things up.  More
11172of the bit twiddlers are exported for `gas'; `coff_swap_aux_out',
11173`coff_swap_sym_out', `coff_swap_lineno_out', `coff_swap_reloc_out',
11174`coff_swap_filehdr_out', `coff_swap_aouthdr_out',
11175`coff_swap_scnhdr_out'. `Gas' currently keeps track of all the symbol
11176table and reloc drudgery itself, thereby saving the internal BFD
11177overhead, but uses BFD to swap things on the way out, making cross
11178ports much safer.  Doing so also allows BFD (and thus the linker) to
11179use the same header files as `gas', which makes one avenue to disaster
11180disappear.
11181
111823.3.2.4 Symbol reading
11183......................
11184
11185The simple canonical form for symbols used by BFD is not rich enough to
11186keep all the information available in a coff symbol table. The back end
11187gets around this problem by keeping the original symbol table around,
11188"behind the scenes".
11189
11190   When a symbol table is requested (through a call to
11191`bfd_canonicalize_symtab'), a request gets through to
11192`coff_get_normalized_symtab'. This reads the symbol table from the coff
11193file and swaps all the structures inside into the internal form. It
11194also fixes up all the pointers in the table (represented in the file by
11195offsets from the first symbol in the table) into physical pointers to
11196elements in the new internal table. This involves some work since the
11197meanings of fields change depending upon context: a field that is a
11198pointer to another structure in the symbol table at one moment may be
11199the size in bytes of a structure at the next.  Another pass is made
11200over the table. All symbols which mark file names (`C_FILE' symbols)
11201are modified so that the internal string points to the value in the
11202auxent (the real filename) rather than the normal text associated with
11203the symbol (`".file"').
11204
11205   At this time the symbol names are moved around. Coff stores all
11206symbols less than nine characters long physically within the symbol
11207table; longer strings are kept at the end of the file in the string
11208table. This pass moves all strings into memory and replaces them with
11209pointers to the strings.
11210
11211   The symbol table is massaged once again, this time to create the
11212canonical table used by the BFD application. Each symbol is inspected
11213in turn, and a decision made (using the `sclass' field) about the
11214various flags to set in the `asymbol'.  *Note Symbols::. The generated
11215canonical table shares strings with the hidden internal symbol table.
11216
11217   Any linenumbers are read from the coff file too, and attached to the
11218symbols which own the functions the linenumbers belong to.
11219
112203.3.2.5 Symbol writing
11221......................
11222
11223Writing a symbol to a coff file which didn't come from a coff file will
11224lose any debugging information. The `asymbol' structure remembers the
11225BFD from which the symbol was taken, and on output the back end makes
11226sure that the same destination target as source target is present.
11227
11228   When the symbols have come from a coff file then all the debugging
11229information is preserved.
11230
11231   Symbol tables are provided for writing to the back end in a vector
11232of pointers to pointers. This allows applications like the linker to
11233accumulate and output large symbol tables without having to do too much
11234byte copying.
11235
11236   This function runs through the provided symbol table and patches
11237each symbol marked as a file place holder (`C_FILE') to point to the
11238next file place holder in the list. It also marks each `offset' field
11239in the list with the offset from the first symbol of the current symbol.
11240
11241   Another function of this procedure is to turn the canonical value
11242form of BFD into the form used by coff. Internally, BFD expects symbol
11243values to be offsets from a section base; so a symbol physically at
112440x120, but in a section starting at 0x100, would have the value 0x20.
11245Coff expects symbols to contain their final value, so symbols have
11246their values changed at this point to reflect their sum with their
11247owning section.  This transformation uses the `output_section' field of
11248the `asymbol''s `asection' *Note Sections::.
11249
11250   * `coff_mangle_symbols'
11251   This routine runs though the provided symbol table and uses the
11252offsets generated by the previous pass and the pointers generated when
11253the symbol table was read in to create the structured hierarchy
11254required by coff. It changes each pointer to a symbol into the index
11255into the symbol table of the asymbol.
11256
11257   * `coff_write_symbols'
11258   This routine runs through the symbol table and patches up the
11259symbols from their internal form into the coff way, calls the bit
11260twiddlers, and writes out the table to the file.
11261
112623.3.2.6 `coff_symbol_type'
11263..........................
11264
11265*Description*
11266The hidden information for an `asymbol' is described in a
11267`combined_entry_type':
11268
11269
11270     typedef struct coff_ptr_struct
11271     {
11272       /* Remembers the offset from the first symbol in the file for
11273          this symbol. Generated by coff_renumber_symbols.  */
11274       unsigned int offset;
11275
11276       /* Should the value of this symbol be renumbered.  Used for
11277          XCOFF C_BSTAT symbols.  Set by coff_slurp_symbol_table.  */
11278       unsigned int fix_value : 1;
11279
11280       /* Should the tag field of this symbol be renumbered.
11281          Created by coff_pointerize_aux.  */
11282       unsigned int fix_tag : 1;
11283
11284       /* Should the endidx field of this symbol be renumbered.
11285          Created by coff_pointerize_aux.  */
11286       unsigned int fix_end : 1;
11287
11288       /* Should the x_csect.x_scnlen field be renumbered.
11289          Created by coff_pointerize_aux.  */
11290       unsigned int fix_scnlen : 1;
11291
11292       /* Fix up an XCOFF C_BINCL/C_EINCL symbol.  The value is the
11293          index into the line number entries.  Set by coff_slurp_symbol_table.  */
11294       unsigned int fix_line : 1;
11295
11296       /* The container for the symbol structure as read and translated
11297          from the file.  */
11298       union
11299       {
11300         union internal_auxent auxent;
11301         struct internal_syment syment;
11302       } u;
11303
11304      /* Selector for the union above.  */
11305      bool is_sym;
11306
11307      /* An extra pointer which can used by format based on COFF (like XCOFF)
11308         to provide extra information to their backend.  */
11309      void *extrap;
11310     } combined_entry_type;
11311
11312
11313     /* Each canonical asymbol really looks like this: */
11314
11315     typedef struct coff_symbol_struct
11316     {
11317       /* The actual symbol which the rest of BFD works with */
11318       asymbol symbol;
11319
11320       /* A pointer to the hidden information for this symbol */
11321       combined_entry_type *native;
11322
11323       /* A pointer to the linenumber information for this symbol */
11324       struct lineno_cache_entry *lineno;
11325
11326       /* Have the line numbers been relocated yet ? */
11327       bool done_lineno;
11328     } coff_symbol_type;
11329   
113303.3.2.7 `bfd_coff_backend_data'
11331...............................
11332
11333     /* COFF symbol classifications.  */
11334
11335     enum coff_symbol_classification
11336     {
11337       /* Global symbol.  */
11338       COFF_SYMBOL_GLOBAL,
11339       /* Common symbol.  */
11340       COFF_SYMBOL_COMMON,
11341       /* Undefined symbol.  */
11342       COFF_SYMBOL_UNDEFINED,
11343       /* Local symbol.  */
11344       COFF_SYMBOL_LOCAL,
11345       /* PE section symbol.  */
11346       COFF_SYMBOL_PE_SECTION
11347     };
11348
11349     typedef asection * (*coff_gc_mark_hook_fn)
11350       (asection *, struct bfd_link_info *, struct internal_reloc *,
11351        struct coff_link_hash_entry *, struct internal_syment *);
11352Special entry points for gdb to swap in coff symbol table parts:
11353     typedef struct
11354     {
11355       void (*_bfd_coff_swap_aux_in)
11356         (bfd *, void *, int, int, int, int, void *);
11357
11358       void (*_bfd_coff_swap_sym_in)
11359         (bfd *, void *, void *);
11360
11361       void (*_bfd_coff_swap_lineno_in)
11362         (bfd *, void *, void *);
11363
11364       unsigned int (*_bfd_coff_swap_aux_out)
11365         (bfd *, void *, int, int, int, int, void *);
11366
11367       unsigned int (*_bfd_coff_swap_sym_out)
11368         (bfd *, void *, void *);
11369
11370       unsigned int (*_bfd_coff_swap_lineno_out)
11371         (bfd *, void *, void *);
11372
11373       unsigned int (*_bfd_coff_swap_reloc_out)
11374         (bfd *, void *, void *);
11375
11376       unsigned int (*_bfd_coff_swap_filehdr_out)
11377         (bfd *, void *, void *);
11378
11379       unsigned int (*_bfd_coff_swap_aouthdr_out)
11380         (bfd *, void *, void *);
11381
11382       unsigned int (*_bfd_coff_swap_scnhdr_out)
11383         (bfd *, void *, void *);
11384
11385       unsigned int _bfd_filhsz;
11386       unsigned int _bfd_aoutsz;
11387       unsigned int _bfd_scnhsz;
11388       unsigned int _bfd_symesz;
11389       unsigned int _bfd_auxesz;
11390       unsigned int _bfd_relsz;
11391       unsigned int _bfd_linesz;
11392       unsigned int _bfd_filnmlen;
11393       bool _bfd_coff_long_filenames;
11394
11395       bool _bfd_coff_long_section_names;
11396       bool (*_bfd_coff_set_long_section_names)
11397         (bfd *, int);
11398
11399       unsigned int _bfd_coff_default_section_alignment_power;
11400       bool _bfd_coff_force_symnames_in_strings;
11401       unsigned int _bfd_coff_debug_string_prefix_length;
11402       unsigned int _bfd_coff_max_nscns;
11403
11404       void (*_bfd_coff_swap_filehdr_in)
11405         (bfd *, void *, void *);
11406
11407       void (*_bfd_coff_swap_aouthdr_in)
11408         (bfd *, void *, void *);
11409
11410       void (*_bfd_coff_swap_scnhdr_in)
11411         (bfd *, void *, void *);
11412
11413       void (*_bfd_coff_swap_reloc_in)
11414         (bfd *abfd, void *, void *);
11415
11416       bool (*_bfd_coff_bad_format_hook)
11417         (bfd *, void *);
11418
11419       bool (*_bfd_coff_set_arch_mach_hook)
11420         (bfd *, void *);
11421
11422       void * (*_bfd_coff_mkobject_hook)
11423         (bfd *, void *, void *);
11424
11425       bool (*_bfd_styp_to_sec_flags_hook)
11426         (bfd *, void *, const char *, asection *, flagword *);
11427
11428       void (*_bfd_set_alignment_hook)
11429         (bfd *, asection *, void *);
11430
11431       bool (*_bfd_coff_slurp_symbol_table)
11432         (bfd *);
11433
11434       bool (*_bfd_coff_symname_in_debug)
11435         (bfd *, struct internal_syment *);
11436
11437       bool (*_bfd_coff_pointerize_aux_hook)
11438         (bfd *, combined_entry_type *, combined_entry_type *,
11439          unsigned int, combined_entry_type *);
11440
11441       bool (*_bfd_coff_print_aux)
11442         (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
11443          combined_entry_type *, unsigned int);
11444
11445       void (*_bfd_coff_reloc16_extra_cases)
11446         (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
11447          bfd_byte *, unsigned int *, unsigned int *);
11448
11449       int (*_bfd_coff_reloc16_estimate)
11450         (bfd *, asection *, arelent *, unsigned int,
11451          struct bfd_link_info *);
11452
11453       enum coff_symbol_classification (*_bfd_coff_classify_symbol)
11454         (bfd *, struct internal_syment *);
11455
11456       bool (*_bfd_coff_compute_section_file_positions)
11457         (bfd *);
11458
11459       bool (*_bfd_coff_start_final_link)
11460         (bfd *, struct bfd_link_info *);
11461
11462       bool (*_bfd_coff_relocate_section)
11463         (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
11464          struct internal_reloc *, struct internal_syment *, asection **);
11465
11466       reloc_howto_type *(*_bfd_coff_rtype_to_howto)
11467         (bfd *, asection *, struct internal_reloc *,
11468          struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *);
11469
11470       bool (*_bfd_coff_adjust_symndx)
11471         (bfd *, struct bfd_link_info *, bfd *, asection *,
11472          struct internal_reloc *, bool *);
11473
11474       bool (*_bfd_coff_link_add_one_symbol)
11475         (struct bfd_link_info *, bfd *, const char *, flagword,
11476          asection *, bfd_vma, const char *, bool, bool,
11477          struct bfd_link_hash_entry **);
11478
11479       bool (*_bfd_coff_link_output_has_begun)
11480         (bfd *, struct coff_final_link_info *);
11481
11482       bool (*_bfd_coff_final_link_postscript)
11483         (bfd *, struct coff_final_link_info *);
11484
11485       bool (*_bfd_coff_print_pdata)
11486         (bfd *, void *);
11487
11488     } bfd_coff_backend_data;
11489
11490     #define coff_backend_info(abfd) \
11491       ((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
11492
11493     #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \
11494       ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))
11495
11496     #define bfd_coff_swap_sym_in(a,e,i) \
11497       ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))
11498
11499     #define bfd_coff_swap_lineno_in(a,e,i) \
11500       ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))
11501
11502     #define bfd_coff_swap_reloc_out(abfd, i, o) \
11503       ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))
11504
11505     #define bfd_coff_swap_lineno_out(abfd, i, o) \
11506       ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))
11507
11508     #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \
11509       ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))
11510
11511     #define bfd_coff_swap_sym_out(abfd, i,o) \
11512       ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))
11513
11514     #define bfd_coff_swap_scnhdr_out(abfd, i,o) \
11515       ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))
11516
11517     #define bfd_coff_swap_filehdr_out(abfd, i,o) \
11518       ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))
11519
11520     #define bfd_coff_swap_aouthdr_out(abfd, i,o) \
11521       ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))
11522
11523     #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz)
11524     #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz)
11525     #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz)
11526     #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz)
11527     #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz)
11528     #define bfd_coff_relsz(abfd)  (coff_backend_info (abfd)->_bfd_relsz)
11529     #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz)
11530     #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
11531     #define bfd_coff_long_filenames(abfd) \
11532       (coff_backend_info (abfd)->_bfd_coff_long_filenames)
11533     #define bfd_coff_long_section_names(abfd) \
11534       (coff_backend_info (abfd)->_bfd_coff_long_section_names)
11535     #define bfd_coff_set_long_section_names(abfd, enable) \
11536       ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable))
11537     #define bfd_coff_default_section_alignment_power(abfd) \
11538       (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
11539     #define bfd_coff_max_nscns(abfd) \
11540       (coff_backend_info (abfd)->_bfd_coff_max_nscns)
11541
11542     #define bfd_coff_swap_filehdr_in(abfd, i,o) \
11543       ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
11544
11545     #define bfd_coff_swap_aouthdr_in(abfd, i,o) \
11546       ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))
11547
11548     #define bfd_coff_swap_scnhdr_in(abfd, i,o) \
11549       ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))
11550
11551     #define bfd_coff_swap_reloc_in(abfd, i, o) \
11552       ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))
11553
11554     #define bfd_coff_bad_format_hook(abfd, filehdr) \
11555       ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))
11556
11557     #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
11558       ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
11559     #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
11560       ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\
11561        (abfd, filehdr, aouthdr))
11562
11563     #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
11564       ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
11565        (abfd, scnhdr, name, section, flags_ptr))
11566
11567     #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
11568       ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
11569
11570     #define bfd_coff_slurp_symbol_table(abfd)\
11571       ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))
11572
11573     #define bfd_coff_symname_in_debug(abfd, sym)\
11574       ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
11575
11576     #define bfd_coff_force_symnames_in_strings(abfd)\
11577       (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
11578
11579     #define bfd_coff_debug_string_prefix_length(abfd)\
11580       (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
11581
11582     #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
11583       ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
11584        (abfd, file, base, symbol, aux, indaux))
11585
11586     #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
11587                                          reloc, data, src_ptr, dst_ptr)\
11588       ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
11589        (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
11590
11591     #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\
11592       ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
11593        (abfd, section, reloc, shrink, link_info))
11594
11595     #define bfd_coff_classify_symbol(abfd, sym)\
11596       ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
11597        (abfd, sym))
11598
11599     #define bfd_coff_compute_section_file_positions(abfd)\
11600       ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
11601        (abfd))
11602
11603     #define bfd_coff_start_final_link(obfd, info)\
11604       ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
11605        (obfd, info))
11606     #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\
11607       ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
11608        (obfd, info, ibfd, o, con, rel, isyms, secs))
11609     #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\
11610       ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
11611        (abfd, sec, rel, h, sym, addendp))
11612     #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
11613       ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
11614        (obfd, info, ibfd, sec, rel, adjustedp))
11615     #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
11616                                          value, string, cp, coll, hashp)\
11617       ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
11618        (info, abfd, name, flags, section, value, string, cp, coll, hashp))
11619
11620     #define bfd_coff_link_output_has_begun(a,p) \
11621       ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p))
11622     #define bfd_coff_final_link_postscript(a,p) \
11623       ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p))
11624
11625     #define bfd_coff_have_print_pdata(a) \
11626       (coff_backend_info (a)->_bfd_coff_print_pdata)
11627     #define bfd_coff_print_pdata(a,p) \
11628       ((coff_backend_info (a)->_bfd_coff_print_pdata) (a, p))
11629
11630     /* Macro: Returns true if the bfd is a PE executable as opposed to a
11631        PE object file.  */
11632     #define bfd_pei_p(abfd) \
11633       (startswith ((abfd)->xvec->name, "pei-"))
11634
116353.3.2.8 Writing relocations
11636...........................
11637
11638To write relocations, the back end steps though the canonical
11639relocation table and create an `internal_reloc'. The symbol index to
11640use is removed from the `offset' field in the symbol table supplied.
11641The address comes directly from the sum of the section base address and
11642the relocation offset; the type is dug directly from the howto field.
11643Then the `internal_reloc' is swapped into the shape of an
11644`external_reloc' and written out to disk.
11645
116463.3.2.9 Reading linenumbers
11647...........................
11648
11649Creating the linenumber table is done by reading in the entire coff
11650linenumber table, and creating another table for internal use.
11651
11652   A coff linenumber table is structured so that each function is
11653marked as having a line number of 0. Each line within the function is
11654an offset from the first line in the function. The base of the line
11655number information for the table is stored in the symbol associated
11656with the function.
11657
11658   Note: The PE format uses line number 0 for a flag indicating a new
11659source file.
11660
11661   The information is copied from the external to the internal table,
11662and each symbol which marks a function is marked by pointing its...
11663
11664   How does this work ?
11665
116663.3.2.10 Reading relocations
11667............................
11668
11669Coff relocations are easily transformed into the internal BFD form
11670(`arelent').
11671
11672   Reading a coff relocation table is done in the following stages:
11673
11674   * Read the entire coff relocation table into memory.
11675
11676   * Process each relocation in turn; first swap it from the external
11677     to the internal form.
11678
11679   * Turn the symbol referenced in the relocation's symbol index into a
11680     pointer into the canonical symbol table.  This table is the same
11681     as the one returned by a call to `bfd_canonicalize_symtab'. The
11682     back end will call that routine and save the result if a
11683     canonicalization hasn't been done.
11684
11685   * The reloc index is turned into a pointer to a howto structure, in
11686     a back end specific way. For instance, the 386 uses the `r_type'
11687     to directly produce an index into a howto table vector.
11688
11689
11690File: bfd.info,  Node: elf,  Next: mmo,  Prev: coff,  Up: BFD back ends
11691
116923.4 ELF backends
11693================
11694
11695BFD support for ELF formats is being worked on.  Currently, the best
11696supported back ends are for sparc and i386 (running svr4 or Solaris 2).
11697
11698   Documentation of the internals of the support code still needs to be
11699written.  The code is changing quickly enough that we haven't bothered
11700yet.
11701
11702
11703File: bfd.info,  Node: mmo,  Prev: elf,  Up: BFD back ends
11704
117053.5 mmo backend
11706===============
11707
11708The mmo object format is used exclusively together with Professor
11709Donald E. Knuth's educational 64-bit processor MMIX.  The simulator
11710`mmix' which is available at `http://mmix.cs.hm.edu/src/index.html'
11711understands this format.  That package also includes a combined
11712assembler and linker called `mmixal'.  The mmo format has no advantages
11713feature-wise compared to e.g. ELF.  It is a simple non-relocatable
11714object format with no support for archives or debugging information,
11715except for symbol value information and line numbers (which is not yet
11716implemented in BFD).  See `http://mmix.cs.hm.edu/' for more information
11717about MMIX.  The ELF format is used for intermediate object files in
11718the BFD implementation.
11719
11720* Menu:
11721
11722* File layout::
11723* Symbol-table::
11724* mmo section mapping::
11725
11726
11727File: bfd.info,  Node: File layout,  Next: Symbol-table,  Prev: mmo,  Up: mmo
11728
117293.5.1 File layout
11730-----------------
11731
11732The mmo file contents is not partitioned into named sections as with
11733e.g. ELF.  Memory areas is formed by specifying the location of the
11734data that follows.  Only the memory area `0x0000...00' to `0x01ff...ff'
11735is executable, so it is used for code (and constants) and the area
11736`0x2000...00' to `0x20ff...ff' is used for writable data.  *Note mmo
11737section mapping::.
11738
11739   There is provision for specifying "special data" of 65536 different
11740types.  We use type 80 (decimal), arbitrarily chosen the same as the
11741ELF `e_machine' number for MMIX, filling it with section information
11742normally found in ELF objects. *Note mmo section mapping::.
11743
11744   Contents is entered as 32-bit words, xor:ed over previous contents,
11745always zero-initialized.  A word that starts with the byte `0x98' forms
11746a command called a `lopcode', where the next byte distinguished between
11747the thirteen lopcodes.  The two remaining bytes, called the `Y' and `Z'
11748fields, or the `YZ' field (a 16-bit big-endian number), are used for
11749various purposes different for each lopcode.  As documented in
11750`http://mmix.cs.hm.edu/doc/mmixal.pdf', the lopcodes are:
11751
11752`lop_quote'
11753     0x98000001.  The next word is contents, regardless of whether it
11754     starts with 0x98 or not.
11755
11756`lop_loc'
11757     0x9801YYZZ, where `Z' is 1 or 2.  This is a location directive,
11758     setting the location for the next data to the next 32-bit word
11759     (for Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56.  Normally
11760     `Y' is 0 for the text segment and 2 for the data segment.  Beware
11761     that the low bits of non- tetrabyte-aligned values are silently
11762     discarded when being automatically incremented and when storing
11763     contents (in contrast to e.g. its use as current location when
11764     followed by lop_fixo et al before the next possibly-quoted
11765     tetrabyte contents).
11766
11767`lop_skip'
11768     0x9802YYZZ.  Increase the current location by `YZ' bytes.
11769
11770`lop_fixo'
11771     0x9803YYZZ, where `Z' is 1 or 2.  Store the current location as 64
11772     bits into the location pointed to by the next 32-bit (Z = 1) or
11773     64-bit (Z = 2) word, plus Y * 2^56.
11774
11775`lop_fixr'
11776     0x9804YYZZ.  `YZ' is stored into the current location plus 2 - 4 *
11777     YZ.
11778
11779`lop_fixrx'
11780     0x980500ZZ.  `Z' is 16 or 24.  A value `L' derived from the
11781     following 32-bit word are used in a manner similar to `YZ' in
11782     lop_fixr: it is xor:ed into the current location minus 4 * L.  The
11783     first byte of the word is 0 or 1.  If it is 1, then L = (LOWEST 24
11784     BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD).
11785
11786`lop_file'
11787     0x9806YYZZ.  `Y' is the file number, `Z' is count of 32-bit words.
11788     Set the file number to `Y' and the line counter to 0.  The next Z
11789     * 4 bytes contain the file name, padded with zeros if the count is
11790     not a multiple of four.  The same `Y' may occur multiple times,
11791     but `Z' must be 0 for all but the first occurrence.
11792
11793`lop_line'
11794     0x9807YYZZ.  `YZ' is the line number.  Together with lop_file, it
11795     forms the source location for the next 32-bit word.  Note that for
11796     each non-lopcode 32-bit word, line numbers are assumed incremented
11797     by one.
11798
11799`lop_spec'
11800     0x9808YYZZ.  `YZ' is the type number.  Data until the next lopcode
11801     other than lop_quote forms special data of type `YZ'.  *Note mmo
11802     section mapping::.
11803
11804     Other types than 80, (or type 80 with a content that does not
11805     parse) is stored in sections named `.MMIX.spec_data.N' where N is
11806     the `YZ'-type.  The flags for such a sections say not to allocate
11807     or load the data.  The vma is 0.  Contents of multiple occurrences
11808     of special data N is concatenated to the data of the previous
11809     lop_spec Ns.  The location in data or code at which the lop_spec
11810     occurred is lost.
11811
11812`lop_pre'
11813     0x980901ZZ.  The first lopcode in a file.  The `Z' field forms the
11814     length of header information in 32-bit words, where the first word
11815     tells the time in seconds since `00:00:00 GMT Jan 1 1970'.
11816
11817`lop_post'
11818     0x980a00ZZ.  Z > 32.  This lopcode follows after all
11819     content-generating lopcodes in a program.  The `Z' field denotes
11820     the value of `rG' at the beginning of the program.  The following
11821     256 - Z big-endian 64-bit words are loaded into global registers
11822     `$G' ... `$255'.
11823
11824`lop_stab'
11825     0x980b0000.  The next-to-last lopcode in a program.  Must follow
11826     immediately after the lop_post lopcode and its data.  After this
11827     lopcode follows all symbols in a compressed format (*note
11828     Symbol-table::).
11829
11830`lop_end'
11831     0x980cYYZZ.  The last lopcode in a program.  It must follow the
11832     lop_stab lopcode and its data.  The `YZ' field contains the number
11833     of 32-bit words of symbol table information after the preceding
11834     lop_stab lopcode.
11835
11836   Note that the lopcode "fixups"; `lop_fixr', `lop_fixrx' and
11837`lop_fixo' are not generated by BFD, but are handled.  They are
11838generated by `mmixal'.
11839
11840   This trivial one-label, one-instruction file:
11841
11842      :Main TRAP 1,2,3
11843
11844   can be represented this way in mmo:
11845
11846      0x98090101 - lop_pre, one 32-bit word with timestamp.
11847      <timestamp>
11848      0x98010002 - lop_loc, text segment, using a 64-bit address.
11849                   Note that mmixal does not emit this for the file above.
11850      0x00000000 - Address, high 32 bits.
11851      0x00000000 - Address, low 32 bits.
11852      0x98060002 - lop_file, 2 32-bit words for file-name.
11853      0x74657374 - "test"
11854      0x2e730000 - ".s\0\0"
11855      0x98070001 - lop_line, line 1.
11856      0x00010203 - TRAP 1,2,3
11857      0x980a00ff - lop_post, setting $255 to 0.
11858      0x00000000
11859      0x00000000
11860      0x980b0000 - lop_stab for ":Main" = 0, serial 1.
11861      0x203a4040   *Note Symbol-table::.
11862      0x10404020
11863      0x4d206120
11864      0x69016e00
11865      0x81000000
11866      0x980c0005 - lop_end; symbol table contained five 32-bit words.
11867
11868
11869File: bfd.info,  Node: Symbol-table,  Next: mmo section mapping,  Prev: File layout,  Up: mmo
11870
118713.5.2 Symbol table format
11872-------------------------
11873
11874From mmixal.w (or really, the generated mmixal.tex) in the MMIXware
11875package which also contains the `mmix' simulator: "Symbols are stored
11876and retrieved by means of a `ternary search trie', following ideas of
11877Bentley and Sedgewick. (See ACM-SIAM Symp. on Discrete Algorithms `8'
11878(1997), 360-369; R.Sedgewick, `Algorithms in C' (Reading, Mass.
11879Addison-Wesley, 1998), `15.4'.)  Each trie node stores a character, and
11880there are branches to subtries for the cases where a given character is
11881less than, equal to, or greater than the character in the trie.  There
11882also is a pointer to a symbol table entry if a symbol ends at the
11883current node."
11884
11885   So it's a tree encoded as a stream of bytes.  The stream of bytes
11886acts on a single virtual global symbol, adding and removing characters
11887and signalling complete symbol points.  Here, we read the stream and
11888create symbols at the completion points.
11889
11890   First, there's a control byte `m'.  If any of the listed bits in `m'
11891is nonzero, we execute what stands at the right, in the listed order:
11892
11893      (MMO3_LEFT)
11894      0x40 - Traverse left trie.
11895             (Read a new command byte and recurse.)
11896
11897      (MMO3_SYMBITS)
11898      0x2f - Read the next byte as a character and store it in the
11899             current character position; increment character position.
11900             Test the bits of `m':
11901
11902             (MMO3_WCHAR)
11903             0x80 - The character is 16-bit (so read another byte,
11904                    merge into current character.
11905
11906             (MMO3_TYPEBITS)
11907             0xf  - We have a complete symbol; parse the type, value
11908                    and serial number and do what should be done
11909                    with a symbol.  The type and length information
11910                    is in j = (m & 0xf).
11911
11912                    (MMO3_REGQUAL_BITS)
11913                    j == 0xf: A register variable.  The following
11914                              byte tells which register.
11915                    j <= 8:   An absolute symbol.  Read j bytes as the
11916                              big-endian number the symbol equals.
11917                              A j = 2 with two zero bytes denotes an
11918                              unknown symbol.
11919                    j > 8:    As with j <= 8, but add (0x20 << 56)
11920                              to the value in the following j - 8
11921                              bytes.
11922
11923                    Then comes the serial number, as a variant of
11924                    uleb128, but better named ubeb128:
11925                    Read bytes and shift the previous value left 7
11926                    (multiply by 128).  Add in the new byte, repeat
11927                    until a byte has bit 7 set.  The serial number
11928                    is the computed value minus 128.
11929
11930             (MMO3_MIDDLE)
11931             0x20 - Traverse middle trie.  (Read a new command byte
11932                    and recurse.)  Decrement character position.
11933
11934      (MMO3_RIGHT)
11935      0x10 - Traverse right trie.  (Read a new command byte and
11936             recurse.)
11937
11938   Let's look again at the `lop_stab' for the trivial file (*note File
11939layout::).
11940
11941      0x980b0000 - lop_stab for ":Main" = 0, serial 1.
11942      0x203a4040
11943      0x10404020
11944      0x4d206120
11945      0x69016e00
11946      0x81000000
11947
11948   This forms the trivial trie (note that the path between ":" and "M"
11949is redundant):
11950
11951      203a     ":"
11952      40       /
11953      40      /
11954      10      \
11955      40      /
11956      40     /
11957      204d  "M"
11958      2061  "a"
11959      2069  "i"
11960      016e  "n" is the last character in a full symbol, and
11961            with a value represented in one byte.
11962      00    The value is 0.
11963      81    The serial number is 1.
11964
11965
11966File: bfd.info,  Node: mmo section mapping,  Prev: Symbol-table,  Up: mmo
11967
119683.5.3 mmo section mapping
11969-------------------------
11970
11971The implementation in BFD uses special data type 80 (decimal) to
11972encapsulate and describe named sections, containing e.g. debug
11973information.  If needed, any datum in the encapsulation will be quoted
11974using lop_quote.  First comes a 32-bit word holding the number of
1197532-bit words containing the zero-terminated zero-padded segment name.
11976After the name there's a 32-bit word holding flags describing the
11977section type.  Then comes a 64-bit big-endian word with the section
11978length (in bytes), then another with the section start address.
11979Depending on the type of section, the contents might follow,
11980zero-padded to 32-bit boundary.  For a loadable section (such as data
11981or code), the contents might follow at some later point, not
11982necessarily immediately, as a lop_loc with the same start address as in
11983the section description, followed by the contents.  This in effect
11984forms a descriptor that must be emitted before the actual contents.
11985Sections described this way must not overlap.
11986
11987   For areas that don't have such descriptors, synthetic sections are
11988formed by BFD.  Consecutive contents in the two memory areas
11989`0x0000...00' to `0x01ff...ff' and `0x2000...00' to `0x20ff...ff' are
11990entered in sections named `.text' and `.data' respectively.  If an area
11991is not otherwise described, but would together with a neighboring lower
11992area be less than `0x40000000' bytes long, it is joined with the lower
11993area and the gap is zero-filled.  For other cases, a new section is
11994formed, named `.MMIX.sec.N'.  Here, N is a number, a running count
11995through the mmo file, starting at 0.
11996
11997   A loadable section specified as:
11998
11999      .section secname,"ax"
12000      TETRA 1,2,3,4,-1,-2009
12001      BYTE 80
12002
12003   and linked to address `0x4', is represented by the sequence:
12004
12005      0x98080050 - lop_spec 80
12006      0x00000002 - two 32-bit words for the section name
12007      0x7365636e - "secn"
12008      0x616d6500 - "ame\0"
12009      0x00000033 - flags CODE, READONLY, LOAD, ALLOC
12010      0x00000000 - high 32 bits of section length
12011      0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits
12012      0x00000000 - high 32 bits of section address
12013      0x00000004 - section address is 4
12014      0x98010002 - 64 bits with address of following data
12015      0x00000000 - high 32 bits of address
12016      0x00000004 - low 32 bits: data starts at address 4
12017      0x00000001 - 1
12018      0x00000002 - 2
12019      0x00000003 - 3
12020      0x00000004 - 4
12021      0xffffffff - -1
12022      0xfffff827 - -2009
12023      0x50000000 - 80 as a byte, padded with zeros.
12024
12025   Note that the lop_spec wrapping does not include the section
12026contents.  Compare this to a non-loaded section specified as:
12027
12028      .section thirdsec
12029      TETRA 200001,100002
12030      BYTE 38,40
12031
12032   This, when linked to address `0x200000000000001c', is represented by:
12033
12034      0x98080050 - lop_spec 80
12035      0x00000002 - two 32-bit words for the section name
12036      0x7365636e - "thir"
12037      0x616d6500 - "dsec"
12038      0x00000010 - flag READONLY
12039      0x00000000 - high 32 bits of section length
12040      0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits
12041      0x20000000 - high 32 bits of address
12042      0x0000001c - low 32 bits of address 0x200000000000001c
12043      0x00030d41 - 200001
12044      0x000186a2 - 100002
12045      0x26280000 - 38, 40 as bytes, padded with zeros
12046
12047   For the latter example, the section contents must not be loaded in
12048memory, and is therefore specified as part of the special data.  The
12049address is usually unimportant but might provide information for e.g.
12050the DWARF 2 debugging format.
12051
12052
12053File: bfd.info,  Node: GNU Free Documentation License,  Next: BFD Index,  Prev: BFD back ends,  Up: Top
12054
12055                     Version 1.3, 3 November 2008
12056
12057     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
12058     `http://fsf.org/'
12059
12060     Everyone is permitted to copy and distribute verbatim copies
12061     of this license document, but changing it is not allowed.
12062
12063  0. PREAMBLE
12064
12065     The purpose of this License is to make a manual, textbook, or other
12066     functional and useful document "free" in the sense of freedom: to
12067     assure everyone the effective freedom to copy and redistribute it,
12068     with or without modifying it, either commercially or
12069     noncommercially.  Secondarily, this License preserves for the
12070     author and publisher a way to get credit for their work, while not
12071     being considered responsible for modifications made by others.
12072
12073     This License is a kind of "copyleft", which means that derivative
12074     works of the document must themselves be free in the same sense.
12075     It complements the GNU General Public License, which is a copyleft
12076     license designed for free software.
12077
12078     We have designed this License in order to use it for manuals for
12079     free software, because free software needs free documentation: a
12080     free program should come with manuals providing the same freedoms
12081     that the software does.  But this License is not limited to
12082     software manuals; it can be used for any textual work, regardless
12083     of subject matter or whether it is published as a printed book.
12084     We recommend this License principally for works whose purpose is
12085     instruction or reference.
12086
12087  1. APPLICABILITY AND DEFINITIONS
12088
12089     This License applies to any manual or other work, in any medium,
12090     that contains a notice placed by the copyright holder saying it
12091     can be distributed under the terms of this License.  Such a notice
12092     grants a world-wide, royalty-free license, unlimited in duration,
12093     to use that work under the conditions stated herein.  The
12094     "Document", below, refers to any such manual or work.  Any member
12095     of the public is a licensee, and is addressed as "you".  You
12096     accept the license if you copy, modify or distribute the work in a
12097     way requiring permission under copyright law.
12098
12099     A "Modified Version" of the Document means any work containing the
12100     Document or a portion of it, either copied verbatim, or with
12101     modifications and/or translated into another language.
12102
12103     A "Secondary Section" is a named appendix or a front-matter section
12104     of the Document that deals exclusively with the relationship of the
12105     publishers or authors of the Document to the Document's overall
12106     subject (or to related matters) and contains nothing that could
12107     fall directly within that overall subject.  (Thus, if the Document
12108     is in part a textbook of mathematics, a Secondary Section may not
12109     explain any mathematics.)  The relationship could be a matter of
12110     historical connection with the subject or with related matters, or
12111     of legal, commercial, philosophical, ethical or political position
12112     regarding them.
12113
12114     The "Invariant Sections" are certain Secondary Sections whose
12115     titles are designated, as being those of Invariant Sections, in
12116     the notice that says that the Document is released under this
12117     License.  If a section does not fit the above definition of
12118     Secondary then it is not allowed to be designated as Invariant.
12119     The Document may contain zero Invariant Sections.  If the Document
12120     does not identify any Invariant Sections then there are none.
12121
12122     The "Cover Texts" are certain short passages of text that are
12123     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
12124     that says that the Document is released under this License.  A
12125     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
12126     be at most 25 words.
12127
12128     A "Transparent" copy of the Document means a machine-readable copy,
12129     represented in a format whose specification is available to the
12130     general public, that is suitable for revising the document
12131     straightforwardly with generic text editors or (for images
12132     composed of pixels) generic paint programs or (for drawings) some
12133     widely available drawing editor, and that is suitable for input to
12134     text formatters or for automatic translation to a variety of
12135     formats suitable for input to text formatters.  A copy made in an
12136     otherwise Transparent file format whose markup, or absence of
12137     markup, has been arranged to thwart or discourage subsequent
12138     modification by readers is not Transparent.  An image format is
12139     not Transparent if used for any substantial amount of text.  A
12140     copy that is not "Transparent" is called "Opaque".
12141
12142     Examples of suitable formats for Transparent copies include plain
12143     ASCII without markup, Texinfo input format, LaTeX input format,
12144     SGML or XML using a publicly available DTD, and
12145     standard-conforming simple HTML, PostScript or PDF designed for
12146     human modification.  Examples of transparent image formats include
12147     PNG, XCF and JPG.  Opaque formats include proprietary formats that
12148     can be read and edited only by proprietary word processors, SGML or
12149     XML for which the DTD and/or processing tools are not generally
12150     available, and the machine-generated HTML, PostScript or PDF
12151     produced by some word processors for output purposes only.
12152
12153     The "Title Page" means, for a printed book, the title page itself,
12154     plus such following pages as are needed to hold, legibly, the
12155     material this License requires to appear in the title page.  For
12156     works in formats which do not have any title page as such, "Title
12157     Page" means the text near the most prominent appearance of the
12158     work's title, preceding the beginning of the body of the text.
12159
12160     The "publisher" means any person or entity that distributes copies
12161     of the Document to the public.
12162
12163     A section "Entitled XYZ" means a named subunit of the Document
12164     whose title either is precisely XYZ or contains XYZ in parentheses
12165     following text that translates XYZ in another language.  (Here XYZ
12166     stands for a specific section name mentioned below, such as
12167     "Acknowledgements", "Dedications", "Endorsements", or "History".)
12168     To "Preserve the Title" of such a section when you modify the
12169     Document means that it remains a section "Entitled XYZ" according
12170     to this definition.
12171
12172     The Document may include Warranty Disclaimers next to the notice
12173     which states that this License applies to the Document.  These
12174     Warranty Disclaimers are considered to be included by reference in
12175     this License, but only as regards disclaiming warranties: any other
12176     implication that these Warranty Disclaimers may have is void and
12177     has no effect on the meaning of this License.
12178
12179  2. VERBATIM COPYING
12180
12181     You may copy and distribute the Document in any medium, either
12182     commercially or noncommercially, provided that this License, the
12183     copyright notices, and the license notice saying this License
12184     applies to the Document are reproduced in all copies, and that you
12185     add no other conditions whatsoever to those of this License.  You
12186     may not use technical measures to obstruct or control the reading
12187     or further copying of the copies you make or distribute.  However,
12188     you may accept compensation in exchange for copies.  If you
12189     distribute a large enough number of copies you must also follow
12190     the conditions in section 3.
12191
12192     You may also lend copies, under the same conditions stated above,
12193     and you may publicly display copies.
12194
12195  3. COPYING IN QUANTITY
12196
12197     If you publish printed copies (or copies in media that commonly
12198     have printed covers) of the Document, numbering more than 100, and
12199     the Document's license notice requires Cover Texts, you must
12200     enclose the copies in covers that carry, clearly and legibly, all
12201     these Cover Texts: Front-Cover Texts on the front cover, and
12202     Back-Cover Texts on the back cover.  Both covers must also clearly
12203     and legibly identify you as the publisher of these copies.  The
12204     front cover must present the full title with all words of the
12205     title equally prominent and visible.  You may add other material
12206     on the covers in addition.  Copying with changes limited to the
12207     covers, as long as they preserve the title of the Document and
12208     satisfy these conditions, can be treated as verbatim copying in
12209     other respects.
12210
12211     If the required texts for either cover are too voluminous to fit
12212     legibly, you should put the first ones listed (as many as fit
12213     reasonably) on the actual cover, and continue the rest onto
12214     adjacent pages.
12215
12216     If you publish or distribute Opaque copies of the Document
12217     numbering more than 100, you must either include a
12218     machine-readable Transparent copy along with each Opaque copy, or
12219     state in or with each Opaque copy a computer-network location from
12220     which the general network-using public has access to download
12221     using public-standard network protocols a complete Transparent
12222     copy of the Document, free of added material.  If you use the
12223     latter option, you must take reasonably prudent steps, when you
12224     begin distribution of Opaque copies in quantity, to ensure that
12225     this Transparent copy will remain thus accessible at the stated
12226     location until at least one year after the last time you
12227     distribute an Opaque copy (directly or through your agents or
12228     retailers) of that edition to the public.
12229
12230     It is requested, but not required, that you contact the authors of
12231     the Document well before redistributing any large number of
12232     copies, to give them a chance to provide you with an updated
12233     version of the Document.
12234
12235  4. MODIFICATIONS
12236
12237     You may copy and distribute a Modified Version of the Document
12238     under the conditions of sections 2 and 3 above, provided that you
12239     release the Modified Version under precisely this License, with
12240     the Modified Version filling the role of the Document, thus
12241     licensing distribution and modification of the Modified Version to
12242     whoever possesses a copy of it.  In addition, you must do these
12243     things in the Modified Version:
12244
12245       A. Use in the Title Page (and on the covers, if any) a title
12246          distinct from that of the Document, and from those of
12247          previous versions (which should, if there were any, be listed
12248          in the History section of the Document).  You may use the
12249          same title as a previous version if the original publisher of
12250          that version gives permission.
12251
12252       B. List on the Title Page, as authors, one or more persons or
12253          entities responsible for authorship of the modifications in
12254          the Modified Version, together with at least five of the
12255          principal authors of the Document (all of its principal
12256          authors, if it has fewer than five), unless they release you
12257          from this requirement.
12258
12259       C. State on the Title page the name of the publisher of the
12260          Modified Version, as the publisher.
12261
12262       D. Preserve all the copyright notices of the Document.
12263
12264       E. Add an appropriate copyright notice for your modifications
12265          adjacent to the other copyright notices.
12266
12267       F. Include, immediately after the copyright notices, a license
12268          notice giving the public permission to use the Modified
12269          Version under the terms of this License, in the form shown in
12270          the Addendum below.
12271
12272       G. Preserve in that license notice the full lists of Invariant
12273          Sections and required Cover Texts given in the Document's
12274          license notice.
12275
12276       H. Include an unaltered copy of this License.
12277
12278       I. Preserve the section Entitled "History", Preserve its Title,
12279          and add to it an item stating at least the title, year, new
12280          authors, and publisher of the Modified Version as given on
12281          the Title Page.  If there is no section Entitled "History" in
12282          the Document, create one stating the title, year, authors,
12283          and publisher of the Document as given on its Title Page,
12284          then add an item describing the Modified Version as stated in
12285          the previous sentence.
12286
12287       J. Preserve the network location, if any, given in the Document
12288          for public access to a Transparent copy of the Document, and
12289          likewise the network locations given in the Document for
12290          previous versions it was based on.  These may be placed in
12291          the "History" section.  You may omit a network location for a
12292          work that was published at least four years before the
12293          Document itself, or if the original publisher of the version
12294          it refers to gives permission.
12295
12296       K. For any section Entitled "Acknowledgements" or "Dedications",
12297          Preserve the Title of the section, and preserve in the
12298          section all the substance and tone of each of the contributor
12299          acknowledgements and/or dedications given therein.
12300
12301       L. Preserve all the Invariant Sections of the Document,
12302          unaltered in their text and in their titles.  Section numbers
12303          or the equivalent are not considered part of the section
12304          titles.
12305
12306       M. Delete any section Entitled "Endorsements".  Such a section
12307          may not be included in the Modified Version.
12308
12309       N. Do not retitle any existing section to be Entitled
12310          "Endorsements" or to conflict in title with any Invariant
12311          Section.
12312
12313       O. Preserve any Warranty Disclaimers.
12314
12315     If the Modified Version includes new front-matter sections or
12316     appendices that qualify as Secondary Sections and contain no
12317     material copied from the Document, you may at your option
12318     designate some or all of these sections as invariant.  To do this,
12319     add their titles to the list of Invariant Sections in the Modified
12320     Version's license notice.  These titles must be distinct from any
12321     other section titles.
12322
12323     You may add a section Entitled "Endorsements", provided it contains
12324     nothing but endorsements of your Modified Version by various
12325     parties--for example, statements of peer review or that the text
12326     has been approved by an organization as the authoritative
12327     definition of a standard.
12328
12329     You may add a passage of up to five words as a Front-Cover Text,
12330     and a passage of up to 25 words as a Back-Cover Text, to the end
12331     of the list of Cover Texts in the Modified Version.  Only one
12332     passage of Front-Cover Text and one of Back-Cover Text may be
12333     added by (or through arrangements made by) any one entity.  If the
12334     Document already includes a cover text for the same cover,
12335     previously added by you or by arrangement made by the same entity
12336     you are acting on behalf of, you may not add another; but you may
12337     replace the old one, on explicit permission from the previous
12338     publisher that added the old one.
12339
12340     The author(s) and publisher(s) of the Document do not by this
12341     License give permission to use their names for publicity for or to
12342     assert or imply endorsement of any Modified Version.
12343
12344  5. COMBINING DOCUMENTS
12345
12346     You may combine the Document with other documents released under
12347     this License, under the terms defined in section 4 above for
12348     modified versions, provided that you include in the combination
12349     all of the Invariant Sections of all of the original documents,
12350     unmodified, and list them all as Invariant Sections of your
12351     combined work in its license notice, and that you preserve all
12352     their Warranty Disclaimers.
12353
12354     The combined work need only contain one copy of this License, and
12355     multiple identical Invariant Sections may be replaced with a single
12356     copy.  If there are multiple Invariant Sections with the same name
12357     but different contents, make the title of each such section unique
12358     by adding at the end of it, in parentheses, the name of the
12359     original author or publisher of that section if known, or else a
12360     unique number.  Make the same adjustment to the section titles in
12361     the list of Invariant Sections in the license notice of the
12362     combined work.
12363
12364     In the combination, you must combine any sections Entitled
12365     "History" in the various original documents, forming one section
12366     Entitled "History"; likewise combine any sections Entitled
12367     "Acknowledgements", and any sections Entitled "Dedications".  You
12368     must delete all sections Entitled "Endorsements."
12369
12370  6. COLLECTIONS OF DOCUMENTS
12371
12372     You may make a collection consisting of the Document and other
12373     documents released under this License, and replace the individual
12374     copies of this License in the various documents with a single copy
12375     that is included in the collection, provided that you follow the
12376     rules of this License for verbatim copying of each of the
12377     documents in all other respects.
12378
12379     You may extract a single document from such a collection, and
12380     distribute it individually under this License, provided you insert
12381     a copy of this License into the extracted document, and follow
12382     this License in all other respects regarding verbatim copying of
12383     that document.
12384
12385  7. AGGREGATION WITH INDEPENDENT WORKS
12386
12387     A compilation of the Document or its derivatives with other
12388     separate and independent documents or works, in or on a volume of
12389     a storage or distribution medium, is called an "aggregate" if the
12390     copyright resulting from the compilation is not used to limit the
12391     legal rights of the compilation's users beyond what the individual
12392     works permit.  When the Document is included in an aggregate, this
12393     License does not apply to the other works in the aggregate which
12394     are not themselves derivative works of the Document.
12395
12396     If the Cover Text requirement of section 3 is applicable to these
12397     copies of the Document, then if the Document is less than one half
12398     of the entire aggregate, the Document's Cover Texts may be placed
12399     on covers that bracket the Document within the aggregate, or the
12400     electronic equivalent of covers if the Document is in electronic
12401     form.  Otherwise they must appear on printed covers that bracket
12402     the whole aggregate.
12403
12404  8. TRANSLATION
12405
12406     Translation is considered a kind of modification, so you may
12407     distribute translations of the Document under the terms of section
12408     4.  Replacing Invariant Sections with translations requires special
12409     permission from their copyright holders, but you may include
12410     translations of some or all Invariant Sections in addition to the
12411     original versions of these Invariant Sections.  You may include a
12412     translation of this License, and all the license notices in the
12413     Document, and any Warranty Disclaimers, provided that you also
12414     include the original English version of this License and the
12415     original versions of those notices and disclaimers.  In case of a
12416     disagreement between the translation and the original version of
12417     this License or a notice or disclaimer, the original version will
12418     prevail.
12419
12420     If a section in the Document is Entitled "Acknowledgements",
12421     "Dedications", or "History", the requirement (section 4) to
12422     Preserve its Title (section 1) will typically require changing the
12423     actual title.
12424
12425  9. TERMINATION
12426
12427     You may not copy, modify, sublicense, or distribute the Document
12428     except as expressly provided under this License.  Any attempt
12429     otherwise to copy, modify, sublicense, or distribute it is void,
12430     and will automatically terminate your rights under this License.
12431
12432     However, if you cease all violation of this License, then your
12433     license from a particular copyright holder is reinstated (a)
12434     provisionally, unless and until the copyright holder explicitly
12435     and finally terminates your license, and (b) permanently, if the
12436     copyright holder fails to notify you of the violation by some
12437     reasonable means prior to 60 days after the cessation.
12438
12439     Moreover, your license from a particular copyright holder is
12440     reinstated permanently if the copyright holder notifies you of the
12441     violation by some reasonable means, this is the first time you have
12442     received notice of violation of this License (for any work) from
12443     that copyright holder, and you cure the violation prior to 30 days
12444     after your receipt of the notice.
12445
12446     Termination of your rights under this section does not terminate
12447     the licenses of parties who have received copies or rights from
12448     you under this License.  If your rights have been terminated and
12449     not permanently reinstated, receipt of a copy of some or all of
12450     the same material does not give you any rights to use it.
12451
12452 10. FUTURE REVISIONS OF THIS LICENSE
12453
12454     The Free Software Foundation may publish new, revised versions of
12455     the GNU Free Documentation License from time to time.  Such new
12456     versions will be similar in spirit to the present version, but may
12457     differ in detail to address new problems or concerns.  See
12458     `http://www.gnu.org/copyleft/'.
12459
12460     Each version of the License is given a distinguishing version
12461     number.  If the Document specifies that a particular numbered
12462     version of this License "or any later version" applies to it, you
12463     have the option of following the terms and conditions either of
12464     that specified version or of any later version that has been
12465     published (not as a draft) by the Free Software Foundation.  If
12466     the Document does not specify a version number of this License,
12467     you may choose any version ever published (not as a draft) by the
12468     Free Software Foundation.  If the Document specifies that a proxy
12469     can decide which future versions of this License can be used, that
12470     proxy's public statement of acceptance of a version permanently
12471     authorizes you to choose that version for the Document.
12472
12473 11. RELICENSING
12474
12475     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
12476     World Wide Web server that publishes copyrightable works and also
12477     provides prominent facilities for anybody to edit those works.  A
12478     public wiki that anybody can edit is an example of such a server.
12479     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
12480     site means any set of copyrightable works thus published on the MMC
12481     site.
12482
12483     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
12484     license published by Creative Commons Corporation, a not-for-profit
12485     corporation with a principal place of business in San Francisco,
12486     California, as well as future copyleft versions of that license
12487     published by that same organization.
12488
12489     "Incorporate" means to publish or republish a Document, in whole or
12490     in part, as part of another Document.
12491
12492     An MMC is "eligible for relicensing" if it is licensed under this
12493     License, and if all works that were first published under this
12494     License somewhere other than this MMC, and subsequently
12495     incorporated in whole or in part into the MMC, (1) had no cover
12496     texts or invariant sections, and (2) were thus incorporated prior
12497     to November 1, 2008.
12498
12499     The operator of an MMC Site may republish an MMC contained in the
12500     site under CC-BY-SA on the same site at any time before August 1,
12501     2009, provided the MMC is eligible for relicensing.
12502
12503
12504ADDENDUM: How to use this License for your documents
12505====================================================
12506
12507To use this License in a document you have written, include a copy of
12508the License in the document and put the following copyright and license
12509notices just after the title page:
12510
12511       Copyright (C)  YEAR  YOUR NAME.
12512       Permission is granted to copy, distribute and/or modify this document
12513       under the terms of the GNU Free Documentation License, Version 1.3
12514       or any later version published by the Free Software Foundation;
12515       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
12516       Texts.  A copy of the license is included in the section entitled ``GNU
12517       Free Documentation License''.
12518
12519   If you have Invariant Sections, Front-Cover Texts and Back-Cover
12520Texts, replace the "with...Texts." line with this:
12521
12522         with the Invariant Sections being LIST THEIR TITLES, with
12523         the Front-Cover Texts being LIST, and with the Back-Cover Texts
12524         being LIST.
12525
12526   If you have Invariant Sections without Cover Texts, or some other
12527combination of the three, merge those two alternatives to suit the
12528situation.
12529
12530   If your document contains nontrivial examples of program code, we
12531recommend releasing these examples in parallel under your choice of
12532free software license, such as the GNU General Public License, to
12533permit their use in free software.
12534
12535
12536File: bfd.info,  Node: BFD Index,  Prev: GNU Free Documentation License,  Up: Top
12537
12538BFD Index
12539*********
12540
12541[index]
12542* Menu:
12543
12544* _bfd_error_handler:                    Error reporting.    (line  111)
12545* _bfd_final_link_relocate:              Relocating the section contents.
12546                                                             (line   22)
12547* _bfd_generic_link_add_archive_symbols: Adding symbols from an archive.
12548                                                             (line   15)
12549* _bfd_generic_link_add_one_symbol:      Adding symbols from an object file.
12550                                                             (line   19)
12551* _bfd_generic_link_check_relocs:        Writing the symbol table.
12552                                                             (line  140)
12553* _bfd_generic_link_hide_symbol:         Writing the symbol table.
12554                                                             (line   81)
12555* _bfd_generic_make_empty_symbol:        symbol handling functions.
12556                                                             (line   92)
12557* _bfd_generic_set_reloc:                howto manager.      (line 4209)
12558* _bfd_generic_verify_endian_match:      Writing the symbol table.
12559                                                             (line  169)
12560* _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table.
12561                                                             (line    6)
12562* _bfd_link_final_link in target vector: Performing the Final Link.
12563                                                             (line    6)
12564* _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table.
12565                                                             (line    6)
12566* _bfd_relocate_contents:                Relocating the section contents.
12567                                                             (line   22)
12568* _bfd_unrecognized_reloc:               howto manager.      (line 4221)
12569* aout_SIZE_machine_type:                aout.               (line  146)
12570* aout_SIZE_mkobject:                    aout.               (line  138)
12571* aout_SIZE_new_section_hook:            aout.               (line  176)
12572* aout_SIZE_set_arch_mach:               aout.               (line  163)
12573* aout_SIZE_some_aout_object_p:          aout.               (line  124)
12574* aout_SIZE_swap_exec_header_in:         aout.               (line  100)
12575* aout_SIZE_swap_exec_header_out:        aout.               (line  112)
12576* arelent_chain:                         typedef arelent.    (line  309)
12577* BFD:                                   Overview.           (line    6)
12578* BFD canonical format:                  Canonical format.   (line   11)
12579* bfd_alloc:                             Opening and Closing.
12580                                                             (line  249)
12581* bfd_alt_mach_code:                     Miscellaneous.      (line  305)
12582* bfd_arch_bits_per_address:             Architectures.      (line  673)
12583* bfd_arch_bits_per_byte:                Architectures.      (line  665)
12584* bfd_arch_default_fill:                 Architectures.      (line  755)
12585* bfd_arch_get_compatible:               Architectures.      (line  608)
12586* bfd_arch_list:                         Architectures.      (line  599)
12587* bfd_arch_mach_octets_per_byte:         Architectures.      (line  743)
12588* BFD_ARELOC_BFIN_ADD:                   howto manager.      (line 1289)
12589* BFD_ARELOC_BFIN_ADDR:                  howto manager.      (line 1340)
12590* BFD_ARELOC_BFIN_AND:                   howto manager.      (line 1310)
12591* BFD_ARELOC_BFIN_COMP:                  howto manager.      (line 1331)
12592* BFD_ARELOC_BFIN_CONST:                 howto manager.      (line 1286)
12593* BFD_ARELOC_BFIN_DIV:                   howto manager.      (line 1298)
12594* BFD_ARELOC_BFIN_HWPAGE:                howto manager.      (line 1337)
12595* BFD_ARELOC_BFIN_LAND:                  howto manager.      (line 1319)
12596* BFD_ARELOC_BFIN_LEN:                   howto manager.      (line 1325)
12597* BFD_ARELOC_BFIN_LOR:                   howto manager.      (line 1322)
12598* BFD_ARELOC_BFIN_LSHIFT:                howto manager.      (line 1304)
12599* BFD_ARELOC_BFIN_MOD:                   howto manager.      (line 1301)
12600* BFD_ARELOC_BFIN_MULT:                  howto manager.      (line 1295)
12601* BFD_ARELOC_BFIN_NEG:                   howto manager.      (line 1328)
12602* BFD_ARELOC_BFIN_OR:                    howto manager.      (line 1313)
12603* BFD_ARELOC_BFIN_PAGE:                  howto manager.      (line 1334)
12604* BFD_ARELOC_BFIN_PUSH:                  howto manager.      (line 1283)
12605* BFD_ARELOC_BFIN_RSHIFT:                howto manager.      (line 1307)
12606* BFD_ARELOC_BFIN_SUB:                   howto manager.      (line 1292)
12607* BFD_ARELOC_BFIN_XOR:                   howto manager.      (line 1316)
12608* bfd_cache_close:                       File Caching.       (line   26)
12609* bfd_cache_close_all:                   File Caching.       (line   39)
12610* bfd_cache_init:                        File Caching.       (line   18)
12611* bfd_calc_gnu_debuglink_crc32:          Opening and Closing.
12612                                                             (line  267)
12613* bfd_canonicalize_reloc:                Miscellaneous.      (line   19)
12614* bfd_canonicalize_symtab:               symbol handling functions.
12615                                                             (line   50)
12616* bfd_check_compression_header:          Miscellaneous.      (line  359)
12617* bfd_check_format:                      Formats.            (line   21)
12618* bfd_check_format_matches:              Formats.            (line   52)
12619* bfd_check_overflow:                    typedef arelent.    (line  321)
12620* bfd_close:                             Opening and Closing.
12621                                                             (line  171)
12622* bfd_close_all_done:                    Opening and Closing.
12623                                                             (line  189)
12624* bfd_coff_backend_data:                 coff.               (line  301)
12625* bfd_convert_section_contents:          Miscellaneous.      (line  397)
12626* bfd_convert_section_size:              Miscellaneous.      (line  387)
12627* bfd_copy_private_bfd_data:             Miscellaneous.      (line  171)
12628* bfd_copy_private_header_data:          Miscellaneous.      (line  153)
12629* bfd_copy_private_section_data:         section prototypes. (line  282)
12630* bfd_copy_private_symbol_data:          symbol handling functions.
12631                                                             (line  140)
12632* bfd_core_file_failing_command:         Core Files.         (line   12)
12633* bfd_core_file_failing_signal:          Core Files.         (line   21)
12634* bfd_core_file_pid:                     Core Files.         (line   30)
12635* bfd_create:                            Opening and Closing.
12636                                                             (line  208)
12637* bfd_create_gnu_debuglink_section:      Opening and Closing.
12638                                                             (line  423)
12639* bfd_decode_symclass:                   symbol handling functions.
12640                                                             (line  111)
12641* bfd_default_arch_struct:               Architectures.      (line  620)
12642* bfd_default_compatible:                Architectures.      (line  682)
12643* bfd_default_reloc_type_lookup:         howto manager.      (line 4133)
12644* bfd_default_scan:                      Architectures.      (line  691)
12645* bfd_default_set_arch_mach:             Architectures.      (line  638)
12646* bfd_demangle:                          Miscellaneous.      (line  338)
12647* bfd_emul_get_commonpagesize:           Miscellaneous.      (line  327)
12648* bfd_emul_get_maxpagesize:              Miscellaneous.      (line  316)
12649* bfd_errmsg:                            Error reporting.    (line   79)
12650* bfd_fdopenr:                           Opening and Closing.
12651                                                             (line   57)
12652* bfd_fdopenw:                           Opening and Closing.
12653                                                             (line   83)
12654* bfd_fill_in_gnu_debuglink_section:     Opening and Closing.
12655                                                             (line  437)
12656* bfd_find_target:                       bfd_target.         (line  578)
12657* bfd_find_version_for_sym:              Writing the symbol table.
12658                                                             (line  107)
12659* bfd_flavour_name:                      bfd_target.         (line  641)
12660* bfd_follow_build_id_debuglink:         Opening and Closing.
12661                                                             (line  497)
12662* bfd_follow_gnu_debugaltlink:           Opening and Closing.
12663                                                             (line  403)
12664* bfd_follow_gnu_debuglink:              Opening and Closing.
12665                                                             (line  382)
12666* bfd_fopen:                             Opening and Closing.
12667                                                             (line   12)
12668* bfd_format_string:                     Formats.            (line   79)
12669* bfd_generic_define_common_symbol:      Writing the symbol table.
12670                                                             (line   68)
12671* bfd_generic_define_start_stop:         Writing the symbol table.
12672                                                             (line   94)
12673* bfd_generic_discard_group:             section prototypes. (line  316)
12674* bfd_generic_gc_sections:               howto manager.      (line 4164)
12675* bfd_generic_get_relocated_section_contents: howto manager. (line 4194)
12676* bfd_generic_group_name:                section prototypes. (line  308)
12677* bfd_generic_is_group_section:          section prototypes. (line  300)
12678* bfd_generic_lookup_section_flags:      howto manager.      (line 4174)
12679* bfd_generic_merge_sections:            howto manager.      (line 4184)
12680* bfd_generic_relax_section:             howto manager.      (line 4151)
12681* bfd_get_alt_debug_link_info:           Opening and Closing.
12682                                                             (line  321)
12683* bfd_get_arch:                          Architectures.      (line  649)
12684* bfd_get_arch_info:                     Architectures.      (line  701)
12685* bfd_get_arch_size:                     Miscellaneous.      (line   65)
12686* bfd_get_compression_header_size:       Miscellaneous.      (line  376)
12687* bfd_get_debug_link_info:               Opening and Closing.
12688                                                             (line  303)
12689* bfd_get_debug_link_info_1:             Opening and Closing.
12690                                                             (line  281)
12691* bfd_get_error:                         Error reporting.    (line   49)
12692* bfd_get_file_size:                     Miscellaneous.      (line  490)
12693* bfd_get_gp_size:                       Miscellaneous.      (line  108)
12694* bfd_get_linker_section:                section prototypes. (line   38)
12695* bfd_get_mach:                          Architectures.      (line  657)
12696* bfd_get_mtime:                         Miscellaneous.      (line  450)
12697* bfd_get_next_mapent:                   Archives.           (line   58)
12698* bfd_get_next_section_by_name:          section prototypes. (line   26)
12699* bfd_get_reloc_code_name:               howto manager.      (line 4142)
12700* bfd_get_reloc_upper_bound:             Miscellaneous.      (line    9)
12701* bfd_get_section_by_name:               section prototypes. (line   17)
12702* bfd_get_section_by_name_if:            section prototypes. (line   47)
12703* bfd_get_section_contents:              section prototypes. (line  255)
12704* bfd_get_sign_extend_vma:               Miscellaneous.      (line   80)
12705* bfd_get_size:                          Miscellaneous.      (line  459)
12706* bfd_get_symtab_upper_bound:            symbol handling functions.
12707                                                             (line    6)
12708* bfd_get_target_info:                   bfd_target.         (line  594)
12709* bfd_get_unique_section_name:           section prototypes. (line   66)
12710* bfd_hash_allocate:                     Creating and Freeing a Hash Table.
12711                                                             (line   17)
12712* bfd_hash_lookup:                       Looking Up or Entering a String.
12713                                                             (line    6)
12714* bfd_hash_newfunc:                      Creating and Freeing a Hash Table.
12715                                                             (line   12)
12716* bfd_hash_set_default_size:             Creating and Freeing a Hash Table.
12717                                                             (line   25)
12718* bfd_hash_table_free:                   Creating and Freeing a Hash Table.
12719                                                             (line   21)
12720* bfd_hash_table_init:                   Creating and Freeing a Hash Table.
12721                                                             (line    6)
12722* bfd_hash_table_init_n:                 Creating and Freeing a Hash Table.
12723                                                             (line    6)
12724* bfd_hash_traverse:                     Traversing a Hash Table.
12725                                                             (line    6)
12726* bfd_hide_sym_by_version:               Writing the symbol table.
12727                                                             (line  119)
12728* bfd_init:                              Initialization.     (line   11)
12729* bfd_install_relocation:                typedef arelent.    (line  375)
12730* bfd_is_local_label:                    symbol handling functions.
12731                                                             (line   17)
12732* bfd_is_local_label_name:               symbol handling functions.
12733                                                             (line   26)
12734* bfd_is_target_special_symbol:          symbol handling functions.
12735                                                             (line   38)
12736* bfd_is_undefined_symclass:             symbol handling functions.
12737                                                             (line  120)
12738* bfd_iterate_over_targets:              bfd_target.         (line  629)
12739* bfd_link_check_relocs:                 Writing the symbol table.
12740                                                             (line  129)
12741* bfd_link_split_section:                Writing the symbol table.
12742                                                             (line   44)
12743* bfd_lookup_arch:                       Architectures.      (line  709)
12744* bfd_make_debug_symbol:                 symbol handling functions.
12745                                                             (line  102)
12746* bfd_make_empty_symbol:                 symbol handling functions.
12747                                                             (line   78)
12748* bfd_make_readable:                     Opening and Closing.
12749                                                             (line  235)
12750* bfd_make_section:                      section prototypes. (line  145)
12751* bfd_make_section_anyway:               section prototypes. (line  116)
12752* bfd_make_section_anyway_with_flags:    section prototypes. (line   98)
12753* bfd_make_section_old_way:              section prototypes. (line   78)
12754* bfd_make_section_with_flags:           section prototypes. (line  132)
12755* bfd_make_writable:                     Opening and Closing.
12756                                                             (line  221)
12757* bfd_malloc_and_get_section:            section prototypes. (line  272)
12758* bfd_map_over_sections:                 section prototypes. (line  178)
12759* bfd_merge_private_bfd_data:            Writing the symbol table.
12760                                                             (line  151)
12761* bfd_mmap:                              Miscellaneous.      (line  499)
12762* bfd_octets_per_byte:                   Architectures.      (line  732)
12763* bfd_open_file:                         File Caching.       (line   52)
12764* bfd_openr:                             Opening and Closing.
12765                                                             (line   38)
12766* bfd_openr_iovec:                       Opening and Closing.
12767                                                             (line  105)
12768* bfd_openr_next_archived_file:          Archives.           (line   84)
12769* bfd_openstreamr:                       Opening and Closing.
12770                                                             (line   92)
12771* bfd_openw:                             Opening and Closing.
12772                                                             (line  156)
12773* bfd_perform_relocation:                typedef arelent.    (line  350)
12774* bfd_perror:                            Error reporting.    (line   88)
12775* bfd_print_symbol_vandf:                symbol handling functions.
12776                                                             (line   70)
12777* bfd_printable_arch_mach:               Architectures.      (line  720)
12778* bfd_printable_name:                    Architectures.      (line  580)
12779* BFD_RELOC_12_PCREL:                    howto manager.      (line   39)
12780* BFD_RELOC_14:                          howto manager.      (line   31)
12781* BFD_RELOC_16:                          howto manager.      (line   30)
12782* BFD_RELOC_16_BASEREL:                  howto manager.      (line  104)
12783* BFD_RELOC_16_GOT_PCREL:                howto manager.      (line   51)
12784* BFD_RELOC_16_GOTOFF:                   howto manager.      (line   54)
12785* BFD_RELOC_16_PCREL:                    howto manager.      (line   38)
12786* BFD_RELOC_16_PCREL_S2:                 howto manager.      (line  116)
12787* BFD_RELOC_16_PLT_PCREL:                howto manager.      (line   62)
12788* BFD_RELOC_16_PLTOFF:                   howto manager.      (line   66)
12789* BFD_RELOC_16_SECIDX:                   howto manager.      (line   47)
12790* BFD_RELOC_23_PCREL_S2:                 howto manager.      (line  117)
12791* BFD_RELOC_24:                          howto manager.      (line   29)
12792* BFD_RELOC_24_PCREL:                    howto manager.      (line   37)
12793* BFD_RELOC_24_PLT_PCREL:                howto manager.      (line   61)
12794* BFD_RELOC_26:                          howto manager.      (line   28)
12795* BFD_RELOC_32:                          howto manager.      (line   27)
12796* BFD_RELOC_32_BASEREL:                  howto manager.      (line  103)
12797* BFD_RELOC_32_GOT_PCREL:                howto manager.      (line   50)
12798* BFD_RELOC_32_GOTOFF:                   howto manager.      (line   53)
12799* BFD_RELOC_32_PCREL:                    howto manager.      (line   36)
12800* BFD_RELOC_32_PCREL_S2:                 howto manager.      (line  115)
12801* BFD_RELOC_32_PLT_PCREL:                howto manager.      (line   60)
12802* BFD_RELOC_32_PLTOFF:                   howto manager.      (line   65)
12803* BFD_RELOC_32_SECREL:                   howto manager.      (line   46)
12804* BFD_RELOC_386_COPY:                    howto manager.      (line  599)
12805* BFD_RELOC_386_GLOB_DAT:                howto manager.      (line  600)
12806* BFD_RELOC_386_GOT32:                   howto manager.      (line  597)
12807* BFD_RELOC_386_GOT32X:                  howto manager.      (line  621)
12808* BFD_RELOC_386_GOTOFF:                  howto manager.      (line  603)
12809* BFD_RELOC_386_GOTPC:                   howto manager.      (line  604)
12810* BFD_RELOC_386_IRELATIVE:               howto manager.      (line  620)
12811* BFD_RELOC_386_JUMP_SLOT:               howto manager.      (line  601)
12812* BFD_RELOC_386_PLT32:                   howto manager.      (line  598)
12813* BFD_RELOC_386_RELATIVE:                howto manager.      (line  602)
12814* BFD_RELOC_386_TLS_DESC:                howto manager.      (line  619)
12815* BFD_RELOC_386_TLS_DESC_CALL:           howto manager.      (line  618)
12816* BFD_RELOC_386_TLS_DTPMOD32:            howto manager.      (line  614)
12817* BFD_RELOC_386_TLS_DTPOFF32:            howto manager.      (line  615)
12818* BFD_RELOC_386_TLS_GD:                  howto manager.      (line  609)
12819* BFD_RELOC_386_TLS_GOTDESC:             howto manager.      (line  617)
12820* BFD_RELOC_386_TLS_GOTIE:               howto manager.      (line  607)
12821* BFD_RELOC_386_TLS_IE:                  howto manager.      (line  606)
12822* BFD_RELOC_386_TLS_IE_32:               howto manager.      (line  612)
12823* BFD_RELOC_386_TLS_LDM:                 howto manager.      (line  610)
12824* BFD_RELOC_386_TLS_LDO_32:              howto manager.      (line  611)
12825* BFD_RELOC_386_TLS_LE:                  howto manager.      (line  608)
12826* BFD_RELOC_386_TLS_LE_32:               howto manager.      (line  613)
12827* BFD_RELOC_386_TLS_TPOFF:               howto manager.      (line  605)
12828* BFD_RELOC_386_TLS_TPOFF32:             howto manager.      (line  616)
12829* BFD_RELOC_390_12:                      howto manager.      (line 2279)
12830* BFD_RELOC_390_20:                      howto manager.      (line 2391)
12831* BFD_RELOC_390_COPY:                    howto manager.      (line 2288)
12832* BFD_RELOC_390_GLOB_DAT:                howto manager.      (line 2291)
12833* BFD_RELOC_390_GOT12:                   howto manager.      (line 2282)
12834* BFD_RELOC_390_GOT16:                   howto manager.      (line 2303)
12835* BFD_RELOC_390_GOT20:                   howto manager.      (line 2392)
12836* BFD_RELOC_390_GOT64:                   howto manager.      (line 2333)
12837* BFD_RELOC_390_GOTENT:                  howto manager.      (line 2339)
12838* BFD_RELOC_390_GOTOFF64:                howto manager.      (line 2342)
12839* BFD_RELOC_390_GOTPC:                   howto manager.      (line 2300)
12840* BFD_RELOC_390_GOTPCDBL:                howto manager.      (line 2330)
12841* BFD_RELOC_390_GOTPLT12:                howto manager.      (line 2345)
12842* BFD_RELOC_390_GOTPLT16:                howto manager.      (line 2348)
12843* BFD_RELOC_390_GOTPLT20:                howto manager.      (line 2393)
12844* BFD_RELOC_390_GOTPLT32:                howto manager.      (line 2351)
12845* BFD_RELOC_390_GOTPLT64:                howto manager.      (line 2354)
12846* BFD_RELOC_390_GOTPLTENT:               howto manager.      (line 2357)
12847* BFD_RELOC_390_IRELATIVE:               howto manager.      (line 2397)
12848* BFD_RELOC_390_JMP_SLOT:                howto manager.      (line 2294)
12849* BFD_RELOC_390_PC12DBL:                 howto manager.      (line 2306)
12850* BFD_RELOC_390_PC16DBL:                 howto manager.      (line 2312)
12851* BFD_RELOC_390_PC24DBL:                 howto manager.      (line 2318)
12852* BFD_RELOC_390_PC32DBL:                 howto manager.      (line 2324)
12853* BFD_RELOC_390_PLT12DBL:                howto manager.      (line 2309)
12854* BFD_RELOC_390_PLT16DBL:                howto manager.      (line 2315)
12855* BFD_RELOC_390_PLT24DBL:                howto manager.      (line 2321)
12856* BFD_RELOC_390_PLT32:                   howto manager.      (line 2285)
12857* BFD_RELOC_390_PLT32DBL:                howto manager.      (line 2327)
12858* BFD_RELOC_390_PLT64:                   howto manager.      (line 2336)
12859* BFD_RELOC_390_PLTOFF16:                howto manager.      (line 2360)
12860* BFD_RELOC_390_PLTOFF32:                howto manager.      (line 2363)
12861* BFD_RELOC_390_PLTOFF64:                howto manager.      (line 2366)
12862* BFD_RELOC_390_RELATIVE:                howto manager.      (line 2297)
12863* BFD_RELOC_390_TLS_DTPMOD:              howto manager.      (line 2386)
12864* BFD_RELOC_390_TLS_DTPOFF:              howto manager.      (line 2387)
12865* BFD_RELOC_390_TLS_GD32:                howto manager.      (line 2372)
12866* BFD_RELOC_390_TLS_GD64:                howto manager.      (line 2373)
12867* BFD_RELOC_390_TLS_GDCALL:              howto manager.      (line 2370)
12868* BFD_RELOC_390_TLS_GOTIE12:             howto manager.      (line 2374)
12869* BFD_RELOC_390_TLS_GOTIE20:             howto manager.      (line 2394)
12870* BFD_RELOC_390_TLS_GOTIE32:             howto manager.      (line 2375)
12871* BFD_RELOC_390_TLS_GOTIE64:             howto manager.      (line 2376)
12872* BFD_RELOC_390_TLS_IE32:                howto manager.      (line 2379)
12873* BFD_RELOC_390_TLS_IE64:                howto manager.      (line 2380)
12874* BFD_RELOC_390_TLS_IEENT:               howto manager.      (line 2381)
12875* BFD_RELOC_390_TLS_LDCALL:              howto manager.      (line 2371)
12876* BFD_RELOC_390_TLS_LDM32:               howto manager.      (line 2377)
12877* BFD_RELOC_390_TLS_LDM64:               howto manager.      (line 2378)
12878* BFD_RELOC_390_TLS_LDO32:               howto manager.      (line 2384)
12879* BFD_RELOC_390_TLS_LDO64:               howto manager.      (line 2385)
12880* BFD_RELOC_390_TLS_LE32:                howto manager.      (line 2382)
12881* BFD_RELOC_390_TLS_LE64:                howto manager.      (line 2383)
12882* BFD_RELOC_390_TLS_LOAD:                howto manager.      (line 2369)
12883* BFD_RELOC_390_TLS_TPOFF:               howto manager.      (line 2388)
12884* BFD_RELOC_64:                          howto manager.      (line   26)
12885* BFD_RELOC_64_PCREL:                    howto manager.      (line   35)
12886* BFD_RELOC_64_PLT_PCREL:                howto manager.      (line   59)
12887* BFD_RELOC_64_PLTOFF:                   howto manager.      (line   64)
12888* BFD_RELOC_68K_GLOB_DAT:                howto manager.      (line   77)
12889* BFD_RELOC_68K_JMP_SLOT:                howto manager.      (line   78)
12890* BFD_RELOC_68K_RELATIVE:                howto manager.      (line   79)
12891* BFD_RELOC_68K_TLS_GD16:                howto manager.      (line   81)
12892* BFD_RELOC_68K_TLS_GD32:                howto manager.      (line   80)
12893* BFD_RELOC_68K_TLS_GD8:                 howto manager.      (line   82)
12894* BFD_RELOC_68K_TLS_IE16:                howto manager.      (line   90)
12895* BFD_RELOC_68K_TLS_IE32:                howto manager.      (line   89)
12896* BFD_RELOC_68K_TLS_IE8:                 howto manager.      (line   91)
12897* BFD_RELOC_68K_TLS_LDM16:               howto manager.      (line   84)
12898* BFD_RELOC_68K_TLS_LDM32:               howto manager.      (line   83)
12899* BFD_RELOC_68K_TLS_LDM8:                howto manager.      (line   85)
12900* BFD_RELOC_68K_TLS_LDO16:               howto manager.      (line   87)
12901* BFD_RELOC_68K_TLS_LDO32:               howto manager.      (line   86)
12902* BFD_RELOC_68K_TLS_LDO8:                howto manager.      (line   88)
12903* BFD_RELOC_68K_TLS_LE16:                howto manager.      (line   93)
12904* BFD_RELOC_68K_TLS_LE32:                howto manager.      (line   92)
12905* BFD_RELOC_68K_TLS_LE8:                 howto manager.      (line   94)
12906* BFD_RELOC_8:                           howto manager.      (line   32)
12907* BFD_RELOC_8_BASEREL:                   howto manager.      (line  108)
12908* BFD_RELOC_8_FFnn:                      howto manager.      (line  112)
12909* BFD_RELOC_8_GOT_PCREL:                 howto manager.      (line   52)
12910* BFD_RELOC_8_GOTOFF:                    howto manager.      (line   58)
12911* BFD_RELOC_8_PCREL:                     howto manager.      (line   40)
12912* BFD_RELOC_8_PLT_PCREL:                 howto manager.      (line   63)
12913* BFD_RELOC_8_PLTOFF:                    howto manager.      (line   70)
12914* BFD_RELOC_AARCH64_16:                  howto manager.      (line 3298)
12915* BFD_RELOC_AARCH64_16_PCREL:            howto manager.      (line 3305)
12916* BFD_RELOC_AARCH64_32:                  howto manager.      (line 3297)
12917* BFD_RELOC_AARCH64_32_PCREL:            howto manager.      (line 3304)
12918* BFD_RELOC_AARCH64_64:                  howto manager.      (line 3296)
12919* BFD_RELOC_AARCH64_64_PCREL:            howto manager.      (line 3303)
12920* BFD_RELOC_AARCH64_ADD_LO12:            howto manager.      (line 3400)
12921* BFD_RELOC_AARCH64_ADR_GOT_PAGE:        howto manager.      (line 3457)
12922* BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL:   howto manager.      (line 3395)
12923* BFD_RELOC_AARCH64_ADR_HI21_PCREL:      howto manager.      (line 3391)
12924* BFD_RELOC_AARCH64_ADR_LO21_PCREL:      howto manager.      (line 3387)
12925* BFD_RELOC_AARCH64_BRANCH19:            howto manager.      (line 3415)
12926* BFD_RELOC_AARCH64_CALL26:              howto manager.      (line 3425)
12927* BFD_RELOC_AARCH64_COPY:                howto manager.      (line 3689)
12928* BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP:  howto manager.      (line 3723)
12929* BFD_RELOC_AARCH64_GLOB_DAT:            howto manager.      (line 3692)
12930* BFD_RELOC_AARCH64_GOT_LD_PREL19:       howto manager.      (line 3450)
12931* BFD_RELOC_AARCH64_IRELATIVE:           howto manager.      (line 3713)
12932* BFD_RELOC_AARCH64_JUMP26:              howto manager.      (line 3420)
12933* BFD_RELOC_AARCH64_JUMP_SLOT:           howto manager.      (line 3695)
12934* BFD_RELOC_AARCH64_LD32_GOT_LO12_NC:    howto manager.      (line 3467)
12935* BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14:   howto manager.      (line 3484)
12936* BFD_RELOC_AARCH64_LD64_GOT_LO12_NC:    howto manager.      (line 3462)
12937* BFD_RELOC_AARCH64_LD64_GOTOFF_LO15:    howto manager.      (line 3480)
12938* BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15:   howto manager.      (line 3488)
12939* BFD_RELOC_AARCH64_LD_GOT_LO12_NC:      howto manager.      (line 3750)
12940* BFD_RELOC_AARCH64_LD_LO19_PCREL:       howto manager.      (line 3382)
12941* BFD_RELOC_AARCH64_LDST128_LO12:        howto manager.      (line 3445)
12942* BFD_RELOC_AARCH64_LDST16_LO12:         howto manager.      (line 3430)
12943* BFD_RELOC_AARCH64_LDST32_LO12:         howto manager.      (line 3435)
12944* BFD_RELOC_AARCH64_LDST64_LO12:         howto manager.      (line 3440)
12945* BFD_RELOC_AARCH64_LDST8_LO12:          howto manager.      (line 3405)
12946* BFD_RELOC_AARCH64_LDST_LO12:           howto manager.      (line 3727)
12947* BFD_RELOC_AARCH64_MOVW_G0:             howto manager.      (line 3309)
12948* BFD_RELOC_AARCH64_MOVW_G0_NC:          howto manager.      (line 3313)
12949* BFD_RELOC_AARCH64_MOVW_G0_S:           howto manager.      (line 3337)
12950* BFD_RELOC_AARCH64_MOVW_G1:             howto manager.      (line 3317)
12951* BFD_RELOC_AARCH64_MOVW_G1_NC:          howto manager.      (line 3321)
12952* BFD_RELOC_AARCH64_MOVW_G1_S:           howto manager.      (line 3342)
12953* BFD_RELOC_AARCH64_MOVW_G2:             howto manager.      (line 3325)
12954* BFD_RELOC_AARCH64_MOVW_G2_NC:          howto manager.      (line 3329)
12955* BFD_RELOC_AARCH64_MOVW_G2_S:           howto manager.      (line 3347)
12956* BFD_RELOC_AARCH64_MOVW_G3:             howto manager.      (line 3333)
12957* BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC:   howto manager.      (line 3472)
12958* BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:      howto manager.      (line 3476)
12959* BFD_RELOC_AARCH64_MOVW_PREL_G0:        howto manager.      (line 3352)
12960* BFD_RELOC_AARCH64_MOVW_PREL_G0_NC:     howto manager.      (line 3357)
12961* BFD_RELOC_AARCH64_MOVW_PREL_G1:        howto manager.      (line 3362)
12962* BFD_RELOC_AARCH64_MOVW_PREL_G1_NC:     howto manager.      (line 3366)
12963* BFD_RELOC_AARCH64_MOVW_PREL_G2:        howto manager.      (line 3370)
12964* BFD_RELOC_AARCH64_MOVW_PREL_G2_NC:     howto manager.      (line 3374)
12965* BFD_RELOC_AARCH64_MOVW_PREL_G3:        howto manager.      (line 3378)
12966* BFD_RELOC_AARCH64_NONE:                howto manager.      (line 3293)
12967* BFD_RELOC_AARCH64_NULL:                howto manager.      (line 3290)
12968* BFD_RELOC_AARCH64_RELATIVE:            howto manager.      (line 3698)
12969* BFD_RELOC_AARCH64_RELOC_END:           howto manager.      (line 3716)
12970* BFD_RELOC_AARCH64_RELOC_START:         howto manager.      (line 3284)
12971* BFD_RELOC_AARCH64_TLS_DTPMOD:          howto manager.      (line 3701)
12972* BFD_RELOC_AARCH64_TLS_DTPREL:          howto manager.      (line 3704)
12973* BFD_RELOC_AARCH64_TLS_TPREL:           howto manager.      (line 3707)
12974* BFD_RELOC_AARCH64_TLSDESC:             howto manager.      (line 3710)
12975* BFD_RELOC_AARCH64_TLSDESC_ADD:         howto manager.      (line 3683)
12976* BFD_RELOC_AARCH64_TLSDESC_ADD_LO12:    howto manager.      (line 3671)
12977* BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21:  howto manager.      (line 3662)
12978* BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21:  howto manager.      (line 3659)
12979* BFD_RELOC_AARCH64_TLSDESC_CALL:        howto manager.      (line 3686)
12980* BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC: howto manager.     (line 3668)
12981* BFD_RELOC_AARCH64_TLSDESC_LD64_LO12:   howto manager.      (line 3665)
12982* BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC:  howto manager.      (line 3758)
12983* BFD_RELOC_AARCH64_TLSDESC_LD_PREL19:   howto manager.      (line 3656)
12984* BFD_RELOC_AARCH64_TLSDESC_LDR:         howto manager.      (line 3680)
12985* BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC:   howto manager.      (line 3677)
12986* BFD_RELOC_AARCH64_TLSDESC_OFF_G1:      howto manager.      (line 3674)
12987* BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC:   howto manager.      (line 3501)
12988* BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21:    howto manager.      (line 3492)
12989* BFD_RELOC_AARCH64_TLSGD_ADR_PREL21:    howto manager.      (line 3498)
12990* BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:    howto manager.      (line 3506)
12991* BFD_RELOC_AARCH64_TLSGD_MOVW_G1:       howto manager.      (line 3509)
12992* BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21: howto manager.
12993                                                             (line 3512)
12994* BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC: howto manager.
12995                                                             (line 3518)
12996* BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC: howto manager.
12997                                                             (line 3515)
12998* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC: howto manager.
12999                                                             (line 3754)
13000* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19: howto manager. (line 3521)
13001* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC: howto manager.
13002                                                             (line 3524)
13003* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1: howto manager.   (line 3527)
13004* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12: howto manager.    (line 3530)
13005* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12: howto manager.    (line 3533)
13006* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: howto manager. (line 3536)
13007* BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC:   howto manager.      (line 3540)
13008* BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21:    howto manager.      (line 3545)
13009* BFD_RELOC_AARCH64_TLSLD_ADR_PREL21:    howto manager.      (line 3549)
13010* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12: howto manager. (line 3553)
13011* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC: howto manager.
13012                                                             (line 3557)
13013* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12: howto manager. (line 3561)
13014* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC: howto manager.
13015                                                             (line 3565)
13016* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12: howto manager. (line 3569)
13017* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: howto manager.
13018                                                             (line 3573)
13019* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: howto manager.  (line 3577)
13020* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: howto manager.
13021                                                             (line 3581)
13022* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12: howto manager.   (line 3732)
13023* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC: howto manager.
13024                                                             (line 3737)
13025* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: howto manager.     (line 3585)
13026* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: howto manager.  (line 3588)
13027* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: howto manager.     (line 3591)
13028* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: howto manager.  (line 3594)
13029* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: howto manager.     (line 3597)
13030* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: howto manager.     (line 3615)
13031* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: howto manager.     (line 3618)
13032* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: howto manager.  (line 3621)
13033* BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12: howto manager.  (line 3624)
13034* BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC: howto manager.
13035                                                             (line 3628)
13036* BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12: howto manager.  (line 3632)
13037* BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC: howto manager.
13038                                                             (line 3636)
13039* BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12: howto manager.  (line 3640)
13040* BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC: howto manager.
13041                                                             (line 3644)
13042* BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12: howto manager.   (line 3648)
13043* BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC: howto manager.
13044                                                             (line 3652)
13045* BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12: howto manager.    (line 3741)
13046* BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC: howto manager. (line 3746)
13047* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: howto manager.      (line 3609)
13048* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: howto manager.   (line 3612)
13049* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: howto manager.      (line 3603)
13050* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: howto manager.   (line 3606)
13051* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: howto manager.      (line 3600)
13052* BFD_RELOC_AARCH64_TSTBR14:             howto manager.      (line 3410)
13053* BFD_RELOC_AC_SECTOFF_S9:               howto manager.      (line 1190)
13054* BFD_RELOC_AC_SECTOFF_S9_1:             howto manager.      (line 1191)
13055* BFD_RELOC_AC_SECTOFF_S9_2:             howto manager.      (line 1192)
13056* BFD_RELOC_AC_SECTOFF_U8:               howto manager.      (line 1187)
13057* BFD_RELOC_AC_SECTOFF_U8_1:             howto manager.      (line 1188)
13058* BFD_RELOC_AC_SECTOFF_U8_2:             howto manager.      (line 1189)
13059* BFD_RELOC_ALPHA_BOH:                   howto manager.      (line  325)
13060* BFD_RELOC_ALPHA_BRSGP:                 howto manager.      (line  308)
13061* BFD_RELOC_ALPHA_BSR:                   howto manager.      (line  317)
13062* BFD_RELOC_ALPHA_CODEADDR:              howto manager.      (line  299)
13063* BFD_RELOC_ALPHA_DTPMOD64:              howto manager.      (line  331)
13064* BFD_RELOC_ALPHA_DTPREL16:              howto manager.      (line  336)
13065* BFD_RELOC_ALPHA_DTPREL64:              howto manager.      (line  333)
13066* BFD_RELOC_ALPHA_DTPREL_HI16:           howto manager.      (line  334)
13067* BFD_RELOC_ALPHA_DTPREL_LO16:           howto manager.      (line  335)
13068* BFD_RELOC_ALPHA_ELF_LITERAL:           howto manager.      (line  264)
13069* BFD_RELOC_ALPHA_GOTDTPREL16:           howto manager.      (line  332)
13070* BFD_RELOC_ALPHA_GOTTPREL16:            howto manager.      (line  337)
13071* BFD_RELOC_ALPHA_GPDISP:                howto manager.      (line  258)
13072* BFD_RELOC_ALPHA_GPDISP_HI16:           howto manager.      (line  244)
13073* BFD_RELOC_ALPHA_GPDISP_LO16:           howto manager.      (line  252)
13074* BFD_RELOC_ALPHA_GPREL_HI16:            howto manager.      (line  303)
13075* BFD_RELOC_ALPHA_GPREL_LO16:            howto manager.      (line  304)
13076* BFD_RELOC_ALPHA_HINT:                  howto manager.      (line  290)
13077* BFD_RELOC_ALPHA_LDA:                   howto manager.      (line  321)
13078* BFD_RELOC_ALPHA_LINKAGE:               howto manager.      (line  295)
13079* BFD_RELOC_ALPHA_LITERAL:               howto manager.      (line  263)
13080* BFD_RELOC_ALPHA_LITUSE:                howto manager.      (line  265)
13081* BFD_RELOC_ALPHA_NOP:                   howto manager.      (line  313)
13082* BFD_RELOC_ALPHA_TLSGD:                 howto manager.      (line  329)
13083* BFD_RELOC_ALPHA_TLSLDM:                howto manager.      (line  330)
13084* BFD_RELOC_ALPHA_TPREL16:               howto manager.      (line  341)
13085* BFD_RELOC_ALPHA_TPREL64:               howto manager.      (line  338)
13086* BFD_RELOC_ALPHA_TPREL_HI16:            howto manager.      (line  339)
13087* BFD_RELOC_ALPHA_TPREL_LO16:            howto manager.      (line  340)
13088* BFD_RELOC_ARC_16:                      howto manager.      (line 1159)
13089* BFD_RELOC_ARC_24:                      howto manager.      (line 1160)
13090* BFD_RELOC_ARC_32:                      howto manager.      (line 1161)
13091* BFD_RELOC_ARC_32_ME:                   howto manager.      (line 1181)
13092* BFD_RELOC_ARC_32_ME_S:                 howto manager.      (line 1182)
13093* BFD_RELOC_ARC_32_PCREL:                howto manager.      (line 1199)
13094* BFD_RELOC_ARC_8:                       howto manager.      (line 1158)
13095* BFD_RELOC_ARC_COPY:                    howto manager.      (line 1204)
13096* BFD_RELOC_ARC_GLOB_DAT:                howto manager.      (line 1205)
13097* BFD_RELOC_ARC_GOT32:                   howto manager.      (line 1201)
13098* BFD_RELOC_ARC_GOTOFF:                  howto manager.      (line 1208)
13099* BFD_RELOC_ARC_GOTPC:                   howto manager.      (line 1209)
13100* BFD_RELOC_ARC_GOTPC32:                 howto manager.      (line 1202)
13101* BFD_RELOC_ARC_JLI_SECTOFF:             howto manager.      (line 1225)
13102* BFD_RELOC_ARC_JMP_SLOT:                howto manager.      (line 1206)
13103* BFD_RELOC_ARC_N16:                     howto manager.      (line 1163)
13104* BFD_RELOC_ARC_N24:                     howto manager.      (line 1164)
13105* BFD_RELOC_ARC_N32:                     howto manager.      (line 1165)
13106* BFD_RELOC_ARC_N32_ME:                  howto manager.      (line 1183)
13107* BFD_RELOC_ARC_N8:                      howto manager.      (line 1162)
13108* BFD_RELOC_ARC_NONE:                    howto manager.      (line 1157)
13109* BFD_RELOC_ARC_NPS_CMEM16:              howto manager.      (line 1224)
13110* BFD_RELOC_ARC_PC32:                    howto manager.      (line 1200)
13111* BFD_RELOC_ARC_PLT32:                   howto manager.      (line 1203)
13112* BFD_RELOC_ARC_RELATIVE:                howto manager.      (line 1207)
13113* BFD_RELOC_ARC_S13_PCREL:               howto manager.      (line 1179)
13114* BFD_RELOC_ARC_S21H_PCREL:              howto manager.      (line 1168)
13115* BFD_RELOC_ARC_S21H_PCREL_PLT:          howto manager.      (line 1223)
13116* BFD_RELOC_ARC_S21W_PCREL:              howto manager.      (line 1169)
13117* BFD_RELOC_ARC_S21W_PCREL_PLT:          howto manager.      (line 1210)
13118* BFD_RELOC_ARC_S25H_PCREL:              howto manager.      (line 1170)
13119* BFD_RELOC_ARC_S25H_PCREL_PLT:          howto manager.      (line 1211)
13120* BFD_RELOC_ARC_S25W_PCREL:              howto manager.      (line 1171)
13121* BFD_RELOC_ARC_S25W_PCREL_PLT:          howto manager.      (line 1222)
13122* BFD_RELOC_ARC_SDA:                     howto manager.      (line 1166)
13123* BFD_RELOC_ARC_SDA16_LD:                howto manager.      (line 1176)
13124* BFD_RELOC_ARC_SDA16_LD1:               howto manager.      (line 1177)
13125* BFD_RELOC_ARC_SDA16_LD2:               howto manager.      (line 1178)
13126* BFD_RELOC_ARC_SDA16_ST2:               howto manager.      (line 1198)
13127* BFD_RELOC_ARC_SDA32:                   howto manager.      (line 1172)
13128* BFD_RELOC_ARC_SDA32_ME:                howto manager.      (line 1185)
13129* BFD_RELOC_ARC_SDA_12:                  howto manager.      (line 1197)
13130* BFD_RELOC_ARC_SDA_LDST:                howto manager.      (line 1173)
13131* BFD_RELOC_ARC_SDA_LDST1:               howto manager.      (line 1174)
13132* BFD_RELOC_ARC_SDA_LDST2:               howto manager.      (line 1175)
13133* BFD_RELOC_ARC_SECTOFF:                 howto manager.      (line 1167)
13134* BFD_RELOC_ARC_SECTOFF_1:               howto manager.      (line 1195)
13135* BFD_RELOC_ARC_SECTOFF_2:               howto manager.      (line 1196)
13136* BFD_RELOC_ARC_SECTOFF_ME:              howto manager.      (line 1184)
13137* BFD_RELOC_ARC_SECTOFF_ME_1:            howto manager.      (line 1193)
13138* BFD_RELOC_ARC_SECTOFF_ME_2:            howto manager.      (line 1194)
13139* BFD_RELOC_ARC_TLS_DTPMOD:              howto manager.      (line 1212)
13140* BFD_RELOC_ARC_TLS_DTPOFF:              howto manager.      (line 1218)
13141* BFD_RELOC_ARC_TLS_DTPOFF_S9:           howto manager.      (line 1219)
13142* BFD_RELOC_ARC_TLS_GD_CALL:             howto manager.      (line 1216)
13143* BFD_RELOC_ARC_TLS_GD_GOT:              howto manager.      (line 1214)
13144* BFD_RELOC_ARC_TLS_GD_LD:               howto manager.      (line 1215)
13145* BFD_RELOC_ARC_TLS_IE_GOT:              howto manager.      (line 1217)
13146* BFD_RELOC_ARC_TLS_LE_32:               howto manager.      (line 1221)
13147* BFD_RELOC_ARC_TLS_LE_S9:               howto manager.      (line 1220)
13148* BFD_RELOC_ARC_TLS_TPOFF:               howto manager.      (line 1213)
13149* BFD_RELOC_ARC_W:                       howto manager.      (line 1180)
13150* BFD_RELOC_ARC_W_ME:                    howto manager.      (line 1186)
13151* BFD_RELOC_ARM_ADR_IMM:                 howto manager.      (line 1043)
13152* BFD_RELOC_ARM_ADRL_IMMEDIATE:          howto manager.      (line 1028)
13153* BFD_RELOC_ARM_ALU_PC_G0:               howto manager.      (line  986)
13154* BFD_RELOC_ARM_ALU_PC_G0_NC:            howto manager.      (line  985)
13155* BFD_RELOC_ARM_ALU_PC_G1:               howto manager.      (line  988)
13156* BFD_RELOC_ARM_ALU_PC_G1_NC:            howto manager.      (line  987)
13157* BFD_RELOC_ARM_ALU_PC_G2:               howto manager.      (line  989)
13158* BFD_RELOC_ARM_ALU_SB_G0:               howto manager.      (line 1000)
13159* BFD_RELOC_ARM_ALU_SB_G0_NC:            howto manager.      (line  999)
13160* BFD_RELOC_ARM_ALU_SB_G1:               howto manager.      (line 1002)
13161* BFD_RELOC_ARM_ALU_SB_G1_NC:            howto manager.      (line 1001)
13162* BFD_RELOC_ARM_ALU_SB_G2:               howto manager.      (line 1003)
13163* BFD_RELOC_ARM_CP_OFF_IMM:              howto manager.      (line 1038)
13164* BFD_RELOC_ARM_CP_OFF_IMM_S2:           howto manager.      (line 1039)
13165* BFD_RELOC_ARM_FUNCDESC:                howto manager.      (line  952)
13166* BFD_RELOC_ARM_FUNCDESC_VALUE:          howto manager.      (line  953)
13167* BFD_RELOC_ARM_GLOB_DAT:                howto manager.      (line  960)
13168* BFD_RELOC_ARM_GOT32:                   howto manager.      (line  961)
13169* BFD_RELOC_ARM_GOT_PREL:                howto manager.      (line  966)
13170* BFD_RELOC_ARM_GOTFUNCDESC:             howto manager.      (line  950)
13171* BFD_RELOC_ARM_GOTOFF:                  howto manager.      (line  964)
13172* BFD_RELOC_ARM_GOTOFFFUNCDESC:          howto manager.      (line  951)
13173* BFD_RELOC_ARM_GOTPC:                   howto manager.      (line  965)
13174* BFD_RELOC_ARM_HVC:                     howto manager.      (line 1035)
13175* BFD_RELOC_ARM_HWLITERAL:               howto manager.      (line 1050)
13176* BFD_RELOC_ARM_IMMEDIATE:               howto manager.      (line 1027)
13177* BFD_RELOC_ARM_IN_POOL:                 howto manager.      (line 1046)
13178* BFD_RELOC_ARM_IRELATIVE:               howto manager.      (line 1018)
13179* BFD_RELOC_ARM_JUMP_SLOT:               howto manager.      (line  959)
13180* BFD_RELOC_ARM_LDC_PC_G0:               howto manager.      (line  996)
13181* BFD_RELOC_ARM_LDC_PC_G1:               howto manager.      (line  997)
13182* BFD_RELOC_ARM_LDC_PC_G2:               howto manager.      (line  998)
13183* BFD_RELOC_ARM_LDC_SB_G0:               howto manager.      (line 1010)
13184* BFD_RELOC_ARM_LDC_SB_G1:               howto manager.      (line 1011)
13185* BFD_RELOC_ARM_LDC_SB_G2:               howto manager.      (line 1012)
13186* BFD_RELOC_ARM_LDR_IMM:                 howto manager.      (line 1044)
13187* BFD_RELOC_ARM_LDR_PC_G0:               howto manager.      (line  990)
13188* BFD_RELOC_ARM_LDR_PC_G1:               howto manager.      (line  991)
13189* BFD_RELOC_ARM_LDR_PC_G2:               howto manager.      (line  992)
13190* BFD_RELOC_ARM_LDR_SB_G0:               howto manager.      (line 1004)
13191* BFD_RELOC_ARM_LDR_SB_G1:               howto manager.      (line 1005)
13192* BFD_RELOC_ARM_LDR_SB_G2:               howto manager.      (line 1006)
13193* BFD_RELOC_ARM_LDRS_PC_G0:              howto manager.      (line  993)
13194* BFD_RELOC_ARM_LDRS_PC_G1:              howto manager.      (line  994)
13195* BFD_RELOC_ARM_LDRS_PC_G2:              howto manager.      (line  995)
13196* BFD_RELOC_ARM_LDRS_SB_G0:              howto manager.      (line 1007)
13197* BFD_RELOC_ARM_LDRS_SB_G1:              howto manager.      (line 1008)
13198* BFD_RELOC_ARM_LDRS_SB_G2:              howto manager.      (line 1009)
13199* BFD_RELOC_ARM_LITERAL:                 howto manager.      (line 1045)
13200* BFD_RELOC_ARM_MOVT:                    howto manager.      (line  941)
13201* BFD_RELOC_ARM_MOVT_PCREL:              howto manager.      (line  943)
13202* BFD_RELOC_ARM_MOVW:                    howto manager.      (line  940)
13203* BFD_RELOC_ARM_MOVW_PCREL:              howto manager.      (line  942)
13204* BFD_RELOC_ARM_MULTI:                   howto manager.      (line 1037)
13205* BFD_RELOC_ARM_OFFSET_IMM:              howto manager.      (line  914)
13206* BFD_RELOC_ARM_OFFSET_IMM8:             howto manager.      (line 1047)
13207* BFD_RELOC_ARM_PCREL_BLX:               howto manager.      (line  867)
13208* BFD_RELOC_ARM_PCREL_BRANCH:            howto manager.      (line  863)
13209* BFD_RELOC_ARM_PCREL_CALL:              howto manager.      (line  877)
13210* BFD_RELOC_ARM_PCREL_JUMP:              howto manager.      (line  881)
13211* BFD_RELOC_ARM_PLT32:                   howto manager.      (line  962)
13212* BFD_RELOC_ARM_PREL31:                  howto manager.      (line  937)
13213* BFD_RELOC_ARM_RELATIVE:                howto manager.      (line  963)
13214* BFD_RELOC_ARM_ROSEGREL32:              howto manager.      (line  926)
13215* BFD_RELOC_ARM_SBREL32:                 howto manager.      (line  929)
13216* BFD_RELOC_ARM_SHIFT_IMM:               howto manager.      (line 1033)
13217* BFD_RELOC_ARM_SMC:                     howto manager.      (line 1034)
13218* BFD_RELOC_ARM_SWI:                     howto manager.      (line 1036)
13219* BFD_RELOC_ARM_T32_ADD_IMM:             howto manager.      (line 1030)
13220* BFD_RELOC_ARM_T32_ADD_PC12:            howto manager.      (line 1032)
13221* BFD_RELOC_ARM_T32_CP_OFF_IMM:          howto manager.      (line 1040)
13222* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2:       howto manager.      (line 1041)
13223* BFD_RELOC_ARM_T32_IMM12:               howto manager.      (line 1031)
13224* BFD_RELOC_ARM_T32_IMMEDIATE:           howto manager.      (line 1029)
13225* BFD_RELOC_ARM_T32_OFFSET_IMM:          howto manager.      (line 1049)
13226* BFD_RELOC_ARM_T32_OFFSET_U8:           howto manager.      (line 1048)
13227* BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM:   howto manager.      (line 1042)
13228* BFD_RELOC_ARM_TARGET1:                 howto manager.      (line  922)
13229* BFD_RELOC_ARM_TARGET2:                 howto manager.      (line  932)
13230* BFD_RELOC_ARM_THM_TLS_CALL:            howto manager.      (line  979)
13231* BFD_RELOC_ARM_THM_TLS_DESCSEQ:         howto manager.      (line  981)
13232* BFD_RELOC_ARM_THUMB_ADD:               howto manager.      (line 1051)
13233* BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC:     howto manager.      (line 1021)
13234* BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC:     howto manager.      (line 1022)
13235* BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC:     howto manager.      (line 1023)
13236* BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC:     howto manager.      (line 1024)
13237* BFD_RELOC_ARM_THUMB_BF13:              howto manager.      (line  893)
13238* BFD_RELOC_ARM_THUMB_BF17:              howto manager.      (line  890)
13239* BFD_RELOC_ARM_THUMB_BF19:              howto manager.      (line  896)
13240* BFD_RELOC_ARM_THUMB_IMM:               howto manager.      (line 1052)
13241* BFD_RELOC_ARM_THUMB_LOOP12:            howto manager.      (line  899)
13242* BFD_RELOC_ARM_THUMB_MOVT:              howto manager.      (line  945)
13243* BFD_RELOC_ARM_THUMB_MOVT_PCREL:        howto manager.      (line  947)
13244* BFD_RELOC_ARM_THUMB_MOVW:              howto manager.      (line  944)
13245* BFD_RELOC_ARM_THUMB_MOVW_PCREL:        howto manager.      (line  946)
13246* BFD_RELOC_ARM_THUMB_OFFSET:            howto manager.      (line  918)
13247* BFD_RELOC_ARM_THUMB_SHIFT:             howto manager.      (line 1053)
13248* BFD_RELOC_ARM_TLS_CALL:                howto manager.      (line  978)
13249* BFD_RELOC_ARM_TLS_DESC:                howto manager.      (line  982)
13250* BFD_RELOC_ARM_TLS_DESCSEQ:             howto manager.      (line  980)
13251* BFD_RELOC_ARM_TLS_DTPMOD32:            howto manager.      (line  973)
13252* BFD_RELOC_ARM_TLS_DTPOFF32:            howto manager.      (line  972)
13253* BFD_RELOC_ARM_TLS_GD32:                howto manager.      (line  969)
13254* BFD_RELOC_ARM_TLS_GD32_FDPIC:          howto manager.      (line  954)
13255* BFD_RELOC_ARM_TLS_GOTDESC:             howto manager.      (line  977)
13256* BFD_RELOC_ARM_TLS_IE32:                howto manager.      (line  975)
13257* BFD_RELOC_ARM_TLS_IE32_FDPIC:          howto manager.      (line  956)
13258* BFD_RELOC_ARM_TLS_LDM32:               howto manager.      (line  971)
13259* BFD_RELOC_ARM_TLS_LDM32_FDPIC:         howto manager.      (line  955)
13260* BFD_RELOC_ARM_TLS_LDO32:               howto manager.      (line  970)
13261* BFD_RELOC_ARM_TLS_LE32:                howto manager.      (line  976)
13262* BFD_RELOC_ARM_TLS_TPOFF32:             howto manager.      (line  974)
13263* BFD_RELOC_ARM_V4BX:                    howto manager.      (line 1015)
13264* BFD_RELOC_AVR_13_PCREL:                howto manager.      (line 2031)
13265* BFD_RELOC_AVR_16_PM:                   howto manager.      (line 2035)
13266* BFD_RELOC_AVR_6:                       howto manager.      (line 2122)
13267* BFD_RELOC_AVR_6_ADIW:                  howto manager.      (line 2126)
13268* BFD_RELOC_AVR_7_PCREL:                 howto manager.      (line 2027)
13269* BFD_RELOC_AVR_8_HI:                    howto manager.      (line 2134)
13270* BFD_RELOC_AVR_8_HLO:                   howto manager.      (line 2138)
13271* BFD_RELOC_AVR_8_LO:                    howto manager.      (line 2130)
13272* BFD_RELOC_AVR_CALL:                    howto manager.      (line 2114)
13273* BFD_RELOC_AVR_DIFF16:                  howto manager.      (line 2143)
13274* BFD_RELOC_AVR_DIFF32:                  howto manager.      (line 2144)
13275* BFD_RELOC_AVR_DIFF8:                   howto manager.      (line 2142)
13276* BFD_RELOC_AVR_HH8_LDI:                 howto manager.      (line 2047)
13277* BFD_RELOC_AVR_HH8_LDI_NEG:             howto manager.      (line 2066)
13278* BFD_RELOC_AVR_HH8_LDI_PM:              howto manager.      (line 2095)
13279* BFD_RELOC_AVR_HH8_LDI_PM_NEG:          howto manager.      (line 2109)
13280* BFD_RELOC_AVR_HI8_LDI:                 howto manager.      (line 2043)
13281* BFD_RELOC_AVR_HI8_LDI_GS:              howto manager.      (line 2089)
13282* BFD_RELOC_AVR_HI8_LDI_NEG:             howto manager.      (line 2061)
13283* BFD_RELOC_AVR_HI8_LDI_PM:              howto manager.      (line 2085)
13284* BFD_RELOC_AVR_HI8_LDI_PM_NEG:          howto manager.      (line 2104)
13285* BFD_RELOC_AVR_LDI:                     howto manager.      (line 2118)
13286* BFD_RELOC_AVR_LDS_STS_16:              howto manager.      (line 2152)
13287* BFD_RELOC_AVR_LO8_LDI:                 howto manager.      (line 2039)
13288* BFD_RELOC_AVR_LO8_LDI_GS:              howto manager.      (line 2079)
13289* BFD_RELOC_AVR_LO8_LDI_NEG:             howto manager.      (line 2056)
13290* BFD_RELOC_AVR_LO8_LDI_PM:              howto manager.      (line 2075)
13291* BFD_RELOC_AVR_LO8_LDI_PM_NEG:          howto manager.      (line 2100)
13292* BFD_RELOC_AVR_MS8_LDI:                 howto manager.      (line 2052)
13293* BFD_RELOC_AVR_MS8_LDI_NEG:             howto manager.      (line 2071)
13294* BFD_RELOC_AVR_PORT5:                   howto manager.      (line 2160)
13295* BFD_RELOC_AVR_PORT6:                   howto manager.      (line 2156)
13296* BFD_RELOC_BFIN_10_PCREL:               howto manager.      (line 1243)
13297* BFD_RELOC_BFIN_11_PCREL:               howto manager.      (line 1246)
13298* BFD_RELOC_BFIN_12_PCREL_JUMP:          howto manager.      (line 1249)
13299* BFD_RELOC_BFIN_12_PCREL_JUMP_S:        howto manager.      (line 1252)
13300* BFD_RELOC_BFIN_16_HIGH:                howto manager.      (line 1231)
13301* BFD_RELOC_BFIN_16_IMM:                 howto manager.      (line 1228)
13302* BFD_RELOC_BFIN_16_LOW:                 howto manager.      (line 1240)
13303* BFD_RELOC_BFIN_24_PCREL_CALL_X:        howto manager.      (line 1255)
13304* BFD_RELOC_BFIN_24_PCREL_JUMP_L:        howto manager.      (line 1258)
13305* BFD_RELOC_BFIN_4_PCREL:                howto manager.      (line 1234)
13306* BFD_RELOC_BFIN_5_PCREL:                howto manager.      (line 1237)
13307* BFD_RELOC_BFIN_FUNCDESC:               howto manager.      (line 1264)
13308* BFD_RELOC_BFIN_FUNCDESC_GOT17M4:       howto manager.      (line 1265)
13309* BFD_RELOC_BFIN_FUNCDESC_GOTHI:         howto manager.      (line 1266)
13310* BFD_RELOC_BFIN_FUNCDESC_GOTLO:         howto manager.      (line 1267)
13311* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4:    howto manager.      (line 1269)
13312* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI:      howto manager.      (line 1270)
13313* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO:      howto manager.      (line 1271)
13314* BFD_RELOC_BFIN_FUNCDESC_VALUE:         howto manager.      (line 1268)
13315* BFD_RELOC_BFIN_GOT:                    howto manager.      (line 1277)
13316* BFD_RELOC_BFIN_GOT17M4:                howto manager.      (line 1261)
13317* BFD_RELOC_BFIN_GOTHI:                  howto manager.      (line 1262)
13318* BFD_RELOC_BFIN_GOTLO:                  howto manager.      (line 1263)
13319* BFD_RELOC_BFIN_GOTOFF17M4:             howto manager.      (line 1272)
13320* BFD_RELOC_BFIN_GOTOFFHI:               howto manager.      (line 1273)
13321* BFD_RELOC_BFIN_GOTOFFLO:               howto manager.      (line 1274)
13322* BFD_RELOC_BFIN_PLTPC:                  howto manager.      (line 1280)
13323* BFD_RELOC_BPF_16:                      howto manager.      (line 3956)
13324* BFD_RELOC_BPF_32:                      howto manager.      (line 3955)
13325* BFD_RELOC_BPF_64:                      howto manager.      (line 3954)
13326* BFD_RELOC_BPF_DISP16:                  howto manager.      (line 3957)
13327* BFD_RELOC_BPF_DISP32:                  howto manager.      (line 3958)
13328* BFD_RELOC_C6000_ABS_H16:               howto manager.      (line 1850)
13329* BFD_RELOC_C6000_ABS_L16:               howto manager.      (line 1849)
13330* BFD_RELOC_C6000_ABS_S16:               howto manager.      (line 1848)
13331* BFD_RELOC_C6000_ALIGN:                 howto manager.      (line 1871)
13332* BFD_RELOC_C6000_COPY:                  howto manager.      (line 1866)
13333* BFD_RELOC_C6000_DSBT_INDEX:            howto manager.      (line 1864)
13334* BFD_RELOC_C6000_EHTYPE:                howto manager.      (line 1868)
13335* BFD_RELOC_C6000_FPHEAD:                howto manager.      (line 1872)
13336* BFD_RELOC_C6000_JUMP_SLOT:             howto manager.      (line 1867)
13337* BFD_RELOC_C6000_NOCMP:                 howto manager.      (line 1873)
13338* BFD_RELOC_C6000_PCR_H16:               howto manager.      (line 1869)
13339* BFD_RELOC_C6000_PCR_L16:               howto manager.      (line 1870)
13340* BFD_RELOC_C6000_PCR_S10:               howto manager.      (line 1846)
13341* BFD_RELOC_C6000_PCR_S12:               howto manager.      (line 1845)
13342* BFD_RELOC_C6000_PCR_S21:               howto manager.      (line 1844)
13343* BFD_RELOC_C6000_PCR_S7:                howto manager.      (line 1847)
13344* BFD_RELOC_C6000_PREL31:                howto manager.      (line 1865)
13345* BFD_RELOC_C6000_SBR_GOT_H16_W:         howto manager.      (line 1863)
13346* BFD_RELOC_C6000_SBR_GOT_L16_W:         howto manager.      (line 1862)
13347* BFD_RELOC_C6000_SBR_GOT_U15_W:         howto manager.      (line 1861)
13348* BFD_RELOC_C6000_SBR_H16_B:             howto manager.      (line 1858)
13349* BFD_RELOC_C6000_SBR_H16_H:             howto manager.      (line 1859)
13350* BFD_RELOC_C6000_SBR_H16_W:             howto manager.      (line 1860)
13351* BFD_RELOC_C6000_SBR_L16_B:             howto manager.      (line 1855)
13352* BFD_RELOC_C6000_SBR_L16_H:             howto manager.      (line 1856)
13353* BFD_RELOC_C6000_SBR_L16_W:             howto manager.      (line 1857)
13354* BFD_RELOC_C6000_SBR_S16:               howto manager.      (line 1854)
13355* BFD_RELOC_C6000_SBR_U15_B:             howto manager.      (line 1851)
13356* BFD_RELOC_C6000_SBR_U15_H:             howto manager.      (line 1852)
13357* BFD_RELOC_C6000_SBR_U15_W:             howto manager.      (line 1853)
13358* BFD_RELOC_CKCORE_ADDR32:               howto manager.      (line 4005)
13359* BFD_RELOC_CKCORE_ADDR_HI16:            howto manager.      (line 4028)
13360* BFD_RELOC_CKCORE_ADDR_LO16:            howto manager.      (line 4029)
13361* BFD_RELOC_CKCORE_ADDRGOT:              howto manager.      (line 4021)
13362* BFD_RELOC_CKCORE_ADDRGOT_HI16:         howto manager.      (line 4040)
13363* BFD_RELOC_CKCORE_ADDRGOT_LO16:         howto manager.      (line 4041)
13364* BFD_RELOC_CKCORE_ADDRPLT:              howto manager.      (line 4022)
13365* BFD_RELOC_CKCORE_ADDRPLT_HI16:         howto manager.      (line 4042)
13366* BFD_RELOC_CKCORE_ADDRPLT_LO16:         howto manager.      (line 4043)
13367* BFD_RELOC_CKCORE_CALLGRAPH:            howto manager.      (line 4065)
13368* BFD_RELOC_CKCORE_COPY:                 howto manager.      (line 4014)
13369* BFD_RELOC_CKCORE_DOFFSET_IMM18:        howto manager.      (line 4048)
13370* BFD_RELOC_CKCORE_DOFFSET_IMM18BY2:     howto manager.      (line 4049)
13371* BFD_RELOC_CKCORE_DOFFSET_IMM18BY4:     howto manager.      (line 4050)
13372* BFD_RELOC_CKCORE_DOFFSET_LO16:         howto manager.      (line 4046)
13373* BFD_RELOC_CKCORE_GLOB_DAT:             howto manager.      (line 4015)
13374* BFD_RELOC_CKCORE_GNU_VTENTRY:          howto manager.      (line 4012)
13375* BFD_RELOC_CKCORE_GNU_VTINHERIT:        howto manager.      (line 4011)
13376* BFD_RELOC_CKCORE_GOT12:                howto manager.      (line 4034)
13377* BFD_RELOC_CKCORE_GOT32:                howto manager.      (line 4019)
13378* BFD_RELOC_CKCORE_GOT_HI16:             howto manager.      (line 4035)
13379* BFD_RELOC_CKCORE_GOT_IMM18BY4:         howto manager.      (line 4052)
13380* BFD_RELOC_CKCORE_GOT_LO16:             howto manager.      (line 4036)
13381* BFD_RELOC_CKCORE_GOTOFF:               howto manager.      (line 4017)
13382* BFD_RELOC_CKCORE_GOTOFF_HI16:          howto manager.      (line 4032)
13383* BFD_RELOC_CKCORE_GOTOFF_IMM18:         howto manager.      (line 4051)
13384* BFD_RELOC_CKCORE_GOTOFF_LO16:          howto manager.      (line 4033)
13385* BFD_RELOC_CKCORE_GOTPC:                howto manager.      (line 4018)
13386* BFD_RELOC_CKCORE_GOTPC_HI16:           howto manager.      (line 4030)
13387* BFD_RELOC_CKCORE_GOTPC_LO16:           howto manager.      (line 4031)
13388* BFD_RELOC_CKCORE_IRELATIVE:            howto manager.      (line 4066)
13389* BFD_RELOC_CKCORE_JUMP_SLOT:            howto manager.      (line 4016)
13390* BFD_RELOC_CKCORE_NOJSRI:               howto manager.      (line 4064)
13391* BFD_RELOC_CKCORE_NONE:                 howto manager.      (line 4004)
13392* BFD_RELOC_CKCORE_PCREL32:              howto manager.      (line 4009)
13393* BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4: howto manager.      (line 4068)
13394* BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4:  howto manager.      (line 4067)
13395* BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4:   howto manager.      (line 4063)
13396* BFD_RELOC_CKCORE_PCREL_IMM10BY2:       howto manager.      (line 4026)
13397* BFD_RELOC_CKCORE_PCREL_IMM10BY4:       howto manager.      (line 4027)
13398* BFD_RELOC_CKCORE_PCREL_IMM11BY2:       howto manager.      (line 4007)
13399* BFD_RELOC_CKCORE_PCREL_IMM16BY2:       howto manager.      (line 4024)
13400* BFD_RELOC_CKCORE_PCREL_IMM16BY4:       howto manager.      (line 4025)
13401* BFD_RELOC_CKCORE_PCREL_IMM18BY2:       howto manager.      (line 4047)
13402* BFD_RELOC_CKCORE_PCREL_IMM26BY2:       howto manager.      (line 4023)
13403* BFD_RELOC_CKCORE_PCREL_IMM4BY2:        howto manager.      (line 4008)
13404* BFD_RELOC_CKCORE_PCREL_IMM7BY4:        howto manager.      (line 4054)
13405* BFD_RELOC_CKCORE_PCREL_IMM8BY4:        howto manager.      (line 4006)
13406* BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2:   howto manager.      (line 4010)
13407* BFD_RELOC_CKCORE_PCREL_JSR_IMM26BY2:   howto manager.      (line 4044)
13408* BFD_RELOC_CKCORE_PLT12:                howto manager.      (line 4037)
13409* BFD_RELOC_CKCORE_PLT32:                howto manager.      (line 4020)
13410* BFD_RELOC_CKCORE_PLT_HI16:             howto manager.      (line 4038)
13411* BFD_RELOC_CKCORE_PLT_IMM18BY4:         howto manager.      (line 4053)
13412* BFD_RELOC_CKCORE_PLT_LO16:             howto manager.      (line 4039)
13413* BFD_RELOC_CKCORE_RELATIVE:             howto manager.      (line 4013)
13414* BFD_RELOC_CKCORE_TLS_DTPMOD32:         howto manager.      (line 4060)
13415* BFD_RELOC_CKCORE_TLS_DTPOFF32:         howto manager.      (line 4061)
13416* BFD_RELOC_CKCORE_TLS_GD32:             howto manager.      (line 4057)
13417* BFD_RELOC_CKCORE_TLS_IE32:             howto manager.      (line 4056)
13418* BFD_RELOC_CKCORE_TLS_LDM32:            howto manager.      (line 4058)
13419* BFD_RELOC_CKCORE_TLS_LDO32:            howto manager.      (line 4059)
13420* BFD_RELOC_CKCORE_TLS_LE32:             howto manager.      (line 4055)
13421* BFD_RELOC_CKCORE_TLS_TPOFF32:          howto manager.      (line 4062)
13422* BFD_RELOC_CKCORE_TOFFSET_LO16:         howto manager.      (line 4045)
13423* bfd_reloc_code_type:                   howto manager.      (line   10)
13424* BFD_RELOC_CR16_ABS20:                  howto manager.      (line 2687)
13425* BFD_RELOC_CR16_ABS24:                  howto manager.      (line 2688)
13426* BFD_RELOC_CR16_DISP16:                 howto manager.      (line 2698)
13427* BFD_RELOC_CR16_DISP20:                 howto manager.      (line 2699)
13428* BFD_RELOC_CR16_DISP24:                 howto manager.      (line 2700)
13429* BFD_RELOC_CR16_DISP24a:                howto manager.      (line 2701)
13430* BFD_RELOC_CR16_DISP4:                  howto manager.      (line 2696)
13431* BFD_RELOC_CR16_DISP8:                  howto manager.      (line 2697)
13432* BFD_RELOC_CR16_GLOB_DAT:               howto manager.      (line 2707)
13433* BFD_RELOC_CR16_GOT_REGREL20:           howto manager.      (line 2705)
13434* BFD_RELOC_CR16_GOTC_REGREL20:          howto manager.      (line 2706)
13435* BFD_RELOC_CR16_IMM16:                  howto manager.      (line 2691)
13436* BFD_RELOC_CR16_IMM20:                  howto manager.      (line 2692)
13437* BFD_RELOC_CR16_IMM24:                  howto manager.      (line 2693)
13438* BFD_RELOC_CR16_IMM32:                  howto manager.      (line 2694)
13439* BFD_RELOC_CR16_IMM32a:                 howto manager.      (line 2695)
13440* BFD_RELOC_CR16_IMM4:                   howto manager.      (line 2689)
13441* BFD_RELOC_CR16_IMM8:                   howto manager.      (line 2690)
13442* BFD_RELOC_CR16_NUM16:                  howto manager.      (line 2676)
13443* BFD_RELOC_CR16_NUM32:                  howto manager.      (line 2677)
13444* BFD_RELOC_CR16_NUM32a:                 howto manager.      (line 2678)
13445* BFD_RELOC_CR16_NUM8:                   howto manager.      (line 2675)
13446* BFD_RELOC_CR16_REGREL0:                howto manager.      (line 2679)
13447* BFD_RELOC_CR16_REGREL14:               howto manager.      (line 2682)
13448* BFD_RELOC_CR16_REGREL14a:              howto manager.      (line 2683)
13449* BFD_RELOC_CR16_REGREL16:               howto manager.      (line 2684)
13450* BFD_RELOC_CR16_REGREL20:               howto manager.      (line 2685)
13451* BFD_RELOC_CR16_REGREL20a:              howto manager.      (line 2686)
13452* BFD_RELOC_CR16_REGREL4:                howto manager.      (line 2680)
13453* BFD_RELOC_CR16_REGREL4a:               howto manager.      (line 2681)
13454* BFD_RELOC_CR16_SWITCH16:               howto manager.      (line 2703)
13455* BFD_RELOC_CR16_SWITCH32:               howto manager.      (line 2704)
13456* BFD_RELOC_CR16_SWITCH8:                howto manager.      (line 2702)
13457* BFD_RELOC_CRIS_16_DTPREL:              howto manager.      (line 2778)
13458* BFD_RELOC_CRIS_16_GOT:                 howto manager.      (line 2754)
13459* BFD_RELOC_CRIS_16_GOT_GD:              howto manager.      (line 2774)
13460* BFD_RELOC_CRIS_16_GOT_TPREL:           howto manager.      (line 2780)
13461* BFD_RELOC_CRIS_16_GOTPLT:              howto manager.      (line 2760)
13462* BFD_RELOC_CRIS_16_TPREL:               howto manager.      (line 2782)
13463* BFD_RELOC_CRIS_32_DTPREL:              howto manager.      (line 2777)
13464* BFD_RELOC_CRIS_32_GD:                  howto manager.      (line 2775)
13465* BFD_RELOC_CRIS_32_GOT:                 howto manager.      (line 2751)
13466* BFD_RELOC_CRIS_32_GOT_GD:              howto manager.      (line 2773)
13467* BFD_RELOC_CRIS_32_GOT_TPREL:           howto manager.      (line 2779)
13468* BFD_RELOC_CRIS_32_GOTPLT:              howto manager.      (line 2757)
13469* BFD_RELOC_CRIS_32_GOTREL:              howto manager.      (line 2763)
13470* BFD_RELOC_CRIS_32_IE:                  howto manager.      (line 2784)
13471* BFD_RELOC_CRIS_32_PLT_GOTREL:          howto manager.      (line 2766)
13472* BFD_RELOC_CRIS_32_PLT_PCREL:           howto manager.      (line 2769)
13473* BFD_RELOC_CRIS_32_TPREL:               howto manager.      (line 2781)
13474* BFD_RELOC_CRIS_BDISP8:                 howto manager.      (line 2732)
13475* BFD_RELOC_CRIS_COPY:                   howto manager.      (line 2745)
13476* BFD_RELOC_CRIS_DTP:                    howto manager.      (line 2776)
13477* BFD_RELOC_CRIS_DTPMOD:                 howto manager.      (line 2783)
13478* BFD_RELOC_CRIS_GLOB_DAT:               howto manager.      (line 2746)
13479* BFD_RELOC_CRIS_JUMP_SLOT:              howto manager.      (line 2747)
13480* BFD_RELOC_CRIS_LAPCQ_OFFSET:           howto manager.      (line 2740)
13481* BFD_RELOC_CRIS_RELATIVE:               howto manager.      (line 2748)
13482* BFD_RELOC_CRIS_SIGNED_16:              howto manager.      (line 2738)
13483* BFD_RELOC_CRIS_SIGNED_6:               howto manager.      (line 2734)
13484* BFD_RELOC_CRIS_SIGNED_8:               howto manager.      (line 2736)
13485* BFD_RELOC_CRIS_UNSIGNED_16:            howto manager.      (line 2739)
13486* BFD_RELOC_CRIS_UNSIGNED_4:             howto manager.      (line 2741)
13487* BFD_RELOC_CRIS_UNSIGNED_5:             howto manager.      (line 2733)
13488* BFD_RELOC_CRIS_UNSIGNED_6:             howto manager.      (line 2735)
13489* BFD_RELOC_CRIS_UNSIGNED_8:             howto manager.      (line 2737)
13490* BFD_RELOC_CRX_ABS16:                   howto manager.      (line 2720)
13491* BFD_RELOC_CRX_ABS32:                   howto manager.      (line 2721)
13492* BFD_RELOC_CRX_IMM16:                   howto manager.      (line 2725)
13493* BFD_RELOC_CRX_IMM32:                   howto manager.      (line 2726)
13494* BFD_RELOC_CRX_NUM16:                   howto manager.      (line 2723)
13495* BFD_RELOC_CRX_NUM32:                   howto manager.      (line 2724)
13496* BFD_RELOC_CRX_NUM8:                    howto manager.      (line 2722)
13497* BFD_RELOC_CRX_REGREL12:                howto manager.      (line 2716)
13498* BFD_RELOC_CRX_REGREL22:                howto manager.      (line 2717)
13499* BFD_RELOC_CRX_REGREL28:                howto manager.      (line 2718)
13500* BFD_RELOC_CRX_REGREL32:                howto manager.      (line 2719)
13501* BFD_RELOC_CRX_REL16:                   howto manager.      (line 2713)
13502* BFD_RELOC_CRX_REL24:                   howto manager.      (line 2714)
13503* BFD_RELOC_CRX_REL32:                   howto manager.      (line 2715)
13504* BFD_RELOC_CRX_REL4:                    howto manager.      (line 2710)
13505* BFD_RELOC_CRX_REL8:                    howto manager.      (line 2711)
13506* BFD_RELOC_CRX_REL8_CMP:                howto manager.      (line 2712)
13507* BFD_RELOC_CRX_SWITCH16:                howto manager.      (line 2728)
13508* BFD_RELOC_CRX_SWITCH32:                howto manager.      (line 2729)
13509* BFD_RELOC_CRX_SWITCH8:                 howto manager.      (line 2727)
13510* BFD_RELOC_CTOR:                        howto manager.      (line  857)
13511* BFD_RELOC_D10V_10_PCREL_L:             howto manager.      (line 1347)
13512* BFD_RELOC_D10V_10_PCREL_R:             howto manager.      (line 1343)
13513* BFD_RELOC_D10V_18:                     howto manager.      (line 1352)
13514* BFD_RELOC_D10V_18_PCREL:               howto manager.      (line 1355)
13515* BFD_RELOC_D30V_15:                     howto manager.      (line 1370)
13516* BFD_RELOC_D30V_15_PCREL:               howto manager.      (line 1374)
13517* BFD_RELOC_D30V_15_PCREL_R:             howto manager.      (line 1378)
13518* BFD_RELOC_D30V_21:                     howto manager.      (line 1383)
13519* BFD_RELOC_D30V_21_PCREL:               howto manager.      (line 1387)
13520* BFD_RELOC_D30V_21_PCREL_R:             howto manager.      (line 1391)
13521* BFD_RELOC_D30V_32:                     howto manager.      (line 1396)
13522* BFD_RELOC_D30V_32_PCREL:               howto manager.      (line 1399)
13523* BFD_RELOC_D30V_6:                      howto manager.      (line 1358)
13524* BFD_RELOC_D30V_9_PCREL:                howto manager.      (line 1361)
13525* BFD_RELOC_D30V_9_PCREL_R:              howto manager.      (line 1365)
13526* BFD_RELOC_DLX_HI16_S:                  howto manager.      (line 1402)
13527* BFD_RELOC_DLX_JMP26:                   howto manager.      (line 1408)
13528* BFD_RELOC_DLX_LO16:                    howto manager.      (line 1405)
13529* BFD_RELOC_EPIPHANY_HIGH:               howto manager.      (line 3967)
13530* BFD_RELOC_EPIPHANY_IMM11:              howto manager.      (line 3976)
13531* BFD_RELOC_EPIPHANY_IMM8:               howto manager.      (line 3980)
13532* BFD_RELOC_EPIPHANY_LOW:                howto manager.      (line 3970)
13533* BFD_RELOC_EPIPHANY_SIMM11:             howto manager.      (line 3973)
13534* BFD_RELOC_EPIPHANY_SIMM24:             howto manager.      (line 3964)
13535* BFD_RELOC_EPIPHANY_SIMM8:              howto manager.      (line 3961)
13536* BFD_RELOC_FR30_10_IN_8:                howto manager.      (line 1895)
13537* BFD_RELOC_FR30_12_PCREL:               howto manager.      (line 1903)
13538* BFD_RELOC_FR30_20:                     howto manager.      (line 1879)
13539* BFD_RELOC_FR30_48:                     howto manager.      (line 1876)
13540* BFD_RELOC_FR30_6_IN_4:                 howto manager.      (line 1883)
13541* BFD_RELOC_FR30_8_IN_8:                 howto manager.      (line 1887)
13542* BFD_RELOC_FR30_9_IN_8:                 howto manager.      (line 1891)
13543* BFD_RELOC_FR30_9_PCREL:                howto manager.      (line 1899)
13544* BFD_RELOC_FRV_FUNCDESC:                howto manager.      (line  513)
13545* BFD_RELOC_FRV_FUNCDESC_GOT12:          howto manager.      (line  514)
13546* BFD_RELOC_FRV_FUNCDESC_GOTHI:          howto manager.      (line  515)
13547* BFD_RELOC_FRV_FUNCDESC_GOTLO:          howto manager.      (line  516)
13548* BFD_RELOC_FRV_FUNCDESC_GOTOFF12:       howto manager.      (line  518)
13549* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI:       howto manager.      (line  519)
13550* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO:       howto manager.      (line  520)
13551* BFD_RELOC_FRV_FUNCDESC_VALUE:          howto manager.      (line  517)
13552* BFD_RELOC_FRV_GETTLSOFF:               howto manager.      (line  524)
13553* BFD_RELOC_FRV_GETTLSOFF_RELAX:         howto manager.      (line  537)
13554* BFD_RELOC_FRV_GOT12:                   howto manager.      (line  510)
13555* BFD_RELOC_FRV_GOTHI:                   howto manager.      (line  511)
13556* BFD_RELOC_FRV_GOTLO:                   howto manager.      (line  512)
13557* BFD_RELOC_FRV_GOTOFF12:                howto manager.      (line  521)
13558* BFD_RELOC_FRV_GOTOFFHI:                howto manager.      (line  522)
13559* BFD_RELOC_FRV_GOTOFFLO:                howto manager.      (line  523)
13560* BFD_RELOC_FRV_GOTTLSDESC12:            howto manager.      (line  526)
13561* BFD_RELOC_FRV_GOTTLSDESCHI:            howto manager.      (line  527)
13562* BFD_RELOC_FRV_GOTTLSDESCLO:            howto manager.      (line  528)
13563* BFD_RELOC_FRV_GOTTLSOFF12:             howto manager.      (line  532)
13564* BFD_RELOC_FRV_GOTTLSOFFHI:             howto manager.      (line  533)
13565* BFD_RELOC_FRV_GOTTLSOFFLO:             howto manager.      (line  534)
13566* BFD_RELOC_FRV_GPREL12:                 howto manager.      (line  505)
13567* BFD_RELOC_FRV_GPREL32:                 howto manager.      (line  507)
13568* BFD_RELOC_FRV_GPRELHI:                 howto manager.      (line  508)
13569* BFD_RELOC_FRV_GPRELLO:                 howto manager.      (line  509)
13570* BFD_RELOC_FRV_GPRELU12:                howto manager.      (line  506)
13571* BFD_RELOC_FRV_HI16:                    howto manager.      (line  504)
13572* BFD_RELOC_FRV_LABEL16:                 howto manager.      (line  501)
13573* BFD_RELOC_FRV_LABEL24:                 howto manager.      (line  502)
13574* BFD_RELOC_FRV_LO16:                    howto manager.      (line  503)
13575* BFD_RELOC_FRV_TLSDESC_RELAX:           howto manager.      (line  536)
13576* BFD_RELOC_FRV_TLSDESC_VALUE:           howto manager.      (line  525)
13577* BFD_RELOC_FRV_TLSMOFF:                 howto manager.      (line  539)
13578* BFD_RELOC_FRV_TLSMOFF12:               howto manager.      (line  529)
13579* BFD_RELOC_FRV_TLSMOFFHI:               howto manager.      (line  530)
13580* BFD_RELOC_FRV_TLSMOFFLO:               howto manager.      (line  531)
13581* BFD_RELOC_FRV_TLSOFF:                  howto manager.      (line  535)
13582* BFD_RELOC_FRV_TLSOFF_RELAX:            howto manager.      (line  538)
13583* BFD_RELOC_FT32_10:                     howto manager.      (line  490)
13584* BFD_RELOC_FT32_15:                     howto manager.      (line  497)
13585* BFD_RELOC_FT32_17:                     howto manager.      (line  492)
13586* BFD_RELOC_FT32_18:                     howto manager.      (line  493)
13587* BFD_RELOC_FT32_20:                     howto manager.      (line  491)
13588* BFD_RELOC_FT32_DIFF32:                 howto manager.      (line  498)
13589* BFD_RELOC_FT32_RELAX:                  howto manager.      (line  494)
13590* BFD_RELOC_FT32_SC0:                    howto manager.      (line  495)
13591* BFD_RELOC_FT32_SC1:                    howto manager.      (line  496)
13592* BFD_RELOC_GPREL16:                     howto manager.      (line  130)
13593* BFD_RELOC_GPREL32:                     howto manager.      (line  131)
13594* BFD_RELOC_H8_DIR16A8:                  howto manager.      (line 2829)
13595* BFD_RELOC_H8_DIR16R8:                  howto manager.      (line 2830)
13596* BFD_RELOC_H8_DIR24A8:                  howto manager.      (line 2831)
13597* BFD_RELOC_H8_DIR24R8:                  howto manager.      (line 2832)
13598* BFD_RELOC_H8_DIR32A16:                 howto manager.      (line 2833)
13599* BFD_RELOC_H8_DISP32A16:                howto manager.      (line 2834)
13600* BFD_RELOC_HI16:                        howto manager.      (line  354)
13601* BFD_RELOC_HI16_BASEREL:                howto manager.      (line  106)
13602* BFD_RELOC_HI16_GOTOFF:                 howto manager.      (line   56)
13603* BFD_RELOC_HI16_PCREL:                  howto manager.      (line  366)
13604* BFD_RELOC_HI16_PLTOFF:                 howto manager.      (line   68)
13605* BFD_RELOC_HI16_S:                      howto manager.      (line  357)
13606* BFD_RELOC_HI16_S_BASEREL:              howto manager.      (line  107)
13607* BFD_RELOC_HI16_S_GOTOFF:               howto manager.      (line   57)
13608* BFD_RELOC_HI16_S_PCREL:                howto manager.      (line  369)
13609* BFD_RELOC_HI16_S_PLTOFF:               howto manager.      (line   69)
13610* BFD_RELOC_HI22:                        howto manager.      (line  125)
13611* BFD_RELOC_I370_D12:                    howto manager.      (line  854)
13612* BFD_RELOC_IA64_COPY:                   howto manager.      (line 2544)
13613* BFD_RELOC_IA64_DIR32LSB:               howto manager.      (line 2489)
13614* BFD_RELOC_IA64_DIR32MSB:               howto manager.      (line 2488)
13615* BFD_RELOC_IA64_DIR64LSB:               howto manager.      (line 2491)
13616* BFD_RELOC_IA64_DIR64MSB:               howto manager.      (line 2490)
13617* BFD_RELOC_IA64_DTPMOD64LSB:            howto manager.      (line 2554)
13618* BFD_RELOC_IA64_DTPMOD64MSB:            howto manager.      (line 2553)
13619* BFD_RELOC_IA64_DTPREL14:               howto manager.      (line 2556)
13620* BFD_RELOC_IA64_DTPREL22:               howto manager.      (line 2557)
13621* BFD_RELOC_IA64_DTPREL32LSB:            howto manager.      (line 2560)
13622* BFD_RELOC_IA64_DTPREL32MSB:            howto manager.      (line 2559)
13623* BFD_RELOC_IA64_DTPREL64I:              howto manager.      (line 2558)
13624* BFD_RELOC_IA64_DTPREL64LSB:            howto manager.      (line 2562)
13625* BFD_RELOC_IA64_DTPREL64MSB:            howto manager.      (line 2561)
13626* BFD_RELOC_IA64_FPTR32LSB:              howto manager.      (line 2506)
13627* BFD_RELOC_IA64_FPTR32MSB:              howto manager.      (line 2505)
13628* BFD_RELOC_IA64_FPTR64I:                howto manager.      (line 2504)
13629* BFD_RELOC_IA64_FPTR64LSB:              howto manager.      (line 2508)
13630* BFD_RELOC_IA64_FPTR64MSB:              howto manager.      (line 2507)
13631* BFD_RELOC_IA64_GPREL22:                howto manager.      (line 2492)
13632* BFD_RELOC_IA64_GPREL32LSB:             howto manager.      (line 2495)
13633* BFD_RELOC_IA64_GPREL32MSB:             howto manager.      (line 2494)
13634* BFD_RELOC_IA64_GPREL64I:               howto manager.      (line 2493)
13635* BFD_RELOC_IA64_GPREL64LSB:             howto manager.      (line 2497)
13636* BFD_RELOC_IA64_GPREL64MSB:             howto manager.      (line 2496)
13637* BFD_RELOC_IA64_IMM14:                  howto manager.      (line 2485)
13638* BFD_RELOC_IA64_IMM22:                  howto manager.      (line 2486)
13639* BFD_RELOC_IA64_IMM64:                  howto manager.      (line 2487)
13640* BFD_RELOC_IA64_IPLTLSB:                howto manager.      (line 2543)
13641* BFD_RELOC_IA64_IPLTMSB:                howto manager.      (line 2542)
13642* BFD_RELOC_IA64_LDXMOV:                 howto manager.      (line 2546)
13643* BFD_RELOC_IA64_LTOFF22:                howto manager.      (line 2498)
13644* BFD_RELOC_IA64_LTOFF22X:               howto manager.      (line 2545)
13645* BFD_RELOC_IA64_LTOFF64I:               howto manager.      (line 2499)
13646* BFD_RELOC_IA64_LTOFF_DTPMOD22:         howto manager.      (line 2555)
13647* BFD_RELOC_IA64_LTOFF_DTPREL22:         howto manager.      (line 2563)
13648* BFD_RELOC_IA64_LTOFF_FPTR22:           howto manager.      (line 2520)
13649* BFD_RELOC_IA64_LTOFF_FPTR32LSB:        howto manager.      (line 2523)
13650* BFD_RELOC_IA64_LTOFF_FPTR32MSB:        howto manager.      (line 2522)
13651* BFD_RELOC_IA64_LTOFF_FPTR64I:          howto manager.      (line 2521)
13652* BFD_RELOC_IA64_LTOFF_FPTR64LSB:        howto manager.      (line 2525)
13653* BFD_RELOC_IA64_LTOFF_FPTR64MSB:        howto manager.      (line 2524)
13654* BFD_RELOC_IA64_LTOFF_TPREL22:          howto manager.      (line 2552)
13655* BFD_RELOC_IA64_LTV32LSB:               howto manager.      (line 2539)
13656* BFD_RELOC_IA64_LTV32MSB:               howto manager.      (line 2538)
13657* BFD_RELOC_IA64_LTV64LSB:               howto manager.      (line 2541)
13658* BFD_RELOC_IA64_LTV64MSB:               howto manager.      (line 2540)
13659* BFD_RELOC_IA64_PCREL21B:               howto manager.      (line 2509)
13660* BFD_RELOC_IA64_PCREL21BI:              howto manager.      (line 2510)
13661* BFD_RELOC_IA64_PCREL21F:               howto manager.      (line 2512)
13662* BFD_RELOC_IA64_PCREL21M:               howto manager.      (line 2511)
13663* BFD_RELOC_IA64_PCREL22:                howto manager.      (line 2513)
13664* BFD_RELOC_IA64_PCREL32LSB:             howto manager.      (line 2517)
13665* BFD_RELOC_IA64_PCREL32MSB:             howto manager.      (line 2516)
13666* BFD_RELOC_IA64_PCREL60B:               howto manager.      (line 2514)
13667* BFD_RELOC_IA64_PCREL64I:               howto manager.      (line 2515)
13668* BFD_RELOC_IA64_PCREL64LSB:             howto manager.      (line 2519)
13669* BFD_RELOC_IA64_PCREL64MSB:             howto manager.      (line 2518)
13670* BFD_RELOC_IA64_PLTOFF22:               howto manager.      (line 2500)
13671* BFD_RELOC_IA64_PLTOFF64I:              howto manager.      (line 2501)
13672* BFD_RELOC_IA64_PLTOFF64LSB:            howto manager.      (line 2503)
13673* BFD_RELOC_IA64_PLTOFF64MSB:            howto manager.      (line 2502)
13674* BFD_RELOC_IA64_REL32LSB:               howto manager.      (line 2535)
13675* BFD_RELOC_IA64_REL32MSB:               howto manager.      (line 2534)
13676* BFD_RELOC_IA64_REL64LSB:               howto manager.      (line 2537)
13677* BFD_RELOC_IA64_REL64MSB:               howto manager.      (line 2536)
13678* BFD_RELOC_IA64_SECREL32LSB:            howto manager.      (line 2531)
13679* BFD_RELOC_IA64_SECREL32MSB:            howto manager.      (line 2530)
13680* BFD_RELOC_IA64_SECREL64LSB:            howto manager.      (line 2533)
13681* BFD_RELOC_IA64_SECREL64MSB:            howto manager.      (line 2532)
13682* BFD_RELOC_IA64_SEGREL32LSB:            howto manager.      (line 2527)
13683* BFD_RELOC_IA64_SEGREL32MSB:            howto manager.      (line 2526)
13684* BFD_RELOC_IA64_SEGREL64LSB:            howto manager.      (line 2529)
13685* BFD_RELOC_IA64_SEGREL64MSB:            howto manager.      (line 2528)
13686* BFD_RELOC_IA64_TPREL14:                howto manager.      (line 2547)
13687* BFD_RELOC_IA64_TPREL22:                howto manager.      (line 2548)
13688* BFD_RELOC_IA64_TPREL64I:               howto manager.      (line 2549)
13689* BFD_RELOC_IA64_TPREL64LSB:             howto manager.      (line 2551)
13690* BFD_RELOC_IA64_TPREL64MSB:             howto manager.      (line 2550)
13691* BFD_RELOC_IP2K_ADDR16CJP:              howto manager.      (line 2437)
13692* BFD_RELOC_IP2K_BANK:                   howto manager.      (line 2434)
13693* BFD_RELOC_IP2K_EX8DATA:                howto manager.      (line 2445)
13694* BFD_RELOC_IP2K_FR9:                    howto manager.      (line 2431)
13695* BFD_RELOC_IP2K_FR_OFFSET:              howto manager.      (line 2458)
13696* BFD_RELOC_IP2K_HI8DATA:                howto manager.      (line 2444)
13697* BFD_RELOC_IP2K_HI8INSN:                howto manager.      (line 2449)
13698* BFD_RELOC_IP2K_LO8DATA:                howto manager.      (line 2443)
13699* BFD_RELOC_IP2K_LO8INSN:                howto manager.      (line 2448)
13700* BFD_RELOC_IP2K_PAGE3:                  howto manager.      (line 2440)
13701* BFD_RELOC_IP2K_PC_SKIP:                howto manager.      (line 2452)
13702* BFD_RELOC_IP2K_TEXT:                   howto manager.      (line 2455)
13703* BFD_RELOC_IQ2000_OFFSET_16:            howto manager.      (line 2984)
13704* BFD_RELOC_IQ2000_OFFSET_21:            howto manager.      (line 2985)
13705* BFD_RELOC_IQ2000_UHI16:                howto manager.      (line 2986)
13706* BFD_RELOC_LARCH_ADD16:                 howto manager.      (line 4108)
13707* BFD_RELOC_LARCH_ADD24:                 howto manager.      (line 4109)
13708* BFD_RELOC_LARCH_ADD32:                 howto manager.      (line 4110)
13709* BFD_RELOC_LARCH_ADD64:                 howto manager.      (line 4111)
13710* BFD_RELOC_LARCH_ADD8:                  howto manager.      (line 4107)
13711* BFD_RELOC_LARCH_MARK_LA:               howto manager.      (line 4080)
13712* BFD_RELOC_LARCH_MARK_PCREL:            howto manager.      (line 4081)
13713* BFD_RELOC_LARCH_SOP_ADD:               howto manager.      (line 4095)
13714* BFD_RELOC_LARCH_SOP_AND:               howto manager.      (line 4096)
13715* BFD_RELOC_LARCH_SOP_ASSERT:            howto manager.      (line 4090)
13716* BFD_RELOC_LARCH_SOP_IF_ELSE:           howto manager.      (line 4097)
13717* BFD_RELOC_LARCH_SOP_NOT:               howto manager.      (line 4091)
13718* BFD_RELOC_LARCH_SOP_POP_32_S_0_10_10_16_S2: howto manager. (line 4105)
13719* BFD_RELOC_LARCH_SOP_POP_32_S_0_5_10_16_S2: howto manager.  (line 4104)
13720* BFD_RELOC_LARCH_SOP_POP_32_S_10_12:    howto manager.      (line 4100)
13721* BFD_RELOC_LARCH_SOP_POP_32_S_10_16:    howto manager.      (line 4101)
13722* BFD_RELOC_LARCH_SOP_POP_32_S_10_16_S2: howto manager.      (line 4102)
13723* BFD_RELOC_LARCH_SOP_POP_32_S_10_5:     howto manager.      (line 4098)
13724* BFD_RELOC_LARCH_SOP_POP_32_S_5_20:     howto manager.      (line 4103)
13725* BFD_RELOC_LARCH_SOP_POP_32_U:          howto manager.      (line 4106)
13726* BFD_RELOC_LARCH_SOP_POP_32_U_10_12:    howto manager.      (line 4099)
13727* BFD_RELOC_LARCH_SOP_PUSH_ABSOLUTE:     howto manager.      (line 4083)
13728* BFD_RELOC_LARCH_SOP_PUSH_DUP:          howto manager.      (line 4084)
13729* BFD_RELOC_LARCH_SOP_PUSH_GPREL:        howto manager.      (line 4085)
13730* BFD_RELOC_LARCH_SOP_PUSH_PCREL:        howto manager.      (line 4082)
13731* BFD_RELOC_LARCH_SOP_PUSH_PLT_PCREL:    howto manager.      (line 4089)
13732* BFD_RELOC_LARCH_SOP_PUSH_TLS_GD:       howto manager.      (line 4088)
13733* BFD_RELOC_LARCH_SOP_PUSH_TLS_GOT:      howto manager.      (line 4087)
13734* BFD_RELOC_LARCH_SOP_PUSH_TLS_TPREL:    howto manager.      (line 4086)
13735* BFD_RELOC_LARCH_SOP_SL:                howto manager.      (line 4093)
13736* BFD_RELOC_LARCH_SOP_SR:                howto manager.      (line 4094)
13737* BFD_RELOC_LARCH_SOP_SUB:               howto manager.      (line 4092)
13738* BFD_RELOC_LARCH_SUB16:                 howto manager.      (line 4113)
13739* BFD_RELOC_LARCH_SUB24:                 howto manager.      (line 4114)
13740* BFD_RELOC_LARCH_SUB32:                 howto manager.      (line 4115)
13741* BFD_RELOC_LARCH_SUB64:                 howto manager.      (line 4116)
13742* BFD_RELOC_LARCH_SUB8:                  howto manager.      (line 4112)
13743* BFD_RELOC_LARCH_TLS_DTPMOD32:          howto manager.      (line 4074)
13744* BFD_RELOC_LARCH_TLS_DTPMOD64:          howto manager.      (line 4076)
13745* BFD_RELOC_LARCH_TLS_DTPREL32:          howto manager.      (line 4075)
13746* BFD_RELOC_LARCH_TLS_DTPREL64:          howto manager.      (line 4077)
13747* BFD_RELOC_LARCH_TLS_TPREL32:           howto manager.      (line 4078)
13748* BFD_RELOC_LARCH_TLS_TPREL64:           howto manager.      (line 4079)
13749* BFD_RELOC_LM32_16_GOT:                 howto manager.      (line 3130)
13750* BFD_RELOC_LM32_BRANCH:                 howto manager.      (line 3129)
13751* BFD_RELOC_LM32_CALL:                   howto manager.      (line 3128)
13752* BFD_RELOC_LM32_COPY:                   howto manager.      (line 3133)
13753* BFD_RELOC_LM32_GLOB_DAT:               howto manager.      (line 3134)
13754* BFD_RELOC_LM32_GOTOFF_HI16:            howto manager.      (line 3131)
13755* BFD_RELOC_LM32_GOTOFF_LO16:            howto manager.      (line 3132)
13756* BFD_RELOC_LM32_JMP_SLOT:               howto manager.      (line 3135)
13757* BFD_RELOC_LM32_RELATIVE:               howto manager.      (line 3136)
13758* BFD_RELOC_LO10:                        howto manager.      (line  126)
13759* BFD_RELOC_LO16:                        howto manager.      (line  363)
13760* BFD_RELOC_LO16_BASEREL:                howto manager.      (line  105)
13761* BFD_RELOC_LO16_GOTOFF:                 howto manager.      (line   55)
13762* BFD_RELOC_LO16_PCREL:                  howto manager.      (line  372)
13763* BFD_RELOC_LO16_PLTOFF:                 howto manager.      (line   67)
13764* BFD_RELOC_M32C_HI8:                    howto manager.      (line 1411)
13765* BFD_RELOC_M32C_RL_1ADDR:               howto manager.      (line 1413)
13766* BFD_RELOC_M32C_RL_2ADDR:               howto manager.      (line 1414)
13767* BFD_RELOC_M32C_RL_JUMP:                howto manager.      (line 1412)
13768* BFD_RELOC_M32R_10_PCREL:               howto manager.      (line 1421)
13769* BFD_RELOC_M32R_18_PCREL:               howto manager.      (line 1425)
13770* BFD_RELOC_M32R_24:                     howto manager.      (line 1417)
13771* BFD_RELOC_M32R_26_PCREL:               howto manager.      (line 1428)
13772* BFD_RELOC_M32R_26_PLTREL:              howto manager.      (line 1447)
13773* BFD_RELOC_M32R_COPY:                   howto manager.      (line 1448)
13774* BFD_RELOC_M32R_GLOB_DAT:               howto manager.      (line 1449)
13775* BFD_RELOC_M32R_GOT16_HI_SLO:           howto manager.      (line 1458)
13776* BFD_RELOC_M32R_GOT16_HI_ULO:           howto manager.      (line 1457)
13777* BFD_RELOC_M32R_GOT16_LO:               howto manager.      (line 1459)
13778* BFD_RELOC_M32R_GOT24:                  howto manager.      (line 1446)
13779* BFD_RELOC_M32R_GOTOFF:                 howto manager.      (line 1452)
13780* BFD_RELOC_M32R_GOTOFF_HI_SLO:          howto manager.      (line 1454)
13781* BFD_RELOC_M32R_GOTOFF_HI_ULO:          howto manager.      (line 1453)
13782* BFD_RELOC_M32R_GOTOFF_LO:              howto manager.      (line 1455)
13783* BFD_RELOC_M32R_GOTPC24:                howto manager.      (line 1456)
13784* BFD_RELOC_M32R_GOTPC_HI_SLO:           howto manager.      (line 1461)
13785* BFD_RELOC_M32R_GOTPC_HI_ULO:           howto manager.      (line 1460)
13786* BFD_RELOC_M32R_GOTPC_LO:               howto manager.      (line 1462)
13787* BFD_RELOC_M32R_HI16_SLO:               howto manager.      (line 1435)
13788* BFD_RELOC_M32R_HI16_ULO:               howto manager.      (line 1431)
13789* BFD_RELOC_M32R_JMP_SLOT:               howto manager.      (line 1450)
13790* BFD_RELOC_M32R_LO16:                   howto manager.      (line 1439)
13791* BFD_RELOC_M32R_RELATIVE:               howto manager.      (line 1451)
13792* BFD_RELOC_M32R_SDA16:                  howto manager.      (line 1442)
13793* BFD_RELOC_M68HC11_24:                  howto manager.      (line 2599)
13794* BFD_RELOC_M68HC11_3B:                  howto manager.      (line 2574)
13795* BFD_RELOC_M68HC11_HI8:                 howto manager.      (line 2566)
13796* BFD_RELOC_M68HC11_LO16:                howto manager.      (line 2588)
13797* BFD_RELOC_M68HC11_LO8:                 howto manager.      (line 2570)
13798* BFD_RELOC_M68HC11_PAGE:                howto manager.      (line 2594)
13799* BFD_RELOC_M68HC11_RL_GROUP:            howto manager.      (line 2583)
13800* BFD_RELOC_M68HC11_RL_JUMP:             howto manager.      (line 2577)
13801* BFD_RELOC_M68HC12_10_PCREL:            howto manager.      (line 2659)
13802* BFD_RELOC_M68HC12_16B:                 howto manager.      (line 2653)
13803* BFD_RELOC_M68HC12_5B:                  howto manager.      (line 2605)
13804* BFD_RELOC_M68HC12_9_PCREL:             howto manager.      (line 2656)
13805* BFD_RELOC_M68HC12_9B:                  howto manager.      (line 2650)
13806* BFD_RELOC_M68HC12_HI8XG:               howto manager.      (line 2666)
13807* BFD_RELOC_M68HC12_LO8XG:               howto manager.      (line 2662)
13808* BFD_RELOC_MACH_O_ARM64_ADDEND:         howto manager.      (line 3179)
13809* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21: howto manager.     (line 3182)
13810* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12: howto manager.  (line 3185)
13811* BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT: howto manager.      (line 3188)
13812* BFD_RELOC_MACH_O_LOCAL_SECTDIFF:       howto manager.      (line 3143)
13813* BFD_RELOC_MACH_O_PAIR:                 howto manager.      (line 3146)
13814* BFD_RELOC_MACH_O_SECTDIFF:             howto manager.      (line 3139)
13815* BFD_RELOC_MACH_O_SUBTRACTOR32:         howto manager.      (line 3149)
13816* BFD_RELOC_MACH_O_SUBTRACTOR64:         howto manager.      (line 3152)
13817* BFD_RELOC_MACH_O_X86_64_BRANCH32:      howto manager.      (line 3155)
13818* BFD_RELOC_MACH_O_X86_64_BRANCH8:       howto manager.      (line 3156)
13819* BFD_RELOC_MACH_O_X86_64_GOT:           howto manager.      (line 3160)
13820* BFD_RELOC_MACH_O_X86_64_GOT_LOAD:      howto manager.      (line 3163)
13821* BFD_RELOC_MACH_O_X86_64_PCREL32_1:     howto manager.      (line 3167)
13822* BFD_RELOC_MACH_O_X86_64_PCREL32_2:     howto manager.      (line 3170)
13823* BFD_RELOC_MACH_O_X86_64_PCREL32_4:     howto manager.      (line 3173)
13824* BFD_RELOC_MACH_O_X86_64_TLV:           howto manager.      (line 3176)
13825* BFD_RELOC_MCORE_PCREL_32:              howto manager.      (line 1910)
13826* BFD_RELOC_MCORE_PCREL_IMM11BY2:        howto manager.      (line 1908)
13827* BFD_RELOC_MCORE_PCREL_IMM4BY2:         howto manager.      (line 1909)
13828* BFD_RELOC_MCORE_PCREL_IMM8BY4:         howto manager.      (line 1907)
13829* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2:    howto manager.      (line 1911)
13830* BFD_RELOC_MCORE_RVA:                   howto manager.      (line 1912)
13831* BFD_RELOC_MEP_16:                      howto manager.      (line 1916)
13832* BFD_RELOC_MEP_32:                      howto manager.      (line 1917)
13833* BFD_RELOC_MEP_8:                       howto manager.      (line 1915)
13834* BFD_RELOC_MEP_ADDR24A4:                howto manager.      (line 1932)
13835* BFD_RELOC_MEP_GNU_VTENTRY:             howto manager.      (line 1934)
13836* BFD_RELOC_MEP_GNU_VTINHERIT:           howto manager.      (line 1933)
13837* BFD_RELOC_MEP_GPREL:                   howto manager.      (line 1926)
13838* BFD_RELOC_MEP_HI16S:                   howto manager.      (line 1925)
13839* BFD_RELOC_MEP_HI16U:                   howto manager.      (line 1924)
13840* BFD_RELOC_MEP_LOW16:                   howto manager.      (line 1923)
13841* BFD_RELOC_MEP_PCABS24A2:               howto manager.      (line 1922)
13842* BFD_RELOC_MEP_PCREL12A2:               howto manager.      (line 1919)
13843* BFD_RELOC_MEP_PCREL17A2:               howto manager.      (line 1920)
13844* BFD_RELOC_MEP_PCREL24A2:               howto manager.      (line 1921)
13845* BFD_RELOC_MEP_PCREL8A2:                howto manager.      (line 1918)
13846* BFD_RELOC_MEP_TPREL:                   howto manager.      (line 1927)
13847* BFD_RELOC_MEP_TPREL7:                  howto manager.      (line 1928)
13848* BFD_RELOC_MEP_TPREL7A2:                howto manager.      (line 1929)
13849* BFD_RELOC_MEP_TPREL7A4:                howto manager.      (line 1930)
13850* BFD_RELOC_MEP_UIMM24:                  howto manager.      (line 1931)
13851* BFD_RELOC_METAG_COPY:                  howto manager.      (line 1956)
13852* BFD_RELOC_METAG_GETSET_GOT:            howto manager.      (line 1948)
13853* BFD_RELOC_METAG_GETSET_GOTOFF:         howto manager.      (line 1947)
13854* BFD_RELOC_METAG_GETSETOFF:             howto manager.      (line 1940)
13855* BFD_RELOC_METAG_GLOB_DAT:              howto manager.      (line 1959)
13856* BFD_RELOC_METAG_GOTOFF:                howto manager.      (line 1954)
13857* BFD_RELOC_METAG_HI16_GOTOFF:           howto manager.      (line 1945)
13858* BFD_RELOC_METAG_HI16_GOTPC:            howto manager.      (line 1949)
13859* BFD_RELOC_METAG_HI16_PLT:              howto manager.      (line 1951)
13860* BFD_RELOC_METAG_HIADDR16:              howto manager.      (line 1937)
13861* BFD_RELOC_METAG_HIOG:                  howto manager.      (line 1941)
13862* BFD_RELOC_METAG_JMP_SLOT:              howto manager.      (line 1957)
13863* BFD_RELOC_METAG_LO16_GOTOFF:           howto manager.      (line 1946)
13864* BFD_RELOC_METAG_LO16_GOTPC:            howto manager.      (line 1950)
13865* BFD_RELOC_METAG_LO16_PLT:              howto manager.      (line 1952)
13866* BFD_RELOC_METAG_LOADDR16:              howto manager.      (line 1938)
13867* BFD_RELOC_METAG_LOOG:                  howto manager.      (line 1942)
13868* BFD_RELOC_METAG_PLT:                   howto manager.      (line 1955)
13869* BFD_RELOC_METAG_REL16:                 howto manager.      (line 1944)
13870* BFD_RELOC_METAG_REL8:                  howto manager.      (line 1943)
13871* BFD_RELOC_METAG_RELATIVE:              howto manager.      (line 1958)
13872* BFD_RELOC_METAG_RELBRANCH:             howto manager.      (line 1939)
13873* BFD_RELOC_METAG_RELBRANCH_PLT:         howto manager.      (line 1953)
13874* BFD_RELOC_METAG_TLS_DTPMOD:            howto manager.      (line 1970)
13875* BFD_RELOC_METAG_TLS_DTPOFF:            howto manager.      (line 1971)
13876* BFD_RELOC_METAG_TLS_GD:                howto manager.      (line 1960)
13877* BFD_RELOC_METAG_TLS_IE:                howto manager.      (line 1965)
13878* BFD_RELOC_METAG_TLS_IENONPIC:          howto manager.      (line 1966)
13879* BFD_RELOC_METAG_TLS_IENONPIC_HI16:     howto manager.      (line 1967)
13880* BFD_RELOC_METAG_TLS_IENONPIC_LO16:     howto manager.      (line 1968)
13881* BFD_RELOC_METAG_TLS_LDM:               howto manager.      (line 1961)
13882* BFD_RELOC_METAG_TLS_LDO:               howto manager.      (line 1964)
13883* BFD_RELOC_METAG_TLS_LDO_HI16:          howto manager.      (line 1962)
13884* BFD_RELOC_METAG_TLS_LDO_LO16:          howto manager.      (line 1963)
13885* BFD_RELOC_METAG_TLS_LE:                howto manager.      (line 1972)
13886* BFD_RELOC_METAG_TLS_LE_HI16:           howto manager.      (line 1973)
13887* BFD_RELOC_METAG_TLS_LE_LO16:           howto manager.      (line 1974)
13888* BFD_RELOC_METAG_TLS_TPOFF:             howto manager.      (line 1969)
13889* BFD_RELOC_MICROBLAZE_32_GOTOFF:        howto manager.      (line 3235)
13890* BFD_RELOC_MICROBLAZE_32_LO:            howto manager.      (line 3191)
13891* BFD_RELOC_MICROBLAZE_32_LO_PCREL:      howto manager.      (line 3195)
13892* BFD_RELOC_MICROBLAZE_32_ROSDA:         howto manager.      (line 3199)
13893* BFD_RELOC_MICROBLAZE_32_RWSDA:         howto manager.      (line 3203)
13894* BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM:    howto manager.      (line 3207)
13895* BFD_RELOC_MICROBLAZE_32_TLSDTPMOD:     howto manager.      (line 3256)
13896* BFD_RELOC_MICROBLAZE_32_TLSDTPREL:     howto manager.      (line 3259)
13897* BFD_RELOC_MICROBLAZE_64_GOT:           howto manager.      (line 3221)
13898* BFD_RELOC_MICROBLAZE_64_GOTOFF:        howto manager.      (line 3230)
13899* BFD_RELOC_MICROBLAZE_64_GOTPC:         howto manager.      (line 3216)
13900* BFD_RELOC_MICROBLAZE_64_NONE:          howto manager.      (line 3211)
13901* BFD_RELOC_MICROBLAZE_64_PLT:           howto manager.      (line 3225)
13902* BFD_RELOC_MICROBLAZE_64_TEXTPCREL:     howto manager.      (line 3274)
13903* BFD_RELOC_MICROBLAZE_64_TEXTREL:       howto manager.      (line 3279)
13904* BFD_RELOC_MICROBLAZE_64_TLS:           howto manager.      (line 3243)
13905* BFD_RELOC_MICROBLAZE_64_TLSDTPREL:     howto manager.      (line 3262)
13906* BFD_RELOC_MICROBLAZE_64_TLSGD:         howto manager.      (line 3246)
13907* BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL:   howto manager.      (line 3266)
13908* BFD_RELOC_MICROBLAZE_64_TLSLD:         howto manager.      (line 3251)
13909* BFD_RELOC_MICROBLAZE_64_TLSTPREL:      howto manager.      (line 3270)
13910* BFD_RELOC_MICROBLAZE_COPY:             howto manager.      (line 3239)
13911* BFD_RELOC_MICROMIPS_10_PCREL_S1:       howto manager.      (line  406)
13912* BFD_RELOC_MICROMIPS_16_PCREL_S1:       howto manager.      (line  407)
13913* BFD_RELOC_MICROMIPS_7_PCREL_S1:        howto manager.      (line  405)
13914* BFD_RELOC_MICROMIPS_CALL16:            howto manager.      (line  428)
13915* BFD_RELOC_MICROMIPS_CALL_HI16:         howto manager.      (line  434)
13916* BFD_RELOC_MICROMIPS_CALL_LO16:         howto manager.      (line  436)
13917* BFD_RELOC_MICROMIPS_GOT16:             howto manager.      (line  426)
13918* BFD_RELOC_MICROMIPS_GOT_DISP:          howto manager.      (line  444)
13919* BFD_RELOC_MICROMIPS_GOT_HI16:          howto manager.      (line  430)
13920* BFD_RELOC_MICROMIPS_GOT_LO16:          howto manager.      (line  432)
13921* BFD_RELOC_MICROMIPS_GOT_OFST:          howto manager.      (line  442)
13922* BFD_RELOC_MICROMIPS_GOT_PAGE:          howto manager.      (line  440)
13923* BFD_RELOC_MICROMIPS_GPREL16:           howto manager.      (line  419)
13924* BFD_RELOC_MICROMIPS_HI16:              howto manager.      (line  420)
13925* BFD_RELOC_MICROMIPS_HI16_S:            howto manager.      (line  421)
13926* BFD_RELOC_MICROMIPS_HIGHER:            howto manager.      (line  453)
13927* BFD_RELOC_MICROMIPS_HIGHEST:           howto manager.      (line  451)
13928* BFD_RELOC_MICROMIPS_JALR:              howto manager.      (line  459)
13929* BFD_RELOC_MICROMIPS_JMP:               howto manager.      (line  345)
13930* BFD_RELOC_MICROMIPS_LITERAL:           howto manager.      (line  402)
13931* BFD_RELOC_MICROMIPS_LO16:              howto manager.      (line  422)
13932* BFD_RELOC_MICROMIPS_SCN_DISP:          howto manager.      (line  455)
13933* BFD_RELOC_MICROMIPS_SUB:               howto manager.      (line  438)
13934* BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16:   howto manager.      (line  469)
13935* BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16:   howto manager.      (line  471)
13936* BFD_RELOC_MICROMIPS_TLS_GD:            howto manager.      (line  465)
13937* BFD_RELOC_MICROMIPS_TLS_GOTTPREL:      howto manager.      (line  473)
13938* BFD_RELOC_MICROMIPS_TLS_LDM:           howto manager.      (line  467)
13939* BFD_RELOC_MICROMIPS_TLS_TPREL_HI16:    howto manager.      (line  477)
13940* BFD_RELOC_MICROMIPS_TLS_TPREL_LO16:    howto manager.      (line  479)
13941* BFD_RELOC_MIPS16_16_PCREL_S1:          howto manager.      (line  410)
13942* BFD_RELOC_MIPS16_CALL16:               howto manager.      (line  376)
13943* BFD_RELOC_MIPS16_GOT16:                howto manager.      (line  375)
13944* BFD_RELOC_MIPS16_GPREL:                howto manager.      (line  351)
13945* BFD_RELOC_MIPS16_HI16:                 howto manager.      (line  380)
13946* BFD_RELOC_MIPS16_HI16_S:               howto manager.      (line  383)
13947* BFD_RELOC_MIPS16_JMP:                  howto manager.      (line  348)
13948* BFD_RELOC_MIPS16_LO16:                 howto manager.      (line  389)
13949* BFD_RELOC_MIPS16_TLS_DTPREL_HI16:      howto manager.      (line  394)
13950* BFD_RELOC_MIPS16_TLS_DTPREL_LO16:      howto manager.      (line  395)
13951* BFD_RELOC_MIPS16_TLS_GD:               howto manager.      (line  392)
13952* BFD_RELOC_MIPS16_TLS_GOTTPREL:         howto manager.      (line  396)
13953* BFD_RELOC_MIPS16_TLS_LDM:              howto manager.      (line  393)
13954* BFD_RELOC_MIPS16_TLS_TPREL_HI16:       howto manager.      (line  397)
13955* BFD_RELOC_MIPS16_TLS_TPREL_LO16:       howto manager.      (line  398)
13956* BFD_RELOC_MIPS_16:                     howto manager.      (line  456)
13957* BFD_RELOC_MIPS_18_PCREL_S3:            howto manager.      (line  415)
13958* BFD_RELOC_MIPS_19_PCREL_S2:            howto manager.      (line  416)
13959* BFD_RELOC_MIPS_21_PCREL_S2:            howto manager.      (line  413)
13960* BFD_RELOC_MIPS_26_PCREL_S2:            howto manager.      (line  414)
13961* BFD_RELOC_MIPS_CALL16:                 howto manager.      (line  427)
13962* BFD_RELOC_MIPS_CALL_HI16:              howto manager.      (line  433)
13963* BFD_RELOC_MIPS_CALL_LO16:              howto manager.      (line  435)
13964* BFD_RELOC_MIPS_COPY:                   howto manager.      (line  483)
13965* BFD_RELOC_MIPS_DELETE:                 howto manager.      (line  449)
13966* BFD_RELOC_MIPS_EH:                     howto manager.      (line  480)
13967* BFD_RELOC_MIPS_GOT16:                  howto manager.      (line  425)
13968* BFD_RELOC_MIPS_GOT_DISP:               howto manager.      (line  443)
13969* BFD_RELOC_MIPS_GOT_HI16:               howto manager.      (line  429)
13970* BFD_RELOC_MIPS_GOT_LO16:               howto manager.      (line  431)
13971* BFD_RELOC_MIPS_GOT_OFST:               howto manager.      (line  441)
13972* BFD_RELOC_MIPS_GOT_PAGE:               howto manager.      (line  439)
13973* BFD_RELOC_MIPS_HIGHER:                 howto manager.      (line  452)
13974* BFD_RELOC_MIPS_HIGHEST:                howto manager.      (line  450)
13975* BFD_RELOC_MIPS_INSERT_A:               howto manager.      (line  447)
13976* BFD_RELOC_MIPS_INSERT_B:               howto manager.      (line  448)
13977* BFD_RELOC_MIPS_JALR:                   howto manager.      (line  458)
13978* BFD_RELOC_MIPS_JMP:                    howto manager.      (line  344)
13979* BFD_RELOC_MIPS_JUMP_SLOT:              howto manager.      (line  484)
13980* BFD_RELOC_MIPS_LITERAL:                howto manager.      (line  401)
13981* BFD_RELOC_MIPS_RELGOT:                 howto manager.      (line  457)
13982* BFD_RELOC_MIPS_SCN_DISP:               howto manager.      (line  454)
13983* BFD_RELOC_MIPS_SHIFT5:                 howto manager.      (line  445)
13984* BFD_RELOC_MIPS_SHIFT6:                 howto manager.      (line  446)
13985* BFD_RELOC_MIPS_SUB:                    howto manager.      (line  437)
13986* BFD_RELOC_MIPS_TLS_DTPMOD32:           howto manager.      (line  460)
13987* BFD_RELOC_MIPS_TLS_DTPMOD64:           howto manager.      (line  462)
13988* BFD_RELOC_MIPS_TLS_DTPREL32:           howto manager.      (line  461)
13989* BFD_RELOC_MIPS_TLS_DTPREL64:           howto manager.      (line  463)
13990* BFD_RELOC_MIPS_TLS_DTPREL_HI16:        howto manager.      (line  468)
13991* BFD_RELOC_MIPS_TLS_DTPREL_LO16:        howto manager.      (line  470)
13992* BFD_RELOC_MIPS_TLS_GD:                 howto manager.      (line  464)
13993* BFD_RELOC_MIPS_TLS_GOTTPREL:           howto manager.      (line  472)
13994* BFD_RELOC_MIPS_TLS_LDM:                howto manager.      (line  466)
13995* BFD_RELOC_MIPS_TLS_TPREL32:            howto manager.      (line  474)
13996* BFD_RELOC_MIPS_TLS_TPREL64:            howto manager.      (line  475)
13997* BFD_RELOC_MIPS_TLS_TPREL_HI16:         howto manager.      (line  476)
13998* BFD_RELOC_MIPS_TLS_TPREL_LO16:         howto manager.      (line  478)
13999* BFD_RELOC_MMIX_ADDR19:                 howto manager.      (line 2003)
14000* BFD_RELOC_MMIX_ADDR27:                 howto manager.      (line 2007)
14001* BFD_RELOC_MMIX_BASE_PLUS_OFFSET:       howto manager.      (line 2019)
14002* BFD_RELOC_MMIX_CBRANCH:                howto manager.      (line 1983)
14003* BFD_RELOC_MMIX_CBRANCH_1:              howto manager.      (line 1985)
14004* BFD_RELOC_MMIX_CBRANCH_2:              howto manager.      (line 1986)
14005* BFD_RELOC_MMIX_CBRANCH_3:              howto manager.      (line 1987)
14006* BFD_RELOC_MMIX_CBRANCH_J:              howto manager.      (line 1984)
14007* BFD_RELOC_MMIX_GETA:                   howto manager.      (line 1977)
14008* BFD_RELOC_MMIX_GETA_1:                 howto manager.      (line 1978)
14009* BFD_RELOC_MMIX_GETA_2:                 howto manager.      (line 1979)
14010* BFD_RELOC_MMIX_GETA_3:                 howto manager.      (line 1980)
14011* BFD_RELOC_MMIX_JMP:                    howto manager.      (line 1997)
14012* BFD_RELOC_MMIX_JMP_1:                  howto manager.      (line 1998)
14013* BFD_RELOC_MMIX_JMP_2:                  howto manager.      (line 1999)
14014* BFD_RELOC_MMIX_JMP_3:                  howto manager.      (line 2000)
14015* BFD_RELOC_MMIX_LOCAL:                  howto manager.      (line 2023)
14016* BFD_RELOC_MMIX_PUSHJ:                  howto manager.      (line 1990)
14017* BFD_RELOC_MMIX_PUSHJ_1:                howto manager.      (line 1991)
14018* BFD_RELOC_MMIX_PUSHJ_2:                howto manager.      (line 1992)
14019* BFD_RELOC_MMIX_PUSHJ_3:                howto manager.      (line 1993)
14020* BFD_RELOC_MMIX_PUSHJ_STUBBABLE:        howto manager.      (line 1994)
14021* BFD_RELOC_MMIX_REG:                    howto manager.      (line 2015)
14022* BFD_RELOC_MMIX_REG_OR_BYTE:            howto manager.      (line 2011)
14023* BFD_RELOC_MN10300_16_PCREL:            howto manager.      (line  593)
14024* BFD_RELOC_MN10300_32_PCREL:            howto manager.      (line  589)
14025* BFD_RELOC_MN10300_ALIGN:               howto manager.      (line  574)
14026* BFD_RELOC_MN10300_COPY:                howto manager.      (line  557)
14027* BFD_RELOC_MN10300_GLOB_DAT:            howto manager.      (line  560)
14028* BFD_RELOC_MN10300_GOT16:               howto manager.      (line  553)
14029* BFD_RELOC_MN10300_GOT24:               howto manager.      (line  549)
14030* BFD_RELOC_MN10300_GOT32:               howto manager.      (line  545)
14031* BFD_RELOC_MN10300_GOTOFF24:            howto manager.      (line  542)
14032* BFD_RELOC_MN10300_JMP_SLOT:            howto manager.      (line  563)
14033* BFD_RELOC_MN10300_RELATIVE:            howto manager.      (line  566)
14034* BFD_RELOC_MN10300_SYM_DIFF:            howto manager.      (line  569)
14035* BFD_RELOC_MN10300_TLS_DTPMOD:          howto manager.      (line  584)
14036* BFD_RELOC_MN10300_TLS_DTPOFF:          howto manager.      (line  585)
14037* BFD_RELOC_MN10300_TLS_GD:              howto manager.      (line  578)
14038* BFD_RELOC_MN10300_TLS_GOTIE:           howto manager.      (line  581)
14039* BFD_RELOC_MN10300_TLS_IE:              howto manager.      (line  582)
14040* BFD_RELOC_MN10300_TLS_LD:              howto manager.      (line  579)
14041* BFD_RELOC_MN10300_TLS_LDO:             howto manager.      (line  580)
14042* BFD_RELOC_MN10300_TLS_LE:              howto manager.      (line  583)
14043* BFD_RELOC_MN10300_TLS_TPOFF:           howto manager.      (line  586)
14044* BFD_RELOC_MOXIE_10_PCREL:              howto manager.      (line  487)
14045* BFD_RELOC_MSP430_10_PCREL:             howto manager.      (line 2869)
14046* BFD_RELOC_MSP430_16:                   howto manager.      (line 2871)
14047* BFD_RELOC_MSP430_16_BYTE:              howto manager.      (line 2873)
14048* BFD_RELOC_MSP430_16_PCREL:             howto manager.      (line 2870)
14049* BFD_RELOC_MSP430_16_PCREL_BYTE:        howto manager.      (line 2872)
14050* BFD_RELOC_MSP430_2X_PCREL:             howto manager.      (line 2874)
14051* BFD_RELOC_MSP430_ABS8:                 howto manager.      (line 2876)
14052* BFD_RELOC_MSP430_ABS_HI16:             howto manager.      (line 2888)
14053* BFD_RELOC_MSP430_PREL31:               howto manager.      (line 2889)
14054* BFD_RELOC_MSP430_RL_PCREL:             howto manager.      (line 2875)
14055* BFD_RELOC_MSP430_SET_ULEB128:          howto manager.      (line 2891)
14056* BFD_RELOC_MSP430_SUB_ULEB128:          howto manager.      (line 2892)
14057* BFD_RELOC_MSP430_SYM_DIFF:             howto manager.      (line 2890)
14058* BFD_RELOC_MSP430X_ABS16:               howto manager.      (line 2887)
14059* BFD_RELOC_MSP430X_ABS20_ADR_DST:       howto manager.      (line 2884)
14060* BFD_RELOC_MSP430X_ABS20_ADR_SRC:       howto manager.      (line 2883)
14061* BFD_RELOC_MSP430X_ABS20_EXT_DST:       howto manager.      (line 2881)
14062* BFD_RELOC_MSP430X_ABS20_EXT_ODST:      howto manager.      (line 2882)
14063* BFD_RELOC_MSP430X_ABS20_EXT_SRC:       howto manager.      (line 2880)
14064* BFD_RELOC_MSP430X_PCR16:               howto manager.      (line 2885)
14065* BFD_RELOC_MSP430X_PCR20_CALL:          howto manager.      (line 2886)
14066* BFD_RELOC_MSP430X_PCR20_EXT_DST:       howto manager.      (line 2878)
14067* BFD_RELOC_MSP430X_PCR20_EXT_ODST:      howto manager.      (line 2879)
14068* BFD_RELOC_MSP430X_PCR20_EXT_SRC:       howto manager.      (line 2877)
14069* BFD_RELOC_MT_GNU_VTENTRY:              howto manager.      (line 2863)
14070* BFD_RELOC_MT_GNU_VTINHERIT:            howto manager.      (line 2860)
14071* BFD_RELOC_MT_HI16:                     howto manager.      (line 2854)
14072* BFD_RELOC_MT_LO16:                     howto manager.      (line 2857)
14073* BFD_RELOC_MT_PC16:                     howto manager.      (line 2851)
14074* BFD_RELOC_MT_PCINSN8:                  howto manager.      (line 2866)
14075* BFD_RELOC_NDS32_10_UPCREL:             howto manager.      (line 1614)
14076* BFD_RELOC_NDS32_10IFCU_PCREL:          howto manager.      (line 1647)
14077* BFD_RELOC_NDS32_15_FIXED:              howto manager.      (line 1568)
14078* BFD_RELOC_NDS32_15_PCREL:              howto manager.      (line 1476)
14079* BFD_RELOC_NDS32_17_FIXED:              howto manager.      (line 1569)
14080* BFD_RELOC_NDS32_17_PCREL:              howto manager.      (line 1479)
14081* BFD_RELOC_NDS32_17IFC_PCREL:           howto manager.      (line 1646)
14082* BFD_RELOC_NDS32_20:                    howto manager.      (line 1465)
14083* BFD_RELOC_NDS32_25_ABS:                howto manager.      (line 1641)
14084* BFD_RELOC_NDS32_25_FIXED:              howto manager.      (line 1570)
14085* BFD_RELOC_NDS32_25_PCREL:              howto manager.      (line 1482)
14086* BFD_RELOC_NDS32_25_PLTREL:             howto manager.      (line 1543)
14087* BFD_RELOC_NDS32_5:                     howto manager.      (line 1611)
14088* BFD_RELOC_NDS32_9_FIXED:               howto manager.      (line 1567)
14089* BFD_RELOC_NDS32_9_PCREL:               howto manager.      (line 1468)
14090* BFD_RELOC_NDS32_9_PLTREL:              howto manager.      (line 1542)
14091* BFD_RELOC_NDS32_COPY:                  howto manager.      (line 1544)
14092* BFD_RELOC_NDS32_DATA:                  howto manager.      (line 1644)
14093* BFD_RELOC_NDS32_DIFF16:                howto manager.      (line 1635)
14094* BFD_RELOC_NDS32_DIFF32:                howto manager.      (line 1636)
14095* BFD_RELOC_NDS32_DIFF8:                 howto manager.      (line 1634)
14096* BFD_RELOC_NDS32_DIFF_ULEB128:          howto manager.      (line 1637)
14097* BFD_RELOC_NDS32_DWARF2_LEB:            howto manager.      (line 1594)
14098* BFD_RELOC_NDS32_DWARF2_OP1:            howto manager.      (line 1592)
14099* BFD_RELOC_NDS32_DWARF2_OP2:            howto manager.      (line 1593)
14100* BFD_RELOC_NDS32_EMPTY:                 howto manager.      (line 1638)
14101* BFD_RELOC_NDS32_GLOB_DAT:              howto manager.      (line 1545)
14102* BFD_RELOC_NDS32_GOT15S2:               howto manager.      (line 1607)
14103* BFD_RELOC_NDS32_GOT17S2:               howto manager.      (line 1608)
14104* BFD_RELOC_NDS32_GOT20:                 howto manager.      (line 1541)
14105* BFD_RELOC_NDS32_GOT_HI20:              howto manager.      (line 1552)
14106* BFD_RELOC_NDS32_GOT_LO12:              howto manager.      (line 1553)
14107* BFD_RELOC_NDS32_GOT_LO15:              howto manager.      (line 1603)
14108* BFD_RELOC_NDS32_GOT_LO19:              howto manager.      (line 1604)
14109* BFD_RELOC_NDS32_GOT_SUFF:              howto manager.      (line 1622)
14110* BFD_RELOC_NDS32_GOTOFF:                howto manager.      (line 1548)
14111* BFD_RELOC_NDS32_GOTOFF_HI20:           howto manager.      (line 1549)
14112* BFD_RELOC_NDS32_GOTOFF_LO12:           howto manager.      (line 1550)
14113* BFD_RELOC_NDS32_GOTOFF_LO15:           howto manager.      (line 1605)
14114* BFD_RELOC_NDS32_GOTOFF_LO19:           howto manager.      (line 1606)
14115* BFD_RELOC_NDS32_GOTOFF_SUFF:           howto manager.      (line 1623)
14116* BFD_RELOC_NDS32_GOTPC20:               howto manager.      (line 1551)
14117* BFD_RELOC_NDS32_GOTPC_HI20:            howto manager.      (line 1554)
14118* BFD_RELOC_NDS32_GOTPC_LO12:            howto manager.      (line 1555)
14119* BFD_RELOC_NDS32_GOTTPOFF:              howto manager.      (line 1651)
14120* BFD_RELOC_NDS32_GROUP:                 howto manager.      (line 1677)
14121* BFD_RELOC_NDS32_HI20:                  howto manager.      (line 1485)
14122* BFD_RELOC_NDS32_INSN16:                howto manager.      (line 1558)
14123* BFD_RELOC_NDS32_JMP_SLOT:              howto manager.      (line 1546)
14124* BFD_RELOC_NDS32_LABEL:                 howto manager.      (line 1559)
14125* BFD_RELOC_NDS32_LO12S0:                howto manager.      (line 1501)
14126* BFD_RELOC_NDS32_LO12S0_ORI:            howto manager.      (line 1505)
14127* BFD_RELOC_NDS32_LO12S1:                howto manager.      (line 1497)
14128* BFD_RELOC_NDS32_LO12S2:                howto manager.      (line 1493)
14129* BFD_RELOC_NDS32_LO12S2_DP:             howto manager.      (line 1588)
14130* BFD_RELOC_NDS32_LO12S2_SP:             howto manager.      (line 1589)
14131* BFD_RELOC_NDS32_LO12S3:                howto manager.      (line 1489)
14132* BFD_RELOC_NDS32_LOADSTORE:             howto manager.      (line 1566)
14133* BFD_RELOC_NDS32_LONGCALL1:             howto manager.      (line 1560)
14134* BFD_RELOC_NDS32_LONGCALL2:             howto manager.      (line 1561)
14135* BFD_RELOC_NDS32_LONGCALL3:             howto manager.      (line 1562)
14136* BFD_RELOC_NDS32_LONGCALL4:             howto manager.      (line 1571)
14137* BFD_RELOC_NDS32_LONGCALL5:             howto manager.      (line 1572)
14138* BFD_RELOC_NDS32_LONGCALL6:             howto manager.      (line 1573)
14139* BFD_RELOC_NDS32_LONGJUMP1:             howto manager.      (line 1563)
14140* BFD_RELOC_NDS32_LONGJUMP2:             howto manager.      (line 1564)
14141* BFD_RELOC_NDS32_LONGJUMP3:             howto manager.      (line 1565)
14142* BFD_RELOC_NDS32_LONGJUMP4:             howto manager.      (line 1574)
14143* BFD_RELOC_NDS32_LONGJUMP5:             howto manager.      (line 1575)
14144* BFD_RELOC_NDS32_LONGJUMP6:             howto manager.      (line 1576)
14145* BFD_RELOC_NDS32_LONGJUMP7:             howto manager.      (line 1577)
14146* BFD_RELOC_NDS32_LSI:                   howto manager.      (line 1680)
14147* BFD_RELOC_NDS32_MINUEND:               howto manager.      (line 1632)
14148* BFD_RELOC_NDS32_MULCALL_SUFF:          howto manager.      (line 1625)
14149* BFD_RELOC_NDS32_PLT_GOT_SUFF:          howto manager.      (line 1624)
14150* BFD_RELOC_NDS32_PLT_GOTREL_HI20:       howto manager.      (line 1582)
14151* BFD_RELOC_NDS32_PLT_GOTREL_LO12:       howto manager.      (line 1583)
14152* BFD_RELOC_NDS32_PLT_GOTREL_LO15:       howto manager.      (line 1601)
14153* BFD_RELOC_NDS32_PLT_GOTREL_LO19:       howto manager.      (line 1602)
14154* BFD_RELOC_NDS32_PLT_GOTREL_LO20:       howto manager.      (line 1600)
14155* BFD_RELOC_NDS32_PLTBLOCK:              howto manager.      (line 1629)
14156* BFD_RELOC_NDS32_PLTREL_HI20:           howto manager.      (line 1580)
14157* BFD_RELOC_NDS32_PLTREL_LO12:           howto manager.      (line 1581)
14158* BFD_RELOC_NDS32_PTR:                   howto manager.      (line 1626)
14159* BFD_RELOC_NDS32_PTR_COUNT:             howto manager.      (line 1627)
14160* BFD_RELOC_NDS32_PTR_RESOLVED:          howto manager.      (line 1628)
14161* BFD_RELOC_NDS32_RELATIVE:              howto manager.      (line 1547)
14162* BFD_RELOC_NDS32_RELAX_ENTRY:           howto manager.      (line 1621)
14163* BFD_RELOC_NDS32_RELAX_REGION_BEGIN:    howto manager.      (line 1630)
14164* BFD_RELOC_NDS32_RELAX_REGION_END:      howto manager.      (line 1631)
14165* BFD_RELOC_NDS32_REMOVE:                howto manager.      (line 1676)
14166* BFD_RELOC_NDS32_SDA12S2_DP:            howto manager.      (line 1586)
14167* BFD_RELOC_NDS32_SDA12S2_SP:            howto manager.      (line 1587)
14168* BFD_RELOC_NDS32_SDA15S0:               howto manager.      (line 1521)
14169* BFD_RELOC_NDS32_SDA15S1:               howto manager.      (line 1517)
14170* BFD_RELOC_NDS32_SDA15S2:               howto manager.      (line 1513)
14171* BFD_RELOC_NDS32_SDA15S3:               howto manager.      (line 1509)
14172* BFD_RELOC_NDS32_SDA16S3:               howto manager.      (line 1525)
14173* BFD_RELOC_NDS32_SDA17S2:               howto manager.      (line 1529)
14174* BFD_RELOC_NDS32_SDA18S1:               howto manager.      (line 1533)
14175* BFD_RELOC_NDS32_SDA19S0:               howto manager.      (line 1537)
14176* BFD_RELOC_NDS32_SDA_FP7U2_RELA:        howto manager.      (line 1618)
14177* BFD_RELOC_NDS32_SUBTRAHEND:            howto manager.      (line 1633)
14178* BFD_RELOC_NDS32_TLS_DESC:              howto manager.      (line 1667)
14179* BFD_RELOC_NDS32_TLS_DESC_20:           howto manager.      (line 1670)
14180* BFD_RELOC_NDS32_TLS_DESC_ADD:          howto manager.      (line 1672)
14181* BFD_RELOC_NDS32_TLS_DESC_CALL:         howto manager.      (line 1674)
14182* BFD_RELOC_NDS32_TLS_DESC_FUNC:         howto manager.      (line 1673)
14183* BFD_RELOC_NDS32_TLS_DESC_HI20:         howto manager.      (line 1668)
14184* BFD_RELOC_NDS32_TLS_DESC_LO12:         howto manager.      (line 1669)
14185* BFD_RELOC_NDS32_TLS_DESC_MEM:          howto manager.      (line 1675)
14186* BFD_RELOC_NDS32_TLS_DESC_SDA17S2:      howto manager.      (line 1671)
14187* BFD_RELOC_NDS32_TLS_IE_HI20:           howto manager.      (line 1660)
14188* BFD_RELOC_NDS32_TLS_IE_LO12:           howto manager.      (line 1661)
14189* BFD_RELOC_NDS32_TLS_IE_LO12S2:         howto manager.      (line 1662)
14190* BFD_RELOC_NDS32_TLS_IEGP_HI20:         howto manager.      (line 1663)
14191* BFD_RELOC_NDS32_TLS_IEGP_LO12:         howto manager.      (line 1664)
14192* BFD_RELOC_NDS32_TLS_IEGP_LO12S2:       howto manager.      (line 1665)
14193* BFD_RELOC_NDS32_TLS_IEGP_LW:           howto manager.      (line 1666)
14194* BFD_RELOC_NDS32_TLS_LE_15S0:           howto manager.      (line 1655)
14195* BFD_RELOC_NDS32_TLS_LE_15S1:           howto manager.      (line 1656)
14196* BFD_RELOC_NDS32_TLS_LE_15S2:           howto manager.      (line 1657)
14197* BFD_RELOC_NDS32_TLS_LE_20:             howto manager.      (line 1654)
14198* BFD_RELOC_NDS32_TLS_LE_ADD:            howto manager.      (line 1658)
14199* BFD_RELOC_NDS32_TLS_LE_HI20:           howto manager.      (line 1652)
14200* BFD_RELOC_NDS32_TLS_LE_LO12:           howto manager.      (line 1653)
14201* BFD_RELOC_NDS32_TLS_LE_LS:             howto manager.      (line 1659)
14202* BFD_RELOC_NDS32_TPOFF:                 howto manager.      (line 1650)
14203* BFD_RELOC_NDS32_TRAN:                  howto manager.      (line 1645)
14204* BFD_RELOC_NDS32_UPDATE_TA:             howto manager.      (line 1597)
14205* BFD_RELOC_NDS32_WORD_9_PCREL:          howto manager.      (line 1472)
14206* BFD_RELOC_NIOS2_ALIGN:                 howto manager.      (line 2909)
14207* BFD_RELOC_NIOS2_CACHE_OPX:             howto manager.      (line 2899)
14208* BFD_RELOC_NIOS2_CALL16:                howto manager.      (line 2911)
14209* BFD_RELOC_NIOS2_CALL26:                howto manager.      (line 2897)
14210* BFD_RELOC_NIOS2_CALL26_NOAT:           howto manager.      (line 2929)
14211* BFD_RELOC_NIOS2_CALL_HA:               howto manager.      (line 2933)
14212* BFD_RELOC_NIOS2_CALL_LO:               howto manager.      (line 2932)
14213* BFD_RELOC_NIOS2_CALLR:                 howto manager.      (line 2908)
14214* BFD_RELOC_NIOS2_CJMP:                  howto manager.      (line 2907)
14215* BFD_RELOC_NIOS2_COPY:                  howto manager.      (line 2924)
14216* BFD_RELOC_NIOS2_GLOB_DAT:              howto manager.      (line 2925)
14217* BFD_RELOC_NIOS2_GOT16:                 howto manager.      (line 2910)
14218* BFD_RELOC_NIOS2_GOT_HA:                howto manager.      (line 2931)
14219* BFD_RELOC_NIOS2_GOT_LO:                howto manager.      (line 2930)
14220* BFD_RELOC_NIOS2_GOTOFF:                howto manager.      (line 2928)
14221* BFD_RELOC_NIOS2_GOTOFF_HA:             howto manager.      (line 2913)
14222* BFD_RELOC_NIOS2_GOTOFF_LO:             howto manager.      (line 2912)
14223* BFD_RELOC_NIOS2_GPREL:                 howto manager.      (line 2905)
14224* BFD_RELOC_NIOS2_HI16:                  howto manager.      (line 2902)
14225* BFD_RELOC_NIOS2_HIADJ16:               howto manager.      (line 2904)
14226* BFD_RELOC_NIOS2_IMM5:                  howto manager.      (line 2898)
14227* BFD_RELOC_NIOS2_IMM6:                  howto manager.      (line 2900)
14228* BFD_RELOC_NIOS2_IMM8:                  howto manager.      (line 2901)
14229* BFD_RELOC_NIOS2_JUMP_SLOT:             howto manager.      (line 2926)
14230* BFD_RELOC_NIOS2_LO16:                  howto manager.      (line 2903)
14231* BFD_RELOC_NIOS2_PCREL_HA:              howto manager.      (line 2915)
14232* BFD_RELOC_NIOS2_PCREL_LO:              howto manager.      (line 2914)
14233* BFD_RELOC_NIOS2_R2_F1I5_2:             howto manager.      (line 2943)
14234* BFD_RELOC_NIOS2_R2_I10_1_PCREL:        howto manager.      (line 2935)
14235* BFD_RELOC_NIOS2_R2_L5I4X1:             howto manager.      (line 2944)
14236* BFD_RELOC_NIOS2_R2_S12:                howto manager.      (line 2934)
14237* BFD_RELOC_NIOS2_R2_T1I7_1_PCREL:       howto manager.      (line 2936)
14238* BFD_RELOC_NIOS2_R2_T1I7_2:             howto manager.      (line 2937)
14239* BFD_RELOC_NIOS2_R2_T1X1I6:             howto manager.      (line 2945)
14240* BFD_RELOC_NIOS2_R2_T1X1I6_2:           howto manager.      (line 2946)
14241* BFD_RELOC_NIOS2_R2_T2I4:               howto manager.      (line 2938)
14242* BFD_RELOC_NIOS2_R2_T2I4_1:             howto manager.      (line 2939)
14243* BFD_RELOC_NIOS2_R2_T2I4_2:             howto manager.      (line 2940)
14244* BFD_RELOC_NIOS2_R2_X1I7_2:             howto manager.      (line 2941)
14245* BFD_RELOC_NIOS2_R2_X2L5:               howto manager.      (line 2942)
14246* BFD_RELOC_NIOS2_RELATIVE:              howto manager.      (line 2927)
14247* BFD_RELOC_NIOS2_S16:                   howto manager.      (line 2895)
14248* BFD_RELOC_NIOS2_TLS_DTPMOD:            howto manager.      (line 2921)
14249* BFD_RELOC_NIOS2_TLS_DTPREL:            howto manager.      (line 2922)
14250* BFD_RELOC_NIOS2_TLS_GD16:              howto manager.      (line 2916)
14251* BFD_RELOC_NIOS2_TLS_IE16:              howto manager.      (line 2919)
14252* BFD_RELOC_NIOS2_TLS_LDM16:             howto manager.      (line 2917)
14253* BFD_RELOC_NIOS2_TLS_LDO16:             howto manager.      (line 2918)
14254* BFD_RELOC_NIOS2_TLS_LE16:              howto manager.      (line 2920)
14255* BFD_RELOC_NIOS2_TLS_TPREL:             howto manager.      (line 2923)
14256* BFD_RELOC_NIOS2_U16:                   howto manager.      (line 2896)
14257* BFD_RELOC_NIOS2_UJMP:                  howto manager.      (line 2906)
14258* BFD_RELOC_NONE:                        howto manager.      (line  137)
14259* BFD_RELOC_NS32K_DISP_16:               howto manager.      (line  664)
14260* BFD_RELOC_NS32K_DISP_16_PCREL:         howto manager.      (line  667)
14261* BFD_RELOC_NS32K_DISP_32:               howto manager.      (line  665)
14262* BFD_RELOC_NS32K_DISP_32_PCREL:         howto manager.      (line  668)
14263* BFD_RELOC_NS32K_DISP_8:                howto manager.      (line  663)
14264* BFD_RELOC_NS32K_DISP_8_PCREL:          howto manager.      (line  666)
14265* BFD_RELOC_NS32K_IMM_16:                howto manager.      (line  658)
14266* BFD_RELOC_NS32K_IMM_16_PCREL:          howto manager.      (line  661)
14267* BFD_RELOC_NS32K_IMM_32:                howto manager.      (line  659)
14268* BFD_RELOC_NS32K_IMM_32_PCREL:          howto manager.      (line  662)
14269* BFD_RELOC_NS32K_IMM_8:                 howto manager.      (line  657)
14270* BFD_RELOC_NS32K_IMM_8_PCREL:           howto manager.      (line  660)
14271* bfd_reloc_offset_in_range:             typedef arelent.    (line  337)
14272* BFD_RELOC_OR1K_COPY:                   howto manager.      (line 2801)
14273* BFD_RELOC_OR1K_GLOB_DAT:               howto manager.      (line 2802)
14274* BFD_RELOC_OR1K_GOT16:                  howto manager.      (line 2795)
14275* BFD_RELOC_OR1K_GOT_AHI16:              howto manager.      (line 2794)
14276* BFD_RELOC_OR1K_GOT_LO13:               howto manager.      (line 2797)
14277* BFD_RELOC_OR1K_GOT_PG21:               howto manager.      (line 2796)
14278* BFD_RELOC_OR1K_GOTOFF_SLO16:           howto manager.      (line 2800)
14279* BFD_RELOC_OR1K_GOTPC_HI16:             howto manager.      (line 2792)
14280* BFD_RELOC_OR1K_GOTPC_LO16:             howto manager.      (line 2793)
14281* BFD_RELOC_OR1K_JMP_SLOT:               howto manager.      (line 2803)
14282* BFD_RELOC_OR1K_LO13:                   howto manager.      (line 2790)
14283* BFD_RELOC_OR1K_PCREL_PG21:             howto manager.      (line 2789)
14284* BFD_RELOC_OR1K_PLT26:                  howto manager.      (line 2798)
14285* BFD_RELOC_OR1K_PLTA26:                 howto manager.      (line 2799)
14286* BFD_RELOC_OR1K_REL_26:                 howto manager.      (line 2787)
14287* BFD_RELOC_OR1K_RELATIVE:               howto manager.      (line 2804)
14288* BFD_RELOC_OR1K_SLO13:                  howto manager.      (line 2791)
14289* BFD_RELOC_OR1K_SLO16:                  howto manager.      (line 2788)
14290* BFD_RELOC_OR1K_TLS_DTPMOD:             howto manager.      (line 2826)
14291* BFD_RELOC_OR1K_TLS_DTPOFF:             howto manager.      (line 2825)
14292* BFD_RELOC_OR1K_TLS_GD_HI16:            howto manager.      (line 2805)
14293* BFD_RELOC_OR1K_TLS_GD_LO13:            howto manager.      (line 2808)
14294* BFD_RELOC_OR1K_TLS_GD_LO16:            howto manager.      (line 2806)
14295* BFD_RELOC_OR1K_TLS_GD_PG21:            howto manager.      (line 2807)
14296* BFD_RELOC_OR1K_TLS_IE_AHI16:           howto manager.      (line 2816)
14297* BFD_RELOC_OR1K_TLS_IE_HI16:            howto manager.      (line 2815)
14298* BFD_RELOC_OR1K_TLS_IE_LO13:            howto manager.      (line 2819)
14299* BFD_RELOC_OR1K_TLS_IE_LO16:            howto manager.      (line 2817)
14300* BFD_RELOC_OR1K_TLS_IE_PG21:            howto manager.      (line 2818)
14301* BFD_RELOC_OR1K_TLS_LDM_HI16:           howto manager.      (line 2809)
14302* BFD_RELOC_OR1K_TLS_LDM_LO13:           howto manager.      (line 2812)
14303* BFD_RELOC_OR1K_TLS_LDM_LO16:           howto manager.      (line 2810)
14304* BFD_RELOC_OR1K_TLS_LDM_PG21:           howto manager.      (line 2811)
14305* BFD_RELOC_OR1K_TLS_LDO_HI16:           howto manager.      (line 2813)
14306* BFD_RELOC_OR1K_TLS_LDO_LO16:           howto manager.      (line 2814)
14307* BFD_RELOC_OR1K_TLS_LE_AHI16:           howto manager.      (line 2821)
14308* BFD_RELOC_OR1K_TLS_LE_HI16:            howto manager.      (line 2820)
14309* BFD_RELOC_OR1K_TLS_LE_LO16:            howto manager.      (line 2822)
14310* BFD_RELOC_OR1K_TLS_LE_SLO16:           howto manager.      (line 2823)
14311* BFD_RELOC_OR1K_TLS_TPOFF:              howto manager.      (line 2824)
14312* BFD_RELOC_PDP11_DISP_6_PCREL:          howto manager.      (line  672)
14313* BFD_RELOC_PDP11_DISP_8_PCREL:          howto manager.      (line  671)
14314* BFD_RELOC_PJ_CODE_DIR16:               howto manager.      (line  677)
14315* BFD_RELOC_PJ_CODE_DIR32:               howto manager.      (line  678)
14316* BFD_RELOC_PJ_CODE_HI16:                howto manager.      (line  675)
14317* BFD_RELOC_PJ_CODE_LO16:                howto manager.      (line  676)
14318* BFD_RELOC_PJ_CODE_REL16:               howto manager.      (line  679)
14319* BFD_RELOC_PJ_CODE_REL32:               howto manager.      (line  680)
14320* BFD_RELOC_PPC64_ADDR16_DS:             howto manager.      (line  747)
14321* BFD_RELOC_PPC64_ADDR16_HIGH:           howto manager.      (line  758)
14322* BFD_RELOC_PPC64_ADDR16_HIGHA:          howto manager.      (line  759)
14323* BFD_RELOC_PPC64_ADDR16_HIGHER34:       howto manager.      (line  777)
14324* BFD_RELOC_PPC64_ADDR16_HIGHERA34:      howto manager.      (line  778)
14325* BFD_RELOC_PPC64_ADDR16_HIGHEST34:      howto manager.      (line  779)
14326* BFD_RELOC_PPC64_ADDR16_HIGHESTA34:     howto manager.      (line  780)
14327* BFD_RELOC_PPC64_ADDR16_LO_DS:          howto manager.      (line  748)
14328* BFD_RELOC_PPC64_ADDR64_LOCAL:          howto manager.      (line  766)
14329* BFD_RELOC_PPC64_D28:                   howto manager.      (line  785)
14330* BFD_RELOC_PPC64_D34:                   howto manager.      (line  770)
14331* BFD_RELOC_PPC64_D34_HA30:              howto manager.      (line  773)
14332* BFD_RELOC_PPC64_D34_HI30:              howto manager.      (line  772)
14333* BFD_RELOC_PPC64_D34_LO:                howto manager.      (line  771)
14334* BFD_RELOC_PPC64_DTPREL16_DS:           howto manager.      (line  837)
14335* BFD_RELOC_PPC64_DTPREL16_HIGH:         howto manager.      (line  839)
14336* BFD_RELOC_PPC64_DTPREL16_HIGHA:        howto manager.      (line  840)
14337* BFD_RELOC_PPC64_DTPREL16_HIGHER:       howto manager.      (line  841)
14338* BFD_RELOC_PPC64_DTPREL16_HIGHERA:      howto manager.      (line  842)
14339* BFD_RELOC_PPC64_DTPREL16_HIGHEST:      howto manager.      (line  843)
14340* BFD_RELOC_PPC64_DTPREL16_HIGHESTA:     howto manager.      (line  844)
14341* BFD_RELOC_PPC64_DTPREL16_LO_DS:        howto manager.      (line  838)
14342* BFD_RELOC_PPC64_DTPREL34:              howto manager.      (line  846)
14343* BFD_RELOC_PPC64_ENTRY:                 howto manager.      (line  767)
14344* BFD_RELOC_PPC64_GOT16_DS:              howto manager.      (line  749)
14345* BFD_RELOC_PPC64_GOT16_LO_DS:           howto manager.      (line  750)
14346* BFD_RELOC_PPC64_GOT_DTPREL_PCREL34:    howto manager.      (line  850)
14347* BFD_RELOC_PPC64_GOT_PCREL34:           howto manager.      (line  775)
14348* BFD_RELOC_PPC64_GOT_TLSGD_PCREL34:     howto manager.      (line  847)
14349* BFD_RELOC_PPC64_GOT_TLSLD_PCREL34:     howto manager.      (line  848)
14350* BFD_RELOC_PPC64_GOT_TPREL_PCREL34:     howto manager.      (line  849)
14351* BFD_RELOC_PPC64_HIGHER:                howto manager.      (line  735)
14352* BFD_RELOC_PPC64_HIGHER_S:              howto manager.      (line  736)
14353* BFD_RELOC_PPC64_HIGHEST:               howto manager.      (line  737)
14354* BFD_RELOC_PPC64_HIGHEST_S:             howto manager.      (line  738)
14355* BFD_RELOC_PPC64_PCREL28:               howto manager.      (line  786)
14356* BFD_RELOC_PPC64_PCREL34:               howto manager.      (line  774)
14357* BFD_RELOC_PPC64_PLT16_LO_DS:           howto manager.      (line  751)
14358* BFD_RELOC_PPC64_PLT_PCREL34:           howto manager.      (line  776)
14359* BFD_RELOC_PPC64_PLTGOT16:              howto manager.      (line  743)
14360* BFD_RELOC_PPC64_PLTGOT16_DS:           howto manager.      (line  756)
14361* BFD_RELOC_PPC64_PLTGOT16_HA:           howto manager.      (line  746)
14362* BFD_RELOC_PPC64_PLTGOT16_HI:           howto manager.      (line  745)
14363* BFD_RELOC_PPC64_PLTGOT16_LO:           howto manager.      (line  744)
14364* BFD_RELOC_PPC64_PLTGOT16_LO_DS:        howto manager.      (line  757)
14365* BFD_RELOC_PPC64_REL16_HIGH:            howto manager.      (line  760)
14366* BFD_RELOC_PPC64_REL16_HIGHA:           howto manager.      (line  761)
14367* BFD_RELOC_PPC64_REL16_HIGHER:          howto manager.      (line  762)
14368* BFD_RELOC_PPC64_REL16_HIGHER34:        howto manager.      (line  781)
14369* BFD_RELOC_PPC64_REL16_HIGHERA:         howto manager.      (line  763)
14370* BFD_RELOC_PPC64_REL16_HIGHERA34:       howto manager.      (line  782)
14371* BFD_RELOC_PPC64_REL16_HIGHEST:         howto manager.      (line  764)
14372* BFD_RELOC_PPC64_REL16_HIGHEST34:       howto manager.      (line  783)
14373* BFD_RELOC_PPC64_REL16_HIGHESTA:        howto manager.      (line  765)
14374* BFD_RELOC_PPC64_REL16_HIGHESTA34:      howto manager.      (line  784)
14375* BFD_RELOC_PPC64_REL24_NOTOC:           howto manager.      (line  768)
14376* BFD_RELOC_PPC64_REL24_P9NOTOC:         howto manager.      (line  769)
14377* BFD_RELOC_PPC64_SECTOFF_DS:            howto manager.      (line  752)
14378* BFD_RELOC_PPC64_SECTOFF_LO_DS:         howto manager.      (line  753)
14379* BFD_RELOC_PPC64_TLS_PCREL:             howto manager.      (line  851)
14380* BFD_RELOC_PPC64_TLSGD:                 howto manager.      (line  823)
14381* BFD_RELOC_PPC64_TLSIE:                 howto manager.      (line  826)
14382* BFD_RELOC_PPC64_TLSLD:                 howto manager.      (line  824)
14383* BFD_RELOC_PPC64_TLSLE:                 howto manager.      (line  825)
14384* BFD_RELOC_PPC64_TLSM:                  howto manager.      (line  827)
14385* BFD_RELOC_PPC64_TLSML:                 howto manager.      (line  828)
14386* BFD_RELOC_PPC64_TOC:                   howto manager.      (line  742)
14387* BFD_RELOC_PPC64_TOC16_DS:              howto manager.      (line  754)
14388* BFD_RELOC_PPC64_TOC16_HA:              howto manager.      (line  741)
14389* BFD_RELOC_PPC64_TOC16_HI:              howto manager.      (line  740)
14390* BFD_RELOC_PPC64_TOC16_LO:              howto manager.      (line  739)
14391* BFD_RELOC_PPC64_TOC16_LO_DS:           howto manager.      (line  755)
14392* BFD_RELOC_PPC64_TPREL16_DS:            howto manager.      (line  829)
14393* BFD_RELOC_PPC64_TPREL16_HIGH:          howto manager.      (line  831)
14394* BFD_RELOC_PPC64_TPREL16_HIGHA:         howto manager.      (line  832)
14395* BFD_RELOC_PPC64_TPREL16_HIGHER:        howto manager.      (line  833)
14396* BFD_RELOC_PPC64_TPREL16_HIGHERA:       howto manager.      (line  834)
14397* BFD_RELOC_PPC64_TPREL16_HIGHEST:       howto manager.      (line  835)
14398* BFD_RELOC_PPC64_TPREL16_HIGHESTA:      howto manager.      (line  836)
14399* BFD_RELOC_PPC64_TPREL16_LO_DS:         howto manager.      (line  830)
14400* BFD_RELOC_PPC64_TPREL34:               howto manager.      (line  845)
14401* BFD_RELOC_PPC_16DX_HA:                 howto manager.      (line  732)
14402* BFD_RELOC_PPC_B16:                     howto manager.      (line  688)
14403* BFD_RELOC_PPC_B16_BRNTAKEN:            howto manager.      (line  690)
14404* BFD_RELOC_PPC_B16_BRTAKEN:             howto manager.      (line  689)
14405* BFD_RELOC_PPC_B26:                     howto manager.      (line  683)
14406* BFD_RELOC_PPC_BA16:                    howto manager.      (line  691)
14407* BFD_RELOC_PPC_BA16_BRNTAKEN:           howto manager.      (line  693)
14408* BFD_RELOC_PPC_BA16_BRTAKEN:            howto manager.      (line  692)
14409* BFD_RELOC_PPC_BA26:                    howto manager.      (line  684)
14410* BFD_RELOC_PPC_COPY:                    howto manager.      (line  694)
14411* BFD_RELOC_PPC_DTPMOD:                  howto manager.      (line  796)
14412* BFD_RELOC_PPC_DTPREL:                  howto manager.      (line  806)
14413* BFD_RELOC_PPC_DTPREL16:                howto manager.      (line  802)
14414* BFD_RELOC_PPC_DTPREL16_HA:             howto manager.      (line  805)
14415* BFD_RELOC_PPC_DTPREL16_HI:             howto manager.      (line  804)
14416* BFD_RELOC_PPC_DTPREL16_LO:             howto manager.      (line  803)
14417* BFD_RELOC_PPC_EMB_BIT_FLD:             howto manager.      (line  713)
14418* BFD_RELOC_PPC_EMB_MRKREF:              howto manager.      (line  708)
14419* BFD_RELOC_PPC_EMB_NADDR16:             howto manager.      (line  700)
14420* BFD_RELOC_PPC_EMB_NADDR16_HA:          howto manager.      (line  703)
14421* BFD_RELOC_PPC_EMB_NADDR16_HI:          howto manager.      (line  702)
14422* BFD_RELOC_PPC_EMB_NADDR16_LO:          howto manager.      (line  701)
14423* BFD_RELOC_PPC_EMB_NADDR32:             howto manager.      (line  699)
14424* BFD_RELOC_PPC_EMB_RELSDA:              howto manager.      (line  714)
14425* BFD_RELOC_PPC_EMB_RELSEC16:            howto manager.      (line  709)
14426* BFD_RELOC_PPC_EMB_RELST_HA:            howto manager.      (line  712)
14427* BFD_RELOC_PPC_EMB_RELST_HI:            howto manager.      (line  711)
14428* BFD_RELOC_PPC_EMB_RELST_LO:            howto manager.      (line  710)
14429* BFD_RELOC_PPC_EMB_SDA21:               howto manager.      (line  707)
14430* BFD_RELOC_PPC_EMB_SDA2I16:             howto manager.      (line  705)
14431* BFD_RELOC_PPC_EMB_SDA2REL:             howto manager.      (line  706)
14432* BFD_RELOC_PPC_EMB_SDAI16:              howto manager.      (line  704)
14433* BFD_RELOC_PPC_GLOB_DAT:                howto manager.      (line  695)
14434* BFD_RELOC_PPC_GOT_DTPREL16:            howto manager.      (line  819)
14435* BFD_RELOC_PPC_GOT_DTPREL16_HA:         howto manager.      (line  822)
14436* BFD_RELOC_PPC_GOT_DTPREL16_HI:         howto manager.      (line  821)
14437* BFD_RELOC_PPC_GOT_DTPREL16_LO:         howto manager.      (line  820)
14438* BFD_RELOC_PPC_GOT_TLSGD16:             howto manager.      (line  807)
14439* BFD_RELOC_PPC_GOT_TLSGD16_HA:          howto manager.      (line  810)
14440* BFD_RELOC_PPC_GOT_TLSGD16_HI:          howto manager.      (line  809)
14441* BFD_RELOC_PPC_GOT_TLSGD16_LO:          howto manager.      (line  808)
14442* BFD_RELOC_PPC_GOT_TLSLD16:             howto manager.      (line  811)
14443* BFD_RELOC_PPC_GOT_TLSLD16_HA:          howto manager.      (line  814)
14444* BFD_RELOC_PPC_GOT_TLSLD16_HI:          howto manager.      (line  813)
14445* BFD_RELOC_PPC_GOT_TLSLD16_LO:          howto manager.      (line  812)
14446* BFD_RELOC_PPC_GOT_TPREL16:             howto manager.      (line  815)
14447* BFD_RELOC_PPC_GOT_TPREL16_HA:          howto manager.      (line  818)
14448* BFD_RELOC_PPC_GOT_TPREL16_HI:          howto manager.      (line  817)
14449* BFD_RELOC_PPC_GOT_TPREL16_LO:          howto manager.      (line  816)
14450* BFD_RELOC_PPC_JMP_SLOT:                howto manager.      (line  696)
14451* BFD_RELOC_PPC_LOCAL24PC:               howto manager.      (line  698)
14452* BFD_RELOC_PPC_NEG:                     howto manager.      (line  734)
14453* BFD_RELOC_PPC_REL16DX_HA:              howto manager.      (line  733)
14454* BFD_RELOC_PPC_RELATIVE:                howto manager.      (line  697)
14455* BFD_RELOC_PPC_TLS:                     howto manager.      (line  789)
14456* BFD_RELOC_PPC_TLSGD:                   howto manager.      (line  790)
14457* BFD_RELOC_PPC_TLSIE:                   howto manager.      (line  793)
14458* BFD_RELOC_PPC_TLSLD:                   howto manager.      (line  791)
14459* BFD_RELOC_PPC_TLSLE:                   howto manager.      (line  792)
14460* BFD_RELOC_PPC_TLSM:                    howto manager.      (line  794)
14461* BFD_RELOC_PPC_TLSML:                   howto manager.      (line  795)
14462* BFD_RELOC_PPC_TOC16:                   howto manager.      (line  685)
14463* BFD_RELOC_PPC_TOC16_HI:                howto manager.      (line  687)
14464* BFD_RELOC_PPC_TOC16_LO:                howto manager.      (line  686)
14465* BFD_RELOC_PPC_TPREL:                   howto manager.      (line  801)
14466* BFD_RELOC_PPC_TPREL16:                 howto manager.      (line  797)
14467* BFD_RELOC_PPC_TPREL16_HA:              howto manager.      (line  800)
14468* BFD_RELOC_PPC_TPREL16_HI:              howto manager.      (line  799)
14469* BFD_RELOC_PPC_TPREL16_LO:              howto manager.      (line  798)
14470* BFD_RELOC_PPC_VLE_HA16A:               howto manager.      (line  722)
14471* BFD_RELOC_PPC_VLE_HA16D:               howto manager.      (line  723)
14472* BFD_RELOC_PPC_VLE_HI16A:               howto manager.      (line  720)
14473* BFD_RELOC_PPC_VLE_HI16D:               howto manager.      (line  721)
14474* BFD_RELOC_PPC_VLE_LO16A:               howto manager.      (line  718)
14475* BFD_RELOC_PPC_VLE_LO16D:               howto manager.      (line  719)
14476* BFD_RELOC_PPC_VLE_REL15:               howto manager.      (line  716)
14477* BFD_RELOC_PPC_VLE_REL24:               howto manager.      (line  717)
14478* BFD_RELOC_PPC_VLE_REL8:                howto manager.      (line  715)
14479* BFD_RELOC_PPC_VLE_SDA21:               howto manager.      (line  724)
14480* BFD_RELOC_PPC_VLE_SDA21_LO:            howto manager.      (line  725)
14481* BFD_RELOC_PPC_VLE_SDAREL_HA16A:        howto manager.      (line  730)
14482* BFD_RELOC_PPC_VLE_SDAREL_HA16D:        howto manager.      (line  731)
14483* BFD_RELOC_PPC_VLE_SDAREL_HI16A:        howto manager.      (line  728)
14484* BFD_RELOC_PPC_VLE_SDAREL_HI16D:        howto manager.      (line  729)
14485* BFD_RELOC_PPC_VLE_SDAREL_LO16A:        howto manager.      (line  726)
14486* BFD_RELOC_PPC_VLE_SDAREL_LO16D:        howto manager.      (line  727)
14487* BFD_RELOC_PRU_16_PMEM:                 howto manager.      (line 2967)
14488* BFD_RELOC_PRU_32_PMEM:                 howto manager.      (line 2966)
14489* BFD_RELOC_PRU_GNU_DIFF16:              howto manager.      (line 2972)
14490* BFD_RELOC_PRU_GNU_DIFF16_PMEM:         howto manager.      (line 2974)
14491* BFD_RELOC_PRU_GNU_DIFF32:              howto manager.      (line 2973)
14492* BFD_RELOC_PRU_GNU_DIFF32_PMEM:         howto manager.      (line 2975)
14493* BFD_RELOC_PRU_GNU_DIFF8:               howto manager.      (line 2971)
14494* BFD_RELOC_PRU_LDI32:                   howto manager.      (line 2955)
14495* BFD_RELOC_PRU_S10_PCREL:               howto manager.      (line 2960)
14496* BFD_RELOC_PRU_U16:                     howto manager.      (line 2949)
14497* BFD_RELOC_PRU_U16_PMEMIMM:             howto manager.      (line 2952)
14498* BFD_RELOC_PRU_U8_PCREL:                howto manager.      (line 2963)
14499* BFD_RELOC_RELC:                        howto manager.      (line 2843)
14500* BFD_RELOC_RISCV_32_PCREL:              howto manager.      (line 2211)
14501* BFD_RELOC_RISCV_ADD16:                 howto manager.      (line 2179)
14502* BFD_RELOC_RISCV_ADD32:                 howto manager.      (line 2180)
14503* BFD_RELOC_RISCV_ADD64:                 howto manager.      (line 2181)
14504* BFD_RELOC_RISCV_ADD8:                  howto manager.      (line 2178)
14505* BFD_RELOC_RISCV_ALIGN:                 howto manager.      (line 2196)
14506* BFD_RELOC_RISCV_CALL:                  howto manager.      (line 2176)
14507* BFD_RELOC_RISCV_CALL_PLT:              howto manager.      (line 2177)
14508* BFD_RELOC_RISCV_CFA:                   howto manager.      (line 2205)
14509* BFD_RELOC_RISCV_GOT_HI20:              howto manager.      (line 2186)
14510* BFD_RELOC_RISCV_GPREL12_I:             howto manager.      (line 2170)
14511* BFD_RELOC_RISCV_GPREL12_S:             howto manager.      (line 2171)
14512* BFD_RELOC_RISCV_GPREL_I:               howto manager.      (line 2200)
14513* BFD_RELOC_RISCV_GPREL_S:               howto manager.      (line 2201)
14514* BFD_RELOC_RISCV_HI20:                  howto manager.      (line 2164)
14515* BFD_RELOC_RISCV_JMP:                   howto manager.      (line 2189)
14516* BFD_RELOC_RISCV_LO12_I:                howto manager.      (line 2168)
14517* BFD_RELOC_RISCV_LO12_S:                howto manager.      (line 2169)
14518* BFD_RELOC_RISCV_PCREL_HI20:            howto manager.      (line 2165)
14519* BFD_RELOC_RISCV_PCREL_LO12_I:          howto manager.      (line 2166)
14520* BFD_RELOC_RISCV_PCREL_LO12_S:          howto manager.      (line 2167)
14521* BFD_RELOC_RISCV_RELAX:                 howto manager.      (line 2204)
14522* BFD_RELOC_RISCV_RVC_BRANCH:            howto manager.      (line 2197)
14523* BFD_RELOC_RISCV_RVC_JUMP:              howto manager.      (line 2198)
14524* BFD_RELOC_RISCV_RVC_LUI:               howto manager.      (line 2199)
14525* BFD_RELOC_RISCV_SET16:                 howto manager.      (line 2209)
14526* BFD_RELOC_RISCV_SET32:                 howto manager.      (line 2210)
14527* BFD_RELOC_RISCV_SET6:                  howto manager.      (line 2207)
14528* BFD_RELOC_RISCV_SET8:                  howto manager.      (line 2208)
14529* BFD_RELOC_RISCV_SUB16:                 howto manager.      (line 2183)
14530* BFD_RELOC_RISCV_SUB32:                 howto manager.      (line 2184)
14531* BFD_RELOC_RISCV_SUB6:                  howto manager.      (line 2206)
14532* BFD_RELOC_RISCV_SUB64:                 howto manager.      (line 2185)
14533* BFD_RELOC_RISCV_SUB8:                  howto manager.      (line 2182)
14534* BFD_RELOC_RISCV_TLS_DTPMOD32:          howto manager.      (line 2190)
14535* BFD_RELOC_RISCV_TLS_DTPMOD64:          howto manager.      (line 2192)
14536* BFD_RELOC_RISCV_TLS_DTPREL32:          howto manager.      (line 2191)
14537* BFD_RELOC_RISCV_TLS_DTPREL64:          howto manager.      (line 2193)
14538* BFD_RELOC_RISCV_TLS_GD_HI20:           howto manager.      (line 2188)
14539* BFD_RELOC_RISCV_TLS_GOT_HI20:          howto manager.      (line 2187)
14540* BFD_RELOC_RISCV_TLS_TPREL32:           howto manager.      (line 2194)
14541* BFD_RELOC_RISCV_TLS_TPREL64:           howto manager.      (line 2195)
14542* BFD_RELOC_RISCV_TPREL_ADD:             howto manager.      (line 2175)
14543* BFD_RELOC_RISCV_TPREL_HI20:            howto manager.      (line 2172)
14544* BFD_RELOC_RISCV_TPREL_I:               howto manager.      (line 2202)
14545* BFD_RELOC_RISCV_TPREL_LO12_I:          howto manager.      (line 2173)
14546* BFD_RELOC_RISCV_TPREL_LO12_S:          howto manager.      (line 2174)
14547* BFD_RELOC_RISCV_TPREL_S:               howto manager.      (line 2203)
14548* BFD_RELOC_RL78_16_OP:                  howto manager.      (line 2218)
14549* BFD_RELOC_RL78_16U:                    howto manager.      (line 2222)
14550* BFD_RELOC_RL78_24_OP:                  howto manager.      (line 2219)
14551* BFD_RELOC_RL78_24U:                    howto manager.      (line 2223)
14552* BFD_RELOC_RL78_32_OP:                  howto manager.      (line 2220)
14553* BFD_RELOC_RL78_8U:                     howto manager.      (line 2221)
14554* BFD_RELOC_RL78_ABS16:                  howto manager.      (line 2235)
14555* BFD_RELOC_RL78_ABS16_REV:              howto manager.      (line 2236)
14556* BFD_RELOC_RL78_ABS16U:                 howto manager.      (line 2239)
14557* BFD_RELOC_RL78_ABS16UL:                howto manager.      (line 2241)
14558* BFD_RELOC_RL78_ABS16UW:                howto manager.      (line 2240)
14559* BFD_RELOC_RL78_ABS32:                  howto manager.      (line 2237)
14560* BFD_RELOC_RL78_ABS32_REV:              howto manager.      (line 2238)
14561* BFD_RELOC_RL78_ABS8:                   howto manager.      (line 2234)
14562* BFD_RELOC_RL78_CODE:                   howto manager.      (line 2246)
14563* BFD_RELOC_RL78_DIFF:                   howto manager.      (line 2225)
14564* BFD_RELOC_RL78_DIR3U_PCREL:            howto manager.      (line 2224)
14565* BFD_RELOC_RL78_GPRELB:                 howto manager.      (line 2226)
14566* BFD_RELOC_RL78_GPRELL:                 howto manager.      (line 2228)
14567* BFD_RELOC_RL78_GPRELW:                 howto manager.      (line 2227)
14568* BFD_RELOC_RL78_HI16:                   howto manager.      (line 2243)
14569* BFD_RELOC_RL78_HI8:                    howto manager.      (line 2244)
14570* BFD_RELOC_RL78_LO16:                   howto manager.      (line 2245)
14571* BFD_RELOC_RL78_NEG16:                  howto manager.      (line 2215)
14572* BFD_RELOC_RL78_NEG24:                  howto manager.      (line 2216)
14573* BFD_RELOC_RL78_NEG32:                  howto manager.      (line 2217)
14574* BFD_RELOC_RL78_NEG8:                   howto manager.      (line 2214)
14575* BFD_RELOC_RL78_OP_AND:                 howto manager.      (line 2232)
14576* BFD_RELOC_RL78_OP_NEG:                 howto manager.      (line 2231)
14577* BFD_RELOC_RL78_OP_SHRA:                howto manager.      (line 2233)
14578* BFD_RELOC_RL78_OP_SUBTRACT:            howto manager.      (line 2230)
14579* BFD_RELOC_RL78_RELAX:                  howto manager.      (line 2242)
14580* BFD_RELOC_RL78_SADDR:                  howto manager.      (line 2247)
14581* BFD_RELOC_RL78_SYM:                    howto manager.      (line 2229)
14582* BFD_RELOC_RVA:                         howto manager.      (line  109)
14583* BFD_RELOC_RX_16_OP:                    howto manager.      (line 2254)
14584* BFD_RELOC_RX_16U:                      howto manager.      (line 2258)
14585* BFD_RELOC_RX_24_OP:                    howto manager.      (line 2255)
14586* BFD_RELOC_RX_24U:                      howto manager.      (line 2259)
14587* BFD_RELOC_RX_32_OP:                    howto manager.      (line 2256)
14588* BFD_RELOC_RX_8U:                       howto manager.      (line 2257)
14589* BFD_RELOC_RX_ABS16:                    howto manager.      (line 2269)
14590* BFD_RELOC_RX_ABS16_REV:                howto manager.      (line 2270)
14591* BFD_RELOC_RX_ABS16U:                   howto manager.      (line 2273)
14592* BFD_RELOC_RX_ABS16UL:                  howto manager.      (line 2275)
14593* BFD_RELOC_RX_ABS16UW:                  howto manager.      (line 2274)
14594* BFD_RELOC_RX_ABS32:                    howto manager.      (line 2271)
14595* BFD_RELOC_RX_ABS32_REV:                howto manager.      (line 2272)
14596* BFD_RELOC_RX_ABS8:                     howto manager.      (line 2268)
14597* BFD_RELOC_RX_DIFF:                     howto manager.      (line 2261)
14598* BFD_RELOC_RX_DIR3U_PCREL:              howto manager.      (line 2260)
14599* BFD_RELOC_RX_GPRELB:                   howto manager.      (line 2262)
14600* BFD_RELOC_RX_GPRELL:                   howto manager.      (line 2264)
14601* BFD_RELOC_RX_GPRELW:                   howto manager.      (line 2263)
14602* BFD_RELOC_RX_NEG16:                    howto manager.      (line 2251)
14603* BFD_RELOC_RX_NEG24:                    howto manager.      (line 2252)
14604* BFD_RELOC_RX_NEG32:                    howto manager.      (line 2253)
14605* BFD_RELOC_RX_NEG8:                     howto manager.      (line 2250)
14606* BFD_RELOC_RX_OP_NEG:                   howto manager.      (line 2267)
14607* BFD_RELOC_RX_OP_SUBTRACT:              howto manager.      (line 2266)
14608* BFD_RELOC_RX_RELAX:                    howto manager.      (line 2276)
14609* BFD_RELOC_RX_SYM:                      howto manager.      (line 2265)
14610* BFD_RELOC_S12Z_15_PCREL:               howto manager.      (line 2670)
14611* BFD_RELOC_S12Z_OPR:                    howto manager.      (line 4071)
14612* BFD_RELOC_SCORE16_BRANCH:              howto manager.      (line 2419)
14613* BFD_RELOC_SCORE16_JMP:                 howto manager.      (line 2416)
14614* BFD_RELOC_SCORE_BCMP:                  howto manager.      (line 2422)
14615* BFD_RELOC_SCORE_BRANCH:                howto manager.      (line 2407)
14616* BFD_RELOC_SCORE_CALL15:                howto manager.      (line 2427)
14617* BFD_RELOC_SCORE_DUMMY2:                howto manager.      (line 2403)
14618* BFD_RELOC_SCORE_DUMMY_HI16:            howto manager.      (line 2428)
14619* BFD_RELOC_SCORE_GOT15:                 howto manager.      (line 2425)
14620* BFD_RELOC_SCORE_GOT_LO16:              howto manager.      (line 2426)
14621* BFD_RELOC_SCORE_GPREL15:               howto manager.      (line 2400)
14622* BFD_RELOC_SCORE_IMM30:                 howto manager.      (line 2410)
14623* BFD_RELOC_SCORE_IMM32:                 howto manager.      (line 2413)
14624* BFD_RELOC_SCORE_JMP:                   howto manager.      (line 2404)
14625* BFD_RELOC_SH_ALIGN:                    howto manager.      (line 1079)
14626* BFD_RELOC_SH_CODE:                     howto manager.      (line 1080)
14627* BFD_RELOC_SH_COPY:                     howto manager.      (line 1085)
14628* BFD_RELOC_SH_COPY64:                   howto manager.      (line 1110)
14629* BFD_RELOC_SH_COUNT:                    howto manager.      (line 1078)
14630* BFD_RELOC_SH_DATA:                     howto manager.      (line 1081)
14631* BFD_RELOC_SH_DISP12:                   howto manager.      (line 1061)
14632* BFD_RELOC_SH_DISP12BY2:                howto manager.      (line 1062)
14633* BFD_RELOC_SH_DISP12BY4:                howto manager.      (line 1063)
14634* BFD_RELOC_SH_DISP12BY8:                howto manager.      (line 1064)
14635* BFD_RELOC_SH_DISP20:                   howto manager.      (line 1065)
14636* BFD_RELOC_SH_DISP20BY8:                howto manager.      (line 1066)
14637* BFD_RELOC_SH_FUNCDESC:                 howto manager.      (line 1153)
14638* BFD_RELOC_SH_GLOB_DAT:                 howto manager.      (line 1086)
14639* BFD_RELOC_SH_GLOB_DAT64:               howto manager.      (line 1111)
14640* BFD_RELOC_SH_GOT10BY4:                 howto manager.      (line 1114)
14641* BFD_RELOC_SH_GOT10BY8:                 howto manager.      (line 1115)
14642* BFD_RELOC_SH_GOT20:                    howto manager.      (line 1147)
14643* BFD_RELOC_SH_GOT_HI16:                 howto manager.      (line 1093)
14644* BFD_RELOC_SH_GOT_LOW16:                howto manager.      (line 1090)
14645* BFD_RELOC_SH_GOT_MEDHI16:              howto manager.      (line 1092)
14646* BFD_RELOC_SH_GOT_MEDLOW16:             howto manager.      (line 1091)
14647* BFD_RELOC_SH_GOTFUNCDESC:              howto manager.      (line 1149)
14648* BFD_RELOC_SH_GOTFUNCDESC20:            howto manager.      (line 1150)
14649* BFD_RELOC_SH_GOTOFF20:                 howto manager.      (line 1148)
14650* BFD_RELOC_SH_GOTOFF_HI16:              howto manager.      (line 1105)
14651* BFD_RELOC_SH_GOTOFF_LOW16:             howto manager.      (line 1102)
14652* BFD_RELOC_SH_GOTOFF_MEDHI16:           howto manager.      (line 1104)
14653* BFD_RELOC_SH_GOTOFF_MEDLOW16:          howto manager.      (line 1103)
14654* BFD_RELOC_SH_GOTOFFFUNCDESC:           howto manager.      (line 1151)
14655* BFD_RELOC_SH_GOTOFFFUNCDESC20:         howto manager.      (line 1152)
14656* BFD_RELOC_SH_GOTPC:                    howto manager.      (line 1089)
14657* BFD_RELOC_SH_GOTPC_HI16:               howto manager.      (line 1109)
14658* BFD_RELOC_SH_GOTPC_LOW16:              howto manager.      (line 1106)
14659* BFD_RELOC_SH_GOTPC_MEDHI16:            howto manager.      (line 1108)
14660* BFD_RELOC_SH_GOTPC_MEDLOW16:           howto manager.      (line 1107)
14661* BFD_RELOC_SH_GOTPLT10BY4:              howto manager.      (line 1116)
14662* BFD_RELOC_SH_GOTPLT10BY8:              howto manager.      (line 1117)
14663* BFD_RELOC_SH_GOTPLT32:                 howto manager.      (line 1118)
14664* BFD_RELOC_SH_GOTPLT_HI16:              howto manager.      (line 1097)
14665* BFD_RELOC_SH_GOTPLT_LOW16:             howto manager.      (line 1094)
14666* BFD_RELOC_SH_GOTPLT_MEDHI16:           howto manager.      (line 1096)
14667* BFD_RELOC_SH_GOTPLT_MEDLOW16:          howto manager.      (line 1095)
14668* BFD_RELOC_SH_IMM3:                     howto manager.      (line 1059)
14669* BFD_RELOC_SH_IMM3U:                    howto manager.      (line 1060)
14670* BFD_RELOC_SH_IMM4:                     howto manager.      (line 1067)
14671* BFD_RELOC_SH_IMM4BY2:                  howto manager.      (line 1068)
14672* BFD_RELOC_SH_IMM4BY4:                  howto manager.      (line 1069)
14673* BFD_RELOC_SH_IMM8:                     howto manager.      (line 1070)
14674* BFD_RELOC_SH_IMM8BY2:                  howto manager.      (line 1071)
14675* BFD_RELOC_SH_IMM8BY4:                  howto manager.      (line 1072)
14676* BFD_RELOC_SH_IMM_HI16:                 howto manager.      (line 1136)
14677* BFD_RELOC_SH_IMM_HI16_PCREL:           howto manager.      (line 1137)
14678* BFD_RELOC_SH_IMM_LOW16:                howto manager.      (line 1130)
14679* BFD_RELOC_SH_IMM_LOW16_PCREL:          howto manager.      (line 1131)
14680* BFD_RELOC_SH_IMM_MEDHI16:              howto manager.      (line 1134)
14681* BFD_RELOC_SH_IMM_MEDHI16_PCREL:        howto manager.      (line 1135)
14682* BFD_RELOC_SH_IMM_MEDLOW16:             howto manager.      (line 1132)
14683* BFD_RELOC_SH_IMM_MEDLOW16_PCREL:       howto manager.      (line 1133)
14684* BFD_RELOC_SH_IMMS10:                   howto manager.      (line 1124)
14685* BFD_RELOC_SH_IMMS10BY2:                howto manager.      (line 1125)
14686* BFD_RELOC_SH_IMMS10BY4:                howto manager.      (line 1126)
14687* BFD_RELOC_SH_IMMS10BY8:                howto manager.      (line 1127)
14688* BFD_RELOC_SH_IMMS16:                   howto manager.      (line 1128)
14689* BFD_RELOC_SH_IMMS6:                    howto manager.      (line 1121)
14690* BFD_RELOC_SH_IMMS6BY32:                howto manager.      (line 1122)
14691* BFD_RELOC_SH_IMMU16:                   howto manager.      (line 1129)
14692* BFD_RELOC_SH_IMMU5:                    howto manager.      (line 1120)
14693* BFD_RELOC_SH_IMMU6:                    howto manager.      (line 1123)
14694* BFD_RELOC_SH_JMP_SLOT:                 howto manager.      (line 1087)
14695* BFD_RELOC_SH_JMP_SLOT64:               howto manager.      (line 1112)
14696* BFD_RELOC_SH_LABEL:                    howto manager.      (line 1082)
14697* BFD_RELOC_SH_LOOP_END:                 howto manager.      (line 1084)
14698* BFD_RELOC_SH_LOOP_START:               howto manager.      (line 1083)
14699* BFD_RELOC_SH_PCDISP12BY2:              howto manager.      (line 1058)
14700* BFD_RELOC_SH_PCDISP8BY2:               howto manager.      (line 1057)
14701* BFD_RELOC_SH_PCRELIMM8BY2:             howto manager.      (line 1073)
14702* BFD_RELOC_SH_PCRELIMM8BY4:             howto manager.      (line 1074)
14703* BFD_RELOC_SH_PLT_HI16:                 howto manager.      (line 1101)
14704* BFD_RELOC_SH_PLT_LOW16:                howto manager.      (line 1098)
14705* BFD_RELOC_SH_PLT_MEDHI16:              howto manager.      (line 1100)
14706* BFD_RELOC_SH_PLT_MEDLOW16:             howto manager.      (line 1099)
14707* BFD_RELOC_SH_PT_16:                    howto manager.      (line 1138)
14708* BFD_RELOC_SH_RELATIVE:                 howto manager.      (line 1088)
14709* BFD_RELOC_SH_RELATIVE64:               howto manager.      (line 1113)
14710* BFD_RELOC_SH_SHMEDIA_CODE:             howto manager.      (line 1119)
14711* BFD_RELOC_SH_SWITCH16:                 howto manager.      (line 1075)
14712* BFD_RELOC_SH_SWITCH32:                 howto manager.      (line 1076)
14713* BFD_RELOC_SH_TLS_DTPMOD32:             howto manager.      (line 1144)
14714* BFD_RELOC_SH_TLS_DTPOFF32:             howto manager.      (line 1145)
14715* BFD_RELOC_SH_TLS_GD_32:                howto manager.      (line 1139)
14716* BFD_RELOC_SH_TLS_IE_32:                howto manager.      (line 1142)
14717* BFD_RELOC_SH_TLS_LD_32:                howto manager.      (line 1140)
14718* BFD_RELOC_SH_TLS_LDO_32:               howto manager.      (line 1141)
14719* BFD_RELOC_SH_TLS_LE_32:                howto manager.      (line 1143)
14720* BFD_RELOC_SH_TLS_TPOFF32:              howto manager.      (line 1146)
14721* BFD_RELOC_SH_USES:                     howto manager.      (line 1077)
14722* BFD_RELOC_SIZE32:                      howto manager.      (line   73)
14723* BFD_RELOC_SIZE64:                      howto manager.      (line   74)
14724* BFD_RELOC_SPARC13:                     howto manager.      (line  140)
14725* BFD_RELOC_SPARC22:                     howto manager.      (line  139)
14726* BFD_RELOC_SPARC_10:                    howto manager.      (line  169)
14727* BFD_RELOC_SPARC_11:                    howto manager.      (line  170)
14728* BFD_RELOC_SPARC_5:                     howto manager.      (line  182)
14729* BFD_RELOC_SPARC_6:                     howto manager.      (line  181)
14730* BFD_RELOC_SPARC_64:                    howto manager.      (line  168)
14731* BFD_RELOC_SPARC_7:                     howto manager.      (line  180)
14732* BFD_RELOC_SPARC_BASE13:                howto manager.      (line  164)
14733* BFD_RELOC_SPARC_BASE22:                howto manager.      (line  165)
14734* BFD_RELOC_SPARC_COPY:                  howto manager.      (line  147)
14735* BFD_RELOC_SPARC_DISP64:                howto manager.      (line  183)
14736* BFD_RELOC_SPARC_GLOB_DAT:              howto manager.      (line  148)
14737* BFD_RELOC_SPARC_GOT10:                 howto manager.      (line  141)
14738* BFD_RELOC_SPARC_GOT13:                 howto manager.      (line  142)
14739* BFD_RELOC_SPARC_GOT22:                 howto manager.      (line  143)
14740* BFD_RELOC_SPARC_GOTDATA_HIX22:         howto manager.      (line  154)
14741* BFD_RELOC_SPARC_GOTDATA_LOX10:         howto manager.      (line  155)
14742* BFD_RELOC_SPARC_GOTDATA_OP:            howto manager.      (line  158)
14743* BFD_RELOC_SPARC_GOTDATA_OP_HIX22:      howto manager.      (line  156)
14744* BFD_RELOC_SPARC_GOTDATA_OP_LOX10:      howto manager.      (line  157)
14745* BFD_RELOC_SPARC_H34:                   howto manager.      (line  192)
14746* BFD_RELOC_SPARC_H44:                   howto manager.      (line  188)
14747* BFD_RELOC_SPARC_HH22:                  howto manager.      (line  172)
14748* BFD_RELOC_SPARC_HIX22:                 howto manager.      (line  186)
14749* BFD_RELOC_SPARC_HM10:                  howto manager.      (line  173)
14750* BFD_RELOC_SPARC_IRELATIVE:             howto manager.      (line  160)
14751* BFD_RELOC_SPARC_JMP_IREL:              howto manager.      (line  159)
14752* BFD_RELOC_SPARC_JMP_SLOT:              howto manager.      (line  149)
14753* BFD_RELOC_SPARC_L44:                   howto manager.      (line  190)
14754* BFD_RELOC_SPARC_LM22:                  howto manager.      (line  174)
14755* BFD_RELOC_SPARC_LOX10:                 howto manager.      (line  187)
14756* BFD_RELOC_SPARC_M44:                   howto manager.      (line  189)
14757* BFD_RELOC_SPARC_OLO10:                 howto manager.      (line  171)
14758* BFD_RELOC_SPARC_PC10:                  howto manager.      (line  144)
14759* BFD_RELOC_SPARC_PC22:                  howto manager.      (line  145)
14760* BFD_RELOC_SPARC_PC_HH22:               howto manager.      (line  175)
14761* BFD_RELOC_SPARC_PC_HM10:               howto manager.      (line  176)
14762* BFD_RELOC_SPARC_PC_LM22:               howto manager.      (line  177)
14763* BFD_RELOC_SPARC_PLT32:                 howto manager.      (line  184)
14764* BFD_RELOC_SPARC_PLT64:                 howto manager.      (line  185)
14765* BFD_RELOC_SPARC_REGISTER:              howto manager.      (line  191)
14766* BFD_RELOC_SPARC_RELATIVE:              howto manager.      (line  150)
14767* BFD_RELOC_SPARC_REV32:                 howto manager.      (line  198)
14768* BFD_RELOC_SPARC_SIZE32:                howto manager.      (line  193)
14769* BFD_RELOC_SPARC_SIZE64:                howto manager.      (line  194)
14770* BFD_RELOC_SPARC_TLS_DTPMOD32:          howto manager.      (line  219)
14771* BFD_RELOC_SPARC_TLS_DTPMOD64:          howto manager.      (line  220)
14772* BFD_RELOC_SPARC_TLS_DTPOFF32:          howto manager.      (line  221)
14773* BFD_RELOC_SPARC_TLS_DTPOFF64:          howto manager.      (line  222)
14774* BFD_RELOC_SPARC_TLS_GD_ADD:            howto manager.      (line  203)
14775* BFD_RELOC_SPARC_TLS_GD_CALL:           howto manager.      (line  204)
14776* BFD_RELOC_SPARC_TLS_GD_HI22:           howto manager.      (line  201)
14777* BFD_RELOC_SPARC_TLS_GD_LO10:           howto manager.      (line  202)
14778* BFD_RELOC_SPARC_TLS_IE_ADD:            howto manager.      (line  216)
14779* BFD_RELOC_SPARC_TLS_IE_HI22:           howto manager.      (line  212)
14780* BFD_RELOC_SPARC_TLS_IE_LD:             howto manager.      (line  214)
14781* BFD_RELOC_SPARC_TLS_IE_LDX:            howto manager.      (line  215)
14782* BFD_RELOC_SPARC_TLS_IE_LO10:           howto manager.      (line  213)
14783* BFD_RELOC_SPARC_TLS_LDM_ADD:           howto manager.      (line  207)
14784* BFD_RELOC_SPARC_TLS_LDM_CALL:          howto manager.      (line  208)
14785* BFD_RELOC_SPARC_TLS_LDM_HI22:          howto manager.      (line  205)
14786* BFD_RELOC_SPARC_TLS_LDM_LO10:          howto manager.      (line  206)
14787* BFD_RELOC_SPARC_TLS_LDO_ADD:           howto manager.      (line  211)
14788* BFD_RELOC_SPARC_TLS_LDO_HIX22:         howto manager.      (line  209)
14789* BFD_RELOC_SPARC_TLS_LDO_LOX10:         howto manager.      (line  210)
14790* BFD_RELOC_SPARC_TLS_LE_HIX22:          howto manager.      (line  217)
14791* BFD_RELOC_SPARC_TLS_LE_LOX10:          howto manager.      (line  218)
14792* BFD_RELOC_SPARC_TLS_TPOFF32:           howto manager.      (line  223)
14793* BFD_RELOC_SPARC_TLS_TPOFF64:           howto manager.      (line  224)
14794* BFD_RELOC_SPARC_UA16:                  howto manager.      (line  151)
14795* BFD_RELOC_SPARC_UA32:                  howto manager.      (line  152)
14796* BFD_RELOC_SPARC_UA64:                  howto manager.      (line  153)
14797* BFD_RELOC_SPARC_WDISP10:               howto manager.      (line  195)
14798* BFD_RELOC_SPARC_WDISP16:               howto manager.      (line  178)
14799* BFD_RELOC_SPARC_WDISP19:               howto manager.      (line  179)
14800* BFD_RELOC_SPARC_WDISP22:               howto manager.      (line  138)
14801* BFD_RELOC_SPARC_WPLT30:                howto manager.      (line  146)
14802* BFD_RELOC_SPU_ADD_PIC:                 howto manager.      (line  241)
14803* BFD_RELOC_SPU_HI16:                    howto manager.      (line  238)
14804* BFD_RELOC_SPU_IMM10:                   howto manager.      (line  229)
14805* BFD_RELOC_SPU_IMM10W:                  howto manager.      (line  230)
14806* BFD_RELOC_SPU_IMM16:                   howto manager.      (line  231)
14807* BFD_RELOC_SPU_IMM16W:                  howto manager.      (line  232)
14808* BFD_RELOC_SPU_IMM18:                   howto manager.      (line  233)
14809* BFD_RELOC_SPU_IMM7:                    howto manager.      (line  227)
14810* BFD_RELOC_SPU_IMM8:                    howto manager.      (line  228)
14811* BFD_RELOC_SPU_LO16:                    howto manager.      (line  237)
14812* BFD_RELOC_SPU_PCREL16:                 howto manager.      (line  236)
14813* BFD_RELOC_SPU_PCREL9a:                 howto manager.      (line  234)
14814* BFD_RELOC_SPU_PCREL9b:                 howto manager.      (line  235)
14815* BFD_RELOC_SPU_PPU32:                   howto manager.      (line  239)
14816* BFD_RELOC_SPU_PPU64:                   howto manager.      (line  240)
14817* BFD_RELOC_THUMB_PCREL_BFCSEL:          howto manager.      (line  887)
14818* BFD_RELOC_THUMB_PCREL_BLX:             howto manager.      (line  872)
14819* BFD_RELOC_THUMB_PCREL_BRANCH12:        howto manager.      (line  904)
14820* BFD_RELOC_THUMB_PCREL_BRANCH20:        howto manager.      (line  905)
14821* BFD_RELOC_THUMB_PCREL_BRANCH23:        howto manager.      (line  906)
14822* BFD_RELOC_THUMB_PCREL_BRANCH25:        howto manager.      (line  907)
14823* BFD_RELOC_THUMB_PCREL_BRANCH5:         howto manager.      (line  884)
14824* BFD_RELOC_THUMB_PCREL_BRANCH7:         howto manager.      (line  902)
14825* BFD_RELOC_THUMB_PCREL_BRANCH9:         howto manager.      (line  903)
14826* BFD_RELOC_TIC30_LDP:                   howto manager.      (line 1817)
14827* BFD_RELOC_TIC54X_16_OF_23:             howto manager.      (line 1835)
14828* BFD_RELOC_TIC54X_23:                   howto manager.      (line 1832)
14829* BFD_RELOC_TIC54X_MS7_OF_23:            howto manager.      (line 1840)
14830* BFD_RELOC_TIC54X_PARTLS7:              howto manager.      (line 1822)
14831* BFD_RELOC_TIC54X_PARTMS9:              howto manager.      (line 1827)
14832* BFD_RELOC_TILEGX_BROFF_X1:             howto manager.      (line 3854)
14833* BFD_RELOC_TILEGX_COPY:                 howto manager.      (line 3850)
14834* BFD_RELOC_TILEGX_DEST_IMM8_X1:         howto manager.      (line 3861)
14835* BFD_RELOC_TILEGX_GLOB_DAT:             howto manager.      (line 3851)
14836* BFD_RELOC_TILEGX_HW0:                  howto manager.      (line 3843)
14837* BFD_RELOC_TILEGX_HW0_LAST:             howto manager.      (line 3847)
14838* BFD_RELOC_TILEGX_HW1:                  howto manager.      (line 3844)
14839* BFD_RELOC_TILEGX_HW1_LAST:             howto manager.      (line 3848)
14840* BFD_RELOC_TILEGX_HW2:                  howto manager.      (line 3845)
14841* BFD_RELOC_TILEGX_HW2_LAST:             howto manager.      (line 3849)
14842* BFD_RELOC_TILEGX_HW3:                  howto manager.      (line 3846)
14843* BFD_RELOC_TILEGX_IMM16_X0_HW0:         howto manager.      (line 3870)
14844* BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT:     howto manager.      (line 3898)
14845* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST:    howto manager.      (line 3878)
14846* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager.     (line 3906)
14847* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager.   (line 3892)
14848* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL: howto manager.
14849                                                             (line 3926)
14850* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager.  (line 3920)
14851* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager.  (line 3932)
14852* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: howto manager.  (line 3916)
14853* BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL:   howto manager.      (line 3884)
14854* BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL: howto manager.    (line 3900)
14855* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD:  howto manager.      (line 3912)
14856* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE:  howto manager.      (line 3924)
14857* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE:  howto manager.      (line 3914)
14858* BFD_RELOC_TILEGX_IMM16_X0_HW1:         howto manager.      (line 3872)
14859* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST:    howto manager.      (line 3880)
14860* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager.     (line 3908)
14861* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager.   (line 3894)
14862* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL: howto manager.
14863                                                             (line 3928)
14864* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager.  (line 3922)
14865* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager.  (line 3934)
14866* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: howto manager.  (line 3918)
14867* BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL:   howto manager.      (line 3886)
14868* BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL: howto manager.    (line 3902)
14869* BFD_RELOC_TILEGX_IMM16_X0_HW2:         howto manager.      (line 3874)
14870* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST:    howto manager.      (line 3882)
14871* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager.   (line 3896)
14872* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL: howto manager.
14873                                                             (line 3930)
14874* BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL:   howto manager.      (line 3888)
14875* BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL: howto manager.    (line 3904)
14876* BFD_RELOC_TILEGX_IMM16_X0_HW3:         howto manager.      (line 3876)
14877* BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL:   howto manager.      (line 3890)
14878* BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL: howto manager.    (line 3910)
14879* BFD_RELOC_TILEGX_IMM16_X1_HW0:         howto manager.      (line 3871)
14880* BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT:     howto manager.      (line 3899)
14881* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST:    howto manager.      (line 3879)
14882* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager.     (line 3907)
14883* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager.   (line 3893)
14884* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL: howto manager.
14885                                                             (line 3927)
14886* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager.  (line 3921)
14887* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager.  (line 3933)
14888* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: howto manager.  (line 3917)
14889* BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL:   howto manager.      (line 3885)
14890* BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL: howto manager.    (line 3901)
14891* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD:  howto manager.      (line 3913)
14892* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE:  howto manager.      (line 3925)
14893* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE:  howto manager.      (line 3915)
14894* BFD_RELOC_TILEGX_IMM16_X1_HW1:         howto manager.      (line 3873)
14895* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST:    howto manager.      (line 3881)
14896* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager.     (line 3909)
14897* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager.   (line 3895)
14898* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL: howto manager.
14899                                                             (line 3929)
14900* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager.  (line 3923)
14901* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager.  (line 3935)
14902* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: howto manager.  (line 3919)
14903* BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL:   howto manager.      (line 3887)
14904* BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL: howto manager.    (line 3903)
14905* BFD_RELOC_TILEGX_IMM16_X1_HW2:         howto manager.      (line 3875)
14906* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST:    howto manager.      (line 3883)
14907* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager.   (line 3897)
14908* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL: howto manager.
14909                                                             (line 3931)
14910* BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL:   howto manager.      (line 3889)
14911* BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL: howto manager.    (line 3905)
14912* BFD_RELOC_TILEGX_IMM16_X1_HW3:         howto manager.      (line 3877)
14913* BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL:   howto manager.      (line 3891)
14914* BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL: howto manager.    (line 3911)
14915* BFD_RELOC_TILEGX_IMM8_X0:              howto manager.      (line 3857)
14916* BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD:      howto manager.      (line 3948)
14917* BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD:   howto manager.      (line 3943)
14918* BFD_RELOC_TILEGX_IMM8_X1:              howto manager.      (line 3859)
14919* BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD:      howto manager.      (line 3949)
14920* BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD:   howto manager.      (line 3944)
14921* BFD_RELOC_TILEGX_IMM8_Y0:              howto manager.      (line 3858)
14922* BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD:      howto manager.      (line 3950)
14923* BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD:   howto manager.      (line 3945)
14924* BFD_RELOC_TILEGX_IMM8_Y1:              howto manager.      (line 3860)
14925* BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD:      howto manager.      (line 3951)
14926* BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD:   howto manager.      (line 3946)
14927* BFD_RELOC_TILEGX_JMP_SLOT:             howto manager.      (line 3852)
14928* BFD_RELOC_TILEGX_JUMPOFF_X1:           howto manager.      (line 3855)
14929* BFD_RELOC_TILEGX_JUMPOFF_X1_PLT:       howto manager.      (line 3856)
14930* BFD_RELOC_TILEGX_MF_IMM14_X1:          howto manager.      (line 3863)
14931* BFD_RELOC_TILEGX_MMEND_X0:             howto manager.      (line 3865)
14932* BFD_RELOC_TILEGX_MMSTART_X0:           howto manager.      (line 3864)
14933* BFD_RELOC_TILEGX_MT_IMM14_X1:          howto manager.      (line 3862)
14934* BFD_RELOC_TILEGX_RELATIVE:             howto manager.      (line 3853)
14935* BFD_RELOC_TILEGX_SHAMT_X0:             howto manager.      (line 3866)
14936* BFD_RELOC_TILEGX_SHAMT_X1:             howto manager.      (line 3867)
14937* BFD_RELOC_TILEGX_SHAMT_Y0:             howto manager.      (line 3868)
14938* BFD_RELOC_TILEGX_SHAMT_Y1:             howto manager.      (line 3869)
14939* BFD_RELOC_TILEGX_TLS_DTPMOD32:         howto manager.      (line 3939)
14940* BFD_RELOC_TILEGX_TLS_DTPMOD64:         howto manager.      (line 3936)
14941* BFD_RELOC_TILEGX_TLS_DTPOFF32:         howto manager.      (line 3940)
14942* BFD_RELOC_TILEGX_TLS_DTPOFF64:         howto manager.      (line 3937)
14943* BFD_RELOC_TILEGX_TLS_GD_CALL:          howto manager.      (line 3942)
14944* BFD_RELOC_TILEGX_TLS_IE_LOAD:          howto manager.      (line 3947)
14945* BFD_RELOC_TILEGX_TLS_TPOFF32:          howto manager.      (line 3941)
14946* BFD_RELOC_TILEGX_TLS_TPOFF64:          howto manager.      (line 3938)
14947* BFD_RELOC_TILEPRO_BROFF_X1:            howto manager.      (line 3766)
14948* BFD_RELOC_TILEPRO_COPY:                howto manager.      (line 3762)
14949* BFD_RELOC_TILEPRO_DEST_IMM8_X1:        howto manager.      (line 3773)
14950* BFD_RELOC_TILEPRO_GLOB_DAT:            howto manager.      (line 3763)
14951* BFD_RELOC_TILEPRO_IMM16_X0:            howto manager.      (line 3776)
14952* BFD_RELOC_TILEPRO_IMM16_X0_GOT:        howto manager.      (line 3792)
14953* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA:     howto manager.      (line 3798)
14954* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI:     howto manager.      (line 3796)
14955* BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO:     howto manager.      (line 3794)
14956* BFD_RELOC_TILEPRO_IMM16_X0_HA:         howto manager.      (line 3782)
14957* BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL:   howto manager.      (line 3790)
14958* BFD_RELOC_TILEPRO_IMM16_X0_HI:         howto manager.      (line 3780)
14959* BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL:   howto manager.      (line 3788)
14960* BFD_RELOC_TILEPRO_IMM16_X0_LO:         howto manager.      (line 3778)
14961* BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL:   howto manager.      (line 3786)
14962* BFD_RELOC_TILEPRO_IMM16_X0_PCREL:      howto manager.      (line 3784)
14963* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD:     howto manager.      (line 3814)
14964* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA:  howto manager.      (line 3820)
14965* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI:  howto manager.      (line 3818)
14966* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO:  howto manager.      (line 3816)
14967* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE:     howto manager.      (line 3822)
14968* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA:  howto manager.      (line 3828)
14969* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI:  howto manager.      (line 3826)
14970* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO:  howto manager.      (line 3824)
14971* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE:     howto manager.      (line 3833)
14972* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA:  howto manager.      (line 3839)
14973* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI:  howto manager.      (line 3837)
14974* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO:  howto manager.      (line 3835)
14975* BFD_RELOC_TILEPRO_IMM16_X1:            howto manager.      (line 3777)
14976* BFD_RELOC_TILEPRO_IMM16_X1_GOT:        howto manager.      (line 3793)
14977* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA:     howto manager.      (line 3799)
14978* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI:     howto manager.      (line 3797)
14979* BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO:     howto manager.      (line 3795)
14980* BFD_RELOC_TILEPRO_IMM16_X1_HA:         howto manager.      (line 3783)
14981* BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL:   howto manager.      (line 3791)
14982* BFD_RELOC_TILEPRO_IMM16_X1_HI:         howto manager.      (line 3781)
14983* BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL:   howto manager.      (line 3789)
14984* BFD_RELOC_TILEPRO_IMM16_X1_LO:         howto manager.      (line 3779)
14985* BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL:   howto manager.      (line 3787)
14986* BFD_RELOC_TILEPRO_IMM16_X1_PCREL:      howto manager.      (line 3785)
14987* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD:     howto manager.      (line 3815)
14988* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA:  howto manager.      (line 3821)
14989* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI:  howto manager.      (line 3819)
14990* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO:  howto manager.      (line 3817)
14991* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE:     howto manager.      (line 3823)
14992* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA:  howto manager.      (line 3829)
14993* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI:  howto manager.      (line 3827)
14994* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO:  howto manager.      (line 3825)
14995* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE:     howto manager.      (line 3834)
14996* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA:  howto manager.      (line 3840)
14997* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI:  howto manager.      (line 3838)
14998* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO:  howto manager.      (line 3836)
14999* BFD_RELOC_TILEPRO_IMM8_X0:             howto manager.      (line 3769)
15000* BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD:  howto manager.      (line 3809)
15001* BFD_RELOC_TILEPRO_IMM8_X1:             howto manager.      (line 3771)
15002* BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD:  howto manager.      (line 3810)
15003* BFD_RELOC_TILEPRO_IMM8_Y0:             howto manager.      (line 3770)
15004* BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD:  howto manager.      (line 3811)
15005* BFD_RELOC_TILEPRO_IMM8_Y1:             howto manager.      (line 3772)
15006* BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD:  howto manager.      (line 3812)
15007* BFD_RELOC_TILEPRO_JMP_SLOT:            howto manager.      (line 3764)
15008* BFD_RELOC_TILEPRO_JOFFLONG_X1:         howto manager.      (line 3767)
15009* BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT:     howto manager.      (line 3768)
15010* BFD_RELOC_TILEPRO_MF_IMM15_X1:         howto manager.      (line 3775)
15011* BFD_RELOC_TILEPRO_MMEND_X0:            howto manager.      (line 3801)
15012* BFD_RELOC_TILEPRO_MMEND_X1:            howto manager.      (line 3803)
15013* BFD_RELOC_TILEPRO_MMSTART_X0:          howto manager.      (line 3800)
15014* BFD_RELOC_TILEPRO_MMSTART_X1:          howto manager.      (line 3802)
15015* BFD_RELOC_TILEPRO_MT_IMM15_X1:         howto manager.      (line 3774)
15016* BFD_RELOC_TILEPRO_RELATIVE:            howto manager.      (line 3765)
15017* BFD_RELOC_TILEPRO_SHAMT_X0:            howto manager.      (line 3804)
15018* BFD_RELOC_TILEPRO_SHAMT_X1:            howto manager.      (line 3805)
15019* BFD_RELOC_TILEPRO_SHAMT_Y0:            howto manager.      (line 3806)
15020* BFD_RELOC_TILEPRO_SHAMT_Y1:            howto manager.      (line 3807)
15021* BFD_RELOC_TILEPRO_TLS_DTPMOD32:        howto manager.      (line 3830)
15022* BFD_RELOC_TILEPRO_TLS_DTPOFF32:        howto manager.      (line 3831)
15023* BFD_RELOC_TILEPRO_TLS_GD_CALL:         howto manager.      (line 3808)
15024* BFD_RELOC_TILEPRO_TLS_IE_LOAD:         howto manager.      (line 3813)
15025* BFD_RELOC_TILEPRO_TLS_TPOFF32:         howto manager.      (line 3832)
15026* bfd_reloc_type_lookup:                 howto manager.      (line 4120)
15027* BFD_RELOC_V850_16_GOT:                 howto manager.      (line 1781)
15028* BFD_RELOC_V850_16_GOTOFF:              howto manager.      (line 1805)
15029* BFD_RELOC_V850_16_PCREL:               howto manager.      (line 1751)
15030* BFD_RELOC_V850_16_S1:                  howto manager.      (line 1769)
15031* BFD_RELOC_V850_16_SPLIT_OFFSET:        howto manager.      (line 1766)
15032* BFD_RELOC_V850_17_PCREL:               howto manager.      (line 1754)
15033* BFD_RELOC_V850_22_PCREL:               howto manager.      (line 1686)
15034* BFD_RELOC_V850_22_PLT_PCREL:           howto manager.      (line 1787)
15035* BFD_RELOC_V850_23:                     howto manager.      (line 1757)
15036* BFD_RELOC_V850_32_ABS:                 howto manager.      (line 1763)
15037* BFD_RELOC_V850_32_GOT:                 howto manager.      (line 1784)
15038* BFD_RELOC_V850_32_GOTOFF:              howto manager.      (line 1808)
15039* BFD_RELOC_V850_32_GOTPCREL:            howto manager.      (line 1778)
15040* BFD_RELOC_V850_32_PCREL:               howto manager.      (line 1760)
15041* BFD_RELOC_V850_32_PLT_PCREL:           howto manager.      (line 1790)
15042* BFD_RELOC_V850_9_PCREL:                howto manager.      (line 1683)
15043* BFD_RELOC_V850_ALIGN:                  howto manager.      (line 1744)
15044* BFD_RELOC_V850_CALLT_15_16_OFFSET:     howto manager.      (line 1775)
15045* BFD_RELOC_V850_CALLT_16_16_OFFSET:     howto manager.      (line 1735)
15046* BFD_RELOC_V850_CALLT_6_7_OFFSET:       howto manager.      (line 1732)
15047* BFD_RELOC_V850_CODE:                   howto manager.      (line 1811)
15048* BFD_RELOC_V850_COPY:                   howto manager.      (line 1793)
15049* BFD_RELOC_V850_DATA:                   howto manager.      (line 1814)
15050* BFD_RELOC_V850_GLOB_DAT:               howto manager.      (line 1796)
15051* BFD_RELOC_V850_JMP_SLOT:               howto manager.      (line 1799)
15052* BFD_RELOC_V850_LO16_S1:                howto manager.      (line 1772)
15053* BFD_RELOC_V850_LO16_SPLIT_OFFSET:      howto manager.      (line 1747)
15054* BFD_RELOC_V850_LONGCALL:               howto manager.      (line 1738)
15055* BFD_RELOC_V850_LONGJUMP:               howto manager.      (line 1741)
15056* BFD_RELOC_V850_RELATIVE:               howto manager.      (line 1802)
15057* BFD_RELOC_V850_SDA_15_16_OFFSET:       howto manager.      (line 1692)
15058* BFD_RELOC_V850_SDA_16_16_OFFSET:       howto manager.      (line 1689)
15059* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager.      (line 1724)
15060* BFD_RELOC_V850_TDA_16_16_OFFSET:       howto manager.      (line 1714)
15061* BFD_RELOC_V850_TDA_4_4_OFFSET:         howto manager.      (line 1721)
15062* BFD_RELOC_V850_TDA_4_5_OFFSET:         howto manager.      (line 1717)
15063* BFD_RELOC_V850_TDA_6_8_OFFSET:         howto manager.      (line 1703)
15064* BFD_RELOC_V850_TDA_7_7_OFFSET:         howto manager.      (line 1711)
15065* BFD_RELOC_V850_TDA_7_8_OFFSET:         howto manager.      (line 1707)
15066* BFD_RELOC_V850_ZDA_15_16_OFFSET:       howto manager.      (line 1699)
15067* BFD_RELOC_V850_ZDA_16_16_OFFSET:       howto manager.      (line 1696)
15068* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager.      (line 1728)
15069* BFD_RELOC_VAX_GLOB_DAT:                howto manager.      (line   97)
15070* BFD_RELOC_VAX_GLOB_REF:                howto manager.      (line   98)
15071* BFD_RELOC_VAX_JMP_SLOT:                howto manager.      (line   99)
15072* BFD_RELOC_VAX_RELATIVE:                howto manager.      (line  100)
15073* BFD_RELOC_VISIUM_HI16:                 howto manager.      (line 3983)
15074* BFD_RELOC_VISIUM_HI16_PCREL:           howto manager.      (line 3987)
15075* BFD_RELOC_VISIUM_IM16:                 howto manager.      (line 3985)
15076* BFD_RELOC_VISIUM_IM16_PCREL:           howto manager.      (line 3989)
15077* BFD_RELOC_VISIUM_LO16:                 howto manager.      (line 3984)
15078* BFD_RELOC_VISIUM_LO16_PCREL:           howto manager.      (line 3988)
15079* BFD_RELOC_VISIUM_REL16:                howto manager.      (line 3986)
15080* BFD_RELOC_VPE4KMATH_DATA:              howto manager.      (line 2461)
15081* BFD_RELOC_VPE4KMATH_INSN:              howto manager.      (line 2462)
15082* BFD_RELOC_VTABLE_ENTRY:                howto manager.      (line 2466)
15083* BFD_RELOC_VTABLE_INHERIT:              howto manager.      (line 2465)
15084* BFD_RELOC_WASM32_ABS32_CODE:           howto manager.      (line 3997)
15085* BFD_RELOC_WASM32_CODE_POINTER:         howto manager.      (line 3999)
15086* BFD_RELOC_WASM32_COPY:                 howto manager.      (line 3998)
15087* BFD_RELOC_WASM32_INDEX:                howto manager.      (line 4000)
15088* BFD_RELOC_WASM32_LEB128:               howto manager.      (line 3992)
15089* BFD_RELOC_WASM32_LEB128_GOT:           howto manager.      (line 3993)
15090* BFD_RELOC_WASM32_LEB128_GOT_CODE:      howto manager.      (line 3994)
15091* BFD_RELOC_WASM32_LEB128_PLT:           howto manager.      (line 3995)
15092* BFD_RELOC_WASM32_PLT_INDEX:            howto manager.      (line 3996)
15093* BFD_RELOC_WASM32_PLT_SIG:              howto manager.      (line 4001)
15094* BFD_RELOC_X86_64_32S:                  howto manager.      (line  631)
15095* BFD_RELOC_X86_64_COPY:                 howto manager.      (line  626)
15096* BFD_RELOC_X86_64_DTPMOD64:             howto manager.      (line  632)
15097* BFD_RELOC_X86_64_DTPOFF32:             howto manager.      (line  637)
15098* BFD_RELOC_X86_64_DTPOFF64:             howto manager.      (line  633)
15099* BFD_RELOC_X86_64_GLOB_DAT:             howto manager.      (line  627)
15100* BFD_RELOC_X86_64_GOT32:                howto manager.      (line  624)
15101* BFD_RELOC_X86_64_GOT64:                howto manager.      (line  642)
15102* BFD_RELOC_X86_64_GOTOFF64:             howto manager.      (line  640)
15103* BFD_RELOC_X86_64_GOTPC32:              howto manager.      (line  641)
15104* BFD_RELOC_X86_64_GOTPC32_TLSDESC:      howto manager.      (line  647)
15105* BFD_RELOC_X86_64_GOTPC64:              howto manager.      (line  644)
15106* BFD_RELOC_X86_64_GOTPCREL:             howto manager.      (line  630)
15107* BFD_RELOC_X86_64_GOTPCREL64:           howto manager.      (line  643)
15108* BFD_RELOC_X86_64_GOTPCRELX:            howto manager.      (line  653)
15109* BFD_RELOC_X86_64_GOTPLT64:             howto manager.      (line  645)
15110* BFD_RELOC_X86_64_GOTTPOFF:             howto manager.      (line  638)
15111* BFD_RELOC_X86_64_IRELATIVE:            howto manager.      (line  650)
15112* BFD_RELOC_X86_64_JUMP_SLOT:            howto manager.      (line  628)
15113* BFD_RELOC_X86_64_PC32_BND:             howto manager.      (line  651)
15114* BFD_RELOC_X86_64_PLT32:                howto manager.      (line  625)
15115* BFD_RELOC_X86_64_PLT32_BND:            howto manager.      (line  652)
15116* BFD_RELOC_X86_64_PLTOFF64:             howto manager.      (line  646)
15117* BFD_RELOC_X86_64_RELATIVE:             howto manager.      (line  629)
15118* BFD_RELOC_X86_64_REX_GOTPCRELX:        howto manager.      (line  654)
15119* BFD_RELOC_X86_64_TLSDESC:              howto manager.      (line  649)
15120* BFD_RELOC_X86_64_TLSDESC_CALL:         howto manager.      (line  648)
15121* BFD_RELOC_X86_64_TLSGD:                howto manager.      (line  635)
15122* BFD_RELOC_X86_64_TLSLD:                howto manager.      (line  636)
15123* BFD_RELOC_X86_64_TPOFF32:              howto manager.      (line  639)
15124* BFD_RELOC_X86_64_TPOFF64:              howto manager.      (line  634)
15125* BFD_RELOC_XGATE_24:                    howto manager.      (line 2624)
15126* BFD_RELOC_XGATE_GPAGE:                 howto manager.      (line 2621)
15127* BFD_RELOC_XGATE_IMM3:                  howto manager.      (line 2641)
15128* BFD_RELOC_XGATE_IMM4:                  howto manager.      (line 2644)
15129* BFD_RELOC_XGATE_IMM5:                  howto manager.      (line 2647)
15130* BFD_RELOC_XGATE_IMM8_HI:               howto manager.      (line 2637)
15131* BFD_RELOC_XGATE_IMM8_LO:               howto manager.      (line 2633)
15132* BFD_RELOC_XGATE_LO16:                  howto manager.      (line 2617)
15133* BFD_RELOC_XGATE_PCREL_10:              howto manager.      (line 2630)
15134* BFD_RELOC_XGATE_PCREL_9:               howto manager.      (line 2627)
15135* BFD_RELOC_XGATE_RL_GROUP:              howto manager.      (line 2612)
15136* BFD_RELOC_XGATE_RL_JUMP:               howto manager.      (line 2608)
15137* BFD_RELOC_XSTORMY16_12:                howto manager.      (line 2838)
15138* BFD_RELOC_XSTORMY16_24:                howto manager.      (line 2839)
15139* BFD_RELOC_XSTORMY16_FPTR16:            howto manager.      (line 2840)
15140* BFD_RELOC_XSTORMY16_REL_12:            howto manager.      (line 2837)
15141* BFD_RELOC_XTENSA_ASM_EXPAND:           howto manager.      (line 3060)
15142* BFD_RELOC_XTENSA_ASM_SIMPLIFY:         howto manager.      (line 3065)
15143* BFD_RELOC_XTENSA_DIFF16:               howto manager.      (line 3005)
15144* BFD_RELOC_XTENSA_DIFF32:               howto manager.      (line 3006)
15145* BFD_RELOC_XTENSA_DIFF8:                howto manager.      (line 3004)
15146* BFD_RELOC_XTENSA_GLOB_DAT:             howto manager.      (line 2994)
15147* BFD_RELOC_XTENSA_JMP_SLOT:             howto manager.      (line 2995)
15148* BFD_RELOC_XTENSA_NDIFF16:              howto manager.      (line 3083)
15149* BFD_RELOC_XTENSA_NDIFF32:              howto manager.      (line 3084)
15150* BFD_RELOC_XTENSA_NDIFF8:               howto manager.      (line 3082)
15151* BFD_RELOC_XTENSA_OP0:                  howto manager.      (line 3054)
15152* BFD_RELOC_XTENSA_OP1:                  howto manager.      (line 3055)
15153* BFD_RELOC_XTENSA_OP2:                  howto manager.      (line 3056)
15154* BFD_RELOC_XTENSA_PDIFF16:              howto manager.      (line 3080)
15155* BFD_RELOC_XTENSA_PDIFF32:              howto manager.      (line 3081)
15156* BFD_RELOC_XTENSA_PDIFF8:               howto manager.      (line 3079)
15157* BFD_RELOC_XTENSA_PLT:                  howto manager.      (line 2999)
15158* BFD_RELOC_XTENSA_RELATIVE:             howto manager.      (line 2996)
15159* BFD_RELOC_XTENSA_RTLD:                 howto manager.      (line 2989)
15160* BFD_RELOC_XTENSA_SLOT0_ALT:            howto manager.      (line 3036)
15161* BFD_RELOC_XTENSA_SLOT0_OP:             howto manager.      (line 3016)
15162* BFD_RELOC_XTENSA_SLOT10_ALT:           howto manager.      (line 3046)
15163* BFD_RELOC_XTENSA_SLOT10_OP:            howto manager.      (line 3026)
15164* BFD_RELOC_XTENSA_SLOT11_ALT:           howto manager.      (line 3047)
15165* BFD_RELOC_XTENSA_SLOT11_OP:            howto manager.      (line 3027)
15166* BFD_RELOC_XTENSA_SLOT12_ALT:           howto manager.      (line 3048)
15167* BFD_RELOC_XTENSA_SLOT12_OP:            howto manager.      (line 3028)
15168* BFD_RELOC_XTENSA_SLOT13_ALT:           howto manager.      (line 3049)
15169* BFD_RELOC_XTENSA_SLOT13_OP:            howto manager.      (line 3029)
15170* BFD_RELOC_XTENSA_SLOT14_ALT:           howto manager.      (line 3050)
15171* BFD_RELOC_XTENSA_SLOT14_OP:            howto manager.      (line 3030)
15172* BFD_RELOC_XTENSA_SLOT1_ALT:            howto manager.      (line 3037)
15173* BFD_RELOC_XTENSA_SLOT1_OP:             howto manager.      (line 3017)
15174* BFD_RELOC_XTENSA_SLOT2_ALT:            howto manager.      (line 3038)
15175* BFD_RELOC_XTENSA_SLOT2_OP:             howto manager.      (line 3018)
15176* BFD_RELOC_XTENSA_SLOT3_ALT:            howto manager.      (line 3039)
15177* BFD_RELOC_XTENSA_SLOT3_OP:             howto manager.      (line 3019)
15178* BFD_RELOC_XTENSA_SLOT4_ALT:            howto manager.      (line 3040)
15179* BFD_RELOC_XTENSA_SLOT4_OP:             howto manager.      (line 3020)
15180* BFD_RELOC_XTENSA_SLOT5_ALT:            howto manager.      (line 3041)
15181* BFD_RELOC_XTENSA_SLOT5_OP:             howto manager.      (line 3021)
15182* BFD_RELOC_XTENSA_SLOT6_ALT:            howto manager.      (line 3042)
15183* BFD_RELOC_XTENSA_SLOT6_OP:             howto manager.      (line 3022)
15184* BFD_RELOC_XTENSA_SLOT7_ALT:            howto manager.      (line 3043)
15185* BFD_RELOC_XTENSA_SLOT7_OP:             howto manager.      (line 3023)
15186* BFD_RELOC_XTENSA_SLOT8_ALT:            howto manager.      (line 3044)
15187* BFD_RELOC_XTENSA_SLOT8_OP:             howto manager.      (line 3024)
15188* BFD_RELOC_XTENSA_SLOT9_ALT:            howto manager.      (line 3045)
15189* BFD_RELOC_XTENSA_SLOT9_OP:             howto manager.      (line 3025)
15190* BFD_RELOC_XTENSA_TLS_ARG:              howto manager.      (line 3075)
15191* BFD_RELOC_XTENSA_TLS_CALL:             howto manager.      (line 3076)
15192* BFD_RELOC_XTENSA_TLS_DTPOFF:           howto manager.      (line 3072)
15193* BFD_RELOC_XTENSA_TLS_FUNC:             howto manager.      (line 3074)
15194* BFD_RELOC_XTENSA_TLS_TPOFF:            howto manager.      (line 3073)
15195* BFD_RELOC_XTENSA_TLSDESC_ARG:          howto manager.      (line 3071)
15196* BFD_RELOC_XTENSA_TLSDESC_FN:           howto manager.      (line 3070)
15197* BFD_RELOC_Z80_16_BE:                   howto manager.      (line 3116)
15198* BFD_RELOC_Z80_BYTE0:                   howto manager.      (line 3098)
15199* BFD_RELOC_Z80_BYTE1:                   howto manager.      (line 3101)
15200* BFD_RELOC_Z80_BYTE2:                   howto manager.      (line 3104)
15201* BFD_RELOC_Z80_BYTE3:                   howto manager.      (line 3107)
15202* BFD_RELOC_Z80_DISP8:                   howto manager.      (line 3095)
15203* BFD_RELOC_Z80_WORD0:                   howto manager.      (line 3110)
15204* BFD_RELOC_Z80_WORD1:                   howto manager.      (line 3113)
15205* BFD_RELOC_Z8K_CALLR:                   howto manager.      (line 3122)
15206* BFD_RELOC_Z8K_DISP7:                   howto manager.      (line 3119)
15207* BFD_RELOC_Z8K_IMM4L:                   howto manager.      (line 3125)
15208* bfd_rename_section:                    section prototypes. (line  169)
15209* bfd_scan_arch:                         Architectures.      (line  589)
15210* bfd_scan_vma:                          Miscellaneous.      (line  137)
15211* bfd_section_already_linked:            Writing the symbol table.
15212                                                             (line   55)
15213* bfd_section_list_clear:                section prototypes. (line    8)
15214* bfd_sections_find_if:                  section prototypes. (line  199)
15215* bfd_set_arch_info:                     Architectures.      (line  630)
15216* bfd_set_archive_head:                  Archives.           (line   75)
15217* bfd_set_assert_handler:                Error reporting.    (line  160)
15218* bfd_set_default_target:                bfd_target.         (line  568)
15219* bfd_set_error:                         Error reporting.    (line   58)
15220* bfd_set_error_handler:                 Error reporting.    (line  127)
15221* bfd_set_error_program_name:            Error reporting.    (line  135)
15222* bfd_set_file_flags:                    Miscellaneous.      (line   46)
15223* bfd_set_filename:                      Opening and Closing.
15224                                                             (line  521)
15225* bfd_set_format:                        Formats.            (line   68)
15226* bfd_set_gp_size:                       Miscellaneous.      (line  118)
15227* bfd_set_gp_value:                      Miscellaneous.      (line  128)
15228* bfd_set_input_error:                   Error reporting.    (line   69)
15229* bfd_set_private_flags:                 Miscellaneous.      (line  187)
15230* bfd_set_reloc:                         Miscellaneous.      (line   34)
15231* bfd_set_section_contents:              section prototypes. (line  229)
15232* bfd_set_section_flags:                 section prototypes. (line  156)
15233* bfd_set_section_size:                  section prototypes. (line  216)
15234* bfd_set_start_address:                 Miscellaneous.      (line   97)
15235* bfd_set_symtab:                        symbol handling functions.
15236                                                             (line   60)
15237* bfd_symbol_info:                       symbol handling functions.
15238                                                             (line  130)
15239* bfd_target_list:                       bfd_target.         (line  620)
15240* bfd_update_compression_header:         Miscellaneous.      (line  349)
15241* bfd_zalloc:                            Opening and Closing.
15242                                                             (line  258)
15243* check_build_id_file:                   Opening and Closing.
15244                                                             (line  483)
15245* coff_symbol_type:                      coff.               (line  234)
15246* core_file_matches_executable_p:        Core Files.         (line   39)
15247* find_separate_debug_file:              Opening and Closing.
15248                                                             (line  357)
15249* generic_core_file_matches_executable_p: Core Files.        (line   49)
15250* get_build_id:                          Opening and Closing.
15251                                                             (line  452)
15252* get_build_id_name:                     Opening and Closing.
15253                                                             (line  466)
15254* Hash tables:                           Hash Tables.        (line    6)
15255* internal object-file format:           Canonical format.   (line   11)
15256* Linker:                                Linker Functions.   (line    6)
15257* Other functions:                       Miscellaneous.      (line  202)
15258* separate_alt_debug_file_exists:        Opening and Closing.
15259                                                             (line  348)
15260* separate_debug_file_exists:            Opening and Closing.
15261                                                             (line  335)
15262* struct bfd_iovec:                      Miscellaneous.      (line  410)
15263* target vector (_bfd_final_link):       Performing the Final Link.
15264                                                             (line    6)
15265* target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table.
15266                                                             (line    6)
15267* target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table.
15268                                                             (line    6)
15269* The HOWTO Macro:                       typedef arelent.    (line  284)
15270* what is it?:                           Overview.           (line    6)
15271
15272
15273
15274Tag Table:
15275Node: Top1227
15276Node: Overview1566
15277Node: History2617
15278Node: How It Works3563
15279Node: What BFD Version 2 Can Do5106
15280Node: BFD information loss6421
15281Node: Canonical format8953
15282Node: BFD front end13296
15283Node: typedef bfd13720
15284Node: Error reporting31766
15285Node: Miscellaneous37022
15286Node: Memory Usage55939
15287Node: Initialization57167
15288Node: Sections57843
15289Node: Section Input58326
15290Node: Section Output59517
15291Node: typedef asection62003
15292Node: section prototypes86494
15293Node: Symbols97164
15294Node: Reading Symbols98759
15295Node: Writing Symbols99866
15296Node: Mini Symbols101607
15297Node: typedef asymbol102581
15298Node: symbol handling functions108803
15299Node: Archives114140
15300Node: Formats118272
15301Node: Relocations121199
15302Node: typedef arelent121926
15303Node: howto manager136618
15304Node: Core Files272776
15305Node: Targets274800
15306Node: bfd_target276770
15307Node: Architectures303530
15308Node: Opening and Closing335390
15309Node: Internal353563
15310Node: File Caching353667
15311Node: Linker Functions355560
15312Node: Creating a Linker Hash Table357233
15313Node: Adding Symbols to the Hash Table358971
15314Node: Differing file formats359871
15315Node: Adding symbols from an object file361596
15316Node: Adding symbols from an archive363747
15317Node: Performing the Final Link366093
15318Node: Information provided by the linker367335
15319Node: Relocating the section contents368489
15320Node: Writing the symbol table370240
15321Node: Hash Tables377326
15322Node: Creating and Freeing a Hash Table378524
15323Node: Looking Up or Entering a String379774
15324Node: Traversing a Hash Table381027
15325Node: Deriving a New Hash Table Type381816
15326Node: Define the Derived Structures382882
15327Node: Write the Derived Creation Routine383963
15328Node: Write Other Derived Routines386588
15329Node: BFD back ends387903
15330Node: What to Put Where388173
15331Node: aout388353
15332Node: coff394603
15333Node: elf422708
15334Node: mmo423109
15335Node: File layout423982
15336Node: Symbol-table429909
15337Node: mmo section mapping433673
15338Node: GNU Free Documentation License437325
15339Node: BFD Index462408
15340
15341End Tag Table
15342