bfd.info revision 1.1.1.4
1This is bfd.info, produced by makeinfo version 4.8 from bfd.texinfo.
2
3INFO-DIR-SECTION Software development
4START-INFO-DIR-ENTRY
5* Bfd: (bfd).                   The Binary File Descriptor library.
6END-INFO-DIR-ENTRY
7
8   This file documents the BFD library.
9
10   Copyright (C) 1991-2015 Free Software Foundation, Inc.
11
12   Permission is granted to copy, distribute and/or modify this document
13under the terms of the GNU Free Documentation License, Version 1.3 or
14any later version published by the Free Software Foundation; with the
15Invariant Sections being "GNU General Public License" and "Funding Free
16Software", the Front-Cover texts being (a) (see below), and with the
17Back-Cover Texts being (b) (see below).  A copy of the license is
18included in the section entitled "GNU Free Documentation License".
19
20   (a) The FSF's Front-Cover Text is:
21
22   A GNU Manual
23
24   (b) The FSF's Back-Cover Text is:
25
26   You have freedom to copy and modify this GNU Manual, like GNU
27software.  Copies published by the Free Software Foundation raise
28funds for GNU development.
29
30
31File: bfd.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
32
33   This file documents the binary file descriptor library libbfd.
34
35* Menu:
36
37* Overview::			Overview of BFD
38* BFD front end::		BFD front end
39* BFD back ends::		BFD back ends
40* GNU Free Documentation License::  GNU Free Documentation License
41* BFD Index::		BFD Index
42
43
44File: bfd.info,  Node: Overview,  Next: BFD front end,  Prev: Top,  Up: Top
45
461 Introduction
47**************
48
49BFD is a package which allows applications to use the same routines to
50operate on object files whatever the object file format.  A new object
51file format can be supported simply by creating a new BFD back end and
52adding it to the library.
53
54   BFD is split into two parts: the front end, and the back ends (one
55for each object file format).
56   * The front end of BFD provides the interface to the user. It manages
57     memory and various canonical data structures. The front end also
58     decides which back end to use and when to call back end routines.
59
60   * The back ends provide BFD its view of the real world. Each back
61     end provides a set of calls which the BFD front end can use to
62     maintain its canonical form. The back ends also may keep around
63     information for their own use, for greater efficiency.
64
65* Menu:
66
67* History::			History
68* How It Works::		How It Works
69* What BFD Version 2 Can Do::	What BFD Version 2 Can Do
70
71
72File: bfd.info,  Node: History,  Next: How It Works,  Prev: Overview,  Up: Overview
73
741.1 History
75===========
76
77One spur behind BFD was the desire, on the part of the GNU 960 team at
78Intel Oregon, for interoperability of applications on their COFF and
79b.out file formats.  Cygnus was providing GNU support for the team, and
80was contracted to provide the required functionality.
81
82   The name came from a conversation David Wallace was having with
83Richard Stallman about the library: RMS said that it would be quite
84hard--David said "BFD".  Stallman was right, but the name stuck.
85
86   At the same time, Ready Systems wanted much the same thing, but for
87different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k
88coff.
89
90   BFD was first implemented by members of Cygnus Support; Steve
91Chamberlain (`sac@cygnus.com'), John Gilmore (`gnu@cygnus.com'), K.
92Richard Pixley (`rich@cygnus.com') and David Henkel-Wallace
93(`gumby@cygnus.com').
94
95
96File: bfd.info,  Node: How It Works,  Next: What BFD Version 2 Can Do,  Prev: History,  Up: Overview
97
981.2 How To Use BFD
99==================
100
101To use the library, include `bfd.h' and link with `libbfd.a'.
102
103   BFD provides a common interface to the parts of an object file for a
104calling application.
105
106   When an application successfully opens a target file (object,
107archive, or whatever), a pointer to an internal structure is returned.
108This pointer points to a structure called `bfd', described in `bfd.h'.
109Our convention is to call this pointer a BFD, and instances of it
110within code `abfd'.  All operations on the target object file are
111applied as methods to the BFD.  The mapping is defined within `bfd.h'
112in a set of macros, all beginning with `bfd_' to reduce namespace
113pollution.
114
115   For example, this sequence does what you would probably expect:
116return the number of sections in an object file attached to a BFD
117`abfd'.
118
119     #include "bfd.h"
120
121     unsigned int number_of_sections (abfd)
122     bfd *abfd;
123     {
124       return bfd_count_sections (abfd);
125     }
126
127   The abstraction used within BFD is that an object file has:
128
129   * a header,
130
131   * a number of sections containing raw data (*note Sections::),
132
133   * a set of relocations (*note Relocations::), and
134
135   * some symbol information (*note Symbols::).
136   Also, BFDs opened for archives have the additional attribute of an
137index and contain subordinate BFDs. This approach is fine for a.out and
138coff, but loses efficiency when applied to formats such as S-records and
139IEEE-695.
140
141
142File: bfd.info,  Node: What BFD Version 2 Can Do,  Prev: How It Works,  Up: Overview
143
1441.3 What BFD Version 2 Can Do
145=============================
146
147When an object file is opened, BFD subroutines automatically determine
148the format of the input object file.  They then build a descriptor in
149memory with pointers to routines that will be used to access elements of
150the object file's data structures.
151
152   As different information from the object files is required, BFD
153reads from different sections of the file and processes them.  For
154example, a very common operation for the linker is processing symbol
155tables.  Each BFD back end provides a routine for converting between
156the object file's representation of symbols and an internal canonical
157format. When the linker asks for the symbol table of an object file, it
158calls through a memory pointer to the routine from the relevant BFD
159back end which reads and converts the table into a canonical form.  The
160linker then operates upon the canonical form. When the link is finished
161and the linker writes the output file's symbol table, another BFD back
162end routine is called to take the newly created symbol table and
163convert it into the chosen output format.
164
165* Menu:
166
167* BFD information loss::	Information Loss
168* Canonical format::		The BFD	canonical object-file format
169
170
171File: bfd.info,  Node: BFD information loss,  Next: Canonical format,  Up: What BFD Version 2 Can Do
172
1731.3.1 Information Loss
174----------------------
175
176_Information can be lost during output._ The output formats supported
177by BFD do not provide identical facilities, and information which can
178be described in one form has nowhere to go in another format. One
179example of this is alignment information in `b.out'. There is nowhere
180in an `a.out' format file to store alignment information on the
181contained data, so when a file is linked from `b.out' and an `a.out'
182image is produced, alignment information will not propagate to the
183output file. (The linker will still use the alignment information
184internally, so the link is performed correctly).
185
186   Another example is COFF section names. COFF files may contain an
187unlimited number of sections, each one with a textual section name. If
188the target of the link is a format which does not have many sections
189(e.g., `a.out') or has sections without names (e.g., the Oasys format),
190the link cannot be done simply. You can circumvent this problem by
191describing the desired input-to-output section mapping with the linker
192command language.
193
194   _Information can be lost during canonicalization._ The BFD internal
195canonical form of the external formats is not exhaustive; there are
196structures in input formats for which there is no direct representation
197internally.  This means that the BFD back ends cannot maintain all
198possible data richness through the transformation between external to
199internal and back to external formats.
200
201   This limitation is only a problem when an application reads one
202format and writes another.  Each BFD back end is responsible for
203maintaining as much data as possible, and the internal BFD canonical
204form has structures which are opaque to the BFD core, and exported only
205to the back ends. When a file is read in one format, the canonical form
206is generated for BFD and the application. At the same time, the back
207end saves away any information which may otherwise be lost. If the data
208is then written back in the same format, the back end routine will be
209able to use the canonical form provided by the BFD core as well as the
210information it prepared earlier.  Since there is a great deal of
211commonality between back ends, there is no information lost when
212linking or copying big endian COFF to little endian COFF, or `a.out' to
213`b.out'.  When a mixture of formats is linked, the information is only
214lost from the files whose format differs from the destination.
215
216
217File: bfd.info,  Node: Canonical format,  Prev: BFD information loss,  Up: What BFD Version 2 Can Do
218
2191.3.2 The BFD canonical object-file format
220------------------------------------------
221
222The greatest potential for loss of information occurs when there is the
223least overlap between the information provided by the source format,
224that stored by the canonical format, and that needed by the destination
225format. A brief description of the canonical form may help you
226understand which kinds of data you can count on preserving across
227conversions.  
228
229_files_
230     Information stored on a per-file basis includes target machine
231     architecture, particular implementation format type, a demand
232     pageable bit, and a write protected bit.  Information like Unix
233     magic numbers is not stored here--only the magic numbers' meaning,
234     so a `ZMAGIC' file would have both the demand pageable bit and the
235     write protected text bit set.  The byte order of the target is
236     stored on a per-file basis, so that big- and little-endian object
237     files may be used with one another.
238
239_sections_
240     Each section in the input file contains the name of the section,
241     the section's original address in the object file, size and
242     alignment information, various flags, and pointers into other BFD
243     data structures.
244
245_symbols_
246     Each symbol contains a pointer to the information for the object
247     file which originally defined it, its name, its value, and various
248     flag bits.  When a BFD back end reads in a symbol table, it
249     relocates all symbols to make them relative to the base of the
250     section where they were defined.  Doing this ensures that each
251     symbol points to its containing section.  Each symbol also has a
252     varying amount of hidden private data for the BFD back end.  Since
253     the symbol points to the original file, the private data format
254     for that symbol is accessible.  `ld' can operate on a collection
255     of symbols of wildly different formats without problems.
256
257     Normal global and simple local symbols are maintained on output,
258     so an output file (no matter its format) will retain symbols
259     pointing to functions and to global, static, and common variables.
260     Some symbol information is not worth retaining; in `a.out', type
261     information is stored in the symbol table as long symbol names.
262     This information would be useless to most COFF debuggers; the
263     linker has command line switches to allow users to throw it away.
264
265     There is one word of type information within the symbol, so if the
266     format supports symbol type information within symbols (for
267     example, COFF, IEEE, Oasys) and the type is simple enough to fit
268     within one word (nearly everything but aggregates), the
269     information will be preserved.
270
271_relocation level_
272     Each canonical BFD relocation record contains a pointer to the
273     symbol to relocate to, the offset of the data to relocate, the
274     section the data is in, and a pointer to a relocation type
275     descriptor. Relocation is performed by passing messages through
276     the relocation type descriptor and the symbol pointer. Therefore,
277     relocations can be performed on output data using a relocation
278     method that is only available in one of the input formats. For
279     instance, Oasys provides a byte relocation format.  A relocation
280     record requesting this relocation type would point indirectly to a
281     routine to perform this, so the relocation may be performed on a
282     byte being written to a 68k COFF file, even though 68k COFF has no
283     such relocation type.
284
285_line numbers_
286     Object formats can contain, for debugging purposes, some form of
287     mapping between symbols, source line numbers, and addresses in the
288     output file.  These addresses have to be relocated along with the
289     symbol information.  Each symbol with an associated list of line
290     number records points to the first record of the list.  The head
291     of a line number list consists of a pointer to the symbol, which
292     allows finding out the address of the function whose line number
293     is being described. The rest of the list is made up of pairs:
294     offsets into the section and line numbers. Any format which can
295     simply derive this information can pass it successfully between
296     formats (COFF, IEEE and Oasys).
297
298
299File: bfd.info,  Node: BFD front end,  Next: BFD back ends,  Prev: Overview,  Up: Top
300
3012 BFD Front End
302***************
303
304* Menu:
305
306* typedef bfd::
307* Error reporting::
308* Miscellaneous::
309* Memory Usage::
310* Initialization::
311* Sections::
312* Symbols::
313* Archives::
314* Formats::
315* Relocations::
316* Core Files::
317* Targets::
318* Architectures::
319* Opening and Closing::
320* Internal::
321* File Caching::
322* Linker Functions::
323* Hash Tables::
324
325
326File: bfd.info,  Node: typedef bfd,  Next: Error reporting,  Prev: BFD front end,  Up: BFD front end
327
3282.1 `typedef bfd'
329=================
330
331A BFD has type `bfd'; objects of this type are the cornerstone of any
332application using BFD. Using BFD consists of making references though
333the BFD and to data in the BFD.
334
335   Here is the structure that defines the type `bfd'.  It contains the
336major data about the file and pointers to the rest of the data.
337
338
339     enum bfd_direction
340       {
341         no_direction = 0,
342         read_direction = 1,
343         write_direction = 2,
344         both_direction = 3
345       };
346
347     enum bfd_plugin_format
348       {
349         bfd_plugin_uknown = 0,
350         bfd_plugin_yes = 1,
351         bfd_plugin_no = 2
352       };
353
354     struct bfd_build_id
355       {
356         bfd_size_type size;
357         bfd_byte data[1];
358       };
359
360     struct bfd
361     {
362       /* The filename the application opened the BFD with.  */
363       const char *filename;
364
365       /* A pointer to the target jump table.  */
366       const struct bfd_target *xvec;
367
368       /* The IOSTREAM, and corresponding IO vector that provide access
369          to the file backing the BFD.  */
370       void *iostream;
371       const struct bfd_iovec *iovec;
372
373       /* The caching routines use these to maintain a
374          least-recently-used list of BFDs.  */
375       struct bfd *lru_prev, *lru_next;
376
377       /* When a file is closed by the caching routines, BFD retains
378          state information on the file here...  */
379       ufile_ptr where;
380
381       /* File modified time, if mtime_set is TRUE.  */
382       long mtime;
383
384       /* A unique identifier of the BFD  */
385       unsigned int id;
386
387       /* The format which belongs to the BFD. (object, core, etc.)  */
388       ENUM_BITFIELD (bfd_format) format : 3;
389
390       /* The direction with which the BFD was opened.  */
391       ENUM_BITFIELD (bfd_direction) direction : 2;
392
393       /* Format_specific flags.  */
394       flagword flags : 18;
395
396       /* Values that may appear in the flags field of a BFD.  These also
397          appear in the object_flags field of the bfd_target structure, where
398          they indicate the set of flags used by that backend (not all flags
399          are meaningful for all object file formats) (FIXME: at the moment,
400          the object_flags values have mostly just been copied from backend
401          to another, and are not necessarily correct).  */
402
403     #define BFD_NO_FLAGS   0x00
404
405       /* BFD contains relocation entries.  */
406     #define HAS_RELOC      0x01
407
408       /* BFD is directly executable.  */
409     #define EXEC_P         0x02
410
411       /* BFD has line number information (basically used for F_LNNO in a
412          COFF header).  */
413     #define HAS_LINENO     0x04
414
415       /* BFD has debugging information.  */
416     #define HAS_DEBUG      0x08
417
418       /* BFD has symbols.  */
419     #define HAS_SYMS       0x10
420
421       /* BFD has local symbols (basically used for F_LSYMS in a COFF
422          header).  */
423     #define HAS_LOCALS     0x20
424
425       /* BFD is a dynamic object.  */
426     #define DYNAMIC        0x40
427
428       /* Text section is write protected (if D_PAGED is not set, this is
429          like an a.out NMAGIC file) (the linker sets this by default, but
430          clears it for -r or -N).  */
431     #define WP_TEXT        0x80
432
433       /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
434          linker sets this by default, but clears it for -r or -n or -N).  */
435     #define D_PAGED        0x100
436
437       /* BFD is relaxable (this means that bfd_relax_section may be able to
438          do something) (sometimes bfd_relax_section can do something even if
439          this is not set).  */
440     #define BFD_IS_RELAXABLE 0x200
441
442       /* This may be set before writing out a BFD to request using a
443          traditional format.  For example, this is used to request that when
444          writing out an a.out object the symbols not be hashed to eliminate
445          duplicates.  */
446     #define BFD_TRADITIONAL_FORMAT 0x400
447
448       /* This flag indicates that the BFD contents are actually cached
449          in memory.  If this is set, iostream points to a bfd_in_memory
450          struct.  */
451     #define BFD_IN_MEMORY 0x800
452
453       /* This BFD has been created by the linker and doesn't correspond
454          to any input file.  */
455     #define BFD_LINKER_CREATED 0x1000
456
457       /* This may be set before writing out a BFD to request that it
458          be written using values for UIDs, GIDs, timestamps, etc. that
459          will be consistent from run to run.  */
460     #define BFD_DETERMINISTIC_OUTPUT 0x2000
461
462       /* Compress sections in this BFD.  */
463     #define BFD_COMPRESS 0x4000
464
465       /* Decompress sections in this BFD.  */
466     #define BFD_DECOMPRESS 0x8000
467
468       /* BFD is a dummy, for plugins.  */
469     #define BFD_PLUGIN 0x10000
470
471       /* Compress sections in this BFD with SHF_COMPRESSED from gABI.  */
472     #define BFD_COMPRESS_GABI 0x20000
473
474       /* Flags bits to be saved in bfd_preserve_save.  */
475     #define BFD_FLAGS_SAVED \
476       (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_PLUGIN \
477        | BFD_COMPRESS_GABI)
478
479       /* Flags bits which are for BFD use only.  */
480     #define BFD_FLAGS_FOR_BFD_USE_MASK \
481       (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
482        | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT \
483        | BFD_COMPRESS_GABI)
484
485       /* Is the file descriptor being cached?  That is, can it be closed as
486          needed, and re-opened when accessed later?  */
487       unsigned int cacheable : 1;
488
489       /* Marks whether there was a default target specified when the
490          BFD was opened. This is used to select which matching algorithm
491          to use to choose the back end.  */
492       unsigned int target_defaulted : 1;
493
494       /* ... and here: (``once'' means at least once).  */
495       unsigned int opened_once : 1;
496
497       /* Set if we have a locally maintained mtime value, rather than
498          getting it from the file each time.  */
499       unsigned int mtime_set : 1;
500
501       /* Flag set if symbols from this BFD should not be exported.  */
502       unsigned int no_export : 1;
503
504       /* Remember when output has begun, to stop strange things
505          from happening.  */
506       unsigned int output_has_begun : 1;
507
508       /* Have archive map.  */
509       unsigned int has_armap : 1;
510
511       /* Set if this is a thin archive.  */
512       unsigned int is_thin_archive : 1;
513
514       /* Set if only required symbols should be added in the link hash table for
515          this object.  Used by VMS linkers.  */
516       unsigned int selective_search : 1;
517
518       /* Set if this is the linker output BFD.  */
519       unsigned int is_linker_output : 1;
520
521       /* Set if this is the linker input BFD.  */
522       unsigned int is_linker_input : 1;
523
524       /* If this is an input for a compiler plug-in library.  */
525       ENUM_BITFIELD (bfd_plugin_format) plugin_format : 2;
526
527       /* Set if this is a plugin output file.  */
528       unsigned int lto_output : 1;
529
530       /* Set to dummy BFD created when claimed by a compiler plug-in
531          library.  */
532       bfd *plugin_dummy_bfd;
533
534       /* Currently my_archive is tested before adding origin to
535          anything. I believe that this can become always an add of
536          origin, with origin set to 0 for non archive files.  */
537       ufile_ptr origin;
538
539       /* The origin in the archive of the proxy entry.  This will
540          normally be the same as origin, except for thin archives,
541          when it will contain the current offset of the proxy in the
542          thin archive rather than the offset of the bfd in its actual
543          container.  */
544       ufile_ptr proxy_origin;
545
546       /* A hash table for section names.  */
547       struct bfd_hash_table section_htab;
548
549       /* Pointer to linked list of sections.  */
550       struct bfd_section *sections;
551
552       /* The last section on the section list.  */
553       struct bfd_section *section_last;
554
555       /* The number of sections.  */
556       unsigned int section_count;
557
558       /* A field used by _bfd_generic_link_add_archive_symbols.  This will
559          be used only for archive elements.  */
560       int archive_pass;
561
562       /* Stuff only useful for object files:
563          The start address.  */
564       bfd_vma start_address;
565
566       /* Symbol table for output BFD (with symcount entries).
567          Also used by the linker to cache input BFD symbols.  */
568       struct bfd_symbol  **outsymbols;
569
570       /* Used for input and output.  */
571       unsigned int symcount;
572
573       /* Used for slurped dynamic symbol tables.  */
574       unsigned int dynsymcount;
575
576       /* Pointer to structure which contains architecture information.  */
577       const struct bfd_arch_info *arch_info;
578
579       /* Stuff only useful for archives.  */
580       void *arelt_data;
581       struct bfd *my_archive;      /* The containing archive BFD.  */
582       struct bfd *archive_next;    /* The next BFD in the archive.  */
583       struct bfd *archive_head;    /* The first BFD in the archive.  */
584       struct bfd *nested_archives; /* List of nested archive in a flattened
585                                       thin archive.  */
586
587       union {
588         /* For input BFDs, a chain of BFDs involved in a link.  */
589         struct bfd *next;
590         /* For output BFD, the linker hash table.  */
591         struct bfd_link_hash_table *hash;
592       } link;
593
594       /* Used by the back end to hold private data.  */
595       union
596         {
597           struct aout_data_struct *aout_data;
598           struct artdata *aout_ar_data;
599           struct _oasys_data *oasys_obj_data;
600           struct _oasys_ar_data *oasys_ar_data;
601           struct coff_tdata *coff_obj_data;
602           struct pe_tdata *pe_obj_data;
603           struct xcoff_tdata *xcoff_obj_data;
604           struct ecoff_tdata *ecoff_obj_data;
605           struct ieee_data_struct *ieee_data;
606           struct ieee_ar_data_struct *ieee_ar_data;
607           struct srec_data_struct *srec_data;
608           struct verilog_data_struct *verilog_data;
609           struct ihex_data_struct *ihex_data;
610           struct tekhex_data_struct *tekhex_data;
611           struct elf_obj_tdata *elf_obj_data;
612           struct nlm_obj_tdata *nlm_obj_data;
613           struct bout_data_struct *bout_data;
614           struct mmo_data_struct *mmo_data;
615           struct sun_core_struct *sun_core_data;
616           struct sco5_core_struct *sco5_core_data;
617           struct trad_core_struct *trad_core_data;
618           struct som_data_struct *som_data;
619           struct hpux_core_struct *hpux_core_data;
620           struct hppabsd_core_struct *hppabsd_core_data;
621           struct sgi_core_struct *sgi_core_data;
622           struct lynx_core_struct *lynx_core_data;
623           struct osf_core_struct *osf_core_data;
624           struct cisco_core_struct *cisco_core_data;
625           struct versados_data_struct *versados_data;
626           struct netbsd_core_struct *netbsd_core_data;
627           struct mach_o_data_struct *mach_o_data;
628           struct mach_o_fat_data_struct *mach_o_fat_data;
629           struct plugin_data_struct *plugin_data;
630           struct bfd_pef_data_struct *pef_data;
631           struct bfd_pef_xlib_data_struct *pef_xlib_data;
632           struct bfd_sym_data_struct *sym_data;
633           void *any;
634         }
635       tdata;
636
637       /* Used by the application to hold private data.  */
638       void *usrdata;
639
640       /* Where all the allocated stuff under this BFD goes.  This is a
641          struct objalloc *, but we use void * to avoid requiring the inclusion
642          of objalloc.h.  */
643       void *memory;
644
645       /* For input BFDs, the build ID, if the object has one. */
646       const struct bfd_build_id *build_id;
647     };
648
649     /* See note beside bfd_set_section_userdata.  */
650     static inline bfd_boolean
651     bfd_set_cacheable (bfd * abfd, bfd_boolean val)
652     {
653       abfd->cacheable = val;
654       return TRUE;
655     }
656
657
658File: bfd.info,  Node: Error reporting,  Next: Miscellaneous,  Prev: typedef bfd,  Up: BFD front end
659
6602.2 Error reporting
661===================
662
663Most BFD functions return nonzero on success (check their individual
664documentation for precise semantics).  On an error, they call
665`bfd_set_error' to set an error condition that callers can check by
666calling `bfd_get_error'.  If that returns `bfd_error_system_call', then
667check `errno'.
668
669   The easiest way to report a BFD error to the user is to use
670`bfd_perror'.
671
6722.2.1 Type `bfd_error_type'
673---------------------------
674
675The values returned by `bfd_get_error' are defined by the enumerated
676type `bfd_error_type'.
677
678
679     typedef enum bfd_error
680     {
681       bfd_error_no_error = 0,
682       bfd_error_system_call,
683       bfd_error_invalid_target,
684       bfd_error_wrong_format,
685       bfd_error_wrong_object_format,
686       bfd_error_invalid_operation,
687       bfd_error_no_memory,
688       bfd_error_no_symbols,
689       bfd_error_no_armap,
690       bfd_error_no_more_archived_files,
691       bfd_error_malformed_archive,
692       bfd_error_missing_dso,
693       bfd_error_file_not_recognized,
694       bfd_error_file_ambiguously_recognized,
695       bfd_error_no_contents,
696       bfd_error_nonrepresentable_section,
697       bfd_error_no_debug_section,
698       bfd_error_bad_value,
699       bfd_error_file_truncated,
700       bfd_error_file_too_big,
701       bfd_error_on_input,
702       bfd_error_invalid_error_code
703     }
704     bfd_error_type;
705   
7062.2.1.1 `bfd_get_error'
707.......................
708
709*Synopsis*
710     bfd_error_type bfd_get_error (void);
711   *Description*
712Return the current BFD error condition.
713
7142.2.1.2 `bfd_set_error'
715.......................
716
717*Synopsis*
718     void bfd_set_error (bfd_error_type error_tag, ...);
719   *Description*
720Set the BFD error condition to be ERROR_TAG.  If ERROR_TAG is
721bfd_error_on_input, then this function takes two more parameters, the
722input bfd where the error occurred, and the bfd_error_type error.
723
7242.2.1.3 `bfd_errmsg'
725....................
726
727*Synopsis*
728     const char *bfd_errmsg (bfd_error_type error_tag);
729   *Description*
730Return a string describing the error ERROR_TAG, or the system error if
731ERROR_TAG is `bfd_error_system_call'.
732
7332.2.1.4 `bfd_perror'
734....................
735
736*Synopsis*
737     void bfd_perror (const char *message);
738   *Description*
739Print to the standard error stream a string describing the last BFD
740error that occurred, or the last system error if the last BFD error was
741a system call failure.  If MESSAGE is non-NULL and non-empty, the error
742string printed is preceded by MESSAGE, a colon, and a space.  It is
743followed by a newline.
744
7452.2.2 BFD error handler
746-----------------------
747
748Some BFD functions want to print messages describing the problem.  They
749call a BFD error handler function.  This function may be overridden by
750the program.
751
752   The BFD error handler acts like printf.
753
754
755     typedef void (*bfd_error_handler_type) (const char *, ...);
756   
7572.2.2.1 `bfd_set_error_handler'
758...............................
759
760*Synopsis*
761     bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
762   *Description*
763Set the BFD error handler function.  Returns the previous function.
764
7652.2.2.2 `bfd_set_error_program_name'
766....................................
767
768*Synopsis*
769     void bfd_set_error_program_name (const char *);
770   *Description*
771Set the program name to use when printing a BFD error.  This is printed
772before the error message followed by a colon and space.  The string
773must not be changed after it is passed to this function.
774
7752.2.2.3 `bfd_get_error_handler'
776...............................
777
778*Synopsis*
779     bfd_error_handler_type bfd_get_error_handler (void);
780   *Description*
781Return the BFD error handler function.
782
7832.2.3 BFD assert handler
784------------------------
785
786If BFD finds an internal inconsistency, the bfd assert handler is
787called with information on the BFD version, BFD source file and line.
788If this happens, most programs linked against BFD are expected to want
789to exit with an error, or mark the current BFD operation as failed, so
790it is recommended to override the default handler, which just calls
791_bfd_error_handler and continues.
792
793
794     typedef void (*bfd_assert_handler_type) (const char *bfd_formatmsg,
795                                              const char *bfd_version,
796                                              const char *bfd_file,
797                                              int bfd_line);
798   
7992.2.3.1 `bfd_set_assert_handler'
800................................
801
802*Synopsis*
803     bfd_assert_handler_type bfd_set_assert_handler (bfd_assert_handler_type);
804   *Description*
805Set the BFD assert handler function.  Returns the previous function.
806
8072.2.3.2 `bfd_get_assert_handler'
808................................
809
810*Synopsis*
811     bfd_assert_handler_type bfd_get_assert_handler (void);
812   *Description*
813Return the BFD assert handler function.
814
815
816File: bfd.info,  Node: Miscellaneous,  Next: Memory Usage,  Prev: Error reporting,  Up: BFD front end
817
8182.3 Miscellaneous
819=================
820
8212.3.1 Miscellaneous functions
822-----------------------------
823
8242.3.1.1 `bfd_get_reloc_upper_bound'
825...................................
826
827*Synopsis*
828     long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
829   *Description*
830Return the number of bytes required to store the relocation information
831associated with section SECT attached to bfd ABFD.  If an error occurs,
832return -1.
833
8342.3.1.2 `bfd_canonicalize_reloc'
835................................
836
837*Synopsis*
838     long bfd_canonicalize_reloc
839        (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
840   *Description*
841Call the back end associated with the open BFD ABFD and translate the
842external form of the relocation information attached to SEC into the
843internal canonical form.  Place the table into memory at LOC, which has
844been preallocated, usually by a call to `bfd_get_reloc_upper_bound'.
845Returns the number of relocs, or -1 on error.
846
847   The SYMS table is also needed for horrible internal magic reasons.
848
8492.3.1.3 `bfd_set_reloc'
850.......................
851
852*Synopsis*
853     void bfd_set_reloc
854        (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
855   *Description*
856Set the relocation pointer and count within section SEC to the values
857REL and COUNT.  The argument ABFD is ignored.
858
8592.3.1.4 `bfd_set_file_flags'
860............................
861
862*Synopsis*
863     bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
864   *Description*
865Set the flag word in the BFD ABFD to the value FLAGS.
866
867   Possible errors are:
868   * `bfd_error_wrong_format' - The target bfd was not of object format.
869
870   * `bfd_error_invalid_operation' - The target bfd was open for
871     reading.
872
873   * `bfd_error_invalid_operation' - The flag word contained a bit
874     which was not applicable to the type of file.  E.g., an attempt
875     was made to set the `D_PAGED' bit on a BFD format which does not
876     support demand paging.
877
8782.3.1.5 `bfd_get_arch_size'
879...........................
880
881*Synopsis*
882     int bfd_get_arch_size (bfd *abfd);
883   *Description*
884Returns the normalized architecture address size, in bits, as
885determined by the object file's format.  By normalized, we mean either
88632 or 64.  For ELF, this information is included in the header.  Use
887bfd_arch_bits_per_address for number of bits in the architecture
888address.
889
890   *Returns*
891Returns the arch size in bits if known, `-1' otherwise.
892
8932.3.1.6 `bfd_get_sign_extend_vma'
894.................................
895
896*Synopsis*
897     int bfd_get_sign_extend_vma (bfd *abfd);
898   *Description*
899Indicates if the target architecture "naturally" sign extends an
900address.  Some architectures implicitly sign extend address values when
901they are converted to types larger than the size of an address.  For
902instance, bfd_get_start_address() will return an address sign extended
903to fill a bfd_vma when this is the case.
904
905   *Returns*
906Returns `1' if the target architecture is known to sign extend
907addresses, `0' if the target architecture is known to not sign extend
908addresses, and `-1' otherwise.
909
9102.3.1.7 `bfd_set_start_address'
911...............................
912
913*Synopsis*
914     bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
915   *Description*
916Make VMA the entry point of output BFD ABFD.
917
918   *Returns*
919Returns `TRUE' on success, `FALSE' otherwise.
920
9212.3.1.8 `bfd_get_gp_size'
922.........................
923
924*Synopsis*
925     unsigned int bfd_get_gp_size (bfd *abfd);
926   *Description*
927Return the maximum size of objects to be optimized using the GP
928register under MIPS ECOFF.  This is typically set by the `-G' argument
929to the compiler, assembler or linker.
930
9312.3.1.9 `bfd_set_gp_size'
932.........................
933
934*Synopsis*
935     void bfd_set_gp_size (bfd *abfd, unsigned int i);
936   *Description*
937Set the maximum size of objects to be optimized using the GP register
938under ECOFF or MIPS ELF.  This is typically set by the `-G' argument to
939the compiler, assembler or linker.
940
9412.3.1.10 `bfd_scan_vma'
942.......................
943
944*Synopsis*
945     bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
946   *Description*
947Convert, like `strtoul', a numerical expression STRING into a `bfd_vma'
948integer, and return that integer.  (Though without as many bells and
949whistles as `strtoul'.)  The expression is assumed to be unsigned
950(i.e., positive).  If given a BASE, it is used as the base for
951conversion.  A base of 0 causes the function to interpret the string in
952hex if a leading "0x" or "0X" is found, otherwise in octal if a leading
953zero is found, otherwise in decimal.
954
955   If the value would overflow, the maximum `bfd_vma' value is returned.
956
9572.3.1.11 `bfd_copy_private_header_data'
958.......................................
959
960*Synopsis*
961     bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
962   *Description*
963Copy private BFD header information from the BFD IBFD to the the BFD
964OBFD.  This copies information that may require sections to exist, but
965does not require symbol tables.  Return `true' on success, `false' on
966error.  Possible error returns are:
967
968   * `bfd_error_no_memory' - Not enough memory exists to create private
969     data for OBFD.
970
971     #define bfd_copy_private_header_data(ibfd, obfd) \
972          BFD_SEND (obfd, _bfd_copy_private_header_data, \
973                    (ibfd, obfd))
974
9752.3.1.12 `bfd_copy_private_bfd_data'
976....................................
977
978*Synopsis*
979     bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
980   *Description*
981Copy private BFD information from the BFD IBFD to the the BFD OBFD.
982Return `TRUE' on success, `FALSE' on error.  Possible error returns are:
983
984   * `bfd_error_no_memory' - Not enough memory exists to create private
985     data for OBFD.
986
987     #define bfd_copy_private_bfd_data(ibfd, obfd) \
988          BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
989                    (ibfd, obfd))
990
9912.3.1.13 `bfd_merge_private_bfd_data'
992.....................................
993
994*Synopsis*
995     bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
996   *Description*
997Merge private BFD information from the BFD IBFD to the the output file
998BFD OBFD when linking.  Return `TRUE' on success, `FALSE' on error.
999Possible error returns are:
1000
1001   * `bfd_error_no_memory' - Not enough memory exists to create private
1002     data for OBFD.
1003
1004     #define bfd_merge_private_bfd_data(ibfd, obfd) \
1005          BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
1006                    (ibfd, obfd))
1007
10082.3.1.14 `bfd_set_private_flags'
1009................................
1010
1011*Synopsis*
1012     bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
1013   *Description*
1014Set private BFD flag information in the BFD ABFD.  Return `TRUE' on
1015success, `FALSE' on error.  Possible error returns are:
1016
1017   * `bfd_error_no_memory' - Not enough memory exists to create private
1018     data for OBFD.
1019
1020     #define bfd_set_private_flags(abfd, flags) \
1021          BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
1022
10232.3.1.15 `Other functions'
1024..........................
1025
1026*Description*
1027The following functions exist but have not yet been documented.
1028     #define bfd_sizeof_headers(abfd, info) \
1029            BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
1030
1031     #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
1032            BFD_SEND (abfd, _bfd_find_nearest_line, \
1033                      (abfd, syms, sec, off, file, func, line, NULL))
1034
1035     #define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
1036                                                 line, disc) \
1037            BFD_SEND (abfd, _bfd_find_nearest_line, \
1038                      (abfd, syms, sec, off, file, func, line, disc))
1039
1040     #define bfd_find_line(abfd, syms, sym, file, line) \
1041            BFD_SEND (abfd, _bfd_find_line, \
1042                      (abfd, syms, sym, file, line))
1043
1044     #define bfd_find_inliner_info(abfd, file, func, line) \
1045            BFD_SEND (abfd, _bfd_find_inliner_info, \
1046                      (abfd, file, func, line))
1047
1048     #define bfd_debug_info_start(abfd) \
1049            BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
1050
1051     #define bfd_debug_info_end(abfd) \
1052            BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
1053
1054     #define bfd_debug_info_accumulate(abfd, section) \
1055            BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
1056
1057     #define bfd_stat_arch_elt(abfd, stat) \
1058            BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
1059
1060     #define bfd_update_armap_timestamp(abfd) \
1061            BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
1062
1063     #define bfd_set_arch_mach(abfd, arch, mach)\
1064            BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
1065
1066     #define bfd_relax_section(abfd, section, link_info, again) \
1067            BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
1068
1069     #define bfd_gc_sections(abfd, link_info) \
1070            BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
1071
1072     #define bfd_lookup_section_flags(link_info, flag_info, section) \
1073            BFD_SEND (abfd, _bfd_lookup_section_flags, (link_info, flag_info, section))
1074
1075     #define bfd_merge_sections(abfd, link_info) \
1076            BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
1077
1078     #define bfd_is_group_section(abfd, sec) \
1079            BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
1080
1081     #define bfd_discard_group(abfd, sec) \
1082            BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
1083
1084     #define bfd_link_hash_table_create(abfd) \
1085            BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
1086
1087     #define bfd_link_add_symbols(abfd, info) \
1088            BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
1089
1090     #define bfd_link_just_syms(abfd, sec, info) \
1091            BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
1092
1093     #define bfd_final_link(abfd, info) \
1094            BFD_SEND (abfd, _bfd_final_link, (abfd, info))
1095
1096     #define bfd_free_cached_info(abfd) \
1097            BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
1098
1099     #define bfd_get_dynamic_symtab_upper_bound(abfd) \
1100            BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
1101
1102     #define bfd_print_private_bfd_data(abfd, file)\
1103            BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
1104
1105     #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
1106            BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
1107
1108     #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
1109            BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
1110                                                        dyncount, dynsyms, ret))
1111
1112     #define bfd_get_dynamic_reloc_upper_bound(abfd) \
1113            BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
1114
1115     #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
1116            BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
1117
1118     extern bfd_byte *bfd_get_relocated_section_contents
1119       (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
1120        bfd_boolean, asymbol **);
1121
11222.3.1.16 `bfd_alt_mach_code'
1123............................
1124
1125*Synopsis*
1126     bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
1127   *Description*
1128When more than one machine code number is available for the same
1129machine type, this function can be used to switch between the preferred
1130one (alternative == 0) and any others.  Currently, only ELF supports
1131this feature, with up to two alternate machine codes.
1132
11332.3.1.17 `bfd_emul_get_maxpagesize'
1134...................................
1135
1136*Synopsis*
1137     bfd_vma bfd_emul_get_maxpagesize (const char *);
1138   *Description*
1139Returns the maximum page size, in bytes, as determined by emulation.
1140
1141   *Returns*
1142Returns the maximum page size in bytes for ELF, 0 otherwise.
1143
11442.3.1.18 `bfd_emul_set_maxpagesize'
1145...................................
1146
1147*Synopsis*
1148     void bfd_emul_set_maxpagesize (const char *, bfd_vma);
1149   *Description*
1150For ELF, set the maximum page size for the emulation.  It is a no-op
1151for other formats.
1152
11532.3.1.19 `bfd_emul_get_commonpagesize'
1154......................................
1155
1156*Synopsis*
1157     bfd_vma bfd_emul_get_commonpagesize (const char *);
1158   *Description*
1159Returns the common page size, in bytes, as determined by emulation.
1160
1161   *Returns*
1162Returns the common page size in bytes for ELF, 0 otherwise.
1163
11642.3.1.20 `bfd_emul_set_commonpagesize'
1165......................................
1166
1167*Synopsis*
1168     void bfd_emul_set_commonpagesize (const char *, bfd_vma);
1169   *Description*
1170For ELF, set the common page size for the emulation.  It is a no-op for
1171other formats.
1172
11732.3.1.21 `bfd_demangle'
1174.......................
1175
1176*Synopsis*
1177     char *bfd_demangle (bfd *, const char *, int);
1178   *Description*
1179Wrapper around cplus_demangle.  Strips leading underscores and other
1180such chars that would otherwise confuse the demangler.  If passed a g++
1181v3 ABI mangled name, returns a buffer allocated with malloc holding the
1182demangled name.  Returns NULL otherwise and on memory alloc failure.
1183
11842.3.1.22 `bfd_update_compression_header'
1185........................................
1186
1187*Synopsis*
1188     void bfd_update_compression_header
1189        (bfd *abfd, bfd_byte *contents, asection *sec);
1190   *Description*
1191Set the compression header at CONTENTS of SEC in ABFD and update
1192elf_section_flags for compression.
1193
11942.3.1.23 `bfd_check_compression_header'
1195.......................................
1196
1197*Synopsis*
1198     bfd_boolean bfd_check_compression_header
1199        (bfd *abfd, bfd_byte *contents, asection *sec,
1200         bfd_size_type *uncompressed_size);
1201   *Description*
1202Check the compression header at CONTENTS of SEC in ABFD and store the
1203uncompressed size in UNCOMPRESSED_SIZE if the compression header is
1204valid.
1205
1206   *Returns*
1207Return TRUE if the compression header is valid.
1208
12092.3.1.24 `bfd_get_compression_header_size'
1210..........................................
1211
1212*Synopsis*
1213     int bfd_get_compression_header_size (bfd *abfd, asection *sec);
1214   *Description*
1215Return the size of the compression header of SEC in ABFD.
1216
1217   *Returns*
1218Return the size of the compression header in bytes.
1219
12202.3.1.25 `bfd_convert_section_size'
1221...................................
1222
1223*Synopsis*
1224     bfd_size_type bfd_convert_section_size
1225        (bfd *ibfd, asection *isec, bfd *obfd, bfd_size_type size);
1226   *Description*
1227Convert the size SIZE of the section ISEC in input BFD IBFD to the
1228section size in output BFD OBFD.
1229
12302.3.1.26 `bfd_convert_section_contents'
1231.......................................
1232
1233*Synopsis*
1234     bfd_boolean bfd_convert_section_contents
1235        (bfd *ibfd, asection *isec, bfd *obfd,
1236         bfd_byte **ptr, bfd_size_type *ptr_size);
1237   *Description*
1238Convert the contents, stored in *PTR, of the section ISEC in input BFD
1239IBFD to output BFD OBFD if needed.  The original buffer pointed to by
1240*PTR may be freed and *PTR is returned with memory malloc'd by this
1241function, and the new size written to PTR_SIZE.
1242
12432.3.1.27 `struct bfd_iovec'
1244...........................
1245
1246*Description*
1247The `struct bfd_iovec' contains the internal file I/O class.  Each
1248`BFD' has an instance of this class and all file I/O is routed through
1249it (it is assumed that the instance implements all methods listed
1250below).
1251     struct bfd_iovec
1252     {
1253       /* To avoid problems with macros, a "b" rather than "f"
1254          prefix is prepended to each method name.  */
1255       /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching
1256          bytes starting at PTR.  Return the number of bytes actually
1257          transfered (a read past end-of-file returns less than NBYTES),
1258          or -1 (setting `bfd_error') if an error occurs.  */
1259       file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
1260       file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
1261                           file_ptr nbytes);
1262       /* Return the current IOSTREAM file offset, or -1 (setting `bfd_error'
1263          if an error occurs.  */
1264       file_ptr (*btell) (struct bfd *abfd);
1265       /* For the following, on successful completion a value of 0 is returned.
1266          Otherwise, a value of -1 is returned (and  `bfd_error' is set).  */
1267       int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
1268       int (*bclose) (struct bfd *abfd);
1269       int (*bflush) (struct bfd *abfd);
1270       int (*bstat) (struct bfd *abfd, struct stat *sb);
1271       /* Mmap a part of the files. ADDR, LEN, PROT, FLAGS and OFFSET are the usual
1272          mmap parameter, except that LEN and OFFSET do not need to be page
1273          aligned.  Returns (void *)-1 on failure, mmapped address on success.
1274          Also write in MAP_ADDR the address of the page aligned buffer and in
1275          MAP_LEN the size mapped (a page multiple).  Use unmap with MAP_ADDR and
1276          MAP_LEN to unmap.  */
1277       void *(*bmmap) (struct bfd *abfd, void *addr, bfd_size_type len,
1278                       int prot, int flags, file_ptr offset,
1279                       void **map_addr, bfd_size_type *map_len);
1280     };
1281     extern const struct bfd_iovec _bfd_memory_iovec;
1282
12832.3.1.28 `bfd_get_mtime'
1284........................
1285
1286*Synopsis*
1287     long bfd_get_mtime (bfd *abfd);
1288   *Description*
1289Return the file modification time (as read from the file system, or
1290from the archive header for archive members).
1291
12922.3.1.29 `bfd_get_size'
1293.......................
1294
1295*Synopsis*
1296     file_ptr bfd_get_size (bfd *abfd);
1297   *Description*
1298Return the file size (as read from file system) for the file associated
1299with BFD ABFD.
1300
1301   The initial motivation for, and use of, this routine is not so we
1302can get the exact size of the object the BFD applies to, since that
1303might not be generally possible (archive members for example).  It
1304would be ideal if someone could eventually modify it so that such
1305results were guaranteed.
1306
1307   Instead, we want to ask questions like "is this NNN byte sized
1308object I'm about to try read from file offset YYY reasonable?"  As as
1309example of where we might do this, some object formats use string
1310tables for which the first `sizeof (long)' bytes of the table contain
1311the size of the table itself, including the size bytes.  If an
1312application tries to read what it thinks is one of these string tables,
1313without some way to validate the size, and for some reason the size is
1314wrong (byte swapping error, wrong location for the string table, etc.),
1315the only clue is likely to be a read error when it tries to read the
1316table, or a "virtual memory exhausted" error when it tries to allocate
131715 bazillon bytes of space for the 15 bazillon byte table it is about
1318to read.  This function at least allows us to answer the question, "is
1319the size reasonable?".
1320
13212.3.1.30 `bfd_mmap'
1322...................
1323
1324*Synopsis*
1325     void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len,
1326         int prot, int flags, file_ptr offset,
1327         void **map_addr, bfd_size_type *map_len);
1328   *Description*
1329Return mmap()ed region of the file, if possible and implemented.  LEN
1330and OFFSET do not need to be page aligned.  The page aligned address
1331and length are written to MAP_ADDR and MAP_LEN.
1332
1333
1334File: bfd.info,  Node: Memory Usage,  Next: Initialization,  Prev: Miscellaneous,  Up: BFD front end
1335
13362.4 Memory Usage
1337================
1338
1339BFD keeps all of its internal structures in obstacks. There is one
1340obstack per open BFD file, into which the current state is stored. When
1341a BFD is closed, the obstack is deleted, and so everything which has
1342been allocated by BFD for the closing file is thrown away.
1343
1344   BFD does not free anything created by an application, but pointers
1345into `bfd' structures become invalid on a `bfd_close'; for example,
1346after a `bfd_close' the vector passed to `bfd_canonicalize_symtab' is
1347still around, since it has been allocated by the application, but the
1348data that it pointed to are lost.
1349
1350   The general rule is to not close a BFD until all operations dependent
1351upon data from the BFD have been completed, or all the data from within
1352the file has been copied. To help with the management of memory, there
1353is a function (`bfd_alloc_size') which returns the number of bytes in
1354obstacks associated with the supplied BFD. This could be used to select
1355the greediest open BFD, close it to reclaim the memory, perform some
1356operation and reopen the BFD again, to get a fresh copy of the data
1357structures.
1358
1359
1360File: bfd.info,  Node: Initialization,  Next: Sections,  Prev: Memory Usage,  Up: BFD front end
1361
13622.5 Initialization
1363==================
1364
13652.5.1 Initialization functions
1366------------------------------
1367
1368These are the functions that handle initializing a BFD.
1369
13702.5.1.1 `bfd_init'
1371..................
1372
1373*Synopsis*
1374     void bfd_init (void);
1375   *Description*
1376This routine must be called before any other BFD function to initialize
1377magical internal data structures.
1378
1379
1380File: bfd.info,  Node: Sections,  Next: Symbols,  Prev: Initialization,  Up: BFD front end
1381
13822.6 Sections
1383============
1384
1385The raw data contained within a BFD is maintained through the section
1386abstraction.  A single BFD may have any number of sections.  It keeps
1387hold of them by pointing to the first; each one points to the next in
1388the list.
1389
1390   Sections are supported in BFD in `section.c'.
1391
1392* Menu:
1393
1394* Section Input::
1395* Section Output::
1396* typedef asection::
1397* section prototypes::
1398
1399
1400File: bfd.info,  Node: Section Input,  Next: Section Output,  Prev: Sections,  Up: Sections
1401
14022.6.1 Section input
1403-------------------
1404
1405When a BFD is opened for reading, the section structures are created
1406and attached to the BFD.
1407
1408   Each section has a name which describes the section in the outside
1409world--for example, `a.out' would contain at least three sections,
1410called `.text', `.data' and `.bss'.
1411
1412   Names need not be unique; for example a COFF file may have several
1413sections named `.data'.
1414
1415   Sometimes a BFD will contain more than the "natural" number of
1416sections. A back end may attach other sections containing constructor
1417data, or an application may add a section (using `bfd_make_section') to
1418the sections attached to an already open BFD. For example, the linker
1419creates an extra section `COMMON' for each input file's BFD to hold
1420information about common storage.
1421
1422   The raw data is not necessarily read in when the section descriptor
1423is created. Some targets may leave the data in place until a
1424`bfd_get_section_contents' call is made. Other back ends may read in
1425all the data at once.  For example, an S-record file has to be read
1426once to determine the size of the data. An IEEE-695 file doesn't
1427contain raw data in sections, but data and relocation expressions
1428intermixed, so the data area has to be parsed to get out the data and
1429relocations.
1430
1431
1432File: bfd.info,  Node: Section Output,  Next: typedef asection,  Prev: Section Input,  Up: Sections
1433
14342.6.2 Section output
1435--------------------
1436
1437To write a new object style BFD, the various sections to be written
1438have to be created. They are attached to the BFD in the same way as
1439input sections; data is written to the sections using
1440`bfd_set_section_contents'.
1441
1442   Any program that creates or combines sections (e.g., the assembler
1443and linker) must use the `asection' fields `output_section' and
1444`output_offset' to indicate the file sections to which each section
1445must be written.  (If the section is being created from scratch,
1446`output_section' should probably point to the section itself and
1447`output_offset' should probably be zero.)
1448
1449   The data to be written comes from input sections attached (via
1450`output_section' pointers) to the output sections.  The output section
1451structure can be considered a filter for the input section: the output
1452section determines the vma of the output data and the name, but the
1453input section determines the offset into the output section of the data
1454to be written.
1455
1456   E.g., to create a section "O", starting at 0x100, 0x123 long,
1457containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and
1458"B" at offset 0x20 (i.e., at vma 0x120) the `asection' structures would
1459look like:
1460
1461        section name          "A"
1462          output_offset   0x00
1463          size            0x20
1464          output_section ----------->  section name    "O"
1465                                  |    vma             0x100
1466        section name          "B" |    size            0x123
1467          output_offset   0x20    |
1468          size            0x103   |
1469          output_section  --------|
1470
14712.6.3 Link orders
1472-----------------
1473
1474The data within a section is stored in a "link_order".  These are much
1475like the fixups in `gas'.  The link_order abstraction allows a section
1476to grow and shrink within itself.
1477
1478   A link_order knows how big it is, and which is the next link_order
1479and where the raw data for it is; it also points to a list of
1480relocations which apply to it.
1481
1482   The link_order is used by the linker to perform relaxing on final
1483code.  The compiler creates code which is as big as necessary to make
1484it work without relaxing, and the user can select whether to relax.
1485Sometimes relaxing takes a lot of time.  The linker runs around the
1486relocations to see if any are attached to data which can be shrunk, if
1487so it does it on a link_order by link_order basis.
1488
1489
1490File: bfd.info,  Node: typedef asection,  Next: section prototypes,  Prev: Section Output,  Up: Sections
1491
14922.6.4 typedef asection
1493----------------------
1494
1495Here is the section structure:
1496
1497
1498     typedef struct bfd_section
1499     {
1500       /* The name of the section; the name isn't a copy, the pointer is
1501          the same as that passed to bfd_make_section.  */
1502       const char *name;
1503
1504       /* A unique sequence number.  */
1505       unsigned int id;
1506
1507       /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
1508       unsigned int index;
1509
1510       /* The next section in the list belonging to the BFD, or NULL.  */
1511       struct bfd_section *next;
1512
1513       /* The previous section in the list belonging to the BFD, or NULL.  */
1514       struct bfd_section *prev;
1515
1516       /* The field flags contains attributes of the section. Some
1517          flags are read in from the object file, and some are
1518          synthesized from other information.  */
1519       flagword flags;
1520
1521     #define SEC_NO_FLAGS   0x000
1522
1523       /* Tells the OS to allocate space for this section when loading.
1524          This is clear for a section containing debug information only.  */
1525     #define SEC_ALLOC      0x001
1526
1527       /* Tells the OS to load the section from the file when loading.
1528          This is clear for a .bss section.  */
1529     #define SEC_LOAD       0x002
1530
1531       /* The section contains data still to be relocated, so there is
1532          some relocation information too.  */
1533     #define SEC_RELOC      0x004
1534
1535       /* A signal to the OS that the section contains read only data.  */
1536     #define SEC_READONLY   0x008
1537
1538       /* The section contains code only.  */
1539     #define SEC_CODE       0x010
1540
1541       /* The section contains data only.  */
1542     #define SEC_DATA       0x020
1543
1544       /* The section will reside in ROM.  */
1545     #define SEC_ROM        0x040
1546
1547       /* The section contains constructor information. This section
1548          type is used by the linker to create lists of constructors and
1549          destructors used by `g++'. When a back end sees a symbol
1550          which should be used in a constructor list, it creates a new
1551          section for the type of name (e.g., `__CTOR_LIST__'), attaches
1552          the symbol to it, and builds a relocation. To build the lists
1553          of constructors, all the linker has to do is catenate all the
1554          sections called `__CTOR_LIST__' and relocate the data
1555          contained within - exactly the operations it would peform on
1556          standard data.  */
1557     #define SEC_CONSTRUCTOR 0x080
1558
1559       /* The section has contents - a data section could be
1560          `SEC_ALLOC' | `SEC_HAS_CONTENTS'; a debug section could be
1561          `SEC_HAS_CONTENTS'  */
1562     #define SEC_HAS_CONTENTS 0x100
1563
1564       /* An instruction to the linker to not output the section
1565          even if it has information which would normally be written.  */
1566     #define SEC_NEVER_LOAD 0x200
1567
1568       /* The section contains thread local data.  */
1569     #define SEC_THREAD_LOCAL 0x400
1570
1571       /* The section has GOT references.  This flag is only for the
1572          linker, and is currently only used by the elf32-hppa back end.
1573          It will be set if global offset table references were detected
1574          in this section, which indicate to the linker that the section
1575          contains PIC code, and must be handled specially when doing a
1576          static link.  */
1577     #define SEC_HAS_GOT_REF 0x800
1578
1579       /* The section contains common symbols (symbols may be defined
1580          multiple times, the value of a symbol is the amount of
1581          space it requires, and the largest symbol value is the one
1582          used).  Most targets have exactly one of these (which we
1583          translate to bfd_com_section_ptr), but ECOFF has two.  */
1584     #define SEC_IS_COMMON 0x1000
1585
1586       /* The section contains only debugging information.  For
1587          example, this is set for ELF .debug and .stab sections.
1588          strip tests this flag to see if a section can be
1589          discarded.  */
1590     #define SEC_DEBUGGING 0x2000
1591
1592       /* The contents of this section are held in memory pointed to
1593          by the contents field.  This is checked by bfd_get_section_contents,
1594          and the data is retrieved from memory if appropriate.  */
1595     #define SEC_IN_MEMORY 0x4000
1596
1597       /* The contents of this section are to be excluded by the
1598          linker for executable and shared objects unless those
1599          objects are to be further relocated.  */
1600     #define SEC_EXCLUDE 0x8000
1601
1602       /* The contents of this section are to be sorted based on the sum of
1603          the symbol and addend values specified by the associated relocation
1604          entries.  Entries without associated relocation entries will be
1605          appended to the end of the section in an unspecified order.  */
1606     #define SEC_SORT_ENTRIES 0x10000
1607
1608       /* When linking, duplicate sections of the same name should be
1609          discarded, rather than being combined into a single section as
1610          is usually done.  This is similar to how common symbols are
1611          handled.  See SEC_LINK_DUPLICATES below.  */
1612     #define SEC_LINK_ONCE 0x20000
1613
1614       /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
1615          should handle duplicate sections.  */
1616     #define SEC_LINK_DUPLICATES 0xc0000
1617
1618       /* This value for SEC_LINK_DUPLICATES means that duplicate
1619          sections with the same name should simply be discarded.  */
1620     #define SEC_LINK_DUPLICATES_DISCARD 0x0
1621
1622       /* This value for SEC_LINK_DUPLICATES means that the linker
1623          should warn if there are any duplicate sections, although
1624          it should still only link one copy.  */
1625     #define SEC_LINK_DUPLICATES_ONE_ONLY 0x40000
1626
1627       /* This value for SEC_LINK_DUPLICATES means that the linker
1628          should warn if any duplicate sections are a different size.  */
1629     #define SEC_LINK_DUPLICATES_SAME_SIZE 0x80000
1630
1631       /* This value for SEC_LINK_DUPLICATES means that the linker
1632          should warn if any duplicate sections contain different
1633          contents.  */
1634     #define SEC_LINK_DUPLICATES_SAME_CONTENTS \
1635       (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
1636
1637       /* This section was created by the linker as part of dynamic
1638          relocation or other arcane processing.  It is skipped when
1639          going through the first-pass output, trusting that someone
1640          else up the line will take care of it later.  */
1641     #define SEC_LINKER_CREATED 0x100000
1642
1643       /* This section should not be subject to garbage collection.
1644          Also set to inform the linker that this section should not be
1645          listed in the link map as discarded.  */
1646     #define SEC_KEEP 0x200000
1647
1648       /* This section contains "short" data, and should be placed
1649          "near" the GP.  */
1650     #define SEC_SMALL_DATA 0x400000
1651
1652       /* Attempt to merge identical entities in the section.
1653          Entity size is given in the entsize field.  */
1654     #define SEC_MERGE 0x800000
1655
1656       /* If given with SEC_MERGE, entities to merge are zero terminated
1657          strings where entsize specifies character size instead of fixed
1658          size entries.  */
1659     #define SEC_STRINGS 0x1000000
1660
1661       /* This section contains data about section groups.  */
1662     #define SEC_GROUP 0x2000000
1663
1664       /* The section is a COFF shared library section.  This flag is
1665          only for the linker.  If this type of section appears in
1666          the input file, the linker must copy it to the output file
1667          without changing the vma or size.  FIXME: Although this
1668          was originally intended to be general, it really is COFF
1669          specific (and the flag was renamed to indicate this).  It
1670          might be cleaner to have some more general mechanism to
1671          allow the back end to control what the linker does with
1672          sections.  */
1673     #define SEC_COFF_SHARED_LIBRARY 0x4000000
1674
1675       /* This input section should be copied to output in reverse order
1676          as an array of pointers.  This is for ELF linker internal use
1677          only.  */
1678     #define SEC_ELF_REVERSE_COPY 0x4000000
1679
1680       /* This section contains data which may be shared with other
1681          executables or shared objects. This is for COFF only.  */
1682     #define SEC_COFF_SHARED 0x8000000
1683
1684       /* This section should be compressed.  This is for ELF linker
1685          internal use only.  */
1686     #define SEC_ELF_COMPRESS 0x8000000
1687
1688       /* When a section with this flag is being linked, then if the size of
1689          the input section is less than a page, it should not cross a page
1690          boundary.  If the size of the input section is one page or more,
1691          it should be aligned on a page boundary.  This is for TI
1692          TMS320C54X only.  */
1693     #define SEC_TIC54X_BLOCK 0x10000000
1694
1695       /* This section should be renamed.  This is for ELF linker
1696          internal use only.  */
1697     #define SEC_ELF_RENAME 0x10000000
1698
1699       /* Conditionally link this section; do not link if there are no
1700          references found to any symbol in the section.  This is for TI
1701          TMS320C54X only.  */
1702     #define SEC_TIC54X_CLINK 0x20000000
1703
1704       /* This section contains vliw code.  This is for Toshiba MeP only.  */
1705     #define SEC_MEP_VLIW 0x20000000
1706
1707       /* Indicate that section has the no read flag set. This happens
1708          when memory read flag isn't set. */
1709     #define SEC_COFF_NOREAD 0x40000000
1710
1711       /*  End of section flags.  */
1712
1713       /* Some internal packed boolean fields.  */
1714
1715       /* See the vma field.  */
1716       unsigned int user_set_vma : 1;
1717
1718       /* A mark flag used by some of the linker backends.  */
1719       unsigned int linker_mark : 1;
1720
1721       /* Another mark flag used by some of the linker backends.  Set for
1722          output sections that have an input section.  */
1723       unsigned int linker_has_input : 1;
1724
1725       /* Mark flag used by some linker backends for garbage collection.  */
1726       unsigned int gc_mark : 1;
1727
1728       /* Section compression status.  */
1729       unsigned int compress_status : 2;
1730     #define COMPRESS_SECTION_NONE    0
1731     #define COMPRESS_SECTION_DONE    1
1732     #define DECOMPRESS_SECTION_SIZED 2
1733
1734       /* The following flags are used by the ELF linker. */
1735
1736       /* Mark sections which have been allocated to segments.  */
1737       unsigned int segment_mark : 1;
1738
1739       /* Type of sec_info information.  */
1740       unsigned int sec_info_type:3;
1741     #define SEC_INFO_TYPE_NONE      0
1742     #define SEC_INFO_TYPE_STABS     1
1743     #define SEC_INFO_TYPE_MERGE     2
1744     #define SEC_INFO_TYPE_EH_FRAME  3
1745     #define SEC_INFO_TYPE_JUST_SYMS 4
1746     #define SEC_INFO_TYPE_TARGET    5
1747     #define SEC_INFO_TYPE_EH_FRAME_ENTRY 6
1748
1749       /* Nonzero if this section uses RELA relocations, rather than REL.  */
1750       unsigned int use_rela_p:1;
1751
1752       /* Bits used by various backends.  The generic code doesn't touch
1753          these fields.  */
1754
1755       unsigned int sec_flg0:1;
1756       unsigned int sec_flg1:1;
1757       unsigned int sec_flg2:1;
1758       unsigned int sec_flg3:1;
1759       unsigned int sec_flg4:1;
1760       unsigned int sec_flg5:1;
1761
1762       /* End of internal packed boolean fields.  */
1763
1764       /*  The virtual memory address of the section - where it will be
1765           at run time.  The symbols are relocated against this.  The
1766           user_set_vma flag is maintained by bfd; if it's not set, the
1767           backend can assign addresses (for example, in `a.out', where
1768           the default address for `.data' is dependent on the specific
1769           target and various flags).  */
1770       bfd_vma vma;
1771
1772       /*  The load address of the section - where it would be in a
1773           rom image; really only used for writing section header
1774           information.  */
1775       bfd_vma lma;
1776
1777       /* The size of the section in octets, as it will be output.
1778          Contains a value even if the section has no contents (e.g., the
1779          size of `.bss').  */
1780       bfd_size_type size;
1781
1782       /* For input sections, the original size on disk of the section, in
1783          octets.  This field should be set for any section whose size is
1784          changed by linker relaxation.  It is required for sections where
1785          the linker relaxation scheme doesn't cache altered section and
1786          reloc contents (stabs, eh_frame, SEC_MERGE, some coff relaxing
1787          targets), and thus the original size needs to be kept to read the
1788          section multiple times.  For output sections, rawsize holds the
1789          section size calculated on a previous linker relaxation pass.  */
1790       bfd_size_type rawsize;
1791
1792       /* The compressed size of the section in octets.  */
1793       bfd_size_type compressed_size;
1794
1795       /* Relaxation table. */
1796       struct relax_table *relax;
1797
1798       /* Count of used relaxation table entries. */
1799       int relax_count;
1800
1801
1802       /* If this section is going to be output, then this value is the
1803          offset in *bytes* into the output section of the first byte in the
1804          input section (byte ==> smallest addressable unit on the
1805          target).  In most cases, if this was going to start at the
1806          100th octet (8-bit quantity) in the output section, this value
1807          would be 100.  However, if the target byte size is 16 bits
1808          (bfd_octets_per_byte is "2"), this value would be 50.  */
1809       bfd_vma output_offset;
1810
1811       /* The output section through which to map on output.  */
1812       struct bfd_section *output_section;
1813
1814       /* The alignment requirement of the section, as an exponent of 2 -
1815          e.g., 3 aligns to 2^3 (or 8).  */
1816       unsigned int alignment_power;
1817
1818       /* If an input section, a pointer to a vector of relocation
1819          records for the data in this section.  */
1820       struct reloc_cache_entry *relocation;
1821
1822       /* If an output section, a pointer to a vector of pointers to
1823          relocation records for the data in this section.  */
1824       struct reloc_cache_entry **orelocation;
1825
1826       /* The number of relocation records in one of the above.  */
1827       unsigned reloc_count;
1828
1829       /* Information below is back end specific - and not always used
1830          or updated.  */
1831
1832       /* File position of section data.  */
1833       file_ptr filepos;
1834
1835       /* File position of relocation info.  */
1836       file_ptr rel_filepos;
1837
1838       /* File position of line data.  */
1839       file_ptr line_filepos;
1840
1841       /* Pointer to data for applications.  */
1842       void *userdata;
1843
1844       /* If the SEC_IN_MEMORY flag is set, this points to the actual
1845          contents.  */
1846       unsigned char *contents;
1847
1848       /* Attached line number information.  */
1849       alent *lineno;
1850
1851       /* Number of line number records.  */
1852       unsigned int lineno_count;
1853
1854       /* Entity size for merging purposes.  */
1855       unsigned int entsize;
1856
1857       /* Points to the kept section if this section is a link-once section,
1858          and is discarded.  */
1859       struct bfd_section *kept_section;
1860
1861       /* When a section is being output, this value changes as more
1862          linenumbers are written out.  */
1863       file_ptr moving_line_filepos;
1864
1865       /* What the section number is in the target world.  */
1866       int target_index;
1867
1868       void *used_by_bfd;
1869
1870       /* If this is a constructor section then here is a list of the
1871          relocations created to relocate items within it.  */
1872       struct relent_chain *constructor_chain;
1873
1874       /* The BFD which owns the section.  */
1875       bfd *owner;
1876
1877       /* A symbol which points at this section only.  */
1878       struct bfd_symbol *symbol;
1879       struct bfd_symbol **symbol_ptr_ptr;
1880
1881       /* Early in the link process, map_head and map_tail are used to build
1882          a list of input sections attached to an output section.  Later,
1883          output sections use these fields for a list of bfd_link_order
1884          structs.  */
1885       union {
1886         struct bfd_link_order *link_order;
1887         struct bfd_section *s;
1888       } map_head, map_tail;
1889     } asection;
1890
1891     /* Relax table contains information about instructions which can
1892        be removed by relaxation -- replacing a long address with a
1893        short address.  */
1894     struct relax_table {
1895       /* Address where bytes may be deleted. */
1896       bfd_vma addr;
1897
1898       /* Number of bytes to be deleted.  */
1899       int size;
1900     };
1901
1902     /* Note: the following are provided as inline functions rather than macros
1903        because not all callers use the return value.  A macro implementation
1904        would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
1905        compilers will complain about comma expressions that have no effect.  */
1906     static inline bfd_boolean
1907     bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
1908     {
1909       ptr->userdata = val;
1910       return TRUE;
1911     }
1912
1913     static inline bfd_boolean
1914     bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
1915     {
1916       ptr->vma = ptr->lma = val;
1917       ptr->user_set_vma = TRUE;
1918       return TRUE;
1919     }
1920
1921     static inline bfd_boolean
1922     bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
1923     {
1924       ptr->alignment_power = val;
1925       return TRUE;
1926     }
1927
1928     /* These sections are global, and are managed by BFD.  The application
1929        and target back end are not permitted to change the values in
1930        these sections.  */
1931     extern asection _bfd_std_section[4];
1932
1933     #define BFD_ABS_SECTION_NAME "*ABS*"
1934     #define BFD_UND_SECTION_NAME "*UND*"
1935     #define BFD_COM_SECTION_NAME "*COM*"
1936     #define BFD_IND_SECTION_NAME "*IND*"
1937
1938     /* Pointer to the common section.  */
1939     #define bfd_com_section_ptr (&_bfd_std_section[0])
1940     /* Pointer to the undefined section.  */
1941     #define bfd_und_section_ptr (&_bfd_std_section[1])
1942     /* Pointer to the absolute section.  */
1943     #define bfd_abs_section_ptr (&_bfd_std_section[2])
1944     /* Pointer to the indirect section.  */
1945     #define bfd_ind_section_ptr (&_bfd_std_section[3])
1946
1947     #define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
1948     #define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
1949     #define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
1950
1951     #define bfd_is_const_section(SEC)              \
1952      (   ((SEC) == bfd_abs_section_ptr)            \
1953       || ((SEC) == bfd_und_section_ptr)            \
1954       || ((SEC) == bfd_com_section_ptr)            \
1955       || ((SEC) == bfd_ind_section_ptr))
1956
1957     /* Macros to handle insertion and deletion of a bfd's sections.  These
1958        only handle the list pointers, ie. do not adjust section_count,
1959        target_index etc.  */
1960     #define bfd_section_list_remove(ABFD, S) \
1961       do                                                   \
1962         {                                                  \
1963           asection *_s = S;                                \
1964           asection *_next = _s->next;                      \
1965           asection *_prev = _s->prev;                      \
1966           if (_prev)                                       \
1967             _prev->next = _next;                           \
1968           else                                             \
1969             (ABFD)->sections = _next;                      \
1970           if (_next)                                       \
1971             _next->prev = _prev;                           \
1972           else                                             \
1973             (ABFD)->section_last = _prev;                  \
1974         }                                                  \
1975       while (0)
1976     #define bfd_section_list_append(ABFD, S) \
1977       do                                                   \
1978         {                                                  \
1979           asection *_s = S;                                \
1980           bfd *_abfd = ABFD;                               \
1981           _s->next = NULL;                                 \
1982           if (_abfd->section_last)                         \
1983             {                                              \
1984               _s->prev = _abfd->section_last;              \
1985               _abfd->section_last->next = _s;              \
1986             }                                              \
1987           else                                             \
1988             {                                              \
1989               _s->prev = NULL;                             \
1990               _abfd->sections = _s;                        \
1991             }                                              \
1992           _abfd->section_last = _s;                        \
1993         }                                                  \
1994       while (0)
1995     #define bfd_section_list_prepend(ABFD, S) \
1996       do                                                   \
1997         {                                                  \
1998           asection *_s = S;                                \
1999           bfd *_abfd = ABFD;                               \
2000           _s->prev = NULL;                                 \
2001           if (_abfd->sections)                             \
2002             {                                              \
2003               _s->next = _abfd->sections;                  \
2004               _abfd->sections->prev = _s;                  \
2005             }                                              \
2006           else                                             \
2007             {                                              \
2008               _s->next = NULL;                             \
2009               _abfd->section_last = _s;                    \
2010             }                                              \
2011           _abfd->sections = _s;                            \
2012         }                                                  \
2013       while (0)
2014     #define bfd_section_list_insert_after(ABFD, A, S) \
2015       do                                                   \
2016         {                                                  \
2017           asection *_a = A;                                \
2018           asection *_s = S;                                \
2019           asection *_next = _a->next;                      \
2020           _s->next = _next;                                \
2021           _s->prev = _a;                                   \
2022           _a->next = _s;                                   \
2023           if (_next)                                       \
2024             _next->prev = _s;                              \
2025           else                                             \
2026             (ABFD)->section_last = _s;                     \
2027         }                                                  \
2028       while (0)
2029     #define bfd_section_list_insert_before(ABFD, B, S) \
2030       do                                                   \
2031         {                                                  \
2032           asection *_b = B;                                \
2033           asection *_s = S;                                \
2034           asection *_prev = _b->prev;                      \
2035           _s->prev = _prev;                                \
2036           _s->next = _b;                                   \
2037           _b->prev = _s;                                   \
2038           if (_prev)                                       \
2039             _prev->next = _s;                              \
2040           else                                             \
2041             (ABFD)->sections = _s;                         \
2042         }                                                  \
2043       while (0)
2044     #define bfd_section_removed_from_list(ABFD, S) \
2045       ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
2046
2047     #define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX)                   \
2048       /* name, id,  index, next, prev, flags, user_set_vma,            */  \
2049       { NAME,  IDX, 0,     NULL, NULL, FLAGS, 0,                           \
2050                                                                            \
2051       /* linker_mark, linker_has_input, gc_mark, decompress_status,    */  \
2052          0,           0,                1,       0,                        \
2053                                                                            \
2054       /* segment_mark, sec_info_type, use_rela_p,                      */  \
2055          0,            0,             0,                                   \
2056                                                                            \
2057       /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5,   */  \
2058          0,        0,        0,        0,        0,        0,              \
2059                                                                            \
2060       /* vma, lma, size, rawsize, compressed_size, relax, relax_count, */  \
2061          0,   0,   0,    0,       0,               0,     0,               \
2062                                                                            \
2063       /* output_offset, output_section, alignment_power,               */  \
2064          0,             &SEC,           0,                                 \
2065                                                                            \
2066       /* relocation, orelocation, reloc_count, filepos, rel_filepos,   */  \
2067          NULL,       NULL,        0,           0,       0,                 \
2068                                                                            \
2069       /* line_filepos, userdata, contents, lineno, lineno_count,       */  \
2070          0,            NULL,     NULL,     NULL,   0,                      \
2071                                                                            \
2072       /* entsize, kept_section, moving_line_filepos,                    */ \
2073          0,       NULL,          0,                                        \
2074                                                                            \
2075       /* target_index, used_by_bfd, constructor_chain, owner,          */  \
2076          0,            NULL,        NULL,              NULL,               \
2077                                                                            \
2078       /* symbol,                    symbol_ptr_ptr,                    */  \
2079          (struct bfd_symbol *) SYM, &SEC.symbol,                           \
2080                                                                            \
2081       /* map_head, map_tail                                            */  \
2082          { NULL }, { NULL }                                                \
2083         }
2084
2085
2086File: bfd.info,  Node: section prototypes,  Prev: typedef asection,  Up: Sections
2087
20882.6.5 Section prototypes
2089------------------------
2090
2091These are the functions exported by the section handling part of BFD.
2092
20932.6.5.1 `bfd_section_list_clear'
2094................................
2095
2096*Synopsis*
2097     void bfd_section_list_clear (bfd *);
2098   *Description*
2099Clears the section list, and also resets the section count and hash
2100table entries.
2101
21022.6.5.2 `bfd_get_section_by_name'
2103.................................
2104
2105*Synopsis*
2106     asection *bfd_get_section_by_name (bfd *abfd, const char *name);
2107   *Description*
2108Return the most recently created section attached to ABFD named NAME.
2109Return NULL if no such section exists.
2110
21112.6.5.3 `bfd_get_next_section_by_name'
2112......................................
2113
2114*Synopsis*
2115     asection *bfd_get_next_section_by_name (bfd *ibfd, asection *sec);
2116   *Description*
2117Given SEC is a section returned by `bfd_get_section_by_name', return
2118the next most recently created section attached to the same BFD with
2119the same name, or if no such section exists in the same BFD and IBFD is
2120non-NULL, the next section with the same name in any input BFD
2121following IBFD.  Return NULL on finding no section.
2122
21232.6.5.4 `bfd_get_linker_section'
2124................................
2125
2126*Synopsis*
2127     asection *bfd_get_linker_section (bfd *abfd, const char *name);
2128   *Description*
2129Return the linker created section attached to ABFD named NAME.  Return
2130NULL if no such section exists.
2131
21322.6.5.5 `bfd_get_section_by_name_if'
2133....................................
2134
2135*Synopsis*
2136     asection *bfd_get_section_by_name_if
2137        (bfd *abfd,
2138         const char *name,
2139         bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
2140         void *obj);
2141   *Description*
2142Call the provided function FUNC for each section attached to the BFD
2143ABFD whose name matches NAME, passing OBJ as an argument. The function
2144will be called as if by
2145
2146            func (abfd, the_section, obj);
2147
2148   It returns the first section for which FUNC returns true, otherwise
2149`NULL'.
2150
21512.6.5.6 `bfd_get_unique_section_name'
2152.....................................
2153
2154*Synopsis*
2155     char *bfd_get_unique_section_name
2156        (bfd *abfd, const char *templat, int *count);
2157   *Description*
2158Invent a section name that is unique in ABFD by tacking a dot and a
2159digit suffix onto the original TEMPLAT.  If COUNT is non-NULL, then it
2160specifies the first number tried as a suffix to generate a unique name.
2161The value pointed to by COUNT will be incremented in this case.
2162
21632.6.5.7 `bfd_make_section_old_way'
2164..................................
2165
2166*Synopsis*
2167     asection *bfd_make_section_old_way (bfd *abfd, const char *name);
2168   *Description*
2169Create a new empty section called NAME and attach it to the end of the
2170chain of sections for the BFD ABFD. An attempt to create a section with
2171a name which is already in use returns its pointer without changing the
2172section chain.
2173
2174   It has the funny name since this is the way it used to be before it
2175was rewritten....
2176
2177   Possible errors are:
2178   * `bfd_error_invalid_operation' - If output has already started for
2179     this BFD.
2180
2181   * `bfd_error_no_memory' - If memory allocation fails.
2182
21832.6.5.8 `bfd_make_section_anyway_with_flags'
2184............................................
2185
2186*Synopsis*
2187     asection *bfd_make_section_anyway_with_flags
2188        (bfd *abfd, const char *name, flagword flags);
2189   *Description*
2190Create a new empty section called NAME and attach it to the end of the
2191chain of sections for ABFD.  Create a new section even if there is
2192already a section with that name.  Also set the attributes of the new
2193section to the value FLAGS.
2194
2195   Return `NULL' and set `bfd_error' on error; possible errors are:
2196   * `bfd_error_invalid_operation' - If output has already started for
2197     ABFD.
2198
2199   * `bfd_error_no_memory' - If memory allocation fails.
2200
22012.6.5.9 `bfd_make_section_anyway'
2202.................................
2203
2204*Synopsis*
2205     asection *bfd_make_section_anyway (bfd *abfd, const char *name);
2206   *Description*
2207Create a new empty section called NAME and attach it to the end of the
2208chain of sections for ABFD.  Create a new section even if there is
2209already a section with that name.
2210
2211   Return `NULL' and set `bfd_error' on error; possible errors are:
2212   * `bfd_error_invalid_operation' - If output has already started for
2213     ABFD.
2214
2215   * `bfd_error_no_memory' - If memory allocation fails.
2216
22172.6.5.10 `bfd_make_section_with_flags'
2218......................................
2219
2220*Synopsis*
2221     asection *bfd_make_section_with_flags
2222        (bfd *, const char *name, flagword flags);
2223   *Description*
2224Like `bfd_make_section_anyway', but return `NULL' (without calling
2225bfd_set_error ()) without changing the section chain if there is
2226already a section named NAME.  Also set the attributes of the new
2227section to the value FLAGS.  If there is an error, return `NULL' and set
2228`bfd_error'.
2229
22302.6.5.11 `bfd_make_section'
2231...........................
2232
2233*Synopsis*
2234     asection *bfd_make_section (bfd *, const char *name);
2235   *Description*
2236Like `bfd_make_section_anyway', but return `NULL' (without calling
2237bfd_set_error ()) without changing the section chain if there is
2238already a section named NAME.  If there is an error, return `NULL' and
2239set `bfd_error'.
2240
22412.6.5.12 `bfd_get_next_section_id'
2242..................................
2243
2244*Synopsis*
2245     int bfd_get_next_section_id (void);
2246   *Description*
2247Returns the id that the next section created will have.
2248
22492.6.5.13 `bfd_set_section_flags'
2250................................
2251
2252*Synopsis*
2253     bfd_boolean bfd_set_section_flags
2254        (bfd *abfd, asection *sec, flagword flags);
2255   *Description*
2256Set the attributes of the section SEC in the BFD ABFD to the value
2257FLAGS. Return `TRUE' on success, `FALSE' on error. Possible error
2258returns are:
2259
2260   * `bfd_error_invalid_operation' - The section cannot have one or
2261     more of the attributes requested. For example, a .bss section in
2262     `a.out' may not have the `SEC_HAS_CONTENTS' field set.
2263
22642.6.5.14 `bfd_rename_section'
2265.............................
2266
2267*Synopsis*
2268     void bfd_rename_section
2269        (bfd *abfd, asection *sec, const char *newname);
2270   *Description*
2271Rename section SEC in ABFD to NEWNAME.
2272
22732.6.5.15 `bfd_map_over_sections'
2274................................
2275
2276*Synopsis*
2277     void bfd_map_over_sections
2278        (bfd *abfd,
2279         void (*func) (bfd *abfd, asection *sect, void *obj),
2280         void *obj);
2281   *Description*
2282Call the provided function FUNC for each section attached to the BFD
2283ABFD, passing OBJ as an argument. The function will be called as if by
2284
2285            func (abfd, the_section, obj);
2286
2287   This is the preferred method for iterating over sections; an
2288alternative would be to use a loop:
2289
2290               asection *p;
2291               for (p = abfd->sections; p != NULL; p = p->next)
2292                  func (abfd, p, ...)
2293
22942.6.5.16 `bfd_sections_find_if'
2295...............................
2296
2297*Synopsis*
2298     asection *bfd_sections_find_if
2299        (bfd *abfd,
2300         bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
2301         void *obj);
2302   *Description*
2303Call the provided function OPERATION for each section attached to the
2304BFD ABFD, passing OBJ as an argument. The function will be called as if
2305by
2306
2307            operation (abfd, the_section, obj);
2308
2309   It returns the first section for which OPERATION returns true.
2310
23112.6.5.17 `bfd_set_section_size'
2312...............................
2313
2314*Synopsis*
2315     bfd_boolean bfd_set_section_size
2316        (bfd *abfd, asection *sec, bfd_size_type val);
2317   *Description*
2318Set SEC to the size VAL. If the operation is ok, then `TRUE' is
2319returned, else `FALSE'.
2320
2321   Possible error returns:
2322   * `bfd_error_invalid_operation' - Writing has started to the BFD, so
2323     setting the size is invalid.
2324
23252.6.5.18 `bfd_set_section_contents'
2326...................................
2327
2328*Synopsis*
2329     bfd_boolean bfd_set_section_contents
2330        (bfd *abfd, asection *section, const void *data,
2331         file_ptr offset, bfd_size_type count);
2332   *Description*
2333Sets the contents of the section SECTION in BFD ABFD to the data
2334starting in memory at DATA. The data is written to the output section
2335starting at offset OFFSET for COUNT octets.
2336
2337   Normally `TRUE' is returned, else `FALSE'. Possible error returns
2338are:
2339   * `bfd_error_no_contents' - The output section does not have the
2340     `SEC_HAS_CONTENTS' attribute, so nothing can be written to it.
2341
2342   * and some more too
2343   This routine is front end to the back end function
2344`_bfd_set_section_contents'.
2345
23462.6.5.19 `bfd_get_section_contents'
2347...................................
2348
2349*Synopsis*
2350     bfd_boolean bfd_get_section_contents
2351        (bfd *abfd, asection *section, void *location, file_ptr offset,
2352         bfd_size_type count);
2353   *Description*
2354Read data from SECTION in BFD ABFD into memory starting at LOCATION.
2355The data is read at an offset of OFFSET from the start of the input
2356section, and is read for COUNT bytes.
2357
2358   If the contents of a constructor with the `SEC_CONSTRUCTOR' flag set
2359are requested or if the section does not have the `SEC_HAS_CONTENTS'
2360flag set, then the LOCATION is filled with zeroes. If no errors occur,
2361`TRUE' is returned, else `FALSE'.
2362
23632.6.5.20 `bfd_malloc_and_get_section'
2364.....................................
2365
2366*Synopsis*
2367     bfd_boolean bfd_malloc_and_get_section
2368        (bfd *abfd, asection *section, bfd_byte **buf);
2369   *Description*
2370Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by
2371this function.
2372
23732.6.5.21 `bfd_copy_private_section_data'
2374........................................
2375
2376*Synopsis*
2377     bfd_boolean bfd_copy_private_section_data
2378        (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
2379   *Description*
2380Copy private section information from ISEC in the BFD IBFD to the
2381section OSEC in the BFD OBFD.  Return `TRUE' on success, `FALSE' on
2382error.  Possible error returns are:
2383
2384   * `bfd_error_no_memory' - Not enough memory exists to create private
2385     data for OSEC.
2386
2387     #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
2388          BFD_SEND (obfd, _bfd_copy_private_section_data, \
2389                    (ibfd, isection, obfd, osection))
2390
23912.6.5.22 `bfd_generic_is_group_section'
2392.......................................
2393
2394*Synopsis*
2395     bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
2396   *Description*
2397Returns TRUE if SEC is a member of a group.
2398
23992.6.5.23 `bfd_generic_discard_group'
2400....................................
2401
2402*Synopsis*
2403     bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
2404   *Description*
2405Remove all members of GROUP from the output.
2406
2407
2408File: bfd.info,  Node: Symbols,  Next: Archives,  Prev: Sections,  Up: BFD front end
2409
24102.7 Symbols
2411===========
2412
2413BFD tries to maintain as much symbol information as it can when it
2414moves information from file to file. BFD passes information to
2415applications though the `asymbol' structure. When the application
2416requests the symbol table, BFD reads the table in the native form and
2417translates parts of it into the internal format. To maintain more than
2418the information passed to applications, some targets keep some
2419information "behind the scenes" in a structure only the particular back
2420end knows about. For example, the coff back end keeps the original
2421symbol table structure as well as the canonical structure when a BFD is
2422read in. On output, the coff back end can reconstruct the output symbol
2423table so that no information is lost, even information unique to coff
2424which BFD doesn't know or understand. If a coff symbol table were read,
2425but were written through an a.out back end, all the coff specific
2426information would be lost. The symbol table of a BFD is not necessarily
2427read in until a canonicalize request is made. Then the BFD back end
2428fills in a table provided by the application with pointers to the
2429canonical information.  To output symbols, the application provides BFD
2430with a table of pointers to pointers to `asymbol's. This allows
2431applications like the linker to output a symbol as it was read, since
2432the "behind the scenes" information will be still available.
2433
2434* Menu:
2435
2436* Reading Symbols::
2437* Writing Symbols::
2438* Mini Symbols::
2439* typedef asymbol::
2440* symbol handling functions::
2441
2442
2443File: bfd.info,  Node: Reading Symbols,  Next: Writing Symbols,  Prev: Symbols,  Up: Symbols
2444
24452.7.1 Reading symbols
2446---------------------
2447
2448There are two stages to reading a symbol table from a BFD: allocating
2449storage, and the actual reading process. This is an excerpt from an
2450application which reads the symbol table:
2451
2452              long storage_needed;
2453              asymbol **symbol_table;
2454              long number_of_symbols;
2455              long i;
2456
2457              storage_needed = bfd_get_symtab_upper_bound (abfd);
2458
2459              if (storage_needed < 0)
2460                FAIL
2461
2462              if (storage_needed == 0)
2463                return;
2464
2465              symbol_table = xmalloc (storage_needed);
2466                ...
2467              number_of_symbols =
2468                 bfd_canonicalize_symtab (abfd, symbol_table);
2469
2470              if (number_of_symbols < 0)
2471                FAIL
2472
2473              for (i = 0; i < number_of_symbols; i++)
2474                process_symbol (symbol_table[i]);
2475
2476   All storage for the symbols themselves is in an objalloc connected
2477to the BFD; it is freed when the BFD is closed.
2478
2479
2480File: bfd.info,  Node: Writing Symbols,  Next: Mini Symbols,  Prev: Reading Symbols,  Up: Symbols
2481
24822.7.2 Writing symbols
2483---------------------
2484
2485Writing of a symbol table is automatic when a BFD open for writing is
2486closed. The application attaches a vector of pointers to pointers to
2487symbols to the BFD being written, and fills in the symbol count. The
2488close and cleanup code reads through the table provided and performs
2489all the necessary operations. The BFD output code must always be
2490provided with an "owned" symbol: one which has come from another BFD,
2491or one which has been created using `bfd_make_empty_symbol'.  Here is an
2492example showing the creation of a symbol table with only one element:
2493
2494            #include "sysdep.h"
2495            #include "bfd.h"
2496            int main (void)
2497            {
2498              bfd *abfd;
2499              asymbol *ptrs[2];
2500              asymbol *new;
2501
2502              abfd = bfd_openw ("foo","a.out-sunos-big");
2503              bfd_set_format (abfd, bfd_object);
2504              new = bfd_make_empty_symbol (abfd);
2505              new->name = "dummy_symbol";
2506              new->section = bfd_make_section_old_way (abfd, ".text");
2507              new->flags = BSF_GLOBAL;
2508              new->value = 0x12345;
2509
2510              ptrs[0] = new;
2511              ptrs[1] = 0;
2512
2513              bfd_set_symtab (abfd, ptrs, 1);
2514              bfd_close (abfd);
2515              return 0;
2516            }
2517
2518            ./makesym
2519            nm foo
2520            00012345 A dummy_symbol
2521
2522   Many formats cannot represent arbitrary symbol information; for
2523instance, the `a.out' object format does not allow an arbitrary number
2524of sections. A symbol pointing to a section which is not one  of
2525`.text', `.data' or `.bss' cannot be described.
2526
2527
2528File: bfd.info,  Node: Mini Symbols,  Next: typedef asymbol,  Prev: Writing Symbols,  Up: Symbols
2529
25302.7.3 Mini Symbols
2531------------------
2532
2533Mini symbols provide read-only access to the symbol table.  They use
2534less memory space, but require more time to access.  They can be useful
2535for tools like nm or objdump, which may have to handle symbol tables of
2536extremely large executables.
2537
2538   The `bfd_read_minisymbols' function will read the symbols into
2539memory in an internal form.  It will return a `void *' pointer to a
2540block of memory, a symbol count, and the size of each symbol.  The
2541pointer is allocated using `malloc', and should be freed by the caller
2542when it is no longer needed.
2543
2544   The function `bfd_minisymbol_to_symbol' will take a pointer to a
2545minisymbol, and a pointer to a structure returned by
2546`bfd_make_empty_symbol', and return a `asymbol' structure.  The return
2547value may or may not be the same as the value from
2548`bfd_make_empty_symbol' which was passed in.
2549
2550
2551File: bfd.info,  Node: typedef asymbol,  Next: symbol handling functions,  Prev: Mini Symbols,  Up: Symbols
2552
25532.7.4 typedef asymbol
2554---------------------
2555
2556An `asymbol' has the form:
2557
2558
2559     typedef struct bfd_symbol
2560     {
2561       /* A pointer to the BFD which owns the symbol. This information
2562          is necessary so that a back end can work out what additional
2563          information (invisible to the application writer) is carried
2564          with the symbol.
2565
2566          This field is *almost* redundant, since you can use section->owner
2567          instead, except that some symbols point to the global sections
2568          bfd_{abs,com,und}_section.  This could be fixed by making
2569          these globals be per-bfd (or per-target-flavor).  FIXME.  */
2570       struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field.  */
2571
2572       /* The text of the symbol. The name is left alone, and not copied; the
2573          application may not alter it.  */
2574       const char *name;
2575
2576       /* The value of the symbol.  This really should be a union of a
2577          numeric value with a pointer, since some flags indicate that
2578          a pointer to another symbol is stored here.  */
2579       symvalue value;
2580
2581       /* Attributes of a symbol.  */
2582     #define BSF_NO_FLAGS           0x00
2583
2584       /* The symbol has local scope; `static' in `C'. The value
2585          is the offset into the section of the data.  */
2586     #define BSF_LOCAL              (1 << 0)
2587
2588       /* The symbol has global scope; initialized data in `C'. The
2589          value is the offset into the section of the data.  */
2590     #define BSF_GLOBAL             (1 << 1)
2591
2592       /* The symbol has global scope and is exported. The value is
2593          the offset into the section of the data.  */
2594     #define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
2595
2596       /* A normal C symbol would be one of:
2597          `BSF_LOCAL', `BSF_COMMON',  `BSF_UNDEFINED' or
2598          `BSF_GLOBAL'.  */
2599
2600       /* The symbol is a debugging record. The value has an arbitrary
2601          meaning, unless BSF_DEBUGGING_RELOC is also set.  */
2602     #define BSF_DEBUGGING          (1 << 2)
2603
2604       /* The symbol denotes a function entry point.  Used in ELF,
2605          perhaps others someday.  */
2606     #define BSF_FUNCTION           (1 << 3)
2607
2608       /* Used by the linker.  */
2609     #define BSF_KEEP               (1 << 5)
2610     #define BSF_KEEP_G             (1 << 6)
2611
2612       /* A weak global symbol, overridable without warnings by
2613          a regular global symbol of the same name.  */
2614     #define BSF_WEAK               (1 << 7)
2615
2616       /* This symbol was created to point to a section, e.g. ELF's
2617          STT_SECTION symbols.  */
2618     #define BSF_SECTION_SYM        (1 << 8)
2619
2620       /* The symbol used to be a common symbol, but now it is
2621          allocated.  */
2622     #define BSF_OLD_COMMON         (1 << 9)
2623
2624       /* In some files the type of a symbol sometimes alters its
2625          location in an output file - ie in coff a `ISFCN' symbol
2626          which is also `C_EXT' symbol appears where it was
2627          declared and not at the end of a section.  This bit is set
2628          by the target BFD part to convey this information.  */
2629     #define BSF_NOT_AT_END         (1 << 10)
2630
2631       /* Signal that the symbol is the label of constructor section.  */
2632     #define BSF_CONSTRUCTOR        (1 << 11)
2633
2634       /* Signal that the symbol is a warning symbol.  The name is a
2635          warning.  The name of the next symbol is the one to warn about;
2636          if a reference is made to a symbol with the same name as the next
2637          symbol, a warning is issued by the linker.  */
2638     #define BSF_WARNING            (1 << 12)
2639
2640       /* Signal that the symbol is indirect.  This symbol is an indirect
2641          pointer to the symbol with the same name as the next symbol.  */
2642     #define BSF_INDIRECT           (1 << 13)
2643
2644       /* BSF_FILE marks symbols that contain a file name.  This is used
2645          for ELF STT_FILE symbols.  */
2646     #define BSF_FILE               (1 << 14)
2647
2648       /* Symbol is from dynamic linking information.  */
2649     #define BSF_DYNAMIC            (1 << 15)
2650
2651       /* The symbol denotes a data object.  Used in ELF, and perhaps
2652          others someday.  */
2653     #define BSF_OBJECT             (1 << 16)
2654
2655       /* This symbol is a debugging symbol.  The value is the offset
2656          into the section of the data.  BSF_DEBUGGING should be set
2657          as well.  */
2658     #define BSF_DEBUGGING_RELOC    (1 << 17)
2659
2660       /* This symbol is thread local.  Used in ELF.  */
2661     #define BSF_THREAD_LOCAL       (1 << 18)
2662
2663       /* This symbol represents a complex relocation expression,
2664          with the expression tree serialized in the symbol name.  */
2665     #define BSF_RELC               (1 << 19)
2666
2667       /* This symbol represents a signed complex relocation expression,
2668          with the expression tree serialized in the symbol name.  */
2669     #define BSF_SRELC              (1 << 20)
2670
2671       /* This symbol was created by bfd_get_synthetic_symtab.  */
2672     #define BSF_SYNTHETIC          (1 << 21)
2673
2674       /* This symbol is an indirect code object.  Unrelated to BSF_INDIRECT.
2675          The dynamic linker will compute the value of this symbol by
2676          calling the function that it points to.  BSF_FUNCTION must
2677          also be also set.  */
2678     #define BSF_GNU_INDIRECT_FUNCTION (1 << 22)
2679       /* This symbol is a globally unique data object.  The dynamic linker
2680          will make sure that in the entire process there is just one symbol
2681          with this name and type in use.  BSF_OBJECT must also be set.  */
2682     #define BSF_GNU_UNIQUE         (1 << 23)
2683
2684       flagword flags;
2685
2686       /* A pointer to the section to which this symbol is
2687          relative.  This will always be non NULL, there are special
2688          sections for undefined and absolute symbols.  */
2689       struct bfd_section *section;
2690
2691       /* Back end special data.  */
2692       union
2693         {
2694           void *p;
2695           bfd_vma i;
2696         }
2697       udata;
2698     }
2699     asymbol;
2700
2701
2702File: bfd.info,  Node: symbol handling functions,  Prev: typedef asymbol,  Up: Symbols
2703
27042.7.5 Symbol handling functions
2705-------------------------------
2706
27072.7.5.1 `bfd_get_symtab_upper_bound'
2708....................................
2709
2710*Description*
2711Return the number of bytes required to store a vector of pointers to
2712`asymbols' for all the symbols in the BFD ABFD, including a terminal
2713NULL pointer. If there are no symbols in the BFD, then return 0.  If an
2714error occurs, return -1.
2715     #define bfd_get_symtab_upper_bound(abfd) \
2716          BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
2717
27182.7.5.2 `bfd_is_local_label'
2719............................
2720
2721*Synopsis*
2722     bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
2723   *Description*
2724Return TRUE if the given symbol SYM in the BFD ABFD is a compiler
2725generated local label, else return FALSE.
2726
27272.7.5.3 `bfd_is_local_label_name'
2728.................................
2729
2730*Synopsis*
2731     bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
2732   *Description*
2733Return TRUE if a symbol with the name NAME in the BFD ABFD is a
2734compiler generated local label, else return FALSE.  This just checks
2735whether the name has the form of a local label.
2736     #define bfd_is_local_label_name(abfd, name) \
2737       BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
2738
27392.7.5.4 `bfd_is_target_special_symbol'
2740......................................
2741
2742*Synopsis*
2743     bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
2744   *Description*
2745Return TRUE iff a symbol SYM in the BFD ABFD is something special to
2746the particular target represented by the BFD.  Such symbols should
2747normally not be mentioned to the user.
2748     #define bfd_is_target_special_symbol(abfd, sym) \
2749       BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
2750
27512.7.5.5 `bfd_canonicalize_symtab'
2752.................................
2753
2754*Description*
2755Read the symbols from the BFD ABFD, and fills in the vector LOCATION
2756with pointers to the symbols and a trailing NULL.  Return the actual
2757number of symbol pointers, not including the NULL.
2758     #define bfd_canonicalize_symtab(abfd, location) \
2759       BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
2760
27612.7.5.6 `bfd_set_symtab'
2762........................
2763
2764*Synopsis*
2765     bfd_boolean bfd_set_symtab
2766        (bfd *abfd, asymbol **location, unsigned int count);
2767   *Description*
2768Arrange that when the output BFD ABFD is closed, the table LOCATION of
2769COUNT pointers to symbols will be written.
2770
27712.7.5.7 `bfd_print_symbol_vandf'
2772................................
2773
2774*Synopsis*
2775     void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
2776   *Description*
2777Print the value and flags of the SYMBOL supplied to the stream FILE.
2778
27792.7.5.8 `bfd_make_empty_symbol'
2780...............................
2781
2782*Description*
2783Create a new `asymbol' structure for the BFD ABFD and return a pointer
2784to it.
2785
2786   This routine is necessary because each back end has private
2787information surrounding the `asymbol'. Building your own `asymbol' and
2788pointing to it will not create the private information, and will cause
2789problems later on.
2790     #define bfd_make_empty_symbol(abfd) \
2791       BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
2792
27932.7.5.9 `_bfd_generic_make_empty_symbol'
2794........................................
2795
2796*Synopsis*
2797     asymbol *_bfd_generic_make_empty_symbol (bfd *);
2798   *Description*
2799Create a new `asymbol' structure for the BFD ABFD and return a pointer
2800to it.  Used by core file routines, binary back-end and anywhere else
2801where no private info is needed.
2802
28032.7.5.10 `bfd_make_debug_symbol'
2804................................
2805
2806*Description*
2807Create a new `asymbol' structure for the BFD ABFD, to be used as a
2808debugging symbol.  Further details of its use have yet to be worked out.
2809     #define bfd_make_debug_symbol(abfd,ptr,size) \
2810       BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
2811
28122.7.5.11 `bfd_decode_symclass'
2813..............................
2814
2815*Description*
2816Return a character corresponding to the symbol class of SYMBOL, or '?'
2817for an unknown class.
2818
2819   *Synopsis*
2820     int bfd_decode_symclass (asymbol *symbol);
2821   
28222.7.5.12 `bfd_is_undefined_symclass'
2823....................................
2824
2825*Description*
2826Returns non-zero if the class symbol returned by bfd_decode_symclass
2827represents an undefined symbol.  Returns zero otherwise.
2828
2829   *Synopsis*
2830     bfd_boolean bfd_is_undefined_symclass (int symclass);
2831   
28322.7.5.13 `bfd_symbol_info'
2833..........................
2834
2835*Description*
2836Fill in the basic info about symbol that nm needs.  Additional info may
2837be added by the back-ends after calling this function.
2838
2839   *Synopsis*
2840     void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
2841   
28422.7.5.14 `bfd_copy_private_symbol_data'
2843.......................................
2844
2845*Synopsis*
2846     bfd_boolean bfd_copy_private_symbol_data
2847        (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
2848   *Description*
2849Copy private symbol information from ISYM in the BFD IBFD to the symbol
2850OSYM in the BFD OBFD.  Return `TRUE' on success, `FALSE' on error.
2851Possible error returns are:
2852
2853   * `bfd_error_no_memory' - Not enough memory exists to create private
2854     data for OSEC.
2855
2856     #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
2857       BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
2858                 (ibfd, isymbol, obfd, osymbol))
2859
2860
2861File: bfd.info,  Node: Archives,  Next: Formats,  Prev: Symbols,  Up: BFD front end
2862
28632.8 Archives
2864============
2865
2866*Description*
2867An archive (or library) is just another BFD.  It has a symbol table,
2868although there's not much a user program will do with it.
2869
2870   The big difference between an archive BFD and an ordinary BFD is
2871that the archive doesn't have sections.  Instead it has a chain of BFDs
2872that are considered its contents.  These BFDs can be manipulated like
2873any other.  The BFDs contained in an archive opened for reading will
2874all be opened for reading.  You may put either input or output BFDs
2875into an archive opened for output; they will be handled correctly when
2876the archive is closed.
2877
2878   Use `bfd_openr_next_archived_file' to step through the contents of
2879an archive opened for input.  You don't have to read the entire archive
2880if you don't want to!  Read it until you find what you want.
2881
2882   A BFD returned by `bfd_openr_next_archived_file' can be closed
2883manually with `bfd_close'.  If you do not close it, then a second
2884iteration through the members of an archive may return the same BFD.
2885If you close the archive BFD, then all the member BFDs will
2886automatically be closed as well.
2887
2888   Archive contents of output BFDs are chained through the
2889`archive_next' pointer in a BFD.  The first one is findable through the
2890`archive_head' slot of the archive.  Set it with `bfd_set_archive_head'
2891(q.v.).  A given BFD may be in only one open output archive at a time.
2892
2893   As expected, the BFD archive code is more general than the archive
2894code of any given environment.  BFD archives may contain files of
2895different formats (e.g., a.out and coff) and even different
2896architectures.  You may even place archives recursively into archives!
2897
2898   This can cause unexpected confusion, since some archive formats are
2899more expressive than others.  For instance, Intel COFF archives can
2900preserve long filenames; SunOS a.out archives cannot.  If you move a
2901file from the first to the second format and back again, the filename
2902may be truncated.  Likewise, different a.out environments have different
2903conventions as to how they truncate filenames, whether they preserve
2904directory names in filenames, etc.  When interoperating with native
2905tools, be sure your files are homogeneous.
2906
2907   Beware: most of these formats do not react well to the presence of
2908spaces in filenames.  We do the best we can, but can't always handle
2909this case due to restrictions in the format of archives.  Many Unix
2910utilities are braindead in regards to spaces and such in filenames
2911anyway, so this shouldn't be much of a restriction.
2912
2913   Archives are supported in BFD in `archive.c'.
2914
29152.8.1 Archive functions
2916-----------------------
2917
29182.8.1.1 `bfd_get_next_mapent'
2919.............................
2920
2921*Synopsis*
2922     symindex bfd_get_next_mapent
2923        (bfd *abfd, symindex previous, carsym **sym);
2924   *Description*
2925Step through archive ABFD's symbol table (if it has one).  Successively
2926update SYM with the next symbol's information, returning that symbol's
2927(internal) index into the symbol table.
2928
2929   Supply `BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first
2930one; returns `BFD_NO_MORE_SYMBOLS' when you've already got the last one.
2931
2932   A `carsym' is a canonical archive symbol.  The only user-visible
2933element is its name, a null-terminated string.
2934
29352.8.1.2 `bfd_set_archive_head'
2936..............................
2937
2938*Synopsis*
2939     bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
2940   *Description*
2941Set the head of the chain of BFDs contained in the archive OUTPUT to
2942NEW_HEAD.
2943
29442.8.1.3 `bfd_openr_next_archived_file'
2945......................................
2946
2947*Synopsis*
2948     bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
2949   *Description*
2950Provided a BFD, ARCHIVE, containing an archive and NULL, open an input
2951BFD on the first contained element and returns that.  Subsequent calls
2952should pass the archive and the previous return value to return a
2953created BFD to the next contained element. NULL is returned when there
2954are no more.
2955
2956
2957File: bfd.info,  Node: Formats,  Next: Relocations,  Prev: Archives,  Up: BFD front end
2958
29592.9 File formats
2960================
2961
2962A format is a BFD concept of high level file contents type. The formats
2963supported by BFD are:
2964
2965   * `bfd_object'
2966   The BFD may contain data, symbols, relocations and debug info.
2967
2968   * `bfd_archive'
2969   The BFD contains other BFDs and an optional index.
2970
2971   * `bfd_core'
2972   The BFD contains the result of an executable core dump.
2973
29742.9.1 File format functions
2975---------------------------
2976
29772.9.1.1 `bfd_check_format'
2978..........................
2979
2980*Synopsis*
2981     bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
2982   *Description*
2983Verify if the file attached to the BFD ABFD is compatible with the
2984format FORMAT (i.e., one of `bfd_object', `bfd_archive' or `bfd_core').
2985
2986   If the BFD has been set to a specific target before the call, only
2987the named target and format combination is checked. If the target has
2988not been set, or has been set to `default', then all the known target
2989backends is interrogated to determine a match.  If the default target
2990matches, it is used.  If not, exactly one target must recognize the
2991file, or an error results.
2992
2993   The function returns `TRUE' on success, otherwise `FALSE' with one
2994of the following error codes:
2995
2996   * `bfd_error_invalid_operation' - if `format' is not one of
2997     `bfd_object', `bfd_archive' or `bfd_core'.
2998
2999   * `bfd_error_system_call' - if an error occured during a read - even
3000     some file mismatches can cause bfd_error_system_calls.
3001
3002   * `file_not_recognised' - none of the backends recognised the file
3003     format.
3004
3005   * `bfd_error_file_ambiguously_recognized' - more than one backend
3006     recognised the file format.
3007
30082.9.1.2 `bfd_check_format_matches'
3009..................................
3010
3011*Synopsis*
3012     bfd_boolean bfd_check_format_matches
3013        (bfd *abfd, bfd_format format, char ***matching);
3014   *Description*
3015Like `bfd_check_format', except when it returns FALSE with `bfd_errno'
3016set to `bfd_error_file_ambiguously_recognized'.  In that case, if
3017MATCHING is not NULL, it will be filled in with a NULL-terminated list
3018of the names of the formats that matched, allocated with `malloc'.
3019Then the user may choose a format and try again.
3020
3021   When done with the list that MATCHING points to, the caller should
3022free it.
3023
30242.9.1.3 `bfd_set_format'
3025........................
3026
3027*Synopsis*
3028     bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
3029   *Description*
3030This function sets the file format of the BFD ABFD to the format
3031FORMAT. If the target set in the BFD does not support the format
3032requested, the format is invalid, or the BFD is not open for writing,
3033then an error occurs.
3034
30352.9.1.4 `bfd_format_string'
3036...........................
3037
3038*Synopsis*
3039     const char *bfd_format_string (bfd_format format);
3040   *Description*
3041Return a pointer to a const string `invalid', `object', `archive',
3042`core', or `unknown', depending upon the value of FORMAT.
3043
3044
3045File: bfd.info,  Node: Relocations,  Next: Core Files,  Prev: Formats,  Up: BFD front end
3046
30472.10 Relocations
3048================
3049
3050BFD maintains relocations in much the same way it maintains symbols:
3051they are left alone until required, then read in en-masse and
3052translated into an internal form.  A common routine
3053`bfd_perform_relocation' acts upon the canonical form to do the fixup.
3054
3055   Relocations are maintained on a per section basis, while symbols are
3056maintained on a per BFD basis.
3057
3058   All that a back end has to do to fit the BFD interface is to create
3059a `struct reloc_cache_entry' for each relocation in a particular
3060section, and fill in the right bits of the structures.
3061
3062* Menu:
3063
3064* typedef arelent::
3065* howto manager::
3066
3067
3068File: bfd.info,  Node: typedef arelent,  Next: howto manager,  Prev: Relocations,  Up: Relocations
3069
30702.10.1 typedef arelent
3071----------------------
3072
3073This is the structure of a relocation entry:
3074
3075
3076     typedef enum bfd_reloc_status
3077     {
3078       /* No errors detected.  */
3079       bfd_reloc_ok,
3080
3081       /* The relocation was performed, but there was an overflow.  */
3082       bfd_reloc_overflow,
3083
3084       /* The address to relocate was not within the section supplied.  */
3085       bfd_reloc_outofrange,
3086
3087       /* Used by special functions.  */
3088       bfd_reloc_continue,
3089
3090       /* Unsupported relocation size requested.  */
3091       bfd_reloc_notsupported,
3092
3093       /* Unused.  */
3094       bfd_reloc_other,
3095
3096       /* The symbol to relocate against was undefined.  */
3097       bfd_reloc_undefined,
3098
3099       /* The relocation was performed, but may not be ok - presently
3100          generated only when linking i960 coff files with i960 b.out
3101          symbols.  If this type is returned, the error_message argument
3102          to bfd_perform_relocation will be set.  */
3103       bfd_reloc_dangerous
3104      }
3105      bfd_reloc_status_type;
3106
3107
3108     typedef struct reloc_cache_entry
3109     {
3110       /* A pointer into the canonical table of pointers.  */
3111       struct bfd_symbol **sym_ptr_ptr;
3112
3113       /* offset in section.  */
3114       bfd_size_type address;
3115
3116       /* addend for relocation value.  */
3117       bfd_vma addend;
3118
3119       /* Pointer to how to perform the required relocation.  */
3120       reloc_howto_type *howto;
3121
3122     }
3123     arelent;
3124   *Description*
3125Here is a description of each of the fields within an `arelent':
3126
3127   * `sym_ptr_ptr'
3128   The symbol table pointer points to a pointer to the symbol
3129associated with the relocation request.  It is the pointer into the
3130table returned by the back end's `canonicalize_symtab' action. *Note
3131Symbols::. The symbol is referenced through a pointer to a pointer so
3132that tools like the linker can fix up all the symbols of the same name
3133by modifying only one pointer. The relocation routine looks in the
3134symbol and uses the base of the section the symbol is attached to and
3135the value of the symbol as the initial relocation offset. If the symbol
3136pointer is zero, then the section provided is looked up.
3137
3138   * `address'
3139   The `address' field gives the offset in bytes from the base of the
3140section data which owns the relocation record to the first byte of
3141relocatable information. The actual data relocated will be relative to
3142this point; for example, a relocation type which modifies the bottom
3143two bytes of a four byte word would not touch the first byte pointed to
3144in a big endian world.
3145
3146   * `addend'
3147   The `addend' is a value provided by the back end to be added (!)  to
3148the relocation offset. Its interpretation is dependent upon the howto.
3149For example, on the 68k the code:
3150
3151             char foo[];
3152             main()
3153                     {
3154                     return foo[0x12345678];
3155                     }
3156
3157   Could be compiled into:
3158
3159             linkw fp,#-4
3160             moveb @#12345678,d0
3161             extbl d0
3162             unlk fp
3163             rts
3164
3165   This could create a reloc pointing to `foo', but leave the offset in
3166the data, something like:
3167
3168     RELOCATION RECORDS FOR [.text]:
3169     offset   type      value
3170     00000006 32        _foo
3171
3172     00000000 4e56 fffc          ; linkw fp,#-4
3173     00000004 1039 1234 5678     ; moveb @#12345678,d0
3174     0000000a 49c0               ; extbl d0
3175     0000000c 4e5e               ; unlk fp
3176     0000000e 4e75               ; rts
3177
3178   Using coff and an 88k, some instructions don't have enough space in
3179them to represent the full address range, and pointers have to be
3180loaded in two parts. So you'd get something like:
3181
3182             or.u     r13,r0,hi16(_foo+0x12345678)
3183             ld.b     r2,r13,lo16(_foo+0x12345678)
3184             jmp      r1
3185
3186   This should create two relocs, both pointing to `_foo', and with
31870x12340000 in their addend field. The data would consist of:
3188
3189     RELOCATION RECORDS FOR [.text]:
3190     offset   type      value
3191     00000002 HVRT16    _foo+0x12340000
3192     00000006 LVRT16    _foo+0x12340000
3193
3194     00000000 5da05678           ; or.u r13,r0,0x5678
3195     00000004 1c4d5678           ; ld.b r2,r13,0x5678
3196     00000008 f400c001           ; jmp r1
3197
3198   The relocation routine digs out the value from the data, adds it to
3199the addend to get the original offset, and then adds the value of
3200`_foo'. Note that all 32 bits have to be kept around somewhere, to cope
3201with carry from bit 15 to bit 16.
3202
3203   One further example is the sparc and the a.out format. The sparc has
3204a similar problem to the 88k, in that some instructions don't have room
3205for an entire offset, but on the sparc the parts are created in odd
3206sized lumps. The designers of the a.out format chose to not use the
3207data within the section for storing part of the offset; all the offset
3208is kept within the reloc. Anything in the data should be ignored.
3209
3210             save %sp,-112,%sp
3211             sethi %hi(_foo+0x12345678),%g2
3212             ldsb [%g2+%lo(_foo+0x12345678)],%i0
3213             ret
3214             restore
3215
3216   Both relocs contain a pointer to `foo', and the offsets contain junk.
3217
3218     RELOCATION RECORDS FOR [.text]:
3219     offset   type      value
3220     00000004 HI22      _foo+0x12345678
3221     00000008 LO10      _foo+0x12345678
3222
3223     00000000 9de3bf90     ; save %sp,-112,%sp
3224     00000004 05000000     ; sethi %hi(_foo+0),%g2
3225     00000008 f048a000     ; ldsb [%g2+%lo(_foo+0)],%i0
3226     0000000c 81c7e008     ; ret
3227     00000010 81e80000     ; restore
3228
3229   * `howto'
3230   The `howto' field can be imagined as a relocation instruction. It is
3231a pointer to a structure which contains information on what to do with
3232all of the other information in the reloc record and data section. A
3233back end would normally have a relocation instruction set and turn
3234relocations into pointers to the correct structure on input - but it
3235would be possible to create each howto field on demand.
3236
32372.10.1.1 `enum complain_overflow'
3238.................................
3239
3240Indicates what sort of overflow checking should be done when performing
3241a relocation.
3242
3243
3244     enum complain_overflow
3245     {
3246       /* Do not complain on overflow.  */
3247       complain_overflow_dont,
3248
3249       /* Complain if the value overflows when considered as a signed
3250          number one bit larger than the field.  ie. A bitfield of N bits
3251          is allowed to represent -2**n to 2**n-1.  */
3252       complain_overflow_bitfield,
3253
3254       /* Complain if the value overflows when considered as a signed
3255          number.  */
3256       complain_overflow_signed,
3257
3258       /* Complain if the value overflows when considered as an
3259          unsigned number.  */
3260       complain_overflow_unsigned
3261     };
3262
32632.10.1.2 `reloc_howto_type'
3264...........................
3265
3266The `reloc_howto_type' is a structure which contains all the
3267information that libbfd needs to know to tie up a back end's data.
3268
3269     struct bfd_symbol;             /* Forward declaration.  */
3270
3271     struct reloc_howto_struct
3272     {
3273       /*  The type field has mainly a documentary use - the back end can
3274           do what it wants with it, though normally the back end's
3275           external idea of what a reloc number is stored
3276           in this field.  For example, a PC relative word relocation
3277           in a coff environment has the type 023 - because that's
3278           what the outside world calls a R_PCRWORD reloc.  */
3279       unsigned int type;
3280
3281       /*  The value the final relocation is shifted right by.  This drops
3282           unwanted data from the relocation.  */
3283       unsigned int rightshift;
3284
3285       /*  The size of the item to be relocated.  This is *not* a
3286           power-of-two measure.  To get the number of bytes operated
3287           on by a type of relocation, use bfd_get_reloc_size.  */
3288       int size;
3289
3290       /*  The number of bits in the item to be relocated.  This is used
3291           when doing overflow checking.  */
3292       unsigned int bitsize;
3293
3294       /*  The relocation is relative to the field being relocated.  */
3295       bfd_boolean pc_relative;
3296
3297       /*  The bit position of the reloc value in the destination.
3298           The relocated value is left shifted by this amount.  */
3299       unsigned int bitpos;
3300
3301       /* What type of overflow error should be checked for when
3302          relocating.  */
3303       enum complain_overflow complain_on_overflow;
3304
3305       /* If this field is non null, then the supplied function is
3306          called rather than the normal function.  This allows really
3307          strange relocation methods to be accommodated (e.g., i960 callj
3308          instructions).  */
3309       bfd_reloc_status_type (*special_function)
3310         (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
3311          bfd *, char **);
3312
3313       /* The textual name of the relocation type.  */
3314       char *name;
3315
3316       /* Some formats record a relocation addend in the section contents
3317          rather than with the relocation.  For ELF formats this is the
3318          distinction between USE_REL and USE_RELA (though the code checks
3319          for USE_REL == 1/0).  The value of this field is TRUE if the
3320          addend is recorded with the section contents; when performing a
3321          partial link (ld -r) the section contents (the data) will be
3322          modified.  The value of this field is FALSE if addends are
3323          recorded with the relocation (in arelent.addend); when performing
3324          a partial link the relocation will be modified.
3325          All relocations for all ELF USE_RELA targets should set this field
3326          to FALSE (values of TRUE should be looked on with suspicion).
3327          However, the converse is not true: not all relocations of all ELF
3328          USE_REL targets set this field to TRUE.  Why this is so is peculiar
3329          to each particular target.  For relocs that aren't used in partial
3330          links (e.g. GOT stuff) it doesn't matter what this is set to.  */
3331       bfd_boolean partial_inplace;
3332
3333       /* src_mask selects the part of the instruction (or data) to be used
3334          in the relocation sum.  If the target relocations don't have an
3335          addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
3336          dst_mask to extract the addend from the section contents.  If
3337          relocations do have an addend in the reloc, eg. ELF USE_RELA, this
3338          field should be zero.  Non-zero values for ELF USE_RELA targets are
3339          bogus as in those cases the value in the dst_mask part of the
3340          section contents should be treated as garbage.  */
3341       bfd_vma src_mask;
3342
3343       /* dst_mask selects which parts of the instruction (or data) are
3344          replaced with a relocated value.  */
3345       bfd_vma dst_mask;
3346
3347       /* When some formats create PC relative instructions, they leave
3348          the value of the pc of the place being relocated in the offset
3349          slot of the instruction, so that a PC relative relocation can
3350          be made just by adding in an ordinary offset (e.g., sun3 a.out).
3351          Some formats leave the displacement part of an instruction
3352          empty (e.g., m88k bcs); this flag signals the fact.  */
3353       bfd_boolean pcrel_offset;
3354     };
3355   
33562.10.1.3 `The HOWTO Macro'
3357..........................
3358
3359*Description*
3360The HOWTO define is horrible and will go away.
3361     #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
3362       { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
3363
3364   *Description*
3365And will be replaced with the totally magic way. But for the moment, we
3366are compatible, so do it this way.
3367     #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
3368       HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
3369              NAME, FALSE, 0, 0, IN)
3370
3371   *Description*
3372This is used to fill in an empty howto entry in an array.
3373     #define EMPTY_HOWTO(C) \
3374       HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
3375              NULL, FALSE, 0, 0, FALSE)
3376
3377   *Description*
3378Helper routine to turn a symbol into a relocation value.
3379     #define HOWTO_PREPARE(relocation, symbol)               \
3380       {                                                     \
3381         if (symbol != NULL)                                 \
3382           {                                                 \
3383             if (bfd_is_com_section (symbol->section))       \
3384               {                                             \
3385                 relocation = 0;                             \
3386               }                                             \
3387             else                                            \
3388               {                                             \
3389                 relocation = symbol->value;                 \
3390               }                                             \
3391           }                                                 \
3392       }
3393
33942.10.1.4 `bfd_get_reloc_size'
3395.............................
3396
3397*Synopsis*
3398     unsigned int bfd_get_reloc_size (reloc_howto_type *);
3399   *Description*
3400For a reloc_howto_type that operates on a fixed number of bytes, this
3401returns the number of bytes operated on.
3402
34032.10.1.5 `arelent_chain'
3404........................
3405
3406*Description*
3407How relocs are tied together in an `asection':
3408     typedef struct relent_chain
3409     {
3410       arelent relent;
3411       struct relent_chain *next;
3412     }
3413     arelent_chain;
3414
34152.10.1.6 `bfd_check_overflow'
3416.............................
3417
3418*Synopsis*
3419     bfd_reloc_status_type bfd_check_overflow
3420        (enum complain_overflow how,
3421         unsigned int bitsize,
3422         unsigned int rightshift,
3423         unsigned int addrsize,
3424         bfd_vma relocation);
3425   *Description*
3426Perform overflow checking on RELOCATION which has BITSIZE significant
3427bits and will be shifted right by RIGHTSHIFT bits, on a machine with
3428addresses containing ADDRSIZE significant bits.  The result is either of
3429`bfd_reloc_ok' or `bfd_reloc_overflow'.
3430
34312.10.1.7 `bfd_perform_relocation'
3432.................................
3433
3434*Synopsis*
3435     bfd_reloc_status_type bfd_perform_relocation
3436        (bfd *abfd,
3437         arelent *reloc_entry,
3438         void *data,
3439         asection *input_section,
3440         bfd *output_bfd,
3441         char **error_message);
3442   *Description*
3443If OUTPUT_BFD is supplied to this function, the generated image will be
3444relocatable; the relocations are copied to the output file after they
3445have been changed to reflect the new state of the world. There are two
3446ways of reflecting the results of partial linkage in an output file: by
3447modifying the output data in place, and by modifying the relocation
3448record.  Some native formats (e.g., basic a.out and basic coff) have no
3449way of specifying an addend in the relocation type, so the addend has
3450to go in the output data.  This is no big deal since in these formats
3451the output data slot will always be big enough for the addend. Complex
3452reloc types with addends were invented to solve just this problem.  The
3453ERROR_MESSAGE argument is set to an error message if this return
3454`bfd_reloc_dangerous'.
3455
34562.10.1.8 `bfd_install_relocation'
3457.................................
3458
3459*Synopsis*
3460     bfd_reloc_status_type bfd_install_relocation
3461        (bfd *abfd,
3462         arelent *reloc_entry,
3463         void *data, bfd_vma data_start,
3464         asection *input_section,
3465         char **error_message);
3466   *Description*
3467This looks remarkably like `bfd_perform_relocation', except it does not
3468expect that the section contents have been filled in.  I.e., it's
3469suitable for use when creating, rather than applying a relocation.
3470
3471   For now, this function should be considered reserved for the
3472assembler.
3473
3474
3475File: bfd.info,  Node: howto manager,  Prev: typedef arelent,  Up: Relocations
3476
34772.10.2 The howto manager
3478------------------------
3479
3480When an application wants to create a relocation, but doesn't know what
3481the target machine might call it, it can find out by using this bit of
3482code.
3483
34842.10.2.1 `bfd_reloc_code_type'
3485..............................
3486
3487*Description*
3488The insides of a reloc code.  The idea is that, eventually, there will
3489be one enumerator for every type of relocation we ever do.  Pass one of
3490these values to `bfd_reloc_type_lookup', and it'll return a howto
3491pointer.
3492
3493   This does mean that the application must determine the correct
3494enumerator value; you can't get a howto pointer from a random set of
3495attributes.
3496
3497   Here are the possible values for `enum bfd_reloc_code_real':
3498
3499 -- : BFD_RELOC_64
3500 -- : BFD_RELOC_32
3501 -- : BFD_RELOC_26
3502 -- : BFD_RELOC_24
3503 -- : BFD_RELOC_16
3504 -- : BFD_RELOC_14
3505 -- : BFD_RELOC_8
3506     Basic absolute relocations of N bits.
3507
3508 -- : BFD_RELOC_64_PCREL
3509 -- : BFD_RELOC_32_PCREL
3510 -- : BFD_RELOC_24_PCREL
3511 -- : BFD_RELOC_16_PCREL
3512 -- : BFD_RELOC_12_PCREL
3513 -- : BFD_RELOC_8_PCREL
3514     PC-relative relocations.  Sometimes these are relative to the
3515     address of the relocation itself; sometimes they are relative to
3516     the start of the section containing the relocation.  It depends on
3517     the specific target.
3518
3519     The 24-bit relocation is used in some Intel 960 configurations.
3520
3521 -- : BFD_RELOC_32_SECREL
3522     Section relative relocations.  Some targets need this for DWARF2.
3523
3524 -- : BFD_RELOC_32_GOT_PCREL
3525 -- : BFD_RELOC_16_GOT_PCREL
3526 -- : BFD_RELOC_8_GOT_PCREL
3527 -- : BFD_RELOC_32_GOTOFF
3528 -- : BFD_RELOC_16_GOTOFF
3529 -- : BFD_RELOC_LO16_GOTOFF
3530 -- : BFD_RELOC_HI16_GOTOFF
3531 -- : BFD_RELOC_HI16_S_GOTOFF
3532 -- : BFD_RELOC_8_GOTOFF
3533 -- : BFD_RELOC_64_PLT_PCREL
3534 -- : BFD_RELOC_32_PLT_PCREL
3535 -- : BFD_RELOC_24_PLT_PCREL
3536 -- : BFD_RELOC_16_PLT_PCREL
3537 -- : BFD_RELOC_8_PLT_PCREL
3538 -- : BFD_RELOC_64_PLTOFF
3539 -- : BFD_RELOC_32_PLTOFF
3540 -- : BFD_RELOC_16_PLTOFF
3541 -- : BFD_RELOC_LO16_PLTOFF
3542 -- : BFD_RELOC_HI16_PLTOFF
3543 -- : BFD_RELOC_HI16_S_PLTOFF
3544 -- : BFD_RELOC_8_PLTOFF
3545     For ELF.
3546
3547 -- : BFD_RELOC_SIZE32
3548 -- : BFD_RELOC_SIZE64
3549     Size relocations.
3550
3551 -- : BFD_RELOC_68K_GLOB_DAT
3552 -- : BFD_RELOC_68K_JMP_SLOT
3553 -- : BFD_RELOC_68K_RELATIVE
3554 -- : BFD_RELOC_68K_TLS_GD32
3555 -- : BFD_RELOC_68K_TLS_GD16
3556 -- : BFD_RELOC_68K_TLS_GD8
3557 -- : BFD_RELOC_68K_TLS_LDM32
3558 -- : BFD_RELOC_68K_TLS_LDM16
3559 -- : BFD_RELOC_68K_TLS_LDM8
3560 -- : BFD_RELOC_68K_TLS_LDO32
3561 -- : BFD_RELOC_68K_TLS_LDO16
3562 -- : BFD_RELOC_68K_TLS_LDO8
3563 -- : BFD_RELOC_68K_TLS_IE32
3564 -- : BFD_RELOC_68K_TLS_IE16
3565 -- : BFD_RELOC_68K_TLS_IE8
3566 -- : BFD_RELOC_68K_TLS_LE32
3567 -- : BFD_RELOC_68K_TLS_LE16
3568 -- : BFD_RELOC_68K_TLS_LE8
3569     Relocations used by 68K ELF.
3570
3571 -- : BFD_RELOC_32_BASEREL
3572 -- : BFD_RELOC_16_BASEREL
3573 -- : BFD_RELOC_LO16_BASEREL
3574 -- : BFD_RELOC_HI16_BASEREL
3575 -- : BFD_RELOC_HI16_S_BASEREL
3576 -- : BFD_RELOC_8_BASEREL
3577 -- : BFD_RELOC_RVA
3578     Linkage-table relative.
3579
3580 -- : BFD_RELOC_8_FFnn
3581     Absolute 8-bit relocation, but used to form an address like 0xFFnn.
3582
3583 -- : BFD_RELOC_32_PCREL_S2
3584 -- : BFD_RELOC_16_PCREL_S2
3585 -- : BFD_RELOC_23_PCREL_S2
3586     These PC-relative relocations are stored as word displacements -
3587     i.e., byte displacements shifted right two bits.  The 30-bit word
3588     displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the
3589     SPARC.  (SPARC tools generally refer to this as <<WDISP30>>.)  The
3590     signed 16-bit displacement is used on the MIPS, and the 23-bit
3591     displacement is used on the Alpha.
3592
3593 -- : BFD_RELOC_HI22
3594 -- : BFD_RELOC_LO10
3595     High 22 bits and low 10 bits of 32-bit value, placed into lower
3596     bits of the target word.  These are used on the SPARC.
3597
3598 -- : BFD_RELOC_GPREL16
3599 -- : BFD_RELOC_GPREL32
3600     For systems that allocate a Global Pointer register, these are
3601     displacements off that register.  These relocation types are
3602     handled specially, because the value the register will have is
3603     decided relatively late.
3604
3605 -- : BFD_RELOC_I960_CALLJ
3606     Reloc types used for i960/b.out.
3607
3608 -- : BFD_RELOC_NONE
3609 -- : BFD_RELOC_SPARC_WDISP22
3610 -- : BFD_RELOC_SPARC22
3611 -- : BFD_RELOC_SPARC13
3612 -- : BFD_RELOC_SPARC_GOT10
3613 -- : BFD_RELOC_SPARC_GOT13
3614 -- : BFD_RELOC_SPARC_GOT22
3615 -- : BFD_RELOC_SPARC_PC10
3616 -- : BFD_RELOC_SPARC_PC22
3617 -- : BFD_RELOC_SPARC_WPLT30
3618 -- : BFD_RELOC_SPARC_COPY
3619 -- : BFD_RELOC_SPARC_GLOB_DAT
3620 -- : BFD_RELOC_SPARC_JMP_SLOT
3621 -- : BFD_RELOC_SPARC_RELATIVE
3622 -- : BFD_RELOC_SPARC_UA16
3623 -- : BFD_RELOC_SPARC_UA32
3624 -- : BFD_RELOC_SPARC_UA64
3625 -- : BFD_RELOC_SPARC_GOTDATA_HIX22
3626 -- : BFD_RELOC_SPARC_GOTDATA_LOX10
3627 -- : BFD_RELOC_SPARC_GOTDATA_OP_HIX22
3628 -- : BFD_RELOC_SPARC_GOTDATA_OP_LOX10
3629 -- : BFD_RELOC_SPARC_GOTDATA_OP
3630 -- : BFD_RELOC_SPARC_JMP_IREL
3631 -- : BFD_RELOC_SPARC_IRELATIVE
3632     SPARC ELF relocations.  There is probably some overlap with other
3633     relocation types already defined.
3634
3635 -- : BFD_RELOC_SPARC_BASE13
3636 -- : BFD_RELOC_SPARC_BASE22
3637     I think these are specific to SPARC a.out (e.g., Sun 4).
3638
3639 -- : BFD_RELOC_SPARC_64
3640 -- : BFD_RELOC_SPARC_10
3641 -- : BFD_RELOC_SPARC_11
3642 -- : BFD_RELOC_SPARC_OLO10
3643 -- : BFD_RELOC_SPARC_HH22
3644 -- : BFD_RELOC_SPARC_HM10
3645 -- : BFD_RELOC_SPARC_LM22
3646 -- : BFD_RELOC_SPARC_PC_HH22
3647 -- : BFD_RELOC_SPARC_PC_HM10
3648 -- : BFD_RELOC_SPARC_PC_LM22
3649 -- : BFD_RELOC_SPARC_WDISP16
3650 -- : BFD_RELOC_SPARC_WDISP19
3651 -- : BFD_RELOC_SPARC_7
3652 -- : BFD_RELOC_SPARC_6
3653 -- : BFD_RELOC_SPARC_5
3654 -- : BFD_RELOC_SPARC_DISP64
3655 -- : BFD_RELOC_SPARC_PLT32
3656 -- : BFD_RELOC_SPARC_PLT64
3657 -- : BFD_RELOC_SPARC_HIX22
3658 -- : BFD_RELOC_SPARC_LOX10
3659 -- : BFD_RELOC_SPARC_H44
3660 -- : BFD_RELOC_SPARC_M44
3661 -- : BFD_RELOC_SPARC_L44
3662 -- : BFD_RELOC_SPARC_REGISTER
3663 -- : BFD_RELOC_SPARC_H34
3664 -- : BFD_RELOC_SPARC_SIZE32
3665 -- : BFD_RELOC_SPARC_SIZE64
3666 -- : BFD_RELOC_SPARC_WDISP10
3667     SPARC64 relocations
3668
3669 -- : BFD_RELOC_SPARC_REV32
3670     SPARC little endian relocation
3671
3672 -- : BFD_RELOC_SPARC_TLS_GD_HI22
3673 -- : BFD_RELOC_SPARC_TLS_GD_LO10
3674 -- : BFD_RELOC_SPARC_TLS_GD_ADD
3675 -- : BFD_RELOC_SPARC_TLS_GD_CALL
3676 -- : BFD_RELOC_SPARC_TLS_LDM_HI22
3677 -- : BFD_RELOC_SPARC_TLS_LDM_LO10
3678 -- : BFD_RELOC_SPARC_TLS_LDM_ADD
3679 -- : BFD_RELOC_SPARC_TLS_LDM_CALL
3680 -- : BFD_RELOC_SPARC_TLS_LDO_HIX22
3681 -- : BFD_RELOC_SPARC_TLS_LDO_LOX10
3682 -- : BFD_RELOC_SPARC_TLS_LDO_ADD
3683 -- : BFD_RELOC_SPARC_TLS_IE_HI22
3684 -- : BFD_RELOC_SPARC_TLS_IE_LO10
3685 -- : BFD_RELOC_SPARC_TLS_IE_LD
3686 -- : BFD_RELOC_SPARC_TLS_IE_LDX
3687 -- : BFD_RELOC_SPARC_TLS_IE_ADD
3688 -- : BFD_RELOC_SPARC_TLS_LE_HIX22
3689 -- : BFD_RELOC_SPARC_TLS_LE_LOX10
3690 -- : BFD_RELOC_SPARC_TLS_DTPMOD32
3691 -- : BFD_RELOC_SPARC_TLS_DTPMOD64
3692 -- : BFD_RELOC_SPARC_TLS_DTPOFF32
3693 -- : BFD_RELOC_SPARC_TLS_DTPOFF64
3694 -- : BFD_RELOC_SPARC_TLS_TPOFF32
3695 -- : BFD_RELOC_SPARC_TLS_TPOFF64
3696     SPARC TLS relocations
3697
3698 -- : BFD_RELOC_SPU_IMM7
3699 -- : BFD_RELOC_SPU_IMM8
3700 -- : BFD_RELOC_SPU_IMM10
3701 -- : BFD_RELOC_SPU_IMM10W
3702 -- : BFD_RELOC_SPU_IMM16
3703 -- : BFD_RELOC_SPU_IMM16W
3704 -- : BFD_RELOC_SPU_IMM18
3705 -- : BFD_RELOC_SPU_PCREL9a
3706 -- : BFD_RELOC_SPU_PCREL9b
3707 -- : BFD_RELOC_SPU_PCREL16
3708 -- : BFD_RELOC_SPU_LO16
3709 -- : BFD_RELOC_SPU_HI16
3710 -- : BFD_RELOC_SPU_PPU32
3711 -- : BFD_RELOC_SPU_PPU64
3712 -- : BFD_RELOC_SPU_ADD_PIC
3713     SPU Relocations.
3714
3715 -- : BFD_RELOC_ALPHA_GPDISP_HI16
3716     Alpha ECOFF and ELF relocations.  Some of these treat the symbol or
3717     "addend" in some special way.  For GPDISP_HI16 ("gpdisp")
3718     relocations, the symbol is ignored when writing; when reading, it
3719     will be the absolute section symbol.  The addend is the
3720     displacement in bytes of the "lda" instruction from the "ldah"
3721     instruction (which is at the address of this reloc).
3722
3723 -- : BFD_RELOC_ALPHA_GPDISP_LO16
3724     For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
3725     with GPDISP_HI16 relocs.  The addend is ignored when writing the
3726     relocations out, and is filled in with the file's GP value on
3727     reading, for convenience.
3728
3729 -- : BFD_RELOC_ALPHA_GPDISP
3730     The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
3731     relocation except that there is no accompanying GPDISP_LO16
3732     relocation.
3733
3734 -- : BFD_RELOC_ALPHA_LITERAL
3735 -- : BFD_RELOC_ALPHA_ELF_LITERAL
3736 -- : BFD_RELOC_ALPHA_LITUSE
3737     The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
3738     the assembler turns it into a LDQ instruction to load the address
3739     of the symbol, and then fills in a register in the real
3740     instruction.
3741
3742     The LITERAL reloc, at the LDQ instruction, refers to the .lita
3743     section symbol.  The addend is ignored when writing, but is filled
3744     in with the file's GP value on reading, for convenience, as with
3745     the GPDISP_LO16 reloc.
3746
3747     The ELF_LITERAL reloc is somewhere between 16_GOTOFF and
3748     GPDISP_LO16.  It should refer to the symbol to be referenced, as
3749     with 16_GOTOFF, but it generates output not based on the position
3750     within the .got section, but relative to the GP value chosen for
3751     the file during the final link stage.
3752
3753     The LITUSE reloc, on the instruction using the loaded address,
3754     gives information to the linker that it might be able to use to
3755     optimize away some literal section references.  The symbol is
3756     ignored (read as the absolute section symbol), and the "addend"
3757     indicates the type of instruction using the register: 1 - "memory"
3758     fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target
3759     of branch)
3760
3761 -- : BFD_RELOC_ALPHA_HINT
3762     The HINT relocation indicates a value that should be filled into
3763     the "hint" field of a jmp/jsr/ret instruction, for possible branch-
3764     prediction logic which may be provided on some processors.
3765
3766 -- : BFD_RELOC_ALPHA_LINKAGE
3767     The LINKAGE relocation outputs a linkage pair in the object file,
3768     which is filled by the linker.
3769
3770 -- : BFD_RELOC_ALPHA_CODEADDR
3771     The CODEADDR relocation outputs a STO_CA in the object file, which
3772     is filled by the linker.
3773
3774 -- : BFD_RELOC_ALPHA_GPREL_HI16
3775 -- : BFD_RELOC_ALPHA_GPREL_LO16
3776     The GPREL_HI/LO relocations together form a 32-bit offset from the
3777     GP register.
3778
3779 -- : BFD_RELOC_ALPHA_BRSGP
3780     Like BFD_RELOC_23_PCREL_S2, except that the source and target must
3781     share a common GP, and the target address is adjusted for
3782     STO_ALPHA_STD_GPLOAD.
3783
3784 -- : BFD_RELOC_ALPHA_NOP
3785     The NOP relocation outputs a NOP if the longword displacement
3786     between two procedure entry points is < 2^21.
3787
3788 -- : BFD_RELOC_ALPHA_BSR
3789     The BSR relocation outputs a BSR if the longword displacement
3790     between two procedure entry points is < 2^21.
3791
3792 -- : BFD_RELOC_ALPHA_LDA
3793     The LDA relocation outputs a LDA if the longword displacement
3794     between two procedure entry points is < 2^16.
3795
3796 -- : BFD_RELOC_ALPHA_BOH
3797     The BOH relocation outputs a BSR if the longword displacement
3798     between two procedure entry points is < 2^21, or else a hint.
3799
3800 -- : BFD_RELOC_ALPHA_TLSGD
3801 -- : BFD_RELOC_ALPHA_TLSLDM
3802 -- : BFD_RELOC_ALPHA_DTPMOD64
3803 -- : BFD_RELOC_ALPHA_GOTDTPREL16
3804 -- : BFD_RELOC_ALPHA_DTPREL64
3805 -- : BFD_RELOC_ALPHA_DTPREL_HI16
3806 -- : BFD_RELOC_ALPHA_DTPREL_LO16
3807 -- : BFD_RELOC_ALPHA_DTPREL16
3808 -- : BFD_RELOC_ALPHA_GOTTPREL16
3809 -- : BFD_RELOC_ALPHA_TPREL64
3810 -- : BFD_RELOC_ALPHA_TPREL_HI16
3811 -- : BFD_RELOC_ALPHA_TPREL_LO16
3812 -- : BFD_RELOC_ALPHA_TPREL16
3813     Alpha thread-local storage relocations.
3814
3815 -- : BFD_RELOC_MIPS_JMP
3816 -- : BFD_RELOC_MICROMIPS_JMP
3817     The MIPS jump instruction.
3818
3819 -- : BFD_RELOC_MIPS16_JMP
3820     The MIPS16 jump instruction.
3821
3822 -- : BFD_RELOC_MIPS16_GPREL
3823     MIPS16 GP relative reloc.
3824
3825 -- : BFD_RELOC_HI16
3826     High 16 bits of 32-bit value; simple reloc.
3827
3828 -- : BFD_RELOC_HI16_S
3829     High 16 bits of 32-bit value but the low 16 bits will be sign
3830     extended and added to form the final result.  If the low 16 bits
3831     form a negative number, we need to add one to the high value to
3832     compensate for the borrow when the low bits are added.
3833
3834 -- : BFD_RELOC_LO16
3835     Low 16 bits.
3836
3837 -- : BFD_RELOC_HI16_PCREL
3838     High 16 bits of 32-bit pc-relative value
3839
3840 -- : BFD_RELOC_HI16_S_PCREL
3841     High 16 bits of 32-bit pc-relative value, adjusted
3842
3843 -- : BFD_RELOC_LO16_PCREL
3844     Low 16 bits of pc-relative value
3845
3846 -- : BFD_RELOC_MIPS16_GOT16
3847 -- : BFD_RELOC_MIPS16_CALL16
3848     Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of
3849     16-bit immediate fields
3850
3851 -- : BFD_RELOC_MIPS16_HI16
3852     MIPS16 high 16 bits of 32-bit value.
3853
3854 -- : BFD_RELOC_MIPS16_HI16_S
3855     MIPS16 high 16 bits of 32-bit value but the low 16 bits will be
3856     sign extended and added to form the final result.  If the low 16
3857     bits form a negative number, we need to add one to the high value
3858     to compensate for the borrow when the low bits are added.
3859
3860 -- : BFD_RELOC_MIPS16_LO16
3861     MIPS16 low 16 bits.
3862
3863 -- : BFD_RELOC_MIPS16_TLS_GD
3864 -- : BFD_RELOC_MIPS16_TLS_LDM
3865 -- : BFD_RELOC_MIPS16_TLS_DTPREL_HI16
3866 -- : BFD_RELOC_MIPS16_TLS_DTPREL_LO16
3867 -- : BFD_RELOC_MIPS16_TLS_GOTTPREL
3868 -- : BFD_RELOC_MIPS16_TLS_TPREL_HI16
3869 -- : BFD_RELOC_MIPS16_TLS_TPREL_LO16
3870     MIPS16 TLS relocations
3871
3872 -- : BFD_RELOC_MIPS_LITERAL
3873 -- : BFD_RELOC_MICROMIPS_LITERAL
3874     Relocation against a MIPS literal section.
3875
3876 -- : BFD_RELOC_MICROMIPS_7_PCREL_S1
3877 -- : BFD_RELOC_MICROMIPS_10_PCREL_S1
3878 -- : BFD_RELOC_MICROMIPS_16_PCREL_S1
3879     microMIPS PC-relative relocations.
3880
3881 -- : BFD_RELOC_MIPS_21_PCREL_S2
3882 -- : BFD_RELOC_MIPS_26_PCREL_S2
3883 -- : BFD_RELOC_MIPS_18_PCREL_S3
3884 -- : BFD_RELOC_MIPS_19_PCREL_S2
3885     MIPS PC-relative relocations.
3886
3887 -- : BFD_RELOC_MICROMIPS_GPREL16
3888 -- : BFD_RELOC_MICROMIPS_HI16
3889 -- : BFD_RELOC_MICROMIPS_HI16_S
3890 -- : BFD_RELOC_MICROMIPS_LO16
3891     microMIPS versions of generic BFD relocs.
3892
3893 -- : BFD_RELOC_MIPS_GOT16
3894 -- : BFD_RELOC_MICROMIPS_GOT16
3895 -- : BFD_RELOC_MIPS_CALL16
3896 -- : BFD_RELOC_MICROMIPS_CALL16
3897 -- : BFD_RELOC_MIPS_GOT_HI16
3898 -- : BFD_RELOC_MICROMIPS_GOT_HI16
3899 -- : BFD_RELOC_MIPS_GOT_LO16
3900 -- : BFD_RELOC_MICROMIPS_GOT_LO16
3901 -- : BFD_RELOC_MIPS_CALL_HI16
3902 -- : BFD_RELOC_MICROMIPS_CALL_HI16
3903 -- : BFD_RELOC_MIPS_CALL_LO16
3904 -- : BFD_RELOC_MICROMIPS_CALL_LO16
3905 -- : BFD_RELOC_MIPS_SUB
3906 -- : BFD_RELOC_MICROMIPS_SUB
3907 -- : BFD_RELOC_MIPS_GOT_PAGE
3908 -- : BFD_RELOC_MICROMIPS_GOT_PAGE
3909 -- : BFD_RELOC_MIPS_GOT_OFST
3910 -- : BFD_RELOC_MICROMIPS_GOT_OFST
3911 -- : BFD_RELOC_MIPS_GOT_DISP
3912 -- : BFD_RELOC_MICROMIPS_GOT_DISP
3913 -- : BFD_RELOC_MIPS_SHIFT5
3914 -- : BFD_RELOC_MIPS_SHIFT6
3915 -- : BFD_RELOC_MIPS_INSERT_A
3916 -- : BFD_RELOC_MIPS_INSERT_B
3917 -- : BFD_RELOC_MIPS_DELETE
3918 -- : BFD_RELOC_MIPS_HIGHEST
3919 -- : BFD_RELOC_MICROMIPS_HIGHEST
3920 -- : BFD_RELOC_MIPS_HIGHER
3921 -- : BFD_RELOC_MICROMIPS_HIGHER
3922 -- : BFD_RELOC_MIPS_SCN_DISP
3923 -- : BFD_RELOC_MICROMIPS_SCN_DISP
3924 -- : BFD_RELOC_MIPS_REL16
3925 -- : BFD_RELOC_MIPS_RELGOT
3926 -- : BFD_RELOC_MIPS_JALR
3927 -- : BFD_RELOC_MICROMIPS_JALR
3928 -- : BFD_RELOC_MIPS_TLS_DTPMOD32
3929 -- : BFD_RELOC_MIPS_TLS_DTPREL32
3930 -- : BFD_RELOC_MIPS_TLS_DTPMOD64
3931 -- : BFD_RELOC_MIPS_TLS_DTPREL64
3932 -- : BFD_RELOC_MIPS_TLS_GD
3933 -- : BFD_RELOC_MICROMIPS_TLS_GD
3934 -- : BFD_RELOC_MIPS_TLS_LDM
3935 -- : BFD_RELOC_MICROMIPS_TLS_LDM
3936 -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16
3937 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16
3938 -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16
3939 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16
3940 -- : BFD_RELOC_MIPS_TLS_GOTTPREL
3941 -- : BFD_RELOC_MICROMIPS_TLS_GOTTPREL
3942 -- : BFD_RELOC_MIPS_TLS_TPREL32
3943 -- : BFD_RELOC_MIPS_TLS_TPREL64
3944 -- : BFD_RELOC_MIPS_TLS_TPREL_HI16
3945 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_HI16
3946 -- : BFD_RELOC_MIPS_TLS_TPREL_LO16
3947 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_LO16
3948 -- : BFD_RELOC_MIPS_EH
3949     MIPS ELF relocations.
3950
3951 -- : BFD_RELOC_MIPS_COPY
3952 -- : BFD_RELOC_MIPS_JUMP_SLOT
3953     MIPS ELF relocations (VxWorks and PLT extensions).
3954
3955 -- : BFD_RELOC_MOXIE_10_PCREL
3956     Moxie ELF relocations.
3957
3958 -- : BFD_RELOC_FT32_10
3959 -- : BFD_RELOC_FT32_20
3960 -- : BFD_RELOC_FT32_17
3961 -- : BFD_RELOC_FT32_18
3962     FT32 ELF relocations.
3963
3964 -- : BFD_RELOC_FRV_LABEL16
3965 -- : BFD_RELOC_FRV_LABEL24
3966 -- : BFD_RELOC_FRV_LO16
3967 -- : BFD_RELOC_FRV_HI16
3968 -- : BFD_RELOC_FRV_GPREL12
3969 -- : BFD_RELOC_FRV_GPRELU12
3970 -- : BFD_RELOC_FRV_GPREL32
3971 -- : BFD_RELOC_FRV_GPRELHI
3972 -- : BFD_RELOC_FRV_GPRELLO
3973 -- : BFD_RELOC_FRV_GOT12
3974 -- : BFD_RELOC_FRV_GOTHI
3975 -- : BFD_RELOC_FRV_GOTLO
3976 -- : BFD_RELOC_FRV_FUNCDESC
3977 -- : BFD_RELOC_FRV_FUNCDESC_GOT12
3978 -- : BFD_RELOC_FRV_FUNCDESC_GOTHI
3979 -- : BFD_RELOC_FRV_FUNCDESC_GOTLO
3980 -- : BFD_RELOC_FRV_FUNCDESC_VALUE
3981 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12
3982 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI
3983 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO
3984 -- : BFD_RELOC_FRV_GOTOFF12
3985 -- : BFD_RELOC_FRV_GOTOFFHI
3986 -- : BFD_RELOC_FRV_GOTOFFLO
3987 -- : BFD_RELOC_FRV_GETTLSOFF
3988 -- : BFD_RELOC_FRV_TLSDESC_VALUE
3989 -- : BFD_RELOC_FRV_GOTTLSDESC12
3990 -- : BFD_RELOC_FRV_GOTTLSDESCHI
3991 -- : BFD_RELOC_FRV_GOTTLSDESCLO
3992 -- : BFD_RELOC_FRV_TLSMOFF12
3993 -- : BFD_RELOC_FRV_TLSMOFFHI
3994 -- : BFD_RELOC_FRV_TLSMOFFLO
3995 -- : BFD_RELOC_FRV_GOTTLSOFF12
3996 -- : BFD_RELOC_FRV_GOTTLSOFFHI
3997 -- : BFD_RELOC_FRV_GOTTLSOFFLO
3998 -- : BFD_RELOC_FRV_TLSOFF
3999 -- : BFD_RELOC_FRV_TLSDESC_RELAX
4000 -- : BFD_RELOC_FRV_GETTLSOFF_RELAX
4001 -- : BFD_RELOC_FRV_TLSOFF_RELAX
4002 -- : BFD_RELOC_FRV_TLSMOFF
4003     Fujitsu Frv Relocations.
4004
4005 -- : BFD_RELOC_MN10300_GOTOFF24
4006     This is a 24bit GOT-relative reloc for the mn10300.
4007
4008 -- : BFD_RELOC_MN10300_GOT32
4009     This is a 32bit GOT-relative reloc for the mn10300, offset by two
4010     bytes in the instruction.
4011
4012 -- : BFD_RELOC_MN10300_GOT24
4013     This is a 24bit GOT-relative reloc for the mn10300, offset by two
4014     bytes in the instruction.
4015
4016 -- : BFD_RELOC_MN10300_GOT16
4017     This is a 16bit GOT-relative reloc for the mn10300, offset by two
4018     bytes in the instruction.
4019
4020 -- : BFD_RELOC_MN10300_COPY
4021     Copy symbol at runtime.
4022
4023 -- : BFD_RELOC_MN10300_GLOB_DAT
4024     Create GOT entry.
4025
4026 -- : BFD_RELOC_MN10300_JMP_SLOT
4027     Create PLT entry.
4028
4029 -- : BFD_RELOC_MN10300_RELATIVE
4030     Adjust by program base.
4031
4032 -- : BFD_RELOC_MN10300_SYM_DIFF
4033     Together with another reloc targeted at the same location, allows
4034     for a value that is the difference of two symbols in the same
4035     section.
4036
4037 -- : BFD_RELOC_MN10300_ALIGN
4038     The addend of this reloc is an alignment power that must be
4039     honoured at the offset's location, regardless of linker relaxation.
4040
4041 -- : BFD_RELOC_MN10300_TLS_GD
4042 -- : BFD_RELOC_MN10300_TLS_LD
4043 -- : BFD_RELOC_MN10300_TLS_LDO
4044 -- : BFD_RELOC_MN10300_TLS_GOTIE
4045 -- : BFD_RELOC_MN10300_TLS_IE
4046 -- : BFD_RELOC_MN10300_TLS_LE
4047 -- : BFD_RELOC_MN10300_TLS_DTPMOD
4048 -- : BFD_RELOC_MN10300_TLS_DTPOFF
4049 -- : BFD_RELOC_MN10300_TLS_TPOFF
4050     Various TLS-related relocations.
4051
4052 -- : BFD_RELOC_MN10300_32_PCREL
4053     This is a 32bit pcrel reloc for the mn10300, offset by two bytes
4054     in the instruction.
4055
4056 -- : BFD_RELOC_MN10300_16_PCREL
4057     This is a 16bit pcrel reloc for the mn10300, offset by two bytes
4058     in the instruction.
4059
4060 -- : BFD_RELOC_386_GOT32
4061 -- : BFD_RELOC_386_PLT32
4062 -- : BFD_RELOC_386_COPY
4063 -- : BFD_RELOC_386_GLOB_DAT
4064 -- : BFD_RELOC_386_JUMP_SLOT
4065 -- : BFD_RELOC_386_RELATIVE
4066 -- : BFD_RELOC_386_GOTOFF
4067 -- : BFD_RELOC_386_GOTPC
4068 -- : BFD_RELOC_386_TLS_TPOFF
4069 -- : BFD_RELOC_386_TLS_IE
4070 -- : BFD_RELOC_386_TLS_GOTIE
4071 -- : BFD_RELOC_386_TLS_LE
4072 -- : BFD_RELOC_386_TLS_GD
4073 -- : BFD_RELOC_386_TLS_LDM
4074 -- : BFD_RELOC_386_TLS_LDO_32
4075 -- : BFD_RELOC_386_TLS_IE_32
4076 -- : BFD_RELOC_386_TLS_LE_32
4077 -- : BFD_RELOC_386_TLS_DTPMOD32
4078 -- : BFD_RELOC_386_TLS_DTPOFF32
4079 -- : BFD_RELOC_386_TLS_TPOFF32
4080 -- : BFD_RELOC_386_TLS_GOTDESC
4081 -- : BFD_RELOC_386_TLS_DESC_CALL
4082 -- : BFD_RELOC_386_TLS_DESC
4083 -- : BFD_RELOC_386_IRELATIVE
4084 -- : BFD_RELOC_386_GOT32X
4085     i386/elf relocations
4086
4087 -- : BFD_RELOC_X86_64_GOT32
4088 -- : BFD_RELOC_X86_64_PLT32
4089 -- : BFD_RELOC_X86_64_COPY
4090 -- : BFD_RELOC_X86_64_GLOB_DAT
4091 -- : BFD_RELOC_X86_64_JUMP_SLOT
4092 -- : BFD_RELOC_X86_64_RELATIVE
4093 -- : BFD_RELOC_X86_64_GOTPCREL
4094 -- : BFD_RELOC_X86_64_32S
4095 -- : BFD_RELOC_X86_64_DTPMOD64
4096 -- : BFD_RELOC_X86_64_DTPOFF64
4097 -- : BFD_RELOC_X86_64_TPOFF64
4098 -- : BFD_RELOC_X86_64_TLSGD
4099 -- : BFD_RELOC_X86_64_TLSLD
4100 -- : BFD_RELOC_X86_64_DTPOFF32
4101 -- : BFD_RELOC_X86_64_GOTTPOFF
4102 -- : BFD_RELOC_X86_64_TPOFF32
4103 -- : BFD_RELOC_X86_64_GOTOFF64
4104 -- : BFD_RELOC_X86_64_GOTPC32
4105 -- : BFD_RELOC_X86_64_GOT64
4106 -- : BFD_RELOC_X86_64_GOTPCREL64
4107 -- : BFD_RELOC_X86_64_GOTPC64
4108 -- : BFD_RELOC_X86_64_GOTPLT64
4109 -- : BFD_RELOC_X86_64_PLTOFF64
4110 -- : BFD_RELOC_X86_64_GOTPC32_TLSDESC
4111 -- : BFD_RELOC_X86_64_TLSDESC_CALL
4112 -- : BFD_RELOC_X86_64_TLSDESC
4113 -- : BFD_RELOC_X86_64_IRELATIVE
4114 -- : BFD_RELOC_X86_64_PC32_BND
4115 -- : BFD_RELOC_X86_64_PLT32_BND
4116 -- : BFD_RELOC_X86_64_GOTPCRELX
4117 -- : BFD_RELOC_X86_64_REX_GOTPCRELX
4118     x86-64/elf relocations
4119
4120 -- : BFD_RELOC_NS32K_IMM_8
4121 -- : BFD_RELOC_NS32K_IMM_16
4122 -- : BFD_RELOC_NS32K_IMM_32
4123 -- : BFD_RELOC_NS32K_IMM_8_PCREL
4124 -- : BFD_RELOC_NS32K_IMM_16_PCREL
4125 -- : BFD_RELOC_NS32K_IMM_32_PCREL
4126 -- : BFD_RELOC_NS32K_DISP_8
4127 -- : BFD_RELOC_NS32K_DISP_16
4128 -- : BFD_RELOC_NS32K_DISP_32
4129 -- : BFD_RELOC_NS32K_DISP_8_PCREL
4130 -- : BFD_RELOC_NS32K_DISP_16_PCREL
4131 -- : BFD_RELOC_NS32K_DISP_32_PCREL
4132     ns32k relocations
4133
4134 -- : BFD_RELOC_PDP11_DISP_8_PCREL
4135 -- : BFD_RELOC_PDP11_DISP_6_PCREL
4136     PDP11 relocations
4137
4138 -- : BFD_RELOC_PJ_CODE_HI16
4139 -- : BFD_RELOC_PJ_CODE_LO16
4140 -- : BFD_RELOC_PJ_CODE_DIR16
4141 -- : BFD_RELOC_PJ_CODE_DIR32
4142 -- : BFD_RELOC_PJ_CODE_REL16
4143 -- : BFD_RELOC_PJ_CODE_REL32
4144     Picojava relocs.  Not all of these appear in object files.
4145
4146 -- : BFD_RELOC_PPC_B26
4147 -- : BFD_RELOC_PPC_BA26
4148 -- : BFD_RELOC_PPC_TOC16
4149 -- : BFD_RELOC_PPC_B16
4150 -- : BFD_RELOC_PPC_B16_BRTAKEN
4151 -- : BFD_RELOC_PPC_B16_BRNTAKEN
4152 -- : BFD_RELOC_PPC_BA16
4153 -- : BFD_RELOC_PPC_BA16_BRTAKEN
4154 -- : BFD_RELOC_PPC_BA16_BRNTAKEN
4155 -- : BFD_RELOC_PPC_COPY
4156 -- : BFD_RELOC_PPC_GLOB_DAT
4157 -- : BFD_RELOC_PPC_JMP_SLOT
4158 -- : BFD_RELOC_PPC_RELATIVE
4159 -- : BFD_RELOC_PPC_LOCAL24PC
4160 -- : BFD_RELOC_PPC_EMB_NADDR32
4161 -- : BFD_RELOC_PPC_EMB_NADDR16
4162 -- : BFD_RELOC_PPC_EMB_NADDR16_LO
4163 -- : BFD_RELOC_PPC_EMB_NADDR16_HI
4164 -- : BFD_RELOC_PPC_EMB_NADDR16_HA
4165 -- : BFD_RELOC_PPC_EMB_SDAI16
4166 -- : BFD_RELOC_PPC_EMB_SDA2I16
4167 -- : BFD_RELOC_PPC_EMB_SDA2REL
4168 -- : BFD_RELOC_PPC_EMB_SDA21
4169 -- : BFD_RELOC_PPC_EMB_MRKREF
4170 -- : BFD_RELOC_PPC_EMB_RELSEC16
4171 -- : BFD_RELOC_PPC_EMB_RELST_LO
4172 -- : BFD_RELOC_PPC_EMB_RELST_HI
4173 -- : BFD_RELOC_PPC_EMB_RELST_HA
4174 -- : BFD_RELOC_PPC_EMB_BIT_FLD
4175 -- : BFD_RELOC_PPC_EMB_RELSDA
4176 -- : BFD_RELOC_PPC_VLE_REL8
4177 -- : BFD_RELOC_PPC_VLE_REL15
4178 -- : BFD_RELOC_PPC_VLE_REL24
4179 -- : BFD_RELOC_PPC_VLE_LO16A
4180 -- : BFD_RELOC_PPC_VLE_LO16D
4181 -- : BFD_RELOC_PPC_VLE_HI16A
4182 -- : BFD_RELOC_PPC_VLE_HI16D
4183 -- : BFD_RELOC_PPC_VLE_HA16A
4184 -- : BFD_RELOC_PPC_VLE_HA16D
4185 -- : BFD_RELOC_PPC_VLE_SDA21
4186 -- : BFD_RELOC_PPC_VLE_SDA21_LO
4187 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16A
4188 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16D
4189 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16A
4190 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16D
4191 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16A
4192 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16D
4193 -- : BFD_RELOC_PPC_REL16DX_HA
4194 -- : BFD_RELOC_PPC64_HIGHER
4195 -- : BFD_RELOC_PPC64_HIGHER_S
4196 -- : BFD_RELOC_PPC64_HIGHEST
4197 -- : BFD_RELOC_PPC64_HIGHEST_S
4198 -- : BFD_RELOC_PPC64_TOC16_LO
4199 -- : BFD_RELOC_PPC64_TOC16_HI
4200 -- : BFD_RELOC_PPC64_TOC16_HA
4201 -- : BFD_RELOC_PPC64_TOC
4202 -- : BFD_RELOC_PPC64_PLTGOT16
4203 -- : BFD_RELOC_PPC64_PLTGOT16_LO
4204 -- : BFD_RELOC_PPC64_PLTGOT16_HI
4205 -- : BFD_RELOC_PPC64_PLTGOT16_HA
4206 -- : BFD_RELOC_PPC64_ADDR16_DS
4207 -- : BFD_RELOC_PPC64_ADDR16_LO_DS
4208 -- : BFD_RELOC_PPC64_GOT16_DS
4209 -- : BFD_RELOC_PPC64_GOT16_LO_DS
4210 -- : BFD_RELOC_PPC64_PLT16_LO_DS
4211 -- : BFD_RELOC_PPC64_SECTOFF_DS
4212 -- : BFD_RELOC_PPC64_SECTOFF_LO_DS
4213 -- : BFD_RELOC_PPC64_TOC16_DS
4214 -- : BFD_RELOC_PPC64_TOC16_LO_DS
4215 -- : BFD_RELOC_PPC64_PLTGOT16_DS
4216 -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS
4217 -- : BFD_RELOC_PPC64_ADDR16_HIGH
4218 -- : BFD_RELOC_PPC64_ADDR16_HIGHA
4219 -- : BFD_RELOC_PPC64_ADDR64_LOCAL
4220 -- : BFD_RELOC_PPC64_ENTRY
4221     Power(rs6000) and PowerPC relocations.
4222
4223 -- : BFD_RELOC_PPC_TLS
4224 -- : BFD_RELOC_PPC_TLSGD
4225 -- : BFD_RELOC_PPC_TLSLD
4226 -- : BFD_RELOC_PPC_DTPMOD
4227 -- : BFD_RELOC_PPC_TPREL16
4228 -- : BFD_RELOC_PPC_TPREL16_LO
4229 -- : BFD_RELOC_PPC_TPREL16_HI
4230 -- : BFD_RELOC_PPC_TPREL16_HA
4231 -- : BFD_RELOC_PPC_TPREL
4232 -- : BFD_RELOC_PPC_DTPREL16
4233 -- : BFD_RELOC_PPC_DTPREL16_LO
4234 -- : BFD_RELOC_PPC_DTPREL16_HI
4235 -- : BFD_RELOC_PPC_DTPREL16_HA
4236 -- : BFD_RELOC_PPC_DTPREL
4237 -- : BFD_RELOC_PPC_GOT_TLSGD16
4238 -- : BFD_RELOC_PPC_GOT_TLSGD16_LO
4239 -- : BFD_RELOC_PPC_GOT_TLSGD16_HI
4240 -- : BFD_RELOC_PPC_GOT_TLSGD16_HA
4241 -- : BFD_RELOC_PPC_GOT_TLSLD16
4242 -- : BFD_RELOC_PPC_GOT_TLSLD16_LO
4243 -- : BFD_RELOC_PPC_GOT_TLSLD16_HI
4244 -- : BFD_RELOC_PPC_GOT_TLSLD16_HA
4245 -- : BFD_RELOC_PPC_GOT_TPREL16
4246 -- : BFD_RELOC_PPC_GOT_TPREL16_LO
4247 -- : BFD_RELOC_PPC_GOT_TPREL16_HI
4248 -- : BFD_RELOC_PPC_GOT_TPREL16_HA
4249 -- : BFD_RELOC_PPC_GOT_DTPREL16
4250 -- : BFD_RELOC_PPC_GOT_DTPREL16_LO
4251 -- : BFD_RELOC_PPC_GOT_DTPREL16_HI
4252 -- : BFD_RELOC_PPC_GOT_DTPREL16_HA
4253 -- : BFD_RELOC_PPC64_TPREL16_DS
4254 -- : BFD_RELOC_PPC64_TPREL16_LO_DS
4255 -- : BFD_RELOC_PPC64_TPREL16_HIGHER
4256 -- : BFD_RELOC_PPC64_TPREL16_HIGHERA
4257 -- : BFD_RELOC_PPC64_TPREL16_HIGHEST
4258 -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA
4259 -- : BFD_RELOC_PPC64_DTPREL16_DS
4260 -- : BFD_RELOC_PPC64_DTPREL16_LO_DS
4261 -- : BFD_RELOC_PPC64_DTPREL16_HIGHER
4262 -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA
4263 -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST
4264 -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA
4265 -- : BFD_RELOC_PPC64_TPREL16_HIGH
4266 -- : BFD_RELOC_PPC64_TPREL16_HIGHA
4267 -- : BFD_RELOC_PPC64_DTPREL16_HIGH
4268 -- : BFD_RELOC_PPC64_DTPREL16_HIGHA
4269     PowerPC and PowerPC64 thread-local storage relocations.
4270
4271 -- : BFD_RELOC_I370_D12
4272     IBM 370/390 relocations
4273
4274 -- : BFD_RELOC_CTOR
4275     The type of reloc used to build a constructor table - at the moment
4276     probably a 32 bit wide absolute relocation, but the target can
4277     choose.  It generally does map to one of the other relocation
4278     types.
4279
4280 -- : BFD_RELOC_ARM_PCREL_BRANCH
4281     ARM 26 bit pc-relative branch.  The lowest two bits must be zero
4282     and are not stored in the instruction.
4283
4284 -- : BFD_RELOC_ARM_PCREL_BLX
4285     ARM 26 bit pc-relative branch.  The lowest bit must be zero and is
4286     not stored in the instruction.  The 2nd lowest bit comes from a 1
4287     bit field in the instruction.
4288
4289 -- : BFD_RELOC_THUMB_PCREL_BLX
4290     Thumb 22 bit pc-relative branch.  The lowest bit must be zero and
4291     is not stored in the instruction.  The 2nd lowest bit comes from a
4292     1 bit field in the instruction.
4293
4294 -- : BFD_RELOC_ARM_PCREL_CALL
4295     ARM 26-bit pc-relative branch for an unconditional BL or BLX
4296     instruction.
4297
4298 -- : BFD_RELOC_ARM_PCREL_JUMP
4299     ARM 26-bit pc-relative branch for B or conditional BL instruction.
4300
4301 -- : BFD_RELOC_THUMB_PCREL_BRANCH7
4302 -- : BFD_RELOC_THUMB_PCREL_BRANCH9
4303 -- : BFD_RELOC_THUMB_PCREL_BRANCH12
4304 -- : BFD_RELOC_THUMB_PCREL_BRANCH20
4305 -- : BFD_RELOC_THUMB_PCREL_BRANCH23
4306 -- : BFD_RELOC_THUMB_PCREL_BRANCH25
4307     Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.  The
4308     lowest bit must be zero and is not stored in the instruction.
4309     Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
4310     "nn" one smaller in all cases.  Note further that BRANCH23
4311     corresponds to R_ARM_THM_CALL.
4312
4313 -- : BFD_RELOC_ARM_OFFSET_IMM
4314     12-bit immediate offset, used in ARM-format ldr and str
4315     instructions.
4316
4317 -- : BFD_RELOC_ARM_THUMB_OFFSET
4318     5-bit immediate offset, used in Thumb-format ldr and str
4319     instructions.
4320
4321 -- : BFD_RELOC_ARM_TARGET1
4322     Pc-relative or absolute relocation depending on target.  Used for
4323     entries in .init_array sections.
4324
4325 -- : BFD_RELOC_ARM_ROSEGREL32
4326     Read-only segment base relative address.
4327
4328 -- : BFD_RELOC_ARM_SBREL32
4329     Data segment base relative address.
4330
4331 -- : BFD_RELOC_ARM_TARGET2
4332     This reloc is used for references to RTTI data from exception
4333     handling tables.  The actual definition depends on the target.  It
4334     may be a pc-relative or some form of GOT-indirect relocation.
4335
4336 -- : BFD_RELOC_ARM_PREL31
4337     31-bit PC relative address.
4338
4339 -- : BFD_RELOC_ARM_MOVW
4340 -- : BFD_RELOC_ARM_MOVT
4341 -- : BFD_RELOC_ARM_MOVW_PCREL
4342 -- : BFD_RELOC_ARM_MOVT_PCREL
4343 -- : BFD_RELOC_ARM_THUMB_MOVW
4344 -- : BFD_RELOC_ARM_THUMB_MOVT
4345 -- : BFD_RELOC_ARM_THUMB_MOVW_PCREL
4346 -- : BFD_RELOC_ARM_THUMB_MOVT_PCREL
4347     Low and High halfword relocations for MOVW and MOVT instructions.
4348
4349 -- : BFD_RELOC_ARM_JUMP_SLOT
4350 -- : BFD_RELOC_ARM_GLOB_DAT
4351 -- : BFD_RELOC_ARM_GOT32
4352 -- : BFD_RELOC_ARM_PLT32
4353 -- : BFD_RELOC_ARM_RELATIVE
4354 -- : BFD_RELOC_ARM_GOTOFF
4355 -- : BFD_RELOC_ARM_GOTPC
4356 -- : BFD_RELOC_ARM_GOT_PREL
4357     Relocations for setting up GOTs and PLTs for shared libraries.
4358
4359 -- : BFD_RELOC_ARM_TLS_GD32
4360 -- : BFD_RELOC_ARM_TLS_LDO32
4361 -- : BFD_RELOC_ARM_TLS_LDM32
4362 -- : BFD_RELOC_ARM_TLS_DTPOFF32
4363 -- : BFD_RELOC_ARM_TLS_DTPMOD32
4364 -- : BFD_RELOC_ARM_TLS_TPOFF32
4365 -- : BFD_RELOC_ARM_TLS_IE32
4366 -- : BFD_RELOC_ARM_TLS_LE32
4367 -- : BFD_RELOC_ARM_TLS_GOTDESC
4368 -- : BFD_RELOC_ARM_TLS_CALL
4369 -- : BFD_RELOC_ARM_THM_TLS_CALL
4370 -- : BFD_RELOC_ARM_TLS_DESCSEQ
4371 -- : BFD_RELOC_ARM_THM_TLS_DESCSEQ
4372 -- : BFD_RELOC_ARM_TLS_DESC
4373     ARM thread-local storage relocations.
4374
4375 -- : BFD_RELOC_ARM_ALU_PC_G0_NC
4376 -- : BFD_RELOC_ARM_ALU_PC_G0
4377 -- : BFD_RELOC_ARM_ALU_PC_G1_NC
4378 -- : BFD_RELOC_ARM_ALU_PC_G1
4379 -- : BFD_RELOC_ARM_ALU_PC_G2
4380 -- : BFD_RELOC_ARM_LDR_PC_G0
4381 -- : BFD_RELOC_ARM_LDR_PC_G1
4382 -- : BFD_RELOC_ARM_LDR_PC_G2
4383 -- : BFD_RELOC_ARM_LDRS_PC_G0
4384 -- : BFD_RELOC_ARM_LDRS_PC_G1
4385 -- : BFD_RELOC_ARM_LDRS_PC_G2
4386 -- : BFD_RELOC_ARM_LDC_PC_G0
4387 -- : BFD_RELOC_ARM_LDC_PC_G1
4388 -- : BFD_RELOC_ARM_LDC_PC_G2
4389 -- : BFD_RELOC_ARM_ALU_SB_G0_NC
4390 -- : BFD_RELOC_ARM_ALU_SB_G0
4391 -- : BFD_RELOC_ARM_ALU_SB_G1_NC
4392 -- : BFD_RELOC_ARM_ALU_SB_G1
4393 -- : BFD_RELOC_ARM_ALU_SB_G2
4394 -- : BFD_RELOC_ARM_LDR_SB_G0
4395 -- : BFD_RELOC_ARM_LDR_SB_G1
4396 -- : BFD_RELOC_ARM_LDR_SB_G2
4397 -- : BFD_RELOC_ARM_LDRS_SB_G0
4398 -- : BFD_RELOC_ARM_LDRS_SB_G1
4399 -- : BFD_RELOC_ARM_LDRS_SB_G2
4400 -- : BFD_RELOC_ARM_LDC_SB_G0
4401 -- : BFD_RELOC_ARM_LDC_SB_G1
4402 -- : BFD_RELOC_ARM_LDC_SB_G2
4403     ARM group relocations.
4404
4405 -- : BFD_RELOC_ARM_V4BX
4406     Annotation of BX instructions.
4407
4408 -- : BFD_RELOC_ARM_IRELATIVE
4409     ARM support for STT_GNU_IFUNC.
4410
4411 -- : BFD_RELOC_ARM_IMMEDIATE
4412 -- : BFD_RELOC_ARM_ADRL_IMMEDIATE
4413 -- : BFD_RELOC_ARM_T32_IMMEDIATE
4414 -- : BFD_RELOC_ARM_T32_ADD_IMM
4415 -- : BFD_RELOC_ARM_T32_IMM12
4416 -- : BFD_RELOC_ARM_T32_ADD_PC12
4417 -- : BFD_RELOC_ARM_SHIFT_IMM
4418 -- : BFD_RELOC_ARM_SMC
4419 -- : BFD_RELOC_ARM_HVC
4420 -- : BFD_RELOC_ARM_SWI
4421 -- : BFD_RELOC_ARM_MULTI
4422 -- : BFD_RELOC_ARM_CP_OFF_IMM
4423 -- : BFD_RELOC_ARM_CP_OFF_IMM_S2
4424 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM
4425 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM_S2
4426 -- : BFD_RELOC_ARM_ADR_IMM
4427 -- : BFD_RELOC_ARM_LDR_IMM
4428 -- : BFD_RELOC_ARM_LITERAL
4429 -- : BFD_RELOC_ARM_IN_POOL
4430 -- : BFD_RELOC_ARM_OFFSET_IMM8
4431 -- : BFD_RELOC_ARM_T32_OFFSET_U8
4432 -- : BFD_RELOC_ARM_T32_OFFSET_IMM
4433 -- : BFD_RELOC_ARM_HWLITERAL
4434 -- : BFD_RELOC_ARM_THUMB_ADD
4435 -- : BFD_RELOC_ARM_THUMB_IMM
4436 -- : BFD_RELOC_ARM_THUMB_SHIFT
4437     These relocs are only used within the ARM assembler.  They are not
4438     (at present) written to any object files.
4439
4440 -- : BFD_RELOC_SH_PCDISP8BY2
4441 -- : BFD_RELOC_SH_PCDISP12BY2
4442 -- : BFD_RELOC_SH_IMM3
4443 -- : BFD_RELOC_SH_IMM3U
4444 -- : BFD_RELOC_SH_DISP12
4445 -- : BFD_RELOC_SH_DISP12BY2
4446 -- : BFD_RELOC_SH_DISP12BY4
4447 -- : BFD_RELOC_SH_DISP12BY8
4448 -- : BFD_RELOC_SH_DISP20
4449 -- : BFD_RELOC_SH_DISP20BY8
4450 -- : BFD_RELOC_SH_IMM4
4451 -- : BFD_RELOC_SH_IMM4BY2
4452 -- : BFD_RELOC_SH_IMM4BY4
4453 -- : BFD_RELOC_SH_IMM8
4454 -- : BFD_RELOC_SH_IMM8BY2
4455 -- : BFD_RELOC_SH_IMM8BY4
4456 -- : BFD_RELOC_SH_PCRELIMM8BY2
4457 -- : BFD_RELOC_SH_PCRELIMM8BY4
4458 -- : BFD_RELOC_SH_SWITCH16
4459 -- : BFD_RELOC_SH_SWITCH32
4460 -- : BFD_RELOC_SH_USES
4461 -- : BFD_RELOC_SH_COUNT
4462 -- : BFD_RELOC_SH_ALIGN
4463 -- : BFD_RELOC_SH_CODE
4464 -- : BFD_RELOC_SH_DATA
4465 -- : BFD_RELOC_SH_LABEL
4466 -- : BFD_RELOC_SH_LOOP_START
4467 -- : BFD_RELOC_SH_LOOP_END
4468 -- : BFD_RELOC_SH_COPY
4469 -- : BFD_RELOC_SH_GLOB_DAT
4470 -- : BFD_RELOC_SH_JMP_SLOT
4471 -- : BFD_RELOC_SH_RELATIVE
4472 -- : BFD_RELOC_SH_GOTPC
4473 -- : BFD_RELOC_SH_GOT_LOW16
4474 -- : BFD_RELOC_SH_GOT_MEDLOW16
4475 -- : BFD_RELOC_SH_GOT_MEDHI16
4476 -- : BFD_RELOC_SH_GOT_HI16
4477 -- : BFD_RELOC_SH_GOTPLT_LOW16
4478 -- : BFD_RELOC_SH_GOTPLT_MEDLOW16
4479 -- : BFD_RELOC_SH_GOTPLT_MEDHI16
4480 -- : BFD_RELOC_SH_GOTPLT_HI16
4481 -- : BFD_RELOC_SH_PLT_LOW16
4482 -- : BFD_RELOC_SH_PLT_MEDLOW16
4483 -- : BFD_RELOC_SH_PLT_MEDHI16
4484 -- : BFD_RELOC_SH_PLT_HI16
4485 -- : BFD_RELOC_SH_GOTOFF_LOW16
4486 -- : BFD_RELOC_SH_GOTOFF_MEDLOW16
4487 -- : BFD_RELOC_SH_GOTOFF_MEDHI16
4488 -- : BFD_RELOC_SH_GOTOFF_HI16
4489 -- : BFD_RELOC_SH_GOTPC_LOW16
4490 -- : BFD_RELOC_SH_GOTPC_MEDLOW16
4491 -- : BFD_RELOC_SH_GOTPC_MEDHI16
4492 -- : BFD_RELOC_SH_GOTPC_HI16
4493 -- : BFD_RELOC_SH_COPY64
4494 -- : BFD_RELOC_SH_GLOB_DAT64
4495 -- : BFD_RELOC_SH_JMP_SLOT64
4496 -- : BFD_RELOC_SH_RELATIVE64
4497 -- : BFD_RELOC_SH_GOT10BY4
4498 -- : BFD_RELOC_SH_GOT10BY8
4499 -- : BFD_RELOC_SH_GOTPLT10BY4
4500 -- : BFD_RELOC_SH_GOTPLT10BY8
4501 -- : BFD_RELOC_SH_GOTPLT32
4502 -- : BFD_RELOC_SH_SHMEDIA_CODE
4503 -- : BFD_RELOC_SH_IMMU5
4504 -- : BFD_RELOC_SH_IMMS6
4505 -- : BFD_RELOC_SH_IMMS6BY32
4506 -- : BFD_RELOC_SH_IMMU6
4507 -- : BFD_RELOC_SH_IMMS10
4508 -- : BFD_RELOC_SH_IMMS10BY2
4509 -- : BFD_RELOC_SH_IMMS10BY4
4510 -- : BFD_RELOC_SH_IMMS10BY8
4511 -- : BFD_RELOC_SH_IMMS16
4512 -- : BFD_RELOC_SH_IMMU16
4513 -- : BFD_RELOC_SH_IMM_LOW16
4514 -- : BFD_RELOC_SH_IMM_LOW16_PCREL
4515 -- : BFD_RELOC_SH_IMM_MEDLOW16
4516 -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL
4517 -- : BFD_RELOC_SH_IMM_MEDHI16
4518 -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL
4519 -- : BFD_RELOC_SH_IMM_HI16
4520 -- : BFD_RELOC_SH_IMM_HI16_PCREL
4521 -- : BFD_RELOC_SH_PT_16
4522 -- : BFD_RELOC_SH_TLS_GD_32
4523 -- : BFD_RELOC_SH_TLS_LD_32
4524 -- : BFD_RELOC_SH_TLS_LDO_32
4525 -- : BFD_RELOC_SH_TLS_IE_32
4526 -- : BFD_RELOC_SH_TLS_LE_32
4527 -- : BFD_RELOC_SH_TLS_DTPMOD32
4528 -- : BFD_RELOC_SH_TLS_DTPOFF32
4529 -- : BFD_RELOC_SH_TLS_TPOFF32
4530 -- : BFD_RELOC_SH_GOT20
4531 -- : BFD_RELOC_SH_GOTOFF20
4532 -- : BFD_RELOC_SH_GOTFUNCDESC
4533 -- : BFD_RELOC_SH_GOTFUNCDESC20
4534 -- : BFD_RELOC_SH_GOTOFFFUNCDESC
4535 -- : BFD_RELOC_SH_GOTOFFFUNCDESC20
4536 -- : BFD_RELOC_SH_FUNCDESC
4537     Renesas / SuperH SH relocs.  Not all of these appear in object
4538     files.
4539
4540 -- : BFD_RELOC_ARC_NONE
4541 -- : BFD_RELOC_ARC_8
4542 -- : BFD_RELOC_ARC_16
4543 -- : BFD_RELOC_ARC_24
4544 -- : BFD_RELOC_ARC_32
4545 -- : BFD_RELOC_ARC_N8
4546 -- : BFD_RELOC_ARC_N16
4547 -- : BFD_RELOC_ARC_N24
4548 -- : BFD_RELOC_ARC_N32
4549 -- : BFD_RELOC_ARC_SDA
4550 -- : BFD_RELOC_ARC_SECTOFF
4551 -- : BFD_RELOC_ARC_S21H_PCREL
4552 -- : BFD_RELOC_ARC_S21W_PCREL
4553 -- : BFD_RELOC_ARC_S25H_PCREL
4554 -- : BFD_RELOC_ARC_S25W_PCREL
4555 -- : BFD_RELOC_ARC_SDA32
4556 -- : BFD_RELOC_ARC_SDA_LDST
4557 -- : BFD_RELOC_ARC_SDA_LDST1
4558 -- : BFD_RELOC_ARC_SDA_LDST2
4559 -- : BFD_RELOC_ARC_SDA16_LD
4560 -- : BFD_RELOC_ARC_SDA16_LD1
4561 -- : BFD_RELOC_ARC_SDA16_LD2
4562 -- : BFD_RELOC_ARC_S13_PCREL
4563 -- : BFD_RELOC_ARC_W
4564 -- : BFD_RELOC_ARC_32_ME
4565 -- : BFD_RELOC_ARC_32_ME_S
4566 -- : BFD_RELOC_ARC_N32_ME
4567 -- : BFD_RELOC_ARC_SECTOFF_ME
4568 -- : BFD_RELOC_ARC_SDA32_ME
4569 -- : BFD_RELOC_ARC_W_ME
4570 -- : BFD_RELOC_AC_SECTOFF_U8
4571 -- : BFD_RELOC_AC_SECTOFF_U8_1
4572 -- : BFD_RELOC_AC_SECTOFF_U8_2
4573 -- : BFD_RELOC_AC_SECTFOFF_S9
4574 -- : BFD_RELOC_AC_SECTFOFF_S9_1
4575 -- : BFD_RELOC_AC_SECTFOFF_S9_2
4576 -- : BFD_RELOC_ARC_SECTOFF_ME_1
4577 -- : BFD_RELOC_ARC_SECTOFF_ME_2
4578 -- : BFD_RELOC_ARC_SECTOFF_1
4579 -- : BFD_RELOC_ARC_SECTOFF_2
4580 -- : BFD_RELOC_ARC_SDA16_ST2
4581 -- : BFD_RELOC_ARC_32_PCREL
4582 -- : BFD_RELOC_ARC_PC32
4583 -- : BFD_RELOC_ARC_GOT32
4584 -- : BFD_RELOC_ARC_GOTPC32
4585 -- : BFD_RELOC_ARC_PLT32
4586 -- : BFD_RELOC_ARC_COPY
4587 -- : BFD_RELOC_ARC_GLOB_DAT
4588 -- : BFD_RELOC_ARC_JMP_SLOT
4589 -- : BFD_RELOC_ARC_RELATIVE
4590 -- : BFD_RELOC_ARC_GOTOFF
4591 -- : BFD_RELOC_ARC_GOTPC
4592 -- : BFD_RELOC_ARC_S21W_PCREL_PLT
4593 -- : BFD_RELOC_ARC_S25H_PCREL_PLT
4594 -- : BFD_RELOC_ARC_TLS_DTPMOD
4595 -- : BFD_RELOC_ARC_TLS_TPOFF
4596 -- : BFD_RELOC_ARC_TLS_GD_GOT
4597 -- : BFD_RELOC_ARC_TLS_GD_LD
4598 -- : BFD_RELOC_ARC_TLS_GD_CALL
4599 -- : BFD_RELOC_ARC_TLS_IE_GOT
4600 -- : BFD_RELOC_ARC_TLS_DTPOFF
4601 -- : BFD_RELOC_ARC_TLS_DTPOFF_S9
4602 -- : BFD_RELOC_ARC_TLS_LE_S9
4603 -- : BFD_RELOC_ARC_TLS_LE_32
4604 -- : BFD_RELOC_ARC_S25W_PCREL_PLT
4605 -- : BFD_RELOC_ARC_S21H_PCREL_PLT
4606     ARC relocs.
4607
4608 -- : BFD_RELOC_BFIN_16_IMM
4609     ADI Blackfin 16 bit immediate absolute reloc.
4610
4611 -- : BFD_RELOC_BFIN_16_HIGH
4612     ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.
4613
4614 -- : BFD_RELOC_BFIN_4_PCREL
4615     ADI Blackfin 'a' part of LSETUP.
4616
4617 -- : BFD_RELOC_BFIN_5_PCREL
4618     ADI Blackfin.
4619
4620 -- : BFD_RELOC_BFIN_16_LOW
4621     ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.
4622
4623 -- : BFD_RELOC_BFIN_10_PCREL
4624     ADI Blackfin.
4625
4626 -- : BFD_RELOC_BFIN_11_PCREL
4627     ADI Blackfin 'b' part of LSETUP.
4628
4629 -- : BFD_RELOC_BFIN_12_PCREL_JUMP
4630     ADI Blackfin.
4631
4632 -- : BFD_RELOC_BFIN_12_PCREL_JUMP_S
4633     ADI Blackfin Short jump, pcrel.
4634
4635 -- : BFD_RELOC_BFIN_24_PCREL_CALL_X
4636     ADI Blackfin Call.x not implemented.
4637
4638 -- : BFD_RELOC_BFIN_24_PCREL_JUMP_L
4639     ADI Blackfin Long Jump pcrel.
4640
4641 -- : BFD_RELOC_BFIN_GOT17M4
4642 -- : BFD_RELOC_BFIN_GOTHI
4643 -- : BFD_RELOC_BFIN_GOTLO
4644 -- : BFD_RELOC_BFIN_FUNCDESC
4645 -- : BFD_RELOC_BFIN_FUNCDESC_GOT17M4
4646 -- : BFD_RELOC_BFIN_FUNCDESC_GOTHI
4647 -- : BFD_RELOC_BFIN_FUNCDESC_GOTLO
4648 -- : BFD_RELOC_BFIN_FUNCDESC_VALUE
4649 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4
4650 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI
4651 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO
4652 -- : BFD_RELOC_BFIN_GOTOFF17M4
4653 -- : BFD_RELOC_BFIN_GOTOFFHI
4654 -- : BFD_RELOC_BFIN_GOTOFFLO
4655     ADI Blackfin FD-PIC relocations.
4656
4657 -- : BFD_RELOC_BFIN_GOT
4658     ADI Blackfin GOT relocation.
4659
4660 -- : BFD_RELOC_BFIN_PLTPC
4661     ADI Blackfin PLTPC relocation.
4662
4663 -- : BFD_ARELOC_BFIN_PUSH
4664     ADI Blackfin arithmetic relocation.
4665
4666 -- : BFD_ARELOC_BFIN_CONST
4667     ADI Blackfin arithmetic relocation.
4668
4669 -- : BFD_ARELOC_BFIN_ADD
4670     ADI Blackfin arithmetic relocation.
4671
4672 -- : BFD_ARELOC_BFIN_SUB
4673     ADI Blackfin arithmetic relocation.
4674
4675 -- : BFD_ARELOC_BFIN_MULT
4676     ADI Blackfin arithmetic relocation.
4677
4678 -- : BFD_ARELOC_BFIN_DIV
4679     ADI Blackfin arithmetic relocation.
4680
4681 -- : BFD_ARELOC_BFIN_MOD
4682     ADI Blackfin arithmetic relocation.
4683
4684 -- : BFD_ARELOC_BFIN_LSHIFT
4685     ADI Blackfin arithmetic relocation.
4686
4687 -- : BFD_ARELOC_BFIN_RSHIFT
4688     ADI Blackfin arithmetic relocation.
4689
4690 -- : BFD_ARELOC_BFIN_AND
4691     ADI Blackfin arithmetic relocation.
4692
4693 -- : BFD_ARELOC_BFIN_OR
4694     ADI Blackfin arithmetic relocation.
4695
4696 -- : BFD_ARELOC_BFIN_XOR
4697     ADI Blackfin arithmetic relocation.
4698
4699 -- : BFD_ARELOC_BFIN_LAND
4700     ADI Blackfin arithmetic relocation.
4701
4702 -- : BFD_ARELOC_BFIN_LOR
4703     ADI Blackfin arithmetic relocation.
4704
4705 -- : BFD_ARELOC_BFIN_LEN
4706     ADI Blackfin arithmetic relocation.
4707
4708 -- : BFD_ARELOC_BFIN_NEG
4709     ADI Blackfin arithmetic relocation.
4710
4711 -- : BFD_ARELOC_BFIN_COMP
4712     ADI Blackfin arithmetic relocation.
4713
4714 -- : BFD_ARELOC_BFIN_PAGE
4715     ADI Blackfin arithmetic relocation.
4716
4717 -- : BFD_ARELOC_BFIN_HWPAGE
4718     ADI Blackfin arithmetic relocation.
4719
4720 -- : BFD_ARELOC_BFIN_ADDR
4721     ADI Blackfin arithmetic relocation.
4722
4723 -- : BFD_RELOC_D10V_10_PCREL_R
4724     Mitsubishi D10V relocs.  This is a 10-bit reloc with the right 2
4725     bits assumed to be 0.
4726
4727 -- : BFD_RELOC_D10V_10_PCREL_L
4728     Mitsubishi D10V relocs.  This is a 10-bit reloc with the right 2
4729     bits assumed to be 0.  This is the same as the previous reloc
4730     except it is in the left container, i.e., shifted left 15 bits.
4731
4732 -- : BFD_RELOC_D10V_18
4733     This is an 18-bit reloc with the right 2 bits assumed to be 0.
4734
4735 -- : BFD_RELOC_D10V_18_PCREL
4736     This is an 18-bit reloc with the right 2 bits assumed to be 0.
4737
4738 -- : BFD_RELOC_D30V_6
4739     Mitsubishi D30V relocs.  This is a 6-bit absolute reloc.
4740
4741 -- : BFD_RELOC_D30V_9_PCREL
4742     This is a 6-bit pc-relative reloc with the right 3 bits assumed to
4743     be 0.
4744
4745 -- : BFD_RELOC_D30V_9_PCREL_R
4746     This is a 6-bit pc-relative reloc with the right 3 bits assumed to
4747     be 0. Same as the previous reloc but on the right side of the
4748     container.
4749
4750 -- : BFD_RELOC_D30V_15
4751     This is a 12-bit absolute reloc with the right 3 bitsassumed to be
4752     0.
4753
4754 -- : BFD_RELOC_D30V_15_PCREL
4755     This is a 12-bit pc-relative reloc with the right 3 bits assumed
4756     to be 0.
4757
4758 -- : BFD_RELOC_D30V_15_PCREL_R
4759     This is a 12-bit pc-relative reloc with the right 3 bits assumed
4760     to be 0. Same as the previous reloc but on the right side of the
4761     container.
4762
4763 -- : BFD_RELOC_D30V_21
4764     This is an 18-bit absolute reloc with the right 3 bits assumed to
4765     be 0.
4766
4767 -- : BFD_RELOC_D30V_21_PCREL
4768     This is an 18-bit pc-relative reloc with the right 3 bits assumed
4769     to be 0.
4770
4771 -- : BFD_RELOC_D30V_21_PCREL_R
4772     This is an 18-bit pc-relative reloc with the right 3 bits assumed
4773     to be 0. Same as the previous reloc but on the right side of the
4774     container.
4775
4776 -- : BFD_RELOC_D30V_32
4777     This is a 32-bit absolute reloc.
4778
4779 -- : BFD_RELOC_D30V_32_PCREL
4780     This is a 32-bit pc-relative reloc.
4781
4782 -- : BFD_RELOC_DLX_HI16_S
4783     DLX relocs
4784
4785 -- : BFD_RELOC_DLX_LO16
4786     DLX relocs
4787
4788 -- : BFD_RELOC_DLX_JMP26
4789     DLX relocs
4790
4791 -- : BFD_RELOC_M32C_HI8
4792 -- : BFD_RELOC_M32C_RL_JUMP
4793 -- : BFD_RELOC_M32C_RL_1ADDR
4794 -- : BFD_RELOC_M32C_RL_2ADDR
4795     Renesas M16C/M32C Relocations.
4796
4797 -- : BFD_RELOC_M32R_24
4798     Renesas M32R (formerly Mitsubishi M32R) relocs.  This is a 24 bit
4799     absolute address.
4800
4801 -- : BFD_RELOC_M32R_10_PCREL
4802     This is a 10-bit pc-relative reloc with the right 2 bits assumed
4803     to be 0.
4804
4805 -- : BFD_RELOC_M32R_18_PCREL
4806     This is an 18-bit reloc with the right 2 bits assumed to be 0.
4807
4808 -- : BFD_RELOC_M32R_26_PCREL
4809     This is a 26-bit reloc with the right 2 bits assumed to be 0.
4810
4811 -- : BFD_RELOC_M32R_HI16_ULO
4812     This is a 16-bit reloc containing the high 16 bits of an address
4813     used when the lower 16 bits are treated as unsigned.
4814
4815 -- : BFD_RELOC_M32R_HI16_SLO
4816     This is a 16-bit reloc containing the high 16 bits of an address
4817     used when the lower 16 bits are treated as signed.
4818
4819 -- : BFD_RELOC_M32R_LO16
4820     This is a 16-bit reloc containing the lower 16 bits of an address.
4821
4822 -- : BFD_RELOC_M32R_SDA16
4823     This is a 16-bit reloc containing the small data area offset for
4824     use in add3, load, and store instructions.
4825
4826 -- : BFD_RELOC_M32R_GOT24
4827 -- : BFD_RELOC_M32R_26_PLTREL
4828 -- : BFD_RELOC_M32R_COPY
4829 -- : BFD_RELOC_M32R_GLOB_DAT
4830 -- : BFD_RELOC_M32R_JMP_SLOT
4831 -- : BFD_RELOC_M32R_RELATIVE
4832 -- : BFD_RELOC_M32R_GOTOFF
4833 -- : BFD_RELOC_M32R_GOTOFF_HI_ULO
4834 -- : BFD_RELOC_M32R_GOTOFF_HI_SLO
4835 -- : BFD_RELOC_M32R_GOTOFF_LO
4836 -- : BFD_RELOC_M32R_GOTPC24
4837 -- : BFD_RELOC_M32R_GOT16_HI_ULO
4838 -- : BFD_RELOC_M32R_GOT16_HI_SLO
4839 -- : BFD_RELOC_M32R_GOT16_LO
4840 -- : BFD_RELOC_M32R_GOTPC_HI_ULO
4841 -- : BFD_RELOC_M32R_GOTPC_HI_SLO
4842 -- : BFD_RELOC_M32R_GOTPC_LO
4843     For PIC.
4844
4845 -- : BFD_RELOC_NDS32_20
4846     NDS32 relocs.  This is a 20 bit absolute address.
4847
4848 -- : BFD_RELOC_NDS32_9_PCREL
4849     This is a 9-bit pc-relative reloc with the right 1 bit assumed to
4850     be 0.
4851
4852 -- : BFD_RELOC_NDS32_WORD_9_PCREL
4853     This is a 9-bit pc-relative reloc with the right 1 bit assumed to
4854     be 0.
4855
4856 -- : BFD_RELOC_NDS32_15_PCREL
4857     This is an 15-bit reloc with the right 1 bit assumed to be 0.
4858
4859 -- : BFD_RELOC_NDS32_17_PCREL
4860     This is an 17-bit reloc with the right 1 bit assumed to be 0.
4861
4862 -- : BFD_RELOC_NDS32_25_PCREL
4863     This is a 25-bit reloc with the right 1 bit assumed to be 0.
4864
4865 -- : BFD_RELOC_NDS32_HI20
4866     This is a 20-bit reloc containing the high 20 bits of an address
4867     used with the lower 12 bits
4868
4869 -- : BFD_RELOC_NDS32_LO12S3
4870     This is a 12-bit reloc containing the lower 12 bits of an address
4871     then shift right by 3. This is used with ldi,sdi...
4872
4873 -- : BFD_RELOC_NDS32_LO12S2
4874     This is a 12-bit reloc containing the lower 12 bits of an address
4875     then shift left by 2. This is used with lwi,swi...
4876
4877 -- : BFD_RELOC_NDS32_LO12S1
4878     This is a 12-bit reloc containing the lower 12 bits of an address
4879     then shift left by 1. This is used with lhi,shi...
4880
4881 -- : BFD_RELOC_NDS32_LO12S0
4882     This is a 12-bit reloc containing the lower 12 bits of an address
4883     then shift left by 0. This is used with lbisbi...
4884
4885 -- : BFD_RELOC_NDS32_LO12S0_ORI
4886     This is a 12-bit reloc containing the lower 12 bits of an address
4887     then shift left by 0. This is only used with branch relaxations
4888
4889 -- : BFD_RELOC_NDS32_SDA15S3
4890     This is a 15-bit reloc containing the small data area 18-bit
4891     signed offset and shift left by 3 for use in ldi, sdi...
4892
4893 -- : BFD_RELOC_NDS32_SDA15S2
4894     This is a 15-bit reloc containing the small data area 17-bit
4895     signed offset and shift left by 2 for use in lwi, swi...
4896
4897 -- : BFD_RELOC_NDS32_SDA15S1
4898     This is a 15-bit reloc containing the small data area 16-bit
4899     signed offset and shift left by 1 for use in lhi, shi...
4900
4901 -- : BFD_RELOC_NDS32_SDA15S0
4902     This is a 15-bit reloc containing the small data area 15-bit
4903     signed offset and shift left by 0 for use in lbi, sbi...
4904
4905 -- : BFD_RELOC_NDS32_SDA16S3
4906     This is a 16-bit reloc containing the small data area 16-bit
4907     signed offset and shift left by 3
4908
4909 -- : BFD_RELOC_NDS32_SDA17S2
4910     This is a 17-bit reloc containing the small data area 17-bit
4911     signed offset and shift left by 2 for use in lwi.gp, swi.gp...
4912
4913 -- : BFD_RELOC_NDS32_SDA18S1
4914     This is a 18-bit reloc containing the small data area 18-bit
4915     signed offset and shift left by 1 for use in lhi.gp, shi.gp...
4916
4917 -- : BFD_RELOC_NDS32_SDA19S0
4918     This is a 19-bit reloc containing the small data area 19-bit
4919     signed offset and shift left by 0 for use in lbi.gp, sbi.gp...
4920
4921 -- : BFD_RELOC_NDS32_GOT20
4922 -- : BFD_RELOC_NDS32_9_PLTREL
4923 -- : BFD_RELOC_NDS32_25_PLTREL
4924 -- : BFD_RELOC_NDS32_COPY
4925 -- : BFD_RELOC_NDS32_GLOB_DAT
4926 -- : BFD_RELOC_NDS32_JMP_SLOT
4927 -- : BFD_RELOC_NDS32_RELATIVE
4928 -- : BFD_RELOC_NDS32_GOTOFF
4929 -- : BFD_RELOC_NDS32_GOTOFF_HI20
4930 -- : BFD_RELOC_NDS32_GOTOFF_LO12
4931 -- : BFD_RELOC_NDS32_GOTPC20
4932 -- : BFD_RELOC_NDS32_GOT_HI20
4933 -- : BFD_RELOC_NDS32_GOT_LO12
4934 -- : BFD_RELOC_NDS32_GOTPC_HI20
4935 -- : BFD_RELOC_NDS32_GOTPC_LO12
4936     for PIC
4937
4938 -- : BFD_RELOC_NDS32_INSN16
4939 -- : BFD_RELOC_NDS32_LABEL
4940 -- : BFD_RELOC_NDS32_LONGCALL1
4941 -- : BFD_RELOC_NDS32_LONGCALL2
4942 -- : BFD_RELOC_NDS32_LONGCALL3
4943 -- : BFD_RELOC_NDS32_LONGJUMP1
4944 -- : BFD_RELOC_NDS32_LONGJUMP2
4945 -- : BFD_RELOC_NDS32_LONGJUMP3
4946 -- : BFD_RELOC_NDS32_LOADSTORE
4947 -- : BFD_RELOC_NDS32_9_FIXED
4948 -- : BFD_RELOC_NDS32_15_FIXED
4949 -- : BFD_RELOC_NDS32_17_FIXED
4950 -- : BFD_RELOC_NDS32_25_FIXED
4951 -- : BFD_RELOC_NDS32_LONGCALL4
4952 -- : BFD_RELOC_NDS32_LONGCALL5
4953 -- : BFD_RELOC_NDS32_LONGCALL6
4954 -- : BFD_RELOC_NDS32_LONGJUMP4
4955 -- : BFD_RELOC_NDS32_LONGJUMP5
4956 -- : BFD_RELOC_NDS32_LONGJUMP6
4957 -- : BFD_RELOC_NDS32_LONGJUMP7
4958     for relax
4959
4960 -- : BFD_RELOC_NDS32_PLTREL_HI20
4961 -- : BFD_RELOC_NDS32_PLTREL_LO12
4962 -- : BFD_RELOC_NDS32_PLT_GOTREL_HI20
4963 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO12
4964     for PIC
4965
4966 -- : BFD_RELOC_NDS32_SDA12S2_DP
4967 -- : BFD_RELOC_NDS32_SDA12S2_SP
4968 -- : BFD_RELOC_NDS32_LO12S2_DP
4969 -- : BFD_RELOC_NDS32_LO12S2_SP
4970     for floating point
4971
4972 -- : BFD_RELOC_NDS32_DWARF2_OP1
4973 -- : BFD_RELOC_NDS32_DWARF2_OP2
4974 -- : BFD_RELOC_NDS32_DWARF2_LEB
4975     for dwarf2 debug_line.
4976
4977 -- : BFD_RELOC_NDS32_UPDATE_TA
4978     for eliminate 16-bit instructions
4979
4980 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO20
4981 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO15
4982 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO19
4983 -- : BFD_RELOC_NDS32_GOT_LO15
4984 -- : BFD_RELOC_NDS32_GOT_LO19
4985 -- : BFD_RELOC_NDS32_GOTOFF_LO15
4986 -- : BFD_RELOC_NDS32_GOTOFF_LO19
4987 -- : BFD_RELOC_NDS32_GOT15S2
4988 -- : BFD_RELOC_NDS32_GOT17S2
4989     for PIC object relaxation
4990
4991 -- : BFD_RELOC_NDS32_5
4992     NDS32 relocs.  This is a 5 bit absolute address.
4993
4994 -- : BFD_RELOC_NDS32_10_UPCREL
4995     This is a 10-bit unsigned pc-relative reloc with the right 1 bit
4996     assumed to be 0.
4997
4998 -- : BFD_RELOC_NDS32_SDA_FP7U2_RELA
4999     If fp were omitted, fp can used as another gp.
5000
5001 -- : BFD_RELOC_NDS32_RELAX_ENTRY
5002 -- : BFD_RELOC_NDS32_GOT_SUFF
5003 -- : BFD_RELOC_NDS32_GOTOFF_SUFF
5004 -- : BFD_RELOC_NDS32_PLT_GOT_SUFF
5005 -- : BFD_RELOC_NDS32_MULCALL_SUFF
5006 -- : BFD_RELOC_NDS32_PTR
5007 -- : BFD_RELOC_NDS32_PTR_COUNT
5008 -- : BFD_RELOC_NDS32_PTR_RESOLVED
5009 -- : BFD_RELOC_NDS32_PLTBLOCK
5010 -- : BFD_RELOC_NDS32_RELAX_REGION_BEGIN
5011 -- : BFD_RELOC_NDS32_RELAX_REGION_END
5012 -- : BFD_RELOC_NDS32_MINUEND
5013 -- : BFD_RELOC_NDS32_SUBTRAHEND
5014 -- : BFD_RELOC_NDS32_DIFF8
5015 -- : BFD_RELOC_NDS32_DIFF16
5016 -- : BFD_RELOC_NDS32_DIFF32
5017 -- : BFD_RELOC_NDS32_DIFF_ULEB128
5018 -- : BFD_RELOC_NDS32_EMPTY
5019     relaxation relative relocation types
5020
5021 -- : BFD_RELOC_NDS32_25_ABS
5022     This is a 25 bit absolute address.
5023
5024 -- : BFD_RELOC_NDS32_DATA
5025 -- : BFD_RELOC_NDS32_TRAN
5026 -- : BFD_RELOC_NDS32_17IFC_PCREL
5027 -- : BFD_RELOC_NDS32_10IFCU_PCREL
5028     For ex9 and ifc using.
5029
5030 -- : BFD_RELOC_NDS32_TPOFF
5031 -- : BFD_RELOC_NDS32_TLS_LE_HI20
5032 -- : BFD_RELOC_NDS32_TLS_LE_LO12
5033 -- : BFD_RELOC_NDS32_TLS_LE_ADD
5034 -- : BFD_RELOC_NDS32_TLS_LE_LS
5035 -- : BFD_RELOC_NDS32_GOTTPOFF
5036 -- : BFD_RELOC_NDS32_TLS_IE_HI20
5037 -- : BFD_RELOC_NDS32_TLS_IE_LO12S2
5038 -- : BFD_RELOC_NDS32_TLS_TPOFF
5039 -- : BFD_RELOC_NDS32_TLS_LE_20
5040 -- : BFD_RELOC_NDS32_TLS_LE_15S0
5041 -- : BFD_RELOC_NDS32_TLS_LE_15S1
5042 -- : BFD_RELOC_NDS32_TLS_LE_15S2
5043     For TLS.
5044
5045 -- : BFD_RELOC_V850_9_PCREL
5046     This is a 9-bit reloc
5047
5048 -- : BFD_RELOC_V850_22_PCREL
5049     This is a 22-bit reloc
5050
5051 -- : BFD_RELOC_V850_SDA_16_16_OFFSET
5052     This is a 16 bit offset from the short data area pointer.
5053
5054 -- : BFD_RELOC_V850_SDA_15_16_OFFSET
5055     This is a 16 bit offset (of which only 15 bits are used) from the
5056     short data area pointer.
5057
5058 -- : BFD_RELOC_V850_ZDA_16_16_OFFSET
5059     This is a 16 bit offset from the zero data area pointer.
5060
5061 -- : BFD_RELOC_V850_ZDA_15_16_OFFSET
5062     This is a 16 bit offset (of which only 15 bits are used) from the
5063     zero data area pointer.
5064
5065 -- : BFD_RELOC_V850_TDA_6_8_OFFSET
5066     This is an 8 bit offset (of which only 6 bits are used) from the
5067     tiny data area pointer.
5068
5069 -- : BFD_RELOC_V850_TDA_7_8_OFFSET
5070     This is an 8bit offset (of which only 7 bits are used) from the
5071     tiny data area pointer.
5072
5073 -- : BFD_RELOC_V850_TDA_7_7_OFFSET
5074     This is a 7 bit offset from the tiny data area pointer.
5075
5076 -- : BFD_RELOC_V850_TDA_16_16_OFFSET
5077     This is a 16 bit offset from the tiny data area pointer.
5078
5079 -- : BFD_RELOC_V850_TDA_4_5_OFFSET
5080     This is a 5 bit offset (of which only 4 bits are used) from the
5081     tiny data area pointer.
5082
5083 -- : BFD_RELOC_V850_TDA_4_4_OFFSET
5084     This is a 4 bit offset from the tiny data area pointer.
5085
5086 -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET
5087     This is a 16 bit offset from the short data area pointer, with the
5088     bits placed non-contiguously in the instruction.
5089
5090 -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET
5091     This is a 16 bit offset from the zero data area pointer, with the
5092     bits placed non-contiguously in the instruction.
5093
5094 -- : BFD_RELOC_V850_CALLT_6_7_OFFSET
5095     This is a 6 bit offset from the call table base pointer.
5096
5097 -- : BFD_RELOC_V850_CALLT_16_16_OFFSET
5098     This is a 16 bit offset from the call table base pointer.
5099
5100 -- : BFD_RELOC_V850_LONGCALL
5101     Used for relaxing indirect function calls.
5102
5103 -- : BFD_RELOC_V850_LONGJUMP
5104     Used for relaxing indirect jumps.
5105
5106 -- : BFD_RELOC_V850_ALIGN
5107     Used to maintain alignment whilst relaxing.
5108
5109 -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET
5110     This is a variation of BFD_RELOC_LO16 that can be used in v850e
5111     ld.bu instructions.
5112
5113 -- : BFD_RELOC_V850_16_PCREL
5114     This is a 16-bit reloc.
5115
5116 -- : BFD_RELOC_V850_17_PCREL
5117     This is a 17-bit reloc.
5118
5119 -- : BFD_RELOC_V850_23
5120     This is a 23-bit reloc.
5121
5122 -- : BFD_RELOC_V850_32_PCREL
5123     This is a 32-bit reloc.
5124
5125 -- : BFD_RELOC_V850_32_ABS
5126     This is a 32-bit reloc.
5127
5128 -- : BFD_RELOC_V850_16_SPLIT_OFFSET
5129     This is a 16-bit reloc.
5130
5131 -- : BFD_RELOC_V850_16_S1
5132     This is a 16-bit reloc.
5133
5134 -- : BFD_RELOC_V850_LO16_S1
5135     Low 16 bits. 16 bit shifted by 1.
5136
5137 -- : BFD_RELOC_V850_CALLT_15_16_OFFSET
5138     This is a 16 bit offset from the call table base pointer.
5139
5140 -- : BFD_RELOC_V850_32_GOTPCREL
5141     DSO relocations.
5142
5143 -- : BFD_RELOC_V850_16_GOT
5144     DSO relocations.
5145
5146 -- : BFD_RELOC_V850_32_GOT
5147     DSO relocations.
5148
5149 -- : BFD_RELOC_V850_22_PLT_PCREL
5150     DSO relocations.
5151
5152 -- : BFD_RELOC_V850_32_PLT_PCREL
5153     DSO relocations.
5154
5155 -- : BFD_RELOC_V850_COPY
5156     DSO relocations.
5157
5158 -- : BFD_RELOC_V850_GLOB_DAT
5159     DSO relocations.
5160
5161 -- : BFD_RELOC_V850_JMP_SLOT
5162     DSO relocations.
5163
5164 -- : BFD_RELOC_V850_RELATIVE
5165     DSO relocations.
5166
5167 -- : BFD_RELOC_V850_16_GOTOFF
5168     DSO relocations.
5169
5170 -- : BFD_RELOC_V850_32_GOTOFF
5171     DSO relocations.
5172
5173 -- : BFD_RELOC_V850_CODE
5174     start code.
5175
5176 -- : BFD_RELOC_V850_DATA
5177     start data in text.
5178
5179 -- : BFD_RELOC_TIC30_LDP
5180     This is a 8bit DP reloc for the tms320c30, where the most
5181     significant 8 bits of a 24 bit word are placed into the least
5182     significant 8 bits of the opcode.
5183
5184 -- : BFD_RELOC_TIC54X_PARTLS7
5185     This is a 7bit reloc for the tms320c54x, where the least
5186     significant 7 bits of a 16 bit word are placed into the least
5187     significant 7 bits of the opcode.
5188
5189 -- : BFD_RELOC_TIC54X_PARTMS9
5190     This is a 9bit DP reloc for the tms320c54x, where the most
5191     significant 9 bits of a 16 bit word are placed into the least
5192     significant 9 bits of the opcode.
5193
5194 -- : BFD_RELOC_TIC54X_23
5195     This is an extended address 23-bit reloc for the tms320c54x.
5196
5197 -- : BFD_RELOC_TIC54X_16_OF_23
5198     This is a 16-bit reloc for the tms320c54x, where the least
5199     significant 16 bits of a 23-bit extended address are placed into
5200     the opcode.
5201
5202 -- : BFD_RELOC_TIC54X_MS7_OF_23
5203     This is a reloc for the tms320c54x, where the most significant 7
5204     bits of a 23-bit extended address are placed into the opcode.
5205
5206 -- : BFD_RELOC_C6000_PCR_S21
5207 -- : BFD_RELOC_C6000_PCR_S12
5208 -- : BFD_RELOC_C6000_PCR_S10
5209 -- : BFD_RELOC_C6000_PCR_S7
5210 -- : BFD_RELOC_C6000_ABS_S16
5211 -- : BFD_RELOC_C6000_ABS_L16
5212 -- : BFD_RELOC_C6000_ABS_H16
5213 -- : BFD_RELOC_C6000_SBR_U15_B
5214 -- : BFD_RELOC_C6000_SBR_U15_H
5215 -- : BFD_RELOC_C6000_SBR_U15_W
5216 -- : BFD_RELOC_C6000_SBR_S16
5217 -- : BFD_RELOC_C6000_SBR_L16_B
5218 -- : BFD_RELOC_C6000_SBR_L16_H
5219 -- : BFD_RELOC_C6000_SBR_L16_W
5220 -- : BFD_RELOC_C6000_SBR_H16_B
5221 -- : BFD_RELOC_C6000_SBR_H16_H
5222 -- : BFD_RELOC_C6000_SBR_H16_W
5223 -- : BFD_RELOC_C6000_SBR_GOT_U15_W
5224 -- : BFD_RELOC_C6000_SBR_GOT_L16_W
5225 -- : BFD_RELOC_C6000_SBR_GOT_H16_W
5226 -- : BFD_RELOC_C6000_DSBT_INDEX
5227 -- : BFD_RELOC_C6000_PREL31
5228 -- : BFD_RELOC_C6000_COPY
5229 -- : BFD_RELOC_C6000_JUMP_SLOT
5230 -- : BFD_RELOC_C6000_EHTYPE
5231 -- : BFD_RELOC_C6000_PCR_H16
5232 -- : BFD_RELOC_C6000_PCR_L16
5233 -- : BFD_RELOC_C6000_ALIGN
5234 -- : BFD_RELOC_C6000_FPHEAD
5235 -- : BFD_RELOC_C6000_NOCMP
5236     TMS320C6000 relocations.
5237
5238 -- : BFD_RELOC_FR30_48
5239     This is a 48 bit reloc for the FR30 that stores 32 bits.
5240
5241 -- : BFD_RELOC_FR30_20
5242     This is a 32 bit reloc for the FR30 that stores 20 bits split up
5243     into two sections.
5244
5245 -- : BFD_RELOC_FR30_6_IN_4
5246     This is a 16 bit reloc for the FR30 that stores a 6 bit word
5247     offset in 4 bits.
5248
5249 -- : BFD_RELOC_FR30_8_IN_8
5250     This is a 16 bit reloc for the FR30 that stores an 8 bit byte
5251     offset into 8 bits.
5252
5253 -- : BFD_RELOC_FR30_9_IN_8
5254     This is a 16 bit reloc for the FR30 that stores a 9 bit short
5255     offset into 8 bits.
5256
5257 -- : BFD_RELOC_FR30_10_IN_8
5258     This is a 16 bit reloc for the FR30 that stores a 10 bit word
5259     offset into 8 bits.
5260
5261 -- : BFD_RELOC_FR30_9_PCREL
5262     This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
5263     short offset into 8 bits.
5264
5265 -- : BFD_RELOC_FR30_12_PCREL
5266     This is a 16 bit reloc for the FR30 that stores a 12 bit pc
5267     relative short offset into 11 bits.
5268
5269 -- : BFD_RELOC_MCORE_PCREL_IMM8BY4
5270 -- : BFD_RELOC_MCORE_PCREL_IMM11BY2
5271 -- : BFD_RELOC_MCORE_PCREL_IMM4BY2
5272 -- : BFD_RELOC_MCORE_PCREL_32
5273 -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2
5274 -- : BFD_RELOC_MCORE_RVA
5275     Motorola Mcore relocations.
5276
5277 -- : BFD_RELOC_MEP_8
5278 -- : BFD_RELOC_MEP_16
5279 -- : BFD_RELOC_MEP_32
5280 -- : BFD_RELOC_MEP_PCREL8A2
5281 -- : BFD_RELOC_MEP_PCREL12A2
5282 -- : BFD_RELOC_MEP_PCREL17A2
5283 -- : BFD_RELOC_MEP_PCREL24A2
5284 -- : BFD_RELOC_MEP_PCABS24A2
5285 -- : BFD_RELOC_MEP_LOW16
5286 -- : BFD_RELOC_MEP_HI16U
5287 -- : BFD_RELOC_MEP_HI16S
5288 -- : BFD_RELOC_MEP_GPREL
5289 -- : BFD_RELOC_MEP_TPREL
5290 -- : BFD_RELOC_MEP_TPREL7
5291 -- : BFD_RELOC_MEP_TPREL7A2
5292 -- : BFD_RELOC_MEP_TPREL7A4
5293 -- : BFD_RELOC_MEP_UIMM24
5294 -- : BFD_RELOC_MEP_ADDR24A4
5295 -- : BFD_RELOC_MEP_GNU_VTINHERIT
5296 -- : BFD_RELOC_MEP_GNU_VTENTRY
5297     Toshiba Media Processor Relocations.
5298
5299 -- : BFD_RELOC_METAG_HIADDR16
5300 -- : BFD_RELOC_METAG_LOADDR16
5301 -- : BFD_RELOC_METAG_RELBRANCH
5302 -- : BFD_RELOC_METAG_GETSETOFF
5303 -- : BFD_RELOC_METAG_HIOG
5304 -- : BFD_RELOC_METAG_LOOG
5305 -- : BFD_RELOC_METAG_REL8
5306 -- : BFD_RELOC_METAG_REL16
5307 -- : BFD_RELOC_METAG_HI16_GOTOFF
5308 -- : BFD_RELOC_METAG_LO16_GOTOFF
5309 -- : BFD_RELOC_METAG_GETSET_GOTOFF
5310 -- : BFD_RELOC_METAG_GETSET_GOT
5311 -- : BFD_RELOC_METAG_HI16_GOTPC
5312 -- : BFD_RELOC_METAG_LO16_GOTPC
5313 -- : BFD_RELOC_METAG_HI16_PLT
5314 -- : BFD_RELOC_METAG_LO16_PLT
5315 -- : BFD_RELOC_METAG_RELBRANCH_PLT
5316 -- : BFD_RELOC_METAG_GOTOFF
5317 -- : BFD_RELOC_METAG_PLT
5318 -- : BFD_RELOC_METAG_COPY
5319 -- : BFD_RELOC_METAG_JMP_SLOT
5320 -- : BFD_RELOC_METAG_RELATIVE
5321 -- : BFD_RELOC_METAG_GLOB_DAT
5322 -- : BFD_RELOC_METAG_TLS_GD
5323 -- : BFD_RELOC_METAG_TLS_LDM
5324 -- : BFD_RELOC_METAG_TLS_LDO_HI16
5325 -- : BFD_RELOC_METAG_TLS_LDO_LO16
5326 -- : BFD_RELOC_METAG_TLS_LDO
5327 -- : BFD_RELOC_METAG_TLS_IE
5328 -- : BFD_RELOC_METAG_TLS_IENONPIC
5329 -- : BFD_RELOC_METAG_TLS_IENONPIC_HI16
5330 -- : BFD_RELOC_METAG_TLS_IENONPIC_LO16
5331 -- : BFD_RELOC_METAG_TLS_TPOFF
5332 -- : BFD_RELOC_METAG_TLS_DTPMOD
5333 -- : BFD_RELOC_METAG_TLS_DTPOFF
5334 -- : BFD_RELOC_METAG_TLS_LE
5335 -- : BFD_RELOC_METAG_TLS_LE_HI16
5336 -- : BFD_RELOC_METAG_TLS_LE_LO16
5337     Imagination Technologies Meta relocations.
5338
5339 -- : BFD_RELOC_MMIX_GETA
5340 -- : BFD_RELOC_MMIX_GETA_1
5341 -- : BFD_RELOC_MMIX_GETA_2
5342 -- : BFD_RELOC_MMIX_GETA_3
5343     These are relocations for the GETA instruction.
5344
5345 -- : BFD_RELOC_MMIX_CBRANCH
5346 -- : BFD_RELOC_MMIX_CBRANCH_J
5347 -- : BFD_RELOC_MMIX_CBRANCH_1
5348 -- : BFD_RELOC_MMIX_CBRANCH_2
5349 -- : BFD_RELOC_MMIX_CBRANCH_3
5350     These are relocations for a conditional branch instruction.
5351
5352 -- : BFD_RELOC_MMIX_PUSHJ
5353 -- : BFD_RELOC_MMIX_PUSHJ_1
5354 -- : BFD_RELOC_MMIX_PUSHJ_2
5355 -- : BFD_RELOC_MMIX_PUSHJ_3
5356 -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE
5357     These are relocations for the PUSHJ instruction.
5358
5359 -- : BFD_RELOC_MMIX_JMP
5360 -- : BFD_RELOC_MMIX_JMP_1
5361 -- : BFD_RELOC_MMIX_JMP_2
5362 -- : BFD_RELOC_MMIX_JMP_3
5363     These are relocations for the JMP instruction.
5364
5365 -- : BFD_RELOC_MMIX_ADDR19
5366     This is a relocation for a relative address as in a GETA
5367     instruction or a branch.
5368
5369 -- : BFD_RELOC_MMIX_ADDR27
5370     This is a relocation for a relative address as in a JMP
5371     instruction.
5372
5373 -- : BFD_RELOC_MMIX_REG_OR_BYTE
5374     This is a relocation for an instruction field that may be a general
5375     register or a value 0..255.
5376
5377 -- : BFD_RELOC_MMIX_REG
5378     This is a relocation for an instruction field that may be a general
5379     register.
5380
5381 -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET
5382     This is a relocation for two instruction fields holding a register
5383     and an offset, the equivalent of the relocation.
5384
5385 -- : BFD_RELOC_MMIX_LOCAL
5386     This relocation is an assertion that the expression is not
5387     allocated as a global register.  It does not modify contents.
5388
5389 -- : BFD_RELOC_AVR_7_PCREL
5390     This is a 16 bit reloc for the AVR that stores 8 bit pc relative
5391     short offset into 7 bits.
5392
5393 -- : BFD_RELOC_AVR_13_PCREL
5394     This is a 16 bit reloc for the AVR that stores 13 bit pc relative
5395     short offset into 12 bits.
5396
5397 -- : BFD_RELOC_AVR_16_PM
5398     This is a 16 bit reloc for the AVR that stores 17 bit value
5399     (usually program memory address) into 16 bits.
5400
5401 -- : BFD_RELOC_AVR_LO8_LDI
5402     This is a 16 bit reloc for the AVR that stores 8 bit value (usually
5403     data memory address) into 8 bit immediate value of LDI insn.
5404
5405 -- : BFD_RELOC_AVR_HI8_LDI
5406     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
5407     bit of data memory address) into 8 bit immediate value of LDI insn.
5408
5409 -- : BFD_RELOC_AVR_HH8_LDI
5410     This is a 16 bit reloc for the AVR that stores 8 bit value (most
5411     high 8 bit of program memory address) into 8 bit immediate value
5412     of LDI insn.
5413
5414 -- : BFD_RELOC_AVR_MS8_LDI
5415     This is a 16 bit reloc for the AVR that stores 8 bit value (most
5416     high 8 bit of 32 bit value) into 8 bit immediate value of LDI insn.
5417
5418 -- : BFD_RELOC_AVR_LO8_LDI_NEG
5419     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5420     (usually data memory address) into 8 bit immediate value of SUBI
5421     insn.
5422
5423 -- : BFD_RELOC_AVR_HI8_LDI_NEG
5424     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5425     (high 8 bit of data memory address) into 8 bit immediate value of
5426     SUBI insn.
5427
5428 -- : BFD_RELOC_AVR_HH8_LDI_NEG
5429     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5430     (most high 8 bit of program memory address) into 8 bit immediate
5431     value of LDI or SUBI insn.
5432
5433 -- : BFD_RELOC_AVR_MS8_LDI_NEG
5434     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5435     (msb of 32 bit value) into 8 bit immediate value of LDI insn.
5436
5437 -- : BFD_RELOC_AVR_LO8_LDI_PM
5438     This is a 16 bit reloc for the AVR that stores 8 bit value (usually
5439     command address) into 8 bit immediate value of LDI insn.
5440
5441 -- : BFD_RELOC_AVR_LO8_LDI_GS
5442     This is a 16 bit reloc for the AVR that stores 8 bit value
5443     (command address) into 8 bit immediate value of LDI insn. If the
5444     address is beyond the 128k boundary, the linker inserts a jump
5445     stub for this reloc in the lower 128k.
5446
5447 -- : BFD_RELOC_AVR_HI8_LDI_PM
5448     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
5449     bit of command address) into 8 bit immediate value of LDI insn.
5450
5451 -- : BFD_RELOC_AVR_HI8_LDI_GS
5452     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
5453     bit of command address) into 8 bit immediate value of LDI insn.
5454     If the address is beyond the 128k boundary, the linker inserts a
5455     jump stub for this reloc below 128k.
5456
5457 -- : BFD_RELOC_AVR_HH8_LDI_PM
5458     This is a 16 bit reloc for the AVR that stores 8 bit value (most
5459     high 8 bit of command address) into 8 bit immediate value of LDI
5460     insn.
5461
5462 -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG
5463     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5464     (usually command address) into 8 bit immediate value of SUBI insn.
5465
5466 -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG
5467     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5468     (high 8 bit of 16 bit command address) into 8 bit immediate value
5469     of SUBI insn.
5470
5471 -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG
5472     This is a 16 bit reloc for the AVR that stores negated 8 bit value
5473     (high 6 bit of 22 bit command address) into 8 bit immediate value
5474     of SUBI insn.
5475
5476 -- : BFD_RELOC_AVR_CALL
5477     This is a 32 bit reloc for the AVR that stores 23 bit value into
5478     22 bits.
5479
5480 -- : BFD_RELOC_AVR_LDI
5481     This is a 16 bit reloc for the AVR that stores all needed bits for
5482     absolute addressing with ldi with overflow check to linktime
5483
5484 -- : BFD_RELOC_AVR_6
5485     This is a 6 bit reloc for the AVR that stores offset for ldd/std
5486     instructions
5487
5488 -- : BFD_RELOC_AVR_6_ADIW
5489     This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
5490     instructions
5491
5492 -- : BFD_RELOC_AVR_8_LO
5493     This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol
5494     in .byte lo8(symbol)
5495
5496 -- : BFD_RELOC_AVR_8_HI
5497     This is a 8 bit reloc for the AVR that stores bits 8..15 of a
5498     symbol in .byte hi8(symbol)
5499
5500 -- : BFD_RELOC_AVR_8_HLO
5501     This is a 8 bit reloc for the AVR that stores bits 16..23 of a
5502     symbol in .byte hlo8(symbol)
5503
5504 -- : BFD_RELOC_AVR_DIFF8
5505 -- : BFD_RELOC_AVR_DIFF16
5506 -- : BFD_RELOC_AVR_DIFF32
5507     AVR relocations to mark the difference of two local symbols.
5508     These are only needed to support linker relaxation and can be
5509     ignored when not relaxing.  The field is set to the value of the
5510     difference assuming no relaxation.  The relocation encodes the
5511     position of the second symbol so the linker can determine whether
5512     to adjust the field value.
5513
5514 -- : BFD_RELOC_AVR_LDS_STS_16
5515     This is a 7 bit reloc for the AVR that stores SRAM address for
5516     16bit lds and sts instructions supported only tiny core.
5517
5518 -- : BFD_RELOC_AVR_PORT6
5519     This is a 6 bit reloc for the AVR that stores an I/O register
5520     number for the IN and OUT instructions
5521
5522 -- : BFD_RELOC_AVR_PORT5
5523     This is a 5 bit reloc for the AVR that stores an I/O register
5524     number for the SBIC, SBIS, SBI and CBI instructions
5525
5526 -- : BFD_RELOC_RL78_NEG8
5527 -- : BFD_RELOC_RL78_NEG16
5528 -- : BFD_RELOC_RL78_NEG24
5529 -- : BFD_RELOC_RL78_NEG32
5530 -- : BFD_RELOC_RL78_16_OP
5531 -- : BFD_RELOC_RL78_24_OP
5532 -- : BFD_RELOC_RL78_32_OP
5533 -- : BFD_RELOC_RL78_8U
5534 -- : BFD_RELOC_RL78_16U
5535 -- : BFD_RELOC_RL78_24U
5536 -- : BFD_RELOC_RL78_DIR3U_PCREL
5537 -- : BFD_RELOC_RL78_DIFF
5538 -- : BFD_RELOC_RL78_GPRELB
5539 -- : BFD_RELOC_RL78_GPRELW
5540 -- : BFD_RELOC_RL78_GPRELL
5541 -- : BFD_RELOC_RL78_SYM
5542 -- : BFD_RELOC_RL78_OP_SUBTRACT
5543 -- : BFD_RELOC_RL78_OP_NEG
5544 -- : BFD_RELOC_RL78_OP_AND
5545 -- : BFD_RELOC_RL78_OP_SHRA
5546 -- : BFD_RELOC_RL78_ABS8
5547 -- : BFD_RELOC_RL78_ABS16
5548 -- : BFD_RELOC_RL78_ABS16_REV
5549 -- : BFD_RELOC_RL78_ABS32
5550 -- : BFD_RELOC_RL78_ABS32_REV
5551 -- : BFD_RELOC_RL78_ABS16U
5552 -- : BFD_RELOC_RL78_ABS16UW
5553 -- : BFD_RELOC_RL78_ABS16UL
5554 -- : BFD_RELOC_RL78_RELAX
5555 -- : BFD_RELOC_RL78_HI16
5556 -- : BFD_RELOC_RL78_HI8
5557 -- : BFD_RELOC_RL78_LO16
5558 -- : BFD_RELOC_RL78_CODE
5559 -- : BFD_RELOC_RL78_SADDR
5560     Renesas RL78 Relocations.
5561
5562 -- : BFD_RELOC_RX_NEG8
5563 -- : BFD_RELOC_RX_NEG16
5564 -- : BFD_RELOC_RX_NEG24
5565 -- : BFD_RELOC_RX_NEG32
5566 -- : BFD_RELOC_RX_16_OP
5567 -- : BFD_RELOC_RX_24_OP
5568 -- : BFD_RELOC_RX_32_OP
5569 -- : BFD_RELOC_RX_8U
5570 -- : BFD_RELOC_RX_16U
5571 -- : BFD_RELOC_RX_24U
5572 -- : BFD_RELOC_RX_DIR3U_PCREL
5573 -- : BFD_RELOC_RX_DIFF
5574 -- : BFD_RELOC_RX_GPRELB
5575 -- : BFD_RELOC_RX_GPRELW
5576 -- : BFD_RELOC_RX_GPRELL
5577 -- : BFD_RELOC_RX_SYM
5578 -- : BFD_RELOC_RX_OP_SUBTRACT
5579 -- : BFD_RELOC_RX_OP_NEG
5580 -- : BFD_RELOC_RX_ABS8
5581 -- : BFD_RELOC_RX_ABS16
5582 -- : BFD_RELOC_RX_ABS16_REV
5583 -- : BFD_RELOC_RX_ABS32
5584 -- : BFD_RELOC_RX_ABS32_REV
5585 -- : BFD_RELOC_RX_ABS16U
5586 -- : BFD_RELOC_RX_ABS16UW
5587 -- : BFD_RELOC_RX_ABS16UL
5588 -- : BFD_RELOC_RX_RELAX
5589     Renesas RX Relocations.
5590
5591 -- : BFD_RELOC_390_12
5592     Direct 12 bit.
5593
5594 -- : BFD_RELOC_390_GOT12
5595     12 bit GOT offset.
5596
5597 -- : BFD_RELOC_390_PLT32
5598     32 bit PC relative PLT address.
5599
5600 -- : BFD_RELOC_390_COPY
5601     Copy symbol at runtime.
5602
5603 -- : BFD_RELOC_390_GLOB_DAT
5604     Create GOT entry.
5605
5606 -- : BFD_RELOC_390_JMP_SLOT
5607     Create PLT entry.
5608
5609 -- : BFD_RELOC_390_RELATIVE
5610     Adjust by program base.
5611
5612 -- : BFD_RELOC_390_GOTPC
5613     32 bit PC relative offset to GOT.
5614
5615 -- : BFD_RELOC_390_GOT16
5616     16 bit GOT offset.
5617
5618 -- : BFD_RELOC_390_PC12DBL
5619     PC relative 12 bit shifted by 1.
5620
5621 -- : BFD_RELOC_390_PLT12DBL
5622     12 bit PC rel. PLT shifted by 1.
5623
5624 -- : BFD_RELOC_390_PC16DBL
5625     PC relative 16 bit shifted by 1.
5626
5627 -- : BFD_RELOC_390_PLT16DBL
5628     16 bit PC rel. PLT shifted by 1.
5629
5630 -- : BFD_RELOC_390_PC24DBL
5631     PC relative 24 bit shifted by 1.
5632
5633 -- : BFD_RELOC_390_PLT24DBL
5634     24 bit PC rel. PLT shifted by 1.
5635
5636 -- : BFD_RELOC_390_PC32DBL
5637     PC relative 32 bit shifted by 1.
5638
5639 -- : BFD_RELOC_390_PLT32DBL
5640     32 bit PC rel. PLT shifted by 1.
5641
5642 -- : BFD_RELOC_390_GOTPCDBL
5643     32 bit PC rel. GOT shifted by 1.
5644
5645 -- : BFD_RELOC_390_GOT64
5646     64 bit GOT offset.
5647
5648 -- : BFD_RELOC_390_PLT64
5649     64 bit PC relative PLT address.
5650
5651 -- : BFD_RELOC_390_GOTENT
5652     32 bit rel. offset to GOT entry.
5653
5654 -- : BFD_RELOC_390_GOTOFF64
5655     64 bit offset to GOT.
5656
5657 -- : BFD_RELOC_390_GOTPLT12
5658     12-bit offset to symbol-entry within GOT, with PLT handling.
5659
5660 -- : BFD_RELOC_390_GOTPLT16
5661     16-bit offset to symbol-entry within GOT, with PLT handling.
5662
5663 -- : BFD_RELOC_390_GOTPLT32
5664     32-bit offset to symbol-entry within GOT, with PLT handling.
5665
5666 -- : BFD_RELOC_390_GOTPLT64
5667     64-bit offset to symbol-entry within GOT, with PLT handling.
5668
5669 -- : BFD_RELOC_390_GOTPLTENT
5670     32-bit rel. offset to symbol-entry within GOT, with PLT handling.
5671
5672 -- : BFD_RELOC_390_PLTOFF16
5673     16-bit rel. offset from the GOT to a PLT entry.
5674
5675 -- : BFD_RELOC_390_PLTOFF32
5676     32-bit rel. offset from the GOT to a PLT entry.
5677
5678 -- : BFD_RELOC_390_PLTOFF64
5679     64-bit rel. offset from the GOT to a PLT entry.
5680
5681 -- : BFD_RELOC_390_TLS_LOAD
5682 -- : BFD_RELOC_390_TLS_GDCALL
5683 -- : BFD_RELOC_390_TLS_LDCALL
5684 -- : BFD_RELOC_390_TLS_GD32
5685 -- : BFD_RELOC_390_TLS_GD64
5686 -- : BFD_RELOC_390_TLS_GOTIE12
5687 -- : BFD_RELOC_390_TLS_GOTIE32
5688 -- : BFD_RELOC_390_TLS_GOTIE64
5689 -- : BFD_RELOC_390_TLS_LDM32
5690 -- : BFD_RELOC_390_TLS_LDM64
5691 -- : BFD_RELOC_390_TLS_IE32
5692 -- : BFD_RELOC_390_TLS_IE64
5693 -- : BFD_RELOC_390_TLS_IEENT
5694 -- : BFD_RELOC_390_TLS_LE32
5695 -- : BFD_RELOC_390_TLS_LE64
5696 -- : BFD_RELOC_390_TLS_LDO32
5697 -- : BFD_RELOC_390_TLS_LDO64
5698 -- : BFD_RELOC_390_TLS_DTPMOD
5699 -- : BFD_RELOC_390_TLS_DTPOFF
5700 -- : BFD_RELOC_390_TLS_TPOFF
5701     s390 tls relocations.
5702
5703 -- : BFD_RELOC_390_20
5704 -- : BFD_RELOC_390_GOT20
5705 -- : BFD_RELOC_390_GOTPLT20
5706 -- : BFD_RELOC_390_TLS_GOTIE20
5707     Long displacement extension.
5708
5709 -- : BFD_RELOC_390_IRELATIVE
5710     STT_GNU_IFUNC relocation.
5711
5712 -- : BFD_RELOC_SCORE_GPREL15
5713     Score relocations Low 16 bit for load/store
5714
5715 -- : BFD_RELOC_SCORE_DUMMY2
5716 -- : BFD_RELOC_SCORE_JMP
5717     This is a 24-bit reloc with the right 1 bit assumed to be 0
5718
5719 -- : BFD_RELOC_SCORE_BRANCH
5720     This is a 19-bit reloc with the right 1 bit assumed to be 0
5721
5722 -- : BFD_RELOC_SCORE_IMM30
5723     This is a 32-bit reloc for 48-bit instructions.
5724
5725 -- : BFD_RELOC_SCORE_IMM32
5726     This is a 32-bit reloc for 48-bit instructions.
5727
5728 -- : BFD_RELOC_SCORE16_JMP
5729     This is a 11-bit reloc with the right 1 bit assumed to be 0
5730
5731 -- : BFD_RELOC_SCORE16_BRANCH
5732     This is a 8-bit reloc with the right 1 bit assumed to be 0
5733
5734 -- : BFD_RELOC_SCORE_BCMP
5735     This is a 9-bit reloc with the right 1 bit assumed to be 0
5736
5737 -- : BFD_RELOC_SCORE_GOT15
5738 -- : BFD_RELOC_SCORE_GOT_LO16
5739 -- : BFD_RELOC_SCORE_CALL15
5740 -- : BFD_RELOC_SCORE_DUMMY_HI16
5741     Undocumented Score relocs
5742
5743 -- : BFD_RELOC_IP2K_FR9
5744     Scenix IP2K - 9-bit register number / data address
5745
5746 -- : BFD_RELOC_IP2K_BANK
5747     Scenix IP2K - 4-bit register/data bank number
5748
5749 -- : BFD_RELOC_IP2K_ADDR16CJP
5750     Scenix IP2K - low 13 bits of instruction word address
5751
5752 -- : BFD_RELOC_IP2K_PAGE3
5753     Scenix IP2K - high 3 bits of instruction word address
5754
5755 -- : BFD_RELOC_IP2K_LO8DATA
5756 -- : BFD_RELOC_IP2K_HI8DATA
5757 -- : BFD_RELOC_IP2K_EX8DATA
5758     Scenix IP2K - ext/low/high 8 bits of data address
5759
5760 -- : BFD_RELOC_IP2K_LO8INSN
5761 -- : BFD_RELOC_IP2K_HI8INSN
5762     Scenix IP2K - low/high 8 bits of instruction word address
5763
5764 -- : BFD_RELOC_IP2K_PC_SKIP
5765     Scenix IP2K - even/odd PC modifier to modify snb pcl.0
5766
5767 -- : BFD_RELOC_IP2K_TEXT
5768     Scenix IP2K - 16 bit word address in text section.
5769
5770 -- : BFD_RELOC_IP2K_FR_OFFSET
5771     Scenix IP2K - 7-bit sp or dp offset
5772
5773 -- : BFD_RELOC_VPE4KMATH_DATA
5774 -- : BFD_RELOC_VPE4KMATH_INSN
5775     Scenix VPE4K coprocessor - data/insn-space addressing
5776
5777 -- : BFD_RELOC_VTABLE_INHERIT
5778 -- : BFD_RELOC_VTABLE_ENTRY
5779     These two relocations are used by the linker to determine which of
5780     the entries in a C++ virtual function table are actually used.
5781     When the -gc-sections option is given, the linker will zero out
5782     the entries that are not used, so that the code for those
5783     functions need not be included in the output.
5784
5785     VTABLE_INHERIT is a zero-space relocation used to describe to the
5786     linker the inheritance tree of a C++ virtual function table.  The
5787     relocation's symbol should be the parent class' vtable, and the
5788     relocation should be located at the child vtable.
5789
5790     VTABLE_ENTRY is a zero-space relocation that describes the use of a
5791     virtual function table entry.  The reloc's symbol should refer to
5792     the table of the class mentioned in the code.  Off of that base,
5793     an offset describes the entry that is being used.  For Rela hosts,
5794     this offset is stored in the reloc's addend.  For Rel hosts, we
5795     are forced to put this offset in the reloc's section offset.
5796
5797 -- : BFD_RELOC_IA64_IMM14
5798 -- : BFD_RELOC_IA64_IMM22
5799 -- : BFD_RELOC_IA64_IMM64
5800 -- : BFD_RELOC_IA64_DIR32MSB
5801 -- : BFD_RELOC_IA64_DIR32LSB
5802 -- : BFD_RELOC_IA64_DIR64MSB
5803 -- : BFD_RELOC_IA64_DIR64LSB
5804 -- : BFD_RELOC_IA64_GPREL22
5805 -- : BFD_RELOC_IA64_GPREL64I
5806 -- : BFD_RELOC_IA64_GPREL32MSB
5807 -- : BFD_RELOC_IA64_GPREL32LSB
5808 -- : BFD_RELOC_IA64_GPREL64MSB
5809 -- : BFD_RELOC_IA64_GPREL64LSB
5810 -- : BFD_RELOC_IA64_LTOFF22
5811 -- : BFD_RELOC_IA64_LTOFF64I
5812 -- : BFD_RELOC_IA64_PLTOFF22
5813 -- : BFD_RELOC_IA64_PLTOFF64I
5814 -- : BFD_RELOC_IA64_PLTOFF64MSB
5815 -- : BFD_RELOC_IA64_PLTOFF64LSB
5816 -- : BFD_RELOC_IA64_FPTR64I
5817 -- : BFD_RELOC_IA64_FPTR32MSB
5818 -- : BFD_RELOC_IA64_FPTR32LSB
5819 -- : BFD_RELOC_IA64_FPTR64MSB
5820 -- : BFD_RELOC_IA64_FPTR64LSB
5821 -- : BFD_RELOC_IA64_PCREL21B
5822 -- : BFD_RELOC_IA64_PCREL21BI
5823 -- : BFD_RELOC_IA64_PCREL21M
5824 -- : BFD_RELOC_IA64_PCREL21F
5825 -- : BFD_RELOC_IA64_PCREL22
5826 -- : BFD_RELOC_IA64_PCREL60B
5827 -- : BFD_RELOC_IA64_PCREL64I
5828 -- : BFD_RELOC_IA64_PCREL32MSB
5829 -- : BFD_RELOC_IA64_PCREL32LSB
5830 -- : BFD_RELOC_IA64_PCREL64MSB
5831 -- : BFD_RELOC_IA64_PCREL64LSB
5832 -- : BFD_RELOC_IA64_LTOFF_FPTR22
5833 -- : BFD_RELOC_IA64_LTOFF_FPTR64I
5834 -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB
5835 -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB
5836 -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB
5837 -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB
5838 -- : BFD_RELOC_IA64_SEGREL32MSB
5839 -- : BFD_RELOC_IA64_SEGREL32LSB
5840 -- : BFD_RELOC_IA64_SEGREL64MSB
5841 -- : BFD_RELOC_IA64_SEGREL64LSB
5842 -- : BFD_RELOC_IA64_SECREL32MSB
5843 -- : BFD_RELOC_IA64_SECREL32LSB
5844 -- : BFD_RELOC_IA64_SECREL64MSB
5845 -- : BFD_RELOC_IA64_SECREL64LSB
5846 -- : BFD_RELOC_IA64_REL32MSB
5847 -- : BFD_RELOC_IA64_REL32LSB
5848 -- : BFD_RELOC_IA64_REL64MSB
5849 -- : BFD_RELOC_IA64_REL64LSB
5850 -- : BFD_RELOC_IA64_LTV32MSB
5851 -- : BFD_RELOC_IA64_LTV32LSB
5852 -- : BFD_RELOC_IA64_LTV64MSB
5853 -- : BFD_RELOC_IA64_LTV64LSB
5854 -- : BFD_RELOC_IA64_IPLTMSB
5855 -- : BFD_RELOC_IA64_IPLTLSB
5856 -- : BFD_RELOC_IA64_COPY
5857 -- : BFD_RELOC_IA64_LTOFF22X
5858 -- : BFD_RELOC_IA64_LDXMOV
5859 -- : BFD_RELOC_IA64_TPREL14
5860 -- : BFD_RELOC_IA64_TPREL22
5861 -- : BFD_RELOC_IA64_TPREL64I
5862 -- : BFD_RELOC_IA64_TPREL64MSB
5863 -- : BFD_RELOC_IA64_TPREL64LSB
5864 -- : BFD_RELOC_IA64_LTOFF_TPREL22
5865 -- : BFD_RELOC_IA64_DTPMOD64MSB
5866 -- : BFD_RELOC_IA64_DTPMOD64LSB
5867 -- : BFD_RELOC_IA64_LTOFF_DTPMOD22
5868 -- : BFD_RELOC_IA64_DTPREL14
5869 -- : BFD_RELOC_IA64_DTPREL22
5870 -- : BFD_RELOC_IA64_DTPREL64I
5871 -- : BFD_RELOC_IA64_DTPREL32MSB
5872 -- : BFD_RELOC_IA64_DTPREL32LSB
5873 -- : BFD_RELOC_IA64_DTPREL64MSB
5874 -- : BFD_RELOC_IA64_DTPREL64LSB
5875 -- : BFD_RELOC_IA64_LTOFF_DTPREL22
5876     Intel IA64 Relocations.
5877
5878 -- : BFD_RELOC_M68HC11_HI8
5879     Motorola 68HC11 reloc.  This is the 8 bit high part of an absolute
5880     address.
5881
5882 -- : BFD_RELOC_M68HC11_LO8
5883     Motorola 68HC11 reloc.  This is the 8 bit low part of an absolute
5884     address.
5885
5886 -- : BFD_RELOC_M68HC11_3B
5887     Motorola 68HC11 reloc.  This is the 3 bit of a value.
5888
5889 -- : BFD_RELOC_M68HC11_RL_JUMP
5890     Motorola 68HC11 reloc.  This reloc marks the beginning of a
5891     jump/call instruction.  It is used for linker relaxation to
5892     correctly identify beginning of instruction and change some
5893     branches to use PC-relative addressing mode.
5894
5895 -- : BFD_RELOC_M68HC11_RL_GROUP
5896     Motorola 68HC11 reloc.  This reloc marks a group of several
5897     instructions that gcc generates and for which the linker
5898     relaxation pass can modify and/or remove some of them.
5899
5900 -- : BFD_RELOC_M68HC11_LO16
5901     Motorola 68HC11 reloc.  This is the 16-bit lower part of an
5902     address.  It is used for 'call' instruction to specify the symbol
5903     address without any special transformation (due to memory bank
5904     window).
5905
5906 -- : BFD_RELOC_M68HC11_PAGE
5907     Motorola 68HC11 reloc.  This is a 8-bit reloc that specifies the
5908     page number of an address.  It is used by 'call' instruction to
5909     specify the page number of the symbol.
5910
5911 -- : BFD_RELOC_M68HC11_24
5912     Motorola 68HC11 reloc.  This is a 24-bit reloc that represents the
5913     address with a 16-bit value and a 8-bit page number.  The symbol
5914     address is transformed to follow the 16K memory bank of 68HC12
5915     (seen as mapped in the window).
5916
5917 -- : BFD_RELOC_M68HC12_5B
5918     Motorola 68HC12 reloc.  This is the 5 bits of a value.
5919
5920 -- : BFD_RELOC_XGATE_RL_JUMP
5921     Freescale XGATE reloc.  This reloc marks the beginning of a
5922     bra/jal instruction.
5923
5924 -- : BFD_RELOC_XGATE_RL_GROUP
5925     Freescale XGATE reloc.  This reloc marks a group of several
5926     instructions that gcc generates and for which the linker
5927     relaxation pass can modify and/or remove some of them.
5928
5929 -- : BFD_RELOC_XGATE_LO16
5930     Freescale XGATE reloc.  This is the 16-bit lower part of an
5931     address.  It is used for the '16-bit' instructions.
5932
5933 -- : BFD_RELOC_XGATE_GPAGE
5934     Freescale XGATE reloc.
5935
5936 -- : BFD_RELOC_XGATE_24
5937     Freescale XGATE reloc.
5938
5939 -- : BFD_RELOC_XGATE_PCREL_9
5940     Freescale XGATE reloc.  This is a 9-bit pc-relative reloc.
5941
5942 -- : BFD_RELOC_XGATE_PCREL_10
5943     Freescale XGATE reloc.  This is a 10-bit pc-relative reloc.
5944
5945 -- : BFD_RELOC_XGATE_IMM8_LO
5946     Freescale XGATE reloc.  This is the 16-bit lower part of an
5947     address.  It is used for the '16-bit' instructions.
5948
5949 -- : BFD_RELOC_XGATE_IMM8_HI
5950     Freescale XGATE reloc.  This is the 16-bit higher part of an
5951     address.  It is used for the '16-bit' instructions.
5952
5953 -- : BFD_RELOC_XGATE_IMM3
5954     Freescale XGATE reloc.  This is a 3-bit pc-relative reloc.
5955
5956 -- : BFD_RELOC_XGATE_IMM4
5957     Freescale XGATE reloc.  This is a 4-bit pc-relative reloc.
5958
5959 -- : BFD_RELOC_XGATE_IMM5
5960     Freescale XGATE reloc.  This is a 5-bit pc-relative reloc.
5961
5962 -- : BFD_RELOC_M68HC12_9B
5963     Motorola 68HC12 reloc.  This is the 9 bits of a value.
5964
5965 -- : BFD_RELOC_M68HC12_16B
5966     Motorola 68HC12 reloc.  This is the 16 bits of a value.
5967
5968 -- : BFD_RELOC_M68HC12_9_PCREL
5969     Motorola 68HC12/XGATE reloc.  This is a PCREL9 branch.
5970
5971 -- : BFD_RELOC_M68HC12_10_PCREL
5972     Motorola 68HC12/XGATE reloc.  This is a PCREL10 branch.
5973
5974 -- : BFD_RELOC_M68HC12_LO8XG
5975     Motorola 68HC12/XGATE reloc.  This is the 8 bit low part of an
5976     absolute address and immediately precedes a matching HI8XG part.
5977
5978 -- : BFD_RELOC_M68HC12_HI8XG
5979     Motorola 68HC12/XGATE reloc.  This is the 8 bit high part of an
5980     absolute address and immediately follows a matching LO8XG part.
5981
5982 -- : BFD_RELOC_16C_NUM08
5983 -- : BFD_RELOC_16C_NUM08_C
5984 -- : BFD_RELOC_16C_NUM16
5985 -- : BFD_RELOC_16C_NUM16_C
5986 -- : BFD_RELOC_16C_NUM32
5987 -- : BFD_RELOC_16C_NUM32_C
5988 -- : BFD_RELOC_16C_DISP04
5989 -- : BFD_RELOC_16C_DISP04_C
5990 -- : BFD_RELOC_16C_DISP08
5991 -- : BFD_RELOC_16C_DISP08_C
5992 -- : BFD_RELOC_16C_DISP16
5993 -- : BFD_RELOC_16C_DISP16_C
5994 -- : BFD_RELOC_16C_DISP24
5995 -- : BFD_RELOC_16C_DISP24_C
5996 -- : BFD_RELOC_16C_DISP24a
5997 -- : BFD_RELOC_16C_DISP24a_C
5998 -- : BFD_RELOC_16C_REG04
5999 -- : BFD_RELOC_16C_REG04_C
6000 -- : BFD_RELOC_16C_REG04a
6001 -- : BFD_RELOC_16C_REG04a_C
6002 -- : BFD_RELOC_16C_REG14
6003 -- : BFD_RELOC_16C_REG14_C
6004 -- : BFD_RELOC_16C_REG16
6005 -- : BFD_RELOC_16C_REG16_C
6006 -- : BFD_RELOC_16C_REG20
6007 -- : BFD_RELOC_16C_REG20_C
6008 -- : BFD_RELOC_16C_ABS20
6009 -- : BFD_RELOC_16C_ABS20_C
6010 -- : BFD_RELOC_16C_ABS24
6011 -- : BFD_RELOC_16C_ABS24_C
6012 -- : BFD_RELOC_16C_IMM04
6013 -- : BFD_RELOC_16C_IMM04_C
6014 -- : BFD_RELOC_16C_IMM16
6015 -- : BFD_RELOC_16C_IMM16_C
6016 -- : BFD_RELOC_16C_IMM20
6017 -- : BFD_RELOC_16C_IMM20_C
6018 -- : BFD_RELOC_16C_IMM24
6019 -- : BFD_RELOC_16C_IMM24_C
6020 -- : BFD_RELOC_16C_IMM32
6021 -- : BFD_RELOC_16C_IMM32_C
6022     NS CR16C Relocations.
6023
6024 -- : BFD_RELOC_CR16_NUM8
6025 -- : BFD_RELOC_CR16_NUM16
6026 -- : BFD_RELOC_CR16_NUM32
6027 -- : BFD_RELOC_CR16_NUM32a
6028 -- : BFD_RELOC_CR16_REGREL0
6029 -- : BFD_RELOC_CR16_REGREL4
6030 -- : BFD_RELOC_CR16_REGREL4a
6031 -- : BFD_RELOC_CR16_REGREL14
6032 -- : BFD_RELOC_CR16_REGREL14a
6033 -- : BFD_RELOC_CR16_REGREL16
6034 -- : BFD_RELOC_CR16_REGREL20
6035 -- : BFD_RELOC_CR16_REGREL20a
6036 -- : BFD_RELOC_CR16_ABS20
6037 -- : BFD_RELOC_CR16_ABS24
6038 -- : BFD_RELOC_CR16_IMM4
6039 -- : BFD_RELOC_CR16_IMM8
6040 -- : BFD_RELOC_CR16_IMM16
6041 -- : BFD_RELOC_CR16_IMM20
6042 -- : BFD_RELOC_CR16_IMM24
6043 -- : BFD_RELOC_CR16_IMM32
6044 -- : BFD_RELOC_CR16_IMM32a
6045 -- : BFD_RELOC_CR16_DISP4
6046 -- : BFD_RELOC_CR16_DISP8
6047 -- : BFD_RELOC_CR16_DISP16
6048 -- : BFD_RELOC_CR16_DISP20
6049 -- : BFD_RELOC_CR16_DISP24
6050 -- : BFD_RELOC_CR16_DISP24a
6051 -- : BFD_RELOC_CR16_SWITCH8
6052 -- : BFD_RELOC_CR16_SWITCH16
6053 -- : BFD_RELOC_CR16_SWITCH32
6054 -- : BFD_RELOC_CR16_GOT_REGREL20
6055 -- : BFD_RELOC_CR16_GOTC_REGREL20
6056 -- : BFD_RELOC_CR16_GLOB_DAT
6057     NS CR16 Relocations.
6058
6059 -- : BFD_RELOC_CRX_REL4
6060 -- : BFD_RELOC_CRX_REL8
6061 -- : BFD_RELOC_CRX_REL8_CMP
6062 -- : BFD_RELOC_CRX_REL16
6063 -- : BFD_RELOC_CRX_REL24
6064 -- : BFD_RELOC_CRX_REL32
6065 -- : BFD_RELOC_CRX_REGREL12
6066 -- : BFD_RELOC_CRX_REGREL22
6067 -- : BFD_RELOC_CRX_REGREL28
6068 -- : BFD_RELOC_CRX_REGREL32
6069 -- : BFD_RELOC_CRX_ABS16
6070 -- : BFD_RELOC_CRX_ABS32
6071 -- : BFD_RELOC_CRX_NUM8
6072 -- : BFD_RELOC_CRX_NUM16
6073 -- : BFD_RELOC_CRX_NUM32
6074 -- : BFD_RELOC_CRX_IMM16
6075 -- : BFD_RELOC_CRX_IMM32
6076 -- : BFD_RELOC_CRX_SWITCH8
6077 -- : BFD_RELOC_CRX_SWITCH16
6078 -- : BFD_RELOC_CRX_SWITCH32
6079     NS CRX Relocations.
6080
6081 -- : BFD_RELOC_CRIS_BDISP8
6082 -- : BFD_RELOC_CRIS_UNSIGNED_5
6083 -- : BFD_RELOC_CRIS_SIGNED_6
6084 -- : BFD_RELOC_CRIS_UNSIGNED_6
6085 -- : BFD_RELOC_CRIS_SIGNED_8
6086 -- : BFD_RELOC_CRIS_UNSIGNED_8
6087 -- : BFD_RELOC_CRIS_SIGNED_16
6088 -- : BFD_RELOC_CRIS_UNSIGNED_16
6089 -- : BFD_RELOC_CRIS_LAPCQ_OFFSET
6090 -- : BFD_RELOC_CRIS_UNSIGNED_4
6091     These relocs are only used within the CRIS assembler.  They are not
6092     (at present) written to any object files.
6093
6094 -- : BFD_RELOC_CRIS_COPY
6095 -- : BFD_RELOC_CRIS_GLOB_DAT
6096 -- : BFD_RELOC_CRIS_JUMP_SLOT
6097 -- : BFD_RELOC_CRIS_RELATIVE
6098     Relocs used in ELF shared libraries for CRIS.
6099
6100 -- : BFD_RELOC_CRIS_32_GOT
6101     32-bit offset to symbol-entry within GOT.
6102
6103 -- : BFD_RELOC_CRIS_16_GOT
6104     16-bit offset to symbol-entry within GOT.
6105
6106 -- : BFD_RELOC_CRIS_32_GOTPLT
6107     32-bit offset to symbol-entry within GOT, with PLT handling.
6108
6109 -- : BFD_RELOC_CRIS_16_GOTPLT
6110     16-bit offset to symbol-entry within GOT, with PLT handling.
6111
6112 -- : BFD_RELOC_CRIS_32_GOTREL
6113     32-bit offset to symbol, relative to GOT.
6114
6115 -- : BFD_RELOC_CRIS_32_PLT_GOTREL
6116     32-bit offset to symbol with PLT entry, relative to GOT.
6117
6118 -- : BFD_RELOC_CRIS_32_PLT_PCREL
6119     32-bit offset to symbol with PLT entry, relative to this
6120     relocation.
6121
6122 -- : BFD_RELOC_CRIS_32_GOT_GD
6123 -- : BFD_RELOC_CRIS_16_GOT_GD
6124 -- : BFD_RELOC_CRIS_32_GD
6125 -- : BFD_RELOC_CRIS_DTP
6126 -- : BFD_RELOC_CRIS_32_DTPREL
6127 -- : BFD_RELOC_CRIS_16_DTPREL
6128 -- : BFD_RELOC_CRIS_32_GOT_TPREL
6129 -- : BFD_RELOC_CRIS_16_GOT_TPREL
6130 -- : BFD_RELOC_CRIS_32_TPREL
6131 -- : BFD_RELOC_CRIS_16_TPREL
6132 -- : BFD_RELOC_CRIS_DTPMOD
6133 -- : BFD_RELOC_CRIS_32_IE
6134     Relocs used in TLS code for CRIS.
6135
6136 -- : BFD_RELOC_860_COPY
6137 -- : BFD_RELOC_860_GLOB_DAT
6138 -- : BFD_RELOC_860_JUMP_SLOT
6139 -- : BFD_RELOC_860_RELATIVE
6140 -- : BFD_RELOC_860_PC26
6141 -- : BFD_RELOC_860_PLT26
6142 -- : BFD_RELOC_860_PC16
6143 -- : BFD_RELOC_860_LOW0
6144 -- : BFD_RELOC_860_SPLIT0
6145 -- : BFD_RELOC_860_LOW1
6146 -- : BFD_RELOC_860_SPLIT1
6147 -- : BFD_RELOC_860_LOW2
6148 -- : BFD_RELOC_860_SPLIT2
6149 -- : BFD_RELOC_860_LOW3
6150 -- : BFD_RELOC_860_LOGOT0
6151 -- : BFD_RELOC_860_SPGOT0
6152 -- : BFD_RELOC_860_LOGOT1
6153 -- : BFD_RELOC_860_SPGOT1
6154 -- : BFD_RELOC_860_LOGOTOFF0
6155 -- : BFD_RELOC_860_SPGOTOFF0
6156 -- : BFD_RELOC_860_LOGOTOFF1
6157 -- : BFD_RELOC_860_SPGOTOFF1
6158 -- : BFD_RELOC_860_LOGOTOFF2
6159 -- : BFD_RELOC_860_LOGOTOFF3
6160 -- : BFD_RELOC_860_LOPC
6161 -- : BFD_RELOC_860_HIGHADJ
6162 -- : BFD_RELOC_860_HAGOT
6163 -- : BFD_RELOC_860_HAGOTOFF
6164 -- : BFD_RELOC_860_HAPC
6165 -- : BFD_RELOC_860_HIGH
6166 -- : BFD_RELOC_860_HIGOT
6167 -- : BFD_RELOC_860_HIGOTOFF
6168     Intel i860 Relocations.
6169
6170 -- : BFD_RELOC_OR1K_REL_26
6171 -- : BFD_RELOC_OR1K_GOTPC_HI16
6172 -- : BFD_RELOC_OR1K_GOTPC_LO16
6173 -- : BFD_RELOC_OR1K_GOT16
6174 -- : BFD_RELOC_OR1K_PLT26
6175 -- : BFD_RELOC_OR1K_GOTOFF_HI16
6176 -- : BFD_RELOC_OR1K_GOTOFF_LO16
6177 -- : BFD_RELOC_OR1K_COPY
6178 -- : BFD_RELOC_OR1K_GLOB_DAT
6179 -- : BFD_RELOC_OR1K_JMP_SLOT
6180 -- : BFD_RELOC_OR1K_RELATIVE
6181 -- : BFD_RELOC_OR1K_TLS_GD_HI16
6182 -- : BFD_RELOC_OR1K_TLS_GD_LO16
6183 -- : BFD_RELOC_OR1K_TLS_LDM_HI16
6184 -- : BFD_RELOC_OR1K_TLS_LDM_LO16
6185 -- : BFD_RELOC_OR1K_TLS_LDO_HI16
6186 -- : BFD_RELOC_OR1K_TLS_LDO_LO16
6187 -- : BFD_RELOC_OR1K_TLS_IE_HI16
6188 -- : BFD_RELOC_OR1K_TLS_IE_LO16
6189 -- : BFD_RELOC_OR1K_TLS_LE_HI16
6190 -- : BFD_RELOC_OR1K_TLS_LE_LO16
6191 -- : BFD_RELOC_OR1K_TLS_TPOFF
6192 -- : BFD_RELOC_OR1K_TLS_DTPOFF
6193 -- : BFD_RELOC_OR1K_TLS_DTPMOD
6194     OpenRISC 1000 Relocations.
6195
6196 -- : BFD_RELOC_H8_DIR16A8
6197 -- : BFD_RELOC_H8_DIR16R8
6198 -- : BFD_RELOC_H8_DIR24A8
6199 -- : BFD_RELOC_H8_DIR24R8
6200 -- : BFD_RELOC_H8_DIR32A16
6201 -- : BFD_RELOC_H8_DISP32A16
6202     H8 elf Relocations.
6203
6204 -- : BFD_RELOC_XSTORMY16_REL_12
6205 -- : BFD_RELOC_XSTORMY16_12
6206 -- : BFD_RELOC_XSTORMY16_24
6207 -- : BFD_RELOC_XSTORMY16_FPTR16
6208     Sony Xstormy16 Relocations.
6209
6210 -- : BFD_RELOC_RELC
6211     Self-describing complex relocations.
6212
6213 -- : BFD_RELOC_XC16X_PAG
6214 -- : BFD_RELOC_XC16X_POF
6215 -- : BFD_RELOC_XC16X_SEG
6216 -- : BFD_RELOC_XC16X_SOF
6217     Infineon Relocations.
6218
6219 -- : BFD_RELOC_VAX_GLOB_DAT
6220 -- : BFD_RELOC_VAX_JMP_SLOT
6221 -- : BFD_RELOC_VAX_RELATIVE
6222     Relocations used by VAX ELF.
6223
6224 -- : BFD_RELOC_MT_PC16
6225     Morpho MT - 16 bit immediate relocation.
6226
6227 -- : BFD_RELOC_MT_HI16
6228     Morpho MT - Hi 16 bits of an address.
6229
6230 -- : BFD_RELOC_MT_LO16
6231     Morpho MT - Low 16 bits of an address.
6232
6233 -- : BFD_RELOC_MT_GNU_VTINHERIT
6234     Morpho MT - Used to tell the linker which vtable entries are used.
6235
6236 -- : BFD_RELOC_MT_GNU_VTENTRY
6237     Morpho MT - Used to tell the linker which vtable entries are used.
6238
6239 -- : BFD_RELOC_MT_PCINSN8
6240     Morpho MT - 8 bit immediate relocation.
6241
6242 -- : BFD_RELOC_MSP430_10_PCREL
6243 -- : BFD_RELOC_MSP430_16_PCREL
6244 -- : BFD_RELOC_MSP430_16
6245 -- : BFD_RELOC_MSP430_16_PCREL_BYTE
6246 -- : BFD_RELOC_MSP430_16_BYTE
6247 -- : BFD_RELOC_MSP430_2X_PCREL
6248 -- : BFD_RELOC_MSP430_RL_PCREL
6249 -- : BFD_RELOC_MSP430_ABS8
6250 -- : BFD_RELOC_MSP430X_PCR20_EXT_SRC
6251 -- : BFD_RELOC_MSP430X_PCR20_EXT_DST
6252 -- : BFD_RELOC_MSP430X_PCR20_EXT_ODST
6253 -- : BFD_RELOC_MSP430X_ABS20_EXT_SRC
6254 -- : BFD_RELOC_MSP430X_ABS20_EXT_DST
6255 -- : BFD_RELOC_MSP430X_ABS20_EXT_ODST
6256 -- : BFD_RELOC_MSP430X_ABS20_ADR_SRC
6257 -- : BFD_RELOC_MSP430X_ABS20_ADR_DST
6258 -- : BFD_RELOC_MSP430X_PCR16
6259 -- : BFD_RELOC_MSP430X_PCR20_CALL
6260 -- : BFD_RELOC_MSP430X_ABS16
6261 -- : BFD_RELOC_MSP430_ABS_HI16
6262 -- : BFD_RELOC_MSP430_PREL31
6263 -- : BFD_RELOC_MSP430_SYM_DIFF
6264     msp430 specific relocation codes
6265
6266 -- : BFD_RELOC_NIOS2_S16
6267 -- : BFD_RELOC_NIOS2_U16
6268 -- : BFD_RELOC_NIOS2_CALL26
6269 -- : BFD_RELOC_NIOS2_IMM5
6270 -- : BFD_RELOC_NIOS2_CACHE_OPX
6271 -- : BFD_RELOC_NIOS2_IMM6
6272 -- : BFD_RELOC_NIOS2_IMM8
6273 -- : BFD_RELOC_NIOS2_HI16
6274 -- : BFD_RELOC_NIOS2_LO16
6275 -- : BFD_RELOC_NIOS2_HIADJ16
6276 -- : BFD_RELOC_NIOS2_GPREL
6277 -- : BFD_RELOC_NIOS2_UJMP
6278 -- : BFD_RELOC_NIOS2_CJMP
6279 -- : BFD_RELOC_NIOS2_CALLR
6280 -- : BFD_RELOC_NIOS2_ALIGN
6281 -- : BFD_RELOC_NIOS2_GOT16
6282 -- : BFD_RELOC_NIOS2_CALL16
6283 -- : BFD_RELOC_NIOS2_GOTOFF_LO
6284 -- : BFD_RELOC_NIOS2_GOTOFF_HA
6285 -- : BFD_RELOC_NIOS2_PCREL_LO
6286 -- : BFD_RELOC_NIOS2_PCREL_HA
6287 -- : BFD_RELOC_NIOS2_TLS_GD16
6288 -- : BFD_RELOC_NIOS2_TLS_LDM16
6289 -- : BFD_RELOC_NIOS2_TLS_LDO16
6290 -- : BFD_RELOC_NIOS2_TLS_IE16
6291 -- : BFD_RELOC_NIOS2_TLS_LE16
6292 -- : BFD_RELOC_NIOS2_TLS_DTPMOD
6293 -- : BFD_RELOC_NIOS2_TLS_DTPREL
6294 -- : BFD_RELOC_NIOS2_TLS_TPREL
6295 -- : BFD_RELOC_NIOS2_COPY
6296 -- : BFD_RELOC_NIOS2_GLOB_DAT
6297 -- : BFD_RELOC_NIOS2_JUMP_SLOT
6298 -- : BFD_RELOC_NIOS2_RELATIVE
6299 -- : BFD_RELOC_NIOS2_GOTOFF
6300 -- : BFD_RELOC_NIOS2_CALL26_NOAT
6301 -- : BFD_RELOC_NIOS2_GOT_LO
6302 -- : BFD_RELOC_NIOS2_GOT_HA
6303 -- : BFD_RELOC_NIOS2_CALL_LO
6304 -- : BFD_RELOC_NIOS2_CALL_HA
6305 -- : BFD_RELOC_NIOS2_R2_S12
6306 -- : BFD_RELOC_NIOS2_R2_I10_1_PCREL
6307 -- : BFD_RELOC_NIOS2_R2_T1I7_1_PCREL
6308 -- : BFD_RELOC_NIOS2_R2_T1I7_2
6309 -- : BFD_RELOC_NIOS2_R2_T2I4
6310 -- : BFD_RELOC_NIOS2_R2_T2I4_1
6311 -- : BFD_RELOC_NIOS2_R2_T2I4_2
6312 -- : BFD_RELOC_NIOS2_R2_X1I7_2
6313 -- : BFD_RELOC_NIOS2_R2_X2L5
6314 -- : BFD_RELOC_NIOS2_R2_F1I5_2
6315 -- : BFD_RELOC_NIOS2_R2_L5I4X1
6316 -- : BFD_RELOC_NIOS2_R2_T1X1I6
6317 -- : BFD_RELOC_NIOS2_R2_T1X1I6_2
6318     Relocations used by the Altera Nios II core.
6319
6320 -- : BFD_RELOC_IQ2000_OFFSET_16
6321 -- : BFD_RELOC_IQ2000_OFFSET_21
6322 -- : BFD_RELOC_IQ2000_UHI16
6323     IQ2000 Relocations.
6324
6325 -- : BFD_RELOC_XTENSA_RTLD
6326     Special Xtensa relocation used only by PLT entries in ELF shared
6327     objects to indicate that the runtime linker should set the value
6328     to one of its own internal functions or data structures.
6329
6330 -- : BFD_RELOC_XTENSA_GLOB_DAT
6331 -- : BFD_RELOC_XTENSA_JMP_SLOT
6332 -- : BFD_RELOC_XTENSA_RELATIVE
6333     Xtensa relocations for ELF shared objects.
6334
6335 -- : BFD_RELOC_XTENSA_PLT
6336     Xtensa relocation used in ELF object files for symbols that may
6337     require PLT entries.  Otherwise, this is just a generic 32-bit
6338     relocation.
6339
6340 -- : BFD_RELOC_XTENSA_DIFF8
6341 -- : BFD_RELOC_XTENSA_DIFF16
6342 -- : BFD_RELOC_XTENSA_DIFF32
6343     Xtensa relocations to mark the difference of two local symbols.
6344     These are only needed to support linker relaxation and can be
6345     ignored when not relaxing.  The field is set to the value of the
6346     difference assuming no relaxation.  The relocation encodes the
6347     position of the first symbol so the linker can determine whether
6348     to adjust the field value.
6349
6350 -- : BFD_RELOC_XTENSA_SLOT0_OP
6351 -- : BFD_RELOC_XTENSA_SLOT1_OP
6352 -- : BFD_RELOC_XTENSA_SLOT2_OP
6353 -- : BFD_RELOC_XTENSA_SLOT3_OP
6354 -- : BFD_RELOC_XTENSA_SLOT4_OP
6355 -- : BFD_RELOC_XTENSA_SLOT5_OP
6356 -- : BFD_RELOC_XTENSA_SLOT6_OP
6357 -- : BFD_RELOC_XTENSA_SLOT7_OP
6358 -- : BFD_RELOC_XTENSA_SLOT8_OP
6359 -- : BFD_RELOC_XTENSA_SLOT9_OP
6360 -- : BFD_RELOC_XTENSA_SLOT10_OP
6361 -- : BFD_RELOC_XTENSA_SLOT11_OP
6362 -- : BFD_RELOC_XTENSA_SLOT12_OP
6363 -- : BFD_RELOC_XTENSA_SLOT13_OP
6364 -- : BFD_RELOC_XTENSA_SLOT14_OP
6365     Generic Xtensa relocations for instruction operands.  Only the slot
6366     number is encoded in the relocation.  The relocation applies to the
6367     last PC-relative immediate operand, or if there are no PC-relative
6368     immediates, to the last immediate operand.
6369
6370 -- : BFD_RELOC_XTENSA_SLOT0_ALT
6371 -- : BFD_RELOC_XTENSA_SLOT1_ALT
6372 -- : BFD_RELOC_XTENSA_SLOT2_ALT
6373 -- : BFD_RELOC_XTENSA_SLOT3_ALT
6374 -- : BFD_RELOC_XTENSA_SLOT4_ALT
6375 -- : BFD_RELOC_XTENSA_SLOT5_ALT
6376 -- : BFD_RELOC_XTENSA_SLOT6_ALT
6377 -- : BFD_RELOC_XTENSA_SLOT7_ALT
6378 -- : BFD_RELOC_XTENSA_SLOT8_ALT
6379 -- : BFD_RELOC_XTENSA_SLOT9_ALT
6380 -- : BFD_RELOC_XTENSA_SLOT10_ALT
6381 -- : BFD_RELOC_XTENSA_SLOT11_ALT
6382 -- : BFD_RELOC_XTENSA_SLOT12_ALT
6383 -- : BFD_RELOC_XTENSA_SLOT13_ALT
6384 -- : BFD_RELOC_XTENSA_SLOT14_ALT
6385     Alternate Xtensa relocations.  Only the slot is encoded in the
6386     relocation.  The meaning of these relocations is opcode-specific.
6387
6388 -- : BFD_RELOC_XTENSA_OP0
6389 -- : BFD_RELOC_XTENSA_OP1
6390 -- : BFD_RELOC_XTENSA_OP2
6391     Xtensa relocations for backward compatibility.  These have all been
6392     replaced by BFD_RELOC_XTENSA_SLOT0_OP.
6393
6394 -- : BFD_RELOC_XTENSA_ASM_EXPAND
6395     Xtensa relocation to mark that the assembler expanded the
6396     instructions from an original target.  The expansion size is
6397     encoded in the reloc size.
6398
6399 -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY
6400     Xtensa relocation to mark that the linker should simplify
6401     assembler-expanded instructions.  This is commonly used internally
6402     by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND.
6403
6404 -- : BFD_RELOC_XTENSA_TLSDESC_FN
6405 -- : BFD_RELOC_XTENSA_TLSDESC_ARG
6406 -- : BFD_RELOC_XTENSA_TLS_DTPOFF
6407 -- : BFD_RELOC_XTENSA_TLS_TPOFF
6408 -- : BFD_RELOC_XTENSA_TLS_FUNC
6409 -- : BFD_RELOC_XTENSA_TLS_ARG
6410 -- : BFD_RELOC_XTENSA_TLS_CALL
6411     Xtensa TLS relocations.
6412
6413 -- : BFD_RELOC_Z80_DISP8
6414     8 bit signed offset in (ix+d) or (iy+d).
6415
6416 -- : BFD_RELOC_Z8K_DISP7
6417     DJNZ offset.
6418
6419 -- : BFD_RELOC_Z8K_CALLR
6420     CALR offset.
6421
6422 -- : BFD_RELOC_Z8K_IMM4L
6423     4 bit value.
6424
6425 -- : BFD_RELOC_LM32_CALL
6426 -- : BFD_RELOC_LM32_BRANCH
6427 -- : BFD_RELOC_LM32_16_GOT
6428 -- : BFD_RELOC_LM32_GOTOFF_HI16
6429 -- : BFD_RELOC_LM32_GOTOFF_LO16
6430 -- : BFD_RELOC_LM32_COPY
6431 -- : BFD_RELOC_LM32_GLOB_DAT
6432 -- : BFD_RELOC_LM32_JMP_SLOT
6433 -- : BFD_RELOC_LM32_RELATIVE
6434     Lattice Mico32 relocations.
6435
6436 -- : BFD_RELOC_MACH_O_SECTDIFF
6437     Difference between two section addreses.  Must be followed by a
6438     BFD_RELOC_MACH_O_PAIR.
6439
6440 -- : BFD_RELOC_MACH_O_LOCAL_SECTDIFF
6441     Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol.
6442
6443 -- : BFD_RELOC_MACH_O_PAIR
6444     Pair of relocation.  Contains the first symbol.
6445
6446 -- : BFD_RELOC_MACH_O_X86_64_BRANCH32
6447 -- : BFD_RELOC_MACH_O_X86_64_BRANCH8
6448     PCREL relocations.  They are marked as branch to create PLT entry
6449     if required.
6450
6451 -- : BFD_RELOC_MACH_O_X86_64_GOT
6452     Used when referencing a GOT entry.
6453
6454 -- : BFD_RELOC_MACH_O_X86_64_GOT_LOAD
6455     Used when loading a GOT entry with movq.  It is specially marked
6456     so that the linker could optimize the movq to a leaq if possible.
6457
6458 -- : BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32
6459     Symbol will be substracted.  Must be followed by a BFD_RELOC_64.
6460
6461 -- : BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64
6462     Symbol will be substracted.  Must be followed by a BFD_RELOC_64.
6463
6464 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_1
6465     Same as BFD_RELOC_32_PCREL but with an implicit -1 addend.
6466
6467 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_2
6468     Same as BFD_RELOC_32_PCREL but with an implicit -2 addend.
6469
6470 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_4
6471     Same as BFD_RELOC_32_PCREL but with an implicit -4 addend.
6472
6473 -- : BFD_RELOC_MICROBLAZE_32_LO
6474     This is a 32 bit reloc for the microblaze that stores the low 16
6475     bits of a value
6476
6477 -- : BFD_RELOC_MICROBLAZE_32_LO_PCREL
6478     This is a 32 bit pc-relative reloc for the microblaze that stores
6479     the low 16 bits of a value
6480
6481 -- : BFD_RELOC_MICROBLAZE_32_ROSDA
6482     This is a 32 bit reloc for the microblaze that stores a value
6483     relative to the read-only small data area anchor
6484
6485 -- : BFD_RELOC_MICROBLAZE_32_RWSDA
6486     This is a 32 bit reloc for the microblaze that stores a value
6487     relative to the read-write small data area anchor
6488
6489 -- : BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM
6490     This is a 32 bit reloc for the microblaze to handle expressions of
6491     the form "Symbol Op Symbol"
6492
6493 -- : BFD_RELOC_MICROBLAZE_64_NONE
6494     This is a 64 bit reloc that stores the 32 bit pc relative value in
6495     two words (with an imm instruction).  No relocation is done here -
6496     only used for relaxing
6497
6498 -- : BFD_RELOC_MICROBLAZE_64_GOTPC
6499     This is a 64 bit reloc that stores the 32 bit pc relative value in
6500     two words (with an imm instruction).  The relocation is
6501     PC-relative GOT offset
6502
6503 -- : BFD_RELOC_MICROBLAZE_64_GOT
6504     This is a 64 bit reloc that stores the 32 bit pc relative value in
6505     two words (with an imm instruction).  The relocation is GOT offset
6506
6507 -- : BFD_RELOC_MICROBLAZE_64_PLT
6508     This is a 64 bit reloc that stores the 32 bit pc relative value in
6509     two words (with an imm instruction).  The relocation is
6510     PC-relative offset into PLT
6511
6512 -- : BFD_RELOC_MICROBLAZE_64_GOTOFF
6513     This is a 64 bit reloc that stores the 32 bit GOT relative value
6514     in two words (with an imm instruction).  The relocation is
6515     relative offset from _GLOBAL_OFFSET_TABLE_
6516
6517 -- : BFD_RELOC_MICROBLAZE_32_GOTOFF
6518     This is a 32 bit reloc that stores the 32 bit GOT relative value
6519     in a word.  The relocation is relative offset from
6520
6521 -- : BFD_RELOC_MICROBLAZE_COPY
6522     This is used to tell the dynamic linker to copy the value out of
6523     the dynamic object into the runtime process image.
6524
6525 -- : BFD_RELOC_MICROBLAZE_64_TLS
6526     Unused Reloc
6527
6528 -- : BFD_RELOC_MICROBLAZE_64_TLSGD
6529     This is a 64 bit reloc that stores the 32 bit GOT relative value
6530     of the GOT TLS GD info entry in two words (with an imm
6531     instruction). The relocation is GOT offset.
6532
6533 -- : BFD_RELOC_MICROBLAZE_64_TLSLD
6534     This is a 64 bit reloc that stores the 32 bit GOT relative value
6535     of the GOT TLS LD info entry in two words (with an imm
6536     instruction). The relocation is GOT offset.
6537
6538 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPMOD
6539     This is a 32 bit reloc that stores the Module ID to GOT(n).
6540
6541 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPREL
6542     This is a 32 bit reloc that stores TLS offset to GOT(n+1).
6543
6544 -- : BFD_RELOC_MICROBLAZE_64_TLSDTPREL
6545     This is a 32 bit reloc for storing TLS offset to two words (uses
6546     imm instruction)
6547
6548 -- : BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL
6549     This is a 64 bit reloc that stores 32-bit thread pointer relative
6550     offset to two words (uses imm instruction).
6551
6552 -- : BFD_RELOC_MICROBLAZE_64_TLSTPREL
6553     This is a 64 bit reloc that stores 32-bit thread pointer relative
6554     offset to two words (uses imm instruction).
6555
6556 -- : BFD_RELOC_AARCH64_RELOC_START
6557     AArch64 pseudo relocation code to mark the start of the AArch64
6558     relocation enumerators.  N.B. the order of the enumerators is
6559     important as several tables in the AArch64 bfd backend are indexed
6560     by these enumerators; make sure they are all synced.
6561
6562 -- : BFD_RELOC_AARCH64_NONE
6563     AArch64 null relocation code.
6564
6565 -- : BFD_RELOC_AARCH64_64
6566 -- : BFD_RELOC_AARCH64_32
6567 -- : BFD_RELOC_AARCH64_16
6568     Basic absolute relocations of N bits.  These are equivalent to
6569     BFD_RELOC_N and they were added to assist the indexing of the howto
6570     table.
6571
6572 -- : BFD_RELOC_AARCH64_64_PCREL
6573 -- : BFD_RELOC_AARCH64_32_PCREL
6574 -- : BFD_RELOC_AARCH64_16_PCREL
6575     PC-relative relocations.  These are equivalent to BFD_RELOC_N_PCREL
6576     and they were added to assist the indexing of the howto table.
6577
6578 -- : BFD_RELOC_AARCH64_MOVW_G0
6579     AArch64 MOV[NZK] instruction with most significant bits 0 to 15 of
6580     an unsigned address/value.
6581
6582 -- : BFD_RELOC_AARCH64_MOVW_G0_NC
6583     AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of
6584     an address/value.  No overflow checking.
6585
6586 -- : BFD_RELOC_AARCH64_MOVW_G1
6587     AArch64 MOV[NZK] instruction with most significant bits 16 to 31
6588     of an unsigned address/value.
6589
6590 -- : BFD_RELOC_AARCH64_MOVW_G1_NC
6591     AArch64 MOV[NZK] instruction with less significant bits 16 to 31
6592     of an address/value.  No overflow checking.
6593
6594 -- : BFD_RELOC_AARCH64_MOVW_G2
6595     AArch64 MOV[NZK] instruction with most significant bits 32 to 47
6596     of an unsigned address/value.
6597
6598 -- : BFD_RELOC_AARCH64_MOVW_G2_NC
6599     AArch64 MOV[NZK] instruction with less significant bits 32 to 47
6600     of an address/value.  No overflow checking.
6601
6602 -- : BFD_RELOC_AARCH64_MOVW_G3
6603     AArch64 MOV[NZK] instruction with most signficant bits 48 to 64 of
6604     a signed or unsigned address/value.
6605
6606 -- : BFD_RELOC_AARCH64_MOVW_G0_S
6607     AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of
6608     a signed value.  Changes instruction to MOVZ or MOVN depending on
6609     the value's sign.
6610
6611 -- : BFD_RELOC_AARCH64_MOVW_G1_S
6612     AArch64 MOV[NZ] instruction with most significant bits 16 to 31 of
6613     a signed value.  Changes instruction to MOVZ or MOVN depending on
6614     the value's sign.
6615
6616 -- : BFD_RELOC_AARCH64_MOVW_G2_S
6617     AArch64 MOV[NZ] instruction with most significant bits 32 to 47 of
6618     a signed value.  Changes instruction to MOVZ or MOVN depending on
6619     the value's sign.
6620
6621 -- : BFD_RELOC_AARCH64_LD_LO19_PCREL
6622     AArch64 Load Literal instruction, holding a 19 bit pc-relative word
6623     offset.  The lowest two bits must be zero and are not stored in the
6624     instruction, giving a 21 bit signed byte offset.
6625
6626 -- : BFD_RELOC_AARCH64_ADR_LO21_PCREL
6627     AArch64 ADR instruction, holding a simple 21 bit pc-relative byte
6628     offset.
6629
6630 -- : BFD_RELOC_AARCH64_ADR_HI21_PCREL
6631     AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
6632     offset, giving a 4KB aligned page base address.
6633
6634 -- : BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL
6635     AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
6636     offset, giving a 4KB aligned page base address, but with no
6637     overflow checking.
6638
6639 -- : BFD_RELOC_AARCH64_ADD_LO12
6640     AArch64 ADD immediate instruction, holding bits 0 to 11 of the
6641     address.  Used in conjunction with
6642     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6643
6644 -- : BFD_RELOC_AARCH64_LDST8_LO12
6645     AArch64 8-bit load/store instruction, holding bits 0 to 11 of the
6646     address.  Used in conjunction with
6647     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6648
6649 -- : BFD_RELOC_AARCH64_TSTBR14
6650     AArch64 14 bit pc-relative test bit and branch.  The lowest two
6651     bits must be zero and are not stored in the instruction, giving a
6652     16 bit signed byte offset.
6653
6654 -- : BFD_RELOC_AARCH64_BRANCH19
6655     AArch64 19 bit pc-relative conditional branch and compare & branch.
6656     The lowest two bits must be zero and are not stored in the
6657     instruction, giving a 21 bit signed byte offset.
6658
6659 -- : BFD_RELOC_AARCH64_JUMP26
6660     AArch64 26 bit pc-relative unconditional branch.  The lowest two
6661     bits must be zero and are not stored in the instruction, giving a
6662     28 bit signed byte offset.
6663
6664 -- : BFD_RELOC_AARCH64_CALL26
6665     AArch64 26 bit pc-relative unconditional branch and link.  The
6666     lowest two bits must be zero and are not stored in the instruction,
6667     giving a 28 bit signed byte offset.
6668
6669 -- : BFD_RELOC_AARCH64_LDST16_LO12
6670     AArch64 16-bit load/store instruction, holding bits 0 to 11 of the
6671     address.  Used in conjunction with
6672     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6673
6674 -- : BFD_RELOC_AARCH64_LDST32_LO12
6675     AArch64 32-bit load/store instruction, holding bits 0 to 11 of the
6676     address.  Used in conjunction with
6677     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6678
6679 -- : BFD_RELOC_AARCH64_LDST64_LO12
6680     AArch64 64-bit load/store instruction, holding bits 0 to 11 of the
6681     address.  Used in conjunction with
6682     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6683
6684 -- : BFD_RELOC_AARCH64_LDST128_LO12
6685     AArch64 128-bit load/store instruction, holding bits 0 to 11 of the
6686     address.  Used in conjunction with
6687     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6688
6689 -- : BFD_RELOC_AARCH64_GOT_LD_PREL19
6690     AArch64 Load Literal instruction, holding a 19 bit PC relative word
6691     offset of the global offset table entry for a symbol.  The lowest
6692     two bits must be zero and are not stored in the instruction,
6693     giving a 21 bit signed byte offset.  This relocation type requires
6694     signed overflow checking.
6695
6696 -- : BFD_RELOC_AARCH64_ADR_GOT_PAGE
6697     Get to the page base of the global offset table entry for a symbol
6698     as part of an ADRP instruction using a 21 bit PC relative
6699     value.Used in conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC.
6700
6701 -- : BFD_RELOC_AARCH64_LD64_GOT_LO12_NC
6702     Unsigned 12 bit byte offset for 64 bit load/store from the page of
6703     the GOT entry for this symbol.  Used in conjunction with
6704     BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in LP64 ABI only.
6705
6706 -- : BFD_RELOC_AARCH64_LD32_GOT_LO12_NC
6707     Unsigned 12 bit byte offset for 32 bit load/store from the page of
6708     the GOT entry for this symbol.  Used in conjunction with
6709     BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in ILP32 ABI only.
6710
6711 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC
6712     Unsigned 16 bit byte offset for 64 bit load/store from the GOT
6713     entry for this symbol.  Valid in LP64 ABI only.
6714
6715 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G1
6716     Unsigned 16 bit byte higher offset for 64 bit load/store from the
6717     GOT entry for this symbol.  Valid in LP64 ABI only.
6718
6719 -- : BFD_RELOC_AARCH64_LD64_GOTOFF_LO15
6720     Unsigned 15 bit byte offset for 64 bit load/store from the page of
6721     the GOT entry for this symbol.  Valid in LP64 ABI only.
6722
6723 -- : BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14
6724     Scaled 14 bit byte offset to the page base of the global offset
6725     table.
6726
6727 -- : BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15
6728     Scaled 15 bit byte offset to the page base of the global offset
6729     table.
6730
6731 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21
6732     Get to the page base of the global offset table entry for a symbols
6733     tls_index structure as part of an adrp instruction using a 21 bit
6734     PC relative value.  Used in conjunction with
6735     BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC.
6736
6737 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PREL21
6738     AArch64 TLS General Dynamic
6739
6740 -- : BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC
6741     Unsigned 12 bit byte offset to global offset table entry for a
6742     symbols tls_index structure.  Used in conjunction with
6743     BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.
6744
6745 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC
6746     AArch64 TLS General Dynamic relocation.
6747
6748 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G1
6749     AArch64 TLS General Dynamic relocation.
6750
6751 -- : BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21
6752     AArch64 TLS INITIAL EXEC relocation.
6753
6754 -- : BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC
6755     AArch64 TLS INITIAL EXEC relocation.
6756
6757 -- : BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC
6758     AArch64 TLS INITIAL EXEC relocation.
6759
6760 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19
6761     AArch64 TLS INITIAL EXEC relocation.
6762
6763 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC
6764     AArch64 TLS INITIAL EXEC relocation.
6765
6766 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1
6767     AArch64 TLS INITIAL EXEC relocation.
6768
6769 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12
6770     bit[23:12] of byte offset to module TLS base address.
6771
6772 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12
6773     Unsigned 12 bit byte offset to module TLS base address.
6774
6775 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC
6776     No overflow check version of
6777     BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12.
6778
6779 -- : BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC
6780     Unsigned 12 bit byte offset to global offset table entry for a
6781     symbols tls_index structure.  Used in conjunction with
6782     BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21.
6783
6784 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21
6785     GOT entry page address for AArch64 TLS Local Dynamic, used with
6786     ADRP instruction.
6787
6788 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PREL21
6789     GOT entry address for AArch64 TLS Local Dynamic, used with ADR
6790     instruction.
6791
6792 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12
6793     bit[11:1] of byte offset to module TLS base address, encoded in
6794     ldst instructions.
6795
6796 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC
6797     Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no
6798     overflow check.
6799
6800 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12
6801     bit[11:2] of byte offset to module TLS base address, encoded in
6802     ldst instructions.
6803
6804 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC
6805     Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no
6806     overflow check.
6807
6808 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12
6809     bit[11:3] of byte offset to module TLS base address, encoded in
6810     ldst instructions.
6811
6812 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC
6813     Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no
6814     overflow check.
6815
6816 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12
6817     bit[11:0] of byte offset to module TLS base address, encoded in
6818     ldst instructions.
6819
6820 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC
6821     Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no
6822     overflow check.
6823
6824 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
6825     bit[15:0] of byte offset to module TLS base address.
6826
6827 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC
6828     No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
6829
6830 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
6831     bit[31:16] of byte offset to module TLS base address.
6832
6833 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC
6834     No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
6835
6836 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2
6837     bit[47:32] of byte offset to module TLS base address.
6838
6839 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2
6840     AArch64 TLS LOCAL EXEC relocation.
6841
6842 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1
6843     AArch64 TLS LOCAL EXEC relocation.
6844
6845 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC
6846     AArch64 TLS LOCAL EXEC relocation.
6847
6848 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0
6849     AArch64 TLS LOCAL EXEC relocation.
6850
6851 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC
6852     AArch64 TLS LOCAL EXEC relocation.
6853
6854 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12
6855     AArch64 TLS LOCAL EXEC relocation.
6856
6857 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12
6858     AArch64 TLS LOCAL EXEC relocation.
6859
6860 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC
6861     AArch64 TLS LOCAL EXEC relocation.
6862
6863 -- : BFD_RELOC_AARCH64_TLSDESC_LD_PREL19
6864     AArch64 TLS DESC relocation.
6865
6866 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21
6867     AArch64 TLS DESC relocation.
6868
6869 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21
6870     AArch64 TLS DESC relocation.
6871
6872 -- : BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC
6873     AArch64 TLS DESC relocation.
6874
6875 -- : BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC
6876     AArch64 TLS DESC relocation.
6877
6878 -- : BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC
6879     AArch64 TLS DESC relocation.
6880
6881 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G1
6882     AArch64 TLS DESC relocation.
6883
6884 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC
6885     AArch64 TLS DESC relocation.
6886
6887 -- : BFD_RELOC_AARCH64_TLSDESC_LDR
6888     AArch64 TLS DESC relocation.
6889
6890 -- : BFD_RELOC_AARCH64_TLSDESC_ADD
6891     AArch64 TLS DESC relocation.
6892
6893 -- : BFD_RELOC_AARCH64_TLSDESC_CALL
6894     AArch64 TLS DESC relocation.
6895
6896 -- : BFD_RELOC_AARCH64_COPY
6897     AArch64 TLS relocation.
6898
6899 -- : BFD_RELOC_AARCH64_GLOB_DAT
6900     AArch64 TLS relocation.
6901
6902 -- : BFD_RELOC_AARCH64_JUMP_SLOT
6903     AArch64 TLS relocation.
6904
6905 -- : BFD_RELOC_AARCH64_RELATIVE
6906     AArch64 TLS relocation.
6907
6908 -- : BFD_RELOC_AARCH64_TLS_DTPMOD
6909     AArch64 TLS relocation.
6910
6911 -- : BFD_RELOC_AARCH64_TLS_DTPREL
6912     AArch64 TLS relocation.
6913
6914 -- : BFD_RELOC_AARCH64_TLS_TPREL
6915     AArch64 TLS relocation.
6916
6917 -- : BFD_RELOC_AARCH64_TLSDESC
6918     AArch64 TLS relocation.
6919
6920 -- : BFD_RELOC_AARCH64_IRELATIVE
6921     AArch64 support for STT_GNU_IFUNC.
6922
6923 -- : BFD_RELOC_AARCH64_RELOC_END
6924     AArch64 pseudo relocation code to mark the end of the AArch64
6925     relocation enumerators that have direct mapping to ELF reloc codes.
6926     There are a few more enumerators after this one; those are mainly
6927     used by the AArch64 assembler for the internal fixup or to select
6928     one of the above enumerators.
6929
6930 -- : BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP
6931     AArch64 pseudo relocation code to be used internally by the AArch64
6932     assembler and not (currently) written to any object files.
6933
6934 -- : BFD_RELOC_AARCH64_LDST_LO12
6935     AArch64 unspecified load/store instruction, holding bits 0 to 11
6936     of the address.  Used in conjunction with
6937     BFD_RELOC_AARCH64_ADR_HI21_PCREL.
6938
6939 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12
6940     AArch64 pseudo relocation code for TLS local dynamic mode.  It's
6941     to be used internally by the AArch64 assembler and not (currently)
6942     written to any object files.
6943
6944 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC
6945     Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no
6946     overflow check.
6947
6948 -- : BFD_RELOC_AARCH64_LD_GOT_LO12_NC
6949     AArch64 pseudo relocation code to be used internally by the AArch64
6950     assembler and not (currently) written to any object files.
6951
6952 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC
6953     AArch64 pseudo relocation code to be used internally by the AArch64
6954     assembler and not (currently) written to any object files.
6955
6956 -- : BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC
6957     AArch64 pseudo relocation code to be used internally by the AArch64
6958     assembler and not (currently) written to any object files.
6959
6960 -- : BFD_RELOC_TILEPRO_COPY
6961 -- : BFD_RELOC_TILEPRO_GLOB_DAT
6962 -- : BFD_RELOC_TILEPRO_JMP_SLOT
6963 -- : BFD_RELOC_TILEPRO_RELATIVE
6964 -- : BFD_RELOC_TILEPRO_BROFF_X1
6965 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1
6966 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT
6967 -- : BFD_RELOC_TILEPRO_IMM8_X0
6968 -- : BFD_RELOC_TILEPRO_IMM8_Y0
6969 -- : BFD_RELOC_TILEPRO_IMM8_X1
6970 -- : BFD_RELOC_TILEPRO_IMM8_Y1
6971 -- : BFD_RELOC_TILEPRO_DEST_IMM8_X1
6972 -- : BFD_RELOC_TILEPRO_MT_IMM15_X1
6973 -- : BFD_RELOC_TILEPRO_MF_IMM15_X1
6974 -- : BFD_RELOC_TILEPRO_IMM16_X0
6975 -- : BFD_RELOC_TILEPRO_IMM16_X1
6976 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO
6977 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO
6978 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI
6979 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI
6980 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA
6981 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA
6982 -- : BFD_RELOC_TILEPRO_IMM16_X0_PCREL
6983 -- : BFD_RELOC_TILEPRO_IMM16_X1_PCREL
6984 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL
6985 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL
6986 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL
6987 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL
6988 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL
6989 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL
6990 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT
6991 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT
6992 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO
6993 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO
6994 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI
6995 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI
6996 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA
6997 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA
6998 -- : BFD_RELOC_TILEPRO_MMSTART_X0
6999 -- : BFD_RELOC_TILEPRO_MMEND_X0
7000 -- : BFD_RELOC_TILEPRO_MMSTART_X1
7001 -- : BFD_RELOC_TILEPRO_MMEND_X1
7002 -- : BFD_RELOC_TILEPRO_SHAMT_X0
7003 -- : BFD_RELOC_TILEPRO_SHAMT_X1
7004 -- : BFD_RELOC_TILEPRO_SHAMT_Y0
7005 -- : BFD_RELOC_TILEPRO_SHAMT_Y1
7006 -- : BFD_RELOC_TILEPRO_TLS_GD_CALL
7007 -- : BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD
7008 -- : BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD
7009 -- : BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD
7010 -- : BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD
7011 -- : BFD_RELOC_TILEPRO_TLS_IE_LOAD
7012 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD
7013 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD
7014 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO
7015 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO
7016 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI
7017 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI
7018 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA
7019 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA
7020 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE
7021 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE
7022 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO
7023 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO
7024 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI
7025 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI
7026 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA
7027 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA
7028 -- : BFD_RELOC_TILEPRO_TLS_DTPMOD32
7029 -- : BFD_RELOC_TILEPRO_TLS_DTPOFF32
7030 -- : BFD_RELOC_TILEPRO_TLS_TPOFF32
7031 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE
7032 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE
7033 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO
7034 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO
7035 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI
7036 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI
7037 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA
7038 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA
7039     Tilera TILEPro Relocations.
7040
7041 -- : BFD_RELOC_TILEGX_HW0
7042 -- : BFD_RELOC_TILEGX_HW1
7043 -- : BFD_RELOC_TILEGX_HW2
7044 -- : BFD_RELOC_TILEGX_HW3
7045 -- : BFD_RELOC_TILEGX_HW0_LAST
7046 -- : BFD_RELOC_TILEGX_HW1_LAST
7047 -- : BFD_RELOC_TILEGX_HW2_LAST
7048 -- : BFD_RELOC_TILEGX_COPY
7049 -- : BFD_RELOC_TILEGX_GLOB_DAT
7050 -- : BFD_RELOC_TILEGX_JMP_SLOT
7051 -- : BFD_RELOC_TILEGX_RELATIVE
7052 -- : BFD_RELOC_TILEGX_BROFF_X1
7053 -- : BFD_RELOC_TILEGX_JUMPOFF_X1
7054 -- : BFD_RELOC_TILEGX_JUMPOFF_X1_PLT
7055 -- : BFD_RELOC_TILEGX_IMM8_X0
7056 -- : BFD_RELOC_TILEGX_IMM8_Y0
7057 -- : BFD_RELOC_TILEGX_IMM8_X1
7058 -- : BFD_RELOC_TILEGX_IMM8_Y1
7059 -- : BFD_RELOC_TILEGX_DEST_IMM8_X1
7060 -- : BFD_RELOC_TILEGX_MT_IMM14_X1
7061 -- : BFD_RELOC_TILEGX_MF_IMM14_X1
7062 -- : BFD_RELOC_TILEGX_MMSTART_X0
7063 -- : BFD_RELOC_TILEGX_MMEND_X0
7064 -- : BFD_RELOC_TILEGX_SHAMT_X0
7065 -- : BFD_RELOC_TILEGX_SHAMT_X1
7066 -- : BFD_RELOC_TILEGX_SHAMT_Y0
7067 -- : BFD_RELOC_TILEGX_SHAMT_Y1
7068 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0
7069 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0
7070 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1
7071 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1
7072 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2
7073 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2
7074 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3
7075 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3
7076 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST
7077 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST
7078 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST
7079 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST
7080 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST
7081 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST
7082 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL
7083 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL
7084 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL
7085 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL
7086 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL
7087 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL
7088 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL
7089 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL
7090 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL
7091 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL
7092 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL
7093 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL
7094 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL
7095 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL
7096 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT
7097 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT
7098 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL
7099 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL
7100 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL
7101 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL
7102 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL
7103 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL
7104 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT
7105 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT
7106 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT
7107 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT
7108 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL
7109 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL
7110 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD
7111 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD
7112 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE
7113 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE
7114 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE
7115 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE
7116 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE
7117 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE
7118 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD
7119 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD
7120 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD
7121 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD
7122 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE
7123 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE
7124 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL
7125 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL
7126 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL
7127 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL
7128 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL
7129 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL
7130 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE
7131 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE
7132 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE
7133 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE
7134 -- : BFD_RELOC_TILEGX_TLS_DTPMOD64
7135 -- : BFD_RELOC_TILEGX_TLS_DTPOFF64
7136 -- : BFD_RELOC_TILEGX_TLS_TPOFF64
7137 -- : BFD_RELOC_TILEGX_TLS_DTPMOD32
7138 -- : BFD_RELOC_TILEGX_TLS_DTPOFF32
7139 -- : BFD_RELOC_TILEGX_TLS_TPOFF32
7140 -- : BFD_RELOC_TILEGX_TLS_GD_CALL
7141 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD
7142 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD
7143 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD
7144 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD
7145 -- : BFD_RELOC_TILEGX_TLS_IE_LOAD
7146 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD
7147 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD
7148 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD
7149 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD
7150     Tilera TILE-Gx Relocations.
7151
7152 -- : BFD_RELOC_EPIPHANY_SIMM8
7153     Adapteva EPIPHANY - 8 bit signed pc-relative displacement
7154
7155 -- : BFD_RELOC_EPIPHANY_SIMM24
7156     Adapteva EPIPHANY - 24 bit signed pc-relative displacement
7157
7158 -- : BFD_RELOC_EPIPHANY_HIGH
7159     Adapteva EPIPHANY - 16 most-significant bits of absolute address
7160
7161 -- : BFD_RELOC_EPIPHANY_LOW
7162     Adapteva EPIPHANY - 16 least-significant bits of absolute address
7163
7164 -- : BFD_RELOC_EPIPHANY_SIMM11
7165     Adapteva EPIPHANY - 11 bit signed number - add/sub immediate
7166
7167 -- : BFD_RELOC_EPIPHANY_IMM11
7168     Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st
7169     displacement)
7170
7171 -- : BFD_RELOC_EPIPHANY_IMM8
7172     Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction.
7173
7174 -- : BFD_RELOC_VISIUM_HI16
7175 -- : BFD_RELOC_VISIUM_LO16
7176 -- : BFD_RELOC_VISIUM_IM16
7177 -- : BFD_RELOC_VISIUM_REL16
7178 -- : BFD_RELOC_VISIUM_HI16_PCREL
7179 -- : BFD_RELOC_VISIUM_LO16_PCREL
7180 -- : BFD_RELOC_VISIUM_IM16_PCREL
7181     Visium Relocations.
7182
7183
7184     typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
7185   
71862.10.2.2 `bfd_reloc_type_lookup'
7187................................
7188
7189*Synopsis*
7190     reloc_howto_type *bfd_reloc_type_lookup
7191        (bfd *abfd, bfd_reloc_code_real_type code);
7192     reloc_howto_type *bfd_reloc_name_lookup
7193        (bfd *abfd, const char *reloc_name);
7194   *Description*
7195Return a pointer to a howto structure which, when invoked, will perform
7196the relocation CODE on data from the architecture noted.
7197
71982.10.2.3 `bfd_default_reloc_type_lookup'
7199........................................
7200
7201*Synopsis*
7202     reloc_howto_type *bfd_default_reloc_type_lookup
7203        (bfd *abfd, bfd_reloc_code_real_type  code);
7204   *Description*
7205Provides a default relocation lookup routine for any architecture.
7206
72072.10.2.4 `bfd_get_reloc_code_name'
7208..................................
7209
7210*Synopsis*
7211     const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
7212   *Description*
7213Provides a printable name for the supplied relocation code.  Useful
7214mainly for printing error messages.
7215
72162.10.2.5 `bfd_generic_relax_section'
7217....................................
7218
7219*Synopsis*
7220     bfd_boolean bfd_generic_relax_section
7221        (bfd *abfd,
7222         asection *section,
7223         struct bfd_link_info *,
7224         bfd_boolean *);
7225   *Description*
7226Provides default handling for relaxing for back ends which don't do
7227relaxing.
7228
72292.10.2.6 `bfd_generic_gc_sections'
7230..................................
7231
7232*Synopsis*
7233     bfd_boolean bfd_generic_gc_sections
7234        (bfd *, struct bfd_link_info *);
7235   *Description*
7236Provides default handling for relaxing for back ends which don't do
7237section gc - i.e., does nothing.
7238
72392.10.2.7 `bfd_generic_lookup_section_flags'
7240...........................................
7241
7242*Synopsis*
7243     bfd_boolean bfd_generic_lookup_section_flags
7244        (struct bfd_link_info *, struct flag_info *, asection *);
7245   *Description*
7246Provides default handling for section flags lookup - i.e., does nothing.
7247Returns FALSE if the section should be omitted, otherwise TRUE.
7248
72492.10.2.8 `bfd_generic_merge_sections'
7250.....................................
7251
7252*Synopsis*
7253     bfd_boolean bfd_generic_merge_sections
7254        (bfd *, struct bfd_link_info *);
7255   *Description*
7256Provides default handling for SEC_MERGE section merging for back ends
7257which don't have SEC_MERGE support - i.e., does nothing.
7258
72592.10.2.9 `bfd_generic_get_relocated_section_contents'
7260.....................................................
7261
7262*Synopsis*
7263     bfd_byte *bfd_generic_get_relocated_section_contents
7264        (bfd *abfd,
7265         struct bfd_link_info *link_info,
7266         struct bfd_link_order *link_order,
7267         bfd_byte *data,
7268         bfd_boolean relocatable,
7269         asymbol **symbols);
7270   *Description*
7271Provides default handling of relocation effort for back ends which
7272can't be bothered to do it efficiently.
7273
7274
7275File: bfd.info,  Node: Core Files,  Next: Targets,  Prev: Relocations,  Up: BFD front end
7276
72772.11 Core files
7278===============
7279
72802.11.1 Core file functions
7281--------------------------
7282
7283*Description*
7284These are functions pertaining to core files.
7285
72862.11.1.1 `bfd_core_file_failing_command'
7287........................................
7288
7289*Synopsis*
7290     const char *bfd_core_file_failing_command (bfd *abfd);
7291   *Description*
7292Return a read-only string explaining which program was running when it
7293failed and produced the core file ABFD.
7294
72952.11.1.2 `bfd_core_file_failing_signal'
7296.......................................
7297
7298*Synopsis*
7299     int bfd_core_file_failing_signal (bfd *abfd);
7300   *Description*
7301Returns the signal number which caused the core dump which generated
7302the file the BFD ABFD is attached to.
7303
73042.11.1.3 `bfd_core_file_pid'
7305............................
7306
7307*Synopsis*
7308     int bfd_core_file_pid (bfd *abfd);
7309   *Description*
7310Returns the PID of the process the core dump the BFD ABFD is attached
7311to was generated from.
7312
73132.11.1.4 `core_file_matches_executable_p'
7314.........................................
7315
7316*Synopsis*
7317     bfd_boolean core_file_matches_executable_p
7318        (bfd *core_bfd, bfd *exec_bfd);
7319   *Description*
7320Return `TRUE' if the core file attached to CORE_BFD was generated by a
7321run of the executable file attached to EXEC_BFD, `FALSE' otherwise.
7322
73232.11.1.5 `generic_core_file_matches_executable_p'
7324.................................................
7325
7326*Synopsis*
7327     bfd_boolean generic_core_file_matches_executable_p
7328        (bfd *core_bfd, bfd *exec_bfd);
7329   *Description*
7330Return TRUE if the core file attached to CORE_BFD was generated by a
7331run of the executable file attached to EXEC_BFD.  The match is based on
7332executable basenames only.
7333
7334   Note: When not able to determine the core file failing command or
7335the executable name, we still return TRUE even though we're not sure
7336that core file and executable match.  This is to avoid generating a
7337false warning in situations where we really don't know whether they
7338match or not.
7339
7340
7341File: bfd.info,  Node: Targets,  Next: Architectures,  Prev: Core Files,  Up: BFD front end
7342
73432.12 Targets
7344============
7345
7346*Description*
7347Each port of BFD to a different machine requires the creation of a
7348target back end. All the back end provides to the root part of BFD is a
7349structure containing pointers to functions which perform certain low
7350level operations on files. BFD translates the applications's requests
7351through a pointer into calls to the back end routines.
7352
7353   When a file is opened with `bfd_openr', its format and target are
7354unknown. BFD uses various mechanisms to determine how to interpret the
7355file. The operations performed are:
7356
7357   * Create a BFD by calling the internal routine `_bfd_new_bfd', then
7358     call `bfd_find_target' with the target string supplied to
7359     `bfd_openr' and the new BFD pointer.
7360
7361   * If a null target string was provided to `bfd_find_target', look up
7362     the environment variable `GNUTARGET' and use that as the target
7363     string.
7364
7365   * If the target string is still `NULL', or the target string is
7366     `default', then use the first item in the target vector as the
7367     target type, and set `target_defaulted' in the BFD to cause
7368     `bfd_check_format' to loop through all the targets.  *Note
7369     bfd_target::.  *Note Formats::.
7370
7371   * Otherwise, inspect the elements in the target vector one by one,
7372     until a match on target name is found. When found, use it.
7373
7374   * Otherwise return the error `bfd_error_invalid_target' to
7375     `bfd_openr'.
7376
7377   * `bfd_openr' attempts to open the file using `bfd_open_file', and
7378     returns the BFD.
7379   Once the BFD has been opened and the target selected, the file
7380format may be determined. This is done by calling `bfd_check_format' on
7381the BFD with a suggested format.  If `target_defaulted' has been set,
7382each possible target type is tried to see if it recognizes the
7383specified format.  `bfd_check_format' returns `TRUE' when the caller
7384guesses right.
7385
7386* Menu:
7387
7388* bfd_target::
7389
7390
7391File: bfd.info,  Node: bfd_target,  Prev: Targets,  Up: Targets
7392
73932.12.1 bfd_target
7394-----------------
7395
7396*Description*
7397This structure contains everything that BFD knows about a target. It
7398includes things like its byte order, name, and which routines to call
7399to do various operations.
7400
7401   Every BFD points to a target structure with its `xvec' member.
7402
7403   The macros below are used to dispatch to functions through the
7404`bfd_target' vector. They are used in a number of macros further down
7405in `bfd.h', and are also used when calling various routines by hand
7406inside the BFD implementation.  The ARGLIST argument must be
7407parenthesized; it contains all the arguments to the called function.
7408
7409   They make the documentation (more) unpleasant to read, so if someone
7410wants to fix this and not break the above, please do.
7411     #define BFD_SEND(bfd, message, arglist) \
7412       ((*((bfd)->xvec->message)) arglist)
7413
7414     #ifdef DEBUG_BFD_SEND
7415     #undef BFD_SEND
7416     #define BFD_SEND(bfd, message, arglist) \
7417       (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
7418         ((*((bfd)->xvec->message)) arglist) : \
7419         (bfd_assert (__FILE__,__LINE__), NULL))
7420     #endif
7421   For operations which index on the BFD format:
7422     #define BFD_SEND_FMT(bfd, message, arglist) \
7423       (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
7424
7425     #ifdef DEBUG_BFD_SEND
7426     #undef BFD_SEND_FMT
7427     #define BFD_SEND_FMT(bfd, message, arglist) \
7428       (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
7429        (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
7430        (bfd_assert (__FILE__,__LINE__), NULL))
7431     #endif
7432   This is the structure which defines the type of BFD this is.  The
7433`xvec' member of the struct `bfd' itself points here.  Each module that
7434implements access to a different target under BFD, defines one of these.
7435
7436   FIXME, these names should be rationalised with the names of the
7437entry points which call them. Too bad we can't have one macro to define
7438them both!
7439     enum bfd_flavour
7440     {
7441       /* N.B. Update bfd_flavour_name if you change this.  */
7442       bfd_target_unknown_flavour,
7443       bfd_target_aout_flavour,
7444       bfd_target_coff_flavour,
7445       bfd_target_ecoff_flavour,
7446       bfd_target_xcoff_flavour,
7447       bfd_target_elf_flavour,
7448       bfd_target_ieee_flavour,
7449       bfd_target_nlm_flavour,
7450       bfd_target_oasys_flavour,
7451       bfd_target_tekhex_flavour,
7452       bfd_target_srec_flavour,
7453       bfd_target_verilog_flavour,
7454       bfd_target_ihex_flavour,
7455       bfd_target_som_flavour,
7456       bfd_target_os9k_flavour,
7457       bfd_target_versados_flavour,
7458       bfd_target_msdos_flavour,
7459       bfd_target_ovax_flavour,
7460       bfd_target_evax_flavour,
7461       bfd_target_mmo_flavour,
7462       bfd_target_mach_o_flavour,
7463       bfd_target_pef_flavour,
7464       bfd_target_pef_xlib_flavour,
7465       bfd_target_sym_flavour
7466     };
7467
7468     enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
7469
7470     /* Forward declaration.  */
7471     typedef struct bfd_link_info _bfd_link_info;
7472
7473     /* Forward declaration.  */
7474     typedef struct flag_info flag_info;
7475
7476     typedef struct bfd_target
7477     {
7478       /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  */
7479       char *name;
7480
7481      /* The "flavour" of a back end is a general indication about
7482         the contents of a file.  */
7483       enum bfd_flavour flavour;
7484
7485       /* The order of bytes within the data area of a file.  */
7486       enum bfd_endian byteorder;
7487
7488      /* The order of bytes within the header parts of a file.  */
7489       enum bfd_endian header_byteorder;
7490
7491       /* A mask of all the flags which an executable may have set -
7492          from the set `BFD_NO_FLAGS', `HAS_RELOC', ...`D_PAGED'.  */
7493       flagword object_flags;
7494
7495      /* A mask of all the flags which a section may have set - from
7496         the set `SEC_NO_FLAGS', `SEC_ALLOC', ...`SET_NEVER_LOAD'.  */
7497       flagword section_flags;
7498
7499      /* The character normally found at the front of a symbol.
7500         (if any), perhaps `_'.  */
7501       char symbol_leading_char;
7502
7503      /* The pad character for file names within an archive header.  */
7504       char ar_pad_char;
7505
7506       /* The maximum number of characters in an archive header.  */
7507       unsigned char ar_max_namelen;
7508
7509       /* How well this target matches, used to select between various
7510          possible targets when more than one target matches.  */
7511       unsigned char match_priority;
7512
7513       /* Entries for byte swapping for data. These are different from the
7514          other entry points, since they don't take a BFD as the first argument.
7515          Certain other handlers could do the same.  */
7516       bfd_uint64_t   (*bfd_getx64) (const void *);
7517       bfd_int64_t    (*bfd_getx_signed_64) (const void *);
7518       void           (*bfd_putx64) (bfd_uint64_t, void *);
7519       bfd_vma        (*bfd_getx32) (const void *);
7520       bfd_signed_vma (*bfd_getx_signed_32) (const void *);
7521       void           (*bfd_putx32) (bfd_vma, void *);
7522       bfd_vma        (*bfd_getx16) (const void *);
7523       bfd_signed_vma (*bfd_getx_signed_16) (const void *);
7524       void           (*bfd_putx16) (bfd_vma, void *);
7525
7526       /* Byte swapping for the headers.  */
7527       bfd_uint64_t   (*bfd_h_getx64) (const void *);
7528       bfd_int64_t    (*bfd_h_getx_signed_64) (const void *);
7529       void           (*bfd_h_putx64) (bfd_uint64_t, void *);
7530       bfd_vma        (*bfd_h_getx32) (const void *);
7531       bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
7532       void           (*bfd_h_putx32) (bfd_vma, void *);
7533       bfd_vma        (*bfd_h_getx16) (const void *);
7534       bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
7535       void           (*bfd_h_putx16) (bfd_vma, void *);
7536
7537       /* Format dependent routines: these are vectors of entry points
7538          within the target vector structure, one for each format to check.  */
7539
7540       /* Check the format of a file being read.  Return a `bfd_target *' or zero.  */
7541       const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
7542
7543       /* Set the format of a file being written.  */
7544       bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
7545
7546       /* Write cached information into a file being written, at `bfd_close'.  */
7547       bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
7548   The general target vector.  These vectors are initialized using the
7549BFD_JUMP_TABLE macros.
7550
7551       /* Generic entry points.  */
7552     #define BFD_JUMP_TABLE_GENERIC(NAME) \
7553       NAME##_close_and_cleanup, \
7554       NAME##_bfd_free_cached_info, \
7555       NAME##_new_section_hook, \
7556       NAME##_get_section_contents, \
7557       NAME##_get_section_contents_in_window
7558
7559       /* Called when the BFD is being closed to do any necessary cleanup.  */
7560       bfd_boolean (*_close_and_cleanup) (bfd *);
7561       /* Ask the BFD to free all cached information.  */
7562       bfd_boolean (*_bfd_free_cached_info) (bfd *);
7563       /* Called when a new section is created.  */
7564       bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
7565       /* Read the contents of a section.  */
7566       bfd_boolean (*_bfd_get_section_contents)
7567         (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
7568       bfd_boolean (*_bfd_get_section_contents_in_window)
7569         (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
7570
7571       /* Entry points to copy private data.  */
7572     #define BFD_JUMP_TABLE_COPY(NAME) \
7573       NAME##_bfd_copy_private_bfd_data, \
7574       NAME##_bfd_merge_private_bfd_data, \
7575       _bfd_generic_init_private_section_data, \
7576       NAME##_bfd_copy_private_section_data, \
7577       NAME##_bfd_copy_private_symbol_data, \
7578       NAME##_bfd_copy_private_header_data, \
7579       NAME##_bfd_set_private_flags, \
7580       NAME##_bfd_print_private_bfd_data
7581
7582       /* Called to copy BFD general private data from one object file
7583          to another.  */
7584       bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
7585       /* Called to merge BFD general private data from one object file
7586          to a common output file when linking.  */
7587       bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
7588       /* Called to initialize BFD private section data from one object file
7589          to another.  */
7590     #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
7591       BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
7592       bfd_boolean (*_bfd_init_private_section_data)
7593         (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
7594       /* Called to copy BFD private section data from one object file
7595          to another.  */
7596       bfd_boolean (*_bfd_copy_private_section_data)
7597         (bfd *, sec_ptr, bfd *, sec_ptr);
7598       /* Called to copy BFD private symbol data from one symbol
7599          to another.  */
7600       bfd_boolean (*_bfd_copy_private_symbol_data)
7601         (bfd *, asymbol *, bfd *, asymbol *);
7602       /* Called to copy BFD private header data from one object file
7603          to another.  */
7604       bfd_boolean (*_bfd_copy_private_header_data)
7605         (bfd *, bfd *);
7606       /* Called to set private backend flags.  */
7607       bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
7608
7609       /* Called to print private BFD data.  */
7610       bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
7611
7612       /* Core file entry points.  */
7613     #define BFD_JUMP_TABLE_CORE(NAME) \
7614       NAME##_core_file_failing_command, \
7615       NAME##_core_file_failing_signal, \
7616       NAME##_core_file_matches_executable_p, \
7617       NAME##_core_file_pid
7618
7619       char *      (*_core_file_failing_command) (bfd *);
7620       int         (*_core_file_failing_signal) (bfd *);
7621       bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
7622       int         (*_core_file_pid) (bfd *);
7623
7624       /* Archive entry points.  */
7625     #define BFD_JUMP_TABLE_ARCHIVE(NAME) \
7626       NAME##_slurp_armap, \
7627       NAME##_slurp_extended_name_table, \
7628       NAME##_construct_extended_name_table, \
7629       NAME##_truncate_arname, \
7630       NAME##_write_armap, \
7631       NAME##_read_ar_hdr, \
7632       NAME##_write_ar_hdr, \
7633       NAME##_openr_next_archived_file, \
7634       NAME##_get_elt_at_index, \
7635       NAME##_generic_stat_arch_elt, \
7636       NAME##_update_armap_timestamp
7637
7638       bfd_boolean (*_bfd_slurp_armap) (bfd *);
7639       bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
7640       bfd_boolean (*_bfd_construct_extended_name_table)
7641         (bfd *, char **, bfd_size_type *, const char **);
7642       void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
7643       bfd_boolean (*write_armap)
7644         (bfd *, unsigned int, struct orl *, unsigned int, int);
7645       void *      (*_bfd_read_ar_hdr_fn) (bfd *);
7646       bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *);
7647       bfd *       (*openr_next_archived_file) (bfd *, bfd *);
7648     #define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
7649       bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
7650       int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
7651       bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
7652
7653       /* Entry points used for symbols.  */
7654     #define BFD_JUMP_TABLE_SYMBOLS(NAME) \
7655       NAME##_get_symtab_upper_bound, \
7656       NAME##_canonicalize_symtab, \
7657       NAME##_make_empty_symbol, \
7658       NAME##_print_symbol, \
7659       NAME##_get_symbol_info, \
7660       NAME##_get_symbol_version_string, \
7661       NAME##_bfd_is_local_label_name, \
7662       NAME##_bfd_is_target_special_symbol, \
7663       NAME##_get_lineno, \
7664       NAME##_find_nearest_line, \
7665       NAME##_find_line, \
7666       NAME##_find_inliner_info, \
7667       NAME##_bfd_make_debug_symbol, \
7668       NAME##_read_minisymbols, \
7669       NAME##_minisymbol_to_symbol
7670
7671       long        (*_bfd_get_symtab_upper_bound) (bfd *);
7672       long        (*_bfd_canonicalize_symtab)
7673         (bfd *, struct bfd_symbol **);
7674       struct bfd_symbol *
7675                   (*_bfd_make_empty_symbol) (bfd *);
7676       void        (*_bfd_print_symbol)
7677         (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
7678     #define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
7679       void        (*_bfd_get_symbol_info)
7680         (bfd *, struct bfd_symbol *, symbol_info *);
7681     #define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
7682       const char *(*_bfd_get_symbol_version_string)
7683         (bfd *, struct bfd_symbol *, bfd_boolean *);
7684     #define bfd_get_symbol_version_string(b,s,h) BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
7685       bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
7686       bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
7687       alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
7688       bfd_boolean (*_bfd_find_nearest_line)
7689         (bfd *, struct bfd_symbol **, struct bfd_section *, bfd_vma,
7690          const char **, const char **, unsigned int *, unsigned int *);
7691       bfd_boolean (*_bfd_find_line)
7692         (bfd *, struct bfd_symbol **, struct bfd_symbol *,
7693          const char **, unsigned int *);
7694       bfd_boolean (*_bfd_find_inliner_info)
7695         (bfd *, const char **, const char **, unsigned int *);
7696      /* Back-door to allow format-aware applications to create debug symbols
7697         while using BFD for everything else.  Currently used by the assembler
7698         when creating COFF files.  */
7699       asymbol *   (*_bfd_make_debug_symbol)
7700         (bfd *, void *, unsigned long size);
7701     #define bfd_read_minisymbols(b, d, m, s) \
7702       BFD_SEND (b, _read_minisymbols, (b, d, m, s))
7703       long        (*_read_minisymbols)
7704         (bfd *, bfd_boolean, void **, unsigned int *);
7705     #define bfd_minisymbol_to_symbol(b, d, m, f) \
7706       BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
7707       asymbol *   (*_minisymbol_to_symbol)
7708         (bfd *, bfd_boolean, const void *, asymbol *);
7709
7710       /* Routines for relocs.  */
7711     #define BFD_JUMP_TABLE_RELOCS(NAME) \
7712       NAME##_get_reloc_upper_bound, \
7713       NAME##_canonicalize_reloc, \
7714       NAME##_bfd_reloc_type_lookup, \
7715       NAME##_bfd_reloc_name_lookup
7716
7717       long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
7718       long        (*_bfd_canonicalize_reloc)
7719         (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
7720       /* See documentation on reloc types.  */
7721       reloc_howto_type *
7722                   (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
7723       reloc_howto_type *
7724                   (*reloc_name_lookup) (bfd *, const char *);
7725
7726
7727       /* Routines used when writing an object file.  */
7728     #define BFD_JUMP_TABLE_WRITE(NAME) \
7729       NAME##_set_arch_mach, \
7730       NAME##_set_section_contents
7731
7732       bfd_boolean (*_bfd_set_arch_mach)
7733         (bfd *, enum bfd_architecture, unsigned long);
7734       bfd_boolean (*_bfd_set_section_contents)
7735         (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
7736
7737       /* Routines used by the linker.  */
7738     #define BFD_JUMP_TABLE_LINK(NAME) \
7739       NAME##_sizeof_headers, \
7740       NAME##_bfd_get_relocated_section_contents, \
7741       NAME##_bfd_relax_section, \
7742       NAME##_bfd_link_hash_table_create, \
7743       NAME##_bfd_link_add_symbols, \
7744       NAME##_bfd_link_just_syms, \
7745       NAME##_bfd_copy_link_hash_symbol_type, \
7746       NAME##_bfd_final_link, \
7747       NAME##_bfd_link_split_section, \
7748       NAME##_bfd_gc_sections, \
7749       NAME##_bfd_lookup_section_flags, \
7750       NAME##_bfd_merge_sections, \
7751       NAME##_bfd_is_group_section, \
7752       NAME##_bfd_discard_group, \
7753       NAME##_section_already_linked, \
7754       NAME##_bfd_define_common_symbol
7755
7756       int         (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
7757       bfd_byte *  (*_bfd_get_relocated_section_contents)
7758         (bfd *, struct bfd_link_info *, struct bfd_link_order *,
7759          bfd_byte *, bfd_boolean, struct bfd_symbol **);
7760
7761       bfd_boolean (*_bfd_relax_section)
7762         (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
7763
7764       /* Create a hash table for the linker.  Different backends store
7765          different information in this table.  */
7766       struct bfd_link_hash_table *
7767                   (*_bfd_link_hash_table_create) (bfd *);
7768
7769       /* Add symbols from this object file into the hash table.  */
7770       bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
7771
7772       /* Indicate that we are only retrieving symbol values from this section.  */
7773       void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
7774
7775       /* Copy the symbol type and other attributes for a linker script
7776          assignment of one symbol to another.  */
7777     #define bfd_copy_link_hash_symbol_type(b, t, f) \
7778       BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
7779       void (*_bfd_copy_link_hash_symbol_type)
7780         (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *);
7781
7782       /* Do a link based on the link_order structures attached to each
7783          section of the BFD.  */
7784       bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
7785
7786       /* Should this section be split up into smaller pieces during linking.  */
7787       bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
7788
7789       /* Remove sections that are not referenced from the output.  */
7790       bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
7791
7792       /* Sets the bitmask of allowed and disallowed section flags.  */
7793       bfd_boolean (*_bfd_lookup_section_flags) (struct bfd_link_info *,
7794                                                 struct flag_info *,
7795                                                 asection *);
7796
7797       /* Attempt to merge SEC_MERGE sections.  */
7798       bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
7799
7800       /* Is this section a member of a group?  */
7801       bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
7802
7803       /* Discard members of a group.  */
7804       bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
7805
7806       /* Check if SEC has been already linked during a reloceatable or
7807          final link.  */
7808       bfd_boolean (*_section_already_linked) (bfd *, asection *,
7809                                               struct bfd_link_info *);
7810
7811       /* Define a common symbol.  */
7812       bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *,
7813                                                 struct bfd_link_hash_entry *);
7814
7815       /* Routines to handle dynamic symbols and relocs.  */
7816     #define BFD_JUMP_TABLE_DYNAMIC(NAME) \
7817       NAME##_get_dynamic_symtab_upper_bound, \
7818       NAME##_canonicalize_dynamic_symtab, \
7819       NAME##_get_synthetic_symtab, \
7820       NAME##_get_dynamic_reloc_upper_bound, \
7821       NAME##_canonicalize_dynamic_reloc
7822
7823       /* Get the amount of memory required to hold the dynamic symbols.  */
7824       long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
7825       /* Read in the dynamic symbols.  */
7826       long        (*_bfd_canonicalize_dynamic_symtab)
7827         (bfd *, struct bfd_symbol **);
7828       /* Create synthetized symbols.  */
7829       long        (*_bfd_get_synthetic_symtab)
7830         (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
7831          struct bfd_symbol **);
7832       /* Get the amount of memory required to hold the dynamic relocs.  */
7833       long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
7834       /* Read in the dynamic relocs.  */
7835       long        (*_bfd_canonicalize_dynamic_reloc)
7836         (bfd *, arelent **, struct bfd_symbol **);
7837   A pointer to an alternative bfd_target in case the current one is not
7838satisfactory.  This can happen when the target cpu supports both big
7839and little endian code, and target chosen by the linker has the wrong
7840endianness.  The function open_output() in ld/ldlang.c uses this field
7841to find an alternative output format that is suitable.
7842       /* Opposite endian version of this target.  */
7843       const struct bfd_target * alternative_target;
7844
7845       /* Data for use by back-end routines, which isn't
7846          generic enough to belong in this structure.  */
7847       const void *backend_data;
7848
7849     } bfd_target;
7850
78512.12.1.1 `bfd_set_default_target'
7852.................................
7853
7854*Synopsis*
7855     bfd_boolean bfd_set_default_target (const char *name);
7856   *Description*
7857Set the default target vector to use when recognizing a BFD.  This
7858takes the name of the target, which may be a BFD target name or a
7859configuration triplet.
7860
78612.12.1.2 `bfd_find_target'
7862..........................
7863
7864*Synopsis*
7865     const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
7866   *Description*
7867Return a pointer to the transfer vector for the object target named
7868TARGET_NAME.  If TARGET_NAME is `NULL', choose the one in the
7869environment variable `GNUTARGET'; if that is null or not defined, then
7870choose the first entry in the target list.  Passing in the string
7871"default" or setting the environment variable to "default" will cause
7872the first entry in the target list to be returned, and
7873"target_defaulted" will be set in the BFD if ABFD isn't `NULL'.  This
7874causes `bfd_check_format' to loop over all the targets to find the one
7875that matches the file being read.
7876
78772.12.1.3 `bfd_get_target_info'
7878..............................
7879
7880*Synopsis*
7881     const bfd_target *bfd_get_target_info (const char *target_name,
7882         bfd *abfd,
7883         bfd_boolean *is_bigendian,
7884         int *underscoring,
7885         const char **def_target_arch);
7886   *Description*
7887Return a pointer to the transfer vector for the object target named
7888TARGET_NAME.  If TARGET_NAME is `NULL', choose the one in the
7889environment variable `GNUTARGET'; if that is null or not defined, then
7890choose the first entry in the target list.  Passing in the string
7891"default" or setting the environment variable to "default" will cause
7892the first entry in the target list to be returned, and
7893"target_defaulted" will be set in the BFD if ABFD isn't `NULL'.  This
7894causes `bfd_check_format' to loop over all the targets to find the one
7895that matches the file being read.  If IS_BIGENDIAN is not `NULL', then
7896set this value to target's endian mode. True for big-endian, FALSE for
7897little-endian or for invalid target.  If UNDERSCORING is not `NULL',
7898then set this value to target's underscoring mode. Zero for
7899none-underscoring, -1 for invalid target, else the value of target
7900vector's symbol underscoring.  If DEF_TARGET_ARCH is not `NULL', then
7901set it to the architecture string specified by the target_name.
7902
79032.12.1.4 `bfd_target_list'
7904..........................
7905
7906*Synopsis*
7907     const char ** bfd_target_list (void);
7908   *Description*
7909Return a freshly malloced NULL-terminated vector of the names of all
7910the valid BFD targets. Do not modify the names.
7911
79122.12.1.5 `bfd_seach_for_target'
7913...............................
7914
7915*Synopsis*
7916     const bfd_target *bfd_search_for_target
7917        (int (*search_func) (const bfd_target *, void *),
7918         void *);
7919   *Description*
7920Return a pointer to the first transfer vector in the list of transfer
7921vectors maintained by BFD that produces a non-zero result when passed
7922to the function SEARCH_FUNC.  The parameter DATA is passed, unexamined,
7923to the search function.
7924
79252.12.1.6 `bfd_flavour_name'
7926...........................
7927
7928*Synopsis*
7929     const char *bfd_flavour_name (enum bfd_flavour flavour);
7930   *Description*
7931Return the string form of FLAVOUR.
7932
7933
7934File: bfd.info,  Node: Architectures,  Next: Opening and Closing,  Prev: Targets,  Up: BFD front end
7935
79362.13 Architectures
7937==================
7938
7939BFD keeps one atom in a BFD describing the architecture of the data
7940attached to the BFD: a pointer to a `bfd_arch_info_type'.
7941
7942   Pointers to structures can be requested independently of a BFD so
7943that an architecture's information can be interrogated without access
7944to an open BFD.
7945
7946   The architecture information is provided by each architecture
7947package.  The set of default architectures is selected by the macro
7948`SELECT_ARCHITECTURES'.  This is normally set up in the
7949`config/TARGET.mt' file of your choice.  If the name is not defined,
7950then all the architectures supported are included.
7951
7952   When BFD starts up, all the architectures are called with an
7953initialize method.  It is up to the architecture back end to insert as
7954many items into the list of architectures as it wants to; generally
7955this would be one for each machine and one for the default case (an
7956item with a machine field of 0).
7957
7958   BFD's idea of an architecture is implemented in `archures.c'.
7959
79602.13.1 bfd_architecture
7961-----------------------
7962
7963*Description*
7964This enum gives the object file's CPU architecture, in a global
7965sense--i.e., what processor family does it belong to?  Another field
7966indicates which processor within the family is in use.  The machine
7967gives a number which distinguishes different versions of the
7968architecture, containing, for example, 2 and 3 for Intel i960 KA and
7969i960 KB, and 68020 and 68030 for Motorola 68020 and 68030.
7970     enum bfd_architecture
7971     {
7972       bfd_arch_unknown,   /* File arch not known.  */
7973       bfd_arch_obscure,   /* Arch known, not one of these.  */
7974       bfd_arch_m68k,      /* Motorola 68xxx */
7975     #define bfd_mach_m68000 1
7976     #define bfd_mach_m68008 2
7977     #define bfd_mach_m68010 3
7978     #define bfd_mach_m68020 4
7979     #define bfd_mach_m68030 5
7980     #define bfd_mach_m68040 6
7981     #define bfd_mach_m68060 7
7982     #define bfd_mach_cpu32  8
7983     #define bfd_mach_fido   9
7984     #define bfd_mach_mcf_isa_a_nodiv 10
7985     #define bfd_mach_mcf_isa_a 11
7986     #define bfd_mach_mcf_isa_a_mac 12
7987     #define bfd_mach_mcf_isa_a_emac 13
7988     #define bfd_mach_mcf_isa_aplus 14
7989     #define bfd_mach_mcf_isa_aplus_mac 15
7990     #define bfd_mach_mcf_isa_aplus_emac 16
7991     #define bfd_mach_mcf_isa_b_nousp 17
7992     #define bfd_mach_mcf_isa_b_nousp_mac 18
7993     #define bfd_mach_mcf_isa_b_nousp_emac 19
7994     #define bfd_mach_mcf_isa_b 20
7995     #define bfd_mach_mcf_isa_b_mac 21
7996     #define bfd_mach_mcf_isa_b_emac 22
7997     #define bfd_mach_mcf_isa_b_float 23
7998     #define bfd_mach_mcf_isa_b_float_mac 24
7999     #define bfd_mach_mcf_isa_b_float_emac 25
8000     #define bfd_mach_mcf_isa_c 26
8001     #define bfd_mach_mcf_isa_c_mac 27
8002     #define bfd_mach_mcf_isa_c_emac 28
8003     #define bfd_mach_mcf_isa_c_nodiv 29
8004     #define bfd_mach_mcf_isa_c_nodiv_mac 30
8005     #define bfd_mach_mcf_isa_c_nodiv_emac 31
8006       bfd_arch_vax,       /* DEC Vax */
8007       bfd_arch_i960,      /* Intel 960 */
8008         /* The order of the following is important.
8009            lower number indicates a machine type that
8010            only accepts a subset of the instructions
8011            available to machines with higher numbers.
8012            The exception is the "ca", which is
8013            incompatible with all other machines except
8014            "core".  */
8015
8016     #define bfd_mach_i960_core      1
8017     #define bfd_mach_i960_ka_sa     2
8018     #define bfd_mach_i960_kb_sb     3
8019     #define bfd_mach_i960_mc        4
8020     #define bfd_mach_i960_xa        5
8021     #define bfd_mach_i960_ca        6
8022     #define bfd_mach_i960_jx        7
8023     #define bfd_mach_i960_hx        8
8024
8025       bfd_arch_or1k,      /* OpenRISC 1000 */
8026     #define bfd_mach_or1k           1
8027     #define bfd_mach_or1knd         2
8028
8029       bfd_arch_sparc,     /* SPARC */
8030     #define bfd_mach_sparc                 1
8031     /* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
8032     #define bfd_mach_sparc_sparclet        2
8033     #define bfd_mach_sparc_sparclite       3
8034     #define bfd_mach_sparc_v8plus          4
8035     #define bfd_mach_sparc_v8plusa         5 /* with ultrasparc add'ns.  */
8036     #define bfd_mach_sparc_sparclite_le    6
8037     #define bfd_mach_sparc_v9              7
8038     #define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
8039     #define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
8040     #define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
8041     /* Nonzero if MACH has the v9 instruction set.  */
8042     #define bfd_mach_sparc_v9_p(mach) \
8043       ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
8044        && (mach) != bfd_mach_sparc_sparclite_le)
8045     /* Nonzero if MACH is a 64 bit sparc architecture.  */
8046     #define bfd_mach_sparc_64bit_p(mach) \
8047       ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
8048       bfd_arch_spu,       /* PowerPC SPU */
8049     #define bfd_mach_spu           256
8050       bfd_arch_mips,      /* MIPS Rxxxx */
8051     #define bfd_mach_mips3000              3000
8052     #define bfd_mach_mips3900              3900
8053     #define bfd_mach_mips4000              4000
8054     #define bfd_mach_mips4010              4010
8055     #define bfd_mach_mips4100              4100
8056     #define bfd_mach_mips4111              4111
8057     #define bfd_mach_mips4120              4120
8058     #define bfd_mach_mips4300              4300
8059     #define bfd_mach_mips4400              4400
8060     #define bfd_mach_mips4600              4600
8061     #define bfd_mach_mips4650              4650
8062     #define bfd_mach_mips5000              5000
8063     #define bfd_mach_mips5400              5400
8064     #define bfd_mach_mips5500              5500
8065     #define bfd_mach_mips5900              5900
8066     #define bfd_mach_mips6000              6000
8067     #define bfd_mach_mips7000              7000
8068     #define bfd_mach_mips8000              8000
8069     #define bfd_mach_mips9000              9000
8070     #define bfd_mach_mips10000             10000
8071     #define bfd_mach_mips12000             12000
8072     #define bfd_mach_mips14000             14000
8073     #define bfd_mach_mips16000             16000
8074     #define bfd_mach_mips16                16
8075     #define bfd_mach_mips5                 5
8076     #define bfd_mach_mips_loongson_2e      3001
8077     #define bfd_mach_mips_loongson_2f      3002
8078     #define bfd_mach_mips_loongson_3a      3003
8079     #define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
8080     #define bfd_mach_mips_octeon           6501
8081     #define bfd_mach_mips_octeonp          6601
8082     #define bfd_mach_mips_octeon2          6502
8083     #define bfd_mach_mips_octeon3          6503
8084     #define bfd_mach_mips_xlr              887682   /* decimal 'XLR'  */
8085     #define bfd_mach_mipsisa32             32
8086     #define bfd_mach_mipsisa32r2           33
8087     #define bfd_mach_mipsisa32r3           34
8088     #define bfd_mach_mipsisa32r5           36
8089     #define bfd_mach_mipsisa32r6           37
8090     #define bfd_mach_mipsisa64             64
8091     #define bfd_mach_mipsisa64r2           65
8092     #define bfd_mach_mipsisa64r3           66
8093     #define bfd_mach_mipsisa64r5           68
8094     #define bfd_mach_mipsisa64r6           69
8095     #define bfd_mach_mips_micromips        96
8096       bfd_arch_i386,      /* Intel 386 */
8097     #define bfd_mach_i386_intel_syntax     (1 << 0)
8098     #define bfd_mach_i386_i8086            (1 << 1)
8099     #define bfd_mach_i386_i386             (1 << 2)
8100     #define bfd_mach_x86_64                (1 << 3)
8101     #define bfd_mach_x64_32                (1 << 4)
8102     #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax)
8103     #define bfd_mach_x86_64_intel_syntax   (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax)
8104     #define bfd_mach_x64_32_intel_syntax   (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax)
8105       bfd_arch_l1om,   /* Intel L1OM */
8106     #define bfd_mach_l1om                  (1 << 5)
8107     #define bfd_mach_l1om_intel_syntax     (bfd_mach_l1om | bfd_mach_i386_intel_syntax)
8108       bfd_arch_k1om,   /* Intel K1OM */
8109     #define bfd_mach_k1om                  (1 << 6)
8110     #define bfd_mach_k1om_intel_syntax     (bfd_mach_k1om | bfd_mach_i386_intel_syntax)
8111     #define bfd_mach_i386_nacl             (1 << 7)
8112     #define bfd_mach_i386_i386_nacl        (bfd_mach_i386_i386 | bfd_mach_i386_nacl)
8113     #define bfd_mach_x86_64_nacl           (bfd_mach_x86_64 | bfd_mach_i386_nacl)
8114     #define bfd_mach_x64_32_nacl           (bfd_mach_x64_32 | bfd_mach_i386_nacl)
8115       bfd_arch_iamcu,   /* Intel MCU */
8116     #define bfd_mach_iamcu                 (1 << 8)
8117     #define bfd_mach_i386_iamcu            (bfd_mach_i386_i386 | bfd_mach_iamcu)
8118     #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax)
8119       bfd_arch_we32k,     /* AT&T WE32xxx */
8120       bfd_arch_tahoe,     /* CCI/Harris Tahoe */
8121       bfd_arch_i860,      /* Intel 860 */
8122       bfd_arch_i370,      /* IBM 360/370 Mainframes */
8123       bfd_arch_romp,      /* IBM ROMP PC/RT */
8124       bfd_arch_convex,    /* Convex */
8125       bfd_arch_m88k,      /* Motorola 88xxx */
8126       bfd_arch_m98k,      /* Motorola 98xxx */
8127       bfd_arch_pyramid,   /* Pyramid Technology */
8128       bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300) */
8129     #define bfd_mach_h8300    1
8130     #define bfd_mach_h8300h   2
8131     #define bfd_mach_h8300s   3
8132     #define bfd_mach_h8300hn  4
8133     #define bfd_mach_h8300sn  5
8134     #define bfd_mach_h8300sx  6
8135     #define bfd_mach_h8300sxn 7
8136       bfd_arch_pdp11,     /* DEC PDP-11 */
8137       bfd_arch_plugin,
8138       bfd_arch_powerpc,   /* PowerPC */
8139     #define bfd_mach_ppc           32
8140     #define bfd_mach_ppc64         64
8141     #define bfd_mach_ppc_403       403
8142     #define bfd_mach_ppc_403gc     4030
8143     #define bfd_mach_ppc_405       405
8144     #define bfd_mach_ppc_505       505
8145     #define bfd_mach_ppc_601       601
8146     #define bfd_mach_ppc_602       602
8147     #define bfd_mach_ppc_603       603
8148     #define bfd_mach_ppc_ec603e    6031
8149     #define bfd_mach_ppc_604       604
8150     #define bfd_mach_ppc_620       620
8151     #define bfd_mach_ppc_630       630
8152     #define bfd_mach_ppc_750       750
8153     #define bfd_mach_ppc_860       860
8154     #define bfd_mach_ppc_a35       35
8155     #define bfd_mach_ppc_rs64ii    642
8156     #define bfd_mach_ppc_rs64iii   643
8157     #define bfd_mach_ppc_7400      7400
8158     #define bfd_mach_ppc_e500      500
8159     #define bfd_mach_ppc_e500mc    5001
8160     #define bfd_mach_ppc_e500mc64  5005
8161     #define bfd_mach_ppc_e5500     5006
8162     #define bfd_mach_ppc_e6500     5007
8163     #define bfd_mach_ppc_titan     83
8164     #define bfd_mach_ppc_vle       84
8165       bfd_arch_rs6000,    /* IBM RS/6000 */
8166     #define bfd_mach_rs6k          6000
8167     #define bfd_mach_rs6k_rs1      6001
8168     #define bfd_mach_rs6k_rsc      6003
8169     #define bfd_mach_rs6k_rs2      6002
8170       bfd_arch_hppa,      /* HP PA RISC */
8171     #define bfd_mach_hppa10        10
8172     #define bfd_mach_hppa11        11
8173     #define bfd_mach_hppa20        20
8174     #define bfd_mach_hppa20w       25
8175       bfd_arch_d10v,      /* Mitsubishi D10V */
8176     #define bfd_mach_d10v          1
8177     #define bfd_mach_d10v_ts2      2
8178     #define bfd_mach_d10v_ts3      3
8179       bfd_arch_d30v,      /* Mitsubishi D30V */
8180       bfd_arch_dlx,       /* DLX */
8181       bfd_arch_m68hc11,   /* Motorola 68HC11 */
8182       bfd_arch_m68hc12,   /* Motorola 68HC12 */
8183     #define bfd_mach_m6812_default 0
8184     #define bfd_mach_m6812         1
8185     #define bfd_mach_m6812s        2
8186       bfd_arch_m9s12x,   /* Freescale S12X */
8187       bfd_arch_m9s12xg,  /* Freescale XGATE */
8188       bfd_arch_z8k,       /* Zilog Z8000 */
8189     #define bfd_mach_z8001         1
8190     #define bfd_mach_z8002         2
8191       bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500) */
8192       bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH) */
8193     #define bfd_mach_sh            1
8194     #define bfd_mach_sh2        0x20
8195     #define bfd_mach_sh_dsp     0x2d
8196     #define bfd_mach_sh2a       0x2a
8197     #define bfd_mach_sh2a_nofpu 0x2b
8198     #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
8199     #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
8200     #define bfd_mach_sh2a_or_sh4  0x2a3
8201     #define bfd_mach_sh2a_or_sh3e 0x2a4
8202     #define bfd_mach_sh2e       0x2e
8203     #define bfd_mach_sh3        0x30
8204     #define bfd_mach_sh3_nommu  0x31
8205     #define bfd_mach_sh3_dsp    0x3d
8206     #define bfd_mach_sh3e       0x3e
8207     #define bfd_mach_sh4        0x40
8208     #define bfd_mach_sh4_nofpu  0x41
8209     #define bfd_mach_sh4_nommu_nofpu  0x42
8210     #define bfd_mach_sh4a       0x4a
8211     #define bfd_mach_sh4a_nofpu 0x4b
8212     #define bfd_mach_sh4al_dsp  0x4d
8213     #define bfd_mach_sh5        0x50
8214       bfd_arch_alpha,     /* Dec Alpha */
8215     #define bfd_mach_alpha_ev4  0x10
8216     #define bfd_mach_alpha_ev5  0x20
8217     #define bfd_mach_alpha_ev6  0x30
8218       bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
8219     #define bfd_mach_arm_unknown   0
8220     #define bfd_mach_arm_2         1
8221     #define bfd_mach_arm_2a        2
8222     #define bfd_mach_arm_3         3
8223     #define bfd_mach_arm_3M        4
8224     #define bfd_mach_arm_4         5
8225     #define bfd_mach_arm_4T        6
8226     #define bfd_mach_arm_5         7
8227     #define bfd_mach_arm_5T        8
8228     #define bfd_mach_arm_5TE       9
8229     #define bfd_mach_arm_XScale    10
8230     #define bfd_mach_arm_ep9312    11
8231     #define bfd_mach_arm_iWMMXt    12
8232     #define bfd_mach_arm_iWMMXt2   13
8233       bfd_arch_nds32,     /* Andes NDS32 */
8234     #define bfd_mach_n1            1
8235     #define bfd_mach_n1h           2
8236     #define bfd_mach_n1h_v2        3
8237     #define bfd_mach_n1h_v3        4
8238     #define bfd_mach_n1h_v3m       5
8239       bfd_arch_ns32k,     /* National Semiconductors ns32000 */
8240       bfd_arch_w65,       /* WDC 65816 */
8241       bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
8242       bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
8243     #define bfd_mach_tic3x         30
8244     #define bfd_mach_tic4x         40
8245       bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */
8246       bfd_arch_tic6x,     /* Texas Instruments TMS320C6X */
8247       bfd_arch_tic80,     /* TI TMS320c80 (MVP) */
8248       bfd_arch_v850,      /* NEC V850 */
8249       bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI) */
8250     #define bfd_mach_v850          1
8251     #define bfd_mach_v850e         'E'
8252     #define bfd_mach_v850e1        '1'
8253     #define bfd_mach_v850e2        0x4532
8254     #define bfd_mach_v850e2v3      0x45325633
8255     #define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5') */
8256       bfd_arch_arc,       /* ARC Cores */
8257     #define bfd_mach_arc_a4        0
8258     #define bfd_mach_arc_a5        1
8259     #define bfd_mach_arc_arc600    2
8260     #define bfd_mach_arc_arc601    4
8261     #define bfd_mach_arc_arc700    3
8262     #define bfd_mach_arc_arcv2     5
8263      bfd_arch_m32c,     /* Renesas M16C/M32C.  */
8264     #define bfd_mach_m16c        0x75
8265     #define bfd_mach_m32c        0x78
8266       bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
8267     #define bfd_mach_m32r          1 /* For backwards compatibility.  */
8268     #define bfd_mach_m32rx         'x'
8269     #define bfd_mach_m32r2         '2'
8270       bfd_arch_mn10200,   /* Matsushita MN10200 */
8271       bfd_arch_mn10300,   /* Matsushita MN10300 */
8272     #define bfd_mach_mn10300               300
8273     #define bfd_mach_am33          330
8274     #define bfd_mach_am33_2        332
8275       bfd_arch_fr30,
8276     #define bfd_mach_fr30          0x46523330
8277       bfd_arch_frv,
8278     #define bfd_mach_frv           1
8279     #define bfd_mach_frvsimple     2
8280     #define bfd_mach_fr300         300
8281     #define bfd_mach_fr400         400
8282     #define bfd_mach_fr450         450
8283     #define bfd_mach_frvtomcat     499     /* fr500 prototype */
8284     #define bfd_mach_fr500         500
8285     #define bfd_mach_fr550         550
8286       bfd_arch_moxie,       /* The moxie processor */
8287     #define bfd_mach_moxie         1
8288       bfd_arch_ft32,       /* The ft32 processor */
8289     #define bfd_mach_ft32          1
8290       bfd_arch_mcore,
8291       bfd_arch_mep,
8292     #define bfd_mach_mep           1
8293     #define bfd_mach_mep_h1        0x6831
8294     #define bfd_mach_mep_c5        0x6335
8295       bfd_arch_metag,
8296     #define bfd_mach_metag         1
8297       bfd_arch_ia64,      /* HP/Intel ia64 */
8298     #define bfd_mach_ia64_elf64    64
8299     #define bfd_mach_ia64_elf32    32
8300       bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
8301     #define bfd_mach_ip2022        1
8302     #define bfd_mach_ip2022ext     2
8303      bfd_arch_iq2000,     /* Vitesse IQ2000.  */
8304     #define bfd_mach_iq2000        1
8305     #define bfd_mach_iq10          2
8306       bfd_arch_epiphany,   /* Adapteva EPIPHANY */
8307     #define bfd_mach_epiphany16    1
8308     #define bfd_mach_epiphany32    2
8309       bfd_arch_mt,
8310     #define bfd_mach_ms1           1
8311     #define bfd_mach_mrisc2        2
8312     #define bfd_mach_ms2           3
8313       bfd_arch_pj,
8314       bfd_arch_avr,       /* Atmel AVR microcontrollers.  */
8315     #define bfd_mach_avr1          1
8316     #define bfd_mach_avr2          2
8317     #define bfd_mach_avr25         25
8318     #define bfd_mach_avr3          3
8319     #define bfd_mach_avr31         31
8320     #define bfd_mach_avr35         35
8321     #define bfd_mach_avr4          4
8322     #define bfd_mach_avr5          5
8323     #define bfd_mach_avr51         51
8324     #define bfd_mach_avr6          6
8325     #define bfd_mach_avrtiny   100
8326     #define bfd_mach_avrxmega1 101
8327     #define bfd_mach_avrxmega2 102
8328     #define bfd_mach_avrxmega3 103
8329     #define bfd_mach_avrxmega4 104
8330     #define bfd_mach_avrxmega5 105
8331     #define bfd_mach_avrxmega6 106
8332     #define bfd_mach_avrxmega7 107
8333       bfd_arch_bfin,        /* ADI Blackfin */
8334     #define bfd_mach_bfin          1
8335       bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
8336     #define bfd_mach_cr16          1
8337       bfd_arch_cr16c,       /* National Semiconductor CompactRISC. */
8338     #define bfd_mach_cr16c         1
8339       bfd_arch_crx,       /*  National Semiconductor CRX.  */
8340     #define bfd_mach_crx           1
8341       bfd_arch_cris,      /* Axis CRIS */
8342     #define bfd_mach_cris_v0_v10   255
8343     #define bfd_mach_cris_v32      32
8344     #define bfd_mach_cris_v10_v32  1032
8345       bfd_arch_rl78,
8346     #define bfd_mach_rl78  0x75
8347       bfd_arch_rx,        /* Renesas RX.  */
8348     #define bfd_mach_rx            0x75
8349       bfd_arch_s390,      /* IBM s390 */
8350     #define bfd_mach_s390_31       31
8351     #define bfd_mach_s390_64       64
8352       bfd_arch_score,     /* Sunplus score */
8353     #define bfd_mach_score3         3
8354     #define bfd_mach_score7         7
8355       bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
8356       bfd_arch_xstormy16,
8357     #define bfd_mach_xstormy16     1
8358       bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
8359     #define bfd_mach_msp11          11
8360     #define bfd_mach_msp110         110
8361     #define bfd_mach_msp12          12
8362     #define bfd_mach_msp13          13
8363     #define bfd_mach_msp14          14
8364     #define bfd_mach_msp15          15
8365     #define bfd_mach_msp16          16
8366     #define bfd_mach_msp20          20
8367     #define bfd_mach_msp21          21
8368     #define bfd_mach_msp22          22
8369     #define bfd_mach_msp23          23
8370     #define bfd_mach_msp24          24
8371     #define bfd_mach_msp26          26
8372     #define bfd_mach_msp31          31
8373     #define bfd_mach_msp32          32
8374     #define bfd_mach_msp33          33
8375     #define bfd_mach_msp41          41
8376     #define bfd_mach_msp42          42
8377     #define bfd_mach_msp43          43
8378     #define bfd_mach_msp44          44
8379     #define bfd_mach_msp430x        45
8380     #define bfd_mach_msp46          46
8381     #define bfd_mach_msp47          47
8382     #define bfd_mach_msp54          54
8383       bfd_arch_xc16x,     /* Infineon's XC16X Series.               */
8384     #define bfd_mach_xc16x         1
8385     #define bfd_mach_xc16xl        2
8386     #define bfd_mach_xc16xs        3
8387       bfd_arch_xgate,   /* Freescale XGATE */
8388     #define bfd_mach_xgate         1
8389       bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
8390     #define bfd_mach_xtensa        1
8391       bfd_arch_z80,
8392     #define bfd_mach_z80strict      1 /* No undocumented opcodes.  */
8393     #define bfd_mach_z80            3 /* With ixl, ixh, iyl, and iyh.  */
8394     #define bfd_mach_z80full        7 /* All undocumented instructions.  */
8395     #define bfd_mach_r800           11 /* R800: successor with multiplication.  */
8396       bfd_arch_lm32,      /* Lattice Mico32 */
8397     #define bfd_mach_lm32      1
8398       bfd_arch_microblaze,/* Xilinx MicroBlaze. */
8399       bfd_arch_tilepro,   /* Tilera TILEPro */
8400       bfd_arch_tilegx, /* Tilera TILE-Gx */
8401     #define bfd_mach_tilepro   1
8402     #define bfd_mach_tilegx    1
8403     #define bfd_mach_tilegx32  2
8404       bfd_arch_aarch64,   /* AArch64  */
8405     #define bfd_mach_aarch64 0
8406     #define bfd_mach_aarch64_ilp32 32
8407       bfd_arch_nios2,      /* Nios II */
8408     #define bfd_mach_nios2         0
8409     #define bfd_mach_nios2r1       1
8410     #define bfd_mach_nios2r2       2
8411       bfd_arch_visium,     /* Visium */
8412     #define bfd_mach_visium        1
8413       bfd_arch_last
8414       };
8415
84162.13.2 bfd_arch_info
8417--------------------
8418
8419*Description*
8420This structure contains information on architectures for use within BFD.
8421
8422     typedef struct bfd_arch_info
8423     {
8424       int bits_per_word;
8425       int bits_per_address;
8426       int bits_per_byte;
8427       enum bfd_architecture arch;
8428       unsigned long mach;
8429       const char *arch_name;
8430       const char *printable_name;
8431       unsigned int section_align_power;
8432       /* TRUE if this is the default machine for the architecture.
8433          The default arch should be the first entry for an arch so that
8434          all the entries for that arch can be accessed via `next'.  */
8435       bfd_boolean the_default;
8436       const struct bfd_arch_info * (*compatible)
8437         (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
8438
8439       bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
8440
8441       /* Allocate via bfd_malloc and return a fill buffer of size COUNT.  If
8442          IS_BIGENDIAN is TRUE, the order of bytes is big endian.  If CODE is
8443          TRUE, the buffer contains code.  */
8444       void *(*fill) (bfd_size_type count, bfd_boolean is_bigendian,
8445                      bfd_boolean code);
8446
8447       const struct bfd_arch_info *next;
8448     }
8449     bfd_arch_info_type;
8450
84512.13.2.1 `bfd_printable_name'
8452.............................
8453
8454*Synopsis*
8455     const char *bfd_printable_name (bfd *abfd);
8456   *Description*
8457Return a printable string representing the architecture and machine
8458from the pointer to the architecture info structure.
8459
84602.13.2.2 `bfd_scan_arch'
8461........................
8462
8463*Synopsis*
8464     const bfd_arch_info_type *bfd_scan_arch (const char *string);
8465   *Description*
8466Figure out if BFD supports any cpu which could be described with the
8467name STRING.  Return a pointer to an `arch_info' structure if a machine
8468is found, otherwise NULL.
8469
84702.13.2.3 `bfd_arch_list'
8471........................
8472
8473*Synopsis*
8474     const char **bfd_arch_list (void);
8475   *Description*
8476Return a freshly malloced NULL-terminated vector of the names of all
8477the valid BFD architectures.  Do not modify the names.
8478
84792.13.2.4 `bfd_arch_get_compatible'
8480..................................
8481
8482*Synopsis*
8483     const bfd_arch_info_type *bfd_arch_get_compatible
8484        (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
8485   *Description*
8486Determine whether two BFDs' architectures and machine types are
8487compatible.  Calculates the lowest common denominator between the two
8488architectures and machine types implied by the BFDs and returns a
8489pointer to an `arch_info' structure describing the compatible machine.
8490
84912.13.2.5 `bfd_default_arch_struct'
8492..................................
8493
8494*Description*
8495The `bfd_default_arch_struct' is an item of `bfd_arch_info_type' which
8496has been initialized to a fairly generic state.  A BFD starts life by
8497pointing to this structure, until the correct back end has determined
8498the real architecture of the file.
8499     extern const bfd_arch_info_type bfd_default_arch_struct;
8500
85012.13.2.6 `bfd_set_arch_info'
8502............................
8503
8504*Synopsis*
8505     void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
8506   *Description*
8507Set the architecture info of ABFD to ARG.
8508
85092.13.2.7 `bfd_default_set_arch_mach'
8510....................................
8511
8512*Synopsis*
8513     bfd_boolean bfd_default_set_arch_mach
8514        (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
8515   *Description*
8516Set the architecture and machine type in BFD ABFD to ARCH and MACH.
8517Find the correct pointer to a structure and insert it into the
8518`arch_info' pointer.
8519
85202.13.2.8 `bfd_get_arch'
8521.......................
8522
8523*Synopsis*
8524     enum bfd_architecture bfd_get_arch (bfd *abfd);
8525   *Description*
8526Return the enumerated type which describes the BFD ABFD's architecture.
8527
85282.13.2.9 `bfd_get_mach'
8529.......................
8530
8531*Synopsis*
8532     unsigned long bfd_get_mach (bfd *abfd);
8533   *Description*
8534Return the long type which describes the BFD ABFD's machine.
8535
85362.13.2.10 `bfd_arch_bits_per_byte'
8537..................................
8538
8539*Synopsis*
8540     unsigned int bfd_arch_bits_per_byte (bfd *abfd);
8541   *Description*
8542Return the number of bits in one of the BFD ABFD's architecture's bytes.
8543
85442.13.2.11 `bfd_arch_bits_per_address'
8545.....................................
8546
8547*Synopsis*
8548     unsigned int bfd_arch_bits_per_address (bfd *abfd);
8549   *Description*
8550Return the number of bits in one of the BFD ABFD's architecture's
8551addresses.
8552
85532.13.2.12 `bfd_default_compatible'
8554..................................
8555
8556*Synopsis*
8557     const bfd_arch_info_type *bfd_default_compatible
8558        (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
8559   *Description*
8560The default function for testing for compatibility.
8561
85622.13.2.13 `bfd_default_scan'
8563............................
8564
8565*Synopsis*
8566     bfd_boolean bfd_default_scan
8567        (const struct bfd_arch_info *info, const char *string);
8568   *Description*
8569The default function for working out whether this is an architecture
8570hit and a machine hit.
8571
85722.13.2.14 `bfd_get_arch_info'
8573.............................
8574
8575*Synopsis*
8576     const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
8577   *Description*
8578Return the architecture info struct in ABFD.
8579
85802.13.2.15 `bfd_lookup_arch'
8581...........................
8582
8583*Synopsis*
8584     const bfd_arch_info_type *bfd_lookup_arch
8585        (enum bfd_architecture arch, unsigned long machine);
8586   *Description*
8587Look for the architecture info structure which matches the arguments
8588ARCH and MACHINE. A machine of 0 matches the machine/architecture
8589structure which marks itself as the default.
8590
85912.13.2.16 `bfd_printable_arch_mach'
8592...................................
8593
8594*Synopsis*
8595     const char *bfd_printable_arch_mach
8596        (enum bfd_architecture arch, unsigned long machine);
8597   *Description*
8598Return a printable string representing the architecture and machine
8599type.
8600
8601   This routine is depreciated.
8602
86032.13.2.17 `bfd_octets_per_byte'
8604...............................
8605
8606*Synopsis*
8607     unsigned int bfd_octets_per_byte (bfd *abfd);
8608   *Description*
8609Return the number of octets (8-bit quantities) per target byte (minimum
8610addressable unit).  In most cases, this will be one, but some DSP
8611targets have 16, 32, or even 48 bits per byte.
8612
86132.13.2.18 `bfd_arch_mach_octets_per_byte'
8614.........................................
8615
8616*Synopsis*
8617     unsigned int bfd_arch_mach_octets_per_byte
8618        (enum bfd_architecture arch, unsigned long machine);
8619   *Description*
8620See bfd_octets_per_byte.
8621
8622   This routine is provided for those cases where a bfd * is not
8623available
8624
86252.13.2.19 `bfd_arch_default_fill'
8626.................................
8627
8628*Synopsis*
8629     void *bfd_arch_default_fill (bfd_size_type count,
8630         bfd_boolean is_bigendian,
8631         bfd_boolean code);
8632   *Description*
8633Allocate via bfd_malloc and return a fill buffer of size COUNT.  If
8634IS_BIGENDIAN is TRUE, the order of bytes is big endian.  If CODE is
8635TRUE, the buffer contains code.
8636
8637
8638File: bfd.info,  Node: Opening and Closing,  Next: Internal,  Prev: Architectures,  Up: BFD front end
8639
8640     /* Set to N to open the next N BFDs using an alternate id space.  */
8641     extern unsigned int bfd_use_reserved_id;
8642
86432.14 Opening and closing BFDs
8644=============================
8645
86462.14.1 Functions for opening and closing
8647----------------------------------------
8648
86492.14.1.1 `bfd_fopen'
8650....................
8651
8652*Synopsis*
8653     bfd *bfd_fopen (const char *filename, const char *target,
8654         const char *mode, int fd);
8655   *Description*
8656Open the file FILENAME with the target TARGET.  Return a pointer to the
8657created BFD.  If FD is not -1, then `fdopen' is used to open the file;
8658otherwise, `fopen' is used.  MODE is passed directly to `fopen' or
8659`fdopen'.
8660
8661   Calls `bfd_find_target', so TARGET is interpreted as by that
8662function.
8663
8664   The new BFD is marked as cacheable iff FD is -1.
8665
8666   If `NULL' is returned then an error has occured.   Possible errors
8667are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call'
8668error.
8669
8670   On error, FD is always closed.
8671
8672   A copy of the FILENAME argument is stored in the newly created BFD.
8673It can be accessed via the bfd_get_filename() macro.
8674
86752.14.1.2 `bfd_openr'
8676....................
8677
8678*Synopsis*
8679     bfd *bfd_openr (const char *filename, const char *target);
8680   *Description*
8681Open the file FILENAME (using `fopen') with the target TARGET.  Return
8682a pointer to the created BFD.
8683
8684   Calls `bfd_find_target', so TARGET is interpreted as by that
8685function.
8686
8687   If `NULL' is returned then an error has occured.   Possible errors
8688are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call'
8689error.
8690
8691   A copy of the FILENAME argument is stored in the newly created BFD.
8692It can be accessed via the bfd_get_filename() macro.
8693
86942.14.1.3 `bfd_fdopenr'
8695......................
8696
8697*Synopsis*
8698     bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
8699   *Description*
8700`bfd_fdopenr' is to `bfd_fopenr' much like `fdopen' is to `fopen'.  It
8701opens a BFD on a file already described by the FD supplied.
8702
8703   When the file is later `bfd_close'd, the file descriptor will be
8704closed.  If the caller desires that this file descriptor be cached by
8705BFD (opened as needed, closed as needed to free descriptors for other
8706opens), with the supplied FD used as an initial file descriptor (but
8707subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the
8708returned BFD.  The default is to assume no caching; the file descriptor
8709will remain open until `bfd_close', and will not be affected by BFD
8710operations on other files.
8711
8712   Possible errors are `bfd_error_no_memory',
8713`bfd_error_invalid_target' and `bfd_error_system_call'.
8714
8715   On error, FD is closed.
8716
8717   A copy of the FILENAME argument is stored in the newly created BFD.
8718It can be accessed via the bfd_get_filename() macro.
8719
87202.14.1.4 `bfd_openstreamr'
8721..........................
8722
8723*Synopsis*
8724     bfd *bfd_openstreamr (const char * filename, const char * target, void * stream);
8725   *Description*
8726Open a BFD for read access on an existing stdio stream.  When the BFD
8727is passed to `bfd_close', the stream will be closed.
8728
8729   A copy of the FILENAME argument is stored in the newly created BFD.
8730It can be accessed via the bfd_get_filename() macro.
8731
87322.14.1.5 `bfd_openr_iovec'
8733..........................
8734
8735*Synopsis*
8736     bfd *bfd_openr_iovec (const char *filename, const char *target,
8737         void *(*open_func) (struct bfd *nbfd,
8738         void *open_closure),
8739         void *open_closure,
8740         file_ptr (*pread_func) (struct bfd *nbfd,
8741         void *stream,
8742         void *buf,
8743         file_ptr nbytes,
8744         file_ptr offset),
8745         int (*close_func) (struct bfd *nbfd,
8746         void *stream),
8747         int (*stat_func) (struct bfd *abfd,
8748         void *stream,
8749         struct stat *sb));
8750   *Description*
8751Create and return a BFD backed by a read-only STREAM.  The STREAM is
8752created using OPEN_FUNC, accessed using PREAD_FUNC and destroyed using
8753CLOSE_FUNC.
8754
8755   Calls `bfd_find_target', so TARGET is interpreted as by that
8756function.
8757
8758   Calls OPEN_FUNC (which can call `bfd_zalloc' and `bfd_get_filename')
8759to obtain the read-only stream backing the BFD.  OPEN_FUNC either
8760succeeds returning the non-`NULL' STREAM, or fails returning `NULL'
8761(setting `bfd_error').
8762
8763   Calls PREAD_FUNC to request NBYTES of data from STREAM starting at
8764OFFSET (e.g., via a call to `bfd_read').  PREAD_FUNC either succeeds
8765returning the number of bytes read (which can be less than NBYTES when
8766end-of-file), or fails returning -1 (setting `bfd_error').
8767
8768   Calls CLOSE_FUNC when the BFD is later closed using `bfd_close'.
8769CLOSE_FUNC either succeeds returning 0, or fails returning -1 (setting
8770`bfd_error').
8771
8772   Calls STAT_FUNC to fill in a stat structure for bfd_stat,
8773bfd_get_size, and bfd_get_mtime calls.  STAT_FUNC returns 0 on success,
8774or returns -1 on failure (setting `bfd_error').
8775
8776   If `bfd_openr_iovec' returns `NULL' then an error has occurred.
8777Possible errors are `bfd_error_no_memory', `bfd_error_invalid_target'
8778and `bfd_error_system_call'.
8779
8780   A copy of the FILENAME argument is stored in the newly created BFD.
8781It can be accessed via the bfd_get_filename() macro.
8782
87832.14.1.6 `bfd_openw'
8784....................
8785
8786*Synopsis*
8787     bfd *bfd_openw (const char *filename, const char *target);
8788   *Description*
8789Create a BFD, associated with file FILENAME, using the file format
8790TARGET, and return a pointer to it.
8791
8792   Possible errors are `bfd_error_system_call', `bfd_error_no_memory',
8793`bfd_error_invalid_target'.
8794
8795   A copy of the FILENAME argument is stored in the newly created BFD.
8796It can be accessed via the bfd_get_filename() macro.
8797
87982.14.1.7 `bfd_close'
8799....................
8800
8801*Synopsis*
8802     bfd_boolean bfd_close (bfd *abfd);
8803   *Description*
8804Close a BFD. If the BFD was open for writing, then pending operations
8805are completed and the file written out and closed.  If the created file
8806is executable, then `chmod' is called to mark it as such.
8807
8808   All memory attached to the BFD is released.
8809
8810   The file descriptor associated with the BFD is closed (even if it
8811was passed in to BFD by `bfd_fdopenr').
8812
8813   *Returns*
8814`TRUE' is returned if all is ok, otherwise `FALSE'.
8815
88162.14.1.8 `bfd_close_all_done'
8817.............................
8818
8819*Synopsis*
8820     bfd_boolean bfd_close_all_done (bfd *);
8821   *Description*
8822Close a BFD.  Differs from `bfd_close' since it does not complete any
8823pending operations.  This routine would be used if the application had
8824just used BFD for swapping and didn't want to use any of the writing
8825code.
8826
8827   If the created file is executable, then `chmod' is called to mark it
8828as such.
8829
8830   All memory attached to the BFD is released.
8831
8832   *Returns*
8833`TRUE' is returned if all is ok, otherwise `FALSE'.
8834
88352.14.1.9 `bfd_create'
8836.....................
8837
8838*Synopsis*
8839     bfd *bfd_create (const char *filename, bfd *templ);
8840   *Description*
8841Create a new BFD in the manner of `bfd_openw', but without opening a
8842file. The new BFD takes the target from the target used by TEMPL. The
8843format is always set to `bfd_object'.
8844
8845   A copy of the FILENAME argument is stored in the newly created BFD.
8846It can be accessed via the bfd_get_filename() macro.
8847
88482.14.1.10 `bfd_make_writable'
8849.............................
8850
8851*Synopsis*
8852     bfd_boolean bfd_make_writable (bfd *abfd);
8853   *Description*
8854Takes a BFD as created by `bfd_create' and converts it into one like as
8855returned by `bfd_openw'.  It does this by converting the BFD to
8856BFD_IN_MEMORY.  It's assumed that you will call `bfd_make_readable' on
8857this bfd later.
8858
8859   *Returns*
8860`TRUE' is returned if all is ok, otherwise `FALSE'.
8861
88622.14.1.11 `bfd_make_readable'
8863.............................
8864
8865*Synopsis*
8866     bfd_boolean bfd_make_readable (bfd *abfd);
8867   *Description*
8868Takes a BFD as created by `bfd_create' and `bfd_make_writable' and
8869converts it into one like as returned by `bfd_openr'.  It does this by
8870writing the contents out to the memory buffer, then reversing the
8871direction.
8872
8873   *Returns*
8874`TRUE' is returned if all is ok, otherwise `FALSE'.
8875
88762.14.1.12 `bfd_alloc'
8877.....................
8878
8879*Synopsis*
8880     void *bfd_alloc (bfd *abfd, bfd_size_type wanted);
8881   *Description*
8882Allocate a block of WANTED bytes of memory attached to `abfd' and
8883return a pointer to it.
8884
88852.14.1.13 `bfd_alloc2'
8886......................
8887
8888*Synopsis*
8889     void *bfd_alloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size);
8890   *Description*
8891Allocate a block of NMEMB elements of SIZE bytes each of memory
8892attached to `abfd' and return a pointer to it.
8893
88942.14.1.14 `bfd_zalloc'
8895......................
8896
8897*Synopsis*
8898     void *bfd_zalloc (bfd *abfd, bfd_size_type wanted);
8899   *Description*
8900Allocate a block of WANTED bytes of zeroed memory attached to `abfd'
8901and return a pointer to it.
8902
89032.14.1.15 `bfd_zalloc2'
8904.......................
8905
8906*Synopsis*
8907     void *bfd_zalloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size);
8908   *Description*
8909Allocate a block of NMEMB elements of SIZE bytes each of zeroed memory
8910attached to `abfd' and return a pointer to it.
8911
89122.14.1.16 `bfd_calc_gnu_debuglink_crc32'
8913........................................
8914
8915*Synopsis*
8916     unsigned long bfd_calc_gnu_debuglink_crc32
8917        (unsigned long crc, const unsigned char *buf, bfd_size_type len);
8918   *Description*
8919Computes a CRC value as used in the .gnu_debuglink section.  Advances
8920the previously computed CRC value by computing and adding in the crc32
8921for LEN bytes of BUF.
8922
8923   *Returns*
8924Return the updated CRC32 value.
8925
89262.14.1.17 `bfd_get_debug_link_info'
8927...................................
8928
8929*Synopsis*
8930     char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
8931   *Description*
8932Fetch the filename and CRC32 value for any separate debuginfo
8933associated with ABFD.  Return NULL if no such info found, otherwise
8934return filename and update CRC32_OUT.  The returned filename is
8935allocated with `malloc'; freeing it is the responsibility of the caller.
8936
89372.14.1.18 `bfd_get_alt_debug_link_info'
8938.......................................
8939
8940*Synopsis*
8941     char *bfd_get_alt_debug_link_info (bfd * abfd,
8942         bfd_size_type *buildid_len,
8943         bfd_byte **buildid_out);
8944   *Description*
8945Fetch the filename and BuildID value for any alternate debuginfo
8946associated with ABFD.  Return NULL if no such info found, otherwise
8947return filename and update BUILDID_LEN and BUILDID_OUT.  The returned
8948filename and build_id are allocated with `malloc'; freeing them is the
8949responsibility of the caller.
8950
89512.14.1.19 `separate_debug_file_exists'
8952......................................
8953
8954*Synopsis*
8955     bfd_boolean separate_debug_file_exists
8956        (char *name, unsigned long crc32);
8957   *Description*
8958Checks to see if NAME is a file and if its contents match CRC32.
8959
89602.14.1.20 `separate_alt_debug_file_exists'
8961..........................................
8962
8963*Synopsis*
8964     bfd_boolean separate_alt_debug_file_exists
8965        (char *name, unsigned long crc32);
8966   *Description*
8967Checks to see if NAME is a file and if its BuildID matches BUILDID.
8968
89692.14.1.21 `find_separate_debug_file'
8970....................................
8971
8972*Synopsis*
8973     char *find_separate_debug_file (bfd *abfd);
8974   *Description*
8975Searches ABFD for a section called SECTION_NAME which is expected to
8976contain a reference to a file containing separate debugging
8977information.  The function scans various locations in the filesystem,
8978including the file tree rooted at DEBUG_FILE_DIRECTORY, and returns the
8979first matching filename that it finds.  If CHECK_CRC is TRUE then the
8980contents of the file must also match the CRC value contained in
8981SECTION_NAME.  Returns NULL if no valid file could be found.
8982
89832.14.1.22 `bfd_follow_gnu_debuglink'
8984....................................
8985
8986*Synopsis*
8987     char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
8988   *Description*
8989Takes a BFD and searches it for a .gnu_debuglink section.  If this
8990section is found, it examines the section for the name and checksum of
8991a '.debug' file containing auxiliary debugging information.  It then
8992searches the filesystem for this .debug file in some standard
8993locations, including the directory tree rooted at DIR, and if found
8994returns the full filename.
8995
8996   If DIR is NULL, it will search a default path configured into libbfd
8997at build time.  [XXX this feature is not currently implemented].
8998
8999   *Returns*
9000`NULL' on any errors or failure to locate the .debug file, otherwise a
9001pointer to a heap-allocated string containing the filename.  The caller
9002is responsible for freeing this string.
9003
90042.14.1.23 `bfd_follow_gnu_debugaltlink'
9005.......................................
9006
9007*Synopsis*
9008     char *bfd_follow_gnu_debugaltlink (bfd *abfd, const char *dir);
9009   *Description*
9010Takes a BFD and searches it for a .gnu_debugaltlink section.  If this
9011section is found, it examines the section for the name of a file
9012containing auxiliary debugging information.  It then searches the
9013filesystem for this file in a set of standard locations, including the
9014directory tree rooted at DIR, and if found returns the full filename.
9015
9016   If DIR is NULL, it will search a default path configured into libbfd
9017at build time.  [FIXME: This feature is not currently implemented].
9018
9019   *Returns*
9020`NULL' on any errors or failure to locate the debug file, otherwise a
9021pointer to a heap-allocated string containing the filename.  The caller
9022is responsible for freeing this string.
9023
90242.14.1.24 `bfd_create_gnu_debuglink_section'
9025............................................
9026
9027*Synopsis*
9028     struct bfd_section *bfd_create_gnu_debuglink_section
9029        (bfd *abfd, const char *filename);
9030   *Description*
9031Takes a BFD and adds a .gnu_debuglink section to it.  The section is
9032sized to be big enough to contain a link to the specified FILENAME.
9033
9034   *Returns*
9035A pointer to the new section is returned if all is ok.  Otherwise
9036`NULL' is returned and bfd_error is set.
9037
90382.14.1.25 `bfd_fill_in_gnu_debuglink_section'
9039.............................................
9040
9041*Synopsis*
9042     bfd_boolean bfd_fill_in_gnu_debuglink_section
9043        (bfd *abfd, struct bfd_section *sect, const char *filename);
9044   *Description*
9045Takes a BFD and containing a .gnu_debuglink section SECT and fills in
9046the contents of the section to contain a link to the specified
9047FILENAME.  The filename should be relative to the current directory.
9048
9049   *Returns*
9050`TRUE' is returned if all is ok.  Otherwise `FALSE' is returned and
9051bfd_error is set.
9052
9053
9054File: bfd.info,  Node: Internal,  Next: File Caching,  Prev: Opening and Closing,  Up: BFD front end
9055
90562.15 Implementation details
9057===========================
9058
90592.15.1 Internal functions
9060-------------------------
9061
9062*Description*
9063These routines are used within BFD.  They are not intended for export,
9064but are documented here for completeness.
9065
90662.15.1.1 `bfd_write_bigendian_4byte_int'
9067........................................
9068
9069*Synopsis*
9070     bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
9071   *Description*
9072Write a 4 byte integer I to the output BFD ABFD, in big endian order
9073regardless of what else is going on.  This is useful in archives.
9074
90752.15.1.2 `bfd_put_size'
9076.......................
9077
90782.15.1.3 `bfd_get_size'
9079.......................
9080
9081*Description*
9082These macros as used for reading and writing raw data in sections; each
9083access (except for bytes) is vectored through the target format of the
9084BFD and mangled accordingly. The mangling performs any necessary endian
9085translations and removes alignment restrictions.  Note that types
9086accepted and returned by these macros are identical so they can be
9087swapped around in macros--for example, `libaout.h' defines `GET_WORD'
9088to either `bfd_get_32' or `bfd_get_64'.
9089
9090   In the put routines, VAL must be a `bfd_vma'.  If we are on a system
9091without prototypes, the caller is responsible for making sure that is
9092true, with a cast if necessary.  We don't cast them in the macro
9093definitions because that would prevent `lint' or `gcc -Wall' from
9094detecting sins such as passing a pointer.  To detect calling these with
9095less than a `bfd_vma', use `gcc -Wconversion' on a host with 64 bit
9096`bfd_vma''s.
9097
9098     /* Byte swapping macros for user section data.  */
9099
9100     #define bfd_put_8(abfd, val, ptr) \
9101       ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
9102     #define bfd_put_signed_8 \
9103       bfd_put_8
9104     #define bfd_get_8(abfd, ptr) \
9105       (*(const unsigned char *) (ptr) & 0xff)
9106     #define bfd_get_signed_8(abfd, ptr) \
9107       (((*(const unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
9108
9109     #define bfd_put_16(abfd, val, ptr) \
9110       BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
9111     #define bfd_put_signed_16 \
9112       bfd_put_16
9113     #define bfd_get_16(abfd, ptr) \
9114       BFD_SEND (abfd, bfd_getx16, (ptr))
9115     #define bfd_get_signed_16(abfd, ptr) \
9116       BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
9117
9118     #define bfd_put_32(abfd, val, ptr) \
9119       BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
9120     #define bfd_put_signed_32 \
9121       bfd_put_32
9122     #define bfd_get_32(abfd, ptr) \
9123       BFD_SEND (abfd, bfd_getx32, (ptr))
9124     #define bfd_get_signed_32(abfd, ptr) \
9125       BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
9126
9127     #define bfd_put_64(abfd, val, ptr) \
9128       BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
9129     #define bfd_put_signed_64 \
9130       bfd_put_64
9131     #define bfd_get_64(abfd, ptr) \
9132       BFD_SEND (abfd, bfd_getx64, (ptr))
9133     #define bfd_get_signed_64(abfd, ptr) \
9134       BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
9135
9136     #define bfd_get(bits, abfd, ptr)                       \
9137       ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr)       \
9138        : (bits) == 16 ? bfd_get_16 (abfd, ptr)             \
9139        : (bits) == 32 ? bfd_get_32 (abfd, ptr)             \
9140        : (bits) == 64 ? bfd_get_64 (abfd, ptr)             \
9141        : (abort (), (bfd_vma) - 1))
9142
9143     #define bfd_put(bits, abfd, val, ptr)                  \
9144       ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)           \
9145        : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)                \
9146        : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)                \
9147        : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)                \
9148        : (abort (), (void) 0))
9149
91502.15.1.4 `bfd_h_put_size'
9151.........................
9152
9153*Description*
9154These macros have the same function as their `bfd_get_x' brethren,
9155except that they are used for removing information for the header
9156records of object files. Believe it or not, some object files keep
9157their header records in big endian order and their data in little
9158endian order.
9159
9160     /* Byte swapping macros for file header data.  */
9161
9162     #define bfd_h_put_8(abfd, val, ptr) \
9163       bfd_put_8 (abfd, val, ptr)
9164     #define bfd_h_put_signed_8(abfd, val, ptr) \
9165       bfd_put_8 (abfd, val, ptr)
9166     #define bfd_h_get_8(abfd, ptr) \
9167       bfd_get_8 (abfd, ptr)
9168     #define bfd_h_get_signed_8(abfd, ptr) \
9169       bfd_get_signed_8 (abfd, ptr)
9170
9171     #define bfd_h_put_16(abfd, val, ptr) \
9172       BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
9173     #define bfd_h_put_signed_16 \
9174       bfd_h_put_16
9175     #define bfd_h_get_16(abfd, ptr) \
9176       BFD_SEND (abfd, bfd_h_getx16, (ptr))
9177     #define bfd_h_get_signed_16(abfd, ptr) \
9178       BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
9179
9180     #define bfd_h_put_32(abfd, val, ptr) \
9181       BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
9182     #define bfd_h_put_signed_32 \
9183       bfd_h_put_32
9184     #define bfd_h_get_32(abfd, ptr) \
9185       BFD_SEND (abfd, bfd_h_getx32, (ptr))
9186     #define bfd_h_get_signed_32(abfd, ptr) \
9187       BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
9188
9189     #define bfd_h_put_64(abfd, val, ptr) \
9190       BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
9191     #define bfd_h_put_signed_64 \
9192       bfd_h_put_64
9193     #define bfd_h_get_64(abfd, ptr) \
9194       BFD_SEND (abfd, bfd_h_getx64, (ptr))
9195     #define bfd_h_get_signed_64(abfd, ptr) \
9196       BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
9197
9198     /* Aliases for the above, which should eventually go away.  */
9199
9200     #define H_PUT_64  bfd_h_put_64
9201     #define H_PUT_32  bfd_h_put_32
9202     #define H_PUT_16  bfd_h_put_16
9203     #define H_PUT_8   bfd_h_put_8
9204     #define H_PUT_S64 bfd_h_put_signed_64
9205     #define H_PUT_S32 bfd_h_put_signed_32
9206     #define H_PUT_S16 bfd_h_put_signed_16
9207     #define H_PUT_S8  bfd_h_put_signed_8
9208     #define H_GET_64  bfd_h_get_64
9209     #define H_GET_32  bfd_h_get_32
9210     #define H_GET_16  bfd_h_get_16
9211     #define H_GET_8   bfd_h_get_8
9212     #define H_GET_S64 bfd_h_get_signed_64
9213     #define H_GET_S32 bfd_h_get_signed_32
9214     #define H_GET_S16 bfd_h_get_signed_16
9215     #define H_GET_S8  bfd_h_get_signed_8
9216
92172.15.1.5 `bfd_log2'
9218...................
9219
9220*Synopsis*
9221     unsigned int bfd_log2 (bfd_vma x);
9222   *Description*
9223Return the log base 2 of the value supplied, rounded up.  E.g., an X of
92241025 returns 11.  A X of 0 returns 0.
9225
9226
9227File: bfd.info,  Node: File Caching,  Next: Linker Functions,  Prev: Internal,  Up: BFD front end
9228
92292.16 File caching
9230=================
9231
9232The file caching mechanism is embedded within BFD and allows the
9233application to open as many BFDs as it wants without regard to the
9234underlying operating system's file descriptor limit (often as low as 20
9235open files).  The module in `cache.c' maintains a least recently used
9236list of `bfd_cache_max_open' files, and exports the name
9237`bfd_cache_lookup', which runs around and makes sure that the required
9238BFD is open. If not, then it chooses a file to close, closes it and
9239opens the one wanted, returning its file handle.
9240
92412.16.1 Caching functions
9242------------------------
9243
92442.16.1.1 `bfd_cache_init'
9245.........................
9246
9247*Synopsis*
9248     bfd_boolean bfd_cache_init (bfd *abfd);
9249   *Description*
9250Add a newly opened BFD to the cache.
9251
92522.16.1.2 `bfd_cache_close'
9253..........................
9254
9255*Synopsis*
9256     bfd_boolean bfd_cache_close (bfd *abfd);
9257   *Description*
9258Remove the BFD ABFD from the cache. If the attached file is open, then
9259close it too.
9260
9261   *Returns*
9262`FALSE' is returned if closing the file fails, `TRUE' is returned if
9263all is well.
9264
92652.16.1.3 `bfd_cache_close_all'
9266..............................
9267
9268*Synopsis*
9269     bfd_boolean bfd_cache_close_all (void);
9270   *Description*
9271Remove all BFDs from the cache. If the attached file is open, then
9272close it too.
9273
9274   *Returns*
9275`FALSE' is returned if closing one of the file fails, `TRUE' is
9276returned if all is well.
9277
92782.16.1.4 `bfd_open_file'
9279........................
9280
9281*Synopsis*
9282     FILE* bfd_open_file (bfd *abfd);
9283   *Description*
9284Call the OS to open a file for ABFD.  Return the `FILE *' (possibly
9285`NULL') that results from this operation.  Set up the BFD so that
9286future accesses know the file is open. If the `FILE *' returned is
9287`NULL', then it won't have been put in the cache, so it won't have to
9288be removed from it.
9289
9290
9291File: bfd.info,  Node: Linker Functions,  Next: Hash Tables,  Prev: File Caching,  Up: BFD front end
9292
92932.17 Linker Functions
9294=====================
9295
9296The linker uses three special entry points in the BFD target vector.
9297It is not necessary to write special routines for these entry points
9298when creating a new BFD back end, since generic versions are provided.
9299However, writing them can speed up linking and make it use
9300significantly less runtime memory.
9301
9302   The first routine creates a hash table used by the other routines.
9303The second routine adds the symbols from an object file to the hash
9304table.  The third routine takes all the object files and links them
9305together to create the output file.  These routines are designed so
9306that the linker proper does not need to know anything about the symbols
9307in the object files that it is linking.  The linker merely arranges the
9308sections as directed by the linker script and lets BFD handle the
9309details of symbols and relocs.
9310
9311   The second routine and third routines are passed a pointer to a
9312`struct bfd_link_info' structure (defined in `bfdlink.h') which holds
9313information relevant to the link, including the linker hash table
9314(which was created by the first routine) and a set of callback
9315functions to the linker proper.
9316
9317   The generic linker routines are in `linker.c', and use the header
9318file `genlink.h'.  As of this writing, the only back ends which have
9319implemented versions of these routines are a.out (in `aoutx.h') and
9320ECOFF (in `ecoff.c').  The a.out routines are used as examples
9321throughout this section.
9322
9323* Menu:
9324
9325* Creating a Linker Hash Table::
9326* Adding Symbols to the Hash Table::
9327* Performing the Final Link::
9328
9329
9330File: bfd.info,  Node: Creating a Linker Hash Table,  Next: Adding Symbols to the Hash Table,  Prev: Linker Functions,  Up: Linker Functions
9331
93322.17.1 Creating a linker hash table
9333-----------------------------------
9334
9335The linker routines must create a hash table, which must be derived
9336from `struct bfd_link_hash_table' described in `bfdlink.c'.  *Note Hash
9337Tables::, for information on how to create a derived hash table.  This
9338entry point is called using the target vector of the linker output file.
9339
9340   The `_bfd_link_hash_table_create' entry point must allocate and
9341initialize an instance of the desired hash table.  If the back end does
9342not require any additional information to be stored with the entries in
9343the hash table, the entry point may simply create a `struct
9344bfd_link_hash_table'.  Most likely, however, some additional
9345information will be needed.
9346
9347   For example, with each entry in the hash table the a.out linker
9348keeps the index the symbol has in the final output file (this index
9349number is used so that when doing a relocatable link the symbol index
9350used in the output file can be quickly filled in when copying over a
9351reloc).  The a.out linker code defines the required structures and
9352functions for a hash table derived from `struct bfd_link_hash_table'.
9353The a.out linker hash table is created by the function
9354`NAME(aout,link_hash_table_create)'; it simply allocates space for the
9355hash table, initializes it, and returns a pointer to it.
9356
9357   When writing the linker routines for a new back end, you will
9358generally not know exactly which fields will be required until you have
9359finished.  You should simply create a new hash table which defines no
9360additional fields, and then simply add fields as they become necessary.
9361
9362
9363File: bfd.info,  Node: Adding Symbols to the Hash Table,  Next: Performing the Final Link,  Prev: Creating a Linker Hash Table,  Up: Linker Functions
9364
93652.17.2 Adding symbols to the hash table
9366---------------------------------------
9367
9368The linker proper will call the `_bfd_link_add_symbols' entry point for
9369each object file or archive which is to be linked (typically these are
9370the files named on the command line, but some may also come from the
9371linker script).  The entry point is responsible for examining the file.
9372For an object file, BFD must add any relevant symbol information to
9373the hash table.  For an archive, BFD must determine which elements of
9374the archive should be used and adding them to the link.
9375
9376   The a.out version of this entry point is
9377`NAME(aout,link_add_symbols)'.
9378
9379* Menu:
9380
9381* Differing file formats::
9382* Adding symbols from an object file::
9383* Adding symbols from an archive::
9384
9385
9386File: 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
9387
93882.17.2.1 Differing file formats
9389...............................
9390
9391Normally all the files involved in a link will be of the same format,
9392but it is also possible to link together different format object files,
9393and the back end must support that.  The `_bfd_link_add_symbols' entry
9394point is called via the target vector of the file to be added.  This
9395has an important consequence: the function may not assume that the hash
9396table is the type created by the corresponding
9397`_bfd_link_hash_table_create' vector.  All the `_bfd_link_add_symbols'
9398function can assume about the hash table is that it is derived from
9399`struct bfd_link_hash_table'.
9400
9401   Sometimes the `_bfd_link_add_symbols' function must store some
9402information in the hash table entry to be used by the `_bfd_final_link'
9403function.  In such a case the output bfd xvec must be checked to make
9404sure that the hash table was created by an object file of the same
9405format.
9406
9407   The `_bfd_final_link' routine must be prepared to handle a hash
9408entry without any extra information added by the
9409`_bfd_link_add_symbols' function.  A hash entry without extra
9410information will also occur when the linker script directs the linker
9411to create a symbol.  Note that, regardless of how a hash table entry is
9412added, all the fields will be initialized to some sort of null value by
9413the hash table entry initialization function.
9414
9415   See `ecoff_link_add_externals' for an example of how to check the
9416output bfd before saving information (in this case, the ECOFF external
9417symbol debugging information) in a hash table entry.
9418
9419
9420File: 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
9421
94222.17.2.2 Adding symbols from an object file
9423...........................................
9424
9425When the `_bfd_link_add_symbols' routine is passed an object file, it
9426must add all externally visible symbols in that object file to the hash
9427table.  The actual work of adding the symbol to the hash table is
9428normally handled by the function `_bfd_generic_link_add_one_symbol'.
9429The `_bfd_link_add_symbols' routine is responsible for reading all the
9430symbols from the object file and passing the correct information to
9431`_bfd_generic_link_add_one_symbol'.
9432
9433   The `_bfd_link_add_symbols' routine should not use
9434`bfd_canonicalize_symtab' to read the symbols.  The point of providing
9435this routine is to avoid the overhead of converting the symbols into
9436generic `asymbol' structures.
9437
9438   `_bfd_generic_link_add_one_symbol' handles the details of combining
9439common symbols, warning about multiple definitions, and so forth.  It
9440takes arguments which describe the symbol to add, notably symbol flags,
9441a section, and an offset.  The symbol flags include such things as
9442`BSF_WEAK' or `BSF_INDIRECT'.  The section is a section in the object
9443file, or something like `bfd_und_section_ptr' for an undefined symbol
9444or `bfd_com_section_ptr' for a common symbol.
9445
9446   If the `_bfd_final_link' routine is also going to need to read the
9447symbol information, the `_bfd_link_add_symbols' routine should save it
9448somewhere attached to the object file BFD.  However, the information
9449should only be saved if the `keep_memory' field of the `info' argument
9450is TRUE, so that the `-no-keep-memory' linker switch is effective.
9451
9452   The a.out function which adds symbols from an object file is
9453`aout_link_add_object_symbols', and most of the interesting work is in
9454`aout_link_add_symbols'.  The latter saves pointers to the hash tables
9455entries created by `_bfd_generic_link_add_one_symbol' indexed by symbol
9456number, so that the `_bfd_final_link' routine does not have to call the
9457hash table lookup routine to locate the entry.
9458
9459
9460File: bfd.info,  Node: Adding symbols from an archive,  Prev: Adding symbols from an object file,  Up: Adding Symbols to the Hash Table
9461
94622.17.2.3 Adding symbols from an archive
9463.......................................
9464
9465When the `_bfd_link_add_symbols' routine is passed an archive, it must
9466look through the symbols defined by the archive and decide which
9467elements of the archive should be included in the link.  For each such
9468element it must call the `add_archive_element' linker callback, and it
9469must add the symbols from the object file to the linker hash table.
9470(The callback may in fact indicate that a replacement BFD should be
9471used, in which case the symbols from that BFD should be added to the
9472linker hash table instead.)
9473
9474   In most cases the work of looking through the symbols in the archive
9475should be done by the `_bfd_generic_link_add_archive_symbols' function.
9476`_bfd_generic_link_add_archive_symbols' is passed a function to call to
9477make the final decision about adding an archive element to the link and
9478to do the actual work of adding the symbols to the linker hash table.
9479If the element is to be included, the `add_archive_element' linker
9480callback routine must be called with the element as an argument, and
9481the element's symbols must be added to the linker hash table just as
9482though the element had itself been passed to the
9483`_bfd_link_add_symbols' function.
9484
9485   When the a.out `_bfd_link_add_symbols' function receives an archive,
9486it calls `_bfd_generic_link_add_archive_symbols' passing
9487`aout_link_check_archive_element' as the function argument.
9488`aout_link_check_archive_element' calls `aout_link_check_ar_symbols'.
9489If the latter decides to add the element (an element is only added if
9490it provides a real, non-common, definition for a previously undefined
9491or common symbol) it calls the `add_archive_element' callback and then
9492`aout_link_check_archive_element' calls `aout_link_add_symbols' to
9493actually add the symbols to the linker hash table - possibly those of a
9494substitute BFD, if the `add_archive_element' callback avails itself of
9495that option.
9496
9497   The ECOFF back end is unusual in that it does not normally call
9498`_bfd_generic_link_add_archive_symbols', because ECOFF archives already
9499contain a hash table of symbols.  The ECOFF back end searches the
9500archive itself to avoid the overhead of creating a new hash table.
9501
9502
9503File: bfd.info,  Node: Performing the Final Link,  Prev: Adding Symbols to the Hash Table,  Up: Linker Functions
9504
95052.17.3 Performing the final link
9506--------------------------------
9507
9508When all the input files have been processed, the linker calls the
9509`_bfd_final_link' entry point of the output BFD.  This routine is
9510responsible for producing the final output file, which has several
9511aspects.  It must relocate the contents of the input sections and copy
9512the data into the output sections.  It must build an output symbol
9513table including any local symbols from the input files and the global
9514symbols from the hash table.  When producing relocatable output, it must
9515modify the input relocs and write them into the output file.  There may
9516also be object format dependent work to be done.
9517
9518   The linker will also call the `write_object_contents' entry point
9519when the BFD is closed.  The two entry points must work together in
9520order to produce the correct output file.
9521
9522   The details of how this works are inevitably dependent upon the
9523specific object file format.  The a.out `_bfd_final_link' routine is
9524`NAME(aout,final_link)'.
9525
9526* Menu:
9527
9528* Information provided by the linker::
9529* Relocating the section contents::
9530* Writing the symbol table::
9531
9532
9533File: bfd.info,  Node: Information provided by the linker,  Next: Relocating the section contents,  Prev: Performing the Final Link,  Up: Performing the Final Link
9534
95352.17.3.1 Information provided by the linker
9536...........................................
9537
9538Before the linker calls the `_bfd_final_link' entry point, it sets up
9539some data structures for the function to use.
9540
9541   The `input_bfds' field of the `bfd_link_info' structure will point
9542to a list of all the input files included in the link.  These files are
9543linked through the `link.next' field of the `bfd' structure.
9544
9545   Each section in the output file will have a list of `link_order'
9546structures attached to the `map_head.link_order' field (the
9547`link_order' structure is defined in `bfdlink.h').  These structures
9548describe how to create the contents of the output section in terms of
9549the contents of various input sections, fill constants, and,
9550eventually, other types of information.  They also describe relocs that
9551must be created by the BFD backend, but do not correspond to any input
9552file; this is used to support -Ur, which builds constructors while
9553generating a relocatable object file.
9554
9555
9556File: bfd.info,  Node: Relocating the section contents,  Next: Writing the symbol table,  Prev: Information provided by the linker,  Up: Performing the Final Link
9557
95582.17.3.2 Relocating the section contents
9559........................................
9560
9561The `_bfd_final_link' function should look through the `link_order'
9562structures attached to each section of the output file.  Each
9563`link_order' structure should either be handled specially, or it should
9564be passed to the function `_bfd_default_link_order' which will do the
9565right thing (`_bfd_default_link_order' is defined in `linker.c').
9566
9567   For efficiency, a `link_order' of type `bfd_indirect_link_order'
9568whose associated section belongs to a BFD of the same format as the
9569output BFD must be handled specially.  This type of `link_order'
9570describes part of an output section in terms of a section belonging to
9571one of the input files.  The `_bfd_final_link' function should read the
9572contents of the section and any associated relocs, apply the relocs to
9573the section contents, and write out the modified section contents.  If
9574performing a relocatable link, the relocs themselves must also be
9575modified and written out.
9576
9577   The functions `_bfd_relocate_contents' and
9578`_bfd_final_link_relocate' provide some general support for performing
9579the actual relocations, notably overflow checking.  Their arguments
9580include information about the symbol the relocation is against and a
9581`reloc_howto_type' argument which describes the relocation to perform.
9582These functions are defined in `reloc.c'.
9583
9584   The a.out function which handles reading, relocating, and writing
9585section contents is `aout_link_input_section'.  The actual relocation
9586is done in `aout_link_input_section_std' and
9587`aout_link_input_section_ext'.
9588
9589
9590File: bfd.info,  Node: Writing the symbol table,  Prev: Relocating the section contents,  Up: Performing the Final Link
9591
95922.17.3.3 Writing the symbol table
9593.................................
9594
9595The `_bfd_final_link' function must gather all the symbols in the input
9596files and write them out.  It must also write out all the symbols in
9597the global hash table.  This must be controlled by the `strip' and
9598`discard' fields of the `bfd_link_info' structure.
9599
9600   The local symbols of the input files will not have been entered into
9601the linker hash table.  The `_bfd_final_link' routine must consider
9602each input file and include the symbols in the output file.  It may be
9603convenient to do this when looking through the `link_order' structures,
9604or it may be done by stepping through the `input_bfds' list.
9605
9606   The `_bfd_final_link' routine must also traverse the global hash
9607table to gather all the externally visible symbols.  It is possible
9608that most of the externally visible symbols may be written out when
9609considering the symbols of each input file, but it is still necessary
9610to traverse the hash table since the linker script may have defined
9611some symbols that are not in any of the input files.
9612
9613   The `strip' field of the `bfd_link_info' structure controls which
9614symbols are written out.  The possible values are listed in
9615`bfdlink.h'.  If the value is `strip_some', then the `keep_hash' field
9616of the `bfd_link_info' structure is a hash table of symbols to keep;
9617each symbol should be looked up in this hash table, and only symbols
9618which are present should be included in the output file.
9619
9620   If the `strip' field of the `bfd_link_info' structure permits local
9621symbols to be written out, the `discard' field is used to further
9622controls which local symbols are included in the output file.  If the
9623value is `discard_l', then all local symbols which begin with a certain
9624prefix are discarded; this is controlled by the
9625`bfd_is_local_label_name' entry point.
9626
9627   The a.out backend handles symbols by calling
9628`aout_link_write_symbols' on each input BFD and then traversing the
9629global hash table with the function `aout_link_write_other_symbol'.  It
9630builds a string table while writing out the symbols, which is written
9631to the output file at the end of `NAME(aout,final_link)'.
9632
96332.17.3.4 `bfd_link_split_section'
9634.................................
9635
9636*Synopsis*
9637     bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
9638   *Description*
9639Return nonzero if SEC should be split during a reloceatable or final
9640link.
9641     #define bfd_link_split_section(abfd, sec) \
9642            BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
9643
96442.17.3.5 `bfd_section_already_linked'
9645.....................................
9646
9647*Synopsis*
9648     bfd_boolean bfd_section_already_linked (bfd *abfd,
9649         asection *sec,
9650         struct bfd_link_info *info);
9651   *Description*
9652Check if DATA has been already linked during a reloceatable or final
9653link.  Return TRUE if it has.
9654     #define bfd_section_already_linked(abfd, sec, info) \
9655            BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
9656
96572.17.3.6 `bfd_generic_define_common_symbol'
9658...........................................
9659
9660*Synopsis*
9661     bfd_boolean bfd_generic_define_common_symbol
9662        (bfd *output_bfd, struct bfd_link_info *info,
9663         struct bfd_link_hash_entry *h);
9664   *Description*
9665Convert common symbol H into a defined symbol.  Return TRUE on success
9666and FALSE on failure.
9667     #define bfd_define_common_symbol(output_bfd, info, h) \
9668            BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h))
9669
96702.17.3.7 `bfd_find_version_for_sym'
9671...................................
9672
9673*Synopsis*
9674     struct bfd_elf_version_tree * bfd_find_version_for_sym
9675        (struct bfd_elf_version_tree *verdefs,
9676         const char *sym_name, bfd_boolean *hide);
9677   *Description*
9678Search an elf version script tree for symbol versioning info and export
9679/ don't-export status for a given symbol.  Return non-NULL on success
9680and NULL on failure; also sets the output `hide' boolean parameter.
9681
96822.17.3.8 `bfd_hide_sym_by_version'
9683..................................
9684
9685*Synopsis*
9686     bfd_boolean bfd_hide_sym_by_version
9687        (struct bfd_elf_version_tree *verdefs, const char *sym_name);
9688   *Description*
9689Search an elf version script tree for symbol versioning info for a
9690given symbol.  Return TRUE if the symbol is hidden.
9691
9692
9693File: bfd.info,  Node: Hash Tables,  Prev: Linker Functions,  Up: BFD front end
9694
96952.18 Hash Tables
9696================
9697
9698BFD provides a simple set of hash table functions.  Routines are
9699provided to initialize a hash table, to free a hash table, to look up a
9700string in a hash table and optionally create an entry for it, and to
9701traverse a hash table.  There is currently no routine to delete an
9702string from a hash table.
9703
9704   The basic hash table does not permit any data to be stored with a
9705string.  However, a hash table is designed to present a base class from
9706which other types of hash tables may be derived.  These derived types
9707may store additional information with the string.  Hash tables were
9708implemented in this way, rather than simply providing a data pointer in
9709a hash table entry, because they were designed for use by the linker
9710back ends.  The linker may create thousands of hash table entries, and
9711the overhead of allocating private data and storing and following
9712pointers becomes noticeable.
9713
9714   The basic hash table code is in `hash.c'.
9715
9716* Menu:
9717
9718* Creating and Freeing a Hash Table::
9719* Looking Up or Entering a String::
9720* Traversing a Hash Table::
9721* Deriving a New Hash Table Type::
9722
9723
9724File: bfd.info,  Node: Creating and Freeing a Hash Table,  Next: Looking Up or Entering a String,  Prev: Hash Tables,  Up: Hash Tables
9725
97262.18.1 Creating and freeing a hash table
9727----------------------------------------
9728
9729To create a hash table, create an instance of a `struct bfd_hash_table'
9730(defined in `bfd.h') and call `bfd_hash_table_init' (if you know
9731approximately how many entries you will need, the function
9732`bfd_hash_table_init_n', which takes a SIZE argument, may be used).
9733`bfd_hash_table_init' returns `FALSE' if some sort of error occurs.
9734
9735   The function `bfd_hash_table_init' take as an argument a function to
9736use to create new entries.  For a basic hash table, use the function
9737`bfd_hash_newfunc'.  *Note Deriving a New Hash Table Type::, for why
9738you would want to use a different value for this argument.
9739
9740   `bfd_hash_table_init' will create an objalloc which will be used to
9741allocate new entries.  You may allocate memory on this objalloc using
9742`bfd_hash_allocate'.
9743
9744   Use `bfd_hash_table_free' to free up all the memory that has been
9745allocated for a hash table.  This will not free up the `struct
9746bfd_hash_table' itself, which you must provide.
9747
9748   Use `bfd_hash_set_default_size' to set the default size of hash
9749table to use.
9750
9751
9752File: bfd.info,  Node: Looking Up or Entering a String,  Next: Traversing a Hash Table,  Prev: Creating and Freeing a Hash Table,  Up: Hash Tables
9753
97542.18.2 Looking up or entering a string
9755--------------------------------------
9756
9757The function `bfd_hash_lookup' is used both to look up a string in the
9758hash table and to create a new entry.
9759
9760   If the CREATE argument is `FALSE', `bfd_hash_lookup' will look up a
9761string.  If the string is found, it will returns a pointer to a `struct
9762bfd_hash_entry'.  If the string is not found in the table
9763`bfd_hash_lookup' will return `NULL'.  You should not modify any of the
9764fields in the returns `struct bfd_hash_entry'.
9765
9766   If the CREATE argument is `TRUE', the string will be entered into
9767the hash table if it is not already there.  Either way a pointer to a
9768`struct bfd_hash_entry' will be returned, either to the existing
9769structure or to a newly created one.  In this case, a `NULL' return
9770means that an error occurred.
9771
9772   If the CREATE argument is `TRUE', and a new entry is created, the
9773COPY argument is used to decide whether to copy the string onto the
9774hash table objalloc or not.  If COPY is passed as `FALSE', you must be
9775careful not to deallocate or modify the string as long as the hash table
9776exists.
9777
9778
9779File: bfd.info,  Node: Traversing a Hash Table,  Next: Deriving a New Hash Table Type,  Prev: Looking Up or Entering a String,  Up: Hash Tables
9780
97812.18.3 Traversing a hash table
9782------------------------------
9783
9784The function `bfd_hash_traverse' may be used to traverse a hash table,
9785calling a function on each element.  The traversal is done in a random
9786order.
9787
9788   `bfd_hash_traverse' takes as arguments a function and a generic
9789`void *' pointer.  The function is called with a hash table entry (a
9790`struct bfd_hash_entry *') and the generic pointer passed to
9791`bfd_hash_traverse'.  The function must return a `boolean' value, which
9792indicates whether to continue traversing the hash table.  If the
9793function returns `FALSE', `bfd_hash_traverse' will stop the traversal
9794and return immediately.
9795
9796
9797File: bfd.info,  Node: Deriving a New Hash Table Type,  Prev: Traversing a Hash Table,  Up: Hash Tables
9798
97992.18.4 Deriving a new hash table type
9800-------------------------------------
9801
9802Many uses of hash tables want to store additional information which
9803each entry in the hash table.  Some also find it convenient to store
9804additional information with the hash table itself.  This may be done
9805using a derived hash table.
9806
9807   Since C is not an object oriented language, creating a derived hash
9808table requires sticking together some boilerplate routines with a few
9809differences specific to the type of hash table you want to create.
9810
9811   An example of a derived hash table is the linker hash table.  The
9812structures for this are defined in `bfdlink.h'.  The functions are in
9813`linker.c'.
9814
9815   You may also derive a hash table from an already derived hash table.
9816For example, the a.out linker backend code uses a hash table derived
9817from the linker hash table.
9818
9819* Menu:
9820
9821* Define the Derived Structures::
9822* Write the Derived Creation Routine::
9823* Write Other Derived Routines::
9824
9825
9826File: 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
9827
98282.18.4.1 Define the derived structures
9829......................................
9830
9831You must define a structure for an entry in the hash table, and a
9832structure for the hash table itself.
9833
9834   The first field in the structure for an entry in the hash table must
9835be of the type used for an entry in the hash table you are deriving
9836from.  If you are deriving from a basic hash table this is `struct
9837bfd_hash_entry', which is defined in `bfd.h'.  The first field in the
9838structure for the hash table itself must be of the type of the hash
9839table you are deriving from itself.  If you are deriving from a basic
9840hash table, this is `struct bfd_hash_table'.
9841
9842   For example, the linker hash table defines `struct
9843bfd_link_hash_entry' (in `bfdlink.h').  The first field, `root', is of
9844type `struct bfd_hash_entry'.  Similarly, the first field in `struct
9845bfd_link_hash_table', `table', is of type `struct bfd_hash_table'.
9846
9847
9848File: 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
9849
98502.18.4.2 Write the derived creation routine
9851...........................................
9852
9853You must write a routine which will create and initialize an entry in
9854the hash table.  This routine is passed as the function argument to
9855`bfd_hash_table_init'.
9856
9857   In order to permit other hash tables to be derived from the hash
9858table you are creating, this routine must be written in a standard way.
9859
9860   The first argument to the creation routine is a pointer to a hash
9861table entry.  This may be `NULL', in which case the routine should
9862allocate the right amount of space.  Otherwise the space has already
9863been allocated by a hash table type derived from this one.
9864
9865   After allocating space, the creation routine must call the creation
9866routine of the hash table type it is derived from, passing in a pointer
9867to the space it just allocated.  This will initialize any fields used
9868by the base hash table.
9869
9870   Finally the creation routine must initialize any local fields for
9871the new hash table type.
9872
9873   Here is a boilerplate example of a creation routine.  FUNCTION_NAME
9874is the name of the routine.  ENTRY_TYPE is the type of an entry in the
9875hash table you are creating.  BASE_NEWFUNC is the name of the creation
9876routine of the hash table type your hash table is derived from.
9877
9878     struct bfd_hash_entry *
9879     FUNCTION_NAME (struct bfd_hash_entry *entry,
9880                          struct bfd_hash_table *table,
9881                          const char *string)
9882     {
9883       struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry;
9884
9885      /* Allocate the structure if it has not already been allocated by a
9886         derived class.  */
9887       if (ret == NULL)
9888         {
9889           ret = bfd_hash_allocate (table, sizeof (* ret));
9890           if (ret == NULL)
9891             return NULL;
9892         }
9893
9894      /* Call the allocation method of the base class.  */
9895       ret = ((ENTRY_TYPE *)
9896             BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string));
9897
9898      /* Initialize the local fields here.  */
9899
9900       return (struct bfd_hash_entry *) ret;
9901     }
9902   *Description*
9903The creation routine for the linker hash table, which is in `linker.c',
9904looks just like this example.  FUNCTION_NAME is
9905`_bfd_link_hash_newfunc'.  ENTRY_TYPE is `struct bfd_link_hash_entry'.
9906BASE_NEWFUNC is `bfd_hash_newfunc', the creation routine for a basic
9907hash table.
9908
9909   `_bfd_link_hash_newfunc' also initializes the local fields in a
9910linker hash table entry: `type', `written' and `next'.
9911
9912
9913File: bfd.info,  Node: Write Other Derived Routines,  Prev: Write the Derived Creation Routine,  Up: Deriving a New Hash Table Type
9914
99152.18.4.3 Write other derived routines
9916.....................................
9917
9918You will want to write other routines for your new hash table, as well.
9919
9920   You will want an initialization routine which calls the
9921initialization routine of the hash table you are deriving from and
9922initializes any other local fields.  For the linker hash table, this is
9923`_bfd_link_hash_table_init' in `linker.c'.
9924
9925   You will want a lookup routine which calls the lookup routine of the
9926hash table you are deriving from and casts the result.  The linker hash
9927table uses `bfd_link_hash_lookup' in `linker.c' (this actually takes an
9928additional argument which it uses to decide how to return the looked up
9929value).
9930
9931   You may want a traversal routine.  This should just call the
9932traversal routine of the hash table you are deriving from with
9933appropriate casts.  The linker hash table uses `bfd_link_hash_traverse'
9934in `linker.c'.
9935
9936   These routines may simply be defined as macros.  For example, the
9937a.out backend linker hash table, which is derived from the linker hash
9938table, uses macros for the lookup and traversal routines.  These are
9939`aout_link_hash_lookup' and `aout_link_hash_traverse' in aoutx.h.
9940
9941
9942File: bfd.info,  Node: BFD back ends,  Next: GNU Free Documentation License,  Prev: BFD front end,  Up: Top
9943
99443 BFD back ends
9945***************
9946
9947* Menu:
9948
9949* What to Put Where::
9950* aout ::	a.out backends
9951* coff ::	coff backends
9952* elf  ::	elf backends
9953* mmo  ::	mmo backend
9954
9955
9956File: bfd.info,  Node: What to Put Where,  Next: aout,  Prev: BFD back ends,  Up: BFD back ends
9957
99583.1 What to Put Where
9959=====================
9960
9961All of BFD lives in one directory.
9962
9963
9964File: bfd.info,  Node: aout,  Next: coff,  Prev: What to Put Where,  Up: BFD back ends
9965
99663.2 a.out backends
9967==================
9968
9969*Description*
9970BFD supports a number of different flavours of a.out format, though the
9971major differences are only the sizes of the structures on disk, and the
9972shape of the relocation information.
9973
9974   The support is split into a basic support file `aoutx.h' and other
9975files which derive functions from the base. One derivation file is
9976`aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions
9977support for sun3, sun4, 386 and 29k a.out files, to create a target
9978jump vector for a specific target.
9979
9980   This information is further split out into more specific files for
9981each machine, including `sunos.c' for sun3 and sun4, `newsos3.c' for
9982the Sony NEWS, and `demo64.c' for a demonstration of a 64 bit a.out
9983format.
9984
9985   The base file `aoutx.h' defines general mechanisms for reading and
9986writing records to and from disk and various other methods which BFD
9987requires. It is included by `aout32.c' and `aout64.c' to form the names
9988`aout_32_swap_exec_header_in', `aout_64_swap_exec_header_in', etc.
9989
9990   As an example, this is what goes on to make the back end for a sun4,
9991from `aout32.c':
9992
9993            #define ARCH_SIZE 32
9994            #include "aoutx.h"
9995
9996   Which exports names:
9997
9998            ...
9999            aout_32_canonicalize_reloc
10000            aout_32_find_nearest_line
10001            aout_32_get_lineno
10002            aout_32_get_reloc_upper_bound
10003            ...
10004
10005   from `sunos.c':
10006
10007            #define TARGET_NAME "a.out-sunos-big"
10008            #define VECNAME    sparc_aout_sunos_be_vec
10009            #include "aoutf1.h"
10010
10011   requires all the names from `aout32.c', and produces the jump vector
10012
10013            sparc_aout_sunos_be_vec
10014
10015   The file `host-aout.c' is a special case.  It is for a large set of
10016hosts that use "more or less standard" a.out files, and for which
10017cross-debugging is not interesting.  It uses the standard 32-bit a.out
10018support routines, but determines the file offsets and addresses of the
10019text, data, and BSS sections, the machine architecture and machine
10020type, and the entry point address, in a host-dependent manner.  Once
10021these values have been determined, generic code is used to handle the
10022object file.
10023
10024   When porting it to run on a new system, you must supply:
10025
10026             HOST_PAGE_SIZE
10027             HOST_SEGMENT_SIZE
10028             HOST_MACHINE_ARCH       (optional)
10029             HOST_MACHINE_MACHINE    (optional)
10030             HOST_TEXT_START_ADDR
10031             HOST_STACK_END_ADDR
10032
10033   in the file `../include/sys/h-XXX.h' (for your host).  These values,
10034plus the structures and macros defined in `a.out.h' on your host
10035system, will produce a BFD target that will access ordinary a.out files
10036on your host. To configure a new machine to use `host-aout.c', specify:
10037
10038            TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec
10039            TDEPFILES= host-aout.o trad-core.o
10040
10041   in the `config/XXX.mt' file, and modify `configure.ac' to use the
10042`XXX.mt' file (by setting "`bfd_target=XXX'") when your configuration
10043is selected.
10044
100453.2.1 Relocations
10046-----------------
10047
10048*Description*
10049The file `aoutx.h' provides for both the _standard_ and _extended_
10050forms of a.out relocation records.
10051
10052   The standard records contain only an address, a symbol index, and a
10053type field. The extended records (used on 29ks and sparcs) also have a
10054full integer for an addend.
10055
100563.2.2 Internal entry points
10057---------------------------
10058
10059*Description*
10060`aoutx.h' exports several routines for accessing the contents of an
10061a.out file, which are gathered and exported in turn by various format
10062specific files (eg sunos.c).
10063
100643.2.2.1 `aout_SIZE_swap_exec_header_in'
10065.......................................
10066
10067*Synopsis*
10068     void aout_SIZE_swap_exec_header_in,
10069        (bfd *abfd,
10070         struct external_exec *bytes,
10071         struct internal_exec *execp);
10072   *Description*
10073Swap the information in an executable header RAW_BYTES taken from a raw
10074byte stream memory image into the internal exec header structure EXECP.
10075
100763.2.2.2 `aout_SIZE_swap_exec_header_out'
10077........................................
10078
10079*Synopsis*
10080     void aout_SIZE_swap_exec_header_out
10081        (bfd *abfd,
10082         struct internal_exec *execp,
10083         struct external_exec *raw_bytes);
10084   *Description*
10085Swap the information in an internal exec header structure EXECP into
10086the buffer RAW_BYTES ready for writing to disk.
10087
100883.2.2.3 `aout_SIZE_some_aout_object_p'
10089......................................
10090
10091*Synopsis*
10092     const bfd_target *aout_SIZE_some_aout_object_p
10093        (bfd *abfd,
10094         struct internal_exec *execp,
10095         const bfd_target *(*callback_to_real_object_p) (bfd *));
10096   *Description*
10097Some a.out variant thinks that the file open in ABFD checking is an
10098a.out file.  Do some more checking, and set up for access if it really
10099is.  Call back to the calling environment's "finish up" function just
10100before returning, to handle any last-minute setup.
10101
101023.2.2.4 `aout_SIZE_mkobject'
10103............................
10104
10105*Synopsis*
10106     bfd_boolean aout_SIZE_mkobject, (bfd *abfd);
10107   *Description*
10108Initialize BFD ABFD for use with a.out files.
10109
101103.2.2.5 `aout_SIZE_machine_type'
10111................................
10112
10113*Synopsis*
10114     enum machine_type  aout_SIZE_machine_type
10115        (enum bfd_architecture arch,
10116         unsigned long machine,
10117         bfd_boolean *unknown);
10118   *Description*
10119Keep track of machine architecture and machine type for a.out's. Return
10120the `machine_type' for a particular architecture and machine, or
10121`M_UNKNOWN' if that exact architecture and machine can't be represented
10122in a.out format.
10123
10124   If the architecture is understood, machine type 0 (default) is
10125always understood.
10126
101273.2.2.6 `aout_SIZE_set_arch_mach'
10128.................................
10129
10130*Synopsis*
10131     bfd_boolean aout_SIZE_set_arch_mach,
10132        (bfd *,
10133         enum bfd_architecture arch,
10134         unsigned long machine);
10135   *Description*
10136Set the architecture and the machine of the BFD ABFD to the values ARCH
10137and MACHINE.  Verify that ABFD's format can support the architecture
10138required.
10139
101403.2.2.7 `aout_SIZE_new_section_hook'
10141....................................
10142
10143*Synopsis*
10144     bfd_boolean aout_SIZE_new_section_hook,
10145        (bfd *abfd,
10146         asection *newsect);
10147   *Description*
10148Called by the BFD in response to a `bfd_make_section' request.
10149
10150
10151File: bfd.info,  Node: coff,  Next: elf,  Prev: aout,  Up: BFD back ends
10152
101533.3 coff backends
10154=================
10155
10156BFD supports a number of different flavours of coff format.  The major
10157differences between formats are the sizes and alignments of fields in
10158structures on disk, and the occasional extra field.
10159
10160   Coff in all its varieties is implemented with a few common files and
10161a number of implementation specific files. For example, The 88k bcs
10162coff format is implemented in the file `coff-m88k.c'. This file
10163`#include's `coff/m88k.h' which defines the external structure of the
10164coff format for the 88k, and `coff/internal.h' which defines the
10165internal structure. `coff-m88k.c' also defines the relocations used by
10166the 88k format *Note Relocations::.
10167
10168   The Intel i960 processor version of coff is implemented in
10169`coff-i960.c'. This file has the same structure as `coff-m88k.c',
10170except that it includes `coff/i960.h' rather than `coff-m88k.h'.
10171
101723.3.1 Porting to a new version of coff
10173--------------------------------------
10174
10175The recommended method is to select from the existing implementations
10176the version of coff which is most like the one you want to use.  For
10177example, we'll say that i386 coff is the one you select, and that your
10178coff flavour is called foo.  Copy `i386coff.c' to `foocoff.c', copy
10179`../include/coff/i386.h' to `../include/coff/foo.h', and add the lines
10180to `targets.c' and `Makefile.in' so that your new back end is used.
10181Alter the shapes of the structures in `../include/coff/foo.h' so that
10182they match what you need. You will probably also have to add `#ifdef's
10183to the code in `coff/internal.h' and `coffcode.h' if your version of
10184coff is too wild.
10185
10186   You can verify that your new BFD backend works quite simply by
10187building `objdump' from the `binutils' directory, and making sure that
10188its version of what's going on and your host system's idea (assuming it
10189has the pretty standard coff dump utility, usually called `att-dump' or
10190just `dump') are the same.  Then clean up your code, and send what
10191you've done to Cygnus. Then your stuff will be in the next release, and
10192you won't have to keep integrating it.
10193
101943.3.2 How the coff backend works
10195--------------------------------
10196
101973.3.2.1 File layout
10198...................
10199
10200The Coff backend is split into generic routines that are applicable to
10201any Coff target and routines that are specific to a particular target.
10202The target-specific routines are further split into ones which are
10203basically the same for all Coff targets except that they use the
10204external symbol format or use different values for certain constants.
10205
10206   The generic routines are in `coffgen.c'.  These routines work for
10207any Coff target.  They use some hooks into the target specific code;
10208the hooks are in a `bfd_coff_backend_data' structure, one of which
10209exists for each target.
10210
10211   The essentially similar target-specific routines are in
10212`coffcode.h'.  This header file includes executable C code.  The
10213various Coff targets first include the appropriate Coff header file,
10214make any special defines that are needed, and then include `coffcode.h'.
10215
10216   Some of the Coff targets then also have additional routines in the
10217target source file itself.
10218
10219   For example, `coff-i960.c' includes `coff/internal.h' and
10220`coff/i960.h'.  It then defines a few constants, such as `I960', and
10221includes `coffcode.h'.  Since the i960 has complex relocation types,
10222`coff-i960.c' also includes some code to manipulate the i960 relocs.
10223This code is not in `coffcode.h' because it would not be used by any
10224other target.
10225
102263.3.2.2 Coff long section names
10227...............................
10228
10229In the standard Coff object format, section names are limited to the
10230eight bytes available in the `s_name' field of the `SCNHDR' section
10231header structure.  The format requires the field to be NUL-padded, but
10232not necessarily NUL-terminated, so the longest section names permitted
10233are a full eight characters.
10234
10235   The Microsoft PE variants of the Coff object file format add an
10236extension to support the use of long section names.  This extension is
10237defined in section 4 of the Microsoft PE/COFF specification (rev 8.1).
10238If a section name is too long to fit into the section header's `s_name'
10239field, it is instead placed into the string table, and the `s_name'
10240field is filled with a slash ("/") followed by the ASCII decimal
10241representation of the offset of the full name relative to the string
10242table base.
10243
10244   Note that this implies that the extension can only be used in object
10245files, as executables do not contain a string table.  The standard
10246specifies that long section names from objects emitted into executable
10247images are to be truncated.
10248
10249   However, as a GNU extension, BFD can generate executable images that
10250contain a string table and long section names.  This would appear to be
10251technically valid, as the standard only says that Coff debugging
10252information is deprecated, not forbidden, and in practice it works,
10253although some tools that parse PE files expecting the MS standard
10254format may become confused; `PEview' is one known example.
10255
10256   The functionality is supported in BFD by code implemented under the
10257control of the macro `COFF_LONG_SECTION_NAMES'.  If not defined, the
10258format does not support long section names in any way.  If defined, it
10259is used to initialise a flag, `_bfd_coff_long_section_names', and a
10260hook function pointer, `_bfd_coff_set_long_section_names', in the Coff
10261backend data structure.  The flag controls the generation of long
10262section names in output BFDs at runtime; if it is false, as it will be
10263by default when generating an executable image, long section names are
10264truncated; if true, the long section names extension is employed.  The
10265hook points to a function that allows the value of the flag to be
10266altered at runtime, on formats that support long section names at all;
10267on other formats it points to a stub that returns an error indication.
10268
10269   With input BFDs, the flag is set according to whether any long
10270section names are detected while reading the section headers.  For a
10271completely new BFD, the flag is set to the default for the target
10272format.  This information can be used by a client of the BFD library
10273when deciding what output format to generate, and means that a BFD that
10274is opened for read and subsequently converted to a writeable BFD and
10275modified in-place will retain whatever format it had on input.
10276
10277   If `COFF_LONG_SECTION_NAMES' is simply defined (blank), or is
10278defined to the value "1", then long section names are enabled by
10279default; if it is defined to the value zero, they are disabled by
10280default (but still accepted in input BFDs).  The header `coffcode.h'
10281defines a macro, `COFF_DEFAULT_LONG_SECTION_NAMES', which is used in
10282the backends to initialise the backend data structure fields
10283appropriately; see the comments for further detail.
10284
102853.3.2.3 Bit twiddling
10286.....................
10287
10288Each flavour of coff supported in BFD has its own header file
10289describing the external layout of the structures. There is also an
10290internal description of the coff layout, in `coff/internal.h'. A major
10291function of the coff backend is swapping the bytes and twiddling the
10292bits to translate the external form of the structures into the normal
10293internal form. This is all performed in the `bfd_swap'_thing_direction
10294routines. Some elements are different sizes between different versions
10295of coff; it is the duty of the coff version specific include file to
10296override the definitions of various packing routines in `coffcode.h'.
10297E.g., the size of line number entry in coff is sometimes 16 bits, and
10298sometimes 32 bits. `#define'ing `PUT_LNSZ_LNNO' and `GET_LNSZ_LNNO'
10299will select the correct one. No doubt, some day someone will find a
10300version of coff which has a varying field size not catered to at the
10301moment. To port BFD, that person will have to add more `#defines'.
10302Three of the bit twiddling routines are exported to `gdb';
10303`coff_swap_aux_in', `coff_swap_sym_in' and `coff_swap_lineno_in'. `GDB'
10304reads the symbol table on its own, but uses BFD to fix things up.  More
10305of the bit twiddlers are exported for `gas'; `coff_swap_aux_out',
10306`coff_swap_sym_out', `coff_swap_lineno_out', `coff_swap_reloc_out',
10307`coff_swap_filehdr_out', `coff_swap_aouthdr_out',
10308`coff_swap_scnhdr_out'. `Gas' currently keeps track of all the symbol
10309table and reloc drudgery itself, thereby saving the internal BFD
10310overhead, but uses BFD to swap things on the way out, making cross
10311ports much safer.  Doing so also allows BFD (and thus the linker) to
10312use the same header files as `gas', which makes one avenue to disaster
10313disappear.
10314
103153.3.2.4 Symbol reading
10316......................
10317
10318The simple canonical form for symbols used by BFD is not rich enough to
10319keep all the information available in a coff symbol table. The back end
10320gets around this problem by keeping the original symbol table around,
10321"behind the scenes".
10322
10323   When a symbol table is requested (through a call to
10324`bfd_canonicalize_symtab'), a request gets through to
10325`coff_get_normalized_symtab'. This reads the symbol table from the coff
10326file and swaps all the structures inside into the internal form. It
10327also fixes up all the pointers in the table (represented in the file by
10328offsets from the first symbol in the table) into physical pointers to
10329elements in the new internal table. This involves some work since the
10330meanings of fields change depending upon context: a field that is a
10331pointer to another structure in the symbol table at one moment may be
10332the size in bytes of a structure at the next.  Another pass is made
10333over the table. All symbols which mark file names (`C_FILE' symbols)
10334are modified so that the internal string points to the value in the
10335auxent (the real filename) rather than the normal text associated with
10336the symbol (`".file"').
10337
10338   At this time the symbol names are moved around. Coff stores all
10339symbols less than nine characters long physically within the symbol
10340table; longer strings are kept at the end of the file in the string
10341table. This pass moves all strings into memory and replaces them with
10342pointers to the strings.
10343
10344   The symbol table is massaged once again, this time to create the
10345canonical table used by the BFD application. Each symbol is inspected
10346in turn, and a decision made (using the `sclass' field) about the
10347various flags to set in the `asymbol'.  *Note Symbols::. The generated
10348canonical table shares strings with the hidden internal symbol table.
10349
10350   Any linenumbers are read from the coff file too, and attached to the
10351symbols which own the functions the linenumbers belong to.
10352
103533.3.2.5 Symbol writing
10354......................
10355
10356Writing a symbol to a coff file which didn't come from a coff file will
10357lose any debugging information. The `asymbol' structure remembers the
10358BFD from which the symbol was taken, and on output the back end makes
10359sure that the same destination target as source target is present.
10360
10361   When the symbols have come from a coff file then all the debugging
10362information is preserved.
10363
10364   Symbol tables are provided for writing to the back end in a vector
10365of pointers to pointers. This allows applications like the linker to
10366accumulate and output large symbol tables without having to do too much
10367byte copying.
10368
10369   This function runs through the provided symbol table and patches
10370each symbol marked as a file place holder (`C_FILE') to point to the
10371next file place holder in the list. It also marks each `offset' field
10372in the list with the offset from the first symbol of the current symbol.
10373
10374   Another function of this procedure is to turn the canonical value
10375form of BFD into the form used by coff. Internally, BFD expects symbol
10376values to be offsets from a section base; so a symbol physically at
103770x120, but in a section starting at 0x100, would have the value 0x20.
10378Coff expects symbols to contain their final value, so symbols have
10379their values changed at this point to reflect their sum with their
10380owning section.  This transformation uses the `output_section' field of
10381the `asymbol''s `asection' *Note Sections::.
10382
10383   * `coff_mangle_symbols'
10384   This routine runs though the provided symbol table and uses the
10385offsets generated by the previous pass and the pointers generated when
10386the symbol table was read in to create the structured hierarchy
10387required by coff. It changes each pointer to a symbol into the index
10388into the symbol table of the asymbol.
10389
10390   * `coff_write_symbols'
10391   This routine runs through the symbol table and patches up the
10392symbols from their internal form into the coff way, calls the bit
10393twiddlers, and writes out the table to the file.
10394
103953.3.2.6 `coff_symbol_type'
10396..........................
10397
10398*Description*
10399The hidden information for an `asymbol' is described in a
10400`combined_entry_type':
10401
10402
10403     typedef struct coff_ptr_struct
10404     {
10405       /* Remembers the offset from the first symbol in the file for
10406          this symbol. Generated by coff_renumber_symbols.  */
10407       unsigned int offset;
10408
10409       /* Should the value of this symbol be renumbered.  Used for
10410          XCOFF C_BSTAT symbols.  Set by coff_slurp_symbol_table.  */
10411       unsigned int fix_value : 1;
10412
10413       /* Should the tag field of this symbol be renumbered.
10414          Created by coff_pointerize_aux.  */
10415       unsigned int fix_tag : 1;
10416
10417       /* Should the endidx field of this symbol be renumbered.
10418          Created by coff_pointerize_aux.  */
10419       unsigned int fix_end : 1;
10420
10421       /* Should the x_csect.x_scnlen field be renumbered.
10422          Created by coff_pointerize_aux.  */
10423       unsigned int fix_scnlen : 1;
10424
10425       /* Fix up an XCOFF C_BINCL/C_EINCL symbol.  The value is the
10426          index into the line number entries.  Set by coff_slurp_symbol_table.  */
10427       unsigned int fix_line : 1;
10428
10429       /* The container for the symbol structure as read and translated
10430          from the file.  */
10431       union
10432       {
10433         union internal_auxent auxent;
10434         struct internal_syment syment;
10435       } u;
10436
10437      /* Selector for the union above.  */
10438      bfd_boolean is_sym;
10439     } combined_entry_type;
10440
10441
10442     /* Each canonical asymbol really looks like this: */
10443
10444     typedef struct coff_symbol_struct
10445     {
10446       /* The actual symbol which the rest of BFD works with */
10447       asymbol symbol;
10448
10449       /* A pointer to the hidden information for this symbol */
10450       combined_entry_type *native;
10451
10452       /* A pointer to the linenumber information for this symbol */
10453       struct lineno_cache_entry *lineno;
10454
10455       /* Have the line numbers been relocated yet ? */
10456       bfd_boolean done_lineno;
10457     } coff_symbol_type;
10458   
104593.3.2.7 `bfd_coff_backend_data'
10460...............................
10461
10462     /* COFF symbol classifications.  */
10463
10464     enum coff_symbol_classification
10465     {
10466       /* Global symbol.  */
10467       COFF_SYMBOL_GLOBAL,
10468       /* Common symbol.  */
10469       COFF_SYMBOL_COMMON,
10470       /* Undefined symbol.  */
10471       COFF_SYMBOL_UNDEFINED,
10472       /* Local symbol.  */
10473       COFF_SYMBOL_LOCAL,
10474       /* PE section symbol.  */
10475       COFF_SYMBOL_PE_SECTION
10476     };
10477
10478     typedef asection * (*coff_gc_mark_hook_fn)
10479       (asection *, struct bfd_link_info *, struct internal_reloc *,
10480        struct coff_link_hash_entry *, struct internal_syment *);
10481Special entry points for gdb to swap in coff symbol table parts:
10482     typedef struct
10483     {
10484       void (*_bfd_coff_swap_aux_in)
10485         (bfd *, void *, int, int, int, int, void *);
10486
10487       void (*_bfd_coff_swap_sym_in)
10488         (bfd *, void *, void *);
10489
10490       void (*_bfd_coff_swap_lineno_in)
10491         (bfd *, void *, void *);
10492
10493       unsigned int (*_bfd_coff_swap_aux_out)
10494         (bfd *, void *, int, int, int, int, void *);
10495
10496       unsigned int (*_bfd_coff_swap_sym_out)
10497         (bfd *, void *, void *);
10498
10499       unsigned int (*_bfd_coff_swap_lineno_out)
10500         (bfd *, void *, void *);
10501
10502       unsigned int (*_bfd_coff_swap_reloc_out)
10503         (bfd *, void *, void *);
10504
10505       unsigned int (*_bfd_coff_swap_filehdr_out)
10506         (bfd *, void *, void *);
10507
10508       unsigned int (*_bfd_coff_swap_aouthdr_out)
10509         (bfd *, void *, void *);
10510
10511       unsigned int (*_bfd_coff_swap_scnhdr_out)
10512         (bfd *, void *, void *);
10513
10514       unsigned int _bfd_filhsz;
10515       unsigned int _bfd_aoutsz;
10516       unsigned int _bfd_scnhsz;
10517       unsigned int _bfd_symesz;
10518       unsigned int _bfd_auxesz;
10519       unsigned int _bfd_relsz;
10520       unsigned int _bfd_linesz;
10521       unsigned int _bfd_filnmlen;
10522       bfd_boolean _bfd_coff_long_filenames;
10523
10524       bfd_boolean _bfd_coff_long_section_names;
10525       bfd_boolean (*_bfd_coff_set_long_section_names)
10526         (bfd *, int);
10527
10528       unsigned int _bfd_coff_default_section_alignment_power;
10529       bfd_boolean _bfd_coff_force_symnames_in_strings;
10530       unsigned int _bfd_coff_debug_string_prefix_length;
10531       unsigned int _bfd_coff_max_nscns;
10532
10533       void (*_bfd_coff_swap_filehdr_in)
10534         (bfd *, void *, void *);
10535
10536       void (*_bfd_coff_swap_aouthdr_in)
10537         (bfd *, void *, void *);
10538
10539       void (*_bfd_coff_swap_scnhdr_in)
10540         (bfd *, void *, void *);
10541
10542       void (*_bfd_coff_swap_reloc_in)
10543         (bfd *abfd, void *, void *);
10544
10545       bfd_boolean (*_bfd_coff_bad_format_hook)
10546         (bfd *, void *);
10547
10548       bfd_boolean (*_bfd_coff_set_arch_mach_hook)
10549         (bfd *, void *);
10550
10551       void * (*_bfd_coff_mkobject_hook)
10552         (bfd *, void *, void *);
10553
10554       bfd_boolean (*_bfd_styp_to_sec_flags_hook)
10555         (bfd *, void *, const char *, asection *, flagword *);
10556
10557       void (*_bfd_set_alignment_hook)
10558         (bfd *, asection *, void *);
10559
10560       bfd_boolean (*_bfd_coff_slurp_symbol_table)
10561         (bfd *);
10562
10563       bfd_boolean (*_bfd_coff_symname_in_debug)
10564         (bfd *, struct internal_syment *);
10565
10566       bfd_boolean (*_bfd_coff_pointerize_aux_hook)
10567         (bfd *, combined_entry_type *, combined_entry_type *,
10568                 unsigned int, combined_entry_type *);
10569
10570       bfd_boolean (*_bfd_coff_print_aux)
10571         (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
10572                 combined_entry_type *, unsigned int);
10573
10574       void (*_bfd_coff_reloc16_extra_cases)
10575         (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
10576                bfd_byte *, unsigned int *, unsigned int *);
10577
10578       int (*_bfd_coff_reloc16_estimate)
10579         (bfd *, asection *, arelent *, unsigned int,
10580                 struct bfd_link_info *);
10581
10582       enum coff_symbol_classification (*_bfd_coff_classify_symbol)
10583         (bfd *, struct internal_syment *);
10584
10585       bfd_boolean (*_bfd_coff_compute_section_file_positions)
10586         (bfd *);
10587
10588       bfd_boolean (*_bfd_coff_start_final_link)
10589         (bfd *, struct bfd_link_info *);
10590
10591       bfd_boolean (*_bfd_coff_relocate_section)
10592         (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
10593                 struct internal_reloc *, struct internal_syment *, asection **);
10594
10595       reloc_howto_type *(*_bfd_coff_rtype_to_howto)
10596         (bfd *, asection *, struct internal_reloc *,
10597                 struct coff_link_hash_entry *, struct internal_syment *,
10598                 bfd_vma *);
10599
10600       bfd_boolean (*_bfd_coff_adjust_symndx)
10601         (bfd *, struct bfd_link_info *, bfd *, asection *,
10602                 struct internal_reloc *, bfd_boolean *);
10603
10604       bfd_boolean (*_bfd_coff_link_add_one_symbol)
10605         (struct bfd_link_info *, bfd *, const char *, flagword,
10606                 asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
10607                 struct bfd_link_hash_entry **);
10608
10609       bfd_boolean (*_bfd_coff_link_output_has_begun)
10610         (bfd *, struct coff_final_link_info *);
10611
10612       bfd_boolean (*_bfd_coff_final_link_postscript)
10613         (bfd *, struct coff_final_link_info *);
10614
10615       bfd_boolean (*_bfd_coff_print_pdata)
10616         (bfd *, void *);
10617
10618     } bfd_coff_backend_data;
10619
10620     #define coff_backend_info(abfd) \
10621       ((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
10622
10623     #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \
10624       ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))
10625
10626     #define bfd_coff_swap_sym_in(a,e,i) \
10627       ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))
10628
10629     #define bfd_coff_swap_lineno_in(a,e,i) \
10630       ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))
10631
10632     #define bfd_coff_swap_reloc_out(abfd, i, o) \
10633       ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))
10634
10635     #define bfd_coff_swap_lineno_out(abfd, i, o) \
10636       ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))
10637
10638     #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \
10639       ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))
10640
10641     #define bfd_coff_swap_sym_out(abfd, i,o) \
10642       ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))
10643
10644     #define bfd_coff_swap_scnhdr_out(abfd, i,o) \
10645       ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))
10646
10647     #define bfd_coff_swap_filehdr_out(abfd, i,o) \
10648       ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))
10649
10650     #define bfd_coff_swap_aouthdr_out(abfd, i,o) \
10651       ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))
10652
10653     #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz)
10654     #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz)
10655     #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz)
10656     #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz)
10657     #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz)
10658     #define bfd_coff_relsz(abfd)  (coff_backend_info (abfd)->_bfd_relsz)
10659     #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz)
10660     #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
10661     #define bfd_coff_long_filenames(abfd) \
10662       (coff_backend_info (abfd)->_bfd_coff_long_filenames)
10663     #define bfd_coff_long_section_names(abfd) \
10664       (coff_backend_info (abfd)->_bfd_coff_long_section_names)
10665     #define bfd_coff_set_long_section_names(abfd, enable) \
10666       ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable))
10667     #define bfd_coff_default_section_alignment_power(abfd) \
10668       (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
10669     #define bfd_coff_max_nscns(abfd) \
10670       (coff_backend_info (abfd)->_bfd_coff_max_nscns)
10671
10672     #define bfd_coff_swap_filehdr_in(abfd, i,o) \
10673       ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
10674
10675     #define bfd_coff_swap_aouthdr_in(abfd, i,o) \
10676       ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))
10677
10678     #define bfd_coff_swap_scnhdr_in(abfd, i,o) \
10679       ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))
10680
10681     #define bfd_coff_swap_reloc_in(abfd, i, o) \
10682       ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))
10683
10684     #define bfd_coff_bad_format_hook(abfd, filehdr) \
10685       ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))
10686
10687     #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
10688       ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
10689     #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
10690       ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\
10691        (abfd, filehdr, aouthdr))
10692
10693     #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
10694       ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
10695        (abfd, scnhdr, name, section, flags_ptr))
10696
10697     #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
10698       ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
10699
10700     #define bfd_coff_slurp_symbol_table(abfd)\
10701       ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))
10702
10703     #define bfd_coff_symname_in_debug(abfd, sym)\
10704       ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
10705
10706     #define bfd_coff_force_symnames_in_strings(abfd)\
10707       (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
10708
10709     #define bfd_coff_debug_string_prefix_length(abfd)\
10710       (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
10711
10712     #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
10713       ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
10714        (abfd, file, base, symbol, aux, indaux))
10715
10716     #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
10717                                          reloc, data, src_ptr, dst_ptr)\
10718       ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
10719        (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
10720
10721     #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\
10722       ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
10723        (abfd, section, reloc, shrink, link_info))
10724
10725     #define bfd_coff_classify_symbol(abfd, sym)\
10726       ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
10727        (abfd, sym))
10728
10729     #define bfd_coff_compute_section_file_positions(abfd)\
10730       ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
10731        (abfd))
10732
10733     #define bfd_coff_start_final_link(obfd, info)\
10734       ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
10735        (obfd, info))
10736     #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\
10737       ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
10738        (obfd, info, ibfd, o, con, rel, isyms, secs))
10739     #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\
10740       ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
10741        (abfd, sec, rel, h, sym, addendp))
10742     #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
10743       ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
10744        (obfd, info, ibfd, sec, rel, adjustedp))
10745     #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
10746                                          value, string, cp, coll, hashp)\
10747       ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
10748        (info, abfd, name, flags, section, value, string, cp, coll, hashp))
10749
10750     #define bfd_coff_link_output_has_begun(a,p) \
10751       ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p))
10752     #define bfd_coff_final_link_postscript(a,p) \
10753       ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p))
10754
10755     #define bfd_coff_have_print_pdata(a) \
10756       (coff_backend_info (a)->_bfd_coff_print_pdata)
10757     #define bfd_coff_print_pdata(a,p) \
10758       ((coff_backend_info (a)->_bfd_coff_print_pdata) (a, p))
10759
10760     /* Macro: Returns true if the bfd is a PE executable as opposed to a
10761        PE object file.  */
10762     #define bfd_pei_p(abfd) \
10763       (CONST_STRNEQ ((abfd)->xvec->name, "pei-"))
10764
107653.3.2.8 Writing relocations
10766...........................
10767
10768To write relocations, the back end steps though the canonical
10769relocation table and create an `internal_reloc'. The symbol index to
10770use is removed from the `offset' field in the symbol table supplied.
10771The address comes directly from the sum of the section base address and
10772the relocation offset; the type is dug directly from the howto field.
10773Then the `internal_reloc' is swapped into the shape of an
10774`external_reloc' and written out to disk.
10775
107763.3.2.9 Reading linenumbers
10777...........................
10778
10779Creating the linenumber table is done by reading in the entire coff
10780linenumber table, and creating another table for internal use.
10781
10782   A coff linenumber table is structured so that each function is
10783marked as having a line number of 0. Each line within the function is
10784an offset from the first line in the function. The base of the line
10785number information for the table is stored in the symbol associated
10786with the function.
10787
10788   Note: The PE format uses line number 0 for a flag indicating a new
10789source file.
10790
10791   The information is copied from the external to the internal table,
10792and each symbol which marks a function is marked by pointing its...
10793
10794   How does this work ?
10795
107963.3.2.10 Reading relocations
10797............................
10798
10799Coff relocations are easily transformed into the internal BFD form
10800(`arelent').
10801
10802   Reading a coff relocation table is done in the following stages:
10803
10804   * Read the entire coff relocation table into memory.
10805
10806   * Process each relocation in turn; first swap it from the external
10807     to the internal form.
10808
10809   * Turn the symbol referenced in the relocation's symbol index into a
10810     pointer into the canonical symbol table.  This table is the same
10811     as the one returned by a call to `bfd_canonicalize_symtab'. The
10812     back end will call that routine and save the result if a
10813     canonicalization hasn't been done.
10814
10815   * The reloc index is turned into a pointer to a howto structure, in
10816     a back end specific way. For instance, the 386 and 960 use the
10817     `r_type' to directly produce an index into a howto table vector;
10818     the 88k subtracts a number from the `r_type' field and creates an
10819     addend field.
10820
10821
10822File: bfd.info,  Node: elf,  Next: mmo,  Prev: coff,  Up: BFD back ends
10823
108243.4 ELF backends
10825================
10826
10827BFD support for ELF formats is being worked on.  Currently, the best
10828supported back ends are for sparc and i386 (running svr4 or Solaris 2).
10829
10830   Documentation of the internals of the support code still needs to be
10831written.  The code is changing quickly enough that we haven't bothered
10832yet.
10833
10834
10835File: bfd.info,  Node: mmo,  Prev: elf,  Up: BFD back ends
10836
108373.5 mmo backend
10838===============
10839
10840The mmo object format is used exclusively together with Professor
10841Donald E. Knuth's educational 64-bit processor MMIX.  The simulator
10842`mmix' which is available at `http://mmix.cs.hm.edu/src/index.html'
10843understands this format.  That package also includes a combined
10844assembler and linker called `mmixal'.  The mmo format has no advantages
10845feature-wise compared to e.g. ELF.  It is a simple non-relocatable
10846object format with no support for archives or debugging information,
10847except for symbol value information and line numbers (which is not yet
10848implemented in BFD).  See `http://mmix.cs.hm.edu/' for more information
10849about MMIX.  The ELF format is used for intermediate object files in
10850the BFD implementation.
10851
10852* Menu:
10853
10854* File layout::
10855* Symbol-table::
10856* mmo section mapping::
10857
10858
10859File: bfd.info,  Node: File layout,  Next: Symbol-table,  Prev: mmo,  Up: mmo
10860
108613.5.1 File layout
10862-----------------
10863
10864The mmo file contents is not partitioned into named sections as with
10865e.g. ELF.  Memory areas is formed by specifying the location of the
10866data that follows.  Only the memory area `0x0000...00' to `0x01ff...ff'
10867is executable, so it is used for code (and constants) and the area
10868`0x2000...00' to `0x20ff...ff' is used for writable data.  *Note mmo
10869section mapping::.
10870
10871   There is provision for specifying "special data" of 65536 different
10872types.  We use type 80 (decimal), arbitrarily chosen the same as the
10873ELF `e_machine' number for MMIX, filling it with section information
10874normally found in ELF objects. *Note mmo section mapping::.
10875
10876   Contents is entered as 32-bit words, xor:ed over previous contents,
10877always zero-initialized.  A word that starts with the byte `0x98' forms
10878a command called a `lopcode', where the next byte distinguished between
10879the thirteen lopcodes.  The two remaining bytes, called the `Y' and `Z'
10880fields, or the `YZ' field (a 16-bit big-endian number), are used for
10881various purposes different for each lopcode.  As documented in
10882`http://mmix.cs.hm.edu/doc/mmixal.pdf', the lopcodes are:
10883
10884`lop_quote'
10885     0x98000001.  The next word is contents, regardless of whether it
10886     starts with 0x98 or not.
10887
10888`lop_loc'
10889     0x9801YYZZ, where `Z' is 1 or 2.  This is a location directive,
10890     setting the location for the next data to the next 32-bit word
10891     (for Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56.  Normally
10892     `Y' is 0 for the text segment and 2 for the data segment.  Beware
10893     that the low bits of non- tetrabyte-aligned values are silently
10894     discarded when being automatically incremented and when storing
10895     contents (in contrast to e.g. its use as current location when
10896     followed by lop_fixo et al before the next possibly-quoted
10897     tetrabyte contents).
10898
10899`lop_skip'
10900     0x9802YYZZ.  Increase the current location by `YZ' bytes.
10901
10902`lop_fixo'
10903     0x9803YYZZ, where `Z' is 1 or 2.  Store the current location as 64
10904     bits into the location pointed to by the next 32-bit (Z = 1) or
10905     64-bit (Z = 2) word, plus Y * 2^56.
10906
10907`lop_fixr'
10908     0x9804YYZZ.  `YZ' is stored into the current location plus 2 - 4 *
10909     YZ.
10910
10911`lop_fixrx'
10912     0x980500ZZ.  `Z' is 16 or 24.  A value `L' derived from the
10913     following 32-bit word are used in a manner similar to `YZ' in
10914     lop_fixr: it is xor:ed into the current location minus 4 * L.  The
10915     first byte of the word is 0 or 1.  If it is 1, then L = (LOWEST 24
10916     BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD).
10917
10918`lop_file'
10919     0x9806YYZZ.  `Y' is the file number, `Z' is count of 32-bit words.
10920     Set the file number to `Y' and the line counter to 0.  The next Z
10921     * 4 bytes contain the file name, padded with zeros if the count is
10922     not a multiple of four.  The same `Y' may occur multiple times,
10923     but `Z' must be 0 for all but the first occurrence.
10924
10925`lop_line'
10926     0x9807YYZZ.  `YZ' is the line number.  Together with lop_file, it
10927     forms the source location for the next 32-bit word.  Note that for
10928     each non-lopcode 32-bit word, line numbers are assumed incremented
10929     by one.
10930
10931`lop_spec'
10932     0x9808YYZZ.  `YZ' is the type number.  Data until the next lopcode
10933     other than lop_quote forms special data of type `YZ'.  *Note mmo
10934     section mapping::.
10935
10936     Other types than 80, (or type 80 with a content that does not
10937     parse) is stored in sections named `.MMIX.spec_data.N' where N is
10938     the `YZ'-type.  The flags for such a sections say not to allocate
10939     or load the data.  The vma is 0.  Contents of multiple occurrences
10940     of special data N is concatenated to the data of the previous
10941     lop_spec Ns.  The location in data or code at which the lop_spec
10942     occurred is lost.
10943
10944`lop_pre'
10945     0x980901ZZ.  The first lopcode in a file.  The `Z' field forms the
10946     length of header information in 32-bit words, where the first word
10947     tells the time in seconds since `00:00:00 GMT Jan 1 1970'.
10948
10949`lop_post'
10950     0x980a00ZZ.  Z > 32.  This lopcode follows after all
10951     content-generating lopcodes in a program.  The `Z' field denotes
10952     the value of `rG' at the beginning of the program.  The following
10953     256 - Z big-endian 64-bit words are loaded into global registers
10954     `$G' ... `$255'.
10955
10956`lop_stab'
10957     0x980b0000.  The next-to-last lopcode in a program.  Must follow
10958     immediately after the lop_post lopcode and its data.  After this
10959     lopcode follows all symbols in a compressed format (*note
10960     Symbol-table::).
10961
10962`lop_end'
10963     0x980cYYZZ.  The last lopcode in a program.  It must follow the
10964     lop_stab lopcode and its data.  The `YZ' field contains the number
10965     of 32-bit words of symbol table information after the preceding
10966     lop_stab lopcode.
10967
10968   Note that the lopcode "fixups"; `lop_fixr', `lop_fixrx' and
10969`lop_fixo' are not generated by BFD, but are handled.  They are
10970generated by `mmixal'.
10971
10972   This trivial one-label, one-instruction file:
10973
10974      :Main TRAP 1,2,3
10975
10976   can be represented this way in mmo:
10977
10978      0x98090101 - lop_pre, one 32-bit word with timestamp.
10979      <timestamp>
10980      0x98010002 - lop_loc, text segment, using a 64-bit address.
10981                   Note that mmixal does not emit this for the file above.
10982      0x00000000 - Address, high 32 bits.
10983      0x00000000 - Address, low 32 bits.
10984      0x98060002 - lop_file, 2 32-bit words for file-name.
10985      0x74657374 - "test"
10986      0x2e730000 - ".s\0\0"
10987      0x98070001 - lop_line, line 1.
10988      0x00010203 - TRAP 1,2,3
10989      0x980a00ff - lop_post, setting $255 to 0.
10990      0x00000000
10991      0x00000000
10992      0x980b0000 - lop_stab for ":Main" = 0, serial 1.
10993      0x203a4040   *Note Symbol-table::.
10994      0x10404020
10995      0x4d206120
10996      0x69016e00
10997      0x81000000
10998      0x980c0005 - lop_end; symbol table contained five 32-bit words.
10999
11000
11001File: bfd.info,  Node: Symbol-table,  Next: mmo section mapping,  Prev: File layout,  Up: mmo
11002
110033.5.2 Symbol table format
11004-------------------------
11005
11006From mmixal.w (or really, the generated mmixal.tex) in the MMIXware
11007package which also contains the `mmix' simulator: "Symbols are stored
11008and retrieved by means of a `ternary search trie', following ideas of
11009Bentley and Sedgewick. (See ACM-SIAM Symp. on Discrete Algorithms `8'
11010(1997), 360-369; R.Sedgewick, `Algorithms in C' (Reading, Mass.
11011Addison-Wesley, 1998), `15.4'.)  Each trie node stores a character, and
11012there are branches to subtries for the cases where a given character is
11013less than, equal to, or greater than the character in the trie.  There
11014also is a pointer to a symbol table entry if a symbol ends at the
11015current node."
11016
11017   So it's a tree encoded as a stream of bytes.  The stream of bytes
11018acts on a single virtual global symbol, adding and removing characters
11019and signalling complete symbol points.  Here, we read the stream and
11020create symbols at the completion points.
11021
11022   First, there's a control byte `m'.  If any of the listed bits in `m'
11023is nonzero, we execute what stands at the right, in the listed order:
11024
11025      (MMO3_LEFT)
11026      0x40 - Traverse left trie.
11027             (Read a new command byte and recurse.)
11028
11029      (MMO3_SYMBITS)
11030      0x2f - Read the next byte as a character and store it in the
11031             current character position; increment character position.
11032             Test the bits of `m':
11033
11034             (MMO3_WCHAR)
11035             0x80 - The character is 16-bit (so read another byte,
11036                    merge into current character.
11037
11038             (MMO3_TYPEBITS)
11039             0xf  - We have a complete symbol; parse the type, value
11040                    and serial number and do what should be done
11041                    with a symbol.  The type and length information
11042                    is in j = (m & 0xf).
11043
11044                    (MMO3_REGQUAL_BITS)
11045                    j == 0xf: A register variable.  The following
11046                              byte tells which register.
11047                    j <= 8:   An absolute symbol.  Read j bytes as the
11048                              big-endian number the symbol equals.
11049                              A j = 2 with two zero bytes denotes an
11050                              unknown symbol.
11051                    j > 8:    As with j <= 8, but add (0x20 << 56)
11052                              to the value in the following j - 8
11053                              bytes.
11054
11055                    Then comes the serial number, as a variant of
11056                    uleb128, but better named ubeb128:
11057                    Read bytes and shift the previous value left 7
11058                    (multiply by 128).  Add in the new byte, repeat
11059                    until a byte has bit 7 set.  The serial number
11060                    is the computed value minus 128.
11061
11062             (MMO3_MIDDLE)
11063             0x20 - Traverse middle trie.  (Read a new command byte
11064                    and recurse.)  Decrement character position.
11065
11066      (MMO3_RIGHT)
11067      0x10 - Traverse right trie.  (Read a new command byte and
11068             recurse.)
11069
11070   Let's look again at the `lop_stab' for the trivial file (*note File
11071layout::).
11072
11073      0x980b0000 - lop_stab for ":Main" = 0, serial 1.
11074      0x203a4040
11075      0x10404020
11076      0x4d206120
11077      0x69016e00
11078      0x81000000
11079
11080   This forms the trivial trie (note that the path between ":" and "M"
11081is redundant):
11082
11083      203a     ":"
11084      40       /
11085      40      /
11086      10      \
11087      40      /
11088      40     /
11089      204d  "M"
11090      2061  "a"
11091      2069  "i"
11092      016e  "n" is the last character in a full symbol, and
11093            with a value represented in one byte.
11094      00    The value is 0.
11095      81    The serial number is 1.
11096
11097
11098File: bfd.info,  Node: mmo section mapping,  Prev: Symbol-table,  Up: mmo
11099
111003.5.3 mmo section mapping
11101-------------------------
11102
11103The implementation in BFD uses special data type 80 (decimal) to
11104encapsulate and describe named sections, containing e.g. debug
11105information.  If needed, any datum in the encapsulation will be quoted
11106using lop_quote.  First comes a 32-bit word holding the number of
1110732-bit words containing the zero-terminated zero-padded segment name.
11108After the name there's a 32-bit word holding flags describing the
11109section type.  Then comes a 64-bit big-endian word with the section
11110length (in bytes), then another with the section start address.
11111Depending on the type of section, the contents might follow,
11112zero-padded to 32-bit boundary.  For a loadable section (such as data
11113or code), the contents might follow at some later point, not
11114necessarily immediately, as a lop_loc with the same start address as in
11115the section description, followed by the contents.  This in effect
11116forms a descriptor that must be emitted before the actual contents.
11117Sections described this way must not overlap.
11118
11119   For areas that don't have such descriptors, synthetic sections are
11120formed by BFD.  Consecutive contents in the two memory areas
11121`0x0000...00' to `0x01ff...ff' and `0x2000...00' to `0x20ff...ff' are
11122entered in sections named `.text' and `.data' respectively.  If an area
11123is not otherwise described, but would together with a neighboring lower
11124area be less than `0x40000000' bytes long, it is joined with the lower
11125area and the gap is zero-filled.  For other cases, a new section is
11126formed, named `.MMIX.sec.N'.  Here, N is a number, a running count
11127through the mmo file, starting at 0.
11128
11129   A loadable section specified as:
11130
11131      .section secname,"ax"
11132      TETRA 1,2,3,4,-1,-2009
11133      BYTE 80
11134
11135   and linked to address `0x4', is represented by the sequence:
11136
11137      0x98080050 - lop_spec 80
11138      0x00000002 - two 32-bit words for the section name
11139      0x7365636e - "secn"
11140      0x616d6500 - "ame\0"
11141      0x00000033 - flags CODE, READONLY, LOAD, ALLOC
11142      0x00000000 - high 32 bits of section length
11143      0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits
11144      0x00000000 - high 32 bits of section address
11145      0x00000004 - section address is 4
11146      0x98010002 - 64 bits with address of following data
11147      0x00000000 - high 32 bits of address
11148      0x00000004 - low 32 bits: data starts at address 4
11149      0x00000001 - 1
11150      0x00000002 - 2
11151      0x00000003 - 3
11152      0x00000004 - 4
11153      0xffffffff - -1
11154      0xfffff827 - -2009
11155      0x50000000 - 80 as a byte, padded with zeros.
11156
11157   Note that the lop_spec wrapping does not include the section
11158contents.  Compare this to a non-loaded section specified as:
11159
11160      .section thirdsec
11161      TETRA 200001,100002
11162      BYTE 38,40
11163
11164   This, when linked to address `0x200000000000001c', is represented by:
11165
11166      0x98080050 - lop_spec 80
11167      0x00000002 - two 32-bit words for the section name
11168      0x7365636e - "thir"
11169      0x616d6500 - "dsec"
11170      0x00000010 - flag READONLY
11171      0x00000000 - high 32 bits of section length
11172      0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits
11173      0x20000000 - high 32 bits of address
11174      0x0000001c - low 32 bits of address 0x200000000000001c
11175      0x00030d41 - 200001
11176      0x000186a2 - 100002
11177      0x26280000 - 38, 40 as bytes, padded with zeros
11178
11179   For the latter example, the section contents must not be loaded in
11180memory, and is therefore specified as part of the special data.  The
11181address is usually unimportant but might provide information for e.g.
11182the DWARF 2 debugging format.
11183
11184
11185File: bfd.info,  Node: GNU Free Documentation License,  Next: BFD Index,  Prev: BFD back ends,  Up: Top
11186
11187                     Version 1.3, 3 November 2008
11188
11189     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
11190     `http://fsf.org/'
11191
11192     Everyone is permitted to copy and distribute verbatim copies
11193     of this license document, but changing it is not allowed.
11194
11195  0. PREAMBLE
11196
11197     The purpose of this License is to make a manual, textbook, or other
11198     functional and useful document "free" in the sense of freedom: to
11199     assure everyone the effective freedom to copy and redistribute it,
11200     with or without modifying it, either commercially or
11201     noncommercially.  Secondarily, this License preserves for the
11202     author and publisher a way to get credit for their work, while not
11203     being considered responsible for modifications made by others.
11204
11205     This License is a kind of "copyleft", which means that derivative
11206     works of the document must themselves be free in the same sense.
11207     It complements the GNU General Public License, which is a copyleft
11208     license designed for free software.
11209
11210     We have designed this License in order to use it for manuals for
11211     free software, because free software needs free documentation: a
11212     free program should come with manuals providing the same freedoms
11213     that the software does.  But this License is not limited to
11214     software manuals; it can be used for any textual work, regardless
11215     of subject matter or whether it is published as a printed book.
11216     We recommend this License principally for works whose purpose is
11217     instruction or reference.
11218
11219  1. APPLICABILITY AND DEFINITIONS
11220
11221     This License applies to any manual or other work, in any medium,
11222     that contains a notice placed by the copyright holder saying it
11223     can be distributed under the terms of this License.  Such a notice
11224     grants a world-wide, royalty-free license, unlimited in duration,
11225     to use that work under the conditions stated herein.  The
11226     "Document", below, refers to any such manual or work.  Any member
11227     of the public is a licensee, and is addressed as "you".  You
11228     accept the license if you copy, modify or distribute the work in a
11229     way requiring permission under copyright law.
11230
11231     A "Modified Version" of the Document means any work containing the
11232     Document or a portion of it, either copied verbatim, or with
11233     modifications and/or translated into another language.
11234
11235     A "Secondary Section" is a named appendix or a front-matter section
11236     of the Document that deals exclusively with the relationship of the
11237     publishers or authors of the Document to the Document's overall
11238     subject (or to related matters) and contains nothing that could
11239     fall directly within that overall subject.  (Thus, if the Document
11240     is in part a textbook of mathematics, a Secondary Section may not
11241     explain any mathematics.)  The relationship could be a matter of
11242     historical connection with the subject or with related matters, or
11243     of legal, commercial, philosophical, ethical or political position
11244     regarding them.
11245
11246     The "Invariant Sections" are certain Secondary Sections whose
11247     titles are designated, as being those of Invariant Sections, in
11248     the notice that says that the Document is released under this
11249     License.  If a section does not fit the above definition of
11250     Secondary then it is not allowed to be designated as Invariant.
11251     The Document may contain zero Invariant Sections.  If the Document
11252     does not identify any Invariant Sections then there are none.
11253
11254     The "Cover Texts" are certain short passages of text that are
11255     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
11256     that says that the Document is released under this License.  A
11257     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
11258     be at most 25 words.
11259
11260     A "Transparent" copy of the Document means a machine-readable copy,
11261     represented in a format whose specification is available to the
11262     general public, that is suitable for revising the document
11263     straightforwardly with generic text editors or (for images
11264     composed of pixels) generic paint programs or (for drawings) some
11265     widely available drawing editor, and that is suitable for input to
11266     text formatters or for automatic translation to a variety of
11267     formats suitable for input to text formatters.  A copy made in an
11268     otherwise Transparent file format whose markup, or absence of
11269     markup, has been arranged to thwart or discourage subsequent
11270     modification by readers is not Transparent.  An image format is
11271     not Transparent if used for any substantial amount of text.  A
11272     copy that is not "Transparent" is called "Opaque".
11273
11274     Examples of suitable formats for Transparent copies include plain
11275     ASCII without markup, Texinfo input format, LaTeX input format,
11276     SGML or XML using a publicly available DTD, and
11277     standard-conforming simple HTML, PostScript or PDF designed for
11278     human modification.  Examples of transparent image formats include
11279     PNG, XCF and JPG.  Opaque formats include proprietary formats that
11280     can be read and edited only by proprietary word processors, SGML or
11281     XML for which the DTD and/or processing tools are not generally
11282     available, and the machine-generated HTML, PostScript or PDF
11283     produced by some word processors for output purposes only.
11284
11285     The "Title Page" means, for a printed book, the title page itself,
11286     plus such following pages as are needed to hold, legibly, the
11287     material this License requires to appear in the title page.  For
11288     works in formats which do not have any title page as such, "Title
11289     Page" means the text near the most prominent appearance of the
11290     work's title, preceding the beginning of the body of the text.
11291
11292     The "publisher" means any person or entity that distributes copies
11293     of the Document to the public.
11294
11295     A section "Entitled XYZ" means a named subunit of the Document
11296     whose title either is precisely XYZ or contains XYZ in parentheses
11297     following text that translates XYZ in another language.  (Here XYZ
11298     stands for a specific section name mentioned below, such as
11299     "Acknowledgements", "Dedications", "Endorsements", or "History".)
11300     To "Preserve the Title" of such a section when you modify the
11301     Document means that it remains a section "Entitled XYZ" according
11302     to this definition.
11303
11304     The Document may include Warranty Disclaimers next to the notice
11305     which states that this License applies to the Document.  These
11306     Warranty Disclaimers are considered to be included by reference in
11307     this License, but only as regards disclaiming warranties: any other
11308     implication that these Warranty Disclaimers may have is void and
11309     has no effect on the meaning of this License.
11310
11311  2. VERBATIM COPYING
11312
11313     You may copy and distribute the Document in any medium, either
11314     commercially or noncommercially, provided that this License, the
11315     copyright notices, and the license notice saying this License
11316     applies to the Document are reproduced in all copies, and that you
11317     add no other conditions whatsoever to those of this License.  You
11318     may not use technical measures to obstruct or control the reading
11319     or further copying of the copies you make or distribute.  However,
11320     you may accept compensation in exchange for copies.  If you
11321     distribute a large enough number of copies you must also follow
11322     the conditions in section 3.
11323
11324     You may also lend copies, under the same conditions stated above,
11325     and you may publicly display copies.
11326
11327  3. COPYING IN QUANTITY
11328
11329     If you publish printed copies (or copies in media that commonly
11330     have printed covers) of the Document, numbering more than 100, and
11331     the Document's license notice requires Cover Texts, you must
11332     enclose the copies in covers that carry, clearly and legibly, all
11333     these Cover Texts: Front-Cover Texts on the front cover, and
11334     Back-Cover Texts on the back cover.  Both covers must also clearly
11335     and legibly identify you as the publisher of these copies.  The
11336     front cover must present the full title with all words of the
11337     title equally prominent and visible.  You may add other material
11338     on the covers in addition.  Copying with changes limited to the
11339     covers, as long as they preserve the title of the Document and
11340     satisfy these conditions, can be treated as verbatim copying in
11341     other respects.
11342
11343     If the required texts for either cover are too voluminous to fit
11344     legibly, you should put the first ones listed (as many as fit
11345     reasonably) on the actual cover, and continue the rest onto
11346     adjacent pages.
11347
11348     If you publish or distribute Opaque copies of the Document
11349     numbering more than 100, you must either include a
11350     machine-readable Transparent copy along with each Opaque copy, or
11351     state in or with each Opaque copy a computer-network location from
11352     which the general network-using public has access to download
11353     using public-standard network protocols a complete Transparent
11354     copy of the Document, free of added material.  If you use the
11355     latter option, you must take reasonably prudent steps, when you
11356     begin distribution of Opaque copies in quantity, to ensure that
11357     this Transparent copy will remain thus accessible at the stated
11358     location until at least one year after the last time you
11359     distribute an Opaque copy (directly or through your agents or
11360     retailers) of that edition to the public.
11361
11362     It is requested, but not required, that you contact the authors of
11363     the Document well before redistributing any large number of
11364     copies, to give them a chance to provide you with an updated
11365     version of the Document.
11366
11367  4. MODIFICATIONS
11368
11369     You may copy and distribute a Modified Version of the Document
11370     under the conditions of sections 2 and 3 above, provided that you
11371     release the Modified Version under precisely this License, with
11372     the Modified Version filling the role of the Document, thus
11373     licensing distribution and modification of the Modified Version to
11374     whoever possesses a copy of it.  In addition, you must do these
11375     things in the Modified Version:
11376
11377       A. Use in the Title Page (and on the covers, if any) a title
11378          distinct from that of the Document, and from those of
11379          previous versions (which should, if there were any, be listed
11380          in the History section of the Document).  You may use the
11381          same title as a previous version if the original publisher of
11382          that version gives permission.
11383
11384       B. List on the Title Page, as authors, one or more persons or
11385          entities responsible for authorship of the modifications in
11386          the Modified Version, together with at least five of the
11387          principal authors of the Document (all of its principal
11388          authors, if it has fewer than five), unless they release you
11389          from this requirement.
11390
11391       C. State on the Title page the name of the publisher of the
11392          Modified Version, as the publisher.
11393
11394       D. Preserve all the copyright notices of the Document.
11395
11396       E. Add an appropriate copyright notice for your modifications
11397          adjacent to the other copyright notices.
11398
11399       F. Include, immediately after the copyright notices, a license
11400          notice giving the public permission to use the Modified
11401          Version under the terms of this License, in the form shown in
11402          the Addendum below.
11403
11404       G. Preserve in that license notice the full lists of Invariant
11405          Sections and required Cover Texts given in the Document's
11406          license notice.
11407
11408       H. Include an unaltered copy of this License.
11409
11410       I. Preserve the section Entitled "History", Preserve its Title,
11411          and add to it an item stating at least the title, year, new
11412          authors, and publisher of the Modified Version as given on
11413          the Title Page.  If there is no section Entitled "History" in
11414          the Document, create one stating the title, year, authors,
11415          and publisher of the Document as given on its Title Page,
11416          then add an item describing the Modified Version as stated in
11417          the previous sentence.
11418
11419       J. Preserve the network location, if any, given in the Document
11420          for public access to a Transparent copy of the Document, and
11421          likewise the network locations given in the Document for
11422          previous versions it was based on.  These may be placed in
11423          the "History" section.  You may omit a network location for a
11424          work that was published at least four years before the
11425          Document itself, or if the original publisher of the version
11426          it refers to gives permission.
11427
11428       K. For any section Entitled "Acknowledgements" or "Dedications",
11429          Preserve the Title of the section, and preserve in the
11430          section all the substance and tone of each of the contributor
11431          acknowledgements and/or dedications given therein.
11432
11433       L. Preserve all the Invariant Sections of the Document,
11434          unaltered in their text and in their titles.  Section numbers
11435          or the equivalent are not considered part of the section
11436          titles.
11437
11438       M. Delete any section Entitled "Endorsements".  Such a section
11439          may not be included in the Modified Version.
11440
11441       N. Do not retitle any existing section to be Entitled
11442          "Endorsements" or to conflict in title with any Invariant
11443          Section.
11444
11445       O. Preserve any Warranty Disclaimers.
11446
11447     If the Modified Version includes new front-matter sections or
11448     appendices that qualify as Secondary Sections and contain no
11449     material copied from the Document, you may at your option
11450     designate some or all of these sections as invariant.  To do this,
11451     add their titles to the list of Invariant Sections in the Modified
11452     Version's license notice.  These titles must be distinct from any
11453     other section titles.
11454
11455     You may add a section Entitled "Endorsements", provided it contains
11456     nothing but endorsements of your Modified Version by various
11457     parties--for example, statements of peer review or that the text
11458     has been approved by an organization as the authoritative
11459     definition of a standard.
11460
11461     You may add a passage of up to five words as a Front-Cover Text,
11462     and a passage of up to 25 words as a Back-Cover Text, to the end
11463     of the list of Cover Texts in the Modified Version.  Only one
11464     passage of Front-Cover Text and one of Back-Cover Text may be
11465     added by (or through arrangements made by) any one entity.  If the
11466     Document already includes a cover text for the same cover,
11467     previously added by you or by arrangement made by the same entity
11468     you are acting on behalf of, you may not add another; but you may
11469     replace the old one, on explicit permission from the previous
11470     publisher that added the old one.
11471
11472     The author(s) and publisher(s) of the Document do not by this
11473     License give permission to use their names for publicity for or to
11474     assert or imply endorsement of any Modified Version.
11475
11476  5. COMBINING DOCUMENTS
11477
11478     You may combine the Document with other documents released under
11479     this License, under the terms defined in section 4 above for
11480     modified versions, provided that you include in the combination
11481     all of the Invariant Sections of all of the original documents,
11482     unmodified, and list them all as Invariant Sections of your
11483     combined work in its license notice, and that you preserve all
11484     their Warranty Disclaimers.
11485
11486     The combined work need only contain one copy of this License, and
11487     multiple identical Invariant Sections may be replaced with a single
11488     copy.  If there are multiple Invariant Sections with the same name
11489     but different contents, make the title of each such section unique
11490     by adding at the end of it, in parentheses, the name of the
11491     original author or publisher of that section if known, or else a
11492     unique number.  Make the same adjustment to the section titles in
11493     the list of Invariant Sections in the license notice of the
11494     combined work.
11495
11496     In the combination, you must combine any sections Entitled
11497     "History" in the various original documents, forming one section
11498     Entitled "History"; likewise combine any sections Entitled
11499     "Acknowledgements", and any sections Entitled "Dedications".  You
11500     must delete all sections Entitled "Endorsements."
11501
11502  6. COLLECTIONS OF DOCUMENTS
11503
11504     You may make a collection consisting of the Document and other
11505     documents released under this License, and replace the individual
11506     copies of this License in the various documents with a single copy
11507     that is included in the collection, provided that you follow the
11508     rules of this License for verbatim copying of each of the
11509     documents in all other respects.
11510
11511     You may extract a single document from such a collection, and
11512     distribute it individually under this License, provided you insert
11513     a copy of this License into the extracted document, and follow
11514     this License in all other respects regarding verbatim copying of
11515     that document.
11516
11517  7. AGGREGATION WITH INDEPENDENT WORKS
11518
11519     A compilation of the Document or its derivatives with other
11520     separate and independent documents or works, in or on a volume of
11521     a storage or distribution medium, is called an "aggregate" if the
11522     copyright resulting from the compilation is not used to limit the
11523     legal rights of the compilation's users beyond what the individual
11524     works permit.  When the Document is included in an aggregate, this
11525     License does not apply to the other works in the aggregate which
11526     are not themselves derivative works of the Document.
11527
11528     If the Cover Text requirement of section 3 is applicable to these
11529     copies of the Document, then if the Document is less than one half
11530     of the entire aggregate, the Document's Cover Texts may be placed
11531     on covers that bracket the Document within the aggregate, or the
11532     electronic equivalent of covers if the Document is in electronic
11533     form.  Otherwise they must appear on printed covers that bracket
11534     the whole aggregate.
11535
11536  8. TRANSLATION
11537
11538     Translation is considered a kind of modification, so you may
11539     distribute translations of the Document under the terms of section
11540     4.  Replacing Invariant Sections with translations requires special
11541     permission from their copyright holders, but you may include
11542     translations of some or all Invariant Sections in addition to the
11543     original versions of these Invariant Sections.  You may include a
11544     translation of this License, and all the license notices in the
11545     Document, and any Warranty Disclaimers, provided that you also
11546     include the original English version of this License and the
11547     original versions of those notices and disclaimers.  In case of a
11548     disagreement between the translation and the original version of
11549     this License or a notice or disclaimer, the original version will
11550     prevail.
11551
11552     If a section in the Document is Entitled "Acknowledgements",
11553     "Dedications", or "History", the requirement (section 4) to
11554     Preserve its Title (section 1) will typically require changing the
11555     actual title.
11556
11557  9. TERMINATION
11558
11559     You may not copy, modify, sublicense, or distribute the Document
11560     except as expressly provided under this License.  Any attempt
11561     otherwise to copy, modify, sublicense, or distribute it is void,
11562     and will automatically terminate your rights under this License.
11563
11564     However, if you cease all violation of this License, then your
11565     license from a particular copyright holder is reinstated (a)
11566     provisionally, unless and until the copyright holder explicitly
11567     and finally terminates your license, and (b) permanently, if the
11568     copyright holder fails to notify you of the violation by some
11569     reasonable means prior to 60 days after the cessation.
11570
11571     Moreover, your license from a particular copyright holder is
11572     reinstated permanently if the copyright holder notifies you of the
11573     violation by some reasonable means, this is the first time you have
11574     received notice of violation of this License (for any work) from
11575     that copyright holder, and you cure the violation prior to 30 days
11576     after your receipt of the notice.
11577
11578     Termination of your rights under this section does not terminate
11579     the licenses of parties who have received copies or rights from
11580     you under this License.  If your rights have been terminated and
11581     not permanently reinstated, receipt of a copy of some or all of
11582     the same material does not give you any rights to use it.
11583
11584 10. FUTURE REVISIONS OF THIS LICENSE
11585
11586     The Free Software Foundation may publish new, revised versions of
11587     the GNU Free Documentation License from time to time.  Such new
11588     versions will be similar in spirit to the present version, but may
11589     differ in detail to address new problems or concerns.  See
11590     `http://www.gnu.org/copyleft/'.
11591
11592     Each version of the License is given a distinguishing version
11593     number.  If the Document specifies that a particular numbered
11594     version of this License "or any later version" applies to it, you
11595     have the option of following the terms and conditions either of
11596     that specified version or of any later version that has been
11597     published (not as a draft) by the Free Software Foundation.  If
11598     the Document does not specify a version number of this License,
11599     you may choose any version ever published (not as a draft) by the
11600     Free Software Foundation.  If the Document specifies that a proxy
11601     can decide which future versions of this License can be used, that
11602     proxy's public statement of acceptance of a version permanently
11603     authorizes you to choose that version for the Document.
11604
11605 11. RELICENSING
11606
11607     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
11608     World Wide Web server that publishes copyrightable works and also
11609     provides prominent facilities for anybody to edit those works.  A
11610     public wiki that anybody can edit is an example of such a server.
11611     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
11612     site means any set of copyrightable works thus published on the MMC
11613     site.
11614
11615     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
11616     license published by Creative Commons Corporation, a not-for-profit
11617     corporation with a principal place of business in San Francisco,
11618     California, as well as future copyleft versions of that license
11619     published by that same organization.
11620
11621     "Incorporate" means to publish or republish a Document, in whole or
11622     in part, as part of another Document.
11623
11624     An MMC is "eligible for relicensing" if it is licensed under this
11625     License, and if all works that were first published under this
11626     License somewhere other than this MMC, and subsequently
11627     incorporated in whole or in part into the MMC, (1) had no cover
11628     texts or invariant sections, and (2) were thus incorporated prior
11629     to November 1, 2008.
11630
11631     The operator of an MMC Site may republish an MMC contained in the
11632     site under CC-BY-SA on the same site at any time before August 1,
11633     2009, provided the MMC is eligible for relicensing.
11634
11635
11636ADDENDUM: How to use this License for your documents
11637====================================================
11638
11639To use this License in a document you have written, include a copy of
11640the License in the document and put the following copyright and license
11641notices just after the title page:
11642
11643       Copyright (C)  YEAR  YOUR NAME.
11644       Permission is granted to copy, distribute and/or modify this document
11645       under the terms of the GNU Free Documentation License, Version 1.3
11646       or any later version published by the Free Software Foundation;
11647       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
11648       Texts.  A copy of the license is included in the section entitled ``GNU
11649       Free Documentation License''.
11650
11651   If you have Invariant Sections, Front-Cover Texts and Back-Cover
11652Texts, replace the "with...Texts." line with this:
11653
11654         with the Invariant Sections being LIST THEIR TITLES, with
11655         the Front-Cover Texts being LIST, and with the Back-Cover Texts
11656         being LIST.
11657
11658   If you have Invariant Sections without Cover Texts, or some other
11659combination of the three, merge those two alternatives to suit the
11660situation.
11661
11662   If your document contains nontrivial examples of program code, we
11663recommend releasing these examples in parallel under your choice of
11664free software license, such as the GNU General Public License, to
11665permit their use in free software.
11666
11667
11668File: bfd.info,  Node: BFD Index,  Prev: GNU Free Documentation License,  Up: Top
11669
11670BFD Index
11671*********
11672
11673[index]
11674* Menu:
11675
11676* _bfd_final_link_relocate:              Relocating the section contents.
11677                                                             (line   22)
11678* _bfd_generic_link_add_archive_symbols: Adding symbols from an archive.
11679                                                             (line   15)
11680* _bfd_generic_link_add_one_symbol:      Adding symbols from an object file.
11681                                                             (line   19)
11682* _bfd_generic_make_empty_symbol:        symbol handling functions.
11683                                                             (line   92)
11684* _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table.
11685                                                             (line    6)
11686* _bfd_link_final_link in target vector: Performing the Final Link.
11687                                                             (line    6)
11688* _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table.
11689                                                             (line    6)
11690* _bfd_relocate_contents:                Relocating the section contents.
11691                                                             (line   22)
11692* aout_SIZE_machine_type:                aout.               (line  147)
11693* aout_SIZE_mkobject:                    aout.               (line  139)
11694* aout_SIZE_new_section_hook:            aout.               (line  177)
11695* aout_SIZE_set_arch_mach:               aout.               (line  164)
11696* aout_SIZE_some_aout_object_p:          aout.               (line  125)
11697* aout_SIZE_swap_exec_header_in:         aout.               (line  101)
11698* aout_SIZE_swap_exec_header_out:        aout.               (line  113)
11699* arelent_chain:                         typedef arelent.    (line  336)
11700* BFD:                                   Overview.           (line    6)
11701* BFD canonical format:                  Canonical format.   (line   11)
11702* bfd_alloc:                             Opening and Closing.
11703                                                             (line  239)
11704* bfd_alloc2:                            Opening and Closing.
11705                                                             (line  248)
11706* bfd_alt_mach_code:                     Miscellaneous.      (line  307)
11707* bfd_arch_bits_per_address:             Architectures.      (line  611)
11708* bfd_arch_bits_per_byte:                Architectures.      (line  603)
11709* bfd_arch_default_fill:                 Architectures.      (line  692)
11710* bfd_arch_get_compatible:               Architectures.      (line  546)
11711* bfd_arch_list:                         Architectures.      (line  537)
11712* bfd_arch_mach_octets_per_byte:         Architectures.      (line  680)
11713* BFD_ARELOC_BFIN_ADD:                   howto manager.      (line 1196)
11714* BFD_ARELOC_BFIN_ADDR:                  howto manager.      (line 1247)
11715* BFD_ARELOC_BFIN_AND:                   howto manager.      (line 1217)
11716* BFD_ARELOC_BFIN_COMP:                  howto manager.      (line 1238)
11717* BFD_ARELOC_BFIN_CONST:                 howto manager.      (line 1193)
11718* BFD_ARELOC_BFIN_DIV:                   howto manager.      (line 1205)
11719* BFD_ARELOC_BFIN_HWPAGE:                howto manager.      (line 1244)
11720* BFD_ARELOC_BFIN_LAND:                  howto manager.      (line 1226)
11721* BFD_ARELOC_BFIN_LEN:                   howto manager.      (line 1232)
11722* BFD_ARELOC_BFIN_LOR:                   howto manager.      (line 1229)
11723* BFD_ARELOC_BFIN_LSHIFT:                howto manager.      (line 1211)
11724* BFD_ARELOC_BFIN_MOD:                   howto manager.      (line 1208)
11725* BFD_ARELOC_BFIN_MULT:                  howto manager.      (line 1202)
11726* BFD_ARELOC_BFIN_NEG:                   howto manager.      (line 1235)
11727* BFD_ARELOC_BFIN_OR:                    howto manager.      (line 1220)
11728* BFD_ARELOC_BFIN_PAGE:                  howto manager.      (line 1241)
11729* BFD_ARELOC_BFIN_PUSH:                  howto manager.      (line 1190)
11730* BFD_ARELOC_BFIN_RSHIFT:                howto manager.      (line 1214)
11731* BFD_ARELOC_BFIN_SUB:                   howto manager.      (line 1199)
11732* BFD_ARELOC_BFIN_XOR:                   howto manager.      (line 1223)
11733* bfd_cache_close:                       File Caching.       (line   26)
11734* bfd_cache_close_all:                   File Caching.       (line   39)
11735* bfd_cache_init:                        File Caching.       (line   18)
11736* bfd_calc_gnu_debuglink_crc32:          Opening and Closing.
11737                                                             (line  275)
11738* bfd_canonicalize_reloc:                Miscellaneous.      (line   19)
11739* bfd_canonicalize_symtab:               symbol handling functions.
11740                                                             (line   50)
11741* bfd_check_compression_header:          Miscellaneous.      (line  379)
11742* bfd_check_format:                      Formats.            (line   21)
11743* bfd_check_format_matches:              Formats.            (line   52)
11744* bfd_check_overflow:                    typedef arelent.    (line  348)
11745* bfd_close:                             Opening and Closing.
11746                                                             (line  161)
11747* bfd_close_all_done:                    Opening and Closing.
11748                                                             (line  179)
11749* bfd_coff_backend_data:                 coff.               (line  308)
11750* bfd_convert_section_contents:          Miscellaneous.      (line  415)
11751* bfd_convert_section_size:              Miscellaneous.      (line  405)
11752* bfd_copy_private_bfd_data:             Miscellaneous.      (line  160)
11753* bfd_copy_private_header_data:          Miscellaneous.      (line  142)
11754* bfd_copy_private_section_data:         section prototypes. (line  288)
11755* bfd_copy_private_symbol_data:          symbol handling functions.
11756                                                             (line  140)
11757* bfd_core_file_failing_command:         Core Files.         (line   12)
11758* bfd_core_file_failing_signal:          Core Files.         (line   21)
11759* bfd_core_file_pid:                     Core Files.         (line   30)
11760* bfd_create:                            Opening and Closing.
11761                                                             (line  198)
11762* bfd_create_gnu_debuglink_section:      Opening and Closing.
11763                                                             (line  387)
11764* bfd_decode_symclass:                   symbol handling functions.
11765                                                             (line  111)
11766* bfd_default_arch_struct:               Architectures.      (line  558)
11767* bfd_default_compatible:                Architectures.      (line  620)
11768* bfd_default_reloc_type_lookup:         howto manager.      (line 3724)
11769* bfd_default_scan:                      Architectures.      (line  629)
11770* bfd_default_set_arch_mach:             Architectures.      (line  576)
11771* bfd_demangle:                          Miscellaneous.      (line  358)
11772* bfd_emul_get_commonpagesize:           Miscellaneous.      (line  338)
11773* bfd_emul_get_maxpagesize:              Miscellaneous.      (line  318)
11774* bfd_emul_set_commonpagesize:           Miscellaneous.      (line  349)
11775* bfd_emul_set_maxpagesize:              Miscellaneous.      (line  329)
11776* bfd_errmsg:                            Error reporting.    (line   67)
11777* bfd_fdopenr:                           Opening and Closing.
11778                                                             (line   57)
11779* bfd_fill_in_gnu_debuglink_section:     Opening and Closing.
11780                                                             (line  401)
11781* bfd_find_target:                       bfd_target.         (line  471)
11782* bfd_find_version_for_sym:              Writing the symbol table.
11783                                                             (line   81)
11784* bfd_flavour_name:                      bfd_target.         (line  535)
11785* bfd_follow_gnu_debugaltlink:           Opening and Closing.
11786                                                             (line  367)
11787* bfd_follow_gnu_debuglink:              Opening and Closing.
11788                                                             (line  346)
11789* bfd_fopen:                             Opening and Closing.
11790                                                             (line   12)
11791* bfd_format_string:                     Formats.            (line   79)
11792* bfd_generic_define_common_symbol:      Writing the symbol table.
11793                                                             (line   68)
11794* bfd_generic_discard_group:             section prototypes. (line  314)
11795* bfd_generic_gc_sections:               howto manager.      (line 3755)
11796* bfd_generic_get_relocated_section_contents: howto manager. (line 3785)
11797* bfd_generic_is_group_section:          section prototypes. (line  306)
11798* bfd_generic_lookup_section_flags:      howto manager.      (line 3765)
11799* bfd_generic_merge_sections:            howto manager.      (line 3775)
11800* bfd_generic_relax_section:             howto manager.      (line 3742)
11801* bfd_get_alt_debug_link_info:           Opening and Closing.
11802                                                             (line  300)
11803* bfd_get_arch:                          Architectures.      (line  587)
11804* bfd_get_arch_info:                     Architectures.      (line  639)
11805* bfd_get_arch_size:                     Miscellaneous.      (line   63)
11806* bfd_get_assert_handler:                Error reporting.    (line  150)
11807* bfd_get_compression_header_size:       Miscellaneous.      (line  394)
11808* bfd_get_debug_link_info:               Opening and Closing.
11809                                                             (line  289)
11810* bfd_get_error:                         Error reporting.    (line   48)
11811* bfd_get_error_handler:                 Error reporting.    (line  118)
11812* bfd_get_gp_size:                       Miscellaneous.      (line  106)
11813* bfd_get_linker_section:                section prototypes. (line   38)
11814* bfd_get_mach:                          Architectures.      (line  595)
11815* bfd_get_mtime:                         Miscellaneous.      (line  468)
11816* bfd_get_next_mapent:                   Archives.           (line   58)
11817* bfd_get_next_section_by_name:          section prototypes. (line   26)
11818* bfd_get_next_section_id:               section prototypes. (line  156)
11819* bfd_get_reloc_code_name:               howto manager.      (line 3733)
11820* bfd_get_reloc_size:                    typedef arelent.    (line  327)
11821* bfd_get_reloc_upper_bound:             Miscellaneous.      (line    9)
11822* bfd_get_section_by_name:               section prototypes. (line   17)
11823* bfd_get_section_by_name_if:            section prototypes. (line   47)
11824* bfd_get_section_contents:              section prototypes. (line  261)
11825* bfd_get_sign_extend_vma:               Miscellaneous.      (line   78)
11826* bfd_get_size <1>:                      Miscellaneous.      (line  477)
11827* bfd_get_size:                          Internal.           (line   25)
11828* bfd_get_symtab_upper_bound:            symbol handling functions.
11829                                                             (line    6)
11830* bfd_get_target_info:                   bfd_target.         (line  487)
11831* bfd_get_unique_section_name:           section prototypes. (line   66)
11832* bfd_h_put_size:                        Internal.           (line   97)
11833* bfd_hash_allocate:                     Creating and Freeing a Hash Table.
11834                                                             (line   17)
11835* bfd_hash_lookup:                       Looking Up or Entering a String.
11836                                                             (line    6)
11837* bfd_hash_newfunc:                      Creating and Freeing a Hash Table.
11838                                                             (line   12)
11839* bfd_hash_set_default_size:             Creating and Freeing a Hash Table.
11840                                                             (line   25)
11841* bfd_hash_table_free:                   Creating and Freeing a Hash Table.
11842                                                             (line   21)
11843* bfd_hash_table_init:                   Creating and Freeing a Hash Table.
11844                                                             (line    6)
11845* bfd_hash_table_init_n:                 Creating and Freeing a Hash Table.
11846                                                             (line    6)
11847* bfd_hash_traverse:                     Traversing a Hash Table.
11848                                                             (line    6)
11849* bfd_hide_sym_by_version:               Writing the symbol table.
11850                                                             (line   93)
11851* bfd_init:                              Initialization.     (line   11)
11852* bfd_install_relocation:                typedef arelent.    (line  389)
11853* bfd_is_local_label:                    symbol handling functions.
11854                                                             (line   17)
11855* bfd_is_local_label_name:               symbol handling functions.
11856                                                             (line   26)
11857* bfd_is_target_special_symbol:          symbol handling functions.
11858                                                             (line   38)
11859* bfd_is_undefined_symclass:             symbol handling functions.
11860                                                             (line  120)
11861* bfd_link_split_section:                Writing the symbol table.
11862                                                             (line   44)
11863* bfd_log2:                              Internal.           (line  164)
11864* bfd_lookup_arch:                       Architectures.      (line  647)
11865* bfd_make_debug_symbol:                 symbol handling functions.
11866                                                             (line  102)
11867* bfd_make_empty_symbol:                 symbol handling functions.
11868                                                             (line   78)
11869* bfd_make_readable:                     Opening and Closing.
11870                                                             (line  225)
11871* bfd_make_section:                      section prototypes. (line  145)
11872* bfd_make_section_anyway:               section prototypes. (line  116)
11873* bfd_make_section_anyway_with_flags:    section prototypes. (line   98)
11874* bfd_make_section_old_way:              section prototypes. (line   78)
11875* bfd_make_section_with_flags:           section prototypes. (line  132)
11876* bfd_make_writable:                     Opening and Closing.
11877                                                             (line  211)
11878* bfd_malloc_and_get_section:            section prototypes. (line  278)
11879* bfd_map_over_sections:                 section prototypes. (line  188)
11880* bfd_merge_private_bfd_data:            Miscellaneous.      (line  176)
11881* bfd_mmap:                              Miscellaneous.      (line  506)
11882* bfd_octets_per_byte:                   Architectures.      (line  670)
11883* bfd_open_file:                         File Caching.       (line   52)
11884* bfd_openr:                             Opening and Closing.
11885                                                             (line   38)
11886* bfd_openr_iovec:                       Opening and Closing.
11887                                                             (line   95)
11888* bfd_openr_next_archived_file:          Archives.           (line   84)
11889* bfd_openstreamr:                       Opening and Closing.
11890                                                             (line   83)
11891* bfd_openw:                             Opening and Closing.
11892                                                             (line  146)
11893* bfd_perform_relocation:                typedef arelent.    (line  364)
11894* bfd_perror:                            Error reporting.    (line   76)
11895* bfd_print_symbol_vandf:                symbol handling functions.
11896                                                             (line   70)
11897* bfd_printable_arch_mach:               Architectures.      (line  658)
11898* bfd_printable_name:                    Architectures.      (line  518)
11899* bfd_put_size:                          Internal.           (line   22)
11900* BFD_RELOC_12_PCREL:                    howto manager.      (line   39)
11901* BFD_RELOC_14:                          howto manager.      (line   31)
11902* BFD_RELOC_16:                          howto manager.      (line   30)
11903* BFD_RELOC_16_BASEREL:                  howto manager.      (line   99)
11904* BFD_RELOC_16_GOT_PCREL:                howto manager.      (line   52)
11905* BFD_RELOC_16_GOTOFF:                   howto manager.      (line   55)
11906* BFD_RELOC_16_PCREL:                    howto manager.      (line   38)
11907* BFD_RELOC_16_PCREL_S2:                 howto manager.      (line  111)
11908* BFD_RELOC_16_PLT_PCREL:                howto manager.      (line   63)
11909* BFD_RELOC_16_PLTOFF:                   howto manager.      (line   67)
11910* BFD_RELOC_16C_ABS20:                   howto manager.      (line 2535)
11911* BFD_RELOC_16C_ABS20_C:                 howto manager.      (line 2536)
11912* BFD_RELOC_16C_ABS24:                   howto manager.      (line 2537)
11913* BFD_RELOC_16C_ABS24_C:                 howto manager.      (line 2538)
11914* BFD_RELOC_16C_DISP04:                  howto manager.      (line 2515)
11915* BFD_RELOC_16C_DISP04_C:                howto manager.      (line 2516)
11916* BFD_RELOC_16C_DISP08:                  howto manager.      (line 2517)
11917* BFD_RELOC_16C_DISP08_C:                howto manager.      (line 2518)
11918* BFD_RELOC_16C_DISP16:                  howto manager.      (line 2519)
11919* BFD_RELOC_16C_DISP16_C:                howto manager.      (line 2520)
11920* BFD_RELOC_16C_DISP24:                  howto manager.      (line 2521)
11921* BFD_RELOC_16C_DISP24_C:                howto manager.      (line 2522)
11922* BFD_RELOC_16C_DISP24a:                 howto manager.      (line 2523)
11923* BFD_RELOC_16C_DISP24a_C:               howto manager.      (line 2524)
11924* BFD_RELOC_16C_IMM04:                   howto manager.      (line 2539)
11925* BFD_RELOC_16C_IMM04_C:                 howto manager.      (line 2540)
11926* BFD_RELOC_16C_IMM16:                   howto manager.      (line 2541)
11927* BFD_RELOC_16C_IMM16_C:                 howto manager.      (line 2542)
11928* BFD_RELOC_16C_IMM20:                   howto manager.      (line 2543)
11929* BFD_RELOC_16C_IMM20_C:                 howto manager.      (line 2544)
11930* BFD_RELOC_16C_IMM24:                   howto manager.      (line 2545)
11931* BFD_RELOC_16C_IMM24_C:                 howto manager.      (line 2546)
11932* BFD_RELOC_16C_IMM32:                   howto manager.      (line 2547)
11933* BFD_RELOC_16C_IMM32_C:                 howto manager.      (line 2548)
11934* BFD_RELOC_16C_NUM08:                   howto manager.      (line 2509)
11935* BFD_RELOC_16C_NUM08_C:                 howto manager.      (line 2510)
11936* BFD_RELOC_16C_NUM16:                   howto manager.      (line 2511)
11937* BFD_RELOC_16C_NUM16_C:                 howto manager.      (line 2512)
11938* BFD_RELOC_16C_NUM32:                   howto manager.      (line 2513)
11939* BFD_RELOC_16C_NUM32_C:                 howto manager.      (line 2514)
11940* BFD_RELOC_16C_REG04:                   howto manager.      (line 2525)
11941* BFD_RELOC_16C_REG04_C:                 howto manager.      (line 2526)
11942* BFD_RELOC_16C_REG04a:                  howto manager.      (line 2527)
11943* BFD_RELOC_16C_REG04a_C:                howto manager.      (line 2528)
11944* BFD_RELOC_16C_REG14:                   howto manager.      (line 2529)
11945* BFD_RELOC_16C_REG14_C:                 howto manager.      (line 2530)
11946* BFD_RELOC_16C_REG16:                   howto manager.      (line 2531)
11947* BFD_RELOC_16C_REG16_C:                 howto manager.      (line 2532)
11948* BFD_RELOC_16C_REG20:                   howto manager.      (line 2533)
11949* BFD_RELOC_16C_REG20_C:                 howto manager.      (line 2534)
11950* BFD_RELOC_23_PCREL_S2:                 howto manager.      (line  112)
11951* BFD_RELOC_24:                          howto manager.      (line   29)
11952* BFD_RELOC_24_PCREL:                    howto manager.      (line   37)
11953* BFD_RELOC_24_PLT_PCREL:                howto manager.      (line   62)
11954* BFD_RELOC_26:                          howto manager.      (line   28)
11955* BFD_RELOC_32:                          howto manager.      (line   27)
11956* BFD_RELOC_32_BASEREL:                  howto manager.      (line   98)
11957* BFD_RELOC_32_GOT_PCREL:                howto manager.      (line   51)
11958* BFD_RELOC_32_GOTOFF:                   howto manager.      (line   54)
11959* BFD_RELOC_32_PCREL:                    howto manager.      (line   36)
11960* BFD_RELOC_32_PCREL_S2:                 howto manager.      (line  110)
11961* BFD_RELOC_32_PLT_PCREL:                howto manager.      (line   61)
11962* BFD_RELOC_32_PLTOFF:                   howto manager.      (line   66)
11963* BFD_RELOC_32_SECREL:                   howto manager.      (line   48)
11964* BFD_RELOC_386_COPY:                    howto manager.      (line  589)
11965* BFD_RELOC_386_GLOB_DAT:                howto manager.      (line  590)
11966* BFD_RELOC_386_GOT32:                   howto manager.      (line  587)
11967* BFD_RELOC_386_GOT32X:                  howto manager.      (line  611)
11968* BFD_RELOC_386_GOTOFF:                  howto manager.      (line  593)
11969* BFD_RELOC_386_GOTPC:                   howto manager.      (line  594)
11970* BFD_RELOC_386_IRELATIVE:               howto manager.      (line  610)
11971* BFD_RELOC_386_JUMP_SLOT:               howto manager.      (line  591)
11972* BFD_RELOC_386_PLT32:                   howto manager.      (line  588)
11973* BFD_RELOC_386_RELATIVE:                howto manager.      (line  592)
11974* BFD_RELOC_386_TLS_DESC:                howto manager.      (line  609)
11975* BFD_RELOC_386_TLS_DESC_CALL:           howto manager.      (line  608)
11976* BFD_RELOC_386_TLS_DTPMOD32:            howto manager.      (line  604)
11977* BFD_RELOC_386_TLS_DTPOFF32:            howto manager.      (line  605)
11978* BFD_RELOC_386_TLS_GD:                  howto manager.      (line  599)
11979* BFD_RELOC_386_TLS_GOTDESC:             howto manager.      (line  607)
11980* BFD_RELOC_386_TLS_GOTIE:               howto manager.      (line  597)
11981* BFD_RELOC_386_TLS_IE:                  howto manager.      (line  596)
11982* BFD_RELOC_386_TLS_IE_32:               howto manager.      (line  602)
11983* BFD_RELOC_386_TLS_LDM:                 howto manager.      (line  600)
11984* BFD_RELOC_386_TLS_LDO_32:              howto manager.      (line  601)
11985* BFD_RELOC_386_TLS_LE:                  howto manager.      (line  598)
11986* BFD_RELOC_386_TLS_LE_32:               howto manager.      (line  603)
11987* BFD_RELOC_386_TLS_TPOFF:               howto manager.      (line  595)
11988* BFD_RELOC_386_TLS_TPOFF32:             howto manager.      (line  606)
11989* BFD_RELOC_390_12:                      howto manager.      (line 2118)
11990* BFD_RELOC_390_20:                      howto manager.      (line 2230)
11991* BFD_RELOC_390_COPY:                    howto manager.      (line 2127)
11992* BFD_RELOC_390_GLOB_DAT:                howto manager.      (line 2130)
11993* BFD_RELOC_390_GOT12:                   howto manager.      (line 2121)
11994* BFD_RELOC_390_GOT16:                   howto manager.      (line 2142)
11995* BFD_RELOC_390_GOT20:                   howto manager.      (line 2231)
11996* BFD_RELOC_390_GOT64:                   howto manager.      (line 2172)
11997* BFD_RELOC_390_GOTENT:                  howto manager.      (line 2178)
11998* BFD_RELOC_390_GOTOFF64:                howto manager.      (line 2181)
11999* BFD_RELOC_390_GOTPC:                   howto manager.      (line 2139)
12000* BFD_RELOC_390_GOTPCDBL:                howto manager.      (line 2169)
12001* BFD_RELOC_390_GOTPLT12:                howto manager.      (line 2184)
12002* BFD_RELOC_390_GOTPLT16:                howto manager.      (line 2187)
12003* BFD_RELOC_390_GOTPLT20:                howto manager.      (line 2232)
12004* BFD_RELOC_390_GOTPLT32:                howto manager.      (line 2190)
12005* BFD_RELOC_390_GOTPLT64:                howto manager.      (line 2193)
12006* BFD_RELOC_390_GOTPLTENT:               howto manager.      (line 2196)
12007* BFD_RELOC_390_IRELATIVE:               howto manager.      (line 2236)
12008* BFD_RELOC_390_JMP_SLOT:                howto manager.      (line 2133)
12009* BFD_RELOC_390_PC12DBL:                 howto manager.      (line 2145)
12010* BFD_RELOC_390_PC16DBL:                 howto manager.      (line 2151)
12011* BFD_RELOC_390_PC24DBL:                 howto manager.      (line 2157)
12012* BFD_RELOC_390_PC32DBL:                 howto manager.      (line 2163)
12013* BFD_RELOC_390_PLT12DBL:                howto manager.      (line 2148)
12014* BFD_RELOC_390_PLT16DBL:                howto manager.      (line 2154)
12015* BFD_RELOC_390_PLT24DBL:                howto manager.      (line 2160)
12016* BFD_RELOC_390_PLT32:                   howto manager.      (line 2124)
12017* BFD_RELOC_390_PLT32DBL:                howto manager.      (line 2166)
12018* BFD_RELOC_390_PLT64:                   howto manager.      (line 2175)
12019* BFD_RELOC_390_PLTOFF16:                howto manager.      (line 2199)
12020* BFD_RELOC_390_PLTOFF32:                howto manager.      (line 2202)
12021* BFD_RELOC_390_PLTOFF64:                howto manager.      (line 2205)
12022* BFD_RELOC_390_RELATIVE:                howto manager.      (line 2136)
12023* BFD_RELOC_390_TLS_DTPMOD:              howto manager.      (line 2225)
12024* BFD_RELOC_390_TLS_DTPOFF:              howto manager.      (line 2226)
12025* BFD_RELOC_390_TLS_GD32:                howto manager.      (line 2211)
12026* BFD_RELOC_390_TLS_GD64:                howto manager.      (line 2212)
12027* BFD_RELOC_390_TLS_GDCALL:              howto manager.      (line 2209)
12028* BFD_RELOC_390_TLS_GOTIE12:             howto manager.      (line 2213)
12029* BFD_RELOC_390_TLS_GOTIE20:             howto manager.      (line 2233)
12030* BFD_RELOC_390_TLS_GOTIE32:             howto manager.      (line 2214)
12031* BFD_RELOC_390_TLS_GOTIE64:             howto manager.      (line 2215)
12032* BFD_RELOC_390_TLS_IE32:                howto manager.      (line 2218)
12033* BFD_RELOC_390_TLS_IE64:                howto manager.      (line 2219)
12034* BFD_RELOC_390_TLS_IEENT:               howto manager.      (line 2220)
12035* BFD_RELOC_390_TLS_LDCALL:              howto manager.      (line 2210)
12036* BFD_RELOC_390_TLS_LDM32:               howto manager.      (line 2216)
12037* BFD_RELOC_390_TLS_LDM64:               howto manager.      (line 2217)
12038* BFD_RELOC_390_TLS_LDO32:               howto manager.      (line 2223)
12039* BFD_RELOC_390_TLS_LDO64:               howto manager.      (line 2224)
12040* BFD_RELOC_390_TLS_LE32:                howto manager.      (line 2221)
12041* BFD_RELOC_390_TLS_LE64:                howto manager.      (line 2222)
12042* BFD_RELOC_390_TLS_LOAD:                howto manager.      (line 2208)
12043* BFD_RELOC_390_TLS_TPOFF:               howto manager.      (line 2227)
12044* BFD_RELOC_64:                          howto manager.      (line   26)
12045* BFD_RELOC_64_PCREL:                    howto manager.      (line   35)
12046* BFD_RELOC_64_PLT_PCREL:                howto manager.      (line   60)
12047* BFD_RELOC_64_PLTOFF:                   howto manager.      (line   65)
12048* BFD_RELOC_68K_GLOB_DAT:                howto manager.      (line   78)
12049* BFD_RELOC_68K_JMP_SLOT:                howto manager.      (line   79)
12050* BFD_RELOC_68K_RELATIVE:                howto manager.      (line   80)
12051* BFD_RELOC_68K_TLS_GD16:                howto manager.      (line   82)
12052* BFD_RELOC_68K_TLS_GD32:                howto manager.      (line   81)
12053* BFD_RELOC_68K_TLS_GD8:                 howto manager.      (line   83)
12054* BFD_RELOC_68K_TLS_IE16:                howto manager.      (line   91)
12055* BFD_RELOC_68K_TLS_IE32:                howto manager.      (line   90)
12056* BFD_RELOC_68K_TLS_IE8:                 howto manager.      (line   92)
12057* BFD_RELOC_68K_TLS_LDM16:               howto manager.      (line   85)
12058* BFD_RELOC_68K_TLS_LDM32:               howto manager.      (line   84)
12059* BFD_RELOC_68K_TLS_LDM8:                howto manager.      (line   86)
12060* BFD_RELOC_68K_TLS_LDO16:               howto manager.      (line   88)
12061* BFD_RELOC_68K_TLS_LDO32:               howto manager.      (line   87)
12062* BFD_RELOC_68K_TLS_LDO8:                howto manager.      (line   89)
12063* BFD_RELOC_68K_TLS_LE16:                howto manager.      (line   94)
12064* BFD_RELOC_68K_TLS_LE32:                howto manager.      (line   93)
12065* BFD_RELOC_68K_TLS_LE8:                 howto manager.      (line   95)
12066* BFD_RELOC_8:                           howto manager.      (line   32)
12067* BFD_RELOC_860_COPY:                    howto manager.      (line 2663)
12068* BFD_RELOC_860_GLOB_DAT:                howto manager.      (line 2664)
12069* BFD_RELOC_860_HAGOT:                   howto manager.      (line 2689)
12070* BFD_RELOC_860_HAGOTOFF:                howto manager.      (line 2690)
12071* BFD_RELOC_860_HAPC:                    howto manager.      (line 2691)
12072* BFD_RELOC_860_HIGH:                    howto manager.      (line 2692)
12073* BFD_RELOC_860_HIGHADJ:                 howto manager.      (line 2688)
12074* BFD_RELOC_860_HIGOT:                   howto manager.      (line 2693)
12075* BFD_RELOC_860_HIGOTOFF:                howto manager.      (line 2694)
12076* BFD_RELOC_860_JUMP_SLOT:               howto manager.      (line 2665)
12077* BFD_RELOC_860_LOGOT0:                  howto manager.      (line 2677)
12078* BFD_RELOC_860_LOGOT1:                  howto manager.      (line 2679)
12079* BFD_RELOC_860_LOGOTOFF0:               howto manager.      (line 2681)
12080* BFD_RELOC_860_LOGOTOFF1:               howto manager.      (line 2683)
12081* BFD_RELOC_860_LOGOTOFF2:               howto manager.      (line 2685)
12082* BFD_RELOC_860_LOGOTOFF3:               howto manager.      (line 2686)
12083* BFD_RELOC_860_LOPC:                    howto manager.      (line 2687)
12084* BFD_RELOC_860_LOW0:                    howto manager.      (line 2670)
12085* BFD_RELOC_860_LOW1:                    howto manager.      (line 2672)
12086* BFD_RELOC_860_LOW2:                    howto manager.      (line 2674)
12087* BFD_RELOC_860_LOW3:                    howto manager.      (line 2676)
12088* BFD_RELOC_860_PC16:                    howto manager.      (line 2669)
12089* BFD_RELOC_860_PC26:                    howto manager.      (line 2667)
12090* BFD_RELOC_860_PLT26:                   howto manager.      (line 2668)
12091* BFD_RELOC_860_RELATIVE:                howto manager.      (line 2666)
12092* BFD_RELOC_860_SPGOT0:                  howto manager.      (line 2678)
12093* BFD_RELOC_860_SPGOT1:                  howto manager.      (line 2680)
12094* BFD_RELOC_860_SPGOTOFF0:               howto manager.      (line 2682)
12095* BFD_RELOC_860_SPGOTOFF1:               howto manager.      (line 2684)
12096* BFD_RELOC_860_SPLIT0:                  howto manager.      (line 2671)
12097* BFD_RELOC_860_SPLIT1:                  howto manager.      (line 2673)
12098* BFD_RELOC_860_SPLIT2:                  howto manager.      (line 2675)
12099* BFD_RELOC_8_BASEREL:                   howto manager.      (line  103)
12100* BFD_RELOC_8_FFnn:                      howto manager.      (line  107)
12101* BFD_RELOC_8_GOT_PCREL:                 howto manager.      (line   53)
12102* BFD_RELOC_8_GOTOFF:                    howto manager.      (line   59)
12103* BFD_RELOC_8_PCREL:                     howto manager.      (line   40)
12104* BFD_RELOC_8_PLT_PCREL:                 howto manager.      (line   64)
12105* BFD_RELOC_8_PLTOFF:                    howto manager.      (line   71)
12106* BFD_RELOC_AARCH64_16:                  howto manager.      (line 3094)
12107* BFD_RELOC_AARCH64_16_PCREL:            howto manager.      (line 3101)
12108* BFD_RELOC_AARCH64_32:                  howto manager.      (line 3093)
12109* BFD_RELOC_AARCH64_32_PCREL:            howto manager.      (line 3100)
12110* BFD_RELOC_AARCH64_64:                  howto manager.      (line 3092)
12111* BFD_RELOC_AARCH64_64_PCREL:            howto manager.      (line 3099)
12112* BFD_RELOC_AARCH64_ADD_LO12:            howto manager.      (line 3166)
12113* BFD_RELOC_AARCH64_ADR_GOT_PAGE:        howto manager.      (line 3223)
12114* BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL:   howto manager.      (line 3161)
12115* BFD_RELOC_AARCH64_ADR_HI21_PCREL:      howto manager.      (line 3157)
12116* BFD_RELOC_AARCH64_ADR_LO21_PCREL:      howto manager.      (line 3153)
12117* BFD_RELOC_AARCH64_BRANCH19:            howto manager.      (line 3181)
12118* BFD_RELOC_AARCH64_CALL26:              howto manager.      (line 3191)
12119* BFD_RELOC_AARCH64_COPY:                howto manager.      (line 3423)
12120* BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP:  howto manager.      (line 3457)
12121* BFD_RELOC_AARCH64_GLOB_DAT:            howto manager.      (line 3426)
12122* BFD_RELOC_AARCH64_GOT_LD_PREL19:       howto manager.      (line 3216)
12123* BFD_RELOC_AARCH64_IRELATIVE:           howto manager.      (line 3447)
12124* BFD_RELOC_AARCH64_JUMP26:              howto manager.      (line 3186)
12125* BFD_RELOC_AARCH64_JUMP_SLOT:           howto manager.      (line 3429)
12126* BFD_RELOC_AARCH64_LD32_GOT_LO12_NC:    howto manager.      (line 3233)
12127* BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14:   howto manager.      (line 3250)
12128* BFD_RELOC_AARCH64_LD64_GOT_LO12_NC:    howto manager.      (line 3228)
12129* BFD_RELOC_AARCH64_LD64_GOTOFF_LO15:    howto manager.      (line 3246)
12130* BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15:   howto manager.      (line 3254)
12131* BFD_RELOC_AARCH64_LD_GOT_LO12_NC:      howto manager.      (line 3475)
12132* BFD_RELOC_AARCH64_LD_LO19_PCREL:       howto manager.      (line 3148)
12133* BFD_RELOC_AARCH64_LDST128_LO12:        howto manager.      (line 3211)
12134* BFD_RELOC_AARCH64_LDST16_LO12:         howto manager.      (line 3196)
12135* BFD_RELOC_AARCH64_LDST32_LO12:         howto manager.      (line 3201)
12136* BFD_RELOC_AARCH64_LDST64_LO12:         howto manager.      (line 3206)
12137* BFD_RELOC_AARCH64_LDST8_LO12:          howto manager.      (line 3171)
12138* BFD_RELOC_AARCH64_LDST_LO12:           howto manager.      (line 3461)
12139* BFD_RELOC_AARCH64_MOVW_G0:             howto manager.      (line 3105)
12140* BFD_RELOC_AARCH64_MOVW_G0_NC:          howto manager.      (line 3109)
12141* BFD_RELOC_AARCH64_MOVW_G0_S:           howto manager.      (line 3133)
12142* BFD_RELOC_AARCH64_MOVW_G1:             howto manager.      (line 3113)
12143* BFD_RELOC_AARCH64_MOVW_G1_NC:          howto manager.      (line 3117)
12144* BFD_RELOC_AARCH64_MOVW_G1_S:           howto manager.      (line 3138)
12145* BFD_RELOC_AARCH64_MOVW_G2:             howto manager.      (line 3121)
12146* BFD_RELOC_AARCH64_MOVW_G2_NC:          howto manager.      (line 3125)
12147* BFD_RELOC_AARCH64_MOVW_G2_S:           howto manager.      (line 3143)
12148* BFD_RELOC_AARCH64_MOVW_G3:             howto manager.      (line 3129)
12149* BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC:   howto manager.      (line 3238)
12150* BFD_RELOC_AARCH64_MOVW_GOTOFF_G1:      howto manager.      (line 3242)
12151* BFD_RELOC_AARCH64_NONE:                howto manager.      (line 3089)
12152* BFD_RELOC_AARCH64_RELATIVE:            howto manager.      (line 3432)
12153* BFD_RELOC_AARCH64_RELOC_END:           howto manager.      (line 3450)
12154* BFD_RELOC_AARCH64_RELOC_START:         howto manager.      (line 3083)
12155* BFD_RELOC_AARCH64_TLS_DTPMOD:          howto manager.      (line 3435)
12156* BFD_RELOC_AARCH64_TLS_DTPREL:          howto manager.      (line 3438)
12157* BFD_RELOC_AARCH64_TLS_TPREL:           howto manager.      (line 3441)
12158* BFD_RELOC_AARCH64_TLSDESC:             howto manager.      (line 3444)
12159* BFD_RELOC_AARCH64_TLSDESC_ADD:         howto manager.      (line 3417)
12160* BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC: howto manager.      (line 3405)
12161* BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21:  howto manager.      (line 3396)
12162* BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21:  howto manager.      (line 3393)
12163* BFD_RELOC_AARCH64_TLSDESC_CALL:        howto manager.      (line 3420)
12164* BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC: howto manager.     (line 3402)
12165* BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC: howto manager.     (line 3399)
12166* BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC:  howto manager.      (line 3483)
12167* BFD_RELOC_AARCH64_TLSDESC_LD_PREL19:   howto manager.      (line 3390)
12168* BFD_RELOC_AARCH64_TLSDESC_LDR:         howto manager.      (line 3414)
12169* BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC:   howto manager.      (line 3411)
12170* BFD_RELOC_AARCH64_TLSDESC_OFF_G1:      howto manager.      (line 3408)
12171* BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC:   howto manager.      (line 3267)
12172* BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21:    howto manager.      (line 3258)
12173* BFD_RELOC_AARCH64_TLSGD_ADR_PREL21:    howto manager.      (line 3264)
12174* BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC:    howto manager.      (line 3272)
12175* BFD_RELOC_AARCH64_TLSGD_MOVW_G1:       howto manager.      (line 3275)
12176* BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21: howto manager.
12177                                                             (line 3278)
12178* BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC: howto manager.
12179                                                             (line 3284)
12180* BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC: howto manager.
12181                                                             (line 3281)
12182* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC: howto manager.
12183                                                             (line 3479)
12184* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19: howto manager. (line 3287)
12185* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC: howto manager.
12186                                                             (line 3290)
12187* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1: howto manager.   (line 3293)
12188* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12: howto manager.    (line 3296)
12189* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12: howto manager.    (line 3299)
12190* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: howto manager. (line 3302)
12191* BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC:   howto manager.      (line 3306)
12192* BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21:    howto manager.      (line 3311)
12193* BFD_RELOC_AARCH64_TLSLD_ADR_PREL21:    howto manager.      (line 3315)
12194* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12: howto manager. (line 3319)
12195* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC: howto manager.
12196                                                             (line 3323)
12197* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12: howto manager. (line 3327)
12198* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC: howto manager.
12199                                                             (line 3331)
12200* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12: howto manager. (line 3335)
12201* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: howto manager.
12202                                                             (line 3339)
12203* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: howto manager.  (line 3343)
12204* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: howto manager.
12205                                                             (line 3347)
12206* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12: howto manager.   (line 3466)
12207* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC: howto manager.
12208                                                             (line 3471)
12209* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: howto manager.     (line 3351)
12210* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: howto manager.  (line 3354)
12211* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: howto manager.     (line 3357)
12212* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: howto manager.  (line 3360)
12213* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: howto manager.     (line 3363)
12214* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: howto manager.     (line 3381)
12215* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: howto manager.     (line 3384)
12216* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: howto manager.  (line 3387)
12217* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: howto manager.      (line 3375)
12218* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: howto manager.   (line 3378)
12219* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: howto manager.      (line 3369)
12220* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: howto manager.   (line 3372)
12221* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: howto manager.      (line 3366)
12222* BFD_RELOC_AARCH64_TSTBR14:             howto manager.      (line 3176)
12223* BFD_RELOC_AC_SECTFOFF_S9:              howto manager.      (line 1100)
12224* BFD_RELOC_AC_SECTFOFF_S9_1:            howto manager.      (line 1101)
12225* BFD_RELOC_AC_SECTFOFF_S9_2:            howto manager.      (line 1102)
12226* BFD_RELOC_AC_SECTOFF_U8:               howto manager.      (line 1097)
12227* BFD_RELOC_AC_SECTOFF_U8_1:             howto manager.      (line 1098)
12228* BFD_RELOC_AC_SECTOFF_U8_2:             howto manager.      (line 1099)
12229* BFD_RELOC_ALPHA_BOH:                   howto manager.      (line  323)
12230* BFD_RELOC_ALPHA_BRSGP:                 howto manager.      (line  306)
12231* BFD_RELOC_ALPHA_BSR:                   howto manager.      (line  315)
12232* BFD_RELOC_ALPHA_CODEADDR:              howto manager.      (line  297)
12233* BFD_RELOC_ALPHA_DTPMOD64:              howto manager.      (line  329)
12234* BFD_RELOC_ALPHA_DTPREL16:              howto manager.      (line  334)
12235* BFD_RELOC_ALPHA_DTPREL64:              howto manager.      (line  331)
12236* BFD_RELOC_ALPHA_DTPREL_HI16:           howto manager.      (line  332)
12237* BFD_RELOC_ALPHA_DTPREL_LO16:           howto manager.      (line  333)
12238* BFD_RELOC_ALPHA_ELF_LITERAL:           howto manager.      (line  262)
12239* BFD_RELOC_ALPHA_GOTDTPREL16:           howto manager.      (line  330)
12240* BFD_RELOC_ALPHA_GOTTPREL16:            howto manager.      (line  335)
12241* BFD_RELOC_ALPHA_GPDISP:                howto manager.      (line  256)
12242* BFD_RELOC_ALPHA_GPDISP_HI16:           howto manager.      (line  242)
12243* BFD_RELOC_ALPHA_GPDISP_LO16:           howto manager.      (line  250)
12244* BFD_RELOC_ALPHA_GPREL_HI16:            howto manager.      (line  301)
12245* BFD_RELOC_ALPHA_GPREL_LO16:            howto manager.      (line  302)
12246* BFD_RELOC_ALPHA_HINT:                  howto manager.      (line  288)
12247* BFD_RELOC_ALPHA_LDA:                   howto manager.      (line  319)
12248* BFD_RELOC_ALPHA_LINKAGE:               howto manager.      (line  293)
12249* BFD_RELOC_ALPHA_LITERAL:               howto manager.      (line  261)
12250* BFD_RELOC_ALPHA_LITUSE:                howto manager.      (line  263)
12251* BFD_RELOC_ALPHA_NOP:                   howto manager.      (line  311)
12252* BFD_RELOC_ALPHA_TLSGD:                 howto manager.      (line  327)
12253* BFD_RELOC_ALPHA_TLSLDM:                howto manager.      (line  328)
12254* BFD_RELOC_ALPHA_TPREL16:               howto manager.      (line  339)
12255* BFD_RELOC_ALPHA_TPREL64:               howto manager.      (line  336)
12256* BFD_RELOC_ALPHA_TPREL_HI16:            howto manager.      (line  337)
12257* BFD_RELOC_ALPHA_TPREL_LO16:            howto manager.      (line  338)
12258* BFD_RELOC_ARC_16:                      howto manager.      (line 1069)
12259* BFD_RELOC_ARC_24:                      howto manager.      (line 1070)
12260* BFD_RELOC_ARC_32:                      howto manager.      (line 1071)
12261* BFD_RELOC_ARC_32_ME:                   howto manager.      (line 1091)
12262* BFD_RELOC_ARC_32_ME_S:                 howto manager.      (line 1092)
12263* BFD_RELOC_ARC_32_PCREL:                howto manager.      (line 1108)
12264* BFD_RELOC_ARC_8:                       howto manager.      (line 1068)
12265* BFD_RELOC_ARC_COPY:                    howto manager.      (line 1113)
12266* BFD_RELOC_ARC_GLOB_DAT:                howto manager.      (line 1114)
12267* BFD_RELOC_ARC_GOT32:                   howto manager.      (line 1110)
12268* BFD_RELOC_ARC_GOTOFF:                  howto manager.      (line 1117)
12269* BFD_RELOC_ARC_GOTPC:                   howto manager.      (line 1118)
12270* BFD_RELOC_ARC_GOTPC32:                 howto manager.      (line 1111)
12271* BFD_RELOC_ARC_JMP_SLOT:                howto manager.      (line 1115)
12272* BFD_RELOC_ARC_N16:                     howto manager.      (line 1073)
12273* BFD_RELOC_ARC_N24:                     howto manager.      (line 1074)
12274* BFD_RELOC_ARC_N32:                     howto manager.      (line 1075)
12275* BFD_RELOC_ARC_N32_ME:                  howto manager.      (line 1093)
12276* BFD_RELOC_ARC_N8:                      howto manager.      (line 1072)
12277* BFD_RELOC_ARC_NONE:                    howto manager.      (line 1067)
12278* BFD_RELOC_ARC_PC32:                    howto manager.      (line 1109)
12279* BFD_RELOC_ARC_PLT32:                   howto manager.      (line 1112)
12280* BFD_RELOC_ARC_RELATIVE:                howto manager.      (line 1116)
12281* BFD_RELOC_ARC_S13_PCREL:               howto manager.      (line 1089)
12282* BFD_RELOC_ARC_S21H_PCREL:              howto manager.      (line 1078)
12283* BFD_RELOC_ARC_S21H_PCREL_PLT:          howto manager.      (line 1132)
12284* BFD_RELOC_ARC_S21W_PCREL:              howto manager.      (line 1079)
12285* BFD_RELOC_ARC_S21W_PCREL_PLT:          howto manager.      (line 1119)
12286* BFD_RELOC_ARC_S25H_PCREL:              howto manager.      (line 1080)
12287* BFD_RELOC_ARC_S25H_PCREL_PLT:          howto manager.      (line 1120)
12288* BFD_RELOC_ARC_S25W_PCREL:              howto manager.      (line 1081)
12289* BFD_RELOC_ARC_S25W_PCREL_PLT:          howto manager.      (line 1131)
12290* BFD_RELOC_ARC_SDA:                     howto manager.      (line 1076)
12291* BFD_RELOC_ARC_SDA16_LD:                howto manager.      (line 1086)
12292* BFD_RELOC_ARC_SDA16_LD1:               howto manager.      (line 1087)
12293* BFD_RELOC_ARC_SDA16_LD2:               howto manager.      (line 1088)
12294* BFD_RELOC_ARC_SDA16_ST2:               howto manager.      (line 1107)
12295* BFD_RELOC_ARC_SDA32:                   howto manager.      (line 1082)
12296* BFD_RELOC_ARC_SDA32_ME:                howto manager.      (line 1095)
12297* BFD_RELOC_ARC_SDA_LDST:                howto manager.      (line 1083)
12298* BFD_RELOC_ARC_SDA_LDST1:               howto manager.      (line 1084)
12299* BFD_RELOC_ARC_SDA_LDST2:               howto manager.      (line 1085)
12300* BFD_RELOC_ARC_SECTOFF:                 howto manager.      (line 1077)
12301* BFD_RELOC_ARC_SECTOFF_1:               howto manager.      (line 1105)
12302* BFD_RELOC_ARC_SECTOFF_2:               howto manager.      (line 1106)
12303* BFD_RELOC_ARC_SECTOFF_ME:              howto manager.      (line 1094)
12304* BFD_RELOC_ARC_SECTOFF_ME_1:            howto manager.      (line 1103)
12305* BFD_RELOC_ARC_SECTOFF_ME_2:            howto manager.      (line 1104)
12306* BFD_RELOC_ARC_TLS_DTPMOD:              howto manager.      (line 1121)
12307* BFD_RELOC_ARC_TLS_DTPOFF:              howto manager.      (line 1127)
12308* BFD_RELOC_ARC_TLS_DTPOFF_S9:           howto manager.      (line 1128)
12309* BFD_RELOC_ARC_TLS_GD_CALL:             howto manager.      (line 1125)
12310* BFD_RELOC_ARC_TLS_GD_GOT:              howto manager.      (line 1123)
12311* BFD_RELOC_ARC_TLS_GD_LD:               howto manager.      (line 1124)
12312* BFD_RELOC_ARC_TLS_IE_GOT:              howto manager.      (line 1126)
12313* BFD_RELOC_ARC_TLS_LE_32:               howto manager.      (line 1130)
12314* BFD_RELOC_ARC_TLS_LE_S9:               howto manager.      (line 1129)
12315* BFD_RELOC_ARC_TLS_TPOFF:               howto manager.      (line 1122)
12316* BFD_RELOC_ARC_W:                       howto manager.      (line 1090)
12317* BFD_RELOC_ARC_W_ME:                    howto manager.      (line 1096)
12318* BFD_RELOC_ARM_ADR_IMM:                 howto manager.      (line  953)
12319* BFD_RELOC_ARM_ADRL_IMMEDIATE:          howto manager.      (line  939)
12320* BFD_RELOC_ARM_ALU_PC_G0:               howto manager.      (line  903)
12321* BFD_RELOC_ARM_ALU_PC_G0_NC:            howto manager.      (line  902)
12322* BFD_RELOC_ARM_ALU_PC_G1:               howto manager.      (line  905)
12323* BFD_RELOC_ARM_ALU_PC_G1_NC:            howto manager.      (line  904)
12324* BFD_RELOC_ARM_ALU_PC_G2:               howto manager.      (line  906)
12325* BFD_RELOC_ARM_ALU_SB_G0:               howto manager.      (line  917)
12326* BFD_RELOC_ARM_ALU_SB_G0_NC:            howto manager.      (line  916)
12327* BFD_RELOC_ARM_ALU_SB_G1:               howto manager.      (line  919)
12328* BFD_RELOC_ARM_ALU_SB_G1_NC:            howto manager.      (line  918)
12329* BFD_RELOC_ARM_ALU_SB_G2:               howto manager.      (line  920)
12330* BFD_RELOC_ARM_CP_OFF_IMM:              howto manager.      (line  949)
12331* BFD_RELOC_ARM_CP_OFF_IMM_S2:           howto manager.      (line  950)
12332* BFD_RELOC_ARM_GLOB_DAT:                howto manager.      (line  877)
12333* BFD_RELOC_ARM_GOT32:                   howto manager.      (line  878)
12334* BFD_RELOC_ARM_GOT_PREL:                howto manager.      (line  883)
12335* BFD_RELOC_ARM_GOTOFF:                  howto manager.      (line  881)
12336* BFD_RELOC_ARM_GOTPC:                   howto manager.      (line  882)
12337* BFD_RELOC_ARM_HVC:                     howto manager.      (line  946)
12338* BFD_RELOC_ARM_HWLITERAL:               howto manager.      (line  960)
12339* BFD_RELOC_ARM_IMMEDIATE:               howto manager.      (line  938)
12340* BFD_RELOC_ARM_IN_POOL:                 howto manager.      (line  956)
12341* BFD_RELOC_ARM_IRELATIVE:               howto manager.      (line  935)
12342* BFD_RELOC_ARM_JUMP_SLOT:               howto manager.      (line  876)
12343* BFD_RELOC_ARM_LDC_PC_G0:               howto manager.      (line  913)
12344* BFD_RELOC_ARM_LDC_PC_G1:               howto manager.      (line  914)
12345* BFD_RELOC_ARM_LDC_PC_G2:               howto manager.      (line  915)
12346* BFD_RELOC_ARM_LDC_SB_G0:               howto manager.      (line  927)
12347* BFD_RELOC_ARM_LDC_SB_G1:               howto manager.      (line  928)
12348* BFD_RELOC_ARM_LDC_SB_G2:               howto manager.      (line  929)
12349* BFD_RELOC_ARM_LDR_IMM:                 howto manager.      (line  954)
12350* BFD_RELOC_ARM_LDR_PC_G0:               howto manager.      (line  907)
12351* BFD_RELOC_ARM_LDR_PC_G1:               howto manager.      (line  908)
12352* BFD_RELOC_ARM_LDR_PC_G2:               howto manager.      (line  909)
12353* BFD_RELOC_ARM_LDR_SB_G0:               howto manager.      (line  921)
12354* BFD_RELOC_ARM_LDR_SB_G1:               howto manager.      (line  922)
12355* BFD_RELOC_ARM_LDR_SB_G2:               howto manager.      (line  923)
12356* BFD_RELOC_ARM_LDRS_PC_G0:              howto manager.      (line  910)
12357* BFD_RELOC_ARM_LDRS_PC_G1:              howto manager.      (line  911)
12358* BFD_RELOC_ARM_LDRS_PC_G2:              howto manager.      (line  912)
12359* BFD_RELOC_ARM_LDRS_SB_G0:              howto manager.      (line  924)
12360* BFD_RELOC_ARM_LDRS_SB_G1:              howto manager.      (line  925)
12361* BFD_RELOC_ARM_LDRS_SB_G2:              howto manager.      (line  926)
12362* BFD_RELOC_ARM_LITERAL:                 howto manager.      (line  955)
12363* BFD_RELOC_ARM_MOVT:                    howto manager.      (line  867)
12364* BFD_RELOC_ARM_MOVT_PCREL:              howto manager.      (line  869)
12365* BFD_RELOC_ARM_MOVW:                    howto manager.      (line  866)
12366* BFD_RELOC_ARM_MOVW_PCREL:              howto manager.      (line  868)
12367* BFD_RELOC_ARM_MULTI:                   howto manager.      (line  948)
12368* BFD_RELOC_ARM_OFFSET_IMM:              howto manager.      (line  840)
12369* BFD_RELOC_ARM_OFFSET_IMM8:             howto manager.      (line  957)
12370* BFD_RELOC_ARM_PCREL_BLX:               howto manager.      (line  811)
12371* BFD_RELOC_ARM_PCREL_BRANCH:            howto manager.      (line  807)
12372* BFD_RELOC_ARM_PCREL_CALL:              howto manager.      (line  821)
12373* BFD_RELOC_ARM_PCREL_JUMP:              howto manager.      (line  825)
12374* BFD_RELOC_ARM_PLT32:                   howto manager.      (line  879)
12375* BFD_RELOC_ARM_PREL31:                  howto manager.      (line  863)
12376* BFD_RELOC_ARM_RELATIVE:                howto manager.      (line  880)
12377* BFD_RELOC_ARM_ROSEGREL32:              howto manager.      (line  852)
12378* BFD_RELOC_ARM_SBREL32:                 howto manager.      (line  855)
12379* BFD_RELOC_ARM_SHIFT_IMM:               howto manager.      (line  944)
12380* BFD_RELOC_ARM_SMC:                     howto manager.      (line  945)
12381* BFD_RELOC_ARM_SWI:                     howto manager.      (line  947)
12382* BFD_RELOC_ARM_T32_ADD_IMM:             howto manager.      (line  941)
12383* BFD_RELOC_ARM_T32_ADD_PC12:            howto manager.      (line  943)
12384* BFD_RELOC_ARM_T32_CP_OFF_IMM:          howto manager.      (line  951)
12385* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2:       howto manager.      (line  952)
12386* BFD_RELOC_ARM_T32_IMM12:               howto manager.      (line  942)
12387* BFD_RELOC_ARM_T32_IMMEDIATE:           howto manager.      (line  940)
12388* BFD_RELOC_ARM_T32_OFFSET_IMM:          howto manager.      (line  959)
12389* BFD_RELOC_ARM_T32_OFFSET_U8:           howto manager.      (line  958)
12390* BFD_RELOC_ARM_TARGET1:                 howto manager.      (line  848)
12391* BFD_RELOC_ARM_TARGET2:                 howto manager.      (line  858)
12392* BFD_RELOC_ARM_THM_TLS_CALL:            howto manager.      (line  896)
12393* BFD_RELOC_ARM_THM_TLS_DESCSEQ:         howto manager.      (line  898)
12394* BFD_RELOC_ARM_THUMB_ADD:               howto manager.      (line  961)
12395* BFD_RELOC_ARM_THUMB_IMM:               howto manager.      (line  962)
12396* BFD_RELOC_ARM_THUMB_MOVT:              howto manager.      (line  871)
12397* BFD_RELOC_ARM_THUMB_MOVT_PCREL:        howto manager.      (line  873)
12398* BFD_RELOC_ARM_THUMB_MOVW:              howto manager.      (line  870)
12399* BFD_RELOC_ARM_THUMB_MOVW_PCREL:        howto manager.      (line  872)
12400* BFD_RELOC_ARM_THUMB_OFFSET:            howto manager.      (line  844)
12401* BFD_RELOC_ARM_THUMB_SHIFT:             howto manager.      (line  963)
12402* BFD_RELOC_ARM_TLS_CALL:                howto manager.      (line  895)
12403* BFD_RELOC_ARM_TLS_DESC:                howto manager.      (line  899)
12404* BFD_RELOC_ARM_TLS_DESCSEQ:             howto manager.      (line  897)
12405* BFD_RELOC_ARM_TLS_DTPMOD32:            howto manager.      (line  890)
12406* BFD_RELOC_ARM_TLS_DTPOFF32:            howto manager.      (line  889)
12407* BFD_RELOC_ARM_TLS_GD32:                howto manager.      (line  886)
12408* BFD_RELOC_ARM_TLS_GOTDESC:             howto manager.      (line  894)
12409* BFD_RELOC_ARM_TLS_IE32:                howto manager.      (line  892)
12410* BFD_RELOC_ARM_TLS_LDM32:               howto manager.      (line  888)
12411* BFD_RELOC_ARM_TLS_LDO32:               howto manager.      (line  887)
12412* BFD_RELOC_ARM_TLS_LE32:                howto manager.      (line  893)
12413* BFD_RELOC_ARM_TLS_TPOFF32:             howto manager.      (line  891)
12414* BFD_RELOC_ARM_V4BX:                    howto manager.      (line  932)
12415* BFD_RELOC_AVR_13_PCREL:                howto manager.      (line 1920)
12416* BFD_RELOC_AVR_16_PM:                   howto manager.      (line 1924)
12417* BFD_RELOC_AVR_6:                       howto manager.      (line 2011)
12418* BFD_RELOC_AVR_6_ADIW:                  howto manager.      (line 2015)
12419* BFD_RELOC_AVR_7_PCREL:                 howto manager.      (line 1916)
12420* BFD_RELOC_AVR_8_HI:                    howto manager.      (line 2023)
12421* BFD_RELOC_AVR_8_HLO:                   howto manager.      (line 2027)
12422* BFD_RELOC_AVR_8_LO:                    howto manager.      (line 2019)
12423* BFD_RELOC_AVR_CALL:                    howto manager.      (line 2003)
12424* BFD_RELOC_AVR_DIFF16:                  howto manager.      (line 2032)
12425* BFD_RELOC_AVR_DIFF32:                  howto manager.      (line 2033)
12426* BFD_RELOC_AVR_DIFF8:                   howto manager.      (line 2031)
12427* BFD_RELOC_AVR_HH8_LDI:                 howto manager.      (line 1936)
12428* BFD_RELOC_AVR_HH8_LDI_NEG:             howto manager.      (line 1955)
12429* BFD_RELOC_AVR_HH8_LDI_PM:              howto manager.      (line 1984)
12430* BFD_RELOC_AVR_HH8_LDI_PM_NEG:          howto manager.      (line 1998)
12431* BFD_RELOC_AVR_HI8_LDI:                 howto manager.      (line 1932)
12432* BFD_RELOC_AVR_HI8_LDI_GS:              howto manager.      (line 1978)
12433* BFD_RELOC_AVR_HI8_LDI_NEG:             howto manager.      (line 1950)
12434* BFD_RELOC_AVR_HI8_LDI_PM:              howto manager.      (line 1974)
12435* BFD_RELOC_AVR_HI8_LDI_PM_NEG:          howto manager.      (line 1993)
12436* BFD_RELOC_AVR_LDI:                     howto manager.      (line 2007)
12437* BFD_RELOC_AVR_LDS_STS_16:              howto manager.      (line 2041)
12438* BFD_RELOC_AVR_LO8_LDI:                 howto manager.      (line 1928)
12439* BFD_RELOC_AVR_LO8_LDI_GS:              howto manager.      (line 1968)
12440* BFD_RELOC_AVR_LO8_LDI_NEG:             howto manager.      (line 1945)
12441* BFD_RELOC_AVR_LO8_LDI_PM:              howto manager.      (line 1964)
12442* BFD_RELOC_AVR_LO8_LDI_PM_NEG:          howto manager.      (line 1989)
12443* BFD_RELOC_AVR_MS8_LDI:                 howto manager.      (line 1941)
12444* BFD_RELOC_AVR_MS8_LDI_NEG:             howto manager.      (line 1960)
12445* BFD_RELOC_AVR_PORT5:                   howto manager.      (line 2049)
12446* BFD_RELOC_AVR_PORT6:                   howto manager.      (line 2045)
12447* BFD_RELOC_BFIN_10_PCREL:               howto manager.      (line 1150)
12448* BFD_RELOC_BFIN_11_PCREL:               howto manager.      (line 1153)
12449* BFD_RELOC_BFIN_12_PCREL_JUMP:          howto manager.      (line 1156)
12450* BFD_RELOC_BFIN_12_PCREL_JUMP_S:        howto manager.      (line 1159)
12451* BFD_RELOC_BFIN_16_HIGH:                howto manager.      (line 1138)
12452* BFD_RELOC_BFIN_16_IMM:                 howto manager.      (line 1135)
12453* BFD_RELOC_BFIN_16_LOW:                 howto manager.      (line 1147)
12454* BFD_RELOC_BFIN_24_PCREL_CALL_X:        howto manager.      (line 1162)
12455* BFD_RELOC_BFIN_24_PCREL_JUMP_L:        howto manager.      (line 1165)
12456* BFD_RELOC_BFIN_4_PCREL:                howto manager.      (line 1141)
12457* BFD_RELOC_BFIN_5_PCREL:                howto manager.      (line 1144)
12458* BFD_RELOC_BFIN_FUNCDESC:               howto manager.      (line 1171)
12459* BFD_RELOC_BFIN_FUNCDESC_GOT17M4:       howto manager.      (line 1172)
12460* BFD_RELOC_BFIN_FUNCDESC_GOTHI:         howto manager.      (line 1173)
12461* BFD_RELOC_BFIN_FUNCDESC_GOTLO:         howto manager.      (line 1174)
12462* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4:    howto manager.      (line 1176)
12463* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI:      howto manager.      (line 1177)
12464* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO:      howto manager.      (line 1178)
12465* BFD_RELOC_BFIN_FUNCDESC_VALUE:         howto manager.      (line 1175)
12466* BFD_RELOC_BFIN_GOT:                    howto manager.      (line 1184)
12467* BFD_RELOC_BFIN_GOT17M4:                howto manager.      (line 1168)
12468* BFD_RELOC_BFIN_GOTHI:                  howto manager.      (line 1169)
12469* BFD_RELOC_BFIN_GOTLO:                  howto manager.      (line 1170)
12470* BFD_RELOC_BFIN_GOTOFF17M4:             howto manager.      (line 1179)
12471* BFD_RELOC_BFIN_GOTOFFHI:               howto manager.      (line 1180)
12472* BFD_RELOC_BFIN_GOTOFFLO:               howto manager.      (line 1181)
12473* BFD_RELOC_BFIN_PLTPC:                  howto manager.      (line 1187)
12474* BFD_RELOC_C6000_ABS_H16:               howto manager.      (line 1739)
12475* BFD_RELOC_C6000_ABS_L16:               howto manager.      (line 1738)
12476* BFD_RELOC_C6000_ABS_S16:               howto manager.      (line 1737)
12477* BFD_RELOC_C6000_ALIGN:                 howto manager.      (line 1760)
12478* BFD_RELOC_C6000_COPY:                  howto manager.      (line 1755)
12479* BFD_RELOC_C6000_DSBT_INDEX:            howto manager.      (line 1753)
12480* BFD_RELOC_C6000_EHTYPE:                howto manager.      (line 1757)
12481* BFD_RELOC_C6000_FPHEAD:                howto manager.      (line 1761)
12482* BFD_RELOC_C6000_JUMP_SLOT:             howto manager.      (line 1756)
12483* BFD_RELOC_C6000_NOCMP:                 howto manager.      (line 1762)
12484* BFD_RELOC_C6000_PCR_H16:               howto manager.      (line 1758)
12485* BFD_RELOC_C6000_PCR_L16:               howto manager.      (line 1759)
12486* BFD_RELOC_C6000_PCR_S10:               howto manager.      (line 1735)
12487* BFD_RELOC_C6000_PCR_S12:               howto manager.      (line 1734)
12488* BFD_RELOC_C6000_PCR_S21:               howto manager.      (line 1733)
12489* BFD_RELOC_C6000_PCR_S7:                howto manager.      (line 1736)
12490* BFD_RELOC_C6000_PREL31:                howto manager.      (line 1754)
12491* BFD_RELOC_C6000_SBR_GOT_H16_W:         howto manager.      (line 1752)
12492* BFD_RELOC_C6000_SBR_GOT_L16_W:         howto manager.      (line 1751)
12493* BFD_RELOC_C6000_SBR_GOT_U15_W:         howto manager.      (line 1750)
12494* BFD_RELOC_C6000_SBR_H16_B:             howto manager.      (line 1747)
12495* BFD_RELOC_C6000_SBR_H16_H:             howto manager.      (line 1748)
12496* BFD_RELOC_C6000_SBR_H16_W:             howto manager.      (line 1749)
12497* BFD_RELOC_C6000_SBR_L16_B:             howto manager.      (line 1744)
12498* BFD_RELOC_C6000_SBR_L16_H:             howto manager.      (line 1745)
12499* BFD_RELOC_C6000_SBR_L16_W:             howto manager.      (line 1746)
12500* BFD_RELOC_C6000_SBR_S16:               howto manager.      (line 1743)
12501* BFD_RELOC_C6000_SBR_U15_B:             howto manager.      (line 1740)
12502* BFD_RELOC_C6000_SBR_U15_H:             howto manager.      (line 1741)
12503* BFD_RELOC_C6000_SBR_U15_W:             howto manager.      (line 1742)
12504* bfd_reloc_code_type:                   howto manager.      (line   10)
12505* BFD_RELOC_CR16_ABS20:                  howto manager.      (line 2563)
12506* BFD_RELOC_CR16_ABS24:                  howto manager.      (line 2564)
12507* BFD_RELOC_CR16_DISP16:                 howto manager.      (line 2574)
12508* BFD_RELOC_CR16_DISP20:                 howto manager.      (line 2575)
12509* BFD_RELOC_CR16_DISP24:                 howto manager.      (line 2576)
12510* BFD_RELOC_CR16_DISP24a:                howto manager.      (line 2577)
12511* BFD_RELOC_CR16_DISP4:                  howto manager.      (line 2572)
12512* BFD_RELOC_CR16_DISP8:                  howto manager.      (line 2573)
12513* BFD_RELOC_CR16_GLOB_DAT:               howto manager.      (line 2583)
12514* BFD_RELOC_CR16_GOT_REGREL20:           howto manager.      (line 2581)
12515* BFD_RELOC_CR16_GOTC_REGREL20:          howto manager.      (line 2582)
12516* BFD_RELOC_CR16_IMM16:                  howto manager.      (line 2567)
12517* BFD_RELOC_CR16_IMM20:                  howto manager.      (line 2568)
12518* BFD_RELOC_CR16_IMM24:                  howto manager.      (line 2569)
12519* BFD_RELOC_CR16_IMM32:                  howto manager.      (line 2570)
12520* BFD_RELOC_CR16_IMM32a:                 howto manager.      (line 2571)
12521* BFD_RELOC_CR16_IMM4:                   howto manager.      (line 2565)
12522* BFD_RELOC_CR16_IMM8:                   howto manager.      (line 2566)
12523* BFD_RELOC_CR16_NUM16:                  howto manager.      (line 2552)
12524* BFD_RELOC_CR16_NUM32:                  howto manager.      (line 2553)
12525* BFD_RELOC_CR16_NUM32a:                 howto manager.      (line 2554)
12526* BFD_RELOC_CR16_NUM8:                   howto manager.      (line 2551)
12527* BFD_RELOC_CR16_REGREL0:                howto manager.      (line 2555)
12528* BFD_RELOC_CR16_REGREL14:               howto manager.      (line 2558)
12529* BFD_RELOC_CR16_REGREL14a:              howto manager.      (line 2559)
12530* BFD_RELOC_CR16_REGREL16:               howto manager.      (line 2560)
12531* BFD_RELOC_CR16_REGREL20:               howto manager.      (line 2561)
12532* BFD_RELOC_CR16_REGREL20a:              howto manager.      (line 2562)
12533* BFD_RELOC_CR16_REGREL4:                howto manager.      (line 2556)
12534* BFD_RELOC_CR16_REGREL4a:               howto manager.      (line 2557)
12535* BFD_RELOC_CR16_SWITCH16:               howto manager.      (line 2579)
12536* BFD_RELOC_CR16_SWITCH32:               howto manager.      (line 2580)
12537* BFD_RELOC_CR16_SWITCH8:                howto manager.      (line 2578)
12538* BFD_RELOC_CRIS_16_DTPREL:              howto manager.      (line 2654)
12539* BFD_RELOC_CRIS_16_GOT:                 howto manager.      (line 2630)
12540* BFD_RELOC_CRIS_16_GOT_GD:              howto manager.      (line 2650)
12541* BFD_RELOC_CRIS_16_GOT_TPREL:           howto manager.      (line 2656)
12542* BFD_RELOC_CRIS_16_GOTPLT:              howto manager.      (line 2636)
12543* BFD_RELOC_CRIS_16_TPREL:               howto manager.      (line 2658)
12544* BFD_RELOC_CRIS_32_DTPREL:              howto manager.      (line 2653)
12545* BFD_RELOC_CRIS_32_GD:                  howto manager.      (line 2651)
12546* BFD_RELOC_CRIS_32_GOT:                 howto manager.      (line 2627)
12547* BFD_RELOC_CRIS_32_GOT_GD:              howto manager.      (line 2649)
12548* BFD_RELOC_CRIS_32_GOT_TPREL:           howto manager.      (line 2655)
12549* BFD_RELOC_CRIS_32_GOTPLT:              howto manager.      (line 2633)
12550* BFD_RELOC_CRIS_32_GOTREL:              howto manager.      (line 2639)
12551* BFD_RELOC_CRIS_32_IE:                  howto manager.      (line 2660)
12552* BFD_RELOC_CRIS_32_PLT_GOTREL:          howto manager.      (line 2642)
12553* BFD_RELOC_CRIS_32_PLT_PCREL:           howto manager.      (line 2645)
12554* BFD_RELOC_CRIS_32_TPREL:               howto manager.      (line 2657)
12555* BFD_RELOC_CRIS_BDISP8:                 howto manager.      (line 2608)
12556* BFD_RELOC_CRIS_COPY:                   howto manager.      (line 2621)
12557* BFD_RELOC_CRIS_DTP:                    howto manager.      (line 2652)
12558* BFD_RELOC_CRIS_DTPMOD:                 howto manager.      (line 2659)
12559* BFD_RELOC_CRIS_GLOB_DAT:               howto manager.      (line 2622)
12560* BFD_RELOC_CRIS_JUMP_SLOT:              howto manager.      (line 2623)
12561* BFD_RELOC_CRIS_LAPCQ_OFFSET:           howto manager.      (line 2616)
12562* BFD_RELOC_CRIS_RELATIVE:               howto manager.      (line 2624)
12563* BFD_RELOC_CRIS_SIGNED_16:              howto manager.      (line 2614)
12564* BFD_RELOC_CRIS_SIGNED_6:               howto manager.      (line 2610)
12565* BFD_RELOC_CRIS_SIGNED_8:               howto manager.      (line 2612)
12566* BFD_RELOC_CRIS_UNSIGNED_16:            howto manager.      (line 2615)
12567* BFD_RELOC_CRIS_UNSIGNED_4:             howto manager.      (line 2617)
12568* BFD_RELOC_CRIS_UNSIGNED_5:             howto manager.      (line 2609)
12569* BFD_RELOC_CRIS_UNSIGNED_6:             howto manager.      (line 2611)
12570* BFD_RELOC_CRIS_UNSIGNED_8:             howto manager.      (line 2613)
12571* BFD_RELOC_CRX_ABS16:                   howto manager.      (line 2596)
12572* BFD_RELOC_CRX_ABS32:                   howto manager.      (line 2597)
12573* BFD_RELOC_CRX_IMM16:                   howto manager.      (line 2601)
12574* BFD_RELOC_CRX_IMM32:                   howto manager.      (line 2602)
12575* BFD_RELOC_CRX_NUM16:                   howto manager.      (line 2599)
12576* BFD_RELOC_CRX_NUM32:                   howto manager.      (line 2600)
12577* BFD_RELOC_CRX_NUM8:                    howto manager.      (line 2598)
12578* BFD_RELOC_CRX_REGREL12:                howto manager.      (line 2592)
12579* BFD_RELOC_CRX_REGREL22:                howto manager.      (line 2593)
12580* BFD_RELOC_CRX_REGREL28:                howto manager.      (line 2594)
12581* BFD_RELOC_CRX_REGREL32:                howto manager.      (line 2595)
12582* BFD_RELOC_CRX_REL16:                   howto manager.      (line 2589)
12583* BFD_RELOC_CRX_REL24:                   howto manager.      (line 2590)
12584* BFD_RELOC_CRX_REL32:                   howto manager.      (line 2591)
12585* BFD_RELOC_CRX_REL4:                    howto manager.      (line 2586)
12586* BFD_RELOC_CRX_REL8:                    howto manager.      (line 2587)
12587* BFD_RELOC_CRX_REL8_CMP:                howto manager.      (line 2588)
12588* BFD_RELOC_CRX_SWITCH16:                howto manager.      (line 2604)
12589* BFD_RELOC_CRX_SWITCH32:                howto manager.      (line 2605)
12590* BFD_RELOC_CRX_SWITCH8:                 howto manager.      (line 2603)
12591* BFD_RELOC_CTOR:                        howto manager.      (line  801)
12592* BFD_RELOC_D10V_10_PCREL_L:             howto manager.      (line 1254)
12593* BFD_RELOC_D10V_10_PCREL_R:             howto manager.      (line 1250)
12594* BFD_RELOC_D10V_18:                     howto manager.      (line 1259)
12595* BFD_RELOC_D10V_18_PCREL:               howto manager.      (line 1262)
12596* BFD_RELOC_D30V_15:                     howto manager.      (line 1277)
12597* BFD_RELOC_D30V_15_PCREL:               howto manager.      (line 1281)
12598* BFD_RELOC_D30V_15_PCREL_R:             howto manager.      (line 1285)
12599* BFD_RELOC_D30V_21:                     howto manager.      (line 1290)
12600* BFD_RELOC_D30V_21_PCREL:               howto manager.      (line 1294)
12601* BFD_RELOC_D30V_21_PCREL_R:             howto manager.      (line 1298)
12602* BFD_RELOC_D30V_32:                     howto manager.      (line 1303)
12603* BFD_RELOC_D30V_32_PCREL:               howto manager.      (line 1306)
12604* BFD_RELOC_D30V_6:                      howto manager.      (line 1265)
12605* BFD_RELOC_D30V_9_PCREL:                howto manager.      (line 1268)
12606* BFD_RELOC_D30V_9_PCREL_R:              howto manager.      (line 1272)
12607* BFD_RELOC_DLX_HI16_S:                  howto manager.      (line 1309)
12608* BFD_RELOC_DLX_JMP26:                   howto manager.      (line 1315)
12609* BFD_RELOC_DLX_LO16:                    howto manager.      (line 1312)
12610* BFD_RELOC_EPIPHANY_HIGH:               howto manager.      (line 3685)
12611* BFD_RELOC_EPIPHANY_IMM11:              howto manager.      (line 3694)
12612* BFD_RELOC_EPIPHANY_IMM8:               howto manager.      (line 3698)
12613* BFD_RELOC_EPIPHANY_LOW:                howto manager.      (line 3688)
12614* BFD_RELOC_EPIPHANY_SIMM11:             howto manager.      (line 3691)
12615* BFD_RELOC_EPIPHANY_SIMM24:             howto manager.      (line 3682)
12616* BFD_RELOC_EPIPHANY_SIMM8:              howto manager.      (line 3679)
12617* BFD_RELOC_FR30_10_IN_8:                howto manager.      (line 1784)
12618* BFD_RELOC_FR30_12_PCREL:               howto manager.      (line 1792)
12619* BFD_RELOC_FR30_20:                     howto manager.      (line 1768)
12620* BFD_RELOC_FR30_48:                     howto manager.      (line 1765)
12621* BFD_RELOC_FR30_6_IN_4:                 howto manager.      (line 1772)
12622* BFD_RELOC_FR30_8_IN_8:                 howto manager.      (line 1776)
12623* BFD_RELOC_FR30_9_IN_8:                 howto manager.      (line 1780)
12624* BFD_RELOC_FR30_9_PCREL:                howto manager.      (line 1788)
12625* BFD_RELOC_FRV_FUNCDESC:                howto manager.      (line  503)
12626* BFD_RELOC_FRV_FUNCDESC_GOT12:          howto manager.      (line  504)
12627* BFD_RELOC_FRV_FUNCDESC_GOTHI:          howto manager.      (line  505)
12628* BFD_RELOC_FRV_FUNCDESC_GOTLO:          howto manager.      (line  506)
12629* BFD_RELOC_FRV_FUNCDESC_GOTOFF12:       howto manager.      (line  508)
12630* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI:       howto manager.      (line  509)
12631* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO:       howto manager.      (line  510)
12632* BFD_RELOC_FRV_FUNCDESC_VALUE:          howto manager.      (line  507)
12633* BFD_RELOC_FRV_GETTLSOFF:               howto manager.      (line  514)
12634* BFD_RELOC_FRV_GETTLSOFF_RELAX:         howto manager.      (line  527)
12635* BFD_RELOC_FRV_GOT12:                   howto manager.      (line  500)
12636* BFD_RELOC_FRV_GOTHI:                   howto manager.      (line  501)
12637* BFD_RELOC_FRV_GOTLO:                   howto manager.      (line  502)
12638* BFD_RELOC_FRV_GOTOFF12:                howto manager.      (line  511)
12639* BFD_RELOC_FRV_GOTOFFHI:                howto manager.      (line  512)
12640* BFD_RELOC_FRV_GOTOFFLO:                howto manager.      (line  513)
12641* BFD_RELOC_FRV_GOTTLSDESC12:            howto manager.      (line  516)
12642* BFD_RELOC_FRV_GOTTLSDESCHI:            howto manager.      (line  517)
12643* BFD_RELOC_FRV_GOTTLSDESCLO:            howto manager.      (line  518)
12644* BFD_RELOC_FRV_GOTTLSOFF12:             howto manager.      (line  522)
12645* BFD_RELOC_FRV_GOTTLSOFFHI:             howto manager.      (line  523)
12646* BFD_RELOC_FRV_GOTTLSOFFLO:             howto manager.      (line  524)
12647* BFD_RELOC_FRV_GPREL12:                 howto manager.      (line  495)
12648* BFD_RELOC_FRV_GPREL32:                 howto manager.      (line  497)
12649* BFD_RELOC_FRV_GPRELHI:                 howto manager.      (line  498)
12650* BFD_RELOC_FRV_GPRELLO:                 howto manager.      (line  499)
12651* BFD_RELOC_FRV_GPRELU12:                howto manager.      (line  496)
12652* BFD_RELOC_FRV_HI16:                    howto manager.      (line  494)
12653* BFD_RELOC_FRV_LABEL16:                 howto manager.      (line  491)
12654* BFD_RELOC_FRV_LABEL24:                 howto manager.      (line  492)
12655* BFD_RELOC_FRV_LO16:                    howto manager.      (line  493)
12656* BFD_RELOC_FRV_TLSDESC_RELAX:           howto manager.      (line  526)
12657* BFD_RELOC_FRV_TLSDESC_VALUE:           howto manager.      (line  515)
12658* BFD_RELOC_FRV_TLSMOFF:                 howto manager.      (line  529)
12659* BFD_RELOC_FRV_TLSMOFF12:               howto manager.      (line  519)
12660* BFD_RELOC_FRV_TLSMOFFHI:               howto manager.      (line  520)
12661* BFD_RELOC_FRV_TLSMOFFLO:               howto manager.      (line  521)
12662* BFD_RELOC_FRV_TLSOFF:                  howto manager.      (line  525)
12663* BFD_RELOC_FRV_TLSOFF_RELAX:            howto manager.      (line  528)
12664* BFD_RELOC_FT32_10:                     howto manager.      (line  485)
12665* BFD_RELOC_FT32_17:                     howto manager.      (line  487)
12666* BFD_RELOC_FT32_18:                     howto manager.      (line  488)
12667* BFD_RELOC_FT32_20:                     howto manager.      (line  486)
12668* BFD_RELOC_GPREL16:                     howto manager.      (line  125)
12669* BFD_RELOC_GPREL32:                     howto manager.      (line  126)
12670* BFD_RELOC_H8_DIR16A8:                  howto manager.      (line 2723)
12671* BFD_RELOC_H8_DIR16R8:                  howto manager.      (line 2724)
12672* BFD_RELOC_H8_DIR24A8:                  howto manager.      (line 2725)
12673* BFD_RELOC_H8_DIR24R8:                  howto manager.      (line 2726)
12674* BFD_RELOC_H8_DIR32A16:                 howto manager.      (line 2727)
12675* BFD_RELOC_H8_DISP32A16:                howto manager.      (line 2728)
12676* BFD_RELOC_HI16:                        howto manager.      (line  352)
12677* BFD_RELOC_HI16_BASEREL:                howto manager.      (line  101)
12678* BFD_RELOC_HI16_GOTOFF:                 howto manager.      (line   57)
12679* BFD_RELOC_HI16_PCREL:                  howto manager.      (line  364)
12680* BFD_RELOC_HI16_PLTOFF:                 howto manager.      (line   69)
12681* BFD_RELOC_HI16_S:                      howto manager.      (line  355)
12682* BFD_RELOC_HI16_S_BASEREL:              howto manager.      (line  102)
12683* BFD_RELOC_HI16_S_GOTOFF:               howto manager.      (line   58)
12684* BFD_RELOC_HI16_S_PCREL:                howto manager.      (line  367)
12685* BFD_RELOC_HI16_S_PLTOFF:               howto manager.      (line   70)
12686* BFD_RELOC_HI22:                        howto manager.      (line  120)
12687* BFD_RELOC_I370_D12:                    howto manager.      (line  798)
12688* BFD_RELOC_I960_CALLJ:                  howto manager.      (line  132)
12689* BFD_RELOC_IA64_COPY:                   howto manager.      (line 2383)
12690* BFD_RELOC_IA64_DIR32LSB:               howto manager.      (line 2328)
12691* BFD_RELOC_IA64_DIR32MSB:               howto manager.      (line 2327)
12692* BFD_RELOC_IA64_DIR64LSB:               howto manager.      (line 2330)
12693* BFD_RELOC_IA64_DIR64MSB:               howto manager.      (line 2329)
12694* BFD_RELOC_IA64_DTPMOD64LSB:            howto manager.      (line 2393)
12695* BFD_RELOC_IA64_DTPMOD64MSB:            howto manager.      (line 2392)
12696* BFD_RELOC_IA64_DTPREL14:               howto manager.      (line 2395)
12697* BFD_RELOC_IA64_DTPREL22:               howto manager.      (line 2396)
12698* BFD_RELOC_IA64_DTPREL32LSB:            howto manager.      (line 2399)
12699* BFD_RELOC_IA64_DTPREL32MSB:            howto manager.      (line 2398)
12700* BFD_RELOC_IA64_DTPREL64I:              howto manager.      (line 2397)
12701* BFD_RELOC_IA64_DTPREL64LSB:            howto manager.      (line 2401)
12702* BFD_RELOC_IA64_DTPREL64MSB:            howto manager.      (line 2400)
12703* BFD_RELOC_IA64_FPTR32LSB:              howto manager.      (line 2345)
12704* BFD_RELOC_IA64_FPTR32MSB:              howto manager.      (line 2344)
12705* BFD_RELOC_IA64_FPTR64I:                howto manager.      (line 2343)
12706* BFD_RELOC_IA64_FPTR64LSB:              howto manager.      (line 2347)
12707* BFD_RELOC_IA64_FPTR64MSB:              howto manager.      (line 2346)
12708* BFD_RELOC_IA64_GPREL22:                howto manager.      (line 2331)
12709* BFD_RELOC_IA64_GPREL32LSB:             howto manager.      (line 2334)
12710* BFD_RELOC_IA64_GPREL32MSB:             howto manager.      (line 2333)
12711* BFD_RELOC_IA64_GPREL64I:               howto manager.      (line 2332)
12712* BFD_RELOC_IA64_GPREL64LSB:             howto manager.      (line 2336)
12713* BFD_RELOC_IA64_GPREL64MSB:             howto manager.      (line 2335)
12714* BFD_RELOC_IA64_IMM14:                  howto manager.      (line 2324)
12715* BFD_RELOC_IA64_IMM22:                  howto manager.      (line 2325)
12716* BFD_RELOC_IA64_IMM64:                  howto manager.      (line 2326)
12717* BFD_RELOC_IA64_IPLTLSB:                howto manager.      (line 2382)
12718* BFD_RELOC_IA64_IPLTMSB:                howto manager.      (line 2381)
12719* BFD_RELOC_IA64_LDXMOV:                 howto manager.      (line 2385)
12720* BFD_RELOC_IA64_LTOFF22:                howto manager.      (line 2337)
12721* BFD_RELOC_IA64_LTOFF22X:               howto manager.      (line 2384)
12722* BFD_RELOC_IA64_LTOFF64I:               howto manager.      (line 2338)
12723* BFD_RELOC_IA64_LTOFF_DTPMOD22:         howto manager.      (line 2394)
12724* BFD_RELOC_IA64_LTOFF_DTPREL22:         howto manager.      (line 2402)
12725* BFD_RELOC_IA64_LTOFF_FPTR22:           howto manager.      (line 2359)
12726* BFD_RELOC_IA64_LTOFF_FPTR32LSB:        howto manager.      (line 2362)
12727* BFD_RELOC_IA64_LTOFF_FPTR32MSB:        howto manager.      (line 2361)
12728* BFD_RELOC_IA64_LTOFF_FPTR64I:          howto manager.      (line 2360)
12729* BFD_RELOC_IA64_LTOFF_FPTR64LSB:        howto manager.      (line 2364)
12730* BFD_RELOC_IA64_LTOFF_FPTR64MSB:        howto manager.      (line 2363)
12731* BFD_RELOC_IA64_LTOFF_TPREL22:          howto manager.      (line 2391)
12732* BFD_RELOC_IA64_LTV32LSB:               howto manager.      (line 2378)
12733* BFD_RELOC_IA64_LTV32MSB:               howto manager.      (line 2377)
12734* BFD_RELOC_IA64_LTV64LSB:               howto manager.      (line 2380)
12735* BFD_RELOC_IA64_LTV64MSB:               howto manager.      (line 2379)
12736* BFD_RELOC_IA64_PCREL21B:               howto manager.      (line 2348)
12737* BFD_RELOC_IA64_PCREL21BI:              howto manager.      (line 2349)
12738* BFD_RELOC_IA64_PCREL21F:               howto manager.      (line 2351)
12739* BFD_RELOC_IA64_PCREL21M:               howto manager.      (line 2350)
12740* BFD_RELOC_IA64_PCREL22:                howto manager.      (line 2352)
12741* BFD_RELOC_IA64_PCREL32LSB:             howto manager.      (line 2356)
12742* BFD_RELOC_IA64_PCREL32MSB:             howto manager.      (line 2355)
12743* BFD_RELOC_IA64_PCREL60B:               howto manager.      (line 2353)
12744* BFD_RELOC_IA64_PCREL64I:               howto manager.      (line 2354)
12745* BFD_RELOC_IA64_PCREL64LSB:             howto manager.      (line 2358)
12746* BFD_RELOC_IA64_PCREL64MSB:             howto manager.      (line 2357)
12747* BFD_RELOC_IA64_PLTOFF22:               howto manager.      (line 2339)
12748* BFD_RELOC_IA64_PLTOFF64I:              howto manager.      (line 2340)
12749* BFD_RELOC_IA64_PLTOFF64LSB:            howto manager.      (line 2342)
12750* BFD_RELOC_IA64_PLTOFF64MSB:            howto manager.      (line 2341)
12751* BFD_RELOC_IA64_REL32LSB:               howto manager.      (line 2374)
12752* BFD_RELOC_IA64_REL32MSB:               howto manager.      (line 2373)
12753* BFD_RELOC_IA64_REL64LSB:               howto manager.      (line 2376)
12754* BFD_RELOC_IA64_REL64MSB:               howto manager.      (line 2375)
12755* BFD_RELOC_IA64_SECREL32LSB:            howto manager.      (line 2370)
12756* BFD_RELOC_IA64_SECREL32MSB:            howto manager.      (line 2369)
12757* BFD_RELOC_IA64_SECREL64LSB:            howto manager.      (line 2372)
12758* BFD_RELOC_IA64_SECREL64MSB:            howto manager.      (line 2371)
12759* BFD_RELOC_IA64_SEGREL32LSB:            howto manager.      (line 2366)
12760* BFD_RELOC_IA64_SEGREL32MSB:            howto manager.      (line 2365)
12761* BFD_RELOC_IA64_SEGREL64LSB:            howto manager.      (line 2368)
12762* BFD_RELOC_IA64_SEGREL64MSB:            howto manager.      (line 2367)
12763* BFD_RELOC_IA64_TPREL14:                howto manager.      (line 2386)
12764* BFD_RELOC_IA64_TPREL22:                howto manager.      (line 2387)
12765* BFD_RELOC_IA64_TPREL64I:               howto manager.      (line 2388)
12766* BFD_RELOC_IA64_TPREL64LSB:             howto manager.      (line 2390)
12767* BFD_RELOC_IA64_TPREL64MSB:             howto manager.      (line 2389)
12768* BFD_RELOC_IP2K_ADDR16CJP:              howto manager.      (line 2276)
12769* BFD_RELOC_IP2K_BANK:                   howto manager.      (line 2273)
12770* BFD_RELOC_IP2K_EX8DATA:                howto manager.      (line 2284)
12771* BFD_RELOC_IP2K_FR9:                    howto manager.      (line 2270)
12772* BFD_RELOC_IP2K_FR_OFFSET:              howto manager.      (line 2297)
12773* BFD_RELOC_IP2K_HI8DATA:                howto manager.      (line 2283)
12774* BFD_RELOC_IP2K_HI8INSN:                howto manager.      (line 2288)
12775* BFD_RELOC_IP2K_LO8DATA:                howto manager.      (line 2282)
12776* BFD_RELOC_IP2K_LO8INSN:                howto manager.      (line 2287)
12777* BFD_RELOC_IP2K_PAGE3:                  howto manager.      (line 2279)
12778* BFD_RELOC_IP2K_PC_SKIP:                howto manager.      (line 2291)
12779* BFD_RELOC_IP2K_TEXT:                   howto manager.      (line 2294)
12780* BFD_RELOC_IQ2000_OFFSET_16:            howto manager.      (line 2847)
12781* BFD_RELOC_IQ2000_OFFSET_21:            howto manager.      (line 2848)
12782* BFD_RELOC_IQ2000_UHI16:                howto manager.      (line 2849)
12783* BFD_RELOC_LM32_16_GOT:                 howto manager.      (line 2954)
12784* BFD_RELOC_LM32_BRANCH:                 howto manager.      (line 2953)
12785* BFD_RELOC_LM32_CALL:                   howto manager.      (line 2952)
12786* BFD_RELOC_LM32_COPY:                   howto manager.      (line 2957)
12787* BFD_RELOC_LM32_GLOB_DAT:               howto manager.      (line 2958)
12788* BFD_RELOC_LM32_GOTOFF_HI16:            howto manager.      (line 2955)
12789* BFD_RELOC_LM32_GOTOFF_LO16:            howto manager.      (line 2956)
12790* BFD_RELOC_LM32_JMP_SLOT:               howto manager.      (line 2959)
12791* BFD_RELOC_LM32_RELATIVE:               howto manager.      (line 2960)
12792* BFD_RELOC_LO10:                        howto manager.      (line  121)
12793* BFD_RELOC_LO16:                        howto manager.      (line  361)
12794* BFD_RELOC_LO16_BASEREL:                howto manager.      (line  100)
12795* BFD_RELOC_LO16_GOTOFF:                 howto manager.      (line   56)
12796* BFD_RELOC_LO16_PCREL:                  howto manager.      (line  370)
12797* BFD_RELOC_LO16_PLTOFF:                 howto manager.      (line   68)
12798* BFD_RELOC_M32C_HI8:                    howto manager.      (line 1318)
12799* BFD_RELOC_M32C_RL_1ADDR:               howto manager.      (line 1320)
12800* BFD_RELOC_M32C_RL_2ADDR:               howto manager.      (line 1321)
12801* BFD_RELOC_M32C_RL_JUMP:                howto manager.      (line 1319)
12802* BFD_RELOC_M32R_10_PCREL:               howto manager.      (line 1328)
12803* BFD_RELOC_M32R_18_PCREL:               howto manager.      (line 1332)
12804* BFD_RELOC_M32R_24:                     howto manager.      (line 1324)
12805* BFD_RELOC_M32R_26_PCREL:               howto manager.      (line 1335)
12806* BFD_RELOC_M32R_26_PLTREL:              howto manager.      (line 1354)
12807* BFD_RELOC_M32R_COPY:                   howto manager.      (line 1355)
12808* BFD_RELOC_M32R_GLOB_DAT:               howto manager.      (line 1356)
12809* BFD_RELOC_M32R_GOT16_HI_SLO:           howto manager.      (line 1365)
12810* BFD_RELOC_M32R_GOT16_HI_ULO:           howto manager.      (line 1364)
12811* BFD_RELOC_M32R_GOT16_LO:               howto manager.      (line 1366)
12812* BFD_RELOC_M32R_GOT24:                  howto manager.      (line 1353)
12813* BFD_RELOC_M32R_GOTOFF:                 howto manager.      (line 1359)
12814* BFD_RELOC_M32R_GOTOFF_HI_SLO:          howto manager.      (line 1361)
12815* BFD_RELOC_M32R_GOTOFF_HI_ULO:          howto manager.      (line 1360)
12816* BFD_RELOC_M32R_GOTOFF_LO:              howto manager.      (line 1362)
12817* BFD_RELOC_M32R_GOTPC24:                howto manager.      (line 1363)
12818* BFD_RELOC_M32R_GOTPC_HI_SLO:           howto manager.      (line 1368)
12819* BFD_RELOC_M32R_GOTPC_HI_ULO:           howto manager.      (line 1367)
12820* BFD_RELOC_M32R_GOTPC_LO:               howto manager.      (line 1369)
12821* BFD_RELOC_M32R_HI16_SLO:               howto manager.      (line 1342)
12822* BFD_RELOC_M32R_HI16_ULO:               howto manager.      (line 1338)
12823* BFD_RELOC_M32R_JMP_SLOT:               howto manager.      (line 1357)
12824* BFD_RELOC_M32R_LO16:                   howto manager.      (line 1346)
12825* BFD_RELOC_M32R_RELATIVE:               howto manager.      (line 1358)
12826* BFD_RELOC_M32R_SDA16:                  howto manager.      (line 1349)
12827* BFD_RELOC_M68HC11_24:                  howto manager.      (line 2438)
12828* BFD_RELOC_M68HC11_3B:                  howto manager.      (line 2413)
12829* BFD_RELOC_M68HC11_HI8:                 howto manager.      (line 2405)
12830* BFD_RELOC_M68HC11_LO16:                howto manager.      (line 2427)
12831* BFD_RELOC_M68HC11_LO8:                 howto manager.      (line 2409)
12832* BFD_RELOC_M68HC11_PAGE:                howto manager.      (line 2433)
12833* BFD_RELOC_M68HC11_RL_GROUP:            howto manager.      (line 2422)
12834* BFD_RELOC_M68HC11_RL_JUMP:             howto manager.      (line 2416)
12835* BFD_RELOC_M68HC12_10_PCREL:            howto manager.      (line 2498)
12836* BFD_RELOC_M68HC12_16B:                 howto manager.      (line 2492)
12837* BFD_RELOC_M68HC12_5B:                  howto manager.      (line 2444)
12838* BFD_RELOC_M68HC12_9_PCREL:             howto manager.      (line 2495)
12839* BFD_RELOC_M68HC12_9B:                  howto manager.      (line 2489)
12840* BFD_RELOC_M68HC12_HI8XG:               howto manager.      (line 2505)
12841* BFD_RELOC_M68HC12_LO8XG:               howto manager.      (line 2501)
12842* BFD_RELOC_MACH_O_LOCAL_SECTDIFF:       howto manager.      (line 2967)
12843* BFD_RELOC_MACH_O_PAIR:                 howto manager.      (line 2970)
12844* BFD_RELOC_MACH_O_SECTDIFF:             howto manager.      (line 2963)
12845* BFD_RELOC_MACH_O_X86_64_BRANCH32:      howto manager.      (line 2973)
12846* BFD_RELOC_MACH_O_X86_64_BRANCH8:       howto manager.      (line 2974)
12847* BFD_RELOC_MACH_O_X86_64_GOT:           howto manager.      (line 2978)
12848* BFD_RELOC_MACH_O_X86_64_GOT_LOAD:      howto manager.      (line 2981)
12849* BFD_RELOC_MACH_O_X86_64_PCREL32_1:     howto manager.      (line 2991)
12850* BFD_RELOC_MACH_O_X86_64_PCREL32_2:     howto manager.      (line 2994)
12851* BFD_RELOC_MACH_O_X86_64_PCREL32_4:     howto manager.      (line 2997)
12852* BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32:  howto manager.      (line 2985)
12853* BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64:  howto manager.      (line 2988)
12854* BFD_RELOC_MCORE_PCREL_32:              howto manager.      (line 1799)
12855* BFD_RELOC_MCORE_PCREL_IMM11BY2:        howto manager.      (line 1797)
12856* BFD_RELOC_MCORE_PCREL_IMM4BY2:         howto manager.      (line 1798)
12857* BFD_RELOC_MCORE_PCREL_IMM8BY4:         howto manager.      (line 1796)
12858* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2:    howto manager.      (line 1800)
12859* BFD_RELOC_MCORE_RVA:                   howto manager.      (line 1801)
12860* BFD_RELOC_MEP_16:                      howto manager.      (line 1805)
12861* BFD_RELOC_MEP_32:                      howto manager.      (line 1806)
12862* BFD_RELOC_MEP_8:                       howto manager.      (line 1804)
12863* BFD_RELOC_MEP_ADDR24A4:                howto manager.      (line 1821)
12864* BFD_RELOC_MEP_GNU_VTENTRY:             howto manager.      (line 1823)
12865* BFD_RELOC_MEP_GNU_VTINHERIT:           howto manager.      (line 1822)
12866* BFD_RELOC_MEP_GPREL:                   howto manager.      (line 1815)
12867* BFD_RELOC_MEP_HI16S:                   howto manager.      (line 1814)
12868* BFD_RELOC_MEP_HI16U:                   howto manager.      (line 1813)
12869* BFD_RELOC_MEP_LOW16:                   howto manager.      (line 1812)
12870* BFD_RELOC_MEP_PCABS24A2:               howto manager.      (line 1811)
12871* BFD_RELOC_MEP_PCREL12A2:               howto manager.      (line 1808)
12872* BFD_RELOC_MEP_PCREL17A2:               howto manager.      (line 1809)
12873* BFD_RELOC_MEP_PCREL24A2:               howto manager.      (line 1810)
12874* BFD_RELOC_MEP_PCREL8A2:                howto manager.      (line 1807)
12875* BFD_RELOC_MEP_TPREL:                   howto manager.      (line 1816)
12876* BFD_RELOC_MEP_TPREL7:                  howto manager.      (line 1817)
12877* BFD_RELOC_MEP_TPREL7A2:                howto manager.      (line 1818)
12878* BFD_RELOC_MEP_TPREL7A4:                howto manager.      (line 1819)
12879* BFD_RELOC_MEP_UIMM24:                  howto manager.      (line 1820)
12880* BFD_RELOC_METAG_COPY:                  howto manager.      (line 1845)
12881* BFD_RELOC_METAG_GETSET_GOT:            howto manager.      (line 1837)
12882* BFD_RELOC_METAG_GETSET_GOTOFF:         howto manager.      (line 1836)
12883* BFD_RELOC_METAG_GETSETOFF:             howto manager.      (line 1829)
12884* BFD_RELOC_METAG_GLOB_DAT:              howto manager.      (line 1848)
12885* BFD_RELOC_METAG_GOTOFF:                howto manager.      (line 1843)
12886* BFD_RELOC_METAG_HI16_GOTOFF:           howto manager.      (line 1834)
12887* BFD_RELOC_METAG_HI16_GOTPC:            howto manager.      (line 1838)
12888* BFD_RELOC_METAG_HI16_PLT:              howto manager.      (line 1840)
12889* BFD_RELOC_METAG_HIADDR16:              howto manager.      (line 1826)
12890* BFD_RELOC_METAG_HIOG:                  howto manager.      (line 1830)
12891* BFD_RELOC_METAG_JMP_SLOT:              howto manager.      (line 1846)
12892* BFD_RELOC_METAG_LO16_GOTOFF:           howto manager.      (line 1835)
12893* BFD_RELOC_METAG_LO16_GOTPC:            howto manager.      (line 1839)
12894* BFD_RELOC_METAG_LO16_PLT:              howto manager.      (line 1841)
12895* BFD_RELOC_METAG_LOADDR16:              howto manager.      (line 1827)
12896* BFD_RELOC_METAG_LOOG:                  howto manager.      (line 1831)
12897* BFD_RELOC_METAG_PLT:                   howto manager.      (line 1844)
12898* BFD_RELOC_METAG_REL16:                 howto manager.      (line 1833)
12899* BFD_RELOC_METAG_REL8:                  howto manager.      (line 1832)
12900* BFD_RELOC_METAG_RELATIVE:              howto manager.      (line 1847)
12901* BFD_RELOC_METAG_RELBRANCH:             howto manager.      (line 1828)
12902* BFD_RELOC_METAG_RELBRANCH_PLT:         howto manager.      (line 1842)
12903* BFD_RELOC_METAG_TLS_DTPMOD:            howto manager.      (line 1859)
12904* BFD_RELOC_METAG_TLS_DTPOFF:            howto manager.      (line 1860)
12905* BFD_RELOC_METAG_TLS_GD:                howto manager.      (line 1849)
12906* BFD_RELOC_METAG_TLS_IE:                howto manager.      (line 1854)
12907* BFD_RELOC_METAG_TLS_IENONPIC:          howto manager.      (line 1855)
12908* BFD_RELOC_METAG_TLS_IENONPIC_HI16:     howto manager.      (line 1856)
12909* BFD_RELOC_METAG_TLS_IENONPIC_LO16:     howto manager.      (line 1857)
12910* BFD_RELOC_METAG_TLS_LDM:               howto manager.      (line 1850)
12911* BFD_RELOC_METAG_TLS_LDO:               howto manager.      (line 1853)
12912* BFD_RELOC_METAG_TLS_LDO_HI16:          howto manager.      (line 1851)
12913* BFD_RELOC_METAG_TLS_LDO_LO16:          howto manager.      (line 1852)
12914* BFD_RELOC_METAG_TLS_LE:                howto manager.      (line 1861)
12915* BFD_RELOC_METAG_TLS_LE_HI16:           howto manager.      (line 1862)
12916* BFD_RELOC_METAG_TLS_LE_LO16:           howto manager.      (line 1863)
12917* BFD_RELOC_METAG_TLS_TPOFF:             howto manager.      (line 1858)
12918* BFD_RELOC_MICROBLAZE_32_GOTOFF:        howto manager.      (line 3044)
12919* BFD_RELOC_MICROBLAZE_32_LO:            howto manager.      (line 3000)
12920* BFD_RELOC_MICROBLAZE_32_LO_PCREL:      howto manager.      (line 3004)
12921* BFD_RELOC_MICROBLAZE_32_ROSDA:         howto manager.      (line 3008)
12922* BFD_RELOC_MICROBLAZE_32_RWSDA:         howto manager.      (line 3012)
12923* BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM:    howto manager.      (line 3016)
12924* BFD_RELOC_MICROBLAZE_32_TLSDTPMOD:     howto manager.      (line 3065)
12925* BFD_RELOC_MICROBLAZE_32_TLSDTPREL:     howto manager.      (line 3068)
12926* BFD_RELOC_MICROBLAZE_64_GOT:           howto manager.      (line 3030)
12927* BFD_RELOC_MICROBLAZE_64_GOTOFF:        howto manager.      (line 3039)
12928* BFD_RELOC_MICROBLAZE_64_GOTPC:         howto manager.      (line 3025)
12929* BFD_RELOC_MICROBLAZE_64_NONE:          howto manager.      (line 3020)
12930* BFD_RELOC_MICROBLAZE_64_PLT:           howto manager.      (line 3034)
12931* BFD_RELOC_MICROBLAZE_64_TLS:           howto manager.      (line 3052)
12932* BFD_RELOC_MICROBLAZE_64_TLSDTPREL:     howto manager.      (line 3071)
12933* BFD_RELOC_MICROBLAZE_64_TLSGD:         howto manager.      (line 3055)
12934* BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL:   howto manager.      (line 3075)
12935* BFD_RELOC_MICROBLAZE_64_TLSLD:         howto manager.      (line 3060)
12936* BFD_RELOC_MICROBLAZE_64_TLSTPREL:      howto manager.      (line 3079)
12937* BFD_RELOC_MICROBLAZE_COPY:             howto manager.      (line 3048)
12938* BFD_RELOC_MICROMIPS_10_PCREL_S1:       howto manager.      (line  404)
12939* BFD_RELOC_MICROMIPS_16_PCREL_S1:       howto manager.      (line  405)
12940* BFD_RELOC_MICROMIPS_7_PCREL_S1:        howto manager.      (line  403)
12941* BFD_RELOC_MICROMIPS_CALL16:            howto manager.      (line  423)
12942* BFD_RELOC_MICROMIPS_CALL_HI16:         howto manager.      (line  429)
12943* BFD_RELOC_MICROMIPS_CALL_LO16:         howto manager.      (line  431)
12944* BFD_RELOC_MICROMIPS_GOT16:             howto manager.      (line  421)
12945* BFD_RELOC_MICROMIPS_GOT_DISP:          howto manager.      (line  439)
12946* BFD_RELOC_MICROMIPS_GOT_HI16:          howto manager.      (line  425)
12947* BFD_RELOC_MICROMIPS_GOT_LO16:          howto manager.      (line  427)
12948* BFD_RELOC_MICROMIPS_GOT_OFST:          howto manager.      (line  437)
12949* BFD_RELOC_MICROMIPS_GOT_PAGE:          howto manager.      (line  435)
12950* BFD_RELOC_MICROMIPS_GPREL16:           howto manager.      (line  414)
12951* BFD_RELOC_MICROMIPS_HI16:              howto manager.      (line  415)
12952* BFD_RELOC_MICROMIPS_HI16_S:            howto manager.      (line  416)
12953* BFD_RELOC_MICROMIPS_HIGHER:            howto manager.      (line  448)
12954* BFD_RELOC_MICROMIPS_HIGHEST:           howto manager.      (line  446)
12955* BFD_RELOC_MICROMIPS_JALR:              howto manager.      (line  454)
12956* BFD_RELOC_MICROMIPS_JMP:               howto manager.      (line  343)
12957* BFD_RELOC_MICROMIPS_LITERAL:           howto manager.      (line  400)
12958* BFD_RELOC_MICROMIPS_LO16:              howto manager.      (line  417)
12959* BFD_RELOC_MICROMIPS_SCN_DISP:          howto manager.      (line  450)
12960* BFD_RELOC_MICROMIPS_SUB:               howto manager.      (line  433)
12961* BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16:   howto manager.      (line  464)
12962* BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16:   howto manager.      (line  466)
12963* BFD_RELOC_MICROMIPS_TLS_GD:            howto manager.      (line  460)
12964* BFD_RELOC_MICROMIPS_TLS_GOTTPREL:      howto manager.      (line  468)
12965* BFD_RELOC_MICROMIPS_TLS_LDM:           howto manager.      (line  462)
12966* BFD_RELOC_MICROMIPS_TLS_TPREL_HI16:    howto manager.      (line  472)
12967* BFD_RELOC_MICROMIPS_TLS_TPREL_LO16:    howto manager.      (line  474)
12968* BFD_RELOC_MIPS16_CALL16:               howto manager.      (line  374)
12969* BFD_RELOC_MIPS16_GOT16:                howto manager.      (line  373)
12970* BFD_RELOC_MIPS16_GPREL:                howto manager.      (line  349)
12971* BFD_RELOC_MIPS16_HI16:                 howto manager.      (line  378)
12972* BFD_RELOC_MIPS16_HI16_S:               howto manager.      (line  381)
12973* BFD_RELOC_MIPS16_JMP:                  howto manager.      (line  346)
12974* BFD_RELOC_MIPS16_LO16:                 howto manager.      (line  387)
12975* BFD_RELOC_MIPS16_TLS_DTPREL_HI16:      howto manager.      (line  392)
12976* BFD_RELOC_MIPS16_TLS_DTPREL_LO16:      howto manager.      (line  393)
12977* BFD_RELOC_MIPS16_TLS_GD:               howto manager.      (line  390)
12978* BFD_RELOC_MIPS16_TLS_GOTTPREL:         howto manager.      (line  394)
12979* BFD_RELOC_MIPS16_TLS_LDM:              howto manager.      (line  391)
12980* BFD_RELOC_MIPS16_TLS_TPREL_HI16:       howto manager.      (line  395)
12981* BFD_RELOC_MIPS16_TLS_TPREL_LO16:       howto manager.      (line  396)
12982* BFD_RELOC_MIPS_18_PCREL_S3:            howto manager.      (line  410)
12983* BFD_RELOC_MIPS_19_PCREL_S2:            howto manager.      (line  411)
12984* BFD_RELOC_MIPS_21_PCREL_S2:            howto manager.      (line  408)
12985* BFD_RELOC_MIPS_26_PCREL_S2:            howto manager.      (line  409)
12986* BFD_RELOC_MIPS_CALL16:                 howto manager.      (line  422)
12987* BFD_RELOC_MIPS_CALL_HI16:              howto manager.      (line  428)
12988* BFD_RELOC_MIPS_CALL_LO16:              howto manager.      (line  430)
12989* BFD_RELOC_MIPS_COPY:                   howto manager.      (line  478)
12990* BFD_RELOC_MIPS_DELETE:                 howto manager.      (line  444)
12991* BFD_RELOC_MIPS_EH:                     howto manager.      (line  475)
12992* BFD_RELOC_MIPS_GOT16:                  howto manager.      (line  420)
12993* BFD_RELOC_MIPS_GOT_DISP:               howto manager.      (line  438)
12994* BFD_RELOC_MIPS_GOT_HI16:               howto manager.      (line  424)
12995* BFD_RELOC_MIPS_GOT_LO16:               howto manager.      (line  426)
12996* BFD_RELOC_MIPS_GOT_OFST:               howto manager.      (line  436)
12997* BFD_RELOC_MIPS_GOT_PAGE:               howto manager.      (line  434)
12998* BFD_RELOC_MIPS_HIGHER:                 howto manager.      (line  447)
12999* BFD_RELOC_MIPS_HIGHEST:                howto manager.      (line  445)
13000* BFD_RELOC_MIPS_INSERT_A:               howto manager.      (line  442)
13001* BFD_RELOC_MIPS_INSERT_B:               howto manager.      (line  443)
13002* BFD_RELOC_MIPS_JALR:                   howto manager.      (line  453)
13003* BFD_RELOC_MIPS_JMP:                    howto manager.      (line  342)
13004* BFD_RELOC_MIPS_JUMP_SLOT:              howto manager.      (line  479)
13005* BFD_RELOC_MIPS_LITERAL:                howto manager.      (line  399)
13006* BFD_RELOC_MIPS_REL16:                  howto manager.      (line  451)
13007* BFD_RELOC_MIPS_RELGOT:                 howto manager.      (line  452)
13008* BFD_RELOC_MIPS_SCN_DISP:               howto manager.      (line  449)
13009* BFD_RELOC_MIPS_SHIFT5:                 howto manager.      (line  440)
13010* BFD_RELOC_MIPS_SHIFT6:                 howto manager.      (line  441)
13011* BFD_RELOC_MIPS_SUB:                    howto manager.      (line  432)
13012* BFD_RELOC_MIPS_TLS_DTPMOD32:           howto manager.      (line  455)
13013* BFD_RELOC_MIPS_TLS_DTPMOD64:           howto manager.      (line  457)
13014* BFD_RELOC_MIPS_TLS_DTPREL32:           howto manager.      (line  456)
13015* BFD_RELOC_MIPS_TLS_DTPREL64:           howto manager.      (line  458)
13016* BFD_RELOC_MIPS_TLS_DTPREL_HI16:        howto manager.      (line  463)
13017* BFD_RELOC_MIPS_TLS_DTPREL_LO16:        howto manager.      (line  465)
13018* BFD_RELOC_MIPS_TLS_GD:                 howto manager.      (line  459)
13019* BFD_RELOC_MIPS_TLS_GOTTPREL:           howto manager.      (line  467)
13020* BFD_RELOC_MIPS_TLS_LDM:                howto manager.      (line  461)
13021* BFD_RELOC_MIPS_TLS_TPREL32:            howto manager.      (line  469)
13022* BFD_RELOC_MIPS_TLS_TPREL64:            howto manager.      (line  470)
13023* BFD_RELOC_MIPS_TLS_TPREL_HI16:         howto manager.      (line  471)
13024* BFD_RELOC_MIPS_TLS_TPREL_LO16:         howto manager.      (line  473)
13025* BFD_RELOC_MMIX_ADDR19:                 howto manager.      (line 1892)
13026* BFD_RELOC_MMIX_ADDR27:                 howto manager.      (line 1896)
13027* BFD_RELOC_MMIX_BASE_PLUS_OFFSET:       howto manager.      (line 1908)
13028* BFD_RELOC_MMIX_CBRANCH:                howto manager.      (line 1872)
13029* BFD_RELOC_MMIX_CBRANCH_1:              howto manager.      (line 1874)
13030* BFD_RELOC_MMIX_CBRANCH_2:              howto manager.      (line 1875)
13031* BFD_RELOC_MMIX_CBRANCH_3:              howto manager.      (line 1876)
13032* BFD_RELOC_MMIX_CBRANCH_J:              howto manager.      (line 1873)
13033* BFD_RELOC_MMIX_GETA:                   howto manager.      (line 1866)
13034* BFD_RELOC_MMIX_GETA_1:                 howto manager.      (line 1867)
13035* BFD_RELOC_MMIX_GETA_2:                 howto manager.      (line 1868)
13036* BFD_RELOC_MMIX_GETA_3:                 howto manager.      (line 1869)
13037* BFD_RELOC_MMIX_JMP:                    howto manager.      (line 1886)
13038* BFD_RELOC_MMIX_JMP_1:                  howto manager.      (line 1887)
13039* BFD_RELOC_MMIX_JMP_2:                  howto manager.      (line 1888)
13040* BFD_RELOC_MMIX_JMP_3:                  howto manager.      (line 1889)
13041* BFD_RELOC_MMIX_LOCAL:                  howto manager.      (line 1912)
13042* BFD_RELOC_MMIX_PUSHJ:                  howto manager.      (line 1879)
13043* BFD_RELOC_MMIX_PUSHJ_1:                howto manager.      (line 1880)
13044* BFD_RELOC_MMIX_PUSHJ_2:                howto manager.      (line 1881)
13045* BFD_RELOC_MMIX_PUSHJ_3:                howto manager.      (line 1882)
13046* BFD_RELOC_MMIX_PUSHJ_STUBBABLE:        howto manager.      (line 1883)
13047* BFD_RELOC_MMIX_REG:                    howto manager.      (line 1904)
13048* BFD_RELOC_MMIX_REG_OR_BYTE:            howto manager.      (line 1900)
13049* BFD_RELOC_MN10300_16_PCREL:            howto manager.      (line  583)
13050* BFD_RELOC_MN10300_32_PCREL:            howto manager.      (line  579)
13051* BFD_RELOC_MN10300_ALIGN:               howto manager.      (line  564)
13052* BFD_RELOC_MN10300_COPY:                howto manager.      (line  547)
13053* BFD_RELOC_MN10300_GLOB_DAT:            howto manager.      (line  550)
13054* BFD_RELOC_MN10300_GOT16:               howto manager.      (line  543)
13055* BFD_RELOC_MN10300_GOT24:               howto manager.      (line  539)
13056* BFD_RELOC_MN10300_GOT32:               howto manager.      (line  535)
13057* BFD_RELOC_MN10300_GOTOFF24:            howto manager.      (line  532)
13058* BFD_RELOC_MN10300_JMP_SLOT:            howto manager.      (line  553)
13059* BFD_RELOC_MN10300_RELATIVE:            howto manager.      (line  556)
13060* BFD_RELOC_MN10300_SYM_DIFF:            howto manager.      (line  559)
13061* BFD_RELOC_MN10300_TLS_DTPMOD:          howto manager.      (line  574)
13062* BFD_RELOC_MN10300_TLS_DTPOFF:          howto manager.      (line  575)
13063* BFD_RELOC_MN10300_TLS_GD:              howto manager.      (line  568)
13064* BFD_RELOC_MN10300_TLS_GOTIE:           howto manager.      (line  571)
13065* BFD_RELOC_MN10300_TLS_IE:              howto manager.      (line  572)
13066* BFD_RELOC_MN10300_TLS_LD:              howto manager.      (line  569)
13067* BFD_RELOC_MN10300_TLS_LDO:             howto manager.      (line  570)
13068* BFD_RELOC_MN10300_TLS_LE:              howto manager.      (line  573)
13069* BFD_RELOC_MN10300_TLS_TPOFF:           howto manager.      (line  576)
13070* BFD_RELOC_MOXIE_10_PCREL:              howto manager.      (line  482)
13071* BFD_RELOC_MSP430_10_PCREL:             howto manager.      (line 2769)
13072* BFD_RELOC_MSP430_16:                   howto manager.      (line 2771)
13073* BFD_RELOC_MSP430_16_BYTE:              howto manager.      (line 2773)
13074* BFD_RELOC_MSP430_16_PCREL:             howto manager.      (line 2770)
13075* BFD_RELOC_MSP430_16_PCREL_BYTE:        howto manager.      (line 2772)
13076* BFD_RELOC_MSP430_2X_PCREL:             howto manager.      (line 2774)
13077* BFD_RELOC_MSP430_ABS8:                 howto manager.      (line 2776)
13078* BFD_RELOC_MSP430_ABS_HI16:             howto manager.      (line 2788)
13079* BFD_RELOC_MSP430_PREL31:               howto manager.      (line 2789)
13080* BFD_RELOC_MSP430_RL_PCREL:             howto manager.      (line 2775)
13081* BFD_RELOC_MSP430_SYM_DIFF:             howto manager.      (line 2790)
13082* BFD_RELOC_MSP430X_ABS16:               howto manager.      (line 2787)
13083* BFD_RELOC_MSP430X_ABS20_ADR_DST:       howto manager.      (line 2784)
13084* BFD_RELOC_MSP430X_ABS20_ADR_SRC:       howto manager.      (line 2783)
13085* BFD_RELOC_MSP430X_ABS20_EXT_DST:       howto manager.      (line 2781)
13086* BFD_RELOC_MSP430X_ABS20_EXT_ODST:      howto manager.      (line 2782)
13087* BFD_RELOC_MSP430X_ABS20_EXT_SRC:       howto manager.      (line 2780)
13088* BFD_RELOC_MSP430X_PCR16:               howto manager.      (line 2785)
13089* BFD_RELOC_MSP430X_PCR20_CALL:          howto manager.      (line 2786)
13090* BFD_RELOC_MSP430X_PCR20_EXT_DST:       howto manager.      (line 2778)
13091* BFD_RELOC_MSP430X_PCR20_EXT_ODST:      howto manager.      (line 2779)
13092* BFD_RELOC_MSP430X_PCR20_EXT_SRC:       howto manager.      (line 2777)
13093* BFD_RELOC_MT_GNU_VTENTRY:              howto manager.      (line 2763)
13094* BFD_RELOC_MT_GNU_VTINHERIT:            howto manager.      (line 2760)
13095* BFD_RELOC_MT_HI16:                     howto manager.      (line 2754)
13096* BFD_RELOC_MT_LO16:                     howto manager.      (line 2757)
13097* BFD_RELOC_MT_PC16:                     howto manager.      (line 2751)
13098* BFD_RELOC_MT_PCINSN8:                  howto manager.      (line 2766)
13099* BFD_RELOC_NDS32_10_UPCREL:             howto manager.      (line 1521)
13100* BFD_RELOC_NDS32_10IFCU_PCREL:          howto manager.      (line 1554)
13101* BFD_RELOC_NDS32_15_FIXED:              howto manager.      (line 1475)
13102* BFD_RELOC_NDS32_15_PCREL:              howto manager.      (line 1383)
13103* BFD_RELOC_NDS32_17_FIXED:              howto manager.      (line 1476)
13104* BFD_RELOC_NDS32_17_PCREL:              howto manager.      (line 1386)
13105* BFD_RELOC_NDS32_17IFC_PCREL:           howto manager.      (line 1553)
13106* BFD_RELOC_NDS32_20:                    howto manager.      (line 1372)
13107* BFD_RELOC_NDS32_25_ABS:                howto manager.      (line 1548)
13108* BFD_RELOC_NDS32_25_FIXED:              howto manager.      (line 1477)
13109* BFD_RELOC_NDS32_25_PCREL:              howto manager.      (line 1389)
13110* BFD_RELOC_NDS32_25_PLTREL:             howto manager.      (line 1450)
13111* BFD_RELOC_NDS32_5:                     howto manager.      (line 1518)
13112* BFD_RELOC_NDS32_9_FIXED:               howto manager.      (line 1474)
13113* BFD_RELOC_NDS32_9_PCREL:               howto manager.      (line 1375)
13114* BFD_RELOC_NDS32_9_PLTREL:              howto manager.      (line 1449)
13115* BFD_RELOC_NDS32_COPY:                  howto manager.      (line 1451)
13116* BFD_RELOC_NDS32_DATA:                  howto manager.      (line 1551)
13117* BFD_RELOC_NDS32_DIFF16:                howto manager.      (line 1542)
13118* BFD_RELOC_NDS32_DIFF32:                howto manager.      (line 1543)
13119* BFD_RELOC_NDS32_DIFF8:                 howto manager.      (line 1541)
13120* BFD_RELOC_NDS32_DIFF_ULEB128:          howto manager.      (line 1544)
13121* BFD_RELOC_NDS32_DWARF2_LEB:            howto manager.      (line 1501)
13122* BFD_RELOC_NDS32_DWARF2_OP1:            howto manager.      (line 1499)
13123* BFD_RELOC_NDS32_DWARF2_OP2:            howto manager.      (line 1500)
13124* BFD_RELOC_NDS32_EMPTY:                 howto manager.      (line 1545)
13125* BFD_RELOC_NDS32_GLOB_DAT:              howto manager.      (line 1452)
13126* BFD_RELOC_NDS32_GOT15S2:               howto manager.      (line 1514)
13127* BFD_RELOC_NDS32_GOT17S2:               howto manager.      (line 1515)
13128* BFD_RELOC_NDS32_GOT20:                 howto manager.      (line 1448)
13129* BFD_RELOC_NDS32_GOT_HI20:              howto manager.      (line 1459)
13130* BFD_RELOC_NDS32_GOT_LO12:              howto manager.      (line 1460)
13131* BFD_RELOC_NDS32_GOT_LO15:              howto manager.      (line 1510)
13132* BFD_RELOC_NDS32_GOT_LO19:              howto manager.      (line 1511)
13133* BFD_RELOC_NDS32_GOT_SUFF:              howto manager.      (line 1529)
13134* BFD_RELOC_NDS32_GOTOFF:                howto manager.      (line 1455)
13135* BFD_RELOC_NDS32_GOTOFF_HI20:           howto manager.      (line 1456)
13136* BFD_RELOC_NDS32_GOTOFF_LO12:           howto manager.      (line 1457)
13137* BFD_RELOC_NDS32_GOTOFF_LO15:           howto manager.      (line 1512)
13138* BFD_RELOC_NDS32_GOTOFF_LO19:           howto manager.      (line 1513)
13139* BFD_RELOC_NDS32_GOTOFF_SUFF:           howto manager.      (line 1530)
13140* BFD_RELOC_NDS32_GOTPC20:               howto manager.      (line 1458)
13141* BFD_RELOC_NDS32_GOTPC_HI20:            howto manager.      (line 1461)
13142* BFD_RELOC_NDS32_GOTPC_LO12:            howto manager.      (line 1462)
13143* BFD_RELOC_NDS32_GOTTPOFF:              howto manager.      (line 1562)
13144* BFD_RELOC_NDS32_HI20:                  howto manager.      (line 1392)
13145* BFD_RELOC_NDS32_INSN16:                howto manager.      (line 1465)
13146* BFD_RELOC_NDS32_JMP_SLOT:              howto manager.      (line 1453)
13147* BFD_RELOC_NDS32_LABEL:                 howto manager.      (line 1466)
13148* BFD_RELOC_NDS32_LO12S0:                howto manager.      (line 1408)
13149* BFD_RELOC_NDS32_LO12S0_ORI:            howto manager.      (line 1412)
13150* BFD_RELOC_NDS32_LO12S1:                howto manager.      (line 1404)
13151* BFD_RELOC_NDS32_LO12S2:                howto manager.      (line 1400)
13152* BFD_RELOC_NDS32_LO12S2_DP:             howto manager.      (line 1495)
13153* BFD_RELOC_NDS32_LO12S2_SP:             howto manager.      (line 1496)
13154* BFD_RELOC_NDS32_LO12S3:                howto manager.      (line 1396)
13155* BFD_RELOC_NDS32_LOADSTORE:             howto manager.      (line 1473)
13156* BFD_RELOC_NDS32_LONGCALL1:             howto manager.      (line 1467)
13157* BFD_RELOC_NDS32_LONGCALL2:             howto manager.      (line 1468)
13158* BFD_RELOC_NDS32_LONGCALL3:             howto manager.      (line 1469)
13159* BFD_RELOC_NDS32_LONGCALL4:             howto manager.      (line 1478)
13160* BFD_RELOC_NDS32_LONGCALL5:             howto manager.      (line 1479)
13161* BFD_RELOC_NDS32_LONGCALL6:             howto manager.      (line 1480)
13162* BFD_RELOC_NDS32_LONGJUMP1:             howto manager.      (line 1470)
13163* BFD_RELOC_NDS32_LONGJUMP2:             howto manager.      (line 1471)
13164* BFD_RELOC_NDS32_LONGJUMP3:             howto manager.      (line 1472)
13165* BFD_RELOC_NDS32_LONGJUMP4:             howto manager.      (line 1481)
13166* BFD_RELOC_NDS32_LONGJUMP5:             howto manager.      (line 1482)
13167* BFD_RELOC_NDS32_LONGJUMP6:             howto manager.      (line 1483)
13168* BFD_RELOC_NDS32_LONGJUMP7:             howto manager.      (line 1484)
13169* BFD_RELOC_NDS32_MINUEND:               howto manager.      (line 1539)
13170* BFD_RELOC_NDS32_MULCALL_SUFF:          howto manager.      (line 1532)
13171* BFD_RELOC_NDS32_PLT_GOT_SUFF:          howto manager.      (line 1531)
13172* BFD_RELOC_NDS32_PLT_GOTREL_HI20:       howto manager.      (line 1489)
13173* BFD_RELOC_NDS32_PLT_GOTREL_LO12:       howto manager.      (line 1490)
13174* BFD_RELOC_NDS32_PLT_GOTREL_LO15:       howto manager.      (line 1508)
13175* BFD_RELOC_NDS32_PLT_GOTREL_LO19:       howto manager.      (line 1509)
13176* BFD_RELOC_NDS32_PLT_GOTREL_LO20:       howto manager.      (line 1507)
13177* BFD_RELOC_NDS32_PLTBLOCK:              howto manager.      (line 1536)
13178* BFD_RELOC_NDS32_PLTREL_HI20:           howto manager.      (line 1487)
13179* BFD_RELOC_NDS32_PLTREL_LO12:           howto manager.      (line 1488)
13180* BFD_RELOC_NDS32_PTR:                   howto manager.      (line 1533)
13181* BFD_RELOC_NDS32_PTR_COUNT:             howto manager.      (line 1534)
13182* BFD_RELOC_NDS32_PTR_RESOLVED:          howto manager.      (line 1535)
13183* BFD_RELOC_NDS32_RELATIVE:              howto manager.      (line 1454)
13184* BFD_RELOC_NDS32_RELAX_ENTRY:           howto manager.      (line 1528)
13185* BFD_RELOC_NDS32_RELAX_REGION_BEGIN:    howto manager.      (line 1537)
13186* BFD_RELOC_NDS32_RELAX_REGION_END:      howto manager.      (line 1538)
13187* BFD_RELOC_NDS32_SDA12S2_DP:            howto manager.      (line 1493)
13188* BFD_RELOC_NDS32_SDA12S2_SP:            howto manager.      (line 1494)
13189* BFD_RELOC_NDS32_SDA15S0:               howto manager.      (line 1428)
13190* BFD_RELOC_NDS32_SDA15S1:               howto manager.      (line 1424)
13191* BFD_RELOC_NDS32_SDA15S2:               howto manager.      (line 1420)
13192* BFD_RELOC_NDS32_SDA15S3:               howto manager.      (line 1416)
13193* BFD_RELOC_NDS32_SDA16S3:               howto manager.      (line 1432)
13194* BFD_RELOC_NDS32_SDA17S2:               howto manager.      (line 1436)
13195* BFD_RELOC_NDS32_SDA18S1:               howto manager.      (line 1440)
13196* BFD_RELOC_NDS32_SDA19S0:               howto manager.      (line 1444)
13197* BFD_RELOC_NDS32_SDA_FP7U2_RELA:        howto manager.      (line 1525)
13198* BFD_RELOC_NDS32_SUBTRAHEND:            howto manager.      (line 1540)
13199* BFD_RELOC_NDS32_TLS_IE_HI20:           howto manager.      (line 1563)
13200* BFD_RELOC_NDS32_TLS_IE_LO12S2:         howto manager.      (line 1564)
13201* BFD_RELOC_NDS32_TLS_LE_15S0:           howto manager.      (line 1567)
13202* BFD_RELOC_NDS32_TLS_LE_15S1:           howto manager.      (line 1568)
13203* BFD_RELOC_NDS32_TLS_LE_15S2:           howto manager.      (line 1569)
13204* BFD_RELOC_NDS32_TLS_LE_20:             howto manager.      (line 1566)
13205* BFD_RELOC_NDS32_TLS_LE_ADD:            howto manager.      (line 1560)
13206* BFD_RELOC_NDS32_TLS_LE_HI20:           howto manager.      (line 1558)
13207* BFD_RELOC_NDS32_TLS_LE_LO12:           howto manager.      (line 1559)
13208* BFD_RELOC_NDS32_TLS_LE_LS:             howto manager.      (line 1561)
13209* BFD_RELOC_NDS32_TLS_TPOFF:             howto manager.      (line 1565)
13210* BFD_RELOC_NDS32_TPOFF:                 howto manager.      (line 1557)
13211* BFD_RELOC_NDS32_TRAN:                  howto manager.      (line 1552)
13212* BFD_RELOC_NDS32_UPDATE_TA:             howto manager.      (line 1504)
13213* BFD_RELOC_NDS32_WORD_9_PCREL:          howto manager.      (line 1379)
13214* BFD_RELOC_NIOS2_ALIGN:                 howto manager.      (line 2807)
13215* BFD_RELOC_NIOS2_CACHE_OPX:             howto manager.      (line 2797)
13216* BFD_RELOC_NIOS2_CALL16:                howto manager.      (line 2809)
13217* BFD_RELOC_NIOS2_CALL26:                howto manager.      (line 2795)
13218* BFD_RELOC_NIOS2_CALL26_NOAT:           howto manager.      (line 2827)
13219* BFD_RELOC_NIOS2_CALL_HA:               howto manager.      (line 2831)
13220* BFD_RELOC_NIOS2_CALL_LO:               howto manager.      (line 2830)
13221* BFD_RELOC_NIOS2_CALLR:                 howto manager.      (line 2806)
13222* BFD_RELOC_NIOS2_CJMP:                  howto manager.      (line 2805)
13223* BFD_RELOC_NIOS2_COPY:                  howto manager.      (line 2822)
13224* BFD_RELOC_NIOS2_GLOB_DAT:              howto manager.      (line 2823)
13225* BFD_RELOC_NIOS2_GOT16:                 howto manager.      (line 2808)
13226* BFD_RELOC_NIOS2_GOT_HA:                howto manager.      (line 2829)
13227* BFD_RELOC_NIOS2_GOT_LO:                howto manager.      (line 2828)
13228* BFD_RELOC_NIOS2_GOTOFF:                howto manager.      (line 2826)
13229* BFD_RELOC_NIOS2_GOTOFF_HA:             howto manager.      (line 2811)
13230* BFD_RELOC_NIOS2_GOTOFF_LO:             howto manager.      (line 2810)
13231* BFD_RELOC_NIOS2_GPREL:                 howto manager.      (line 2803)
13232* BFD_RELOC_NIOS2_HI16:                  howto manager.      (line 2800)
13233* BFD_RELOC_NIOS2_HIADJ16:               howto manager.      (line 2802)
13234* BFD_RELOC_NIOS2_IMM5:                  howto manager.      (line 2796)
13235* BFD_RELOC_NIOS2_IMM6:                  howto manager.      (line 2798)
13236* BFD_RELOC_NIOS2_IMM8:                  howto manager.      (line 2799)
13237* BFD_RELOC_NIOS2_JUMP_SLOT:             howto manager.      (line 2824)
13238* BFD_RELOC_NIOS2_LO16:                  howto manager.      (line 2801)
13239* BFD_RELOC_NIOS2_PCREL_HA:              howto manager.      (line 2813)
13240* BFD_RELOC_NIOS2_PCREL_LO:              howto manager.      (line 2812)
13241* BFD_RELOC_NIOS2_R2_F1I5_2:             howto manager.      (line 2841)
13242* BFD_RELOC_NIOS2_R2_I10_1_PCREL:        howto manager.      (line 2833)
13243* BFD_RELOC_NIOS2_R2_L5I4X1:             howto manager.      (line 2842)
13244* BFD_RELOC_NIOS2_R2_S12:                howto manager.      (line 2832)
13245* BFD_RELOC_NIOS2_R2_T1I7_1_PCREL:       howto manager.      (line 2834)
13246* BFD_RELOC_NIOS2_R2_T1I7_2:             howto manager.      (line 2835)
13247* BFD_RELOC_NIOS2_R2_T1X1I6:             howto manager.      (line 2843)
13248* BFD_RELOC_NIOS2_R2_T1X1I6_2:           howto manager.      (line 2844)
13249* BFD_RELOC_NIOS2_R2_T2I4:               howto manager.      (line 2836)
13250* BFD_RELOC_NIOS2_R2_T2I4_1:             howto manager.      (line 2837)
13251* BFD_RELOC_NIOS2_R2_T2I4_2:             howto manager.      (line 2838)
13252* BFD_RELOC_NIOS2_R2_X1I7_2:             howto manager.      (line 2839)
13253* BFD_RELOC_NIOS2_R2_X2L5:               howto manager.      (line 2840)
13254* BFD_RELOC_NIOS2_RELATIVE:              howto manager.      (line 2825)
13255* BFD_RELOC_NIOS2_S16:                   howto manager.      (line 2793)
13256* BFD_RELOC_NIOS2_TLS_DTPMOD:            howto manager.      (line 2819)
13257* BFD_RELOC_NIOS2_TLS_DTPREL:            howto manager.      (line 2820)
13258* BFD_RELOC_NIOS2_TLS_GD16:              howto manager.      (line 2814)
13259* BFD_RELOC_NIOS2_TLS_IE16:              howto manager.      (line 2817)
13260* BFD_RELOC_NIOS2_TLS_LDM16:             howto manager.      (line 2815)
13261* BFD_RELOC_NIOS2_TLS_LDO16:             howto manager.      (line 2816)
13262* BFD_RELOC_NIOS2_TLS_LE16:              howto manager.      (line 2818)
13263* BFD_RELOC_NIOS2_TLS_TPREL:             howto manager.      (line 2821)
13264* BFD_RELOC_NIOS2_U16:                   howto manager.      (line 2794)
13265* BFD_RELOC_NIOS2_UJMP:                  howto manager.      (line 2804)
13266* BFD_RELOC_NONE:                        howto manager.      (line  135)
13267* BFD_RELOC_NS32K_DISP_16:               howto manager.      (line  654)
13268* BFD_RELOC_NS32K_DISP_16_PCREL:         howto manager.      (line  657)
13269* BFD_RELOC_NS32K_DISP_32:               howto manager.      (line  655)
13270* BFD_RELOC_NS32K_DISP_32_PCREL:         howto manager.      (line  658)
13271* BFD_RELOC_NS32K_DISP_8:                howto manager.      (line  653)
13272* BFD_RELOC_NS32K_DISP_8_PCREL:          howto manager.      (line  656)
13273* BFD_RELOC_NS32K_IMM_16:                howto manager.      (line  648)
13274* BFD_RELOC_NS32K_IMM_16_PCREL:          howto manager.      (line  651)
13275* BFD_RELOC_NS32K_IMM_32:                howto manager.      (line  649)
13276* BFD_RELOC_NS32K_IMM_32_PCREL:          howto manager.      (line  652)
13277* BFD_RELOC_NS32K_IMM_8:                 howto manager.      (line  647)
13278* BFD_RELOC_NS32K_IMM_8_PCREL:           howto manager.      (line  650)
13279* BFD_RELOC_OR1K_COPY:                   howto manager.      (line 2704)
13280* BFD_RELOC_OR1K_GLOB_DAT:               howto manager.      (line 2705)
13281* BFD_RELOC_OR1K_GOT16:                  howto manager.      (line 2700)
13282* BFD_RELOC_OR1K_GOTOFF_HI16:            howto manager.      (line 2702)
13283* BFD_RELOC_OR1K_GOTOFF_LO16:            howto manager.      (line 2703)
13284* BFD_RELOC_OR1K_GOTPC_HI16:             howto manager.      (line 2698)
13285* BFD_RELOC_OR1K_GOTPC_LO16:             howto manager.      (line 2699)
13286* BFD_RELOC_OR1K_JMP_SLOT:               howto manager.      (line 2706)
13287* BFD_RELOC_OR1K_PLT26:                  howto manager.      (line 2701)
13288* BFD_RELOC_OR1K_REL_26:                 howto manager.      (line 2697)
13289* BFD_RELOC_OR1K_RELATIVE:               howto manager.      (line 2707)
13290* BFD_RELOC_OR1K_TLS_DTPMOD:             howto manager.      (line 2720)
13291* BFD_RELOC_OR1K_TLS_DTPOFF:             howto manager.      (line 2719)
13292* BFD_RELOC_OR1K_TLS_GD_HI16:            howto manager.      (line 2708)
13293* BFD_RELOC_OR1K_TLS_GD_LO16:            howto manager.      (line 2709)
13294* BFD_RELOC_OR1K_TLS_IE_HI16:            howto manager.      (line 2714)
13295* BFD_RELOC_OR1K_TLS_IE_LO16:            howto manager.      (line 2715)
13296* BFD_RELOC_OR1K_TLS_LDM_HI16:           howto manager.      (line 2710)
13297* BFD_RELOC_OR1K_TLS_LDM_LO16:           howto manager.      (line 2711)
13298* BFD_RELOC_OR1K_TLS_LDO_HI16:           howto manager.      (line 2712)
13299* BFD_RELOC_OR1K_TLS_LDO_LO16:           howto manager.      (line 2713)
13300* BFD_RELOC_OR1K_TLS_LE_HI16:            howto manager.      (line 2716)
13301* BFD_RELOC_OR1K_TLS_LE_LO16:            howto manager.      (line 2717)
13302* BFD_RELOC_OR1K_TLS_TPOFF:              howto manager.      (line 2718)
13303* BFD_RELOC_PDP11_DISP_6_PCREL:          howto manager.      (line  662)
13304* BFD_RELOC_PDP11_DISP_8_PCREL:          howto manager.      (line  661)
13305* BFD_RELOC_PJ_CODE_DIR16:               howto manager.      (line  667)
13306* BFD_RELOC_PJ_CODE_DIR32:               howto manager.      (line  668)
13307* BFD_RELOC_PJ_CODE_HI16:                howto manager.      (line  665)
13308* BFD_RELOC_PJ_CODE_LO16:                howto manager.      (line  666)
13309* BFD_RELOC_PJ_CODE_REL16:               howto manager.      (line  669)
13310* BFD_RELOC_PJ_CODE_REL32:               howto manager.      (line  670)
13311* BFD_RELOC_PPC64_ADDR16_DS:             howto manager.      (line  733)
13312* BFD_RELOC_PPC64_ADDR16_HIGH:           howto manager.      (line  744)
13313* BFD_RELOC_PPC64_ADDR16_HIGHA:          howto manager.      (line  745)
13314* BFD_RELOC_PPC64_ADDR16_LO_DS:          howto manager.      (line  734)
13315* BFD_RELOC_PPC64_ADDR64_LOCAL:          howto manager.      (line  746)
13316* BFD_RELOC_PPC64_DTPREL16_DS:           howto manager.      (line  786)
13317* BFD_RELOC_PPC64_DTPREL16_HIGH:         howto manager.      (line  794)
13318* BFD_RELOC_PPC64_DTPREL16_HIGHA:        howto manager.      (line  795)
13319* BFD_RELOC_PPC64_DTPREL16_HIGHER:       howto manager.      (line  788)
13320* BFD_RELOC_PPC64_DTPREL16_HIGHERA:      howto manager.      (line  789)
13321* BFD_RELOC_PPC64_DTPREL16_HIGHEST:      howto manager.      (line  790)
13322* BFD_RELOC_PPC64_DTPREL16_HIGHESTA:     howto manager.      (line  791)
13323* BFD_RELOC_PPC64_DTPREL16_LO_DS:        howto manager.      (line  787)
13324* BFD_RELOC_PPC64_ENTRY:                 howto manager.      (line  747)
13325* BFD_RELOC_PPC64_GOT16_DS:              howto manager.      (line  735)
13326* BFD_RELOC_PPC64_GOT16_LO_DS:           howto manager.      (line  736)
13327* BFD_RELOC_PPC64_HIGHER:                howto manager.      (line  721)
13328* BFD_RELOC_PPC64_HIGHER_S:              howto manager.      (line  722)
13329* BFD_RELOC_PPC64_HIGHEST:               howto manager.      (line  723)
13330* BFD_RELOC_PPC64_HIGHEST_S:             howto manager.      (line  724)
13331* BFD_RELOC_PPC64_PLT16_LO_DS:           howto manager.      (line  737)
13332* BFD_RELOC_PPC64_PLTGOT16:              howto manager.      (line  729)
13333* BFD_RELOC_PPC64_PLTGOT16_DS:           howto manager.      (line  742)
13334* BFD_RELOC_PPC64_PLTGOT16_HA:           howto manager.      (line  732)
13335* BFD_RELOC_PPC64_PLTGOT16_HI:           howto manager.      (line  731)
13336* BFD_RELOC_PPC64_PLTGOT16_LO:           howto manager.      (line  730)
13337* BFD_RELOC_PPC64_PLTGOT16_LO_DS:        howto manager.      (line  743)
13338* BFD_RELOC_PPC64_SECTOFF_DS:            howto manager.      (line  738)
13339* BFD_RELOC_PPC64_SECTOFF_LO_DS:         howto manager.      (line  739)
13340* BFD_RELOC_PPC64_TOC:                   howto manager.      (line  728)
13341* BFD_RELOC_PPC64_TOC16_DS:              howto manager.      (line  740)
13342* BFD_RELOC_PPC64_TOC16_HA:              howto manager.      (line  727)
13343* BFD_RELOC_PPC64_TOC16_HI:              howto manager.      (line  726)
13344* BFD_RELOC_PPC64_TOC16_LO:              howto manager.      (line  725)
13345* BFD_RELOC_PPC64_TOC16_LO_DS:           howto manager.      (line  741)
13346* BFD_RELOC_PPC64_TPREL16_DS:            howto manager.      (line  780)
13347* BFD_RELOC_PPC64_TPREL16_HIGH:          howto manager.      (line  792)
13348* BFD_RELOC_PPC64_TPREL16_HIGHA:         howto manager.      (line  793)
13349* BFD_RELOC_PPC64_TPREL16_HIGHER:        howto manager.      (line  782)
13350* BFD_RELOC_PPC64_TPREL16_HIGHERA:       howto manager.      (line  783)
13351* BFD_RELOC_PPC64_TPREL16_HIGHEST:       howto manager.      (line  784)
13352* BFD_RELOC_PPC64_TPREL16_HIGHESTA:      howto manager.      (line  785)
13353* BFD_RELOC_PPC64_TPREL16_LO_DS:         howto manager.      (line  781)
13354* BFD_RELOC_PPC_B16:                     howto manager.      (line  676)
13355* BFD_RELOC_PPC_B16_BRNTAKEN:            howto manager.      (line  678)
13356* BFD_RELOC_PPC_B16_BRTAKEN:             howto manager.      (line  677)
13357* BFD_RELOC_PPC_B26:                     howto manager.      (line  673)
13358* BFD_RELOC_PPC_BA16:                    howto manager.      (line  679)
13359* BFD_RELOC_PPC_BA16_BRNTAKEN:           howto manager.      (line  681)
13360* BFD_RELOC_PPC_BA16_BRTAKEN:            howto manager.      (line  680)
13361* BFD_RELOC_PPC_BA26:                    howto manager.      (line  674)
13362* BFD_RELOC_PPC_COPY:                    howto manager.      (line  682)
13363* BFD_RELOC_PPC_DTPMOD:                  howto manager.      (line  753)
13364* BFD_RELOC_PPC_DTPREL:                  howto manager.      (line  763)
13365* BFD_RELOC_PPC_DTPREL16:                howto manager.      (line  759)
13366* BFD_RELOC_PPC_DTPREL16_HA:             howto manager.      (line  762)
13367* BFD_RELOC_PPC_DTPREL16_HI:             howto manager.      (line  761)
13368* BFD_RELOC_PPC_DTPREL16_LO:             howto manager.      (line  760)
13369* BFD_RELOC_PPC_EMB_BIT_FLD:             howto manager.      (line  701)
13370* BFD_RELOC_PPC_EMB_MRKREF:              howto manager.      (line  696)
13371* BFD_RELOC_PPC_EMB_NADDR16:             howto manager.      (line  688)
13372* BFD_RELOC_PPC_EMB_NADDR16_HA:          howto manager.      (line  691)
13373* BFD_RELOC_PPC_EMB_NADDR16_HI:          howto manager.      (line  690)
13374* BFD_RELOC_PPC_EMB_NADDR16_LO:          howto manager.      (line  689)
13375* BFD_RELOC_PPC_EMB_NADDR32:             howto manager.      (line  687)
13376* BFD_RELOC_PPC_EMB_RELSDA:              howto manager.      (line  702)
13377* BFD_RELOC_PPC_EMB_RELSEC16:            howto manager.      (line  697)
13378* BFD_RELOC_PPC_EMB_RELST_HA:            howto manager.      (line  700)
13379* BFD_RELOC_PPC_EMB_RELST_HI:            howto manager.      (line  699)
13380* BFD_RELOC_PPC_EMB_RELST_LO:            howto manager.      (line  698)
13381* BFD_RELOC_PPC_EMB_SDA21:               howto manager.      (line  695)
13382* BFD_RELOC_PPC_EMB_SDA2I16:             howto manager.      (line  693)
13383* BFD_RELOC_PPC_EMB_SDA2REL:             howto manager.      (line  694)
13384* BFD_RELOC_PPC_EMB_SDAI16:              howto manager.      (line  692)
13385* BFD_RELOC_PPC_GLOB_DAT:                howto manager.      (line  683)
13386* BFD_RELOC_PPC_GOT_DTPREL16:            howto manager.      (line  776)
13387* BFD_RELOC_PPC_GOT_DTPREL16_HA:         howto manager.      (line  779)
13388* BFD_RELOC_PPC_GOT_DTPREL16_HI:         howto manager.      (line  778)
13389* BFD_RELOC_PPC_GOT_DTPREL16_LO:         howto manager.      (line  777)
13390* BFD_RELOC_PPC_GOT_TLSGD16:             howto manager.      (line  764)
13391* BFD_RELOC_PPC_GOT_TLSGD16_HA:          howto manager.      (line  767)
13392* BFD_RELOC_PPC_GOT_TLSGD16_HI:          howto manager.      (line  766)
13393* BFD_RELOC_PPC_GOT_TLSGD16_LO:          howto manager.      (line  765)
13394* BFD_RELOC_PPC_GOT_TLSLD16:             howto manager.      (line  768)
13395* BFD_RELOC_PPC_GOT_TLSLD16_HA:          howto manager.      (line  771)
13396* BFD_RELOC_PPC_GOT_TLSLD16_HI:          howto manager.      (line  770)
13397* BFD_RELOC_PPC_GOT_TLSLD16_LO:          howto manager.      (line  769)
13398* BFD_RELOC_PPC_GOT_TPREL16:             howto manager.      (line  772)
13399* BFD_RELOC_PPC_GOT_TPREL16_HA:          howto manager.      (line  775)
13400* BFD_RELOC_PPC_GOT_TPREL16_HI:          howto manager.      (line  774)
13401* BFD_RELOC_PPC_GOT_TPREL16_LO:          howto manager.      (line  773)
13402* BFD_RELOC_PPC_JMP_SLOT:                howto manager.      (line  684)
13403* BFD_RELOC_PPC_LOCAL24PC:               howto manager.      (line  686)
13404* BFD_RELOC_PPC_REL16DX_HA:              howto manager.      (line  720)
13405* BFD_RELOC_PPC_RELATIVE:                howto manager.      (line  685)
13406* BFD_RELOC_PPC_TLS:                     howto manager.      (line  750)
13407* BFD_RELOC_PPC_TLSGD:                   howto manager.      (line  751)
13408* BFD_RELOC_PPC_TLSLD:                   howto manager.      (line  752)
13409* BFD_RELOC_PPC_TOC16:                   howto manager.      (line  675)
13410* BFD_RELOC_PPC_TPREL:                   howto manager.      (line  758)
13411* BFD_RELOC_PPC_TPREL16:                 howto manager.      (line  754)
13412* BFD_RELOC_PPC_TPREL16_HA:              howto manager.      (line  757)
13413* BFD_RELOC_PPC_TPREL16_HI:              howto manager.      (line  756)
13414* BFD_RELOC_PPC_TPREL16_LO:              howto manager.      (line  755)
13415* BFD_RELOC_PPC_VLE_HA16A:               howto manager.      (line  710)
13416* BFD_RELOC_PPC_VLE_HA16D:               howto manager.      (line  711)
13417* BFD_RELOC_PPC_VLE_HI16A:               howto manager.      (line  708)
13418* BFD_RELOC_PPC_VLE_HI16D:               howto manager.      (line  709)
13419* BFD_RELOC_PPC_VLE_LO16A:               howto manager.      (line  706)
13420* BFD_RELOC_PPC_VLE_LO16D:               howto manager.      (line  707)
13421* BFD_RELOC_PPC_VLE_REL15:               howto manager.      (line  704)
13422* BFD_RELOC_PPC_VLE_REL24:               howto manager.      (line  705)
13423* BFD_RELOC_PPC_VLE_REL8:                howto manager.      (line  703)
13424* BFD_RELOC_PPC_VLE_SDA21:               howto manager.      (line  712)
13425* BFD_RELOC_PPC_VLE_SDA21_LO:            howto manager.      (line  713)
13426* BFD_RELOC_PPC_VLE_SDAREL_HA16A:        howto manager.      (line  718)
13427* BFD_RELOC_PPC_VLE_SDAREL_HA16D:        howto manager.      (line  719)
13428* BFD_RELOC_PPC_VLE_SDAREL_HI16A:        howto manager.      (line  716)
13429* BFD_RELOC_PPC_VLE_SDAREL_HI16D:        howto manager.      (line  717)
13430* BFD_RELOC_PPC_VLE_SDAREL_LO16A:        howto manager.      (line  714)
13431* BFD_RELOC_PPC_VLE_SDAREL_LO16D:        howto manager.      (line  715)
13432* BFD_RELOC_RELC:                        howto manager.      (line 2737)
13433* BFD_RELOC_RL78_16_OP:                  howto manager.      (line 2057)
13434* BFD_RELOC_RL78_16U:                    howto manager.      (line 2061)
13435* BFD_RELOC_RL78_24_OP:                  howto manager.      (line 2058)
13436* BFD_RELOC_RL78_24U:                    howto manager.      (line 2062)
13437* BFD_RELOC_RL78_32_OP:                  howto manager.      (line 2059)
13438* BFD_RELOC_RL78_8U:                     howto manager.      (line 2060)
13439* BFD_RELOC_RL78_ABS16:                  howto manager.      (line 2074)
13440* BFD_RELOC_RL78_ABS16_REV:              howto manager.      (line 2075)
13441* BFD_RELOC_RL78_ABS16U:                 howto manager.      (line 2078)
13442* BFD_RELOC_RL78_ABS16UL:                howto manager.      (line 2080)
13443* BFD_RELOC_RL78_ABS16UW:                howto manager.      (line 2079)
13444* BFD_RELOC_RL78_ABS32:                  howto manager.      (line 2076)
13445* BFD_RELOC_RL78_ABS32_REV:              howto manager.      (line 2077)
13446* BFD_RELOC_RL78_ABS8:                   howto manager.      (line 2073)
13447* BFD_RELOC_RL78_CODE:                   howto manager.      (line 2085)
13448* BFD_RELOC_RL78_DIFF:                   howto manager.      (line 2064)
13449* BFD_RELOC_RL78_DIR3U_PCREL:            howto manager.      (line 2063)
13450* BFD_RELOC_RL78_GPRELB:                 howto manager.      (line 2065)
13451* BFD_RELOC_RL78_GPRELL:                 howto manager.      (line 2067)
13452* BFD_RELOC_RL78_GPRELW:                 howto manager.      (line 2066)
13453* BFD_RELOC_RL78_HI16:                   howto manager.      (line 2082)
13454* BFD_RELOC_RL78_HI8:                    howto manager.      (line 2083)
13455* BFD_RELOC_RL78_LO16:                   howto manager.      (line 2084)
13456* BFD_RELOC_RL78_NEG16:                  howto manager.      (line 2054)
13457* BFD_RELOC_RL78_NEG24:                  howto manager.      (line 2055)
13458* BFD_RELOC_RL78_NEG32:                  howto manager.      (line 2056)
13459* BFD_RELOC_RL78_NEG8:                   howto manager.      (line 2053)
13460* BFD_RELOC_RL78_OP_AND:                 howto manager.      (line 2071)
13461* BFD_RELOC_RL78_OP_NEG:                 howto manager.      (line 2070)
13462* BFD_RELOC_RL78_OP_SHRA:                howto manager.      (line 2072)
13463* BFD_RELOC_RL78_OP_SUBTRACT:            howto manager.      (line 2069)
13464* BFD_RELOC_RL78_RELAX:                  howto manager.      (line 2081)
13465* BFD_RELOC_RL78_SADDR:                  howto manager.      (line 2086)
13466* BFD_RELOC_RL78_SYM:                    howto manager.      (line 2068)
13467* BFD_RELOC_RVA:                         howto manager.      (line  104)
13468* BFD_RELOC_RX_16_OP:                    howto manager.      (line 2093)
13469* BFD_RELOC_RX_16U:                      howto manager.      (line 2097)
13470* BFD_RELOC_RX_24_OP:                    howto manager.      (line 2094)
13471* BFD_RELOC_RX_24U:                      howto manager.      (line 2098)
13472* BFD_RELOC_RX_32_OP:                    howto manager.      (line 2095)
13473* BFD_RELOC_RX_8U:                       howto manager.      (line 2096)
13474* BFD_RELOC_RX_ABS16:                    howto manager.      (line 2108)
13475* BFD_RELOC_RX_ABS16_REV:                howto manager.      (line 2109)
13476* BFD_RELOC_RX_ABS16U:                   howto manager.      (line 2112)
13477* BFD_RELOC_RX_ABS16UL:                  howto manager.      (line 2114)
13478* BFD_RELOC_RX_ABS16UW:                  howto manager.      (line 2113)
13479* BFD_RELOC_RX_ABS32:                    howto manager.      (line 2110)
13480* BFD_RELOC_RX_ABS32_REV:                howto manager.      (line 2111)
13481* BFD_RELOC_RX_ABS8:                     howto manager.      (line 2107)
13482* BFD_RELOC_RX_DIFF:                     howto manager.      (line 2100)
13483* BFD_RELOC_RX_DIR3U_PCREL:              howto manager.      (line 2099)
13484* BFD_RELOC_RX_GPRELB:                   howto manager.      (line 2101)
13485* BFD_RELOC_RX_GPRELL:                   howto manager.      (line 2103)
13486* BFD_RELOC_RX_GPRELW:                   howto manager.      (line 2102)
13487* BFD_RELOC_RX_NEG16:                    howto manager.      (line 2090)
13488* BFD_RELOC_RX_NEG24:                    howto manager.      (line 2091)
13489* BFD_RELOC_RX_NEG32:                    howto manager.      (line 2092)
13490* BFD_RELOC_RX_NEG8:                     howto manager.      (line 2089)
13491* BFD_RELOC_RX_OP_NEG:                   howto manager.      (line 2106)
13492* BFD_RELOC_RX_OP_SUBTRACT:              howto manager.      (line 2105)
13493* BFD_RELOC_RX_RELAX:                    howto manager.      (line 2115)
13494* BFD_RELOC_RX_SYM:                      howto manager.      (line 2104)
13495* BFD_RELOC_SCORE16_BRANCH:              howto manager.      (line 2258)
13496* BFD_RELOC_SCORE16_JMP:                 howto manager.      (line 2255)
13497* BFD_RELOC_SCORE_BCMP:                  howto manager.      (line 2261)
13498* BFD_RELOC_SCORE_BRANCH:                howto manager.      (line 2246)
13499* BFD_RELOC_SCORE_CALL15:                howto manager.      (line 2266)
13500* BFD_RELOC_SCORE_DUMMY2:                howto manager.      (line 2242)
13501* BFD_RELOC_SCORE_DUMMY_HI16:            howto manager.      (line 2267)
13502* BFD_RELOC_SCORE_GOT15:                 howto manager.      (line 2264)
13503* BFD_RELOC_SCORE_GOT_LO16:              howto manager.      (line 2265)
13504* BFD_RELOC_SCORE_GPREL15:               howto manager.      (line 2239)
13505* BFD_RELOC_SCORE_IMM30:                 howto manager.      (line 2249)
13506* BFD_RELOC_SCORE_IMM32:                 howto manager.      (line 2252)
13507* BFD_RELOC_SCORE_JMP:                   howto manager.      (line 2243)
13508* BFD_RELOC_SH_ALIGN:                    howto manager.      (line  989)
13509* BFD_RELOC_SH_CODE:                     howto manager.      (line  990)
13510* BFD_RELOC_SH_COPY:                     howto manager.      (line  995)
13511* BFD_RELOC_SH_COPY64:                   howto manager.      (line 1020)
13512* BFD_RELOC_SH_COUNT:                    howto manager.      (line  988)
13513* BFD_RELOC_SH_DATA:                     howto manager.      (line  991)
13514* BFD_RELOC_SH_DISP12:                   howto manager.      (line  971)
13515* BFD_RELOC_SH_DISP12BY2:                howto manager.      (line  972)
13516* BFD_RELOC_SH_DISP12BY4:                howto manager.      (line  973)
13517* BFD_RELOC_SH_DISP12BY8:                howto manager.      (line  974)
13518* BFD_RELOC_SH_DISP20:                   howto manager.      (line  975)
13519* BFD_RELOC_SH_DISP20BY8:                howto manager.      (line  976)
13520* BFD_RELOC_SH_FUNCDESC:                 howto manager.      (line 1063)
13521* BFD_RELOC_SH_GLOB_DAT:                 howto manager.      (line  996)
13522* BFD_RELOC_SH_GLOB_DAT64:               howto manager.      (line 1021)
13523* BFD_RELOC_SH_GOT10BY4:                 howto manager.      (line 1024)
13524* BFD_RELOC_SH_GOT10BY8:                 howto manager.      (line 1025)
13525* BFD_RELOC_SH_GOT20:                    howto manager.      (line 1057)
13526* BFD_RELOC_SH_GOT_HI16:                 howto manager.      (line 1003)
13527* BFD_RELOC_SH_GOT_LOW16:                howto manager.      (line 1000)
13528* BFD_RELOC_SH_GOT_MEDHI16:              howto manager.      (line 1002)
13529* BFD_RELOC_SH_GOT_MEDLOW16:             howto manager.      (line 1001)
13530* BFD_RELOC_SH_GOTFUNCDESC:              howto manager.      (line 1059)
13531* BFD_RELOC_SH_GOTFUNCDESC20:            howto manager.      (line 1060)
13532* BFD_RELOC_SH_GOTOFF20:                 howto manager.      (line 1058)
13533* BFD_RELOC_SH_GOTOFF_HI16:              howto manager.      (line 1015)
13534* BFD_RELOC_SH_GOTOFF_LOW16:             howto manager.      (line 1012)
13535* BFD_RELOC_SH_GOTOFF_MEDHI16:           howto manager.      (line 1014)
13536* BFD_RELOC_SH_GOTOFF_MEDLOW16:          howto manager.      (line 1013)
13537* BFD_RELOC_SH_GOTOFFFUNCDESC:           howto manager.      (line 1061)
13538* BFD_RELOC_SH_GOTOFFFUNCDESC20:         howto manager.      (line 1062)
13539* BFD_RELOC_SH_GOTPC:                    howto manager.      (line  999)
13540* BFD_RELOC_SH_GOTPC_HI16:               howto manager.      (line 1019)
13541* BFD_RELOC_SH_GOTPC_LOW16:              howto manager.      (line 1016)
13542* BFD_RELOC_SH_GOTPC_MEDHI16:            howto manager.      (line 1018)
13543* BFD_RELOC_SH_GOTPC_MEDLOW16:           howto manager.      (line 1017)
13544* BFD_RELOC_SH_GOTPLT10BY4:              howto manager.      (line 1026)
13545* BFD_RELOC_SH_GOTPLT10BY8:              howto manager.      (line 1027)
13546* BFD_RELOC_SH_GOTPLT32:                 howto manager.      (line 1028)
13547* BFD_RELOC_SH_GOTPLT_HI16:              howto manager.      (line 1007)
13548* BFD_RELOC_SH_GOTPLT_LOW16:             howto manager.      (line 1004)
13549* BFD_RELOC_SH_GOTPLT_MEDHI16:           howto manager.      (line 1006)
13550* BFD_RELOC_SH_GOTPLT_MEDLOW16:          howto manager.      (line 1005)
13551* BFD_RELOC_SH_IMM3:                     howto manager.      (line  969)
13552* BFD_RELOC_SH_IMM3U:                    howto manager.      (line  970)
13553* BFD_RELOC_SH_IMM4:                     howto manager.      (line  977)
13554* BFD_RELOC_SH_IMM4BY2:                  howto manager.      (line  978)
13555* BFD_RELOC_SH_IMM4BY4:                  howto manager.      (line  979)
13556* BFD_RELOC_SH_IMM8:                     howto manager.      (line  980)
13557* BFD_RELOC_SH_IMM8BY2:                  howto manager.      (line  981)
13558* BFD_RELOC_SH_IMM8BY4:                  howto manager.      (line  982)
13559* BFD_RELOC_SH_IMM_HI16:                 howto manager.      (line 1046)
13560* BFD_RELOC_SH_IMM_HI16_PCREL:           howto manager.      (line 1047)
13561* BFD_RELOC_SH_IMM_LOW16:                howto manager.      (line 1040)
13562* BFD_RELOC_SH_IMM_LOW16_PCREL:          howto manager.      (line 1041)
13563* BFD_RELOC_SH_IMM_MEDHI16:              howto manager.      (line 1044)
13564* BFD_RELOC_SH_IMM_MEDHI16_PCREL:        howto manager.      (line 1045)
13565* BFD_RELOC_SH_IMM_MEDLOW16:             howto manager.      (line 1042)
13566* BFD_RELOC_SH_IMM_MEDLOW16_PCREL:       howto manager.      (line 1043)
13567* BFD_RELOC_SH_IMMS10:                   howto manager.      (line 1034)
13568* BFD_RELOC_SH_IMMS10BY2:                howto manager.      (line 1035)
13569* BFD_RELOC_SH_IMMS10BY4:                howto manager.      (line 1036)
13570* BFD_RELOC_SH_IMMS10BY8:                howto manager.      (line 1037)
13571* BFD_RELOC_SH_IMMS16:                   howto manager.      (line 1038)
13572* BFD_RELOC_SH_IMMS6:                    howto manager.      (line 1031)
13573* BFD_RELOC_SH_IMMS6BY32:                howto manager.      (line 1032)
13574* BFD_RELOC_SH_IMMU16:                   howto manager.      (line 1039)
13575* BFD_RELOC_SH_IMMU5:                    howto manager.      (line 1030)
13576* BFD_RELOC_SH_IMMU6:                    howto manager.      (line 1033)
13577* BFD_RELOC_SH_JMP_SLOT:                 howto manager.      (line  997)
13578* BFD_RELOC_SH_JMP_SLOT64:               howto manager.      (line 1022)
13579* BFD_RELOC_SH_LABEL:                    howto manager.      (line  992)
13580* BFD_RELOC_SH_LOOP_END:                 howto manager.      (line  994)
13581* BFD_RELOC_SH_LOOP_START:               howto manager.      (line  993)
13582* BFD_RELOC_SH_PCDISP12BY2:              howto manager.      (line  968)
13583* BFD_RELOC_SH_PCDISP8BY2:               howto manager.      (line  967)
13584* BFD_RELOC_SH_PCRELIMM8BY2:             howto manager.      (line  983)
13585* BFD_RELOC_SH_PCRELIMM8BY4:             howto manager.      (line  984)
13586* BFD_RELOC_SH_PLT_HI16:                 howto manager.      (line 1011)
13587* BFD_RELOC_SH_PLT_LOW16:                howto manager.      (line 1008)
13588* BFD_RELOC_SH_PLT_MEDHI16:              howto manager.      (line 1010)
13589* BFD_RELOC_SH_PLT_MEDLOW16:             howto manager.      (line 1009)
13590* BFD_RELOC_SH_PT_16:                    howto manager.      (line 1048)
13591* BFD_RELOC_SH_RELATIVE:                 howto manager.      (line  998)
13592* BFD_RELOC_SH_RELATIVE64:               howto manager.      (line 1023)
13593* BFD_RELOC_SH_SHMEDIA_CODE:             howto manager.      (line 1029)
13594* BFD_RELOC_SH_SWITCH16:                 howto manager.      (line  985)
13595* BFD_RELOC_SH_SWITCH32:                 howto manager.      (line  986)
13596* BFD_RELOC_SH_TLS_DTPMOD32:             howto manager.      (line 1054)
13597* BFD_RELOC_SH_TLS_DTPOFF32:             howto manager.      (line 1055)
13598* BFD_RELOC_SH_TLS_GD_32:                howto manager.      (line 1049)
13599* BFD_RELOC_SH_TLS_IE_32:                howto manager.      (line 1052)
13600* BFD_RELOC_SH_TLS_LD_32:                howto manager.      (line 1050)
13601* BFD_RELOC_SH_TLS_LDO_32:               howto manager.      (line 1051)
13602* BFD_RELOC_SH_TLS_LE_32:                howto manager.      (line 1053)
13603* BFD_RELOC_SH_TLS_TPOFF32:              howto manager.      (line 1056)
13604* BFD_RELOC_SH_USES:                     howto manager.      (line  987)
13605* BFD_RELOC_SIZE32:                      howto manager.      (line   74)
13606* BFD_RELOC_SIZE64:                      howto manager.      (line   75)
13607* BFD_RELOC_SPARC13:                     howto manager.      (line  138)
13608* BFD_RELOC_SPARC22:                     howto manager.      (line  137)
13609* BFD_RELOC_SPARC_10:                    howto manager.      (line  167)
13610* BFD_RELOC_SPARC_11:                    howto manager.      (line  168)
13611* BFD_RELOC_SPARC_5:                     howto manager.      (line  180)
13612* BFD_RELOC_SPARC_6:                     howto manager.      (line  179)
13613* BFD_RELOC_SPARC_64:                    howto manager.      (line  166)
13614* BFD_RELOC_SPARC_7:                     howto manager.      (line  178)
13615* BFD_RELOC_SPARC_BASE13:                howto manager.      (line  162)
13616* BFD_RELOC_SPARC_BASE22:                howto manager.      (line  163)
13617* BFD_RELOC_SPARC_COPY:                  howto manager.      (line  145)
13618* BFD_RELOC_SPARC_DISP64:                howto manager.      (line  181)
13619* BFD_RELOC_SPARC_GLOB_DAT:              howto manager.      (line  146)
13620* BFD_RELOC_SPARC_GOT10:                 howto manager.      (line  139)
13621* BFD_RELOC_SPARC_GOT13:                 howto manager.      (line  140)
13622* BFD_RELOC_SPARC_GOT22:                 howto manager.      (line  141)
13623* BFD_RELOC_SPARC_GOTDATA_HIX22:         howto manager.      (line  152)
13624* BFD_RELOC_SPARC_GOTDATA_LOX10:         howto manager.      (line  153)
13625* BFD_RELOC_SPARC_GOTDATA_OP:            howto manager.      (line  156)
13626* BFD_RELOC_SPARC_GOTDATA_OP_HIX22:      howto manager.      (line  154)
13627* BFD_RELOC_SPARC_GOTDATA_OP_LOX10:      howto manager.      (line  155)
13628* BFD_RELOC_SPARC_H34:                   howto manager.      (line  190)
13629* BFD_RELOC_SPARC_H44:                   howto manager.      (line  186)
13630* BFD_RELOC_SPARC_HH22:                  howto manager.      (line  170)
13631* BFD_RELOC_SPARC_HIX22:                 howto manager.      (line  184)
13632* BFD_RELOC_SPARC_HM10:                  howto manager.      (line  171)
13633* BFD_RELOC_SPARC_IRELATIVE:             howto manager.      (line  158)
13634* BFD_RELOC_SPARC_JMP_IREL:              howto manager.      (line  157)
13635* BFD_RELOC_SPARC_JMP_SLOT:              howto manager.      (line  147)
13636* BFD_RELOC_SPARC_L44:                   howto manager.      (line  188)
13637* BFD_RELOC_SPARC_LM22:                  howto manager.      (line  172)
13638* BFD_RELOC_SPARC_LOX10:                 howto manager.      (line  185)
13639* BFD_RELOC_SPARC_M44:                   howto manager.      (line  187)
13640* BFD_RELOC_SPARC_OLO10:                 howto manager.      (line  169)
13641* BFD_RELOC_SPARC_PC10:                  howto manager.      (line  142)
13642* BFD_RELOC_SPARC_PC22:                  howto manager.      (line  143)
13643* BFD_RELOC_SPARC_PC_HH22:               howto manager.      (line  173)
13644* BFD_RELOC_SPARC_PC_HM10:               howto manager.      (line  174)
13645* BFD_RELOC_SPARC_PC_LM22:               howto manager.      (line  175)
13646* BFD_RELOC_SPARC_PLT32:                 howto manager.      (line  182)
13647* BFD_RELOC_SPARC_PLT64:                 howto manager.      (line  183)
13648* BFD_RELOC_SPARC_REGISTER:              howto manager.      (line  189)
13649* BFD_RELOC_SPARC_RELATIVE:              howto manager.      (line  148)
13650* BFD_RELOC_SPARC_REV32:                 howto manager.      (line  196)
13651* BFD_RELOC_SPARC_SIZE32:                howto manager.      (line  191)
13652* BFD_RELOC_SPARC_SIZE64:                howto manager.      (line  192)
13653* BFD_RELOC_SPARC_TLS_DTPMOD32:          howto manager.      (line  217)
13654* BFD_RELOC_SPARC_TLS_DTPMOD64:          howto manager.      (line  218)
13655* BFD_RELOC_SPARC_TLS_DTPOFF32:          howto manager.      (line  219)
13656* BFD_RELOC_SPARC_TLS_DTPOFF64:          howto manager.      (line  220)
13657* BFD_RELOC_SPARC_TLS_GD_ADD:            howto manager.      (line  201)
13658* BFD_RELOC_SPARC_TLS_GD_CALL:           howto manager.      (line  202)
13659* BFD_RELOC_SPARC_TLS_GD_HI22:           howto manager.      (line  199)
13660* BFD_RELOC_SPARC_TLS_GD_LO10:           howto manager.      (line  200)
13661* BFD_RELOC_SPARC_TLS_IE_ADD:            howto manager.      (line  214)
13662* BFD_RELOC_SPARC_TLS_IE_HI22:           howto manager.      (line  210)
13663* BFD_RELOC_SPARC_TLS_IE_LD:             howto manager.      (line  212)
13664* BFD_RELOC_SPARC_TLS_IE_LDX:            howto manager.      (line  213)
13665* BFD_RELOC_SPARC_TLS_IE_LO10:           howto manager.      (line  211)
13666* BFD_RELOC_SPARC_TLS_LDM_ADD:           howto manager.      (line  205)
13667* BFD_RELOC_SPARC_TLS_LDM_CALL:          howto manager.      (line  206)
13668* BFD_RELOC_SPARC_TLS_LDM_HI22:          howto manager.      (line  203)
13669* BFD_RELOC_SPARC_TLS_LDM_LO10:          howto manager.      (line  204)
13670* BFD_RELOC_SPARC_TLS_LDO_ADD:           howto manager.      (line  209)
13671* BFD_RELOC_SPARC_TLS_LDO_HIX22:         howto manager.      (line  207)
13672* BFD_RELOC_SPARC_TLS_LDO_LOX10:         howto manager.      (line  208)
13673* BFD_RELOC_SPARC_TLS_LE_HIX22:          howto manager.      (line  215)
13674* BFD_RELOC_SPARC_TLS_LE_LOX10:          howto manager.      (line  216)
13675* BFD_RELOC_SPARC_TLS_TPOFF32:           howto manager.      (line  221)
13676* BFD_RELOC_SPARC_TLS_TPOFF64:           howto manager.      (line  222)
13677* BFD_RELOC_SPARC_UA16:                  howto manager.      (line  149)
13678* BFD_RELOC_SPARC_UA32:                  howto manager.      (line  150)
13679* BFD_RELOC_SPARC_UA64:                  howto manager.      (line  151)
13680* BFD_RELOC_SPARC_WDISP10:               howto manager.      (line  193)
13681* BFD_RELOC_SPARC_WDISP16:               howto manager.      (line  176)
13682* BFD_RELOC_SPARC_WDISP19:               howto manager.      (line  177)
13683* BFD_RELOC_SPARC_WDISP22:               howto manager.      (line  136)
13684* BFD_RELOC_SPARC_WPLT30:                howto manager.      (line  144)
13685* BFD_RELOC_SPU_ADD_PIC:                 howto manager.      (line  239)
13686* BFD_RELOC_SPU_HI16:                    howto manager.      (line  236)
13687* BFD_RELOC_SPU_IMM10:                   howto manager.      (line  227)
13688* BFD_RELOC_SPU_IMM10W:                  howto manager.      (line  228)
13689* BFD_RELOC_SPU_IMM16:                   howto manager.      (line  229)
13690* BFD_RELOC_SPU_IMM16W:                  howto manager.      (line  230)
13691* BFD_RELOC_SPU_IMM18:                   howto manager.      (line  231)
13692* BFD_RELOC_SPU_IMM7:                    howto manager.      (line  225)
13693* BFD_RELOC_SPU_IMM8:                    howto manager.      (line  226)
13694* BFD_RELOC_SPU_LO16:                    howto manager.      (line  235)
13695* BFD_RELOC_SPU_PCREL16:                 howto manager.      (line  234)
13696* BFD_RELOC_SPU_PCREL9a:                 howto manager.      (line  232)
13697* BFD_RELOC_SPU_PCREL9b:                 howto manager.      (line  233)
13698* BFD_RELOC_SPU_PPU32:                   howto manager.      (line  237)
13699* BFD_RELOC_SPU_PPU64:                   howto manager.      (line  238)
13700* BFD_RELOC_THUMB_PCREL_BLX:             howto manager.      (line  816)
13701* BFD_RELOC_THUMB_PCREL_BRANCH12:        howto manager.      (line  830)
13702* BFD_RELOC_THUMB_PCREL_BRANCH20:        howto manager.      (line  831)
13703* BFD_RELOC_THUMB_PCREL_BRANCH23:        howto manager.      (line  832)
13704* BFD_RELOC_THUMB_PCREL_BRANCH25:        howto manager.      (line  833)
13705* BFD_RELOC_THUMB_PCREL_BRANCH7:         howto manager.      (line  828)
13706* BFD_RELOC_THUMB_PCREL_BRANCH9:         howto manager.      (line  829)
13707* BFD_RELOC_TIC30_LDP:                   howto manager.      (line 1706)
13708* BFD_RELOC_TIC54X_16_OF_23:             howto manager.      (line 1724)
13709* BFD_RELOC_TIC54X_23:                   howto manager.      (line 1721)
13710* BFD_RELOC_TIC54X_MS7_OF_23:            howto manager.      (line 1729)
13711* BFD_RELOC_TIC54X_PARTLS7:              howto manager.      (line 1711)
13712* BFD_RELOC_TIC54X_PARTMS9:              howto manager.      (line 1716)
13713* BFD_RELOC_TILEGX_BROFF_X1:             howto manager.      (line 3579)
13714* BFD_RELOC_TILEGX_COPY:                 howto manager.      (line 3575)
13715* BFD_RELOC_TILEGX_DEST_IMM8_X1:         howto manager.      (line 3586)
13716* BFD_RELOC_TILEGX_GLOB_DAT:             howto manager.      (line 3576)
13717* BFD_RELOC_TILEGX_HW0:                  howto manager.      (line 3568)
13718* BFD_RELOC_TILEGX_HW0_LAST:             howto manager.      (line 3572)
13719* BFD_RELOC_TILEGX_HW1:                  howto manager.      (line 3569)
13720* BFD_RELOC_TILEGX_HW1_LAST:             howto manager.      (line 3573)
13721* BFD_RELOC_TILEGX_HW2:                  howto manager.      (line 3570)
13722* BFD_RELOC_TILEGX_HW2_LAST:             howto manager.      (line 3574)
13723* BFD_RELOC_TILEGX_HW3:                  howto manager.      (line 3571)
13724* BFD_RELOC_TILEGX_IMM16_X0_HW0:         howto manager.      (line 3595)
13725* BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT:     howto manager.      (line 3623)
13726* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST:    howto manager.      (line 3603)
13727* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager.     (line 3631)
13728* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager.   (line 3617)
13729* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL: howto manager.
13730                                                             (line 3651)
13731* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager.  (line 3645)
13732* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager.  (line 3657)
13733* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: howto manager.  (line 3641)
13734* BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL:   howto manager.      (line 3609)
13735* BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL: howto manager.    (line 3625)
13736* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD:  howto manager.      (line 3637)
13737* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE:  howto manager.      (line 3649)
13738* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE:  howto manager.      (line 3639)
13739* BFD_RELOC_TILEGX_IMM16_X0_HW1:         howto manager.      (line 3597)
13740* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST:    howto manager.      (line 3605)
13741* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager.     (line 3633)
13742* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager.   (line 3619)
13743* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL: howto manager.
13744                                                             (line 3653)
13745* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager.  (line 3647)
13746* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager.  (line 3659)
13747* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: howto manager.  (line 3643)
13748* BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL:   howto manager.      (line 3611)
13749* BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL: howto manager.    (line 3627)
13750* BFD_RELOC_TILEGX_IMM16_X0_HW2:         howto manager.      (line 3599)
13751* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST:    howto manager.      (line 3607)
13752* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager.   (line 3621)
13753* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL: howto manager.
13754                                                             (line 3655)
13755* BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL:   howto manager.      (line 3613)
13756* BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL: howto manager.    (line 3629)
13757* BFD_RELOC_TILEGX_IMM16_X0_HW3:         howto manager.      (line 3601)
13758* BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL:   howto manager.      (line 3615)
13759* BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL: howto manager.    (line 3635)
13760* BFD_RELOC_TILEGX_IMM16_X1_HW0:         howto manager.      (line 3596)
13761* BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT:     howto manager.      (line 3624)
13762* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST:    howto manager.      (line 3604)
13763* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager.     (line 3632)
13764* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager.   (line 3618)
13765* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL: howto manager.
13766                                                             (line 3652)
13767* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager.  (line 3646)
13768* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager.  (line 3658)
13769* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: howto manager.  (line 3642)
13770* BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL:   howto manager.      (line 3610)
13771* BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL: howto manager.    (line 3626)
13772* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD:  howto manager.      (line 3638)
13773* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE:  howto manager.      (line 3650)
13774* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE:  howto manager.      (line 3640)
13775* BFD_RELOC_TILEGX_IMM16_X1_HW1:         howto manager.      (line 3598)
13776* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST:    howto manager.      (line 3606)
13777* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager.     (line 3634)
13778* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager.   (line 3620)
13779* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL: howto manager.
13780                                                             (line 3654)
13781* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager.  (line 3648)
13782* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager.  (line 3660)
13783* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: howto manager.  (line 3644)
13784* BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL:   howto manager.      (line 3612)
13785* BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL: howto manager.    (line 3628)
13786* BFD_RELOC_TILEGX_IMM16_X1_HW2:         howto manager.      (line 3600)
13787* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST:    howto manager.      (line 3608)
13788* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager.   (line 3622)
13789* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL: howto manager.
13790                                                             (line 3656)
13791* BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL:   howto manager.      (line 3614)
13792* BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL: howto manager.    (line 3630)
13793* BFD_RELOC_TILEGX_IMM16_X1_HW3:         howto manager.      (line 3602)
13794* BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL:   howto manager.      (line 3616)
13795* BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL: howto manager.    (line 3636)
13796* BFD_RELOC_TILEGX_IMM8_X0:              howto manager.      (line 3582)
13797* BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD:      howto manager.      (line 3673)
13798* BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD:   howto manager.      (line 3668)
13799* BFD_RELOC_TILEGX_IMM8_X1:              howto manager.      (line 3584)
13800* BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD:      howto manager.      (line 3674)
13801* BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD:   howto manager.      (line 3669)
13802* BFD_RELOC_TILEGX_IMM8_Y0:              howto manager.      (line 3583)
13803* BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD:      howto manager.      (line 3675)
13804* BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD:   howto manager.      (line 3670)
13805* BFD_RELOC_TILEGX_IMM8_Y1:              howto manager.      (line 3585)
13806* BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD:      howto manager.      (line 3676)
13807* BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD:   howto manager.      (line 3671)
13808* BFD_RELOC_TILEGX_JMP_SLOT:             howto manager.      (line 3577)
13809* BFD_RELOC_TILEGX_JUMPOFF_X1:           howto manager.      (line 3580)
13810* BFD_RELOC_TILEGX_JUMPOFF_X1_PLT:       howto manager.      (line 3581)
13811* BFD_RELOC_TILEGX_MF_IMM14_X1:          howto manager.      (line 3588)
13812* BFD_RELOC_TILEGX_MMEND_X0:             howto manager.      (line 3590)
13813* BFD_RELOC_TILEGX_MMSTART_X0:           howto manager.      (line 3589)
13814* BFD_RELOC_TILEGX_MT_IMM14_X1:          howto manager.      (line 3587)
13815* BFD_RELOC_TILEGX_RELATIVE:             howto manager.      (line 3578)
13816* BFD_RELOC_TILEGX_SHAMT_X0:             howto manager.      (line 3591)
13817* BFD_RELOC_TILEGX_SHAMT_X1:             howto manager.      (line 3592)
13818* BFD_RELOC_TILEGX_SHAMT_Y0:             howto manager.      (line 3593)
13819* BFD_RELOC_TILEGX_SHAMT_Y1:             howto manager.      (line 3594)
13820* BFD_RELOC_TILEGX_TLS_DTPMOD32:         howto manager.      (line 3664)
13821* BFD_RELOC_TILEGX_TLS_DTPMOD64:         howto manager.      (line 3661)
13822* BFD_RELOC_TILEGX_TLS_DTPOFF32:         howto manager.      (line 3665)
13823* BFD_RELOC_TILEGX_TLS_DTPOFF64:         howto manager.      (line 3662)
13824* BFD_RELOC_TILEGX_TLS_GD_CALL:          howto manager.      (line 3667)
13825* BFD_RELOC_TILEGX_TLS_IE_LOAD:          howto manager.      (line 3672)
13826* BFD_RELOC_TILEGX_TLS_TPOFF32:          howto manager.      (line 3666)
13827* BFD_RELOC_TILEGX_TLS_TPOFF64:          howto manager.      (line 3663)
13828* BFD_RELOC_TILEPRO_BROFF_X1:            howto manager.      (line 3491)
13829* BFD_RELOC_TILEPRO_COPY:                howto manager.      (line 3487)
13830* BFD_RELOC_TILEPRO_DEST_IMM8_X1:        howto manager.      (line 3498)
13831* BFD_RELOC_TILEPRO_GLOB_DAT:            howto manager.      (line 3488)
13832* BFD_RELOC_TILEPRO_IMM16_X0:            howto manager.      (line 3501)
13833* BFD_RELOC_TILEPRO_IMM16_X0_GOT:        howto manager.      (line 3517)
13834* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA:     howto manager.      (line 3523)
13835* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI:     howto manager.      (line 3521)
13836* BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO:     howto manager.      (line 3519)
13837* BFD_RELOC_TILEPRO_IMM16_X0_HA:         howto manager.      (line 3507)
13838* BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL:   howto manager.      (line 3515)
13839* BFD_RELOC_TILEPRO_IMM16_X0_HI:         howto manager.      (line 3505)
13840* BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL:   howto manager.      (line 3513)
13841* BFD_RELOC_TILEPRO_IMM16_X0_LO:         howto manager.      (line 3503)
13842* BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL:   howto manager.      (line 3511)
13843* BFD_RELOC_TILEPRO_IMM16_X0_PCREL:      howto manager.      (line 3509)
13844* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD:     howto manager.      (line 3539)
13845* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA:  howto manager.      (line 3545)
13846* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI:  howto manager.      (line 3543)
13847* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO:  howto manager.      (line 3541)
13848* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE:     howto manager.      (line 3547)
13849* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA:  howto manager.      (line 3553)
13850* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI:  howto manager.      (line 3551)
13851* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO:  howto manager.      (line 3549)
13852* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE:     howto manager.      (line 3558)
13853* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA:  howto manager.      (line 3564)
13854* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI:  howto manager.      (line 3562)
13855* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO:  howto manager.      (line 3560)
13856* BFD_RELOC_TILEPRO_IMM16_X1:            howto manager.      (line 3502)
13857* BFD_RELOC_TILEPRO_IMM16_X1_GOT:        howto manager.      (line 3518)
13858* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA:     howto manager.      (line 3524)
13859* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI:     howto manager.      (line 3522)
13860* BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO:     howto manager.      (line 3520)
13861* BFD_RELOC_TILEPRO_IMM16_X1_HA:         howto manager.      (line 3508)
13862* BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL:   howto manager.      (line 3516)
13863* BFD_RELOC_TILEPRO_IMM16_X1_HI:         howto manager.      (line 3506)
13864* BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL:   howto manager.      (line 3514)
13865* BFD_RELOC_TILEPRO_IMM16_X1_LO:         howto manager.      (line 3504)
13866* BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL:   howto manager.      (line 3512)
13867* BFD_RELOC_TILEPRO_IMM16_X1_PCREL:      howto manager.      (line 3510)
13868* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD:     howto manager.      (line 3540)
13869* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA:  howto manager.      (line 3546)
13870* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI:  howto manager.      (line 3544)
13871* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO:  howto manager.      (line 3542)
13872* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE:     howto manager.      (line 3548)
13873* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA:  howto manager.      (line 3554)
13874* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI:  howto manager.      (line 3552)
13875* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO:  howto manager.      (line 3550)
13876* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE:     howto manager.      (line 3559)
13877* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA:  howto manager.      (line 3565)
13878* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI:  howto manager.      (line 3563)
13879* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO:  howto manager.      (line 3561)
13880* BFD_RELOC_TILEPRO_IMM8_X0:             howto manager.      (line 3494)
13881* BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD:  howto manager.      (line 3534)
13882* BFD_RELOC_TILEPRO_IMM8_X1:             howto manager.      (line 3496)
13883* BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD:  howto manager.      (line 3535)
13884* BFD_RELOC_TILEPRO_IMM8_Y0:             howto manager.      (line 3495)
13885* BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD:  howto manager.      (line 3536)
13886* BFD_RELOC_TILEPRO_IMM8_Y1:             howto manager.      (line 3497)
13887* BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD:  howto manager.      (line 3537)
13888* BFD_RELOC_TILEPRO_JMP_SLOT:            howto manager.      (line 3489)
13889* BFD_RELOC_TILEPRO_JOFFLONG_X1:         howto manager.      (line 3492)
13890* BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT:     howto manager.      (line 3493)
13891* BFD_RELOC_TILEPRO_MF_IMM15_X1:         howto manager.      (line 3500)
13892* BFD_RELOC_TILEPRO_MMEND_X0:            howto manager.      (line 3526)
13893* BFD_RELOC_TILEPRO_MMEND_X1:            howto manager.      (line 3528)
13894* BFD_RELOC_TILEPRO_MMSTART_X0:          howto manager.      (line 3525)
13895* BFD_RELOC_TILEPRO_MMSTART_X1:          howto manager.      (line 3527)
13896* BFD_RELOC_TILEPRO_MT_IMM15_X1:         howto manager.      (line 3499)
13897* BFD_RELOC_TILEPRO_RELATIVE:            howto manager.      (line 3490)
13898* BFD_RELOC_TILEPRO_SHAMT_X0:            howto manager.      (line 3529)
13899* BFD_RELOC_TILEPRO_SHAMT_X1:            howto manager.      (line 3530)
13900* BFD_RELOC_TILEPRO_SHAMT_Y0:            howto manager.      (line 3531)
13901* BFD_RELOC_TILEPRO_SHAMT_Y1:            howto manager.      (line 3532)
13902* BFD_RELOC_TILEPRO_TLS_DTPMOD32:        howto manager.      (line 3555)
13903* BFD_RELOC_TILEPRO_TLS_DTPOFF32:        howto manager.      (line 3556)
13904* BFD_RELOC_TILEPRO_TLS_GD_CALL:         howto manager.      (line 3533)
13905* BFD_RELOC_TILEPRO_TLS_IE_LOAD:         howto manager.      (line 3538)
13906* BFD_RELOC_TILEPRO_TLS_TPOFF32:         howto manager.      (line 3557)
13907* bfd_reloc_type_lookup:                 howto manager.      (line 3711)
13908* BFD_RELOC_V850_16_GOT:                 howto manager.      (line 1670)
13909* BFD_RELOC_V850_16_GOTOFF:              howto manager.      (line 1694)
13910* BFD_RELOC_V850_16_PCREL:               howto manager.      (line 1640)
13911* BFD_RELOC_V850_16_S1:                  howto manager.      (line 1658)
13912* BFD_RELOC_V850_16_SPLIT_OFFSET:        howto manager.      (line 1655)
13913* BFD_RELOC_V850_17_PCREL:               howto manager.      (line 1643)
13914* BFD_RELOC_V850_22_PCREL:               howto manager.      (line 1575)
13915* BFD_RELOC_V850_22_PLT_PCREL:           howto manager.      (line 1676)
13916* BFD_RELOC_V850_23:                     howto manager.      (line 1646)
13917* BFD_RELOC_V850_32_ABS:                 howto manager.      (line 1652)
13918* BFD_RELOC_V850_32_GOT:                 howto manager.      (line 1673)
13919* BFD_RELOC_V850_32_GOTOFF:              howto manager.      (line 1697)
13920* BFD_RELOC_V850_32_GOTPCREL:            howto manager.      (line 1667)
13921* BFD_RELOC_V850_32_PCREL:               howto manager.      (line 1649)
13922* BFD_RELOC_V850_32_PLT_PCREL:           howto manager.      (line 1679)
13923* BFD_RELOC_V850_9_PCREL:                howto manager.      (line 1572)
13924* BFD_RELOC_V850_ALIGN:                  howto manager.      (line 1633)
13925* BFD_RELOC_V850_CALLT_15_16_OFFSET:     howto manager.      (line 1664)
13926* BFD_RELOC_V850_CALLT_16_16_OFFSET:     howto manager.      (line 1624)
13927* BFD_RELOC_V850_CALLT_6_7_OFFSET:       howto manager.      (line 1621)
13928* BFD_RELOC_V850_CODE:                   howto manager.      (line 1700)
13929* BFD_RELOC_V850_COPY:                   howto manager.      (line 1682)
13930* BFD_RELOC_V850_DATA:                   howto manager.      (line 1703)
13931* BFD_RELOC_V850_GLOB_DAT:               howto manager.      (line 1685)
13932* BFD_RELOC_V850_JMP_SLOT:               howto manager.      (line 1688)
13933* BFD_RELOC_V850_LO16_S1:                howto manager.      (line 1661)
13934* BFD_RELOC_V850_LO16_SPLIT_OFFSET:      howto manager.      (line 1636)
13935* BFD_RELOC_V850_LONGCALL:               howto manager.      (line 1627)
13936* BFD_RELOC_V850_LONGJUMP:               howto manager.      (line 1630)
13937* BFD_RELOC_V850_RELATIVE:               howto manager.      (line 1691)
13938* BFD_RELOC_V850_SDA_15_16_OFFSET:       howto manager.      (line 1581)
13939* BFD_RELOC_V850_SDA_16_16_OFFSET:       howto manager.      (line 1578)
13940* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager.      (line 1613)
13941* BFD_RELOC_V850_TDA_16_16_OFFSET:       howto manager.      (line 1603)
13942* BFD_RELOC_V850_TDA_4_4_OFFSET:         howto manager.      (line 1610)
13943* BFD_RELOC_V850_TDA_4_5_OFFSET:         howto manager.      (line 1606)
13944* BFD_RELOC_V850_TDA_6_8_OFFSET:         howto manager.      (line 1592)
13945* BFD_RELOC_V850_TDA_7_7_OFFSET:         howto manager.      (line 1600)
13946* BFD_RELOC_V850_TDA_7_8_OFFSET:         howto manager.      (line 1596)
13947* BFD_RELOC_V850_ZDA_15_16_OFFSET:       howto manager.      (line 1588)
13948* BFD_RELOC_V850_ZDA_16_16_OFFSET:       howto manager.      (line 1585)
13949* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager.      (line 1617)
13950* BFD_RELOC_VAX_GLOB_DAT:                howto manager.      (line 2746)
13951* BFD_RELOC_VAX_JMP_SLOT:                howto manager.      (line 2747)
13952* BFD_RELOC_VAX_RELATIVE:                howto manager.      (line 2748)
13953* BFD_RELOC_VISIUM_HI16:                 howto manager.      (line 3701)
13954* BFD_RELOC_VISIUM_HI16_PCREL:           howto manager.      (line 3705)
13955* BFD_RELOC_VISIUM_IM16:                 howto manager.      (line 3703)
13956* BFD_RELOC_VISIUM_IM16_PCREL:           howto manager.      (line 3707)
13957* BFD_RELOC_VISIUM_LO16:                 howto manager.      (line 3702)
13958* BFD_RELOC_VISIUM_LO16_PCREL:           howto manager.      (line 3706)
13959* BFD_RELOC_VISIUM_REL16:                howto manager.      (line 3704)
13960* BFD_RELOC_VPE4KMATH_DATA:              howto manager.      (line 2300)
13961* BFD_RELOC_VPE4KMATH_INSN:              howto manager.      (line 2301)
13962* BFD_RELOC_VTABLE_ENTRY:                howto manager.      (line 2305)
13963* BFD_RELOC_VTABLE_INHERIT:              howto manager.      (line 2304)
13964* BFD_RELOC_X86_64_32S:                  howto manager.      (line  621)
13965* BFD_RELOC_X86_64_COPY:                 howto manager.      (line  616)
13966* BFD_RELOC_X86_64_DTPMOD64:             howto manager.      (line  622)
13967* BFD_RELOC_X86_64_DTPOFF32:             howto manager.      (line  627)
13968* BFD_RELOC_X86_64_DTPOFF64:             howto manager.      (line  623)
13969* BFD_RELOC_X86_64_GLOB_DAT:             howto manager.      (line  617)
13970* BFD_RELOC_X86_64_GOT32:                howto manager.      (line  614)
13971* BFD_RELOC_X86_64_GOT64:                howto manager.      (line  632)
13972* BFD_RELOC_X86_64_GOTOFF64:             howto manager.      (line  630)
13973* BFD_RELOC_X86_64_GOTPC32:              howto manager.      (line  631)
13974* BFD_RELOC_X86_64_GOTPC32_TLSDESC:      howto manager.      (line  637)
13975* BFD_RELOC_X86_64_GOTPC64:              howto manager.      (line  634)
13976* BFD_RELOC_X86_64_GOTPCREL:             howto manager.      (line  620)
13977* BFD_RELOC_X86_64_GOTPCREL64:           howto manager.      (line  633)
13978* BFD_RELOC_X86_64_GOTPCRELX:            howto manager.      (line  643)
13979* BFD_RELOC_X86_64_GOTPLT64:             howto manager.      (line  635)
13980* BFD_RELOC_X86_64_GOTTPOFF:             howto manager.      (line  628)
13981* BFD_RELOC_X86_64_IRELATIVE:            howto manager.      (line  640)
13982* BFD_RELOC_X86_64_JUMP_SLOT:            howto manager.      (line  618)
13983* BFD_RELOC_X86_64_PC32_BND:             howto manager.      (line  641)
13984* BFD_RELOC_X86_64_PLT32:                howto manager.      (line  615)
13985* BFD_RELOC_X86_64_PLT32_BND:            howto manager.      (line  642)
13986* BFD_RELOC_X86_64_PLTOFF64:             howto manager.      (line  636)
13987* BFD_RELOC_X86_64_RELATIVE:             howto manager.      (line  619)
13988* BFD_RELOC_X86_64_REX_GOTPCRELX:        howto manager.      (line  644)
13989* BFD_RELOC_X86_64_TLSDESC:              howto manager.      (line  639)
13990* BFD_RELOC_X86_64_TLSDESC_CALL:         howto manager.      (line  638)
13991* BFD_RELOC_X86_64_TLSGD:                howto manager.      (line  625)
13992* BFD_RELOC_X86_64_TLSLD:                howto manager.      (line  626)
13993* BFD_RELOC_X86_64_TPOFF32:              howto manager.      (line  629)
13994* BFD_RELOC_X86_64_TPOFF64:              howto manager.      (line  624)
13995* BFD_RELOC_XC16X_PAG:                   howto manager.      (line 2740)
13996* BFD_RELOC_XC16X_POF:                   howto manager.      (line 2741)
13997* BFD_RELOC_XC16X_SEG:                   howto manager.      (line 2742)
13998* BFD_RELOC_XC16X_SOF:                   howto manager.      (line 2743)
13999* BFD_RELOC_XGATE_24:                    howto manager.      (line 2463)
14000* BFD_RELOC_XGATE_GPAGE:                 howto manager.      (line 2460)
14001* BFD_RELOC_XGATE_IMM3:                  howto manager.      (line 2480)
14002* BFD_RELOC_XGATE_IMM4:                  howto manager.      (line 2483)
14003* BFD_RELOC_XGATE_IMM5:                  howto manager.      (line 2486)
14004* BFD_RELOC_XGATE_IMM8_HI:               howto manager.      (line 2476)
14005* BFD_RELOC_XGATE_IMM8_LO:               howto manager.      (line 2472)
14006* BFD_RELOC_XGATE_LO16:                  howto manager.      (line 2456)
14007* BFD_RELOC_XGATE_PCREL_10:              howto manager.      (line 2469)
14008* BFD_RELOC_XGATE_PCREL_9:               howto manager.      (line 2466)
14009* BFD_RELOC_XGATE_RL_GROUP:              howto manager.      (line 2451)
14010* BFD_RELOC_XGATE_RL_JUMP:               howto manager.      (line 2447)
14011* BFD_RELOC_XSTORMY16_12:                howto manager.      (line 2732)
14012* BFD_RELOC_XSTORMY16_24:                howto manager.      (line 2733)
14013* BFD_RELOC_XSTORMY16_FPTR16:            howto manager.      (line 2734)
14014* BFD_RELOC_XSTORMY16_REL_12:            howto manager.      (line 2731)
14015* BFD_RELOC_XTENSA_ASM_EXPAND:           howto manager.      (line 2921)
14016* BFD_RELOC_XTENSA_ASM_SIMPLIFY:         howto manager.      (line 2926)
14017* BFD_RELOC_XTENSA_DIFF16:               howto manager.      (line 2868)
14018* BFD_RELOC_XTENSA_DIFF32:               howto manager.      (line 2869)
14019* BFD_RELOC_XTENSA_DIFF8:                howto manager.      (line 2867)
14020* BFD_RELOC_XTENSA_GLOB_DAT:             howto manager.      (line 2857)
14021* BFD_RELOC_XTENSA_JMP_SLOT:             howto manager.      (line 2858)
14022* BFD_RELOC_XTENSA_OP0:                  howto manager.      (line 2915)
14023* BFD_RELOC_XTENSA_OP1:                  howto manager.      (line 2916)
14024* BFD_RELOC_XTENSA_OP2:                  howto manager.      (line 2917)
14025* BFD_RELOC_XTENSA_PLT:                  howto manager.      (line 2862)
14026* BFD_RELOC_XTENSA_RELATIVE:             howto manager.      (line 2859)
14027* BFD_RELOC_XTENSA_RTLD:                 howto manager.      (line 2852)
14028* BFD_RELOC_XTENSA_SLOT0_ALT:            howto manager.      (line 2897)
14029* BFD_RELOC_XTENSA_SLOT0_OP:             howto manager.      (line 2877)
14030* BFD_RELOC_XTENSA_SLOT10_ALT:           howto manager.      (line 2907)
14031* BFD_RELOC_XTENSA_SLOT10_OP:            howto manager.      (line 2887)
14032* BFD_RELOC_XTENSA_SLOT11_ALT:           howto manager.      (line 2908)
14033* BFD_RELOC_XTENSA_SLOT11_OP:            howto manager.      (line 2888)
14034* BFD_RELOC_XTENSA_SLOT12_ALT:           howto manager.      (line 2909)
14035* BFD_RELOC_XTENSA_SLOT12_OP:            howto manager.      (line 2889)
14036* BFD_RELOC_XTENSA_SLOT13_ALT:           howto manager.      (line 2910)
14037* BFD_RELOC_XTENSA_SLOT13_OP:            howto manager.      (line 2890)
14038* BFD_RELOC_XTENSA_SLOT14_ALT:           howto manager.      (line 2911)
14039* BFD_RELOC_XTENSA_SLOT14_OP:            howto manager.      (line 2891)
14040* BFD_RELOC_XTENSA_SLOT1_ALT:            howto manager.      (line 2898)
14041* BFD_RELOC_XTENSA_SLOT1_OP:             howto manager.      (line 2878)
14042* BFD_RELOC_XTENSA_SLOT2_ALT:            howto manager.      (line 2899)
14043* BFD_RELOC_XTENSA_SLOT2_OP:             howto manager.      (line 2879)
14044* BFD_RELOC_XTENSA_SLOT3_ALT:            howto manager.      (line 2900)
14045* BFD_RELOC_XTENSA_SLOT3_OP:             howto manager.      (line 2880)
14046* BFD_RELOC_XTENSA_SLOT4_ALT:            howto manager.      (line 2901)
14047* BFD_RELOC_XTENSA_SLOT4_OP:             howto manager.      (line 2881)
14048* BFD_RELOC_XTENSA_SLOT5_ALT:            howto manager.      (line 2902)
14049* BFD_RELOC_XTENSA_SLOT5_OP:             howto manager.      (line 2882)
14050* BFD_RELOC_XTENSA_SLOT6_ALT:            howto manager.      (line 2903)
14051* BFD_RELOC_XTENSA_SLOT6_OP:             howto manager.      (line 2883)
14052* BFD_RELOC_XTENSA_SLOT7_ALT:            howto manager.      (line 2904)
14053* BFD_RELOC_XTENSA_SLOT7_OP:             howto manager.      (line 2884)
14054* BFD_RELOC_XTENSA_SLOT8_ALT:            howto manager.      (line 2905)
14055* BFD_RELOC_XTENSA_SLOT8_OP:             howto manager.      (line 2885)
14056* BFD_RELOC_XTENSA_SLOT9_ALT:            howto manager.      (line 2906)
14057* BFD_RELOC_XTENSA_SLOT9_OP:             howto manager.      (line 2886)
14058* BFD_RELOC_XTENSA_TLS_ARG:              howto manager.      (line 2936)
14059* BFD_RELOC_XTENSA_TLS_CALL:             howto manager.      (line 2937)
14060* BFD_RELOC_XTENSA_TLS_DTPOFF:           howto manager.      (line 2933)
14061* BFD_RELOC_XTENSA_TLS_FUNC:             howto manager.      (line 2935)
14062* BFD_RELOC_XTENSA_TLS_TPOFF:            howto manager.      (line 2934)
14063* BFD_RELOC_XTENSA_TLSDESC_ARG:          howto manager.      (line 2932)
14064* BFD_RELOC_XTENSA_TLSDESC_FN:           howto manager.      (line 2931)
14065* BFD_RELOC_Z80_DISP8:                   howto manager.      (line 2940)
14066* BFD_RELOC_Z8K_CALLR:                   howto manager.      (line 2946)
14067* BFD_RELOC_Z8K_DISP7:                   howto manager.      (line 2943)
14068* BFD_RELOC_Z8K_IMM4L:                   howto manager.      (line 2949)
14069* bfd_rename_section:                    section prototypes. (line  179)
14070* bfd_scan_arch:                         Architectures.      (line  527)
14071* bfd_scan_vma:                          Miscellaneous.      (line  126)
14072* bfd_seach_for_target:                  bfd_target.         (line  522)
14073* bfd_section_already_linked:            Writing the symbol table.
14074                                                             (line   55)
14075* bfd_section_list_clear:                section prototypes. (line    8)
14076* bfd_sections_find_if:                  section prototypes. (line  209)
14077* bfd_set_arch_info:                     Architectures.      (line  568)
14078* bfd_set_archive_head:                  Archives.           (line   75)
14079* bfd_set_assert_handler:                Error reporting.    (line  141)
14080* bfd_set_default_target:                bfd_target.         (line  461)
14081* bfd_set_error:                         Error reporting.    (line   57)
14082* bfd_set_error_handler:                 Error reporting.    (line   99)
14083* bfd_set_error_program_name:            Error reporting.    (line  108)
14084* bfd_set_file_flags:                    Miscellaneous.      (line   44)
14085* bfd_set_format:                        Formats.            (line   68)
14086* bfd_set_gp_size:                       Miscellaneous.      (line  116)
14087* bfd_set_private_flags:                 Miscellaneous.      (line  193)
14088* bfd_set_reloc:                         Miscellaneous.      (line   34)
14089* bfd_set_section_contents:              section prototypes. (line  240)
14090* bfd_set_section_flags:                 section prototypes. (line  164)
14091* bfd_set_section_size:                  section prototypes. (line  226)
14092* bfd_set_start_address:                 Miscellaneous.      (line   95)
14093* bfd_set_symtab:                        symbol handling functions.
14094                                                             (line   60)
14095* bfd_symbol_info:                       symbol handling functions.
14096                                                             (line  130)
14097* bfd_target_list:                       bfd_target.         (line  513)
14098* bfd_update_compression_header:         Miscellaneous.      (line  369)
14099* bfd_write_bigendian_4byte_int:         Internal.           (line   13)
14100* bfd_zalloc:                            Opening and Closing.
14101                                                             (line  257)
14102* bfd_zalloc2:                           Opening and Closing.
14103                                                             (line  266)
14104* coff_symbol_type:                      coff.               (line  245)
14105* core_file_matches_executable_p:        Core Files.         (line   39)
14106* find_separate_debug_file:              Opening and Closing.
14107                                                             (line  332)
14108* generic_core_file_matches_executable_p: Core Files.        (line   49)
14109* Hash tables:                           Hash Tables.        (line    6)
14110* internal object-file format:           Canonical format.   (line   11)
14111* Linker:                                Linker Functions.   (line    6)
14112* Other functions:                       Miscellaneous.      (line  208)
14113* separate_alt_debug_file_exists:        Opening and Closing.
14114                                                             (line  323)
14115* separate_debug_file_exists:            Opening and Closing.
14116                                                             (line  314)
14117* struct bfd_iovec:                      Miscellaneous.      (line  428)
14118* target vector (_bfd_final_link):       Performing the Final Link.
14119                                                             (line    6)
14120* target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table.
14121                                                             (line    6)
14122* target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table.
14123                                                             (line    6)
14124* The HOWTO Macro:                       typedef arelent.    (line  288)
14125* what is it?:                           Overview.           (line    6)
14126
14127
14128
14129Tag Table:
14130Node: Top1058
14131Node: Overview1397
14132Node: History2448
14133Node: How It Works3394
14134Node: What BFD Version 2 Can Do4937
14135Node: BFD information loss6252
14136Node: Canonical format8784
14137Node: BFD front end13156
14138Node: typedef bfd13580
14139Node: Error reporting25541
14140Node: Miscellaneous30408
14141Node: Memory Usage49462
14142Node: Initialization50690
14143Node: Sections51149
14144Node: Section Input51632
14145Node: Section Output52997
14146Node: typedef asection55483
14147Node: section prototypes82126
14148Node: Symbols92723
14149Node: Reading Symbols94318
14150Node: Writing Symbols95425
14151Node: Mini Symbols97166
14152Node: typedef asymbol98140
14153Node: symbol handling functions104199
14154Node: Archives109541
14155Node: Formats113570
14156Node: Relocations116518
14157Node: typedef arelent117245
14158Node: howto manager132881
14159Node: Core Files254183
14160Node: Targets256221
14161Node: bfd_target258191
14162Node: Architectures281529
14163Node: Opening and Closing309665
14164Node: Internal323987
14165Node: File Caching330332
14166Node: Linker Functions332246
14167Node: Creating a Linker Hash Table333919
14168Node: Adding Symbols to the Hash Table335657
14169Node: Differing file formats336557
14170Node: Adding symbols from an object file338282
14171Node: Adding symbols from an archive340433
14172Node: Performing the Final Link342779
14173Node: Information provided by the linker344021
14174Node: Relocating the section contents345175
14175Node: Writing the symbol table346926
14176Node: Hash Tables351310
14177Node: Creating and Freeing a Hash Table352508
14178Node: Looking Up or Entering a String353758
14179Node: Traversing a Hash Table355011
14180Node: Deriving a New Hash Table Type355800
14181Node: Define the Derived Structures356866
14182Node: Write the Derived Creation Routine357947
14183Node: Write Other Derived Routines360571
14184Node: BFD back ends361886
14185Node: What to Put Where362156
14186Node: aout362336
14187Node: coff368674
14188Node: elf397507
14189Node: mmo397908
14190Node: File layout398781
14191Node: Symbol-table404708
14192Node: mmo section mapping408472
14193Node: GNU Free Documentation License412124
14194Node: BFD Index437207
14195
14196End Tag Table
14197