xref: /dragonfly/contrib/binutils-2.34/bfd/reloc.c (revision 2b3f93ea)
1 /* BFD support for handling relocation entries.
2    Copyright (C) 1990-2020 Free Software Foundation, Inc.
3    Written by Cygnus Support.
4 
5    This file is part of BFD, the Binary File Descriptor library.
6 
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 3 of the License, or
10    (at your option) any later version.
11 
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with this program; if not, write to the Free Software
19    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20    MA 02110-1301, USA.  */
21 
22 /*
23 SECTION
24 	Relocations
25 
26 	BFD maintains relocations in much the same way it maintains
27 	symbols: they are left alone until required, then read in
28 	en-masse and translated into an internal form.  A common
29 	routine <<bfd_perform_relocation>> acts upon the
30 	canonical form to do the fixup.
31 
32 	Relocations are maintained on a per section basis,
33 	while symbols are maintained on a per BFD basis.
34 
35 	All that a back end has to do to fit the BFD interface is to create
36 	a <<struct reloc_cache_entry>> for each relocation
37 	in a particular section, and fill in the right bits of the structures.
38 
39 @menu
40 @* typedef arelent::
41 @* howto manager::
42 @end menu
43 
44 */
45 
46 /* DO compile in the reloc_code name table from libbfd.h.  */
47 #define _BFD_MAKE_TABLE_bfd_reloc_code_real
48 
49 #include "sysdep.h"
50 #include "bfd.h"
51 #include "bfdlink.h"
52 #include "libbfd.h"
53 #include "bfdver.h"
54 /*
55 DOCDD
56 INODE
57 	typedef arelent, howto manager, Relocations, Relocations
58 
59 SUBSECTION
60 	typedef arelent
61 
62 	This is the structure of a relocation entry:
63 
64 CODE_FRAGMENT
65 .
66 .typedef enum bfd_reloc_status
67 .{
68 .  {* No errors detected.  Note - the value 2 is used so that it
69 .     will not be mistaken for the boolean TRUE or FALSE values.  *}
70 .  bfd_reloc_ok = 2,
71 .
72 .  {* The relocation was performed, but there was an overflow.  *}
73 .  bfd_reloc_overflow,
74 .
75 .  {* The address to relocate was not within the section supplied.  *}
76 .  bfd_reloc_outofrange,
77 .
78 .  {* Used by special functions.  *}
79 .  bfd_reloc_continue,
80 .
81 .  {* Unsupported relocation size requested.  *}
82 .  bfd_reloc_notsupported,
83 .
84 .  {* Unused.  *}
85 .  bfd_reloc_other,
86 .
87 .  {* The symbol to relocate against was undefined.  *}
88 .  bfd_reloc_undefined,
89 .
90 .  {* The relocation was performed, but may not be ok.  If this type is
91 .     returned, the error_message argument to bfd_perform_relocation
92 .     will be set.  *}
93 .  bfd_reloc_dangerous
94 . }
95 . bfd_reloc_status_type;
96 .
97 .typedef const struct reloc_howto_struct reloc_howto_type;
98 .
99 .typedef struct reloc_cache_entry
100 .{
101 .  {* A pointer into the canonical table of pointers.  *}
102 .  struct bfd_symbol **sym_ptr_ptr;
103 .
104 .  {* offset in section.  *}
105 .  bfd_size_type address;
106 .
107 .  {* addend for relocation value.  *}
108 .  bfd_vma addend;
109 .
110 .  {* Pointer to how to perform the required relocation.  *}
111 .  reloc_howto_type *howto;
112 .
113 .}
114 .arelent;
115 .
116 */
117 
118 /*
119 DESCRIPTION
120 
121 	Here is a description of each of the fields within an <<arelent>>:
122 
123 	o <<sym_ptr_ptr>>
124 
125 	The symbol table pointer points to a pointer to the symbol
126 	associated with the relocation request.  It is the pointer
127 	into the table returned by the back end's
128 	<<canonicalize_symtab>> action. @xref{Symbols}. The symbol is
129 	referenced through a pointer to a pointer so that tools like
130 	the linker can fix up all the symbols of the same name by
131 	modifying only one pointer. The relocation routine looks in
132 	the symbol and uses the base of the section the symbol is
133 	attached to and the value of the symbol as the initial
134 	relocation offset. If the symbol pointer is zero, then the
135 	section provided is looked up.
136 
137 	o <<address>>
138 
139 	The <<address>> field gives the offset in bytes from the base of
140 	the section data which owns the relocation record to the first
141 	byte of relocatable information. The actual data relocated
142 	will be relative to this point; for example, a relocation
143 	type which modifies the bottom two bytes of a four byte word
144 	would not touch the first byte pointed to in a big endian
145 	world.
146 
147 	o <<addend>>
148 
149 	The <<addend>> is a value provided by the back end to be added (!)
150 	to the relocation offset. Its interpretation is dependent upon
151 	the howto. For example, on the 68k the code:
152 
153 |        char foo[];
154 |        main()
155 |                {
156 |                return foo[0x12345678];
157 |                }
158 
159 	Could be compiled into:
160 
161 |        linkw fp,#-4
162 |        moveb @@#12345678,d0
163 |        extbl d0
164 |        unlk fp
165 |        rts
166 
167 	This could create a reloc pointing to <<foo>>, but leave the
168 	offset in the data, something like:
169 
170 |RELOCATION RECORDS FOR [.text]:
171 |offset   type      value
172 |00000006 32        _foo
173 |
174 |00000000 4e56 fffc          ; linkw fp,#-4
175 |00000004 1039 1234 5678     ; moveb @@#12345678,d0
176 |0000000a 49c0               ; extbl d0
177 |0000000c 4e5e               ; unlk fp
178 |0000000e 4e75               ; rts
179 
180 	Using coff and an 88k, some instructions don't have enough
181 	space in them to represent the full address range, and
182 	pointers have to be loaded in two parts. So you'd get something like:
183 
184 |        or.u     r13,r0,hi16(_foo+0x12345678)
185 |        ld.b     r2,r13,lo16(_foo+0x12345678)
186 |        jmp      r1
187 
188 	This should create two relocs, both pointing to <<_foo>>, and with
189 	0x12340000 in their addend field. The data would consist of:
190 
191 |RELOCATION RECORDS FOR [.text]:
192 |offset   type      value
193 |00000002 HVRT16    _foo+0x12340000
194 |00000006 LVRT16    _foo+0x12340000
195 |
196 |00000000 5da05678           ; or.u r13,r0,0x5678
197 |00000004 1c4d5678           ; ld.b r2,r13,0x5678
198 |00000008 f400c001           ; jmp r1
199 
200 	The relocation routine digs out the value from the data, adds
201 	it to the addend to get the original offset, and then adds the
202 	value of <<_foo>>. Note that all 32 bits have to be kept around
203 	somewhere, to cope with carry from bit 15 to bit 16.
204 
205 	One further example is the sparc and the a.out format. The
206 	sparc has a similar problem to the 88k, in that some
207 	instructions don't have room for an entire offset, but on the
208 	sparc the parts are created in odd sized lumps. The designers of
209 	the a.out format chose to not use the data within the section
210 	for storing part of the offset; all the offset is kept within
211 	the reloc. Anything in the data should be ignored.
212 
213 |        save %sp,-112,%sp
214 |        sethi %hi(_foo+0x12345678),%g2
215 |        ldsb [%g2+%lo(_foo+0x12345678)],%i0
216 |        ret
217 |        restore
218 
219 	Both relocs contain a pointer to <<foo>>, and the offsets
220 	contain junk.
221 
222 |RELOCATION RECORDS FOR [.text]:
223 |offset   type      value
224 |00000004 HI22      _foo+0x12345678
225 |00000008 LO10      _foo+0x12345678
226 |
227 |00000000 9de3bf90     ; save %sp,-112,%sp
228 |00000004 05000000     ; sethi %hi(_foo+0),%g2
229 |00000008 f048a000     ; ldsb [%g2+%lo(_foo+0)],%i0
230 |0000000c 81c7e008     ; ret
231 |00000010 81e80000     ; restore
232 
233 	o <<howto>>
234 
235 	The <<howto>> field can be imagined as a
236 	relocation instruction. It is a pointer to a structure which
237 	contains information on what to do with all of the other
238 	information in the reloc record and data section. A back end
239 	would normally have a relocation instruction set and turn
240 	relocations into pointers to the correct structure on input -
241 	but it would be possible to create each howto field on demand.
242 
243 */
244 
245 /*
246 SUBSUBSECTION
247 	<<enum complain_overflow>>
248 
249 	Indicates what sort of overflow checking should be done when
250 	performing a relocation.
251 
252 CODE_FRAGMENT
253 .
254 .enum complain_overflow
255 .{
256 .  {* Do not complain on overflow.  *}
257 .  complain_overflow_dont,
258 .
259 .  {* Complain if the value overflows when considered as a signed
260 .     number one bit larger than the field.  ie. A bitfield of N bits
261 .     is allowed to represent -2**n to 2**n-1.  *}
262 .  complain_overflow_bitfield,
263 .
264 .  {* Complain if the value overflows when considered as a signed
265 .     number.  *}
266 .  complain_overflow_signed,
267 .
268 .  {* Complain if the value overflows when considered as an
269 .     unsigned number.  *}
270 .  complain_overflow_unsigned
271 .};
272 
273 */
274 
275 /*
276 SUBSUBSECTION
277 	<<reloc_howto_type>>
278 
279 	The <<reloc_howto_type>> is a structure which contains all the
280 	information that libbfd needs to know to tie up a back end's data.
281 
282 CODE_FRAGMENT
283 .struct reloc_howto_struct
284 .{
285 .  {* The type field has mainly a documentary use - the back end can
286 .     do what it wants with it, though normally the back end's idea of
287 .     an external reloc number is stored in this field.  *}
288 .  unsigned int type;
289 .
290 .  {* The encoded size of the item to be relocated.  This is *not* a
291 .     power-of-two measure.  Use bfd_get_reloc_size to find the size
292 .     of the item in bytes.  *}
293 .  unsigned int size:3;
294 .
295 .  {* The number of bits in the field to be relocated.  This is used
296 .     when doing overflow checking.  *}
297 .  unsigned int bitsize:7;
298 .
299 .  {* The value the final relocation is shifted right by.  This drops
300 .     unwanted data from the relocation.  *}
301 .  unsigned int rightshift:6;
302 .
303 .  {* The bit position of the reloc value in the destination.
304 .     The relocated value is left shifted by this amount.  *}
305 .  unsigned int bitpos:6;
306 .
307 .  {* What type of overflow error should be checked for when
308 .     relocating.  *}
309 .  ENUM_BITFIELD (complain_overflow) complain_on_overflow:2;
310 .
311 .  {* The relocation value should be negated before applying.  *}
312 .  unsigned int negate:1;
313 .
314 .  {* The relocation is relative to the item being relocated.  *}
315 .  unsigned int pc_relative:1;
316 .
317 .  {* Some formats record a relocation addend in the section contents
318 .     rather than with the relocation.  For ELF formats this is the
319 .     distinction between USE_REL and USE_RELA (though the code checks
320 .     for USE_REL == 1/0).  The value of this field is TRUE if the
321 .     addend is recorded with the section contents; when performing a
322 .     partial link (ld -r) the section contents (the data) will be
323 .     modified.  The value of this field is FALSE if addends are
324 .     recorded with the relocation (in arelent.addend); when performing
325 .     a partial link the relocation will be modified.
326 .     All relocations for all ELF USE_RELA targets should set this field
327 .     to FALSE (values of TRUE should be looked on with suspicion).
328 .     However, the converse is not true: not all relocations of all ELF
329 .     USE_REL targets set this field to TRUE.  Why this is so is peculiar
330 .     to each particular target.  For relocs that aren't used in partial
331 .     links (e.g. GOT stuff) it doesn't matter what this is set to.  *}
332 .  unsigned int partial_inplace:1;
333 .
334 .  {* When some formats create PC relative instructions, they leave
335 .     the value of the pc of the place being relocated in the offset
336 .     slot of the instruction, so that a PC relative relocation can
337 .     be made just by adding in an ordinary offset (e.g., sun3 a.out).
338 .     Some formats leave the displacement part of an instruction
339 .     empty (e.g., ELF); this flag signals the fact.  *}
340 .  unsigned int pcrel_offset:1;
341 .
342 .  {* src_mask selects the part of the instruction (or data) to be used
343 .     in the relocation sum.  If the target relocations don't have an
344 .     addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
345 .     dst_mask to extract the addend from the section contents.  If
346 .     relocations do have an addend in the reloc, eg. ELF USE_RELA, this
347 .     field should normally be zero.  Non-zero values for ELF USE_RELA
348 .     targets should be viewed with suspicion as normally the value in
349 .     the dst_mask part of the section contents should be ignored.  *}
350 .  bfd_vma src_mask;
351 .
352 .  {* dst_mask selects which parts of the instruction (or data) are
353 .     replaced with a relocated value.  *}
354 .  bfd_vma dst_mask;
355 .
356 .  {* If this field is non null, then the supplied function is
357 .     called rather than the normal function.  This allows really
358 .     strange relocation methods to be accommodated.  *}
359 .  bfd_reloc_status_type (*special_function)
360 .    (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
361 .     bfd *, char **);
362 .
363 .  {* The textual name of the relocation type.  *}
364 .  const char *name;
365 .};
366 .
367 */
368 
369 /*
370 FUNCTION
371 	The HOWTO Macro
372 
373 DESCRIPTION
374 	The HOWTO macro fills in a reloc_howto_type (a typedef for
375 	const struct reloc_howto_struct).
376 
377 .#define HOWTO(type, right, size, bits, pcrel, left, ovf, func, name,	\
378 .              inplace, src_mask, dst_mask, pcrel_off)			\
379 .  { (unsigned) type, size < 0 ? -size : size, bits, right, left, ovf,	\
380 .    size < 0, pcrel, inplace, pcrel_off, src_mask, dst_mask, func, name }
381 
382 DESCRIPTION
383 	This is used to fill in an empty howto entry in an array.
384 
385 .#define EMPTY_HOWTO(C) \
386 .  HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
387 .	  NULL, FALSE, 0, 0, FALSE)
388 .
389 */
390 
391 /*
392 FUNCTION
393 	bfd_get_reloc_size
394 
395 SYNOPSIS
396 	unsigned int bfd_get_reloc_size (reloc_howto_type *);
397 
398 DESCRIPTION
399 	For a reloc_howto_type that operates on a fixed number of bytes,
400 	this returns the number of bytes operated on.
401  */
402 
403 unsigned int
404 bfd_get_reloc_size (reloc_howto_type *howto)
405 {
406   switch (howto->size)
407     {
408     case 0: return 1;
409     case 1: return 2;
410     case 2: return 4;
411     case 3: return 0;
412     case 4: return 8;
413     case 5: return 3;
414     default: abort ();
415     }
416 }
417 
418 /*
419 TYPEDEF
420 	arelent_chain
421 
422 DESCRIPTION
423 
424 	How relocs are tied together in an <<asection>>:
425 
426 .typedef struct relent_chain
427 .{
428 .  arelent relent;
429 .  struct relent_chain *next;
430 .}
431 .arelent_chain;
432 .
433 */
434 
435 /* N_ONES produces N one bits, without overflowing machine arithmetic.  */
436 #define N_ONES(n) (((((bfd_vma) 1 << ((n) - 1)) - 1) << 1) | 1)
437 
438 /*
439 FUNCTION
440 	bfd_check_overflow
441 
442 SYNOPSIS
443 	bfd_reloc_status_type bfd_check_overflow
444 	  (enum complain_overflow how,
445 	   unsigned int bitsize,
446 	   unsigned int rightshift,
447 	   unsigned int addrsize,
448 	   bfd_vma relocation);
449 
450 DESCRIPTION
451 	Perform overflow checking on @var{relocation} which has
452 	@var{bitsize} significant bits and will be shifted right by
453 	@var{rightshift} bits, on a machine with addresses containing
454 	@var{addrsize} significant bits.  The result is either of
455 	@code{bfd_reloc_ok} or @code{bfd_reloc_overflow}.
456 
457 */
458 
459 bfd_reloc_status_type
460 bfd_check_overflow (enum complain_overflow how,
461 		    unsigned int bitsize,
462 		    unsigned int rightshift,
463 		    unsigned int addrsize,
464 		    bfd_vma relocation)
465 {
466   bfd_vma fieldmask, addrmask, signmask, ss, a;
467   bfd_reloc_status_type flag = bfd_reloc_ok;
468 
469   /* Note: BITSIZE should always be <= ADDRSIZE, but in case it's not,
470      we'll be permissive: extra bits in the field mask will
471      automatically extend the address mask for purposes of the
472      overflow check.  */
473   fieldmask = N_ONES (bitsize);
474   signmask = ~fieldmask;
475   addrmask = N_ONES (addrsize) | (fieldmask << rightshift);
476   a = (relocation & addrmask) >> rightshift;
477 
478   switch (how)
479     {
480     case complain_overflow_dont:
481       break;
482 
483     case complain_overflow_signed:
484       /* If any sign bits are set, all sign bits must be set.  That
485 	 is, A must be a valid negative address after shifting.  */
486       signmask = ~ (fieldmask >> 1);
487       /* Fall thru */
488 
489     case complain_overflow_bitfield:
490       /* Bitfields are sometimes signed, sometimes unsigned.  We
491 	 explicitly allow an address wrap too, which means a bitfield
492 	 of n bits is allowed to store -2**n to 2**n-1.  Thus overflow
493 	 if the value has some, but not all, bits set outside the
494 	 field.  */
495       ss = a & signmask;
496       if (ss != 0 && ss != ((addrmask >> rightshift) & signmask))
497 	flag = bfd_reloc_overflow;
498       break;
499 
500     case complain_overflow_unsigned:
501       /* We have an overflow if the address does not fit in the field.  */
502       if ((a & signmask) != 0)
503 	flag = bfd_reloc_overflow;
504       break;
505 
506     default:
507       abort ();
508     }
509 
510   return flag;
511 }
512 
513 /*
514 FUNCTION
515 	bfd_reloc_offset_in_range
516 
517 SYNOPSIS
518 	bfd_boolean bfd_reloc_offset_in_range
519 	  (reloc_howto_type *howto,
520 	   bfd *abfd,
521 	   asection *section,
522 	   bfd_size_type offset);
523 
524 DESCRIPTION
525 	Returns TRUE if the reloc described by @var{HOWTO} can be
526 	applied at @var{OFFSET} octets in @var{SECTION}.
527 
528 */
529 
530 /* HOWTO describes a relocation, at offset OCTET.  Return whether the
531    relocation field is within SECTION of ABFD.  */
532 
533 bfd_boolean
534 bfd_reloc_offset_in_range (reloc_howto_type *howto,
535 			   bfd *abfd,
536 			   asection *section,
537 			   bfd_size_type octet)
538 {
539   bfd_size_type octet_end = bfd_get_section_limit_octets (abfd, section);
540   bfd_size_type reloc_size = bfd_get_reloc_size (howto);
541 
542   /* The reloc field must be contained entirely within the section.
543      Allow zero length fields (marker relocs or NONE relocs where no
544      relocation will be performed) at the end of the section.  */
545   return octet <= octet_end && octet + reloc_size <= octet_end;
546 }
547 
548 /* Read and return the section contents at DATA converted to a host
549    integer (bfd_vma).  The number of bytes read is given by the HOWTO.  */
550 
551 static bfd_vma
552 read_reloc (bfd *abfd, bfd_byte *data, reloc_howto_type *howto)
553 {
554   switch (howto->size)
555     {
556     case 0:
557       return bfd_get_8 (abfd, data);
558 
559     case 1:
560       return bfd_get_16 (abfd, data);
561 
562     case 2:
563       return bfd_get_32 (abfd, data);
564 
565     case 3:
566       break;
567 
568 #ifdef BFD64
569     case 4:
570       return bfd_get_64 (abfd, data);
571 #endif
572 
573     case 5:
574       return bfd_get_24 (abfd, data);
575 
576     default:
577       abort ();
578     }
579   return 0;
580 }
581 
582 /* Convert VAL to target format and write to DATA.  The number of
583    bytes written is given by the HOWTO.  */
584 
585 static void
586 write_reloc (bfd *abfd, bfd_vma val, bfd_byte *data, reloc_howto_type *howto)
587 {
588   switch (howto->size)
589     {
590     case 0:
591       bfd_put_8 (abfd, val, data);
592       break;
593 
594     case 1:
595       bfd_put_16 (abfd, val, data);
596       break;
597 
598     case 2:
599       bfd_put_32 (abfd, val, data);
600       break;
601 
602     case 3:
603       break;
604 
605 #ifdef BFD64
606     case 4:
607       bfd_put_64 (abfd, val, data);
608       break;
609 #endif
610 
611     case 5:
612       bfd_put_24 (abfd, val, data);
613       break;
614 
615     default:
616       abort ();
617     }
618 }
619 
620 /* Apply RELOCATION value to target bytes at DATA, according to
621    HOWTO.  */
622 
623 static void
624 apply_reloc (bfd *abfd, bfd_byte *data, reloc_howto_type *howto,
625 	     bfd_vma relocation)
626 {
627   bfd_vma val = read_reloc (abfd, data, howto);
628 
629   if (howto->negate)
630     relocation = -relocation;
631 
632   val = ((val & ~howto->dst_mask)
633 	 | (((val & howto->src_mask) + relocation) & howto->dst_mask));
634 
635   write_reloc (abfd, val, data, howto);
636 }
637 
638 /*
639 FUNCTION
640 	bfd_perform_relocation
641 
642 SYNOPSIS
643 	bfd_reloc_status_type bfd_perform_relocation
644 	  (bfd *abfd,
645 	   arelent *reloc_entry,
646 	   void *data,
647 	   asection *input_section,
648 	   bfd *output_bfd,
649 	   char **error_message);
650 
651 DESCRIPTION
652 	If @var{output_bfd} is supplied to this function, the
653 	generated image will be relocatable; the relocations are
654 	copied to the output file after they have been changed to
655 	reflect the new state of the world. There are two ways of
656 	reflecting the results of partial linkage in an output file:
657 	by modifying the output data in place, and by modifying the
658 	relocation record.  Some native formats (e.g., basic a.out and
659 	basic coff) have no way of specifying an addend in the
660 	relocation type, so the addend has to go in the output data.
661 	This is no big deal since in these formats the output data
662 	slot will always be big enough for the addend. Complex reloc
663 	types with addends were invented to solve just this problem.
664 	The @var{error_message} argument is set to an error message if
665 	this return @code{bfd_reloc_dangerous}.
666 
667 */
668 
669 bfd_reloc_status_type
670 bfd_perform_relocation (bfd *abfd,
671 			arelent *reloc_entry,
672 			void *data,
673 			asection *input_section,
674 			bfd *output_bfd,
675 			char **error_message)
676 {
677   bfd_vma relocation;
678   bfd_reloc_status_type flag = bfd_reloc_ok;
679   bfd_size_type octets;
680   bfd_vma output_base = 0;
681   reloc_howto_type *howto = reloc_entry->howto;
682   asection *reloc_target_output_section;
683   asymbol *symbol;
684 
685   symbol = *(reloc_entry->sym_ptr_ptr);
686 
687   /* If we are not producing relocatable output, return an error if
688      the symbol is not defined.  An undefined weak symbol is
689      considered to have a value of zero (SVR4 ABI, p. 4-27).  */
690   if (bfd_is_und_section (symbol->section)
691       && (symbol->flags & BSF_WEAK) == 0
692       && output_bfd == NULL)
693     flag = bfd_reloc_undefined;
694 
695   /* If there is a function supplied to handle this relocation type,
696      call it.  It'll return `bfd_reloc_continue' if further processing
697      can be done.  */
698   if (howto && howto->special_function)
699     {
700       bfd_reloc_status_type cont;
701 
702       /* Note - we do not call bfd_reloc_offset_in_range here as the
703 	 reloc_entry->address field might actually be valid for the
704 	 backend concerned.  It is up to the special_function itself
705 	 to call bfd_reloc_offset_in_range if needed.  */
706       cont = howto->special_function (abfd, reloc_entry, symbol, data,
707 				      input_section, output_bfd,
708 				      error_message);
709       if (cont != bfd_reloc_continue)
710 	return cont;
711     }
712 
713   if (bfd_is_abs_section (symbol->section)
714       && output_bfd != NULL)
715     {
716       reloc_entry->address += input_section->output_offset;
717       return bfd_reloc_ok;
718     }
719 
720   /* PR 17512: file: 0f67f69d.  */
721   if (howto == NULL)
722     return bfd_reloc_undefined;
723 
724   /* Is the address of the relocation really within the section?  */
725   octets = reloc_entry->address * bfd_octets_per_byte (abfd, input_section);
726   if (!bfd_reloc_offset_in_range (howto, abfd, input_section, octets))
727     return bfd_reloc_outofrange;
728 
729   /* Work out which section the relocation is targeted at and the
730      initial relocation command value.  */
731 
732   /* Get symbol value.  (Common symbols are special.)  */
733   if (bfd_is_com_section (symbol->section))
734     relocation = 0;
735   else
736     relocation = symbol->value;
737 
738   reloc_target_output_section = symbol->section->output_section;
739 
740   /* Convert input-section-relative symbol value to absolute.  */
741   if ((output_bfd && ! howto->partial_inplace)
742       || reloc_target_output_section == NULL)
743     output_base = 0;
744   else
745     output_base = reloc_target_output_section->vma;
746 
747   output_base += symbol->section->output_offset;
748 
749   /* If symbol addresses are in octets, convert to bytes.  */
750   if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
751       && (symbol->section->flags & SEC_ELF_OCTETS))
752     output_base *= bfd_octets_per_byte (abfd, input_section);
753 
754   relocation += output_base;
755 
756   /* Add in supplied addend.  */
757   relocation += reloc_entry->addend;
758 
759   /* Here the variable relocation holds the final address of the
760      symbol we are relocating against, plus any addend.  */
761 
762   if (howto->pc_relative)
763     {
764       /* This is a PC relative relocation.  We want to set RELOCATION
765 	 to the distance between the address of the symbol and the
766 	 location.  RELOCATION is already the address of the symbol.
767 
768 	 We start by subtracting the address of the section containing
769 	 the location.
770 
771 	 If pcrel_offset is set, we must further subtract the position
772 	 of the location within the section.  Some targets arrange for
773 	 the addend to be the negative of the position of the location
774 	 within the section; for example, i386-aout does this.  For
775 	 i386-aout, pcrel_offset is FALSE.  Some other targets do not
776 	 include the position of the location; for example, ELF.
777 	 For those targets, pcrel_offset is TRUE.
778 
779 	 If we are producing relocatable output, then we must ensure
780 	 that this reloc will be correctly computed when the final
781 	 relocation is done.  If pcrel_offset is FALSE we want to wind
782 	 up with the negative of the location within the section,
783 	 which means we must adjust the existing addend by the change
784 	 in the location within the section.  If pcrel_offset is TRUE
785 	 we do not want to adjust the existing addend at all.
786 
787 	 FIXME: This seems logical to me, but for the case of
788 	 producing relocatable output it is not what the code
789 	 actually does.  I don't want to change it, because it seems
790 	 far too likely that something will break.  */
791 
792       relocation -=
793 	input_section->output_section->vma + input_section->output_offset;
794 
795       if (howto->pcrel_offset)
796 	relocation -= reloc_entry->address;
797     }
798 
799   if (output_bfd != NULL)
800     {
801       if (! howto->partial_inplace)
802 	{
803 	  /* This is a partial relocation, and we want to apply the relocation
804 	     to the reloc entry rather than the raw data. Modify the reloc
805 	     inplace to reflect what we now know.  */
806 	  reloc_entry->addend = relocation;
807 	  reloc_entry->address += input_section->output_offset;
808 	  return flag;
809 	}
810       else
811 	{
812 	  /* This is a partial relocation, but inplace, so modify the
813 	     reloc record a bit.
814 
815 	     If we've relocated with a symbol with a section, change
816 	     into a ref to the section belonging to the symbol.  */
817 
818 	  reloc_entry->address += input_section->output_offset;
819 
820 	  /* WTF?? */
821 	  if (abfd->xvec->flavour == bfd_target_coff_flavour
822 	      && strcmp (abfd->xvec->name, "coff-Intel-little") != 0
823 	      && strcmp (abfd->xvec->name, "coff-Intel-big") != 0)
824 	    {
825 	      /* For m68k-coff, the addend was being subtracted twice during
826 		 relocation with -r.  Removing the line below this comment
827 		 fixes that problem; see PR 2953.
828 
829 However, Ian wrote the following, regarding removing the line below,
830 which explains why it is still enabled:  --djm
831 
832 If you put a patch like that into BFD you need to check all the COFF
833 linkers.  I am fairly certain that patch will break coff-i386 (e.g.,
834 SCO); see coff_i386_reloc in coff-i386.c where I worked around the
835 problem in a different way.  There may very well be a reason that the
836 code works as it does.
837 
838 Hmmm.  The first obvious point is that bfd_perform_relocation should
839 not have any tests that depend upon the flavour.  It's seem like
840 entirely the wrong place for such a thing.  The second obvious point
841 is that the current code ignores the reloc addend when producing
842 relocatable output for COFF.  That's peculiar.  In fact, I really
843 have no idea what the point of the line you want to remove is.
844 
845 A typical COFF reloc subtracts the old value of the symbol and adds in
846 the new value to the location in the object file (if it's a pc
847 relative reloc it adds the difference between the symbol value and the
848 location).  When relocating we need to preserve that property.
849 
850 BFD handles this by setting the addend to the negative of the old
851 value of the symbol.  Unfortunately it handles common symbols in a
852 non-standard way (it doesn't subtract the old value) but that's a
853 different story (we can't change it without losing backward
854 compatibility with old object files) (coff-i386 does subtract the old
855 value, to be compatible with existing coff-i386 targets, like SCO).
856 
857 So everything works fine when not producing relocatable output.  When
858 we are producing relocatable output, logically we should do exactly
859 what we do when not producing relocatable output.  Therefore, your
860 patch is correct.  In fact, it should probably always just set
861 reloc_entry->addend to 0 for all cases, since it is, in fact, going to
862 add the value into the object file.  This won't hurt the COFF code,
863 which doesn't use the addend; I'm not sure what it will do to other
864 formats (the thing to check for would be whether any formats both use
865 the addend and set partial_inplace).
866 
867 When I wanted to make coff-i386 produce relocatable output, I ran
868 into the problem that you are running into: I wanted to remove that
869 line.  Rather than risk it, I made the coff-i386 relocs use a special
870 function; it's coff_i386_reloc in coff-i386.c.  The function
871 specifically adds the addend field into the object file, knowing that
872 bfd_perform_relocation is not going to.  If you remove that line, then
873 coff-i386.c will wind up adding the addend field in twice.  It's
874 trivial to fix; it just needs to be done.
875 
876 The problem with removing the line is just that it may break some
877 working code.  With BFD it's hard to be sure of anything.  The right
878 way to deal with this is simply to build and test at least all the
879 supported COFF targets.  It should be straightforward if time and disk
880 space consuming.  For each target:
881     1) build the linker
882     2) generate some executable, and link it using -r (I would
883        probably use paranoia.o and link against newlib/libc.a, which
884        for all the supported targets would be available in
885        /usr/cygnus/progressive/H-host/target/lib/libc.a).
886     3) make the change to reloc.c
887     4) rebuild the linker
888     5) repeat step 2
889     6) if the resulting object files are the same, you have at least
890        made it no worse
891     7) if they are different you have to figure out which version is
892        right
893 */
894 	      relocation -= reloc_entry->addend;
895 	      reloc_entry->addend = 0;
896 	    }
897 	  else
898 	    {
899 	      reloc_entry->addend = relocation;
900 	    }
901 	}
902     }
903 
904   /* FIXME: This overflow checking is incomplete, because the value
905      might have overflowed before we get here.  For a correct check we
906      need to compute the value in a size larger than bitsize, but we
907      can't reasonably do that for a reloc the same size as a host
908      machine word.
909      FIXME: We should also do overflow checking on the result after
910      adding in the value contained in the object file.  */
911   if (howto->complain_on_overflow != complain_overflow_dont
912       && flag == bfd_reloc_ok)
913     flag = bfd_check_overflow (howto->complain_on_overflow,
914 			       howto->bitsize,
915 			       howto->rightshift,
916 			       bfd_arch_bits_per_address (abfd),
917 			       relocation);
918 
919   /* Either we are relocating all the way, or we don't want to apply
920      the relocation to the reloc entry (probably because there isn't
921      any room in the output format to describe addends to relocs).  */
922 
923   /* The cast to bfd_vma avoids a bug in the Alpha OSF/1 C compiler
924      (OSF version 1.3, compiler version 3.11).  It miscompiles the
925      following program:
926 
927      struct str
928      {
929        unsigned int i0;
930      } s = { 0 };
931 
932      int
933      main ()
934      {
935        unsigned long x;
936 
937        x = 0x100000000;
938        x <<= (unsigned long) s.i0;
939        if (x == 0)
940 	 printf ("failed\n");
941        else
942 	 printf ("succeeded (%lx)\n", x);
943      }
944      */
945 
946   relocation >>= (bfd_vma) howto->rightshift;
947 
948   /* Shift everything up to where it's going to be used.  */
949   relocation <<= (bfd_vma) howto->bitpos;
950 
951   /* Wait for the day when all have the mask in them.  */
952 
953   /* What we do:
954      i instruction to be left alone
955      o offset within instruction
956      r relocation offset to apply
957      S src mask
958      D dst mask
959      N ~dst mask
960      A part 1
961      B part 2
962      R result
963 
964      Do this:
965      ((	 i i i i i o o o o o  from bfd_get<size>
966      and	   S S S S S) to get the size offset we want
967      +	 r r r r r r r r r r) to get the final value to place
968      and	   D D D D D  to chop to right size
969      -----------------------
970      =		   A A A A A
971      And this:
972      (	 i i i i i o o o o o  from bfd_get<size>
973      and N N N N N	    ) get instruction
974      -----------------------
975      =	 B B B B B
976 
977      And then:
978      (	 B B B B B
979      or		   A A A A A)
980      -----------------------
981      =	 R R R R R R R R R R  put into bfd_put<size>
982      */
983 
984   data = (bfd_byte *) data + octets;
985   apply_reloc (abfd, data, howto, relocation);
986   return flag;
987 }
988 
989 /*
990 FUNCTION
991 	bfd_install_relocation
992 
993 SYNOPSIS
994 	bfd_reloc_status_type bfd_install_relocation
995 	  (bfd *abfd,
996 	   arelent *reloc_entry,
997 	   void *data, bfd_vma data_start,
998 	   asection *input_section,
999 	   char **error_message);
1000 
1001 DESCRIPTION
1002 	This looks remarkably like <<bfd_perform_relocation>>, except it
1003 	does not expect that the section contents have been filled in.
1004 	I.e., it's suitable for use when creating, rather than applying
1005 	a relocation.
1006 
1007 	For now, this function should be considered reserved for the
1008 	assembler.
1009 */
1010 
1011 bfd_reloc_status_type
1012 bfd_install_relocation (bfd *abfd,
1013 			arelent *reloc_entry,
1014 			void *data_start,
1015 			bfd_vma data_start_offset,
1016 			asection *input_section,
1017 			char **error_message)
1018 {
1019   bfd_vma relocation;
1020   bfd_reloc_status_type flag = bfd_reloc_ok;
1021   bfd_size_type octets;
1022   bfd_vma output_base = 0;
1023   reloc_howto_type *howto = reloc_entry->howto;
1024   asection *reloc_target_output_section;
1025   asymbol *symbol;
1026   bfd_byte *data;
1027 
1028   symbol = *(reloc_entry->sym_ptr_ptr);
1029 
1030   /* If there is a function supplied to handle this relocation type,
1031      call it.  It'll return `bfd_reloc_continue' if further processing
1032      can be done.  */
1033   if (howto && howto->special_function)
1034     {
1035       bfd_reloc_status_type cont;
1036 
1037       /* Note - we do not call bfd_reloc_offset_in_range here as the
1038 	 reloc_entry->address field might actually be valid for the
1039 	 backend concerned.  It is up to the special_function itself
1040 	 to call bfd_reloc_offset_in_range if needed.  */
1041       /* XXX - The special_function calls haven't been fixed up to deal
1042 	 with creating new relocations and section contents.  */
1043       cont = howto->special_function (abfd, reloc_entry, symbol,
1044 				      /* XXX - Non-portable! */
1045 				      ((bfd_byte *) data_start
1046 				       - data_start_offset),
1047 				      input_section, abfd, error_message);
1048       if (cont != bfd_reloc_continue)
1049 	return cont;
1050     }
1051 
1052   if (bfd_is_abs_section (symbol->section))
1053     {
1054       reloc_entry->address += input_section->output_offset;
1055       return bfd_reloc_ok;
1056     }
1057 
1058   /* No need to check for howto != NULL if !bfd_is_abs_section as
1059      it will have been checked in `bfd_perform_relocation already'.  */
1060 
1061   /* Is the address of the relocation really within the section?  */
1062   octets = reloc_entry->address * bfd_octets_per_byte (abfd, input_section);
1063   if (!bfd_reloc_offset_in_range (howto, abfd, input_section, octets))
1064     return bfd_reloc_outofrange;
1065 
1066   /* Work out which section the relocation is targeted at and the
1067      initial relocation command value.  */
1068 
1069   /* Get symbol value.  (Common symbols are special.)  */
1070   if (bfd_is_com_section (symbol->section))
1071     relocation = 0;
1072   else
1073     relocation = symbol->value;
1074 
1075   reloc_target_output_section = symbol->section->output_section;
1076 
1077   /* Convert input-section-relative symbol value to absolute.  */
1078   if (! howto->partial_inplace)
1079     output_base = 0;
1080   else
1081     output_base = reloc_target_output_section->vma;
1082 
1083   output_base += symbol->section->output_offset;
1084 
1085   /* If symbol addresses are in octets, convert to bytes.  */
1086   if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
1087       && (symbol->section->flags & SEC_ELF_OCTETS))
1088     output_base *= bfd_octets_per_byte (abfd, input_section);
1089 
1090   relocation += output_base;
1091 
1092   /* Add in supplied addend.  */
1093   relocation += reloc_entry->addend;
1094 
1095   /* Here the variable relocation holds the final address of the
1096      symbol we are relocating against, plus any addend.  */
1097 
1098   if (howto->pc_relative)
1099     {
1100       /* This is a PC relative relocation.  We want to set RELOCATION
1101 	 to the distance between the address of the symbol and the
1102 	 location.  RELOCATION is already the address of the symbol.
1103 
1104 	 We start by subtracting the address of the section containing
1105 	 the location.
1106 
1107 	 If pcrel_offset is set, we must further subtract the position
1108 	 of the location within the section.  Some targets arrange for
1109 	 the addend to be the negative of the position of the location
1110 	 within the section; for example, i386-aout does this.  For
1111 	 i386-aout, pcrel_offset is FALSE.  Some other targets do not
1112 	 include the position of the location; for example, ELF.
1113 	 For those targets, pcrel_offset is TRUE.
1114 
1115 	 If we are producing relocatable output, then we must ensure
1116 	 that this reloc will be correctly computed when the final
1117 	 relocation is done.  If pcrel_offset is FALSE we want to wind
1118 	 up with the negative of the location within the section,
1119 	 which means we must adjust the existing addend by the change
1120 	 in the location within the section.  If pcrel_offset is TRUE
1121 	 we do not want to adjust the existing addend at all.
1122 
1123 	 FIXME: This seems logical to me, but for the case of
1124 	 producing relocatable output it is not what the code
1125 	 actually does.  I don't want to change it, because it seems
1126 	 far too likely that something will break.  */
1127 
1128       relocation -=
1129 	input_section->output_section->vma + input_section->output_offset;
1130 
1131       if (howto->pcrel_offset && howto->partial_inplace)
1132 	relocation -= reloc_entry->address;
1133     }
1134 
1135   if (! howto->partial_inplace)
1136     {
1137       /* This is a partial relocation, and we want to apply the relocation
1138 	 to the reloc entry rather than the raw data. Modify the reloc
1139 	 inplace to reflect what we now know.  */
1140       reloc_entry->addend = relocation;
1141       reloc_entry->address += input_section->output_offset;
1142       return flag;
1143     }
1144   else
1145     {
1146       /* This is a partial relocation, but inplace, so modify the
1147 	 reloc record a bit.
1148 
1149 	 If we've relocated with a symbol with a section, change
1150 	 into a ref to the section belonging to the symbol.  */
1151       reloc_entry->address += input_section->output_offset;
1152 
1153       /* WTF?? */
1154       if (abfd->xvec->flavour == bfd_target_coff_flavour
1155 	  && strcmp (abfd->xvec->name, "coff-Intel-little") != 0
1156 	  && strcmp (abfd->xvec->name, "coff-Intel-big") != 0)
1157 	{
1158 
1159 	  /* For m68k-coff, the addend was being subtracted twice during
1160 	     relocation with -r.  Removing the line below this comment
1161 	     fixes that problem; see PR 2953.
1162 
1163 However, Ian wrote the following, regarding removing the line below,
1164 which explains why it is still enabled:  --djm
1165 
1166 If you put a patch like that into BFD you need to check all the COFF
1167 linkers.  I am fairly certain that patch will break coff-i386 (e.g.,
1168 SCO); see coff_i386_reloc in coff-i386.c where I worked around the
1169 problem in a different way.  There may very well be a reason that the
1170 code works as it does.
1171 
1172 Hmmm.  The first obvious point is that bfd_install_relocation should
1173 not have any tests that depend upon the flavour.  It's seem like
1174 entirely the wrong place for such a thing.  The second obvious point
1175 is that the current code ignores the reloc addend when producing
1176 relocatable output for COFF.  That's peculiar.  In fact, I really
1177 have no idea what the point of the line you want to remove is.
1178 
1179 A typical COFF reloc subtracts the old value of the symbol and adds in
1180 the new value to the location in the object file (if it's a pc
1181 relative reloc it adds the difference between the symbol value and the
1182 location).  When relocating we need to preserve that property.
1183 
1184 BFD handles this by setting the addend to the negative of the old
1185 value of the symbol.  Unfortunately it handles common symbols in a
1186 non-standard way (it doesn't subtract the old value) but that's a
1187 different story (we can't change it without losing backward
1188 compatibility with old object files) (coff-i386 does subtract the old
1189 value, to be compatible with existing coff-i386 targets, like SCO).
1190 
1191 So everything works fine when not producing relocatable output.  When
1192 we are producing relocatable output, logically we should do exactly
1193 what we do when not producing relocatable output.  Therefore, your
1194 patch is correct.  In fact, it should probably always just set
1195 reloc_entry->addend to 0 for all cases, since it is, in fact, going to
1196 add the value into the object file.  This won't hurt the COFF code,
1197 which doesn't use the addend; I'm not sure what it will do to other
1198 formats (the thing to check for would be whether any formats both use
1199 the addend and set partial_inplace).
1200 
1201 When I wanted to make coff-i386 produce relocatable output, I ran
1202 into the problem that you are running into: I wanted to remove that
1203 line.  Rather than risk it, I made the coff-i386 relocs use a special
1204 function; it's coff_i386_reloc in coff-i386.c.  The function
1205 specifically adds the addend field into the object file, knowing that
1206 bfd_install_relocation is not going to.  If you remove that line, then
1207 coff-i386.c will wind up adding the addend field in twice.  It's
1208 trivial to fix; it just needs to be done.
1209 
1210 The problem with removing the line is just that it may break some
1211 working code.  With BFD it's hard to be sure of anything.  The right
1212 way to deal with this is simply to build and test at least all the
1213 supported COFF targets.  It should be straightforward if time and disk
1214 space consuming.  For each target:
1215     1) build the linker
1216     2) generate some executable, and link it using -r (I would
1217        probably use paranoia.o and link against newlib/libc.a, which
1218        for all the supported targets would be available in
1219        /usr/cygnus/progressive/H-host/target/lib/libc.a).
1220     3) make the change to reloc.c
1221     4) rebuild the linker
1222     5) repeat step 2
1223     6) if the resulting object files are the same, you have at least
1224        made it no worse
1225     7) if they are different you have to figure out which version is
1226        right.  */
1227 	  relocation -= reloc_entry->addend;
1228 	  /* FIXME: There should be no target specific code here...  */
1229 	  if (strcmp (abfd->xvec->name, "coff-z8k") != 0)
1230 	    reloc_entry->addend = 0;
1231 	}
1232       else
1233 	{
1234 	  reloc_entry->addend = relocation;
1235 	}
1236     }
1237 
1238   /* FIXME: This overflow checking is incomplete, because the value
1239      might have overflowed before we get here.  For a correct check we
1240      need to compute the value in a size larger than bitsize, but we
1241      can't reasonably do that for a reloc the same size as a host
1242      machine word.
1243      FIXME: We should also do overflow checking on the result after
1244      adding in the value contained in the object file.  */
1245   if (howto->complain_on_overflow != complain_overflow_dont)
1246     flag = bfd_check_overflow (howto->complain_on_overflow,
1247 			       howto->bitsize,
1248 			       howto->rightshift,
1249 			       bfd_arch_bits_per_address (abfd),
1250 			       relocation);
1251 
1252   /* Either we are relocating all the way, or we don't want to apply
1253      the relocation to the reloc entry (probably because there isn't
1254      any room in the output format to describe addends to relocs).  */
1255 
1256   /* The cast to bfd_vma avoids a bug in the Alpha OSF/1 C compiler
1257      (OSF version 1.3, compiler version 3.11).  It miscompiles the
1258      following program:
1259 
1260      struct str
1261      {
1262        unsigned int i0;
1263      } s = { 0 };
1264 
1265      int
1266      main ()
1267      {
1268        unsigned long x;
1269 
1270        x = 0x100000000;
1271        x <<= (unsigned long) s.i0;
1272        if (x == 0)
1273 	 printf ("failed\n");
1274        else
1275 	 printf ("succeeded (%lx)\n", x);
1276      }
1277      */
1278 
1279   relocation >>= (bfd_vma) howto->rightshift;
1280 
1281   /* Shift everything up to where it's going to be used.  */
1282   relocation <<= (bfd_vma) howto->bitpos;
1283 
1284   /* Wait for the day when all have the mask in them.  */
1285 
1286   /* What we do:
1287      i instruction to be left alone
1288      o offset within instruction
1289      r relocation offset to apply
1290      S src mask
1291      D dst mask
1292      N ~dst mask
1293      A part 1
1294      B part 2
1295      R result
1296 
1297      Do this:
1298      ((	 i i i i i o o o o o  from bfd_get<size>
1299      and	   S S S S S) to get the size offset we want
1300      +	 r r r r r r r r r r) to get the final value to place
1301      and	   D D D D D  to chop to right size
1302      -----------------------
1303      =		   A A A A A
1304      And this:
1305      (	 i i i i i o o o o o  from bfd_get<size>
1306      and N N N N N	    ) get instruction
1307      -----------------------
1308      =	 B B B B B
1309 
1310      And then:
1311      (	 B B B B B
1312      or		   A A A A A)
1313      -----------------------
1314      =	 R R R R R R R R R R  put into bfd_put<size>
1315      */
1316 
1317   data = (bfd_byte *) data_start + (octets - data_start_offset);
1318   apply_reloc (abfd, data, howto, relocation);
1319   return flag;
1320 }
1321 
1322 /* This relocation routine is used by some of the backend linkers.
1323    They do not construct asymbol or arelent structures, so there is no
1324    reason for them to use bfd_perform_relocation.  Also,
1325    bfd_perform_relocation is so hacked up it is easier to write a new
1326    function than to try to deal with it.
1327 
1328    This routine does a final relocation.  Whether it is useful for a
1329    relocatable link depends upon how the object format defines
1330    relocations.
1331 
1332    FIXME: This routine ignores any special_function in the HOWTO,
1333    since the existing special_function values have been written for
1334    bfd_perform_relocation.
1335 
1336    HOWTO is the reloc howto information.
1337    INPUT_BFD is the BFD which the reloc applies to.
1338    INPUT_SECTION is the section which the reloc applies to.
1339    CONTENTS is the contents of the section.
1340    ADDRESS is the address of the reloc within INPUT_SECTION.
1341    VALUE is the value of the symbol the reloc refers to.
1342    ADDEND is the addend of the reloc.  */
1343 
1344 bfd_reloc_status_type
1345 _bfd_final_link_relocate (reloc_howto_type *howto,
1346 			  bfd *input_bfd,
1347 			  asection *input_section,
1348 			  bfd_byte *contents,
1349 			  bfd_vma address,
1350 			  bfd_vma value,
1351 			  bfd_vma addend)
1352 {
1353   bfd_vma relocation;
1354   bfd_size_type octets = (address
1355 			  * bfd_octets_per_byte (input_bfd, input_section));
1356 
1357   /* Sanity check the address.  */
1358   if (!bfd_reloc_offset_in_range (howto, input_bfd, input_section, octets))
1359     return bfd_reloc_outofrange;
1360 
1361   /* This function assumes that we are dealing with a basic relocation
1362      against a symbol.  We want to compute the value of the symbol to
1363      relocate to.  This is just VALUE, the value of the symbol, plus
1364      ADDEND, any addend associated with the reloc.  */
1365   relocation = value + addend;
1366 
1367   /* If the relocation is PC relative, we want to set RELOCATION to
1368      the distance between the symbol (currently in RELOCATION) and the
1369      location we are relocating.  Some targets (e.g., i386-aout)
1370      arrange for the contents of the section to be the negative of the
1371      offset of the location within the section; for such targets
1372      pcrel_offset is FALSE.  Other targets (e.g., ELF) simply leave
1373      the contents of the section as zero; for such targets
1374      pcrel_offset is TRUE.  If pcrel_offset is FALSE we do not need to
1375      subtract out the offset of the location within the section (which
1376      is just ADDRESS).  */
1377   if (howto->pc_relative)
1378     {
1379       relocation -= (input_section->output_section->vma
1380 		     + input_section->output_offset);
1381       if (howto->pcrel_offset)
1382 	relocation -= address;
1383     }
1384 
1385   return _bfd_relocate_contents (howto, input_bfd, relocation,
1386 				 contents + octets);
1387 }
1388 
1389 /* Relocate a given location using a given value and howto.  */
1390 
1391 bfd_reloc_status_type
1392 _bfd_relocate_contents (reloc_howto_type *howto,
1393 			bfd *input_bfd,
1394 			bfd_vma relocation,
1395 			bfd_byte *location)
1396 {
1397   bfd_vma x;
1398   bfd_reloc_status_type flag;
1399   unsigned int rightshift = howto->rightshift;
1400   unsigned int bitpos = howto->bitpos;
1401 
1402   if (howto->negate)
1403     relocation = -relocation;
1404 
1405   /* Get the value we are going to relocate.  */
1406   x = read_reloc (input_bfd, location, howto);
1407 
1408   /* Check for overflow.  FIXME: We may drop bits during the addition
1409      which we don't check for.  We must either check at every single
1410      operation, which would be tedious, or we must do the computations
1411      in a type larger than bfd_vma, which would be inefficient.  */
1412   flag = bfd_reloc_ok;
1413   if (howto->complain_on_overflow != complain_overflow_dont)
1414     {
1415       bfd_vma addrmask, fieldmask, signmask, ss;
1416       bfd_vma a, b, sum;
1417 
1418       /* Get the values to be added together.  For signed and unsigned
1419 	 relocations, we assume that all values should be truncated to
1420 	 the size of an address.  For bitfields, all the bits matter.
1421 	 See also bfd_check_overflow.  */
1422       fieldmask = N_ONES (howto->bitsize);
1423       signmask = ~fieldmask;
1424       addrmask = (N_ONES (bfd_arch_bits_per_address (input_bfd))
1425 		  | (fieldmask << rightshift));
1426       a = (relocation & addrmask) >> rightshift;
1427       b = (x & howto->src_mask & addrmask) >> bitpos;
1428       addrmask >>= rightshift;
1429 
1430       switch (howto->complain_on_overflow)
1431 	{
1432 	case complain_overflow_signed:
1433 	  /* If any sign bits are set, all sign bits must be set.
1434 	     That is, A must be a valid negative address after
1435 	     shifting.  */
1436 	  signmask = ~(fieldmask >> 1);
1437 	  /* Fall thru */
1438 
1439 	case complain_overflow_bitfield:
1440 	  /* Much like the signed check, but for a field one bit
1441 	     wider.  We allow a bitfield to represent numbers in the
1442 	     range -2**n to 2**n-1, where n is the number of bits in the
1443 	     field.  Note that when bfd_vma is 32 bits, a 32-bit reloc
1444 	     can't overflow, which is exactly what we want.  */
1445 	  ss = a & signmask;
1446 	  if (ss != 0 && ss != (addrmask & signmask))
1447 	    flag = bfd_reloc_overflow;
1448 
1449 	  /* We only need this next bit of code if the sign bit of B
1450 	     is below the sign bit of A.  This would only happen if
1451 	     SRC_MASK had fewer bits than BITSIZE.  Note that if
1452 	     SRC_MASK has more bits than BITSIZE, we can get into
1453 	     trouble; we would need to verify that B is in range, as
1454 	     we do for A above.  */
1455 	  ss = ((~howto->src_mask) >> 1) & howto->src_mask;
1456 	  ss >>= bitpos;
1457 
1458 	  /* Set all the bits above the sign bit.  */
1459 	  b = (b ^ ss) - ss;
1460 
1461 	  /* Now we can do the addition.  */
1462 	  sum = a + b;
1463 
1464 	  /* See if the result has the correct sign.  Bits above the
1465 	     sign bit are junk now; ignore them.  If the sum is
1466 	     positive, make sure we did not have all negative inputs;
1467 	     if the sum is negative, make sure we did not have all
1468 	     positive inputs.  The test below looks only at the sign
1469 	     bits, and it really just
1470 		 SIGN (A) == SIGN (B) && SIGN (A) != SIGN (SUM)
1471 
1472 	     We mask with addrmask here to explicitly allow an address
1473 	     wrap-around.  The Linux kernel relies on it, and it is
1474 	     the only way to write assembler code which can run when
1475 	     loaded at a location 0x80000000 away from the location at
1476 	     which it is linked.  */
1477 	  if (((~(a ^ b)) & (a ^ sum)) & signmask & addrmask)
1478 	    flag = bfd_reloc_overflow;
1479 	  break;
1480 
1481 	case complain_overflow_unsigned:
1482 	  /* Checking for an unsigned overflow is relatively easy:
1483 	     trim the addresses and add, and trim the result as well.
1484 	     Overflow is normally indicated when the result does not
1485 	     fit in the field.  However, we also need to consider the
1486 	     case when, e.g., fieldmask is 0x7fffffff or smaller, an
1487 	     input is 0x80000000, and bfd_vma is only 32 bits; then we
1488 	     will get sum == 0, but there is an overflow, since the
1489 	     inputs did not fit in the field.  Instead of doing a
1490 	     separate test, we can check for this by or-ing in the
1491 	     operands when testing for the sum overflowing its final
1492 	     field.  */
1493 	  sum = (a + b) & addrmask;
1494 	  if ((a | b | sum) & signmask)
1495 	    flag = bfd_reloc_overflow;
1496 	  break;
1497 
1498 	default:
1499 	  abort ();
1500 	}
1501     }
1502 
1503   /* Put RELOCATION in the right bits.  */
1504   relocation >>= (bfd_vma) rightshift;
1505   relocation <<= (bfd_vma) bitpos;
1506 
1507   /* Add RELOCATION to the right bits of X.  */
1508   x = ((x & ~howto->dst_mask)
1509        | (((x & howto->src_mask) + relocation) & howto->dst_mask));
1510 
1511   /* Put the relocated value back in the object file.  */
1512   write_reloc (input_bfd, x, location, howto);
1513   return flag;
1514 }
1515 
1516 /* Clear a given location using a given howto, by applying a fixed relocation
1517    value and discarding any in-place addend.  This is used for fixed-up
1518    relocations against discarded symbols, to make ignorable debug or unwind
1519    information more obvious.  */
1520 
1521 bfd_reloc_status_type
1522 _bfd_clear_contents (reloc_howto_type *howto,
1523 		     bfd *input_bfd,
1524 		     asection *input_section,
1525 		     bfd_byte *buf,
1526 		     bfd_vma off)
1527 {
1528   bfd_vma x;
1529   bfd_byte *location;
1530 
1531   if (!bfd_reloc_offset_in_range (howto, input_bfd, input_section, off))
1532     return bfd_reloc_outofrange;
1533 
1534   /* Get the value we are going to relocate.  */
1535   location = buf + off;
1536   x = read_reloc (input_bfd, location, howto);
1537 
1538   /* Zero out the unwanted bits of X.  */
1539   x &= ~howto->dst_mask;
1540 
1541   /* For a range list, use 1 instead of 0 as placeholder.  0
1542      would terminate the list, hiding any later entries.  */
1543   if (strcmp (bfd_section_name (input_section), ".debug_ranges") == 0
1544       && (howto->dst_mask & 1) != 0)
1545     x |= 1;
1546 
1547   /* Put the relocated value back in the object file.  */
1548   write_reloc (input_bfd, x, location, howto);
1549   return bfd_reloc_ok;
1550 }
1551 
1552 /*
1553 DOCDD
1554 INODE
1555 	howto manager,  , typedef arelent, Relocations
1556 
1557 SUBSECTION
1558 	The howto manager
1559 
1560 	When an application wants to create a relocation, but doesn't
1561 	know what the target machine might call it, it can find out by
1562 	using this bit of code.
1563 
1564 */
1565 
1566 /*
1567 TYPEDEF
1568 	bfd_reloc_code_type
1569 
1570 DESCRIPTION
1571 	The insides of a reloc code.  The idea is that, eventually, there
1572 	will be one enumerator for every type of relocation we ever do.
1573 	Pass one of these values to <<bfd_reloc_type_lookup>>, and it'll
1574 	return a howto pointer.
1575 
1576 	This does mean that the application must determine the correct
1577 	enumerator value; you can't get a howto pointer from a random set
1578 	of attributes.
1579 
1580 SENUM
1581    bfd_reloc_code_real
1582 
1583 ENUM
1584   BFD_RELOC_64
1585 ENUMX
1586   BFD_RELOC_32
1587 ENUMX
1588   BFD_RELOC_26
1589 ENUMX
1590   BFD_RELOC_24
1591 ENUMX
1592   BFD_RELOC_16
1593 ENUMX
1594   BFD_RELOC_14
1595 ENUMX
1596   BFD_RELOC_8
1597 ENUMDOC
1598   Basic absolute relocations of N bits.
1599 
1600 ENUM
1601   BFD_RELOC_64_PCREL
1602 ENUMX
1603   BFD_RELOC_32_PCREL
1604 ENUMX
1605   BFD_RELOC_24_PCREL
1606 ENUMX
1607   BFD_RELOC_16_PCREL
1608 ENUMX
1609   BFD_RELOC_12_PCREL
1610 ENUMX
1611   BFD_RELOC_8_PCREL
1612 ENUMDOC
1613   PC-relative relocations.  Sometimes these are relative to the address
1614 of the relocation itself; sometimes they are relative to the start of
1615 the section containing the relocation.  It depends on the specific target.
1616 
1617 ENUM
1618   BFD_RELOC_32_SECREL
1619 ENUMDOC
1620   Section relative relocations.  Some targets need this for DWARF2.
1621 
1622 ENUM
1623   BFD_RELOC_32_GOT_PCREL
1624 ENUMX
1625   BFD_RELOC_16_GOT_PCREL
1626 ENUMX
1627   BFD_RELOC_8_GOT_PCREL
1628 ENUMX
1629   BFD_RELOC_32_GOTOFF
1630 ENUMX
1631   BFD_RELOC_16_GOTOFF
1632 ENUMX
1633   BFD_RELOC_LO16_GOTOFF
1634 ENUMX
1635   BFD_RELOC_HI16_GOTOFF
1636 ENUMX
1637   BFD_RELOC_HI16_S_GOTOFF
1638 ENUMX
1639   BFD_RELOC_8_GOTOFF
1640 ENUMX
1641   BFD_RELOC_64_PLT_PCREL
1642 ENUMX
1643   BFD_RELOC_32_PLT_PCREL
1644 ENUMX
1645   BFD_RELOC_24_PLT_PCREL
1646 ENUMX
1647   BFD_RELOC_16_PLT_PCREL
1648 ENUMX
1649   BFD_RELOC_8_PLT_PCREL
1650 ENUMX
1651   BFD_RELOC_64_PLTOFF
1652 ENUMX
1653   BFD_RELOC_32_PLTOFF
1654 ENUMX
1655   BFD_RELOC_16_PLTOFF
1656 ENUMX
1657   BFD_RELOC_LO16_PLTOFF
1658 ENUMX
1659   BFD_RELOC_HI16_PLTOFF
1660 ENUMX
1661   BFD_RELOC_HI16_S_PLTOFF
1662 ENUMX
1663   BFD_RELOC_8_PLTOFF
1664 ENUMDOC
1665   For ELF.
1666 
1667 ENUM
1668   BFD_RELOC_SIZE32
1669 ENUMX
1670   BFD_RELOC_SIZE64
1671 ENUMDOC
1672   Size relocations.
1673 
1674 ENUM
1675   BFD_RELOC_68K_GLOB_DAT
1676 ENUMX
1677   BFD_RELOC_68K_JMP_SLOT
1678 ENUMX
1679   BFD_RELOC_68K_RELATIVE
1680 ENUMX
1681   BFD_RELOC_68K_TLS_GD32
1682 ENUMX
1683   BFD_RELOC_68K_TLS_GD16
1684 ENUMX
1685   BFD_RELOC_68K_TLS_GD8
1686 ENUMX
1687   BFD_RELOC_68K_TLS_LDM32
1688 ENUMX
1689   BFD_RELOC_68K_TLS_LDM16
1690 ENUMX
1691   BFD_RELOC_68K_TLS_LDM8
1692 ENUMX
1693   BFD_RELOC_68K_TLS_LDO32
1694 ENUMX
1695   BFD_RELOC_68K_TLS_LDO16
1696 ENUMX
1697   BFD_RELOC_68K_TLS_LDO8
1698 ENUMX
1699   BFD_RELOC_68K_TLS_IE32
1700 ENUMX
1701   BFD_RELOC_68K_TLS_IE16
1702 ENUMX
1703   BFD_RELOC_68K_TLS_IE8
1704 ENUMX
1705   BFD_RELOC_68K_TLS_LE32
1706 ENUMX
1707   BFD_RELOC_68K_TLS_LE16
1708 ENUMX
1709   BFD_RELOC_68K_TLS_LE8
1710 ENUMDOC
1711   Relocations used by 68K ELF.
1712 
1713 ENUM
1714   BFD_RELOC_32_BASEREL
1715 ENUMX
1716   BFD_RELOC_16_BASEREL
1717 ENUMX
1718   BFD_RELOC_LO16_BASEREL
1719 ENUMX
1720   BFD_RELOC_HI16_BASEREL
1721 ENUMX
1722   BFD_RELOC_HI16_S_BASEREL
1723 ENUMX
1724   BFD_RELOC_8_BASEREL
1725 ENUMX
1726   BFD_RELOC_RVA
1727 ENUMDOC
1728   Linkage-table relative.
1729 
1730 ENUM
1731   BFD_RELOC_8_FFnn
1732 ENUMDOC
1733   Absolute 8-bit relocation, but used to form an address like 0xFFnn.
1734 
1735 ENUM
1736   BFD_RELOC_32_PCREL_S2
1737 ENUMX
1738   BFD_RELOC_16_PCREL_S2
1739 ENUMX
1740   BFD_RELOC_23_PCREL_S2
1741 ENUMDOC
1742   These PC-relative relocations are stored as word displacements --
1743 i.e., byte displacements shifted right two bits.  The 30-bit word
1744 displacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the
1745 SPARC.  (SPARC tools generally refer to this as <<WDISP30>>.)  The
1746 signed 16-bit displacement is used on the MIPS, and the 23-bit
1747 displacement is used on the Alpha.
1748 
1749 ENUM
1750   BFD_RELOC_HI22
1751 ENUMX
1752   BFD_RELOC_LO10
1753 ENUMDOC
1754   High 22 bits and low 10 bits of 32-bit value, placed into lower bits of
1755 the target word.  These are used on the SPARC.
1756 
1757 ENUM
1758   BFD_RELOC_GPREL16
1759 ENUMX
1760   BFD_RELOC_GPREL32
1761 ENUMDOC
1762   For systems that allocate a Global Pointer register, these are
1763 displacements off that register.  These relocation types are
1764 handled specially, because the value the register will have is
1765 decided relatively late.
1766 
1767 ENUM
1768   BFD_RELOC_NONE
1769 ENUMX
1770   BFD_RELOC_SPARC_WDISP22
1771 ENUMX
1772   BFD_RELOC_SPARC22
1773 ENUMX
1774   BFD_RELOC_SPARC13
1775 ENUMX
1776   BFD_RELOC_SPARC_GOT10
1777 ENUMX
1778   BFD_RELOC_SPARC_GOT13
1779 ENUMX
1780   BFD_RELOC_SPARC_GOT22
1781 ENUMX
1782   BFD_RELOC_SPARC_PC10
1783 ENUMX
1784   BFD_RELOC_SPARC_PC22
1785 ENUMX
1786   BFD_RELOC_SPARC_WPLT30
1787 ENUMX
1788   BFD_RELOC_SPARC_COPY
1789 ENUMX
1790   BFD_RELOC_SPARC_GLOB_DAT
1791 ENUMX
1792   BFD_RELOC_SPARC_JMP_SLOT
1793 ENUMX
1794   BFD_RELOC_SPARC_RELATIVE
1795 ENUMX
1796   BFD_RELOC_SPARC_UA16
1797 ENUMX
1798   BFD_RELOC_SPARC_UA32
1799 ENUMX
1800   BFD_RELOC_SPARC_UA64
1801 ENUMX
1802   BFD_RELOC_SPARC_GOTDATA_HIX22
1803 ENUMX
1804   BFD_RELOC_SPARC_GOTDATA_LOX10
1805 ENUMX
1806   BFD_RELOC_SPARC_GOTDATA_OP_HIX22
1807 ENUMX
1808   BFD_RELOC_SPARC_GOTDATA_OP_LOX10
1809 ENUMX
1810   BFD_RELOC_SPARC_GOTDATA_OP
1811 ENUMX
1812   BFD_RELOC_SPARC_JMP_IREL
1813 ENUMX
1814   BFD_RELOC_SPARC_IRELATIVE
1815 ENUMDOC
1816   SPARC ELF relocations.  There is probably some overlap with other
1817   relocation types already defined.
1818 
1819 ENUM
1820   BFD_RELOC_SPARC_BASE13
1821 ENUMX
1822   BFD_RELOC_SPARC_BASE22
1823 ENUMDOC
1824   I think these are specific to SPARC a.out (e.g., Sun 4).
1825 
1826 ENUMEQ
1827   BFD_RELOC_SPARC_64
1828   BFD_RELOC_64
1829 ENUMX
1830   BFD_RELOC_SPARC_10
1831 ENUMX
1832   BFD_RELOC_SPARC_11
1833 ENUMX
1834   BFD_RELOC_SPARC_OLO10
1835 ENUMX
1836   BFD_RELOC_SPARC_HH22
1837 ENUMX
1838   BFD_RELOC_SPARC_HM10
1839 ENUMX
1840   BFD_RELOC_SPARC_LM22
1841 ENUMX
1842   BFD_RELOC_SPARC_PC_HH22
1843 ENUMX
1844   BFD_RELOC_SPARC_PC_HM10
1845 ENUMX
1846   BFD_RELOC_SPARC_PC_LM22
1847 ENUMX
1848   BFD_RELOC_SPARC_WDISP16
1849 ENUMX
1850   BFD_RELOC_SPARC_WDISP19
1851 ENUMX
1852   BFD_RELOC_SPARC_7
1853 ENUMX
1854   BFD_RELOC_SPARC_6
1855 ENUMX
1856   BFD_RELOC_SPARC_5
1857 ENUMEQX
1858   BFD_RELOC_SPARC_DISP64
1859   BFD_RELOC_64_PCREL
1860 ENUMX
1861   BFD_RELOC_SPARC_PLT32
1862 ENUMX
1863   BFD_RELOC_SPARC_PLT64
1864 ENUMX
1865   BFD_RELOC_SPARC_HIX22
1866 ENUMX
1867   BFD_RELOC_SPARC_LOX10
1868 ENUMX
1869   BFD_RELOC_SPARC_H44
1870 ENUMX
1871   BFD_RELOC_SPARC_M44
1872 ENUMX
1873   BFD_RELOC_SPARC_L44
1874 ENUMX
1875   BFD_RELOC_SPARC_REGISTER
1876 ENUMX
1877   BFD_RELOC_SPARC_H34
1878 ENUMX
1879   BFD_RELOC_SPARC_SIZE32
1880 ENUMX
1881   BFD_RELOC_SPARC_SIZE64
1882 ENUMX
1883   BFD_RELOC_SPARC_WDISP10
1884 ENUMDOC
1885   SPARC64 relocations
1886 
1887 ENUM
1888   BFD_RELOC_SPARC_REV32
1889 ENUMDOC
1890   SPARC little endian relocation
1891 ENUM
1892   BFD_RELOC_SPARC_TLS_GD_HI22
1893 ENUMX
1894   BFD_RELOC_SPARC_TLS_GD_LO10
1895 ENUMX
1896   BFD_RELOC_SPARC_TLS_GD_ADD
1897 ENUMX
1898   BFD_RELOC_SPARC_TLS_GD_CALL
1899 ENUMX
1900   BFD_RELOC_SPARC_TLS_LDM_HI22
1901 ENUMX
1902   BFD_RELOC_SPARC_TLS_LDM_LO10
1903 ENUMX
1904   BFD_RELOC_SPARC_TLS_LDM_ADD
1905 ENUMX
1906   BFD_RELOC_SPARC_TLS_LDM_CALL
1907 ENUMX
1908   BFD_RELOC_SPARC_TLS_LDO_HIX22
1909 ENUMX
1910   BFD_RELOC_SPARC_TLS_LDO_LOX10
1911 ENUMX
1912   BFD_RELOC_SPARC_TLS_LDO_ADD
1913 ENUMX
1914   BFD_RELOC_SPARC_TLS_IE_HI22
1915 ENUMX
1916   BFD_RELOC_SPARC_TLS_IE_LO10
1917 ENUMX
1918   BFD_RELOC_SPARC_TLS_IE_LD
1919 ENUMX
1920   BFD_RELOC_SPARC_TLS_IE_LDX
1921 ENUMX
1922   BFD_RELOC_SPARC_TLS_IE_ADD
1923 ENUMX
1924   BFD_RELOC_SPARC_TLS_LE_HIX22
1925 ENUMX
1926   BFD_RELOC_SPARC_TLS_LE_LOX10
1927 ENUMX
1928   BFD_RELOC_SPARC_TLS_DTPMOD32
1929 ENUMX
1930   BFD_RELOC_SPARC_TLS_DTPMOD64
1931 ENUMX
1932   BFD_RELOC_SPARC_TLS_DTPOFF32
1933 ENUMX
1934   BFD_RELOC_SPARC_TLS_DTPOFF64
1935 ENUMX
1936   BFD_RELOC_SPARC_TLS_TPOFF32
1937 ENUMX
1938   BFD_RELOC_SPARC_TLS_TPOFF64
1939 ENUMDOC
1940   SPARC TLS relocations
1941 
1942 ENUM
1943   BFD_RELOC_SPU_IMM7
1944 ENUMX
1945   BFD_RELOC_SPU_IMM8
1946 ENUMX
1947   BFD_RELOC_SPU_IMM10
1948 ENUMX
1949   BFD_RELOC_SPU_IMM10W
1950 ENUMX
1951   BFD_RELOC_SPU_IMM16
1952 ENUMX
1953   BFD_RELOC_SPU_IMM16W
1954 ENUMX
1955   BFD_RELOC_SPU_IMM18
1956 ENUMX
1957   BFD_RELOC_SPU_PCREL9a
1958 ENUMX
1959   BFD_RELOC_SPU_PCREL9b
1960 ENUMX
1961   BFD_RELOC_SPU_PCREL16
1962 ENUMX
1963   BFD_RELOC_SPU_LO16
1964 ENUMX
1965   BFD_RELOC_SPU_HI16
1966 ENUMX
1967   BFD_RELOC_SPU_PPU32
1968 ENUMX
1969   BFD_RELOC_SPU_PPU64
1970 ENUMX
1971   BFD_RELOC_SPU_ADD_PIC
1972 ENUMDOC
1973   SPU Relocations.
1974 
1975 ENUM
1976   BFD_RELOC_ALPHA_GPDISP_HI16
1977 ENUMDOC
1978   Alpha ECOFF and ELF relocations.  Some of these treat the symbol or
1979      "addend" in some special way.
1980   For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when
1981      writing; when reading, it will be the absolute section symbol.  The
1982      addend is the displacement in bytes of the "lda" instruction from
1983      the "ldah" instruction (which is at the address of this reloc).
1984 ENUM
1985   BFD_RELOC_ALPHA_GPDISP_LO16
1986 ENUMDOC
1987   For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
1988      with GPDISP_HI16 relocs.  The addend is ignored when writing the
1989      relocations out, and is filled in with the file's GP value on
1990      reading, for convenience.
1991 
1992 ENUM
1993   BFD_RELOC_ALPHA_GPDISP
1994 ENUMDOC
1995   The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
1996      relocation except that there is no accompanying GPDISP_LO16
1997      relocation.
1998 
1999 ENUM
2000   BFD_RELOC_ALPHA_LITERAL
2001 ENUMX
2002   BFD_RELOC_ALPHA_ELF_LITERAL
2003 ENUMX
2004   BFD_RELOC_ALPHA_LITUSE
2005 ENUMDOC
2006   The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
2007      the assembler turns it into a LDQ instruction to load the address of
2008      the symbol, and then fills in a register in the real instruction.
2009 
2010      The LITERAL reloc, at the LDQ instruction, refers to the .lita
2011      section symbol.  The addend is ignored when writing, but is filled
2012      in with the file's GP value on reading, for convenience, as with the
2013      GPDISP_LO16 reloc.
2014 
2015      The ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16.
2016      It should refer to the symbol to be referenced, as with 16_GOTOFF,
2017      but it generates output not based on the position within the .got
2018      section, but relative to the GP value chosen for the file during the
2019      final link stage.
2020 
2021      The LITUSE reloc, on the instruction using the loaded address, gives
2022      information to the linker that it might be able to use to optimize
2023      away some literal section references.  The symbol is ignored (read
2024      as the absolute section symbol), and the "addend" indicates the type
2025      of instruction using the register:
2026 	      1 - "memory" fmt insn
2027 	      2 - byte-manipulation (byte offset reg)
2028 	      3 - jsr (target of branch)
2029 
2030 ENUM
2031   BFD_RELOC_ALPHA_HINT
2032 ENUMDOC
2033   The HINT relocation indicates a value that should be filled into the
2034      "hint" field of a jmp/jsr/ret instruction, for possible branch-
2035      prediction logic which may be provided on some processors.
2036 
2037 ENUM
2038   BFD_RELOC_ALPHA_LINKAGE
2039 ENUMDOC
2040   The LINKAGE relocation outputs a linkage pair in the object file,
2041      which is filled by the linker.
2042 
2043 ENUM
2044   BFD_RELOC_ALPHA_CODEADDR
2045 ENUMDOC
2046   The CODEADDR relocation outputs a STO_CA in the object file,
2047      which is filled by the linker.
2048 
2049 ENUM
2050   BFD_RELOC_ALPHA_GPREL_HI16
2051 ENUMX
2052   BFD_RELOC_ALPHA_GPREL_LO16
2053 ENUMDOC
2054   The GPREL_HI/LO relocations together form a 32-bit offset from the
2055      GP register.
2056 
2057 ENUM
2058   BFD_RELOC_ALPHA_BRSGP
2059 ENUMDOC
2060   Like BFD_RELOC_23_PCREL_S2, except that the source and target must
2061   share a common GP, and the target address is adjusted for
2062   STO_ALPHA_STD_GPLOAD.
2063 
2064 ENUM
2065   BFD_RELOC_ALPHA_NOP
2066 ENUMDOC
2067   The NOP relocation outputs a NOP if the longword displacement
2068      between two procedure entry points is < 2^21.
2069 
2070 ENUM
2071   BFD_RELOC_ALPHA_BSR
2072 ENUMDOC
2073   The BSR relocation outputs a BSR if the longword displacement
2074      between two procedure entry points is < 2^21.
2075 
2076 ENUM
2077   BFD_RELOC_ALPHA_LDA
2078 ENUMDOC
2079   The LDA relocation outputs a LDA if the longword displacement
2080      between two procedure entry points is < 2^16.
2081 
2082 ENUM
2083   BFD_RELOC_ALPHA_BOH
2084 ENUMDOC
2085   The BOH relocation outputs a BSR if the longword displacement
2086      between two procedure entry points is < 2^21, or else a hint.
2087 
2088 ENUM
2089   BFD_RELOC_ALPHA_TLSGD
2090 ENUMX
2091   BFD_RELOC_ALPHA_TLSLDM
2092 ENUMX
2093   BFD_RELOC_ALPHA_DTPMOD64
2094 ENUMX
2095   BFD_RELOC_ALPHA_GOTDTPREL16
2096 ENUMX
2097   BFD_RELOC_ALPHA_DTPREL64
2098 ENUMX
2099   BFD_RELOC_ALPHA_DTPREL_HI16
2100 ENUMX
2101   BFD_RELOC_ALPHA_DTPREL_LO16
2102 ENUMX
2103   BFD_RELOC_ALPHA_DTPREL16
2104 ENUMX
2105   BFD_RELOC_ALPHA_GOTTPREL16
2106 ENUMX
2107   BFD_RELOC_ALPHA_TPREL64
2108 ENUMX
2109   BFD_RELOC_ALPHA_TPREL_HI16
2110 ENUMX
2111   BFD_RELOC_ALPHA_TPREL_LO16
2112 ENUMX
2113   BFD_RELOC_ALPHA_TPREL16
2114 ENUMDOC
2115   Alpha thread-local storage relocations.
2116 
2117 ENUM
2118   BFD_RELOC_MIPS_JMP
2119 ENUMX
2120   BFD_RELOC_MICROMIPS_JMP
2121 ENUMDOC
2122   The MIPS jump instruction.
2123 
2124 ENUM
2125   BFD_RELOC_MIPS16_JMP
2126 ENUMDOC
2127   The MIPS16 jump instruction.
2128 
2129 ENUM
2130   BFD_RELOC_MIPS16_GPREL
2131 ENUMDOC
2132   MIPS16 GP relative reloc.
2133 
2134 ENUM
2135   BFD_RELOC_HI16
2136 ENUMDOC
2137   High 16 bits of 32-bit value; simple reloc.
2138 
2139 ENUM
2140   BFD_RELOC_HI16_S
2141 ENUMDOC
2142   High 16 bits of 32-bit value but the low 16 bits will be sign
2143      extended and added to form the final result.  If the low 16
2144      bits form a negative number, we need to add one to the high value
2145      to compensate for the borrow when the low bits are added.
2146 
2147 ENUM
2148   BFD_RELOC_LO16
2149 ENUMDOC
2150   Low 16 bits.
2151 
2152 ENUM
2153   BFD_RELOC_HI16_PCREL
2154 ENUMDOC
2155   High 16 bits of 32-bit pc-relative value
2156 ENUM
2157   BFD_RELOC_HI16_S_PCREL
2158 ENUMDOC
2159   High 16 bits of 32-bit pc-relative value, adjusted
2160 ENUM
2161   BFD_RELOC_LO16_PCREL
2162 ENUMDOC
2163   Low 16 bits of pc-relative value
2164 
2165 ENUM
2166   BFD_RELOC_MIPS16_GOT16
2167 ENUMX
2168   BFD_RELOC_MIPS16_CALL16
2169 ENUMDOC
2170   Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of
2171      16-bit immediate fields
2172 ENUM
2173   BFD_RELOC_MIPS16_HI16
2174 ENUMDOC
2175   MIPS16 high 16 bits of 32-bit value.
2176 ENUM
2177   BFD_RELOC_MIPS16_HI16_S
2178 ENUMDOC
2179   MIPS16 high 16 bits of 32-bit value but the low 16 bits will be sign
2180      extended and added to form the final result.  If the low 16
2181      bits form a negative number, we need to add one to the high value
2182      to compensate for the borrow when the low bits are added.
2183 ENUM
2184   BFD_RELOC_MIPS16_LO16
2185 ENUMDOC
2186   MIPS16 low 16 bits.
2187 
2188 ENUM
2189   BFD_RELOC_MIPS16_TLS_GD
2190 ENUMX
2191   BFD_RELOC_MIPS16_TLS_LDM
2192 ENUMX
2193   BFD_RELOC_MIPS16_TLS_DTPREL_HI16
2194 ENUMX
2195   BFD_RELOC_MIPS16_TLS_DTPREL_LO16
2196 ENUMX
2197   BFD_RELOC_MIPS16_TLS_GOTTPREL
2198 ENUMX
2199   BFD_RELOC_MIPS16_TLS_TPREL_HI16
2200 ENUMX
2201   BFD_RELOC_MIPS16_TLS_TPREL_LO16
2202 ENUMDOC
2203   MIPS16 TLS relocations
2204 
2205 ENUM
2206   BFD_RELOC_MIPS_LITERAL
2207 ENUMX
2208   BFD_RELOC_MICROMIPS_LITERAL
2209 ENUMDOC
2210   Relocation against a MIPS literal section.
2211 
2212 ENUM
2213   BFD_RELOC_MICROMIPS_7_PCREL_S1
2214 ENUMX
2215   BFD_RELOC_MICROMIPS_10_PCREL_S1
2216 ENUMX
2217   BFD_RELOC_MICROMIPS_16_PCREL_S1
2218 ENUMDOC
2219   microMIPS PC-relative relocations.
2220 
2221 ENUM
2222   BFD_RELOC_MIPS16_16_PCREL_S1
2223 ENUMDOC
2224   MIPS16 PC-relative relocation.
2225 
2226 ENUM
2227   BFD_RELOC_MIPS_21_PCREL_S2
2228 ENUMX
2229   BFD_RELOC_MIPS_26_PCREL_S2
2230 ENUMX
2231   BFD_RELOC_MIPS_18_PCREL_S3
2232 ENUMX
2233   BFD_RELOC_MIPS_19_PCREL_S2
2234 ENUMDOC
2235   MIPS PC-relative relocations.
2236 
2237 ENUM
2238   BFD_RELOC_MICROMIPS_GPREL16
2239 ENUMX
2240   BFD_RELOC_MICROMIPS_HI16
2241 ENUMX
2242   BFD_RELOC_MICROMIPS_HI16_S
2243 ENUMX
2244   BFD_RELOC_MICROMIPS_LO16
2245 ENUMDOC
2246   microMIPS versions of generic BFD relocs.
2247 
2248 ENUM
2249   BFD_RELOC_MIPS_GOT16
2250 ENUMX
2251   BFD_RELOC_MICROMIPS_GOT16
2252 ENUMX
2253   BFD_RELOC_MIPS_CALL16
2254 ENUMX
2255   BFD_RELOC_MICROMIPS_CALL16
2256 ENUMX
2257   BFD_RELOC_MIPS_GOT_HI16
2258 ENUMX
2259   BFD_RELOC_MICROMIPS_GOT_HI16
2260 ENUMX
2261   BFD_RELOC_MIPS_GOT_LO16
2262 ENUMX
2263   BFD_RELOC_MICROMIPS_GOT_LO16
2264 ENUMX
2265   BFD_RELOC_MIPS_CALL_HI16
2266 ENUMX
2267   BFD_RELOC_MICROMIPS_CALL_HI16
2268 ENUMX
2269   BFD_RELOC_MIPS_CALL_LO16
2270 ENUMX
2271   BFD_RELOC_MICROMIPS_CALL_LO16
2272 ENUMX
2273   BFD_RELOC_MIPS_SUB
2274 ENUMX
2275   BFD_RELOC_MICROMIPS_SUB
2276 ENUMX
2277   BFD_RELOC_MIPS_GOT_PAGE
2278 ENUMX
2279   BFD_RELOC_MICROMIPS_GOT_PAGE
2280 ENUMX
2281   BFD_RELOC_MIPS_GOT_OFST
2282 ENUMX
2283   BFD_RELOC_MICROMIPS_GOT_OFST
2284 ENUMX
2285   BFD_RELOC_MIPS_GOT_DISP
2286 ENUMX
2287   BFD_RELOC_MICROMIPS_GOT_DISP
2288 ENUMX
2289   BFD_RELOC_MIPS_SHIFT5
2290 ENUMX
2291   BFD_RELOC_MIPS_SHIFT6
2292 ENUMX
2293   BFD_RELOC_MIPS_INSERT_A
2294 ENUMX
2295   BFD_RELOC_MIPS_INSERT_B
2296 ENUMX
2297   BFD_RELOC_MIPS_DELETE
2298 ENUMX
2299   BFD_RELOC_MIPS_HIGHEST
2300 ENUMX
2301   BFD_RELOC_MICROMIPS_HIGHEST
2302 ENUMX
2303   BFD_RELOC_MIPS_HIGHER
2304 ENUMX
2305   BFD_RELOC_MICROMIPS_HIGHER
2306 ENUMX
2307   BFD_RELOC_MIPS_SCN_DISP
2308 ENUMX
2309   BFD_RELOC_MICROMIPS_SCN_DISP
2310 ENUMX
2311   BFD_RELOC_MIPS_REL16
2312 ENUMX
2313   BFD_RELOC_MIPS_RELGOT
2314 ENUMX
2315   BFD_RELOC_MIPS_JALR
2316 ENUMX
2317   BFD_RELOC_MICROMIPS_JALR
2318 ENUMX
2319   BFD_RELOC_MIPS_TLS_DTPMOD32
2320 ENUMX
2321   BFD_RELOC_MIPS_TLS_DTPREL32
2322 ENUMX
2323   BFD_RELOC_MIPS_TLS_DTPMOD64
2324 ENUMX
2325   BFD_RELOC_MIPS_TLS_DTPREL64
2326 ENUMX
2327   BFD_RELOC_MIPS_TLS_GD
2328 ENUMX
2329   BFD_RELOC_MICROMIPS_TLS_GD
2330 ENUMX
2331   BFD_RELOC_MIPS_TLS_LDM
2332 ENUMX
2333   BFD_RELOC_MICROMIPS_TLS_LDM
2334 ENUMX
2335   BFD_RELOC_MIPS_TLS_DTPREL_HI16
2336 ENUMX
2337   BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16
2338 ENUMX
2339   BFD_RELOC_MIPS_TLS_DTPREL_LO16
2340 ENUMX
2341   BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16
2342 ENUMX
2343   BFD_RELOC_MIPS_TLS_GOTTPREL
2344 ENUMX
2345   BFD_RELOC_MICROMIPS_TLS_GOTTPREL
2346 ENUMX
2347   BFD_RELOC_MIPS_TLS_TPREL32
2348 ENUMX
2349   BFD_RELOC_MIPS_TLS_TPREL64
2350 ENUMX
2351   BFD_RELOC_MIPS_TLS_TPREL_HI16
2352 ENUMX
2353   BFD_RELOC_MICROMIPS_TLS_TPREL_HI16
2354 ENUMX
2355   BFD_RELOC_MIPS_TLS_TPREL_LO16
2356 ENUMX
2357   BFD_RELOC_MICROMIPS_TLS_TPREL_LO16
2358 ENUMX
2359   BFD_RELOC_MIPS_EH
2360 ENUMDOC
2361   MIPS ELF relocations.
2362 COMMENT
2363 
2364 ENUM
2365   BFD_RELOC_MIPS_COPY
2366 ENUMX
2367   BFD_RELOC_MIPS_JUMP_SLOT
2368 ENUMDOC
2369   MIPS ELF relocations (VxWorks and PLT extensions).
2370 COMMENT
2371 
2372 ENUM
2373   BFD_RELOC_MOXIE_10_PCREL
2374 ENUMDOC
2375   Moxie ELF relocations.
2376 COMMENT
2377 
2378 ENUM
2379   BFD_RELOC_FT32_10
2380 ENUMX
2381   BFD_RELOC_FT32_20
2382 ENUMX
2383   BFD_RELOC_FT32_17
2384 ENUMX
2385   BFD_RELOC_FT32_18
2386 ENUMX
2387   BFD_RELOC_FT32_RELAX
2388 ENUMX
2389   BFD_RELOC_FT32_SC0
2390 ENUMX
2391   BFD_RELOC_FT32_SC1
2392 ENUMX
2393   BFD_RELOC_FT32_15
2394 ENUMX
2395   BFD_RELOC_FT32_DIFF32
2396 ENUMDOC
2397   FT32 ELF relocations.
2398 COMMENT
2399 
2400 ENUM
2401   BFD_RELOC_FRV_LABEL16
2402 ENUMX
2403   BFD_RELOC_FRV_LABEL24
2404 ENUMX
2405   BFD_RELOC_FRV_LO16
2406 ENUMX
2407   BFD_RELOC_FRV_HI16
2408 ENUMX
2409   BFD_RELOC_FRV_GPREL12
2410 ENUMX
2411   BFD_RELOC_FRV_GPRELU12
2412 ENUMX
2413   BFD_RELOC_FRV_GPREL32
2414 ENUMX
2415   BFD_RELOC_FRV_GPRELHI
2416 ENUMX
2417   BFD_RELOC_FRV_GPRELLO
2418 ENUMX
2419   BFD_RELOC_FRV_GOT12
2420 ENUMX
2421   BFD_RELOC_FRV_GOTHI
2422 ENUMX
2423   BFD_RELOC_FRV_GOTLO
2424 ENUMX
2425   BFD_RELOC_FRV_FUNCDESC
2426 ENUMX
2427   BFD_RELOC_FRV_FUNCDESC_GOT12
2428 ENUMX
2429   BFD_RELOC_FRV_FUNCDESC_GOTHI
2430 ENUMX
2431   BFD_RELOC_FRV_FUNCDESC_GOTLO
2432 ENUMX
2433   BFD_RELOC_FRV_FUNCDESC_VALUE
2434 ENUMX
2435   BFD_RELOC_FRV_FUNCDESC_GOTOFF12
2436 ENUMX
2437   BFD_RELOC_FRV_FUNCDESC_GOTOFFHI
2438 ENUMX
2439   BFD_RELOC_FRV_FUNCDESC_GOTOFFLO
2440 ENUMX
2441   BFD_RELOC_FRV_GOTOFF12
2442 ENUMX
2443   BFD_RELOC_FRV_GOTOFFHI
2444 ENUMX
2445   BFD_RELOC_FRV_GOTOFFLO
2446 ENUMX
2447   BFD_RELOC_FRV_GETTLSOFF
2448 ENUMX
2449   BFD_RELOC_FRV_TLSDESC_VALUE
2450 ENUMX
2451   BFD_RELOC_FRV_GOTTLSDESC12
2452 ENUMX
2453   BFD_RELOC_FRV_GOTTLSDESCHI
2454 ENUMX
2455   BFD_RELOC_FRV_GOTTLSDESCLO
2456 ENUMX
2457   BFD_RELOC_FRV_TLSMOFF12
2458 ENUMX
2459   BFD_RELOC_FRV_TLSMOFFHI
2460 ENUMX
2461   BFD_RELOC_FRV_TLSMOFFLO
2462 ENUMX
2463   BFD_RELOC_FRV_GOTTLSOFF12
2464 ENUMX
2465   BFD_RELOC_FRV_GOTTLSOFFHI
2466 ENUMX
2467   BFD_RELOC_FRV_GOTTLSOFFLO
2468 ENUMX
2469   BFD_RELOC_FRV_TLSOFF
2470 ENUMX
2471   BFD_RELOC_FRV_TLSDESC_RELAX
2472 ENUMX
2473   BFD_RELOC_FRV_GETTLSOFF_RELAX
2474 ENUMX
2475   BFD_RELOC_FRV_TLSOFF_RELAX
2476 ENUMX
2477   BFD_RELOC_FRV_TLSMOFF
2478 ENUMDOC
2479   Fujitsu Frv Relocations.
2480 COMMENT
2481 
2482 ENUM
2483   BFD_RELOC_MN10300_GOTOFF24
2484 ENUMDOC
2485   This is a 24bit GOT-relative reloc for the mn10300.
2486 ENUM
2487   BFD_RELOC_MN10300_GOT32
2488 ENUMDOC
2489   This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
2490   in the instruction.
2491 ENUM
2492   BFD_RELOC_MN10300_GOT24
2493 ENUMDOC
2494   This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
2495   in the instruction.
2496 ENUM
2497   BFD_RELOC_MN10300_GOT16
2498 ENUMDOC
2499   This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
2500   in the instruction.
2501 ENUM
2502   BFD_RELOC_MN10300_COPY
2503 ENUMDOC
2504   Copy symbol at runtime.
2505 ENUM
2506   BFD_RELOC_MN10300_GLOB_DAT
2507 ENUMDOC
2508   Create GOT entry.
2509 ENUM
2510   BFD_RELOC_MN10300_JMP_SLOT
2511 ENUMDOC
2512   Create PLT entry.
2513 ENUM
2514   BFD_RELOC_MN10300_RELATIVE
2515 ENUMDOC
2516   Adjust by program base.
2517 ENUM
2518   BFD_RELOC_MN10300_SYM_DIFF
2519 ENUMDOC
2520   Together with another reloc targeted at the same location,
2521   allows for a value that is the difference of two symbols
2522   in the same section.
2523 ENUM
2524   BFD_RELOC_MN10300_ALIGN
2525 ENUMDOC
2526   The addend of this reloc is an alignment power that must
2527   be honoured at the offset's location, regardless of linker
2528   relaxation.
2529 ENUM
2530   BFD_RELOC_MN10300_TLS_GD
2531 ENUMX
2532   BFD_RELOC_MN10300_TLS_LD
2533 ENUMX
2534   BFD_RELOC_MN10300_TLS_LDO
2535 ENUMX
2536   BFD_RELOC_MN10300_TLS_GOTIE
2537 ENUMX
2538   BFD_RELOC_MN10300_TLS_IE
2539 ENUMX
2540   BFD_RELOC_MN10300_TLS_LE
2541 ENUMX
2542   BFD_RELOC_MN10300_TLS_DTPMOD
2543 ENUMX
2544   BFD_RELOC_MN10300_TLS_DTPOFF
2545 ENUMX
2546   BFD_RELOC_MN10300_TLS_TPOFF
2547 ENUMDOC
2548   Various TLS-related relocations.
2549 ENUM
2550   BFD_RELOC_MN10300_32_PCREL
2551 ENUMDOC
2552   This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the
2553   instruction.
2554 ENUM
2555   BFD_RELOC_MN10300_16_PCREL
2556 ENUMDOC
2557   This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the
2558   instruction.
2559 COMMENT
2560 
2561 ENUM
2562   BFD_RELOC_386_GOT32
2563 ENUMX
2564   BFD_RELOC_386_PLT32
2565 ENUMX
2566   BFD_RELOC_386_COPY
2567 ENUMX
2568   BFD_RELOC_386_GLOB_DAT
2569 ENUMX
2570   BFD_RELOC_386_JUMP_SLOT
2571 ENUMX
2572   BFD_RELOC_386_RELATIVE
2573 ENUMX
2574   BFD_RELOC_386_GOTOFF
2575 ENUMX
2576   BFD_RELOC_386_GOTPC
2577 ENUMX
2578   BFD_RELOC_386_TLS_TPOFF
2579 ENUMX
2580   BFD_RELOC_386_TLS_IE
2581 ENUMX
2582   BFD_RELOC_386_TLS_GOTIE
2583 ENUMX
2584   BFD_RELOC_386_TLS_LE
2585 ENUMX
2586   BFD_RELOC_386_TLS_GD
2587 ENUMX
2588   BFD_RELOC_386_TLS_LDM
2589 ENUMX
2590   BFD_RELOC_386_TLS_LDO_32
2591 ENUMX
2592   BFD_RELOC_386_TLS_IE_32
2593 ENUMX
2594   BFD_RELOC_386_TLS_LE_32
2595 ENUMX
2596   BFD_RELOC_386_TLS_DTPMOD32
2597 ENUMX
2598   BFD_RELOC_386_TLS_DTPOFF32
2599 ENUMX
2600   BFD_RELOC_386_TLS_TPOFF32
2601 ENUMX
2602   BFD_RELOC_386_TLS_GOTDESC
2603 ENUMX
2604   BFD_RELOC_386_TLS_DESC_CALL
2605 ENUMX
2606   BFD_RELOC_386_TLS_DESC
2607 ENUMX
2608   BFD_RELOC_386_IRELATIVE
2609 ENUMX
2610   BFD_RELOC_386_GOT32X
2611 ENUMDOC
2612   i386/elf relocations
2613 
2614 ENUM
2615   BFD_RELOC_X86_64_GOT32
2616 ENUMX
2617   BFD_RELOC_X86_64_PLT32
2618 ENUMX
2619   BFD_RELOC_X86_64_COPY
2620 ENUMX
2621   BFD_RELOC_X86_64_GLOB_DAT
2622 ENUMX
2623   BFD_RELOC_X86_64_JUMP_SLOT
2624 ENUMX
2625   BFD_RELOC_X86_64_RELATIVE
2626 ENUMX
2627   BFD_RELOC_X86_64_GOTPCREL
2628 ENUMX
2629   BFD_RELOC_X86_64_32S
2630 ENUMX
2631   BFD_RELOC_X86_64_DTPMOD64
2632 ENUMX
2633   BFD_RELOC_X86_64_DTPOFF64
2634 ENUMX
2635   BFD_RELOC_X86_64_TPOFF64
2636 ENUMX
2637   BFD_RELOC_X86_64_TLSGD
2638 ENUMX
2639   BFD_RELOC_X86_64_TLSLD
2640 ENUMX
2641   BFD_RELOC_X86_64_DTPOFF32
2642 ENUMX
2643   BFD_RELOC_X86_64_GOTTPOFF
2644 ENUMX
2645   BFD_RELOC_X86_64_TPOFF32
2646 ENUMX
2647   BFD_RELOC_X86_64_GOTOFF64
2648 ENUMX
2649   BFD_RELOC_X86_64_GOTPC32
2650 ENUMX
2651   BFD_RELOC_X86_64_GOT64
2652 ENUMX
2653   BFD_RELOC_X86_64_GOTPCREL64
2654 ENUMX
2655   BFD_RELOC_X86_64_GOTPC64
2656 ENUMX
2657   BFD_RELOC_X86_64_GOTPLT64
2658 ENUMX
2659   BFD_RELOC_X86_64_PLTOFF64
2660 ENUMX
2661   BFD_RELOC_X86_64_GOTPC32_TLSDESC
2662 ENUMX
2663   BFD_RELOC_X86_64_TLSDESC_CALL
2664 ENUMX
2665   BFD_RELOC_X86_64_TLSDESC
2666 ENUMX
2667   BFD_RELOC_X86_64_IRELATIVE
2668 ENUMX
2669   BFD_RELOC_X86_64_PC32_BND
2670 ENUMX
2671   BFD_RELOC_X86_64_PLT32_BND
2672 ENUMX
2673   BFD_RELOC_X86_64_GOTPCRELX
2674 ENUMX
2675   BFD_RELOC_X86_64_REX_GOTPCRELX
2676 ENUMDOC
2677   x86-64/elf relocations
2678 
2679 ENUM
2680   BFD_RELOC_NS32K_IMM_8
2681 ENUMX
2682   BFD_RELOC_NS32K_IMM_16
2683 ENUMX
2684   BFD_RELOC_NS32K_IMM_32
2685 ENUMX
2686   BFD_RELOC_NS32K_IMM_8_PCREL
2687 ENUMX
2688   BFD_RELOC_NS32K_IMM_16_PCREL
2689 ENUMX
2690   BFD_RELOC_NS32K_IMM_32_PCREL
2691 ENUMX
2692   BFD_RELOC_NS32K_DISP_8
2693 ENUMX
2694   BFD_RELOC_NS32K_DISP_16
2695 ENUMX
2696   BFD_RELOC_NS32K_DISP_32
2697 ENUMX
2698   BFD_RELOC_NS32K_DISP_8_PCREL
2699 ENUMX
2700   BFD_RELOC_NS32K_DISP_16_PCREL
2701 ENUMX
2702   BFD_RELOC_NS32K_DISP_32_PCREL
2703 ENUMDOC
2704   ns32k relocations
2705 
2706 ENUM
2707   BFD_RELOC_PDP11_DISP_8_PCREL
2708 ENUMX
2709   BFD_RELOC_PDP11_DISP_6_PCREL
2710 ENUMDOC
2711   PDP11 relocations
2712 
2713 ENUM
2714   BFD_RELOC_PJ_CODE_HI16
2715 ENUMX
2716   BFD_RELOC_PJ_CODE_LO16
2717 ENUMX
2718   BFD_RELOC_PJ_CODE_DIR16
2719 ENUMX
2720   BFD_RELOC_PJ_CODE_DIR32
2721 ENUMX
2722   BFD_RELOC_PJ_CODE_REL16
2723 ENUMX
2724   BFD_RELOC_PJ_CODE_REL32
2725 ENUMDOC
2726   Picojava relocs.  Not all of these appear in object files.
2727 
2728 ENUM
2729   BFD_RELOC_PPC_B26
2730 ENUMX
2731   BFD_RELOC_PPC_BA26
2732 ENUMX
2733   BFD_RELOC_PPC_TOC16
2734 ENUMX
2735   BFD_RELOC_PPC_B16
2736 ENUMX
2737   BFD_RELOC_PPC_B16_BRTAKEN
2738 ENUMX
2739   BFD_RELOC_PPC_B16_BRNTAKEN
2740 ENUMX
2741   BFD_RELOC_PPC_BA16
2742 ENUMX
2743   BFD_RELOC_PPC_BA16_BRTAKEN
2744 ENUMX
2745   BFD_RELOC_PPC_BA16_BRNTAKEN
2746 ENUMX
2747   BFD_RELOC_PPC_COPY
2748 ENUMX
2749   BFD_RELOC_PPC_GLOB_DAT
2750 ENUMX
2751   BFD_RELOC_PPC_JMP_SLOT
2752 ENUMX
2753   BFD_RELOC_PPC_RELATIVE
2754 ENUMX
2755   BFD_RELOC_PPC_LOCAL24PC
2756 ENUMX
2757   BFD_RELOC_PPC_EMB_NADDR32
2758 ENUMX
2759   BFD_RELOC_PPC_EMB_NADDR16
2760 ENUMX
2761   BFD_RELOC_PPC_EMB_NADDR16_LO
2762 ENUMX
2763   BFD_RELOC_PPC_EMB_NADDR16_HI
2764 ENUMX
2765   BFD_RELOC_PPC_EMB_NADDR16_HA
2766 ENUMX
2767   BFD_RELOC_PPC_EMB_SDAI16
2768 ENUMX
2769   BFD_RELOC_PPC_EMB_SDA2I16
2770 ENUMX
2771   BFD_RELOC_PPC_EMB_SDA2REL
2772 ENUMX
2773   BFD_RELOC_PPC_EMB_SDA21
2774 ENUMX
2775   BFD_RELOC_PPC_EMB_MRKREF
2776 ENUMX
2777   BFD_RELOC_PPC_EMB_RELSEC16
2778 ENUMX
2779   BFD_RELOC_PPC_EMB_RELST_LO
2780 ENUMX
2781   BFD_RELOC_PPC_EMB_RELST_HI
2782 ENUMX
2783   BFD_RELOC_PPC_EMB_RELST_HA
2784 ENUMX
2785   BFD_RELOC_PPC_EMB_BIT_FLD
2786 ENUMX
2787   BFD_RELOC_PPC_EMB_RELSDA
2788 ENUMX
2789   BFD_RELOC_PPC_VLE_REL8
2790 ENUMX
2791   BFD_RELOC_PPC_VLE_REL15
2792 ENUMX
2793   BFD_RELOC_PPC_VLE_REL24
2794 ENUMX
2795   BFD_RELOC_PPC_VLE_LO16A
2796 ENUMX
2797   BFD_RELOC_PPC_VLE_LO16D
2798 ENUMX
2799   BFD_RELOC_PPC_VLE_HI16A
2800 ENUMX
2801   BFD_RELOC_PPC_VLE_HI16D
2802 ENUMX
2803   BFD_RELOC_PPC_VLE_HA16A
2804 ENUMX
2805   BFD_RELOC_PPC_VLE_HA16D
2806 ENUMX
2807   BFD_RELOC_PPC_VLE_SDA21
2808 ENUMX
2809   BFD_RELOC_PPC_VLE_SDA21_LO
2810 ENUMX
2811   BFD_RELOC_PPC_VLE_SDAREL_LO16A
2812 ENUMX
2813   BFD_RELOC_PPC_VLE_SDAREL_LO16D
2814 ENUMX
2815   BFD_RELOC_PPC_VLE_SDAREL_HI16A
2816 ENUMX
2817   BFD_RELOC_PPC_VLE_SDAREL_HI16D
2818 ENUMX
2819   BFD_RELOC_PPC_VLE_SDAREL_HA16A
2820 ENUMX
2821   BFD_RELOC_PPC_VLE_SDAREL_HA16D
2822 ENUMX
2823   BFD_RELOC_PPC_16DX_HA
2824 ENUMX
2825   BFD_RELOC_PPC_REL16DX_HA
2826 ENUMX
2827   BFD_RELOC_PPC64_HIGHER
2828 ENUMX
2829   BFD_RELOC_PPC64_HIGHER_S
2830 ENUMX
2831   BFD_RELOC_PPC64_HIGHEST
2832 ENUMX
2833   BFD_RELOC_PPC64_HIGHEST_S
2834 ENUMX
2835   BFD_RELOC_PPC64_TOC16_LO
2836 ENUMX
2837   BFD_RELOC_PPC64_TOC16_HI
2838 ENUMX
2839   BFD_RELOC_PPC64_TOC16_HA
2840 ENUMX
2841   BFD_RELOC_PPC64_TOC
2842 ENUMX
2843   BFD_RELOC_PPC64_PLTGOT16
2844 ENUMX
2845   BFD_RELOC_PPC64_PLTGOT16_LO
2846 ENUMX
2847   BFD_RELOC_PPC64_PLTGOT16_HI
2848 ENUMX
2849   BFD_RELOC_PPC64_PLTGOT16_HA
2850 ENUMX
2851   BFD_RELOC_PPC64_ADDR16_DS
2852 ENUMX
2853   BFD_RELOC_PPC64_ADDR16_LO_DS
2854 ENUMX
2855   BFD_RELOC_PPC64_GOT16_DS
2856 ENUMX
2857   BFD_RELOC_PPC64_GOT16_LO_DS
2858 ENUMX
2859   BFD_RELOC_PPC64_PLT16_LO_DS
2860 ENUMX
2861   BFD_RELOC_PPC64_SECTOFF_DS
2862 ENUMX
2863   BFD_RELOC_PPC64_SECTOFF_LO_DS
2864 ENUMX
2865   BFD_RELOC_PPC64_TOC16_DS
2866 ENUMX
2867   BFD_RELOC_PPC64_TOC16_LO_DS
2868 ENUMX
2869   BFD_RELOC_PPC64_PLTGOT16_DS
2870 ENUMX
2871   BFD_RELOC_PPC64_PLTGOT16_LO_DS
2872 ENUMX
2873   BFD_RELOC_PPC64_ADDR16_HIGH
2874 ENUMX
2875   BFD_RELOC_PPC64_ADDR16_HIGHA
2876 ENUMX
2877   BFD_RELOC_PPC64_REL16_HIGH
2878 ENUMX
2879   BFD_RELOC_PPC64_REL16_HIGHA
2880 ENUMX
2881   BFD_RELOC_PPC64_REL16_HIGHER
2882 ENUMX
2883   BFD_RELOC_PPC64_REL16_HIGHERA
2884 ENUMX
2885   BFD_RELOC_PPC64_REL16_HIGHEST
2886 ENUMX
2887   BFD_RELOC_PPC64_REL16_HIGHESTA
2888 ENUMX
2889   BFD_RELOC_PPC64_ADDR64_LOCAL
2890 ENUMX
2891   BFD_RELOC_PPC64_ENTRY
2892 ENUMX
2893   BFD_RELOC_PPC64_REL24_NOTOC
2894 ENUMX
2895   BFD_RELOC_PPC64_D34
2896 ENUMX
2897   BFD_RELOC_PPC64_D34_LO
2898 ENUMX
2899   BFD_RELOC_PPC64_D34_HI30
2900 ENUMX
2901   BFD_RELOC_PPC64_D34_HA30
2902 ENUMX
2903   BFD_RELOC_PPC64_PCREL34
2904 ENUMX
2905   BFD_RELOC_PPC64_GOT_PCREL34
2906 ENUMX
2907   BFD_RELOC_PPC64_PLT_PCREL34
2908 ENUMX
2909   BFD_RELOC_PPC64_ADDR16_HIGHER34
2910 ENUMX
2911   BFD_RELOC_PPC64_ADDR16_HIGHERA34
2912 ENUMX
2913   BFD_RELOC_PPC64_ADDR16_HIGHEST34
2914 ENUMX
2915   BFD_RELOC_PPC64_ADDR16_HIGHESTA34
2916 ENUMX
2917   BFD_RELOC_PPC64_REL16_HIGHER34
2918 ENUMX
2919   BFD_RELOC_PPC64_REL16_HIGHERA34
2920 ENUMX
2921   BFD_RELOC_PPC64_REL16_HIGHEST34
2922 ENUMX
2923   BFD_RELOC_PPC64_REL16_HIGHESTA34
2924 ENUMX
2925   BFD_RELOC_PPC64_D28
2926 ENUMX
2927   BFD_RELOC_PPC64_PCREL28
2928 ENUMDOC
2929   Power(rs6000) and PowerPC relocations.
2930 
2931 ENUM
2932   BFD_RELOC_PPC_TLS
2933 ENUMX
2934   BFD_RELOC_PPC_TLSGD
2935 ENUMX
2936   BFD_RELOC_PPC_TLSLD
2937 ENUMX
2938   BFD_RELOC_PPC_DTPMOD
2939 ENUMX
2940   BFD_RELOC_PPC_TPREL16
2941 ENUMX
2942   BFD_RELOC_PPC_TPREL16_LO
2943 ENUMX
2944   BFD_RELOC_PPC_TPREL16_HI
2945 ENUMX
2946   BFD_RELOC_PPC_TPREL16_HA
2947 ENUMX
2948   BFD_RELOC_PPC_TPREL
2949 ENUMX
2950   BFD_RELOC_PPC_DTPREL16
2951 ENUMX
2952   BFD_RELOC_PPC_DTPREL16_LO
2953 ENUMX
2954   BFD_RELOC_PPC_DTPREL16_HI
2955 ENUMX
2956   BFD_RELOC_PPC_DTPREL16_HA
2957 ENUMX
2958   BFD_RELOC_PPC_DTPREL
2959 ENUMX
2960   BFD_RELOC_PPC_GOT_TLSGD16
2961 ENUMX
2962   BFD_RELOC_PPC_GOT_TLSGD16_LO
2963 ENUMX
2964   BFD_RELOC_PPC_GOT_TLSGD16_HI
2965 ENUMX
2966   BFD_RELOC_PPC_GOT_TLSGD16_HA
2967 ENUMX
2968   BFD_RELOC_PPC_GOT_TLSLD16
2969 ENUMX
2970   BFD_RELOC_PPC_GOT_TLSLD16_LO
2971 ENUMX
2972   BFD_RELOC_PPC_GOT_TLSLD16_HI
2973 ENUMX
2974   BFD_RELOC_PPC_GOT_TLSLD16_HA
2975 ENUMX
2976   BFD_RELOC_PPC_GOT_TPREL16
2977 ENUMX
2978   BFD_RELOC_PPC_GOT_TPREL16_LO
2979 ENUMX
2980   BFD_RELOC_PPC_GOT_TPREL16_HI
2981 ENUMX
2982   BFD_RELOC_PPC_GOT_TPREL16_HA
2983 ENUMX
2984   BFD_RELOC_PPC_GOT_DTPREL16
2985 ENUMX
2986   BFD_RELOC_PPC_GOT_DTPREL16_LO
2987 ENUMX
2988   BFD_RELOC_PPC_GOT_DTPREL16_HI
2989 ENUMX
2990   BFD_RELOC_PPC_GOT_DTPREL16_HA
2991 ENUMX
2992   BFD_RELOC_PPC64_TPREL16_DS
2993 ENUMX
2994   BFD_RELOC_PPC64_TPREL16_LO_DS
2995 ENUMX
2996   BFD_RELOC_PPC64_TPREL16_HIGH
2997 ENUMX
2998   BFD_RELOC_PPC64_TPREL16_HIGHA
2999 ENUMX
3000   BFD_RELOC_PPC64_TPREL16_HIGHER
3001 ENUMX
3002   BFD_RELOC_PPC64_TPREL16_HIGHERA
3003 ENUMX
3004   BFD_RELOC_PPC64_TPREL16_HIGHEST
3005 ENUMX
3006   BFD_RELOC_PPC64_TPREL16_HIGHESTA
3007 ENUMX
3008   BFD_RELOC_PPC64_DTPREL16_DS
3009 ENUMX
3010   BFD_RELOC_PPC64_DTPREL16_LO_DS
3011 ENUMX
3012   BFD_RELOC_PPC64_DTPREL16_HIGH
3013 ENUMX
3014   BFD_RELOC_PPC64_DTPREL16_HIGHA
3015 ENUMX
3016   BFD_RELOC_PPC64_DTPREL16_HIGHER
3017 ENUMX
3018   BFD_RELOC_PPC64_DTPREL16_HIGHERA
3019 ENUMX
3020   BFD_RELOC_PPC64_DTPREL16_HIGHEST
3021 ENUMX
3022   BFD_RELOC_PPC64_DTPREL16_HIGHESTA
3023 ENUMX
3024   BFD_RELOC_PPC64_TPREL34
3025 ENUMX
3026   BFD_RELOC_PPC64_DTPREL34
3027 ENUMX
3028   BFD_RELOC_PPC64_GOT_TLSGD34
3029 ENUMX
3030   BFD_RELOC_PPC64_GOT_TLSLD34
3031 ENUMX
3032   BFD_RELOC_PPC64_GOT_TPREL34
3033 ENUMX
3034   BFD_RELOC_PPC64_GOT_DTPREL34
3035 ENUMX
3036   BFD_RELOC_PPC64_TLS_PCREL
3037 ENUMDOC
3038   PowerPC and PowerPC64 thread-local storage relocations.
3039 
3040 ENUM
3041   BFD_RELOC_I370_D12
3042 ENUMDOC
3043   IBM 370/390 relocations
3044 
3045 ENUM
3046   BFD_RELOC_CTOR
3047 ENUMDOC
3048   The type of reloc used to build a constructor table - at the moment
3049   probably a 32 bit wide absolute relocation, but the target can choose.
3050   It generally does map to one of the other relocation types.
3051 
3052 ENUM
3053   BFD_RELOC_ARM_PCREL_BRANCH
3054 ENUMDOC
3055   ARM 26 bit pc-relative branch.  The lowest two bits must be zero and are
3056   not stored in the instruction.
3057 ENUM
3058   BFD_RELOC_ARM_PCREL_BLX
3059 ENUMDOC
3060   ARM 26 bit pc-relative branch.  The lowest bit must be zero and is
3061   not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
3062   field in the instruction.
3063 ENUM
3064   BFD_RELOC_THUMB_PCREL_BLX
3065 ENUMDOC
3066   Thumb 22 bit pc-relative branch.  The lowest bit must be zero and is
3067   not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
3068   field in the instruction.
3069 ENUM
3070   BFD_RELOC_ARM_PCREL_CALL
3071 ENUMDOC
3072   ARM 26-bit pc-relative branch for an unconditional BL or BLX instruction.
3073 ENUM
3074   BFD_RELOC_ARM_PCREL_JUMP
3075 ENUMDOC
3076   ARM 26-bit pc-relative branch for B or conditional BL instruction.
3077 
3078 ENUM
3079   BFD_RELOC_THUMB_PCREL_BRANCH5
3080 ENUMDOC
3081   ARM 5-bit pc-relative branch for Branch Future instructions.
3082 
3083 ENUM
3084   BFD_RELOC_THUMB_PCREL_BFCSEL
3085 ENUMDOC
3086   ARM 6-bit pc-relative branch for BFCSEL instruction.
3087 
3088 ENUM
3089   BFD_RELOC_ARM_THUMB_BF17
3090 ENUMDOC
3091   ARM 17-bit pc-relative branch for Branch Future instructions.
3092 
3093 ENUM
3094   BFD_RELOC_ARM_THUMB_BF13
3095 ENUMDOC
3096   ARM 13-bit pc-relative branch for BFCSEL instruction.
3097 
3098 ENUM
3099   BFD_RELOC_ARM_THUMB_BF19
3100 ENUMDOC
3101   ARM 19-bit pc-relative branch for Branch Future Link instruction.
3102 
3103 ENUM
3104   BFD_RELOC_ARM_THUMB_LOOP12
3105 ENUMDOC
3106   ARM 12-bit pc-relative branch for Low Overhead Loop instructions.
3107 
3108 ENUM
3109   BFD_RELOC_THUMB_PCREL_BRANCH7
3110 ENUMX
3111   BFD_RELOC_THUMB_PCREL_BRANCH9
3112 ENUMX
3113   BFD_RELOC_THUMB_PCREL_BRANCH12
3114 ENUMX
3115   BFD_RELOC_THUMB_PCREL_BRANCH20
3116 ENUMX
3117   BFD_RELOC_THUMB_PCREL_BRANCH23
3118 ENUMX
3119   BFD_RELOC_THUMB_PCREL_BRANCH25
3120 ENUMDOC
3121   Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
3122   The lowest bit must be zero and is not stored in the instruction.
3123   Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
3124   "nn" one smaller in all cases.  Note further that BRANCH23
3125   corresponds to R_ARM_THM_CALL.
3126 
3127 ENUM
3128   BFD_RELOC_ARM_OFFSET_IMM
3129 ENUMDOC
3130   12-bit immediate offset, used in ARM-format ldr and str instructions.
3131 
3132 ENUM
3133   BFD_RELOC_ARM_THUMB_OFFSET
3134 ENUMDOC
3135   5-bit immediate offset, used in Thumb-format ldr and str instructions.
3136 
3137 ENUM
3138   BFD_RELOC_ARM_TARGET1
3139 ENUMDOC
3140   Pc-relative or absolute relocation depending on target.  Used for
3141   entries in .init_array sections.
3142 ENUM
3143   BFD_RELOC_ARM_ROSEGREL32
3144 ENUMDOC
3145   Read-only segment base relative address.
3146 ENUM
3147   BFD_RELOC_ARM_SBREL32
3148 ENUMDOC
3149   Data segment base relative address.
3150 ENUM
3151   BFD_RELOC_ARM_TARGET2
3152 ENUMDOC
3153   This reloc is used for references to RTTI data from exception handling
3154   tables.  The actual definition depends on the target.  It may be a
3155   pc-relative or some form of GOT-indirect relocation.
3156 ENUM
3157   BFD_RELOC_ARM_PREL31
3158 ENUMDOC
3159   31-bit PC relative address.
3160 ENUM
3161   BFD_RELOC_ARM_MOVW
3162 ENUMX
3163   BFD_RELOC_ARM_MOVT
3164 ENUMX
3165   BFD_RELOC_ARM_MOVW_PCREL
3166 ENUMX
3167   BFD_RELOC_ARM_MOVT_PCREL
3168 ENUMX
3169   BFD_RELOC_ARM_THUMB_MOVW
3170 ENUMX
3171   BFD_RELOC_ARM_THUMB_MOVT
3172 ENUMX
3173   BFD_RELOC_ARM_THUMB_MOVW_PCREL
3174 ENUMX
3175   BFD_RELOC_ARM_THUMB_MOVT_PCREL
3176 ENUMDOC
3177   Low and High halfword relocations for MOVW and MOVT instructions.
3178 
3179 ENUM
3180   BFD_RELOC_ARM_GOTFUNCDESC
3181 ENUMX
3182   BFD_RELOC_ARM_GOTOFFFUNCDESC
3183 ENUMX
3184   BFD_RELOC_ARM_FUNCDESC
3185 ENUMX
3186   BFD_RELOC_ARM_FUNCDESC_VALUE
3187 ENUMX
3188   BFD_RELOC_ARM_TLS_GD32_FDPIC
3189 ENUMX
3190   BFD_RELOC_ARM_TLS_LDM32_FDPIC
3191 ENUMX
3192   BFD_RELOC_ARM_TLS_IE32_FDPIC
3193 ENUMDOC
3194   ARM FDPIC specific relocations.
3195 
3196 ENUM
3197   BFD_RELOC_ARM_JUMP_SLOT
3198 ENUMX
3199   BFD_RELOC_ARM_GLOB_DAT
3200 ENUMX
3201   BFD_RELOC_ARM_GOT32
3202 ENUMX
3203   BFD_RELOC_ARM_PLT32
3204 ENUMX
3205   BFD_RELOC_ARM_RELATIVE
3206 ENUMX
3207   BFD_RELOC_ARM_GOTOFF
3208 ENUMX
3209   BFD_RELOC_ARM_GOTPC
3210 ENUMX
3211   BFD_RELOC_ARM_GOT_PREL
3212 ENUMDOC
3213   Relocations for setting up GOTs and PLTs for shared libraries.
3214 
3215 ENUM
3216   BFD_RELOC_ARM_TLS_GD32
3217 ENUMX
3218   BFD_RELOC_ARM_TLS_LDO32
3219 ENUMX
3220   BFD_RELOC_ARM_TLS_LDM32
3221 ENUMX
3222   BFD_RELOC_ARM_TLS_DTPOFF32
3223 ENUMX
3224   BFD_RELOC_ARM_TLS_DTPMOD32
3225 ENUMX
3226   BFD_RELOC_ARM_TLS_TPOFF32
3227 ENUMX
3228   BFD_RELOC_ARM_TLS_IE32
3229 ENUMX
3230   BFD_RELOC_ARM_TLS_LE32
3231 ENUMX
3232   BFD_RELOC_ARM_TLS_GOTDESC
3233 ENUMX
3234   BFD_RELOC_ARM_TLS_CALL
3235 ENUMX
3236   BFD_RELOC_ARM_THM_TLS_CALL
3237 ENUMX
3238   BFD_RELOC_ARM_TLS_DESCSEQ
3239 ENUMX
3240   BFD_RELOC_ARM_THM_TLS_DESCSEQ
3241 ENUMX
3242   BFD_RELOC_ARM_TLS_DESC
3243 ENUMDOC
3244   ARM thread-local storage relocations.
3245 
3246 ENUM
3247   BFD_RELOC_ARM_ALU_PC_G0_NC
3248 ENUMX
3249   BFD_RELOC_ARM_ALU_PC_G0
3250 ENUMX
3251   BFD_RELOC_ARM_ALU_PC_G1_NC
3252 ENUMX
3253   BFD_RELOC_ARM_ALU_PC_G1
3254 ENUMX
3255   BFD_RELOC_ARM_ALU_PC_G2
3256 ENUMX
3257   BFD_RELOC_ARM_LDR_PC_G0
3258 ENUMX
3259   BFD_RELOC_ARM_LDR_PC_G1
3260 ENUMX
3261   BFD_RELOC_ARM_LDR_PC_G2
3262 ENUMX
3263   BFD_RELOC_ARM_LDRS_PC_G0
3264 ENUMX
3265   BFD_RELOC_ARM_LDRS_PC_G1
3266 ENUMX
3267   BFD_RELOC_ARM_LDRS_PC_G2
3268 ENUMX
3269   BFD_RELOC_ARM_LDC_PC_G0
3270 ENUMX
3271   BFD_RELOC_ARM_LDC_PC_G1
3272 ENUMX
3273   BFD_RELOC_ARM_LDC_PC_G2
3274 ENUMX
3275   BFD_RELOC_ARM_ALU_SB_G0_NC
3276 ENUMX
3277   BFD_RELOC_ARM_ALU_SB_G0
3278 ENUMX
3279   BFD_RELOC_ARM_ALU_SB_G1_NC
3280 ENUMX
3281   BFD_RELOC_ARM_ALU_SB_G1
3282 ENUMX
3283   BFD_RELOC_ARM_ALU_SB_G2
3284 ENUMX
3285   BFD_RELOC_ARM_LDR_SB_G0
3286 ENUMX
3287   BFD_RELOC_ARM_LDR_SB_G1
3288 ENUMX
3289   BFD_RELOC_ARM_LDR_SB_G2
3290 ENUMX
3291   BFD_RELOC_ARM_LDRS_SB_G0
3292 ENUMX
3293   BFD_RELOC_ARM_LDRS_SB_G1
3294 ENUMX
3295   BFD_RELOC_ARM_LDRS_SB_G2
3296 ENUMX
3297   BFD_RELOC_ARM_LDC_SB_G0
3298 ENUMX
3299   BFD_RELOC_ARM_LDC_SB_G1
3300 ENUMX
3301   BFD_RELOC_ARM_LDC_SB_G2
3302 ENUMDOC
3303   ARM group relocations.
3304 
3305 ENUM
3306   BFD_RELOC_ARM_V4BX
3307 ENUMDOC
3308   Annotation of BX instructions.
3309 
3310 ENUM
3311   BFD_RELOC_ARM_IRELATIVE
3312 ENUMDOC
3313   ARM support for STT_GNU_IFUNC.
3314 
3315 ENUM
3316   BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC
3317 ENUMX
3318   BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC
3319 ENUMX
3320   BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC
3321 ENUMX
3322   BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC
3323 ENUMDOC
3324   Thumb1 relocations to support execute-only code.
3325 
3326 ENUM
3327   BFD_RELOC_ARM_IMMEDIATE
3328 ENUMX
3329   BFD_RELOC_ARM_ADRL_IMMEDIATE
3330 ENUMX
3331   BFD_RELOC_ARM_T32_IMMEDIATE
3332 ENUMX
3333   BFD_RELOC_ARM_T32_ADD_IMM
3334 ENUMX
3335   BFD_RELOC_ARM_T32_IMM12
3336 ENUMX
3337   BFD_RELOC_ARM_T32_ADD_PC12
3338 ENUMX
3339   BFD_RELOC_ARM_SHIFT_IMM
3340 ENUMX
3341   BFD_RELOC_ARM_SMC
3342 ENUMX
3343   BFD_RELOC_ARM_HVC
3344 ENUMX
3345   BFD_RELOC_ARM_SWI
3346 ENUMX
3347   BFD_RELOC_ARM_MULTI
3348 ENUMX
3349   BFD_RELOC_ARM_CP_OFF_IMM
3350 ENUMX
3351   BFD_RELOC_ARM_CP_OFF_IMM_S2
3352 ENUMX
3353   BFD_RELOC_ARM_T32_CP_OFF_IMM
3354 ENUMX
3355   BFD_RELOC_ARM_T32_CP_OFF_IMM_S2
3356 ENUMX
3357   BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM
3358 ENUMX
3359   BFD_RELOC_ARM_ADR_IMM
3360 ENUMX
3361   BFD_RELOC_ARM_LDR_IMM
3362 ENUMX
3363   BFD_RELOC_ARM_LITERAL
3364 ENUMX
3365   BFD_RELOC_ARM_IN_POOL
3366 ENUMX
3367   BFD_RELOC_ARM_OFFSET_IMM8
3368 ENUMX
3369   BFD_RELOC_ARM_T32_OFFSET_U8
3370 ENUMX
3371   BFD_RELOC_ARM_T32_OFFSET_IMM
3372 ENUMX
3373   BFD_RELOC_ARM_HWLITERAL
3374 ENUMX
3375   BFD_RELOC_ARM_THUMB_ADD
3376 ENUMX
3377   BFD_RELOC_ARM_THUMB_IMM
3378 ENUMX
3379   BFD_RELOC_ARM_THUMB_SHIFT
3380 ENUMDOC
3381   These relocs are only used within the ARM assembler.  They are not
3382   (at present) written to any object files.
3383 
3384 ENUM
3385   BFD_RELOC_SH_PCDISP8BY2
3386 ENUMX
3387   BFD_RELOC_SH_PCDISP12BY2
3388 ENUMX
3389   BFD_RELOC_SH_IMM3
3390 ENUMX
3391   BFD_RELOC_SH_IMM3U
3392 ENUMX
3393   BFD_RELOC_SH_DISP12
3394 ENUMX
3395   BFD_RELOC_SH_DISP12BY2
3396 ENUMX
3397   BFD_RELOC_SH_DISP12BY4
3398 ENUMX
3399   BFD_RELOC_SH_DISP12BY8
3400 ENUMX
3401   BFD_RELOC_SH_DISP20
3402 ENUMX
3403   BFD_RELOC_SH_DISP20BY8
3404 ENUMX
3405   BFD_RELOC_SH_IMM4
3406 ENUMX
3407   BFD_RELOC_SH_IMM4BY2
3408 ENUMX
3409   BFD_RELOC_SH_IMM4BY4
3410 ENUMX
3411   BFD_RELOC_SH_IMM8
3412 ENUMX
3413   BFD_RELOC_SH_IMM8BY2
3414 ENUMX
3415   BFD_RELOC_SH_IMM8BY4
3416 ENUMX
3417   BFD_RELOC_SH_PCRELIMM8BY2
3418 ENUMX
3419   BFD_RELOC_SH_PCRELIMM8BY4
3420 ENUMX
3421   BFD_RELOC_SH_SWITCH16
3422 ENUMX
3423   BFD_RELOC_SH_SWITCH32
3424 ENUMX
3425   BFD_RELOC_SH_USES
3426 ENUMX
3427   BFD_RELOC_SH_COUNT
3428 ENUMX
3429   BFD_RELOC_SH_ALIGN
3430 ENUMX
3431   BFD_RELOC_SH_CODE
3432 ENUMX
3433   BFD_RELOC_SH_DATA
3434 ENUMX
3435   BFD_RELOC_SH_LABEL
3436 ENUMX
3437   BFD_RELOC_SH_LOOP_START
3438 ENUMX
3439   BFD_RELOC_SH_LOOP_END
3440 ENUMX
3441   BFD_RELOC_SH_COPY
3442 ENUMX
3443   BFD_RELOC_SH_GLOB_DAT
3444 ENUMX
3445   BFD_RELOC_SH_JMP_SLOT
3446 ENUMX
3447   BFD_RELOC_SH_RELATIVE
3448 ENUMX
3449   BFD_RELOC_SH_GOTPC
3450 ENUMX
3451   BFD_RELOC_SH_GOT_LOW16
3452 ENUMX
3453   BFD_RELOC_SH_GOT_MEDLOW16
3454 ENUMX
3455   BFD_RELOC_SH_GOT_MEDHI16
3456 ENUMX
3457   BFD_RELOC_SH_GOT_HI16
3458 ENUMX
3459   BFD_RELOC_SH_GOTPLT_LOW16
3460 ENUMX
3461   BFD_RELOC_SH_GOTPLT_MEDLOW16
3462 ENUMX
3463   BFD_RELOC_SH_GOTPLT_MEDHI16
3464 ENUMX
3465   BFD_RELOC_SH_GOTPLT_HI16
3466 ENUMX
3467   BFD_RELOC_SH_PLT_LOW16
3468 ENUMX
3469   BFD_RELOC_SH_PLT_MEDLOW16
3470 ENUMX
3471   BFD_RELOC_SH_PLT_MEDHI16
3472 ENUMX
3473   BFD_RELOC_SH_PLT_HI16
3474 ENUMX
3475   BFD_RELOC_SH_GOTOFF_LOW16
3476 ENUMX
3477   BFD_RELOC_SH_GOTOFF_MEDLOW16
3478 ENUMX
3479   BFD_RELOC_SH_GOTOFF_MEDHI16
3480 ENUMX
3481   BFD_RELOC_SH_GOTOFF_HI16
3482 ENUMX
3483   BFD_RELOC_SH_GOTPC_LOW16
3484 ENUMX
3485   BFD_RELOC_SH_GOTPC_MEDLOW16
3486 ENUMX
3487   BFD_RELOC_SH_GOTPC_MEDHI16
3488 ENUMX
3489   BFD_RELOC_SH_GOTPC_HI16
3490 ENUMX
3491   BFD_RELOC_SH_COPY64
3492 ENUMX
3493   BFD_RELOC_SH_GLOB_DAT64
3494 ENUMX
3495   BFD_RELOC_SH_JMP_SLOT64
3496 ENUMX
3497   BFD_RELOC_SH_RELATIVE64
3498 ENUMX
3499   BFD_RELOC_SH_GOT10BY4
3500 ENUMX
3501   BFD_RELOC_SH_GOT10BY8
3502 ENUMX
3503   BFD_RELOC_SH_GOTPLT10BY4
3504 ENUMX
3505   BFD_RELOC_SH_GOTPLT10BY8
3506 ENUMX
3507   BFD_RELOC_SH_GOTPLT32
3508 ENUMX
3509   BFD_RELOC_SH_SHMEDIA_CODE
3510 ENUMX
3511   BFD_RELOC_SH_IMMU5
3512 ENUMX
3513   BFD_RELOC_SH_IMMS6
3514 ENUMX
3515   BFD_RELOC_SH_IMMS6BY32
3516 ENUMX
3517   BFD_RELOC_SH_IMMU6
3518 ENUMX
3519   BFD_RELOC_SH_IMMS10
3520 ENUMX
3521   BFD_RELOC_SH_IMMS10BY2
3522 ENUMX
3523   BFD_RELOC_SH_IMMS10BY4
3524 ENUMX
3525   BFD_RELOC_SH_IMMS10BY8
3526 ENUMX
3527   BFD_RELOC_SH_IMMS16
3528 ENUMX
3529   BFD_RELOC_SH_IMMU16
3530 ENUMX
3531   BFD_RELOC_SH_IMM_LOW16
3532 ENUMX
3533   BFD_RELOC_SH_IMM_LOW16_PCREL
3534 ENUMX
3535   BFD_RELOC_SH_IMM_MEDLOW16
3536 ENUMX
3537   BFD_RELOC_SH_IMM_MEDLOW16_PCREL
3538 ENUMX
3539   BFD_RELOC_SH_IMM_MEDHI16
3540 ENUMX
3541   BFD_RELOC_SH_IMM_MEDHI16_PCREL
3542 ENUMX
3543   BFD_RELOC_SH_IMM_HI16
3544 ENUMX
3545   BFD_RELOC_SH_IMM_HI16_PCREL
3546 ENUMX
3547   BFD_RELOC_SH_PT_16
3548 ENUMX
3549   BFD_RELOC_SH_TLS_GD_32
3550 ENUMX
3551   BFD_RELOC_SH_TLS_LD_32
3552 ENUMX
3553   BFD_RELOC_SH_TLS_LDO_32
3554 ENUMX
3555   BFD_RELOC_SH_TLS_IE_32
3556 ENUMX
3557   BFD_RELOC_SH_TLS_LE_32
3558 ENUMX
3559   BFD_RELOC_SH_TLS_DTPMOD32
3560 ENUMX
3561   BFD_RELOC_SH_TLS_DTPOFF32
3562 ENUMX
3563   BFD_RELOC_SH_TLS_TPOFF32
3564 ENUMX
3565   BFD_RELOC_SH_GOT20
3566 ENUMX
3567   BFD_RELOC_SH_GOTOFF20
3568 ENUMX
3569   BFD_RELOC_SH_GOTFUNCDESC
3570 ENUMX
3571   BFD_RELOC_SH_GOTFUNCDESC20
3572 ENUMX
3573   BFD_RELOC_SH_GOTOFFFUNCDESC
3574 ENUMX
3575   BFD_RELOC_SH_GOTOFFFUNCDESC20
3576 ENUMX
3577   BFD_RELOC_SH_FUNCDESC
3578 ENUMDOC
3579   Renesas / SuperH SH relocs.  Not all of these appear in object files.
3580 
3581 ENUM
3582   BFD_RELOC_ARC_NONE
3583 ENUMX
3584   BFD_RELOC_ARC_8
3585 ENUMX
3586   BFD_RELOC_ARC_16
3587 ENUMX
3588   BFD_RELOC_ARC_24
3589 ENUMX
3590   BFD_RELOC_ARC_32
3591 ENUMX
3592   BFD_RELOC_ARC_N8
3593 ENUMX
3594   BFD_RELOC_ARC_N16
3595 ENUMX
3596   BFD_RELOC_ARC_N24
3597 ENUMX
3598   BFD_RELOC_ARC_N32
3599 ENUMX
3600   BFD_RELOC_ARC_SDA
3601 ENUMX
3602   BFD_RELOC_ARC_SECTOFF
3603 ENUMX
3604   BFD_RELOC_ARC_S21H_PCREL
3605 ENUMX
3606   BFD_RELOC_ARC_S21W_PCREL
3607 ENUMX
3608   BFD_RELOC_ARC_S25H_PCREL
3609 ENUMX
3610   BFD_RELOC_ARC_S25W_PCREL
3611 ENUMX
3612   BFD_RELOC_ARC_SDA32
3613 ENUMX
3614   BFD_RELOC_ARC_SDA_LDST
3615 ENUMX
3616   BFD_RELOC_ARC_SDA_LDST1
3617 ENUMX
3618   BFD_RELOC_ARC_SDA_LDST2
3619 ENUMX
3620   BFD_RELOC_ARC_SDA16_LD
3621 ENUMX
3622   BFD_RELOC_ARC_SDA16_LD1
3623 ENUMX
3624   BFD_RELOC_ARC_SDA16_LD2
3625 ENUMX
3626   BFD_RELOC_ARC_S13_PCREL
3627 ENUMX
3628   BFD_RELOC_ARC_W
3629 ENUMX
3630   BFD_RELOC_ARC_32_ME
3631 ENUMX
3632   BFD_RELOC_ARC_32_ME_S
3633 ENUMX
3634   BFD_RELOC_ARC_N32_ME
3635 ENUMX
3636   BFD_RELOC_ARC_SECTOFF_ME
3637 ENUMX
3638   BFD_RELOC_ARC_SDA32_ME
3639 ENUMX
3640   BFD_RELOC_ARC_W_ME
3641 ENUMX
3642   BFD_RELOC_AC_SECTOFF_U8
3643 ENUMX
3644   BFD_RELOC_AC_SECTOFF_U8_1
3645 ENUMX
3646   BFD_RELOC_AC_SECTOFF_U8_2
3647 ENUMX
3648   BFD_RELOC_AC_SECTOFF_S9
3649 ENUMX
3650   BFD_RELOC_AC_SECTOFF_S9_1
3651 ENUMX
3652   BFD_RELOC_AC_SECTOFF_S9_2
3653 ENUMX
3654   BFD_RELOC_ARC_SECTOFF_ME_1
3655 ENUMX
3656   BFD_RELOC_ARC_SECTOFF_ME_2
3657 ENUMX
3658   BFD_RELOC_ARC_SECTOFF_1
3659 ENUMX
3660   BFD_RELOC_ARC_SECTOFF_2
3661 ENUMX
3662   BFD_RELOC_ARC_SDA_12
3663 ENUMX
3664   BFD_RELOC_ARC_SDA16_ST2
3665 ENUMX
3666   BFD_RELOC_ARC_32_PCREL
3667 ENUMX
3668   BFD_RELOC_ARC_PC32
3669 ENUMX
3670   BFD_RELOC_ARC_GOT32
3671 ENUMX
3672   BFD_RELOC_ARC_GOTPC32
3673 ENUMX
3674   BFD_RELOC_ARC_PLT32
3675 ENUMX
3676   BFD_RELOC_ARC_COPY
3677 ENUMX
3678   BFD_RELOC_ARC_GLOB_DAT
3679 ENUMX
3680   BFD_RELOC_ARC_JMP_SLOT
3681 ENUMX
3682   BFD_RELOC_ARC_RELATIVE
3683 ENUMX
3684   BFD_RELOC_ARC_GOTOFF
3685 ENUMX
3686   BFD_RELOC_ARC_GOTPC
3687 ENUMX
3688   BFD_RELOC_ARC_S21W_PCREL_PLT
3689 ENUMX
3690   BFD_RELOC_ARC_S25H_PCREL_PLT
3691 ENUMX
3692   BFD_RELOC_ARC_TLS_DTPMOD
3693 ENUMX
3694   BFD_RELOC_ARC_TLS_TPOFF
3695 ENUMX
3696   BFD_RELOC_ARC_TLS_GD_GOT
3697 ENUMX
3698   BFD_RELOC_ARC_TLS_GD_LD
3699 ENUMX
3700   BFD_RELOC_ARC_TLS_GD_CALL
3701 ENUMX
3702   BFD_RELOC_ARC_TLS_IE_GOT
3703 ENUMX
3704   BFD_RELOC_ARC_TLS_DTPOFF
3705 ENUMX
3706   BFD_RELOC_ARC_TLS_DTPOFF_S9
3707 ENUMX
3708   BFD_RELOC_ARC_TLS_LE_S9
3709 ENUMX
3710   BFD_RELOC_ARC_TLS_LE_32
3711 ENUMX
3712   BFD_RELOC_ARC_S25W_PCREL_PLT
3713 ENUMX
3714   BFD_RELOC_ARC_S21H_PCREL_PLT
3715 ENUMX
3716   BFD_RELOC_ARC_NPS_CMEM16
3717 ENUMX
3718   BFD_RELOC_ARC_JLI_SECTOFF
3719 ENUMDOC
3720   ARC relocs.
3721 
3722 ENUM
3723   BFD_RELOC_BFIN_16_IMM
3724 ENUMDOC
3725   ADI Blackfin 16 bit immediate absolute reloc.
3726 ENUM
3727   BFD_RELOC_BFIN_16_HIGH
3728 ENUMDOC
3729   ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.
3730 ENUM
3731   BFD_RELOC_BFIN_4_PCREL
3732 ENUMDOC
3733   ADI Blackfin 'a' part of LSETUP.
3734 ENUM
3735   BFD_RELOC_BFIN_5_PCREL
3736 ENUMDOC
3737   ADI Blackfin.
3738 ENUM
3739   BFD_RELOC_BFIN_16_LOW
3740 ENUMDOC
3741   ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.
3742 ENUM
3743   BFD_RELOC_BFIN_10_PCREL
3744 ENUMDOC
3745   ADI Blackfin.
3746 ENUM
3747   BFD_RELOC_BFIN_11_PCREL
3748 ENUMDOC
3749   ADI Blackfin 'b' part of LSETUP.
3750 ENUM
3751   BFD_RELOC_BFIN_12_PCREL_JUMP
3752 ENUMDOC
3753   ADI Blackfin.
3754 ENUM
3755   BFD_RELOC_BFIN_12_PCREL_JUMP_S
3756 ENUMDOC
3757   ADI Blackfin Short jump, pcrel.
3758 ENUM
3759   BFD_RELOC_BFIN_24_PCREL_CALL_X
3760 ENUMDOC
3761   ADI Blackfin Call.x not implemented.
3762 ENUM
3763   BFD_RELOC_BFIN_24_PCREL_JUMP_L
3764 ENUMDOC
3765   ADI Blackfin Long Jump pcrel.
3766 ENUM
3767   BFD_RELOC_BFIN_GOT17M4
3768 ENUMX
3769   BFD_RELOC_BFIN_GOTHI
3770 ENUMX
3771   BFD_RELOC_BFIN_GOTLO
3772 ENUMX
3773   BFD_RELOC_BFIN_FUNCDESC
3774 ENUMX
3775   BFD_RELOC_BFIN_FUNCDESC_GOT17M4
3776 ENUMX
3777   BFD_RELOC_BFIN_FUNCDESC_GOTHI
3778 ENUMX
3779   BFD_RELOC_BFIN_FUNCDESC_GOTLO
3780 ENUMX
3781   BFD_RELOC_BFIN_FUNCDESC_VALUE
3782 ENUMX
3783   BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4
3784 ENUMX
3785   BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI
3786 ENUMX
3787   BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO
3788 ENUMX
3789   BFD_RELOC_BFIN_GOTOFF17M4
3790 ENUMX
3791   BFD_RELOC_BFIN_GOTOFFHI
3792 ENUMX
3793   BFD_RELOC_BFIN_GOTOFFLO
3794 ENUMDOC
3795   ADI Blackfin FD-PIC relocations.
3796 ENUM
3797   BFD_RELOC_BFIN_GOT
3798 ENUMDOC
3799   ADI Blackfin GOT relocation.
3800 ENUM
3801   BFD_RELOC_BFIN_PLTPC
3802 ENUMDOC
3803   ADI Blackfin PLTPC relocation.
3804 ENUM
3805   BFD_ARELOC_BFIN_PUSH
3806 ENUMDOC
3807   ADI Blackfin arithmetic relocation.
3808 ENUM
3809   BFD_ARELOC_BFIN_CONST
3810 ENUMDOC
3811   ADI Blackfin arithmetic relocation.
3812 ENUM
3813   BFD_ARELOC_BFIN_ADD
3814 ENUMDOC
3815   ADI Blackfin arithmetic relocation.
3816 ENUM
3817   BFD_ARELOC_BFIN_SUB
3818 ENUMDOC
3819   ADI Blackfin arithmetic relocation.
3820 ENUM
3821   BFD_ARELOC_BFIN_MULT
3822 ENUMDOC
3823   ADI Blackfin arithmetic relocation.
3824 ENUM
3825   BFD_ARELOC_BFIN_DIV
3826 ENUMDOC
3827   ADI Blackfin arithmetic relocation.
3828 ENUM
3829   BFD_ARELOC_BFIN_MOD
3830 ENUMDOC
3831   ADI Blackfin arithmetic relocation.
3832 ENUM
3833   BFD_ARELOC_BFIN_LSHIFT
3834 ENUMDOC
3835   ADI Blackfin arithmetic relocation.
3836 ENUM
3837   BFD_ARELOC_BFIN_RSHIFT
3838 ENUMDOC
3839   ADI Blackfin arithmetic relocation.
3840 ENUM
3841   BFD_ARELOC_BFIN_AND
3842 ENUMDOC
3843   ADI Blackfin arithmetic relocation.
3844 ENUM
3845   BFD_ARELOC_BFIN_OR
3846 ENUMDOC
3847   ADI Blackfin arithmetic relocation.
3848 ENUM
3849   BFD_ARELOC_BFIN_XOR
3850 ENUMDOC
3851   ADI Blackfin arithmetic relocation.
3852 ENUM
3853   BFD_ARELOC_BFIN_LAND
3854 ENUMDOC
3855   ADI Blackfin arithmetic relocation.
3856 ENUM
3857   BFD_ARELOC_BFIN_LOR
3858 ENUMDOC
3859   ADI Blackfin arithmetic relocation.
3860 ENUM
3861   BFD_ARELOC_BFIN_LEN
3862 ENUMDOC
3863   ADI Blackfin arithmetic relocation.
3864 ENUM
3865   BFD_ARELOC_BFIN_NEG
3866 ENUMDOC
3867   ADI Blackfin arithmetic relocation.
3868 ENUM
3869   BFD_ARELOC_BFIN_COMP
3870 ENUMDOC
3871   ADI Blackfin arithmetic relocation.
3872 ENUM
3873   BFD_ARELOC_BFIN_PAGE
3874 ENUMDOC
3875   ADI Blackfin arithmetic relocation.
3876 ENUM
3877   BFD_ARELOC_BFIN_HWPAGE
3878 ENUMDOC
3879   ADI Blackfin arithmetic relocation.
3880 ENUM
3881   BFD_ARELOC_BFIN_ADDR
3882 ENUMDOC
3883   ADI Blackfin arithmetic relocation.
3884 
3885 ENUM
3886   BFD_RELOC_D10V_10_PCREL_R
3887 ENUMDOC
3888   Mitsubishi D10V relocs.
3889   This is a 10-bit reloc with the right 2 bits
3890   assumed to be 0.
3891 ENUM
3892   BFD_RELOC_D10V_10_PCREL_L
3893 ENUMDOC
3894   Mitsubishi D10V relocs.
3895   This is a 10-bit reloc with the right 2 bits
3896   assumed to be 0.  This is the same as the previous reloc
3897   except it is in the left container, i.e.,
3898   shifted left 15 bits.
3899 ENUM
3900   BFD_RELOC_D10V_18
3901 ENUMDOC
3902   This is an 18-bit reloc with the right 2 bits
3903   assumed to be 0.
3904 ENUM
3905   BFD_RELOC_D10V_18_PCREL
3906 ENUMDOC
3907   This is an 18-bit reloc with the right 2 bits
3908   assumed to be 0.
3909 
3910 ENUM
3911   BFD_RELOC_D30V_6
3912 ENUMDOC
3913   Mitsubishi D30V relocs.
3914   This is a 6-bit absolute reloc.
3915 ENUM
3916   BFD_RELOC_D30V_9_PCREL
3917 ENUMDOC
3918   This is a 6-bit pc-relative reloc with
3919   the right 3 bits assumed to be 0.
3920 ENUM
3921   BFD_RELOC_D30V_9_PCREL_R
3922 ENUMDOC
3923   This is a 6-bit pc-relative reloc with
3924   the right 3 bits assumed to be 0. Same
3925   as the previous reloc but on the right side
3926   of the container.
3927 ENUM
3928   BFD_RELOC_D30V_15
3929 ENUMDOC
3930   This is a 12-bit absolute reloc with the
3931   right 3 bitsassumed to be 0.
3932 ENUM
3933   BFD_RELOC_D30V_15_PCREL
3934 ENUMDOC
3935   This is a 12-bit pc-relative reloc with
3936   the right 3 bits assumed to be 0.
3937 ENUM
3938   BFD_RELOC_D30V_15_PCREL_R
3939 ENUMDOC
3940   This is a 12-bit pc-relative reloc with
3941   the right 3 bits assumed to be 0. Same
3942   as the previous reloc but on the right side
3943   of the container.
3944 ENUM
3945   BFD_RELOC_D30V_21
3946 ENUMDOC
3947   This is an 18-bit absolute reloc with
3948   the right 3 bits assumed to be 0.
3949 ENUM
3950   BFD_RELOC_D30V_21_PCREL
3951 ENUMDOC
3952   This is an 18-bit pc-relative reloc with
3953   the right 3 bits assumed to be 0.
3954 ENUM
3955   BFD_RELOC_D30V_21_PCREL_R
3956 ENUMDOC
3957   This is an 18-bit pc-relative reloc with
3958   the right 3 bits assumed to be 0. Same
3959   as the previous reloc but on the right side
3960   of the container.
3961 ENUM
3962   BFD_RELOC_D30V_32
3963 ENUMDOC
3964   This is a 32-bit absolute reloc.
3965 ENUM
3966   BFD_RELOC_D30V_32_PCREL
3967 ENUMDOC
3968   This is a 32-bit pc-relative reloc.
3969 
3970 ENUM
3971   BFD_RELOC_DLX_HI16_S
3972 ENUMDOC
3973   DLX relocs
3974 ENUM
3975   BFD_RELOC_DLX_LO16
3976 ENUMDOC
3977   DLX relocs
3978 ENUM
3979   BFD_RELOC_DLX_JMP26
3980 ENUMDOC
3981   DLX relocs
3982 
3983 ENUM
3984   BFD_RELOC_M32C_HI8
3985 ENUMX
3986   BFD_RELOC_M32C_RL_JUMP
3987 ENUMX
3988   BFD_RELOC_M32C_RL_1ADDR
3989 ENUMX
3990   BFD_RELOC_M32C_RL_2ADDR
3991 ENUMDOC
3992   Renesas M16C/M32C Relocations.
3993 
3994 ENUM
3995   BFD_RELOC_M32R_24
3996 ENUMDOC
3997   Renesas M32R (formerly Mitsubishi M32R) relocs.
3998   This is a 24 bit absolute address.
3999 ENUM
4000   BFD_RELOC_M32R_10_PCREL
4001 ENUMDOC
4002   This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0.
4003 ENUM
4004   BFD_RELOC_M32R_18_PCREL
4005 ENUMDOC
4006   This is an 18-bit reloc with the right 2 bits assumed to be 0.
4007 ENUM
4008   BFD_RELOC_M32R_26_PCREL
4009 ENUMDOC
4010   This is a 26-bit reloc with the right 2 bits assumed to be 0.
4011 ENUM
4012   BFD_RELOC_M32R_HI16_ULO
4013 ENUMDOC
4014   This is a 16-bit reloc containing the high 16 bits of an address
4015   used when the lower 16 bits are treated as unsigned.
4016 ENUM
4017   BFD_RELOC_M32R_HI16_SLO
4018 ENUMDOC
4019   This is a 16-bit reloc containing the high 16 bits of an address
4020   used when the lower 16 bits are treated as signed.
4021 ENUM
4022   BFD_RELOC_M32R_LO16
4023 ENUMDOC
4024   This is a 16-bit reloc containing the lower 16 bits of an address.
4025 ENUM
4026   BFD_RELOC_M32R_SDA16
4027 ENUMDOC
4028   This is a 16-bit reloc containing the small data area offset for use in
4029   add3, load, and store instructions.
4030 ENUM
4031   BFD_RELOC_M32R_GOT24
4032 ENUMX
4033   BFD_RELOC_M32R_26_PLTREL
4034 ENUMX
4035   BFD_RELOC_M32R_COPY
4036 ENUMX
4037   BFD_RELOC_M32R_GLOB_DAT
4038 ENUMX
4039   BFD_RELOC_M32R_JMP_SLOT
4040 ENUMX
4041   BFD_RELOC_M32R_RELATIVE
4042 ENUMX
4043   BFD_RELOC_M32R_GOTOFF
4044 ENUMX
4045   BFD_RELOC_M32R_GOTOFF_HI_ULO
4046 ENUMX
4047   BFD_RELOC_M32R_GOTOFF_HI_SLO
4048 ENUMX
4049   BFD_RELOC_M32R_GOTOFF_LO
4050 ENUMX
4051   BFD_RELOC_M32R_GOTPC24
4052 ENUMX
4053   BFD_RELOC_M32R_GOT16_HI_ULO
4054 ENUMX
4055   BFD_RELOC_M32R_GOT16_HI_SLO
4056 ENUMX
4057   BFD_RELOC_M32R_GOT16_LO
4058 ENUMX
4059   BFD_RELOC_M32R_GOTPC_HI_ULO
4060 ENUMX
4061   BFD_RELOC_M32R_GOTPC_HI_SLO
4062 ENUMX
4063   BFD_RELOC_M32R_GOTPC_LO
4064 ENUMDOC
4065   For PIC.
4066 
4067 
4068 ENUM
4069   BFD_RELOC_NDS32_20
4070 ENUMDOC
4071   NDS32 relocs.
4072   This is a 20 bit absolute address.
4073 ENUM
4074   BFD_RELOC_NDS32_9_PCREL
4075 ENUMDOC
4076   This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0.
4077 ENUM
4078   BFD_RELOC_NDS32_WORD_9_PCREL
4079 ENUMDOC
4080   This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0.
4081 ENUM
4082   BFD_RELOC_NDS32_15_PCREL
4083 ENUMDOC
4084   This is an 15-bit reloc with the right 1 bit assumed to be 0.
4085 ENUM
4086   BFD_RELOC_NDS32_17_PCREL
4087 ENUMDOC
4088   This is an 17-bit reloc with the right 1 bit assumed to be 0.
4089 ENUM
4090   BFD_RELOC_NDS32_25_PCREL
4091 ENUMDOC
4092   This is a 25-bit reloc with the right 1 bit assumed to be 0.
4093 ENUM
4094   BFD_RELOC_NDS32_HI20
4095 ENUMDOC
4096   This is a 20-bit reloc containing the high 20 bits of an address
4097   used with the lower 12 bits
4098 ENUM
4099   BFD_RELOC_NDS32_LO12S3
4100 ENUMDOC
4101   This is a 12-bit reloc containing the lower 12 bits of an address
4102   then shift right by 3. This is used with ldi,sdi...
4103 ENUM
4104   BFD_RELOC_NDS32_LO12S2
4105 ENUMDOC
4106   This is a 12-bit reloc containing the lower 12 bits of an address
4107   then shift left by 2. This is used with lwi,swi...
4108 ENUM
4109   BFD_RELOC_NDS32_LO12S1
4110 ENUMDOC
4111   This is a 12-bit reloc containing the lower 12 bits of an address
4112   then shift left by 1. This is used with lhi,shi...
4113 ENUM
4114   BFD_RELOC_NDS32_LO12S0
4115 ENUMDOC
4116   This is a 12-bit reloc containing the lower 12 bits of an address
4117   then shift left by 0. This is used with lbisbi...
4118 ENUM
4119   BFD_RELOC_NDS32_LO12S0_ORI
4120 ENUMDOC
4121   This is a 12-bit reloc containing the lower 12 bits of an address
4122   then shift left by 0. This is only used with branch relaxations
4123 ENUM
4124   BFD_RELOC_NDS32_SDA15S3
4125 ENUMDOC
4126   This is a 15-bit reloc containing the small data area 18-bit signed offset
4127   and shift left by 3 for use in ldi, sdi...
4128 ENUM
4129   BFD_RELOC_NDS32_SDA15S2
4130 ENUMDOC
4131   This is a 15-bit reloc containing the small data area 17-bit signed offset
4132   and shift left by 2 for use in lwi, swi...
4133 ENUM
4134   BFD_RELOC_NDS32_SDA15S1
4135 ENUMDOC
4136   This is a 15-bit reloc containing the small data area 16-bit signed offset
4137   and shift left by 1 for use in lhi, shi...
4138 ENUM
4139   BFD_RELOC_NDS32_SDA15S0
4140 ENUMDOC
4141   This is a 15-bit reloc containing the small data area 15-bit signed offset
4142   and shift left by 0 for use in lbi, sbi...
4143 ENUM
4144   BFD_RELOC_NDS32_SDA16S3
4145 ENUMDOC
4146   This is a 16-bit reloc containing the small data area 16-bit signed offset
4147   and shift left by 3
4148 ENUM
4149   BFD_RELOC_NDS32_SDA17S2
4150 ENUMDOC
4151   This is a 17-bit reloc containing the small data area 17-bit signed offset
4152   and shift left by 2 for use in lwi.gp, swi.gp...
4153 ENUM
4154   BFD_RELOC_NDS32_SDA18S1
4155 ENUMDOC
4156   This is a 18-bit reloc containing the small data area 18-bit signed offset
4157   and shift left by 1 for use in lhi.gp, shi.gp...
4158 ENUM
4159   BFD_RELOC_NDS32_SDA19S0
4160 ENUMDOC
4161   This is a 19-bit reloc containing the small data area 19-bit signed offset
4162   and shift left by 0 for use in lbi.gp, sbi.gp...
4163 ENUM
4164   BFD_RELOC_NDS32_GOT20
4165 ENUMX
4166   BFD_RELOC_NDS32_9_PLTREL
4167 ENUMX
4168   BFD_RELOC_NDS32_25_PLTREL
4169 ENUMX
4170   BFD_RELOC_NDS32_COPY
4171 ENUMX
4172   BFD_RELOC_NDS32_GLOB_DAT
4173 ENUMX
4174   BFD_RELOC_NDS32_JMP_SLOT
4175 ENUMX
4176   BFD_RELOC_NDS32_RELATIVE
4177 ENUMX
4178   BFD_RELOC_NDS32_GOTOFF
4179 ENUMX
4180   BFD_RELOC_NDS32_GOTOFF_HI20
4181 ENUMX
4182   BFD_RELOC_NDS32_GOTOFF_LO12
4183 ENUMX
4184   BFD_RELOC_NDS32_GOTPC20
4185 ENUMX
4186   BFD_RELOC_NDS32_GOT_HI20
4187 ENUMX
4188   BFD_RELOC_NDS32_GOT_LO12
4189 ENUMX
4190   BFD_RELOC_NDS32_GOTPC_HI20
4191 ENUMX
4192   BFD_RELOC_NDS32_GOTPC_LO12
4193 ENUMDOC
4194   for PIC
4195 ENUM
4196   BFD_RELOC_NDS32_INSN16
4197 ENUMX
4198   BFD_RELOC_NDS32_LABEL
4199 ENUMX
4200   BFD_RELOC_NDS32_LONGCALL1
4201 ENUMX
4202   BFD_RELOC_NDS32_LONGCALL2
4203 ENUMX
4204   BFD_RELOC_NDS32_LONGCALL3
4205 ENUMX
4206   BFD_RELOC_NDS32_LONGJUMP1
4207 ENUMX
4208   BFD_RELOC_NDS32_LONGJUMP2
4209 ENUMX
4210   BFD_RELOC_NDS32_LONGJUMP3
4211 ENUMX
4212   BFD_RELOC_NDS32_LOADSTORE
4213 ENUMX
4214   BFD_RELOC_NDS32_9_FIXED
4215 ENUMX
4216   BFD_RELOC_NDS32_15_FIXED
4217 ENUMX
4218   BFD_RELOC_NDS32_17_FIXED
4219 ENUMX
4220   BFD_RELOC_NDS32_25_FIXED
4221 ENUMX
4222   BFD_RELOC_NDS32_LONGCALL4
4223 ENUMX
4224   BFD_RELOC_NDS32_LONGCALL5
4225 ENUMX
4226   BFD_RELOC_NDS32_LONGCALL6
4227 ENUMX
4228   BFD_RELOC_NDS32_LONGJUMP4
4229 ENUMX
4230   BFD_RELOC_NDS32_LONGJUMP5
4231 ENUMX
4232   BFD_RELOC_NDS32_LONGJUMP6
4233 ENUMX
4234   BFD_RELOC_NDS32_LONGJUMP7
4235 ENUMDOC
4236   for relax
4237 ENUM
4238   BFD_RELOC_NDS32_PLTREL_HI20
4239 ENUMX
4240   BFD_RELOC_NDS32_PLTREL_LO12
4241 ENUMX
4242   BFD_RELOC_NDS32_PLT_GOTREL_HI20
4243 ENUMX
4244   BFD_RELOC_NDS32_PLT_GOTREL_LO12
4245 ENUMDOC
4246   for PIC
4247 ENUM
4248   BFD_RELOC_NDS32_SDA12S2_DP
4249 ENUMX
4250   BFD_RELOC_NDS32_SDA12S2_SP
4251 ENUMX
4252   BFD_RELOC_NDS32_LO12S2_DP
4253 ENUMX
4254   BFD_RELOC_NDS32_LO12S2_SP
4255 ENUMDOC
4256   for floating point
4257 ENUM
4258   BFD_RELOC_NDS32_DWARF2_OP1
4259 ENUMX
4260   BFD_RELOC_NDS32_DWARF2_OP2
4261 ENUMX
4262   BFD_RELOC_NDS32_DWARF2_LEB
4263 ENUMDOC
4264   for dwarf2 debug_line.
4265 ENUM
4266   BFD_RELOC_NDS32_UPDATE_TA
4267 ENUMDOC
4268   for eliminate 16-bit instructions
4269 ENUM
4270   BFD_RELOC_NDS32_PLT_GOTREL_LO20
4271 ENUMX
4272   BFD_RELOC_NDS32_PLT_GOTREL_LO15
4273 ENUMX
4274   BFD_RELOC_NDS32_PLT_GOTREL_LO19
4275 ENUMX
4276   BFD_RELOC_NDS32_GOT_LO15
4277 ENUMX
4278   BFD_RELOC_NDS32_GOT_LO19
4279 ENUMX
4280   BFD_RELOC_NDS32_GOTOFF_LO15
4281 ENUMX
4282   BFD_RELOC_NDS32_GOTOFF_LO19
4283 ENUMX
4284   BFD_RELOC_NDS32_GOT15S2
4285 ENUMX
4286   BFD_RELOC_NDS32_GOT17S2
4287 ENUMDOC
4288   for PIC object relaxation
4289 ENUM
4290   BFD_RELOC_NDS32_5
4291 ENUMDOC
4292   NDS32 relocs.
4293   This is a 5 bit absolute address.
4294 ENUM
4295   BFD_RELOC_NDS32_10_UPCREL
4296 ENUMDOC
4297   This is a 10-bit unsigned pc-relative reloc with the right 1 bit assumed to be 0.
4298 ENUM
4299   BFD_RELOC_NDS32_SDA_FP7U2_RELA
4300 ENUMDOC
4301   If fp were omitted, fp can used as another gp.
4302 ENUM
4303   BFD_RELOC_NDS32_RELAX_ENTRY
4304 ENUMX
4305   BFD_RELOC_NDS32_GOT_SUFF
4306 ENUMX
4307   BFD_RELOC_NDS32_GOTOFF_SUFF
4308 ENUMX
4309   BFD_RELOC_NDS32_PLT_GOT_SUFF
4310 ENUMX
4311   BFD_RELOC_NDS32_MULCALL_SUFF
4312 ENUMX
4313   BFD_RELOC_NDS32_PTR
4314 ENUMX
4315   BFD_RELOC_NDS32_PTR_COUNT
4316 ENUMX
4317   BFD_RELOC_NDS32_PTR_RESOLVED
4318 ENUMX
4319   BFD_RELOC_NDS32_PLTBLOCK
4320 ENUMX
4321   BFD_RELOC_NDS32_RELAX_REGION_BEGIN
4322 ENUMX
4323   BFD_RELOC_NDS32_RELAX_REGION_END
4324 ENUMX
4325   BFD_RELOC_NDS32_MINUEND
4326 ENUMX
4327   BFD_RELOC_NDS32_SUBTRAHEND
4328 ENUMX
4329   BFD_RELOC_NDS32_DIFF8
4330 ENUMX
4331   BFD_RELOC_NDS32_DIFF16
4332 ENUMX
4333   BFD_RELOC_NDS32_DIFF32
4334 ENUMX
4335   BFD_RELOC_NDS32_DIFF_ULEB128
4336 ENUMX
4337   BFD_RELOC_NDS32_EMPTY
4338 ENUMDOC
4339   relaxation relative relocation types
4340 ENUM
4341   BFD_RELOC_NDS32_25_ABS
4342 ENUMDOC
4343   This is a 25 bit absolute address.
4344 ENUM
4345   BFD_RELOC_NDS32_DATA
4346 ENUMX
4347   BFD_RELOC_NDS32_TRAN
4348 ENUMX
4349   BFD_RELOC_NDS32_17IFC_PCREL
4350 ENUMX
4351   BFD_RELOC_NDS32_10IFCU_PCREL
4352 ENUMDOC
4353   For ex9 and ifc using.
4354 ENUM
4355   BFD_RELOC_NDS32_TPOFF
4356 ENUMX
4357   BFD_RELOC_NDS32_GOTTPOFF
4358 ENUMX
4359   BFD_RELOC_NDS32_TLS_LE_HI20
4360 ENUMX
4361   BFD_RELOC_NDS32_TLS_LE_LO12
4362 ENUMX
4363   BFD_RELOC_NDS32_TLS_LE_20
4364 ENUMX
4365   BFD_RELOC_NDS32_TLS_LE_15S0
4366 ENUMX
4367   BFD_RELOC_NDS32_TLS_LE_15S1
4368 ENUMX
4369   BFD_RELOC_NDS32_TLS_LE_15S2
4370 ENUMX
4371   BFD_RELOC_NDS32_TLS_LE_ADD
4372 ENUMX
4373   BFD_RELOC_NDS32_TLS_LE_LS
4374 ENUMX
4375   BFD_RELOC_NDS32_TLS_IE_HI20
4376 ENUMX
4377   BFD_RELOC_NDS32_TLS_IE_LO12
4378 ENUMX
4379   BFD_RELOC_NDS32_TLS_IE_LO12S2
4380 ENUMX
4381   BFD_RELOC_NDS32_TLS_IEGP_HI20
4382 ENUMX
4383   BFD_RELOC_NDS32_TLS_IEGP_LO12
4384 ENUMX
4385   BFD_RELOC_NDS32_TLS_IEGP_LO12S2
4386 ENUMX
4387   BFD_RELOC_NDS32_TLS_IEGP_LW
4388 ENUMX
4389   BFD_RELOC_NDS32_TLS_DESC
4390 ENUMX
4391   BFD_RELOC_NDS32_TLS_DESC_HI20
4392 ENUMX
4393   BFD_RELOC_NDS32_TLS_DESC_LO12
4394 ENUMX
4395   BFD_RELOC_NDS32_TLS_DESC_20
4396 ENUMX
4397   BFD_RELOC_NDS32_TLS_DESC_SDA17S2
4398 ENUMX
4399   BFD_RELOC_NDS32_TLS_DESC_ADD
4400 ENUMX
4401   BFD_RELOC_NDS32_TLS_DESC_FUNC
4402 ENUMX
4403   BFD_RELOC_NDS32_TLS_DESC_CALL
4404 ENUMX
4405   BFD_RELOC_NDS32_TLS_DESC_MEM
4406 ENUMX
4407   BFD_RELOC_NDS32_REMOVE
4408 ENUMX
4409   BFD_RELOC_NDS32_GROUP
4410 ENUMDOC
4411   For TLS.
4412 ENUM
4413   BFD_RELOC_NDS32_LSI
4414 ENUMDOC
4415   For floating load store relaxation.
4416 
4417 
4418 ENUM
4419   BFD_RELOC_V850_9_PCREL
4420 ENUMDOC
4421   This is a 9-bit reloc
4422 ENUM
4423   BFD_RELOC_V850_22_PCREL
4424 ENUMDOC
4425   This is a 22-bit reloc
4426 
4427 ENUM
4428   BFD_RELOC_V850_SDA_16_16_OFFSET
4429 ENUMDOC
4430   This is a 16 bit offset from the short data area pointer.
4431 ENUM
4432   BFD_RELOC_V850_SDA_15_16_OFFSET
4433 ENUMDOC
4434   This is a 16 bit offset (of which only 15 bits are used) from the
4435   short data area pointer.
4436 ENUM
4437   BFD_RELOC_V850_ZDA_16_16_OFFSET
4438 ENUMDOC
4439   This is a 16 bit offset from the zero data area pointer.
4440 ENUM
4441   BFD_RELOC_V850_ZDA_15_16_OFFSET
4442 ENUMDOC
4443   This is a 16 bit offset (of which only 15 bits are used) from the
4444   zero data area pointer.
4445 ENUM
4446   BFD_RELOC_V850_TDA_6_8_OFFSET
4447 ENUMDOC
4448   This is an 8 bit offset (of which only 6 bits are used) from the
4449   tiny data area pointer.
4450 ENUM
4451   BFD_RELOC_V850_TDA_7_8_OFFSET
4452 ENUMDOC
4453   This is an 8bit offset (of which only 7 bits are used) from the tiny
4454   data area pointer.
4455 ENUM
4456   BFD_RELOC_V850_TDA_7_7_OFFSET
4457 ENUMDOC
4458   This is a 7 bit offset from the tiny data area pointer.
4459 ENUM
4460   BFD_RELOC_V850_TDA_16_16_OFFSET
4461 ENUMDOC
4462   This is a 16 bit offset from the tiny data area pointer.
4463 COMMENT
4464 ENUM
4465   BFD_RELOC_V850_TDA_4_5_OFFSET
4466 ENUMDOC
4467   This is a 5 bit offset (of which only 4 bits are used) from the tiny
4468   data area pointer.
4469 ENUM
4470   BFD_RELOC_V850_TDA_4_4_OFFSET
4471 ENUMDOC
4472   This is a 4 bit offset from the tiny data area pointer.
4473 ENUM
4474   BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET
4475 ENUMDOC
4476   This is a 16 bit offset from the short data area pointer, with the
4477   bits placed non-contiguously in the instruction.
4478 ENUM
4479   BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET
4480 ENUMDOC
4481   This is a 16 bit offset from the zero data area pointer, with the
4482   bits placed non-contiguously in the instruction.
4483 ENUM
4484   BFD_RELOC_V850_CALLT_6_7_OFFSET
4485 ENUMDOC
4486   This is a 6 bit offset from the call table base pointer.
4487 ENUM
4488   BFD_RELOC_V850_CALLT_16_16_OFFSET
4489 ENUMDOC
4490   This is a 16 bit offset from the call table base pointer.
4491 ENUM
4492   BFD_RELOC_V850_LONGCALL
4493 ENUMDOC
4494   Used for relaxing indirect function calls.
4495 ENUM
4496   BFD_RELOC_V850_LONGJUMP
4497 ENUMDOC
4498   Used for relaxing indirect jumps.
4499 ENUM
4500   BFD_RELOC_V850_ALIGN
4501 ENUMDOC
4502   Used to maintain alignment whilst relaxing.
4503 ENUM
4504   BFD_RELOC_V850_LO16_SPLIT_OFFSET
4505 ENUMDOC
4506   This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu
4507   instructions.
4508 ENUM
4509   BFD_RELOC_V850_16_PCREL
4510 ENUMDOC
4511   This is a 16-bit reloc.
4512 ENUM
4513   BFD_RELOC_V850_17_PCREL
4514 ENUMDOC
4515   This is a 17-bit reloc.
4516 ENUM
4517   BFD_RELOC_V850_23
4518 ENUMDOC
4519   This is a 23-bit reloc.
4520 ENUM
4521   BFD_RELOC_V850_32_PCREL
4522 ENUMDOC
4523   This is a 32-bit reloc.
4524 ENUM
4525   BFD_RELOC_V850_32_ABS
4526 ENUMDOC
4527   This is a 32-bit reloc.
4528 ENUM
4529   BFD_RELOC_V850_16_SPLIT_OFFSET
4530 ENUMDOC
4531   This is a 16-bit reloc.
4532 ENUM
4533   BFD_RELOC_V850_16_S1
4534 ENUMDOC
4535   This is a 16-bit reloc.
4536 ENUM
4537   BFD_RELOC_V850_LO16_S1
4538 ENUMDOC
4539   Low 16 bits. 16 bit shifted by 1.
4540 ENUM
4541   BFD_RELOC_V850_CALLT_15_16_OFFSET
4542 ENUMDOC
4543   This is a 16 bit offset from the call table base pointer.
4544 ENUM
4545   BFD_RELOC_V850_32_GOTPCREL
4546 ENUMDOC
4547   DSO relocations.
4548 ENUM
4549   BFD_RELOC_V850_16_GOT
4550 ENUMDOC
4551   DSO relocations.
4552 ENUM
4553   BFD_RELOC_V850_32_GOT
4554 ENUMDOC
4555   DSO relocations.
4556 ENUM
4557   BFD_RELOC_V850_22_PLT_PCREL
4558 ENUMDOC
4559   DSO relocations.
4560 ENUM
4561   BFD_RELOC_V850_32_PLT_PCREL
4562 ENUMDOC
4563   DSO relocations.
4564 ENUM
4565   BFD_RELOC_V850_COPY
4566 ENUMDOC
4567   DSO relocations.
4568 ENUM
4569   BFD_RELOC_V850_GLOB_DAT
4570 ENUMDOC
4571   DSO relocations.
4572 ENUM
4573   BFD_RELOC_V850_JMP_SLOT
4574 ENUMDOC
4575   DSO relocations.
4576 ENUM
4577   BFD_RELOC_V850_RELATIVE
4578 ENUMDOC
4579   DSO relocations.
4580 ENUM
4581   BFD_RELOC_V850_16_GOTOFF
4582 ENUMDOC
4583   DSO relocations.
4584 ENUM
4585   BFD_RELOC_V850_32_GOTOFF
4586 ENUMDOC
4587   DSO relocations.
4588 ENUM
4589   BFD_RELOC_V850_CODE
4590 ENUMDOC
4591   start code.
4592 ENUM
4593   BFD_RELOC_V850_DATA
4594 ENUMDOC
4595   start data in text.
4596 
4597 ENUM
4598   BFD_RELOC_TIC30_LDP
4599 ENUMDOC
4600   This is a 8bit DP reloc for the tms320c30, where the most
4601   significant 8 bits of a 24 bit word are placed into the least
4602   significant 8 bits of the opcode.
4603 
4604 ENUM
4605   BFD_RELOC_TIC54X_PARTLS7
4606 ENUMDOC
4607   This is a 7bit reloc for the tms320c54x, where the least
4608   significant 7 bits of a 16 bit word are placed into the least
4609   significant 7 bits of the opcode.
4610 
4611 ENUM
4612   BFD_RELOC_TIC54X_PARTMS9
4613 ENUMDOC
4614   This is a 9bit DP reloc for the tms320c54x, where the most
4615   significant 9 bits of a 16 bit word are placed into the least
4616   significant 9 bits of the opcode.
4617 
4618 ENUM
4619   BFD_RELOC_TIC54X_23
4620 ENUMDOC
4621   This is an extended address 23-bit reloc for the tms320c54x.
4622 
4623 ENUM
4624   BFD_RELOC_TIC54X_16_OF_23
4625 ENUMDOC
4626   This is a 16-bit reloc for the tms320c54x, where the least
4627   significant 16 bits of a 23-bit extended address are placed into
4628   the opcode.
4629 
4630 ENUM
4631   BFD_RELOC_TIC54X_MS7_OF_23
4632 ENUMDOC
4633   This is a reloc for the tms320c54x, where the most
4634   significant 7 bits of a 23-bit extended address are placed into
4635   the opcode.
4636 
4637 ENUM
4638   BFD_RELOC_C6000_PCR_S21
4639 ENUMX
4640   BFD_RELOC_C6000_PCR_S12
4641 ENUMX
4642   BFD_RELOC_C6000_PCR_S10
4643 ENUMX
4644   BFD_RELOC_C6000_PCR_S7
4645 ENUMX
4646   BFD_RELOC_C6000_ABS_S16
4647 ENUMX
4648   BFD_RELOC_C6000_ABS_L16
4649 ENUMX
4650   BFD_RELOC_C6000_ABS_H16
4651 ENUMX
4652   BFD_RELOC_C6000_SBR_U15_B
4653 ENUMX
4654   BFD_RELOC_C6000_SBR_U15_H
4655 ENUMX
4656   BFD_RELOC_C6000_SBR_U15_W
4657 ENUMX
4658   BFD_RELOC_C6000_SBR_S16
4659 ENUMX
4660   BFD_RELOC_C6000_SBR_L16_B
4661 ENUMX
4662   BFD_RELOC_C6000_SBR_L16_H
4663 ENUMX
4664   BFD_RELOC_C6000_SBR_L16_W
4665 ENUMX
4666   BFD_RELOC_C6000_SBR_H16_B
4667 ENUMX
4668   BFD_RELOC_C6000_SBR_H16_H
4669 ENUMX
4670   BFD_RELOC_C6000_SBR_H16_W
4671 ENUMX
4672   BFD_RELOC_C6000_SBR_GOT_U15_W
4673 ENUMX
4674   BFD_RELOC_C6000_SBR_GOT_L16_W
4675 ENUMX
4676   BFD_RELOC_C6000_SBR_GOT_H16_W
4677 ENUMX
4678   BFD_RELOC_C6000_DSBT_INDEX
4679 ENUMX
4680   BFD_RELOC_C6000_PREL31
4681 ENUMX
4682   BFD_RELOC_C6000_COPY
4683 ENUMX
4684   BFD_RELOC_C6000_JUMP_SLOT
4685 ENUMX
4686   BFD_RELOC_C6000_EHTYPE
4687 ENUMX
4688   BFD_RELOC_C6000_PCR_H16
4689 ENUMX
4690   BFD_RELOC_C6000_PCR_L16
4691 ENUMX
4692   BFD_RELOC_C6000_ALIGN
4693 ENUMX
4694   BFD_RELOC_C6000_FPHEAD
4695 ENUMX
4696   BFD_RELOC_C6000_NOCMP
4697 ENUMDOC
4698   TMS320C6000 relocations.
4699 
4700 ENUM
4701   BFD_RELOC_FR30_48
4702 ENUMDOC
4703   This is a 48 bit reloc for the FR30 that stores 32 bits.
4704 ENUM
4705   BFD_RELOC_FR30_20
4706 ENUMDOC
4707   This is a 32 bit reloc for the FR30 that stores 20 bits split up into
4708   two sections.
4709 ENUM
4710   BFD_RELOC_FR30_6_IN_4
4711 ENUMDOC
4712   This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in
4713   4 bits.
4714 ENUM
4715   BFD_RELOC_FR30_8_IN_8
4716 ENUMDOC
4717   This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
4718   into 8 bits.
4719 ENUM
4720   BFD_RELOC_FR30_9_IN_8
4721 ENUMDOC
4722   This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
4723   into 8 bits.
4724 ENUM
4725   BFD_RELOC_FR30_10_IN_8
4726 ENUMDOC
4727   This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
4728   into 8 bits.
4729 ENUM
4730   BFD_RELOC_FR30_9_PCREL
4731 ENUMDOC
4732   This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
4733   short offset into 8 bits.
4734 ENUM
4735   BFD_RELOC_FR30_12_PCREL
4736 ENUMDOC
4737   This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
4738   short offset into 11 bits.
4739 
4740 ENUM
4741   BFD_RELOC_MCORE_PCREL_IMM8BY4
4742 ENUMX
4743   BFD_RELOC_MCORE_PCREL_IMM11BY2
4744 ENUMX
4745   BFD_RELOC_MCORE_PCREL_IMM4BY2
4746 ENUMX
4747   BFD_RELOC_MCORE_PCREL_32
4748 ENUMX
4749   BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2
4750 ENUMX
4751   BFD_RELOC_MCORE_RVA
4752 ENUMDOC
4753   Motorola Mcore relocations.
4754 
4755 ENUM
4756   BFD_RELOC_MEP_8
4757 ENUMX
4758   BFD_RELOC_MEP_16
4759 ENUMX
4760   BFD_RELOC_MEP_32
4761 ENUMX
4762   BFD_RELOC_MEP_PCREL8A2
4763 ENUMX
4764   BFD_RELOC_MEP_PCREL12A2
4765 ENUMX
4766   BFD_RELOC_MEP_PCREL17A2
4767 ENUMX
4768   BFD_RELOC_MEP_PCREL24A2
4769 ENUMX
4770   BFD_RELOC_MEP_PCABS24A2
4771 ENUMX
4772   BFD_RELOC_MEP_LOW16
4773 ENUMX
4774   BFD_RELOC_MEP_HI16U
4775 ENUMX
4776   BFD_RELOC_MEP_HI16S
4777 ENUMX
4778   BFD_RELOC_MEP_GPREL
4779 ENUMX
4780   BFD_RELOC_MEP_TPREL
4781 ENUMX
4782   BFD_RELOC_MEP_TPREL7
4783 ENUMX
4784   BFD_RELOC_MEP_TPREL7A2
4785 ENUMX
4786   BFD_RELOC_MEP_TPREL7A4
4787 ENUMX
4788   BFD_RELOC_MEP_UIMM24
4789 ENUMX
4790   BFD_RELOC_MEP_ADDR24A4
4791 ENUMX
4792   BFD_RELOC_MEP_GNU_VTINHERIT
4793 ENUMX
4794   BFD_RELOC_MEP_GNU_VTENTRY
4795 ENUMDOC
4796   Toshiba Media Processor Relocations.
4797 COMMENT
4798 
4799 ENUM
4800   BFD_RELOC_METAG_HIADDR16
4801 ENUMX
4802   BFD_RELOC_METAG_LOADDR16
4803 ENUMX
4804   BFD_RELOC_METAG_RELBRANCH
4805 ENUMX
4806   BFD_RELOC_METAG_GETSETOFF
4807 ENUMX
4808   BFD_RELOC_METAG_HIOG
4809 ENUMX
4810   BFD_RELOC_METAG_LOOG
4811 ENUMX
4812   BFD_RELOC_METAG_REL8
4813 ENUMX
4814   BFD_RELOC_METAG_REL16
4815 ENUMX
4816   BFD_RELOC_METAG_HI16_GOTOFF
4817 ENUMX
4818   BFD_RELOC_METAG_LO16_GOTOFF
4819 ENUMX
4820   BFD_RELOC_METAG_GETSET_GOTOFF
4821 ENUMX
4822   BFD_RELOC_METAG_GETSET_GOT
4823 ENUMX
4824   BFD_RELOC_METAG_HI16_GOTPC
4825 ENUMX
4826   BFD_RELOC_METAG_LO16_GOTPC
4827 ENUMX
4828   BFD_RELOC_METAG_HI16_PLT
4829 ENUMX
4830   BFD_RELOC_METAG_LO16_PLT
4831 ENUMX
4832   BFD_RELOC_METAG_RELBRANCH_PLT
4833 ENUMX
4834   BFD_RELOC_METAG_GOTOFF
4835 ENUMX
4836   BFD_RELOC_METAG_PLT
4837 ENUMX
4838   BFD_RELOC_METAG_COPY
4839 ENUMX
4840   BFD_RELOC_METAG_JMP_SLOT
4841 ENUMX
4842   BFD_RELOC_METAG_RELATIVE
4843 ENUMX
4844   BFD_RELOC_METAG_GLOB_DAT
4845 ENUMX
4846   BFD_RELOC_METAG_TLS_GD
4847 ENUMX
4848   BFD_RELOC_METAG_TLS_LDM
4849 ENUMX
4850   BFD_RELOC_METAG_TLS_LDO_HI16
4851 ENUMX
4852   BFD_RELOC_METAG_TLS_LDO_LO16
4853 ENUMX
4854   BFD_RELOC_METAG_TLS_LDO
4855 ENUMX
4856   BFD_RELOC_METAG_TLS_IE
4857 ENUMX
4858   BFD_RELOC_METAG_TLS_IENONPIC
4859 ENUMX
4860   BFD_RELOC_METAG_TLS_IENONPIC_HI16
4861 ENUMX
4862   BFD_RELOC_METAG_TLS_IENONPIC_LO16
4863 ENUMX
4864   BFD_RELOC_METAG_TLS_TPOFF
4865 ENUMX
4866   BFD_RELOC_METAG_TLS_DTPMOD
4867 ENUMX
4868   BFD_RELOC_METAG_TLS_DTPOFF
4869 ENUMX
4870   BFD_RELOC_METAG_TLS_LE
4871 ENUMX
4872   BFD_RELOC_METAG_TLS_LE_HI16
4873 ENUMX
4874   BFD_RELOC_METAG_TLS_LE_LO16
4875 ENUMDOC
4876   Imagination Technologies Meta relocations.
4877 
4878 ENUM
4879   BFD_RELOC_MMIX_GETA
4880 ENUMX
4881   BFD_RELOC_MMIX_GETA_1
4882 ENUMX
4883   BFD_RELOC_MMIX_GETA_2
4884 ENUMX
4885   BFD_RELOC_MMIX_GETA_3
4886 ENUMDOC
4887   These are relocations for the GETA instruction.
4888 ENUM
4889   BFD_RELOC_MMIX_CBRANCH
4890 ENUMX
4891   BFD_RELOC_MMIX_CBRANCH_J
4892 ENUMX
4893   BFD_RELOC_MMIX_CBRANCH_1
4894 ENUMX
4895   BFD_RELOC_MMIX_CBRANCH_2
4896 ENUMX
4897   BFD_RELOC_MMIX_CBRANCH_3
4898 ENUMDOC
4899   These are relocations for a conditional branch instruction.
4900 ENUM
4901   BFD_RELOC_MMIX_PUSHJ
4902 ENUMX
4903   BFD_RELOC_MMIX_PUSHJ_1
4904 ENUMX
4905   BFD_RELOC_MMIX_PUSHJ_2
4906 ENUMX
4907   BFD_RELOC_MMIX_PUSHJ_3
4908 ENUMX
4909   BFD_RELOC_MMIX_PUSHJ_STUBBABLE
4910 ENUMDOC
4911   These are relocations for the PUSHJ instruction.
4912 ENUM
4913   BFD_RELOC_MMIX_JMP
4914 ENUMX
4915   BFD_RELOC_MMIX_JMP_1
4916 ENUMX
4917   BFD_RELOC_MMIX_JMP_2
4918 ENUMX
4919   BFD_RELOC_MMIX_JMP_3
4920 ENUMDOC
4921   These are relocations for the JMP instruction.
4922 ENUM
4923   BFD_RELOC_MMIX_ADDR19
4924 ENUMDOC
4925   This is a relocation for a relative address as in a GETA instruction or
4926   a branch.
4927 ENUM
4928   BFD_RELOC_MMIX_ADDR27
4929 ENUMDOC
4930   This is a relocation for a relative address as in a JMP instruction.
4931 ENUM
4932   BFD_RELOC_MMIX_REG_OR_BYTE
4933 ENUMDOC
4934   This is a relocation for an instruction field that may be a general
4935   register or a value 0..255.
4936 ENUM
4937   BFD_RELOC_MMIX_REG
4938 ENUMDOC
4939   This is a relocation for an instruction field that may be a general
4940   register.
4941 ENUM
4942   BFD_RELOC_MMIX_BASE_PLUS_OFFSET
4943 ENUMDOC
4944   This is a relocation for two instruction fields holding a register and
4945   an offset, the equivalent of the relocation.
4946 ENUM
4947   BFD_RELOC_MMIX_LOCAL
4948 ENUMDOC
4949   This relocation is an assertion that the expression is not allocated as
4950   a global register.  It does not modify contents.
4951 
4952 ENUM
4953   BFD_RELOC_AVR_7_PCREL
4954 ENUMDOC
4955   This is a 16 bit reloc for the AVR that stores 8 bit pc relative
4956   short offset into 7 bits.
4957 ENUM
4958   BFD_RELOC_AVR_13_PCREL
4959 ENUMDOC
4960   This is a 16 bit reloc for the AVR that stores 13 bit pc relative
4961   short offset into 12 bits.
4962 ENUM
4963   BFD_RELOC_AVR_16_PM
4964 ENUMDOC
4965   This is a 16 bit reloc for the AVR that stores 17 bit value (usually
4966   program memory address) into 16 bits.
4967 ENUM
4968   BFD_RELOC_AVR_LO8_LDI
4969 ENUMDOC
4970   This is a 16 bit reloc for the AVR that stores 8 bit value (usually
4971   data memory address) into 8 bit immediate value of LDI insn.
4972 ENUM
4973   BFD_RELOC_AVR_HI8_LDI
4974 ENUMDOC
4975   This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
4976   of data memory address) into 8 bit immediate value of LDI insn.
4977 ENUM
4978   BFD_RELOC_AVR_HH8_LDI
4979 ENUMDOC
4980   This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
4981   of program memory address) into 8 bit immediate value of LDI insn.
4982 ENUM
4983   BFD_RELOC_AVR_MS8_LDI
4984 ENUMDOC
4985   This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
4986   of 32 bit value) into 8 bit immediate value of LDI insn.
4987 ENUM
4988   BFD_RELOC_AVR_LO8_LDI_NEG
4989 ENUMDOC
4990   This is a 16 bit reloc for the AVR that stores negated 8 bit value
4991   (usually data memory address) into 8 bit immediate value of SUBI insn.
4992 ENUM
4993   BFD_RELOC_AVR_HI8_LDI_NEG
4994 ENUMDOC
4995   This is a 16 bit reloc for the AVR that stores negated 8 bit value
4996   (high 8 bit of data memory address) into 8 bit immediate value of
4997   SUBI insn.
4998 ENUM
4999   BFD_RELOC_AVR_HH8_LDI_NEG
5000 ENUMDOC
5001   This is a 16 bit reloc for the AVR that stores negated 8 bit value
5002   (most high 8 bit of program memory address) into 8 bit immediate value
5003   of LDI or SUBI insn.
5004 ENUM
5005   BFD_RELOC_AVR_MS8_LDI_NEG
5006 ENUMDOC
5007   This is a 16 bit reloc for the AVR that stores negated 8 bit value (msb
5008   of 32 bit value) into 8 bit immediate value of LDI insn.
5009 ENUM
5010   BFD_RELOC_AVR_LO8_LDI_PM
5011 ENUMDOC
5012   This is a 16 bit reloc for the AVR that stores 8 bit value (usually
5013   command address) into 8 bit immediate value of LDI insn.
5014 ENUM
5015   BFD_RELOC_AVR_LO8_LDI_GS
5016 ENUMDOC
5017   This is a 16 bit reloc for the AVR that stores 8 bit value
5018   (command address) into 8 bit immediate value of LDI insn. If the address
5019   is beyond the 128k boundary, the linker inserts a jump stub for this reloc
5020   in the lower 128k.
5021 ENUM
5022   BFD_RELOC_AVR_HI8_LDI_PM
5023 ENUMDOC
5024   This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
5025   of command address) into 8 bit immediate value of LDI insn.
5026 ENUM
5027   BFD_RELOC_AVR_HI8_LDI_GS
5028 ENUMDOC
5029   This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
5030   of command address) into 8 bit immediate value of LDI insn.  If the address
5031   is beyond the 128k boundary, the linker inserts a jump stub for this reloc
5032   below 128k.
5033 ENUM
5034   BFD_RELOC_AVR_HH8_LDI_PM
5035 ENUMDOC
5036   This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
5037   of command address) into 8 bit immediate value of LDI insn.
5038 ENUM
5039   BFD_RELOC_AVR_LO8_LDI_PM_NEG
5040 ENUMDOC
5041   This is a 16 bit reloc for the AVR that stores negated 8 bit value
5042   (usually command address) into 8 bit immediate value of SUBI insn.
5043 ENUM
5044   BFD_RELOC_AVR_HI8_LDI_PM_NEG
5045 ENUMDOC
5046   This is a 16 bit reloc for the AVR that stores negated 8 bit value
5047   (high 8 bit of 16 bit command address) into 8 bit immediate value
5048   of SUBI insn.
5049 ENUM
5050   BFD_RELOC_AVR_HH8_LDI_PM_NEG
5051 ENUMDOC
5052   This is a 16 bit reloc for the AVR that stores negated 8 bit value
5053   (high 6 bit of 22 bit command address) into 8 bit immediate
5054   value of SUBI insn.
5055 ENUM
5056   BFD_RELOC_AVR_CALL
5057 ENUMDOC
5058   This is a 32 bit reloc for the AVR that stores 23 bit value
5059   into 22 bits.
5060 ENUM
5061   BFD_RELOC_AVR_LDI
5062 ENUMDOC
5063   This is a 16 bit reloc for the AVR that stores all needed bits
5064   for absolute addressing with ldi with overflow check to linktime
5065 ENUM
5066   BFD_RELOC_AVR_6
5067 ENUMDOC
5068   This is a 6 bit reloc for the AVR that stores offset for ldd/std
5069   instructions
5070 ENUM
5071   BFD_RELOC_AVR_6_ADIW
5072 ENUMDOC
5073   This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
5074   instructions
5075 ENUM
5076   BFD_RELOC_AVR_8_LO
5077 ENUMDOC
5078   This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol
5079   in .byte lo8(symbol)
5080 ENUM
5081   BFD_RELOC_AVR_8_HI
5082 ENUMDOC
5083   This is a 8 bit reloc for the AVR that stores bits 8..15 of a symbol
5084   in .byte hi8(symbol)
5085 ENUM
5086   BFD_RELOC_AVR_8_HLO
5087 ENUMDOC
5088   This is a 8 bit reloc for the AVR that stores bits 16..23 of a symbol
5089   in .byte hlo8(symbol)
5090 ENUM
5091   BFD_RELOC_AVR_DIFF8
5092 ENUMX
5093   BFD_RELOC_AVR_DIFF16
5094 ENUMX
5095   BFD_RELOC_AVR_DIFF32
5096 ENUMDOC
5097   AVR relocations to mark the difference of two local symbols.
5098   These are only needed to support linker relaxation and can be ignored
5099   when not relaxing.  The field is set to the value of the difference
5100   assuming no relaxation.  The relocation encodes the position of the
5101   second symbol so the linker can determine whether to adjust the field
5102   value.
5103 ENUM
5104   BFD_RELOC_AVR_LDS_STS_16
5105 ENUMDOC
5106   This is a 7 bit reloc for the AVR that stores SRAM address for 16bit
5107   lds and sts instructions supported only tiny core.
5108 ENUM
5109   BFD_RELOC_AVR_PORT6
5110 ENUMDOC
5111   This is a 6 bit reloc for the AVR that stores an I/O register
5112   number for the IN and OUT instructions
5113 ENUM
5114   BFD_RELOC_AVR_PORT5
5115 ENUMDOC
5116   This is a 5 bit reloc for the AVR that stores an I/O register
5117   number for the SBIC, SBIS, SBI and CBI instructions
5118 
5119 ENUM
5120   BFD_RELOC_RISCV_HI20
5121 ENUMX
5122   BFD_RELOC_RISCV_PCREL_HI20
5123 ENUMX
5124   BFD_RELOC_RISCV_PCREL_LO12_I
5125 ENUMX
5126   BFD_RELOC_RISCV_PCREL_LO12_S
5127 ENUMX
5128   BFD_RELOC_RISCV_LO12_I
5129 ENUMX
5130   BFD_RELOC_RISCV_LO12_S
5131 ENUMX
5132   BFD_RELOC_RISCV_GPREL12_I
5133 ENUMX
5134   BFD_RELOC_RISCV_GPREL12_S
5135 ENUMX
5136   BFD_RELOC_RISCV_TPREL_HI20
5137 ENUMX
5138   BFD_RELOC_RISCV_TPREL_LO12_I
5139 ENUMX
5140   BFD_RELOC_RISCV_TPREL_LO12_S
5141 ENUMX
5142   BFD_RELOC_RISCV_TPREL_ADD
5143 ENUMX
5144   BFD_RELOC_RISCV_CALL
5145 ENUMX
5146   BFD_RELOC_RISCV_CALL_PLT
5147 ENUMX
5148   BFD_RELOC_RISCV_ADD8
5149 ENUMX
5150   BFD_RELOC_RISCV_ADD16
5151 ENUMX
5152   BFD_RELOC_RISCV_ADD32
5153 ENUMX
5154   BFD_RELOC_RISCV_ADD64
5155 ENUMX
5156   BFD_RELOC_RISCV_SUB8
5157 ENUMX
5158   BFD_RELOC_RISCV_SUB16
5159 ENUMX
5160   BFD_RELOC_RISCV_SUB32
5161 ENUMX
5162   BFD_RELOC_RISCV_SUB64
5163 ENUMX
5164   BFD_RELOC_RISCV_GOT_HI20
5165 ENUMX
5166   BFD_RELOC_RISCV_TLS_GOT_HI20
5167 ENUMX
5168   BFD_RELOC_RISCV_TLS_GD_HI20
5169 ENUMX
5170   BFD_RELOC_RISCV_JMP
5171 ENUMX
5172   BFD_RELOC_RISCV_TLS_DTPMOD32
5173 ENUMX
5174   BFD_RELOC_RISCV_TLS_DTPREL32
5175 ENUMX
5176   BFD_RELOC_RISCV_TLS_DTPMOD64
5177 ENUMX
5178   BFD_RELOC_RISCV_TLS_DTPREL64
5179 ENUMX
5180   BFD_RELOC_RISCV_TLS_TPREL32
5181 ENUMX
5182   BFD_RELOC_RISCV_TLS_TPREL64
5183 ENUMX
5184   BFD_RELOC_RISCV_ALIGN
5185 ENUMX
5186   BFD_RELOC_RISCV_RVC_BRANCH
5187 ENUMX
5188   BFD_RELOC_RISCV_RVC_JUMP
5189 ENUMX
5190   BFD_RELOC_RISCV_RVC_LUI
5191 ENUMX
5192   BFD_RELOC_RISCV_GPREL_I
5193 ENUMX
5194   BFD_RELOC_RISCV_GPREL_S
5195 ENUMX
5196   BFD_RELOC_RISCV_TPREL_I
5197 ENUMX
5198   BFD_RELOC_RISCV_TPREL_S
5199 ENUMX
5200   BFD_RELOC_RISCV_RELAX
5201 ENUMX
5202   BFD_RELOC_RISCV_CFA
5203 ENUMX
5204   BFD_RELOC_RISCV_SUB6
5205 ENUMX
5206   BFD_RELOC_RISCV_SET6
5207 ENUMX
5208   BFD_RELOC_RISCV_SET8
5209 ENUMX
5210   BFD_RELOC_RISCV_SET16
5211 ENUMX
5212   BFD_RELOC_RISCV_SET32
5213 ENUMX
5214   BFD_RELOC_RISCV_32_PCREL
5215 ENUMDOC
5216   RISC-V relocations.
5217 
5218 ENUM
5219   BFD_RELOC_RL78_NEG8
5220 ENUMX
5221   BFD_RELOC_RL78_NEG16
5222 ENUMX
5223   BFD_RELOC_RL78_NEG24
5224 ENUMX
5225   BFD_RELOC_RL78_NEG32
5226 ENUMX
5227   BFD_RELOC_RL78_16_OP
5228 ENUMX
5229   BFD_RELOC_RL78_24_OP
5230 ENUMX
5231   BFD_RELOC_RL78_32_OP
5232 ENUMX
5233   BFD_RELOC_RL78_8U
5234 ENUMX
5235   BFD_RELOC_RL78_16U
5236 ENUMX
5237   BFD_RELOC_RL78_24U
5238 ENUMX
5239   BFD_RELOC_RL78_DIR3U_PCREL
5240 ENUMX
5241   BFD_RELOC_RL78_DIFF
5242 ENUMX
5243   BFD_RELOC_RL78_GPRELB
5244 ENUMX
5245   BFD_RELOC_RL78_GPRELW
5246 ENUMX
5247   BFD_RELOC_RL78_GPRELL
5248 ENUMX
5249   BFD_RELOC_RL78_SYM
5250 ENUMX
5251   BFD_RELOC_RL78_OP_SUBTRACT
5252 ENUMX
5253   BFD_RELOC_RL78_OP_NEG
5254 ENUMX
5255   BFD_RELOC_RL78_OP_AND
5256 ENUMX
5257   BFD_RELOC_RL78_OP_SHRA
5258 ENUMX
5259   BFD_RELOC_RL78_ABS8
5260 ENUMX
5261   BFD_RELOC_RL78_ABS16
5262 ENUMX
5263   BFD_RELOC_RL78_ABS16_REV
5264 ENUMX
5265   BFD_RELOC_RL78_ABS32
5266 ENUMX
5267   BFD_RELOC_RL78_ABS32_REV
5268 ENUMX
5269   BFD_RELOC_RL78_ABS16U
5270 ENUMX
5271   BFD_RELOC_RL78_ABS16UW
5272 ENUMX
5273   BFD_RELOC_RL78_ABS16UL
5274 ENUMX
5275   BFD_RELOC_RL78_RELAX
5276 ENUMX
5277   BFD_RELOC_RL78_HI16
5278 ENUMX
5279   BFD_RELOC_RL78_HI8
5280 ENUMX
5281   BFD_RELOC_RL78_LO16
5282 ENUMX
5283   BFD_RELOC_RL78_CODE
5284 ENUMX
5285   BFD_RELOC_RL78_SADDR
5286 ENUMDOC
5287   Renesas RL78 Relocations.
5288 
5289 ENUM
5290   BFD_RELOC_RX_NEG8
5291 ENUMX
5292   BFD_RELOC_RX_NEG16
5293 ENUMX
5294   BFD_RELOC_RX_NEG24
5295 ENUMX
5296   BFD_RELOC_RX_NEG32
5297 ENUMX
5298   BFD_RELOC_RX_16_OP
5299 ENUMX
5300   BFD_RELOC_RX_24_OP
5301 ENUMX
5302   BFD_RELOC_RX_32_OP
5303 ENUMX
5304   BFD_RELOC_RX_8U
5305 ENUMX
5306   BFD_RELOC_RX_16U
5307 ENUMX
5308   BFD_RELOC_RX_24U
5309 ENUMX
5310   BFD_RELOC_RX_DIR3U_PCREL
5311 ENUMX
5312   BFD_RELOC_RX_DIFF
5313 ENUMX
5314   BFD_RELOC_RX_GPRELB
5315 ENUMX
5316   BFD_RELOC_RX_GPRELW
5317 ENUMX
5318   BFD_RELOC_RX_GPRELL
5319 ENUMX
5320   BFD_RELOC_RX_SYM
5321 ENUMX
5322   BFD_RELOC_RX_OP_SUBTRACT
5323 ENUMX
5324   BFD_RELOC_RX_OP_NEG
5325 ENUMX
5326   BFD_RELOC_RX_ABS8
5327 ENUMX
5328   BFD_RELOC_RX_ABS16
5329 ENUMX
5330   BFD_RELOC_RX_ABS16_REV
5331 ENUMX
5332   BFD_RELOC_RX_ABS32
5333 ENUMX
5334   BFD_RELOC_RX_ABS32_REV
5335 ENUMX
5336   BFD_RELOC_RX_ABS16U
5337 ENUMX
5338   BFD_RELOC_RX_ABS16UW
5339 ENUMX
5340   BFD_RELOC_RX_ABS16UL
5341 ENUMX
5342   BFD_RELOC_RX_RELAX
5343 ENUMDOC
5344   Renesas RX Relocations.
5345 
5346 ENUM
5347   BFD_RELOC_390_12
5348 ENUMDOC
5349    Direct 12 bit.
5350 ENUM
5351   BFD_RELOC_390_GOT12
5352 ENUMDOC
5353   12 bit GOT offset.
5354 ENUM
5355   BFD_RELOC_390_PLT32
5356 ENUMDOC
5357   32 bit PC relative PLT address.
5358 ENUM
5359   BFD_RELOC_390_COPY
5360 ENUMDOC
5361   Copy symbol at runtime.
5362 ENUM
5363   BFD_RELOC_390_GLOB_DAT
5364 ENUMDOC
5365   Create GOT entry.
5366 ENUM
5367   BFD_RELOC_390_JMP_SLOT
5368 ENUMDOC
5369   Create PLT entry.
5370 ENUM
5371   BFD_RELOC_390_RELATIVE
5372 ENUMDOC
5373   Adjust by program base.
5374 ENUM
5375   BFD_RELOC_390_GOTPC
5376 ENUMDOC
5377   32 bit PC relative offset to GOT.
5378 ENUM
5379   BFD_RELOC_390_GOT16
5380 ENUMDOC
5381   16 bit GOT offset.
5382 ENUM
5383   BFD_RELOC_390_PC12DBL
5384 ENUMDOC
5385   PC relative 12 bit shifted by 1.
5386 ENUM
5387   BFD_RELOC_390_PLT12DBL
5388 ENUMDOC
5389   12 bit PC rel. PLT shifted by 1.
5390 ENUM
5391   BFD_RELOC_390_PC16DBL
5392 ENUMDOC
5393   PC relative 16 bit shifted by 1.
5394 ENUM
5395   BFD_RELOC_390_PLT16DBL
5396 ENUMDOC
5397   16 bit PC rel. PLT shifted by 1.
5398 ENUM
5399   BFD_RELOC_390_PC24DBL
5400 ENUMDOC
5401   PC relative 24 bit shifted by 1.
5402 ENUM
5403   BFD_RELOC_390_PLT24DBL
5404 ENUMDOC
5405   24 bit PC rel. PLT shifted by 1.
5406 ENUM
5407   BFD_RELOC_390_PC32DBL
5408 ENUMDOC
5409   PC relative 32 bit shifted by 1.
5410 ENUM
5411   BFD_RELOC_390_PLT32DBL
5412 ENUMDOC
5413   32 bit PC rel. PLT shifted by 1.
5414 ENUM
5415   BFD_RELOC_390_GOTPCDBL
5416 ENUMDOC
5417   32 bit PC rel. GOT shifted by 1.
5418 ENUM
5419   BFD_RELOC_390_GOT64
5420 ENUMDOC
5421   64 bit GOT offset.
5422 ENUM
5423   BFD_RELOC_390_PLT64
5424 ENUMDOC
5425   64 bit PC relative PLT address.
5426 ENUM
5427   BFD_RELOC_390_GOTENT
5428 ENUMDOC
5429   32 bit rel. offset to GOT entry.
5430 ENUM
5431   BFD_RELOC_390_GOTOFF64
5432 ENUMDOC
5433   64 bit offset to GOT.
5434 ENUM
5435   BFD_RELOC_390_GOTPLT12
5436 ENUMDOC
5437   12-bit offset to symbol-entry within GOT, with PLT handling.
5438 ENUM
5439   BFD_RELOC_390_GOTPLT16
5440 ENUMDOC
5441   16-bit offset to symbol-entry within GOT, with PLT handling.
5442 ENUM
5443   BFD_RELOC_390_GOTPLT32
5444 ENUMDOC
5445   32-bit offset to symbol-entry within GOT, with PLT handling.
5446 ENUM
5447   BFD_RELOC_390_GOTPLT64
5448 ENUMDOC
5449   64-bit offset to symbol-entry within GOT, with PLT handling.
5450 ENUM
5451   BFD_RELOC_390_GOTPLTENT
5452 ENUMDOC
5453   32-bit rel. offset to symbol-entry within GOT, with PLT handling.
5454 ENUM
5455   BFD_RELOC_390_PLTOFF16
5456 ENUMDOC
5457   16-bit rel. offset from the GOT to a PLT entry.
5458 ENUM
5459   BFD_RELOC_390_PLTOFF32
5460 ENUMDOC
5461   32-bit rel. offset from the GOT to a PLT entry.
5462 ENUM
5463   BFD_RELOC_390_PLTOFF64
5464 ENUMDOC
5465   64-bit rel. offset from the GOT to a PLT entry.
5466 
5467 ENUM
5468   BFD_RELOC_390_TLS_LOAD
5469 ENUMX
5470   BFD_RELOC_390_TLS_GDCALL
5471 ENUMX
5472   BFD_RELOC_390_TLS_LDCALL
5473 ENUMX
5474   BFD_RELOC_390_TLS_GD32
5475 ENUMX
5476   BFD_RELOC_390_TLS_GD64
5477 ENUMX
5478   BFD_RELOC_390_TLS_GOTIE12
5479 ENUMX
5480   BFD_RELOC_390_TLS_GOTIE32
5481 ENUMX
5482   BFD_RELOC_390_TLS_GOTIE64
5483 ENUMX
5484   BFD_RELOC_390_TLS_LDM32
5485 ENUMX
5486   BFD_RELOC_390_TLS_LDM64
5487 ENUMX
5488   BFD_RELOC_390_TLS_IE32
5489 ENUMX
5490   BFD_RELOC_390_TLS_IE64
5491 ENUMX
5492   BFD_RELOC_390_TLS_IEENT
5493 ENUMX
5494   BFD_RELOC_390_TLS_LE32
5495 ENUMX
5496   BFD_RELOC_390_TLS_LE64
5497 ENUMX
5498   BFD_RELOC_390_TLS_LDO32
5499 ENUMX
5500   BFD_RELOC_390_TLS_LDO64
5501 ENUMX
5502   BFD_RELOC_390_TLS_DTPMOD
5503 ENUMX
5504   BFD_RELOC_390_TLS_DTPOFF
5505 ENUMX
5506   BFD_RELOC_390_TLS_TPOFF
5507 ENUMDOC
5508   s390 tls relocations.
5509 
5510 ENUM
5511   BFD_RELOC_390_20
5512 ENUMX
5513   BFD_RELOC_390_GOT20
5514 ENUMX
5515   BFD_RELOC_390_GOTPLT20
5516 ENUMX
5517   BFD_RELOC_390_TLS_GOTIE20
5518 ENUMDOC
5519   Long displacement extension.
5520 
5521 ENUM
5522   BFD_RELOC_390_IRELATIVE
5523 ENUMDOC
5524   STT_GNU_IFUNC relocation.
5525 
5526 ENUM
5527   BFD_RELOC_SCORE_GPREL15
5528 ENUMDOC
5529   Score relocations
5530   Low 16 bit for load/store
5531 ENUM
5532   BFD_RELOC_SCORE_DUMMY2
5533 ENUMX
5534   BFD_RELOC_SCORE_JMP
5535 ENUMDOC
5536   This is a 24-bit reloc with the right 1 bit assumed to be 0
5537 ENUM
5538   BFD_RELOC_SCORE_BRANCH
5539 ENUMDOC
5540   This is a 19-bit reloc with the right 1 bit assumed to be 0
5541 ENUM
5542   BFD_RELOC_SCORE_IMM30
5543 ENUMDOC
5544   This is a 32-bit reloc for 48-bit instructions.
5545 ENUM
5546   BFD_RELOC_SCORE_IMM32
5547 ENUMDOC
5548   This is a 32-bit reloc for 48-bit instructions.
5549 ENUM
5550   BFD_RELOC_SCORE16_JMP
5551 ENUMDOC
5552   This is a 11-bit reloc with the right 1 bit assumed to be 0
5553 ENUM
5554   BFD_RELOC_SCORE16_BRANCH
5555 ENUMDOC
5556   This is a 8-bit reloc with the right 1 bit assumed to be 0
5557 ENUM
5558   BFD_RELOC_SCORE_BCMP
5559 ENUMDOC
5560    This is a 9-bit reloc with the right 1 bit assumed to be 0
5561 ENUM
5562   BFD_RELOC_SCORE_GOT15
5563 ENUMX
5564   BFD_RELOC_SCORE_GOT_LO16
5565 ENUMX
5566   BFD_RELOC_SCORE_CALL15
5567 ENUMX
5568   BFD_RELOC_SCORE_DUMMY_HI16
5569 ENUMDOC
5570   Undocumented Score relocs
5571 
5572 ENUM
5573   BFD_RELOC_IP2K_FR9
5574 ENUMDOC
5575   Scenix IP2K - 9-bit register number / data address
5576 ENUM
5577   BFD_RELOC_IP2K_BANK
5578 ENUMDOC
5579   Scenix IP2K - 4-bit register/data bank number
5580 ENUM
5581   BFD_RELOC_IP2K_ADDR16CJP
5582 ENUMDOC
5583   Scenix IP2K - low 13 bits of instruction word address
5584 ENUM
5585   BFD_RELOC_IP2K_PAGE3
5586 ENUMDOC
5587   Scenix IP2K - high 3 bits of instruction word address
5588 ENUM
5589   BFD_RELOC_IP2K_LO8DATA
5590 ENUMX
5591   BFD_RELOC_IP2K_HI8DATA
5592 ENUMX
5593   BFD_RELOC_IP2K_EX8DATA
5594 ENUMDOC
5595   Scenix IP2K - ext/low/high 8 bits of data address
5596 ENUM
5597   BFD_RELOC_IP2K_LO8INSN
5598 ENUMX
5599   BFD_RELOC_IP2K_HI8INSN
5600 ENUMDOC
5601   Scenix IP2K - low/high 8 bits of instruction word address
5602 ENUM
5603   BFD_RELOC_IP2K_PC_SKIP
5604 ENUMDOC
5605   Scenix IP2K - even/odd PC modifier to modify snb pcl.0
5606 ENUM
5607   BFD_RELOC_IP2K_TEXT
5608 ENUMDOC
5609   Scenix IP2K - 16 bit word address in text section.
5610 ENUM
5611   BFD_RELOC_IP2K_FR_OFFSET
5612 ENUMDOC
5613   Scenix IP2K - 7-bit sp or dp offset
5614 ENUM
5615   BFD_RELOC_VPE4KMATH_DATA
5616 ENUMX
5617   BFD_RELOC_VPE4KMATH_INSN
5618 ENUMDOC
5619   Scenix VPE4K coprocessor - data/insn-space addressing
5620 
5621 ENUM
5622   BFD_RELOC_VTABLE_INHERIT
5623 ENUMX
5624   BFD_RELOC_VTABLE_ENTRY
5625 ENUMDOC
5626   These two relocations are used by the linker to determine which of
5627   the entries in a C++ virtual function table are actually used.  When
5628   the --gc-sections option is given, the linker will zero out the entries
5629   that are not used, so that the code for those functions need not be
5630   included in the output.
5631 
5632   VTABLE_INHERIT is a zero-space relocation used to describe to the
5633   linker the inheritance tree of a C++ virtual function table.  The
5634   relocation's symbol should be the parent class' vtable, and the
5635   relocation should be located at the child vtable.
5636 
5637   VTABLE_ENTRY is a zero-space relocation that describes the use of a
5638   virtual function table entry.  The reloc's symbol should refer to the
5639   table of the class mentioned in the code.  Off of that base, an offset
5640   describes the entry that is being used.  For Rela hosts, this offset
5641   is stored in the reloc's addend.  For Rel hosts, we are forced to put
5642   this offset in the reloc's section offset.
5643 
5644 ENUM
5645   BFD_RELOC_IA64_IMM14
5646 ENUMX
5647   BFD_RELOC_IA64_IMM22
5648 ENUMX
5649   BFD_RELOC_IA64_IMM64
5650 ENUMX
5651   BFD_RELOC_IA64_DIR32MSB
5652 ENUMX
5653   BFD_RELOC_IA64_DIR32LSB
5654 ENUMX
5655   BFD_RELOC_IA64_DIR64MSB
5656 ENUMX
5657   BFD_RELOC_IA64_DIR64LSB
5658 ENUMX
5659   BFD_RELOC_IA64_GPREL22
5660 ENUMX
5661   BFD_RELOC_IA64_GPREL64I
5662 ENUMX
5663   BFD_RELOC_IA64_GPREL32MSB
5664 ENUMX
5665   BFD_RELOC_IA64_GPREL32LSB
5666 ENUMX
5667   BFD_RELOC_IA64_GPREL64MSB
5668 ENUMX
5669   BFD_RELOC_IA64_GPREL64LSB
5670 ENUMX
5671   BFD_RELOC_IA64_LTOFF22
5672 ENUMX
5673   BFD_RELOC_IA64_LTOFF64I
5674 ENUMX
5675   BFD_RELOC_IA64_PLTOFF22
5676 ENUMX
5677   BFD_RELOC_IA64_PLTOFF64I
5678 ENUMX
5679   BFD_RELOC_IA64_PLTOFF64MSB
5680 ENUMX
5681   BFD_RELOC_IA64_PLTOFF64LSB
5682 ENUMX
5683   BFD_RELOC_IA64_FPTR64I
5684 ENUMX
5685   BFD_RELOC_IA64_FPTR32MSB
5686 ENUMX
5687   BFD_RELOC_IA64_FPTR32LSB
5688 ENUMX
5689   BFD_RELOC_IA64_FPTR64MSB
5690 ENUMX
5691   BFD_RELOC_IA64_FPTR64LSB
5692 ENUMX
5693   BFD_RELOC_IA64_PCREL21B
5694 ENUMX
5695   BFD_RELOC_IA64_PCREL21BI
5696 ENUMX
5697   BFD_RELOC_IA64_PCREL21M
5698 ENUMX
5699   BFD_RELOC_IA64_PCREL21F
5700 ENUMX
5701   BFD_RELOC_IA64_PCREL22
5702 ENUMX
5703   BFD_RELOC_IA64_PCREL60B
5704 ENUMX
5705   BFD_RELOC_IA64_PCREL64I
5706 ENUMX
5707   BFD_RELOC_IA64_PCREL32MSB
5708 ENUMX
5709   BFD_RELOC_IA64_PCREL32LSB
5710 ENUMX
5711   BFD_RELOC_IA64_PCREL64MSB
5712 ENUMX
5713   BFD_RELOC_IA64_PCREL64LSB
5714 ENUMX
5715   BFD_RELOC_IA64_LTOFF_FPTR22
5716 ENUMX
5717   BFD_RELOC_IA64_LTOFF_FPTR64I
5718 ENUMX
5719   BFD_RELOC_IA64_LTOFF_FPTR32MSB
5720 ENUMX
5721   BFD_RELOC_IA64_LTOFF_FPTR32LSB
5722 ENUMX
5723   BFD_RELOC_IA64_LTOFF_FPTR64MSB
5724 ENUMX
5725   BFD_RELOC_IA64_LTOFF_FPTR64LSB
5726 ENUMX
5727   BFD_RELOC_IA64_SEGREL32MSB
5728 ENUMX
5729   BFD_RELOC_IA64_SEGREL32LSB
5730 ENUMX
5731   BFD_RELOC_IA64_SEGREL64MSB
5732 ENUMX
5733   BFD_RELOC_IA64_SEGREL64LSB
5734 ENUMX
5735   BFD_RELOC_IA64_SECREL32MSB
5736 ENUMX
5737   BFD_RELOC_IA64_SECREL32LSB
5738 ENUMX
5739   BFD_RELOC_IA64_SECREL64MSB
5740 ENUMX
5741   BFD_RELOC_IA64_SECREL64LSB
5742 ENUMX
5743   BFD_RELOC_IA64_REL32MSB
5744 ENUMX
5745   BFD_RELOC_IA64_REL32LSB
5746 ENUMX
5747   BFD_RELOC_IA64_REL64MSB
5748 ENUMX
5749   BFD_RELOC_IA64_REL64LSB
5750 ENUMX
5751   BFD_RELOC_IA64_LTV32MSB
5752 ENUMX
5753   BFD_RELOC_IA64_LTV32LSB
5754 ENUMX
5755   BFD_RELOC_IA64_LTV64MSB
5756 ENUMX
5757   BFD_RELOC_IA64_LTV64LSB
5758 ENUMX
5759   BFD_RELOC_IA64_IPLTMSB
5760 ENUMX
5761   BFD_RELOC_IA64_IPLTLSB
5762 ENUMX
5763   BFD_RELOC_IA64_COPY
5764 ENUMX
5765   BFD_RELOC_IA64_LTOFF22X
5766 ENUMX
5767   BFD_RELOC_IA64_LDXMOV
5768 ENUMX
5769   BFD_RELOC_IA64_TPREL14
5770 ENUMX
5771   BFD_RELOC_IA64_TPREL22
5772 ENUMX
5773   BFD_RELOC_IA64_TPREL64I
5774 ENUMX
5775   BFD_RELOC_IA64_TPREL64MSB
5776 ENUMX
5777   BFD_RELOC_IA64_TPREL64LSB
5778 ENUMX
5779   BFD_RELOC_IA64_LTOFF_TPREL22
5780 ENUMX
5781   BFD_RELOC_IA64_DTPMOD64MSB
5782 ENUMX
5783   BFD_RELOC_IA64_DTPMOD64LSB
5784 ENUMX
5785   BFD_RELOC_IA64_LTOFF_DTPMOD22
5786 ENUMX
5787   BFD_RELOC_IA64_DTPREL14
5788 ENUMX
5789   BFD_RELOC_IA64_DTPREL22
5790 ENUMX
5791   BFD_RELOC_IA64_DTPREL64I
5792 ENUMX
5793   BFD_RELOC_IA64_DTPREL32MSB
5794 ENUMX
5795   BFD_RELOC_IA64_DTPREL32LSB
5796 ENUMX
5797   BFD_RELOC_IA64_DTPREL64MSB
5798 ENUMX
5799   BFD_RELOC_IA64_DTPREL64LSB
5800 ENUMX
5801   BFD_RELOC_IA64_LTOFF_DTPREL22
5802 ENUMDOC
5803   Intel IA64 Relocations.
5804 
5805 ENUM
5806   BFD_RELOC_M68HC11_HI8
5807 ENUMDOC
5808   Motorola 68HC11 reloc.
5809   This is the 8 bit high part of an absolute address.
5810 ENUM
5811   BFD_RELOC_M68HC11_LO8
5812 ENUMDOC
5813   Motorola 68HC11 reloc.
5814   This is the 8 bit low part of an absolute address.
5815 ENUM
5816   BFD_RELOC_M68HC11_3B
5817 ENUMDOC
5818   Motorola 68HC11 reloc.
5819   This is the 3 bit of a value.
5820 ENUM
5821   BFD_RELOC_M68HC11_RL_JUMP
5822 ENUMDOC
5823   Motorola 68HC11 reloc.
5824   This reloc marks the beginning of a jump/call instruction.
5825   It is used for linker relaxation to correctly identify beginning
5826   of instruction and change some branches to use PC-relative
5827   addressing mode.
5828 ENUM
5829   BFD_RELOC_M68HC11_RL_GROUP
5830 ENUMDOC
5831   Motorola 68HC11 reloc.
5832   This reloc marks a group of several instructions that gcc generates
5833   and for which the linker relaxation pass can modify and/or remove
5834   some of them.
5835 ENUM
5836   BFD_RELOC_M68HC11_LO16
5837 ENUMDOC
5838   Motorola 68HC11 reloc.
5839   This is the 16-bit lower part of an address.  It is used for 'call'
5840   instruction to specify the symbol address without any special
5841   transformation (due to memory bank window).
5842 ENUM
5843   BFD_RELOC_M68HC11_PAGE
5844 ENUMDOC
5845   Motorola 68HC11 reloc.
5846   This is a 8-bit reloc that specifies the page number of an address.
5847   It is used by 'call' instruction to specify the page number of
5848   the symbol.
5849 ENUM
5850   BFD_RELOC_M68HC11_24
5851 ENUMDOC
5852   Motorola 68HC11 reloc.
5853   This is a 24-bit reloc that represents the address with a 16-bit
5854   value and a 8-bit page number.  The symbol address is transformed
5855   to follow the 16K memory bank of 68HC12 (seen as mapped in the window).
5856 ENUM
5857   BFD_RELOC_M68HC12_5B
5858 ENUMDOC
5859   Motorola 68HC12 reloc.
5860   This is the 5 bits of a value.
5861 ENUM
5862   BFD_RELOC_XGATE_RL_JUMP
5863 ENUMDOC
5864   Freescale XGATE reloc.
5865   This reloc marks the beginning of a bra/jal instruction.
5866 ENUM
5867   BFD_RELOC_XGATE_RL_GROUP
5868 ENUMDOC
5869   Freescale XGATE reloc.
5870   This reloc marks a group of several instructions that gcc generates
5871   and for which the linker relaxation pass can modify and/or remove
5872   some of them.
5873 ENUM
5874   BFD_RELOC_XGATE_LO16
5875 ENUMDOC
5876   Freescale XGATE reloc.
5877   This is the 16-bit lower part of an address.  It is used for the '16-bit'
5878   instructions.
5879 ENUM
5880   BFD_RELOC_XGATE_GPAGE
5881 ENUMDOC
5882   Freescale XGATE reloc.
5883 ENUM
5884   BFD_RELOC_XGATE_24
5885 ENUMDOC
5886   Freescale XGATE reloc.
5887 ENUM
5888   BFD_RELOC_XGATE_PCREL_9
5889 ENUMDOC
5890   Freescale XGATE reloc.
5891   This is a 9-bit pc-relative reloc.
5892 ENUM
5893   BFD_RELOC_XGATE_PCREL_10
5894 ENUMDOC
5895   Freescale XGATE reloc.
5896   This is a 10-bit pc-relative reloc.
5897 ENUM
5898   BFD_RELOC_XGATE_IMM8_LO
5899 ENUMDOC
5900   Freescale XGATE reloc.
5901   This is the 16-bit lower part of an address.  It is used for the '16-bit'
5902   instructions.
5903 ENUM
5904   BFD_RELOC_XGATE_IMM8_HI
5905 ENUMDOC
5906   Freescale XGATE reloc.
5907   This is the 16-bit higher part of an address.  It is used for the '16-bit'
5908   instructions.
5909 ENUM
5910   BFD_RELOC_XGATE_IMM3
5911 ENUMDOC
5912   Freescale XGATE reloc.
5913   This is a 3-bit pc-relative reloc.
5914 ENUM
5915   BFD_RELOC_XGATE_IMM4
5916 ENUMDOC
5917   Freescale XGATE reloc.
5918   This is a 4-bit pc-relative reloc.
5919 ENUM
5920   BFD_RELOC_XGATE_IMM5
5921 ENUMDOC
5922   Freescale XGATE reloc.
5923   This is a 5-bit pc-relative reloc.
5924 ENUM
5925   BFD_RELOC_M68HC12_9B
5926 ENUMDOC
5927   Motorola 68HC12 reloc.
5928   This is the 9 bits of a value.
5929 ENUM
5930   BFD_RELOC_M68HC12_16B
5931 ENUMDOC
5932   Motorola 68HC12 reloc.
5933   This is the 16 bits of a value.
5934 ENUM
5935   BFD_RELOC_M68HC12_9_PCREL
5936 ENUMDOC
5937   Motorola 68HC12/XGATE reloc.
5938   This is a PCREL9 branch.
5939 ENUM
5940   BFD_RELOC_M68HC12_10_PCREL
5941 ENUMDOC
5942   Motorola 68HC12/XGATE reloc.
5943   This is a PCREL10 branch.
5944 ENUM
5945   BFD_RELOC_M68HC12_LO8XG
5946 ENUMDOC
5947   Motorola 68HC12/XGATE reloc.
5948   This is the 8 bit low part of an absolute address and immediately precedes
5949   a matching HI8XG part.
5950 ENUM
5951   BFD_RELOC_M68HC12_HI8XG
5952 ENUMDOC
5953   Motorola 68HC12/XGATE reloc.
5954   This is the 8 bit high part of an absolute address and immediately follows
5955   a matching LO8XG part.
5956 ENUM
5957   BFD_RELOC_S12Z_15_PCREL
5958 ENUMDOC
5959   Freescale S12Z reloc.
5960   This is a 15 bit relative address.  If the most significant bits are all zero
5961   then it may be truncated to 8 bits.
5962 
5963 ENUM
5964   BFD_RELOC_CR16_NUM8
5965 ENUMX
5966   BFD_RELOC_CR16_NUM16
5967 ENUMX
5968   BFD_RELOC_CR16_NUM32
5969 ENUMX
5970   BFD_RELOC_CR16_NUM32a
5971 ENUMX
5972   BFD_RELOC_CR16_REGREL0
5973 ENUMX
5974   BFD_RELOC_CR16_REGREL4
5975 ENUMX
5976   BFD_RELOC_CR16_REGREL4a
5977 ENUMX
5978   BFD_RELOC_CR16_REGREL14
5979 ENUMX
5980   BFD_RELOC_CR16_REGREL14a
5981 ENUMX
5982   BFD_RELOC_CR16_REGREL16
5983 ENUMX
5984   BFD_RELOC_CR16_REGREL20
5985 ENUMX
5986   BFD_RELOC_CR16_REGREL20a
5987 ENUMX
5988   BFD_RELOC_CR16_ABS20
5989 ENUMX
5990   BFD_RELOC_CR16_ABS24
5991 ENUMX
5992   BFD_RELOC_CR16_IMM4
5993 ENUMX
5994   BFD_RELOC_CR16_IMM8
5995 ENUMX
5996   BFD_RELOC_CR16_IMM16
5997 ENUMX
5998   BFD_RELOC_CR16_IMM20
5999 ENUMX
6000   BFD_RELOC_CR16_IMM24
6001 ENUMX
6002   BFD_RELOC_CR16_IMM32
6003 ENUMX
6004   BFD_RELOC_CR16_IMM32a
6005 ENUMX
6006   BFD_RELOC_CR16_DISP4
6007 ENUMX
6008   BFD_RELOC_CR16_DISP8
6009 ENUMX
6010   BFD_RELOC_CR16_DISP16
6011 ENUMX
6012   BFD_RELOC_CR16_DISP20
6013 ENUMX
6014   BFD_RELOC_CR16_DISP24
6015 ENUMX
6016   BFD_RELOC_CR16_DISP24a
6017 ENUMX
6018   BFD_RELOC_CR16_SWITCH8
6019 ENUMX
6020   BFD_RELOC_CR16_SWITCH16
6021 ENUMX
6022   BFD_RELOC_CR16_SWITCH32
6023 ENUMX
6024   BFD_RELOC_CR16_GOT_REGREL20
6025 ENUMX
6026   BFD_RELOC_CR16_GOTC_REGREL20
6027 ENUMX
6028   BFD_RELOC_CR16_GLOB_DAT
6029 ENUMDOC
6030   NS CR16 Relocations.
6031 
6032 ENUM
6033   BFD_RELOC_CRX_REL4
6034 ENUMX
6035   BFD_RELOC_CRX_REL8
6036 ENUMX
6037   BFD_RELOC_CRX_REL8_CMP
6038 ENUMX
6039   BFD_RELOC_CRX_REL16
6040 ENUMX
6041   BFD_RELOC_CRX_REL24
6042 ENUMX
6043   BFD_RELOC_CRX_REL32
6044 ENUMX
6045   BFD_RELOC_CRX_REGREL12
6046 ENUMX
6047   BFD_RELOC_CRX_REGREL22
6048 ENUMX
6049   BFD_RELOC_CRX_REGREL28
6050 ENUMX
6051   BFD_RELOC_CRX_REGREL32
6052 ENUMX
6053   BFD_RELOC_CRX_ABS16
6054 ENUMX
6055   BFD_RELOC_CRX_ABS32
6056 ENUMX
6057   BFD_RELOC_CRX_NUM8
6058 ENUMX
6059   BFD_RELOC_CRX_NUM16
6060 ENUMX
6061   BFD_RELOC_CRX_NUM32
6062 ENUMX
6063   BFD_RELOC_CRX_IMM16
6064 ENUMX
6065   BFD_RELOC_CRX_IMM32
6066 ENUMX
6067   BFD_RELOC_CRX_SWITCH8
6068 ENUMX
6069   BFD_RELOC_CRX_SWITCH16
6070 ENUMX
6071   BFD_RELOC_CRX_SWITCH32
6072 ENUMDOC
6073   NS CRX Relocations.
6074 
6075 ENUM
6076   BFD_RELOC_CRIS_BDISP8
6077 ENUMX
6078   BFD_RELOC_CRIS_UNSIGNED_5
6079 ENUMX
6080   BFD_RELOC_CRIS_SIGNED_6
6081 ENUMX
6082   BFD_RELOC_CRIS_UNSIGNED_6
6083 ENUMX
6084   BFD_RELOC_CRIS_SIGNED_8
6085 ENUMX
6086   BFD_RELOC_CRIS_UNSIGNED_8
6087 ENUMX
6088   BFD_RELOC_CRIS_SIGNED_16
6089 ENUMX
6090   BFD_RELOC_CRIS_UNSIGNED_16
6091 ENUMX
6092   BFD_RELOC_CRIS_LAPCQ_OFFSET
6093 ENUMX
6094   BFD_RELOC_CRIS_UNSIGNED_4
6095 ENUMDOC
6096   These relocs are only used within the CRIS assembler.  They are not
6097   (at present) written to any object files.
6098 ENUM
6099   BFD_RELOC_CRIS_COPY
6100 ENUMX
6101   BFD_RELOC_CRIS_GLOB_DAT
6102 ENUMX
6103   BFD_RELOC_CRIS_JUMP_SLOT
6104 ENUMX
6105   BFD_RELOC_CRIS_RELATIVE
6106 ENUMDOC
6107   Relocs used in ELF shared libraries for CRIS.
6108 ENUM
6109   BFD_RELOC_CRIS_32_GOT
6110 ENUMDOC
6111   32-bit offset to symbol-entry within GOT.
6112 ENUM
6113   BFD_RELOC_CRIS_16_GOT
6114 ENUMDOC
6115   16-bit offset to symbol-entry within GOT.
6116 ENUM
6117   BFD_RELOC_CRIS_32_GOTPLT
6118 ENUMDOC
6119   32-bit offset to symbol-entry within GOT, with PLT handling.
6120 ENUM
6121   BFD_RELOC_CRIS_16_GOTPLT
6122 ENUMDOC
6123   16-bit offset to symbol-entry within GOT, with PLT handling.
6124 ENUM
6125   BFD_RELOC_CRIS_32_GOTREL
6126 ENUMDOC
6127   32-bit offset to symbol, relative to GOT.
6128 ENUM
6129   BFD_RELOC_CRIS_32_PLT_GOTREL
6130 ENUMDOC
6131   32-bit offset to symbol with PLT entry, relative to GOT.
6132 ENUM
6133   BFD_RELOC_CRIS_32_PLT_PCREL
6134 ENUMDOC
6135   32-bit offset to symbol with PLT entry, relative to this relocation.
6136 
6137 ENUM
6138   BFD_RELOC_CRIS_32_GOT_GD
6139 ENUMX
6140   BFD_RELOC_CRIS_16_GOT_GD
6141 ENUMX
6142   BFD_RELOC_CRIS_32_GD
6143 ENUMX
6144   BFD_RELOC_CRIS_DTP
6145 ENUMX
6146   BFD_RELOC_CRIS_32_DTPREL
6147 ENUMX
6148   BFD_RELOC_CRIS_16_DTPREL
6149 ENUMX
6150   BFD_RELOC_CRIS_32_GOT_TPREL
6151 ENUMX
6152   BFD_RELOC_CRIS_16_GOT_TPREL
6153 ENUMX
6154   BFD_RELOC_CRIS_32_TPREL
6155 ENUMX
6156   BFD_RELOC_CRIS_16_TPREL
6157 ENUMX
6158   BFD_RELOC_CRIS_DTPMOD
6159 ENUMX
6160   BFD_RELOC_CRIS_32_IE
6161 ENUMDOC
6162   Relocs used in TLS code for CRIS.
6163 
6164 ENUM
6165   BFD_RELOC_OR1K_REL_26
6166 ENUMX
6167   BFD_RELOC_OR1K_SLO16
6168 ENUMX
6169   BFD_RELOC_OR1K_PCREL_PG21
6170 ENUMX
6171   BFD_RELOC_OR1K_LO13
6172 ENUMX
6173   BFD_RELOC_OR1K_SLO13
6174 ENUMX
6175   BFD_RELOC_OR1K_GOTPC_HI16
6176 ENUMX
6177   BFD_RELOC_OR1K_GOTPC_LO16
6178 ENUMX
6179   BFD_RELOC_OR1K_GOT16
6180 ENUMX
6181   BFD_RELOC_OR1K_GOT_PG21
6182 ENUMX
6183   BFD_RELOC_OR1K_GOT_LO13
6184 ENUMX
6185   BFD_RELOC_OR1K_PLT26
6186 ENUMX
6187   BFD_RELOC_OR1K_PLTA26
6188 ENUMX
6189   BFD_RELOC_OR1K_GOTOFF_SLO16
6190 ENUMX
6191   BFD_RELOC_OR1K_COPY
6192 ENUMX
6193   BFD_RELOC_OR1K_GLOB_DAT
6194 ENUMX
6195   BFD_RELOC_OR1K_JMP_SLOT
6196 ENUMX
6197   BFD_RELOC_OR1K_RELATIVE
6198 ENUMX
6199   BFD_RELOC_OR1K_TLS_GD_HI16
6200 ENUMX
6201   BFD_RELOC_OR1K_TLS_GD_LO16
6202 ENUMX
6203   BFD_RELOC_OR1K_TLS_GD_PG21
6204 ENUMX
6205   BFD_RELOC_OR1K_TLS_GD_LO13
6206 ENUMX
6207   BFD_RELOC_OR1K_TLS_LDM_HI16
6208 ENUMX
6209   BFD_RELOC_OR1K_TLS_LDM_LO16
6210 ENUMX
6211   BFD_RELOC_OR1K_TLS_LDM_PG21
6212 ENUMX
6213   BFD_RELOC_OR1K_TLS_LDM_LO13
6214 ENUMX
6215   BFD_RELOC_OR1K_TLS_LDO_HI16
6216 ENUMX
6217   BFD_RELOC_OR1K_TLS_LDO_LO16
6218 ENUMX
6219   BFD_RELOC_OR1K_TLS_IE_HI16
6220 ENUMX
6221   BFD_RELOC_OR1K_TLS_IE_AHI16
6222 ENUMX
6223   BFD_RELOC_OR1K_TLS_IE_LO16
6224 ENUMX
6225   BFD_RELOC_OR1K_TLS_IE_PG21
6226 ENUMX
6227   BFD_RELOC_OR1K_TLS_IE_LO13
6228 ENUMX
6229   BFD_RELOC_OR1K_TLS_LE_HI16
6230 ENUMX
6231   BFD_RELOC_OR1K_TLS_LE_AHI16
6232 ENUMX
6233   BFD_RELOC_OR1K_TLS_LE_LO16
6234 ENUMX
6235   BFD_RELOC_OR1K_TLS_LE_SLO16
6236 ENUMX
6237   BFD_RELOC_OR1K_TLS_TPOFF
6238 ENUMX
6239   BFD_RELOC_OR1K_TLS_DTPOFF
6240 ENUMX
6241   BFD_RELOC_OR1K_TLS_DTPMOD
6242 ENUMDOC
6243   OpenRISC 1000 Relocations.
6244 
6245 ENUM
6246   BFD_RELOC_H8_DIR16A8
6247 ENUMX
6248   BFD_RELOC_H8_DIR16R8
6249 ENUMX
6250   BFD_RELOC_H8_DIR24A8
6251 ENUMX
6252   BFD_RELOC_H8_DIR24R8
6253 ENUMX
6254   BFD_RELOC_H8_DIR32A16
6255 ENUMX
6256   BFD_RELOC_H8_DISP32A16
6257 ENUMDOC
6258   H8 elf Relocations.
6259 
6260 ENUM
6261   BFD_RELOC_XSTORMY16_REL_12
6262 ENUMX
6263   BFD_RELOC_XSTORMY16_12
6264 ENUMX
6265   BFD_RELOC_XSTORMY16_24
6266 ENUMX
6267   BFD_RELOC_XSTORMY16_FPTR16
6268 ENUMDOC
6269   Sony Xstormy16 Relocations.
6270 
6271 ENUM
6272   BFD_RELOC_RELC
6273 ENUMDOC
6274   Self-describing complex relocations.
6275 COMMENT
6276 
6277 ENUM
6278   BFD_RELOC_XC16X_PAG
6279 ENUMX
6280   BFD_RELOC_XC16X_POF
6281 ENUMX
6282   BFD_RELOC_XC16X_SEG
6283 ENUMX
6284   BFD_RELOC_XC16X_SOF
6285 ENUMDOC
6286   Infineon Relocations.
6287 
6288 ENUM
6289   BFD_RELOC_VAX_GLOB_DAT
6290 ENUMX
6291   BFD_RELOC_VAX_JMP_SLOT
6292 ENUMX
6293   BFD_RELOC_VAX_RELATIVE
6294 ENUMDOC
6295   Relocations used by VAX ELF.
6296 
6297 ENUM
6298   BFD_RELOC_MT_PC16
6299 ENUMDOC
6300   Morpho MT - 16 bit immediate relocation.
6301 ENUM
6302   BFD_RELOC_MT_HI16
6303 ENUMDOC
6304   Morpho MT - Hi 16 bits of an address.
6305 ENUM
6306   BFD_RELOC_MT_LO16
6307 ENUMDOC
6308   Morpho MT - Low 16 bits of an address.
6309 ENUM
6310   BFD_RELOC_MT_GNU_VTINHERIT
6311 ENUMDOC
6312   Morpho MT - Used to tell the linker which vtable entries are used.
6313 ENUM
6314   BFD_RELOC_MT_GNU_VTENTRY
6315 ENUMDOC
6316   Morpho MT - Used to tell the linker which vtable entries are used.
6317 ENUM
6318   BFD_RELOC_MT_PCINSN8
6319 ENUMDOC
6320   Morpho MT - 8 bit immediate relocation.
6321 
6322 ENUM
6323   BFD_RELOC_MSP430_10_PCREL
6324 ENUMX
6325   BFD_RELOC_MSP430_16_PCREL
6326 ENUMX
6327   BFD_RELOC_MSP430_16
6328 ENUMX
6329   BFD_RELOC_MSP430_16_PCREL_BYTE
6330 ENUMX
6331   BFD_RELOC_MSP430_16_BYTE
6332 ENUMX
6333   BFD_RELOC_MSP430_2X_PCREL
6334 ENUMX
6335   BFD_RELOC_MSP430_RL_PCREL
6336 ENUMX
6337   BFD_RELOC_MSP430_ABS8
6338 ENUMX
6339   BFD_RELOC_MSP430X_PCR20_EXT_SRC
6340 ENUMX
6341   BFD_RELOC_MSP430X_PCR20_EXT_DST
6342 ENUMX
6343   BFD_RELOC_MSP430X_PCR20_EXT_ODST
6344 ENUMX
6345   BFD_RELOC_MSP430X_ABS20_EXT_SRC
6346 ENUMX
6347   BFD_RELOC_MSP430X_ABS20_EXT_DST
6348 ENUMX
6349   BFD_RELOC_MSP430X_ABS20_EXT_ODST
6350 ENUMX
6351   BFD_RELOC_MSP430X_ABS20_ADR_SRC
6352 ENUMX
6353   BFD_RELOC_MSP430X_ABS20_ADR_DST
6354 ENUMX
6355   BFD_RELOC_MSP430X_PCR16
6356 ENUMX
6357   BFD_RELOC_MSP430X_PCR20_CALL
6358 ENUMX
6359   BFD_RELOC_MSP430X_ABS16
6360 ENUMX
6361   BFD_RELOC_MSP430_ABS_HI16
6362 ENUMX
6363   BFD_RELOC_MSP430_PREL31
6364 ENUMX
6365   BFD_RELOC_MSP430_SYM_DIFF
6366 ENUMDOC
6367   msp430 specific relocation codes
6368 
6369 ENUM
6370   BFD_RELOC_NIOS2_S16
6371 ENUMX
6372   BFD_RELOC_NIOS2_U16
6373 ENUMX
6374   BFD_RELOC_NIOS2_CALL26
6375 ENUMX
6376   BFD_RELOC_NIOS2_IMM5
6377 ENUMX
6378   BFD_RELOC_NIOS2_CACHE_OPX
6379 ENUMX
6380   BFD_RELOC_NIOS2_IMM6
6381 ENUMX
6382   BFD_RELOC_NIOS2_IMM8
6383 ENUMX
6384   BFD_RELOC_NIOS2_HI16
6385 ENUMX
6386   BFD_RELOC_NIOS2_LO16
6387 ENUMX
6388   BFD_RELOC_NIOS2_HIADJ16
6389 ENUMX
6390   BFD_RELOC_NIOS2_GPREL
6391 ENUMX
6392   BFD_RELOC_NIOS2_UJMP
6393 ENUMX
6394   BFD_RELOC_NIOS2_CJMP
6395 ENUMX
6396   BFD_RELOC_NIOS2_CALLR
6397 ENUMX
6398   BFD_RELOC_NIOS2_ALIGN
6399 ENUMX
6400   BFD_RELOC_NIOS2_GOT16
6401 ENUMX
6402   BFD_RELOC_NIOS2_CALL16
6403 ENUMX
6404   BFD_RELOC_NIOS2_GOTOFF_LO
6405 ENUMX
6406   BFD_RELOC_NIOS2_GOTOFF_HA
6407 ENUMX
6408   BFD_RELOC_NIOS2_PCREL_LO
6409 ENUMX
6410   BFD_RELOC_NIOS2_PCREL_HA
6411 ENUMX
6412   BFD_RELOC_NIOS2_TLS_GD16
6413 ENUMX
6414   BFD_RELOC_NIOS2_TLS_LDM16
6415 ENUMX
6416   BFD_RELOC_NIOS2_TLS_LDO16
6417 ENUMX
6418   BFD_RELOC_NIOS2_TLS_IE16
6419 ENUMX
6420   BFD_RELOC_NIOS2_TLS_LE16
6421 ENUMX
6422   BFD_RELOC_NIOS2_TLS_DTPMOD
6423 ENUMX
6424   BFD_RELOC_NIOS2_TLS_DTPREL
6425 ENUMX
6426   BFD_RELOC_NIOS2_TLS_TPREL
6427 ENUMX
6428   BFD_RELOC_NIOS2_COPY
6429 ENUMX
6430   BFD_RELOC_NIOS2_GLOB_DAT
6431 ENUMX
6432   BFD_RELOC_NIOS2_JUMP_SLOT
6433 ENUMX
6434   BFD_RELOC_NIOS2_RELATIVE
6435 ENUMX
6436   BFD_RELOC_NIOS2_GOTOFF
6437 ENUMX
6438   BFD_RELOC_NIOS2_CALL26_NOAT
6439 ENUMX
6440   BFD_RELOC_NIOS2_GOT_LO
6441 ENUMX
6442   BFD_RELOC_NIOS2_GOT_HA
6443 ENUMX
6444   BFD_RELOC_NIOS2_CALL_LO
6445 ENUMX
6446   BFD_RELOC_NIOS2_CALL_HA
6447 ENUMX
6448   BFD_RELOC_NIOS2_R2_S12
6449 ENUMX
6450   BFD_RELOC_NIOS2_R2_I10_1_PCREL
6451 ENUMX
6452   BFD_RELOC_NIOS2_R2_T1I7_1_PCREL
6453 ENUMX
6454   BFD_RELOC_NIOS2_R2_T1I7_2
6455 ENUMX
6456   BFD_RELOC_NIOS2_R2_T2I4
6457 ENUMX
6458   BFD_RELOC_NIOS2_R2_T2I4_1
6459 ENUMX
6460   BFD_RELOC_NIOS2_R2_T2I4_2
6461 ENUMX
6462   BFD_RELOC_NIOS2_R2_X1I7_2
6463 ENUMX
6464   BFD_RELOC_NIOS2_R2_X2L5
6465 ENUMX
6466   BFD_RELOC_NIOS2_R2_F1I5_2
6467 ENUMX
6468   BFD_RELOC_NIOS2_R2_L5I4X1
6469 ENUMX
6470   BFD_RELOC_NIOS2_R2_T1X1I6
6471 ENUMX
6472   BFD_RELOC_NIOS2_R2_T1X1I6_2
6473 ENUMDOC
6474   Relocations used by the Altera Nios II core.
6475 
6476 ENUM
6477   BFD_RELOC_PRU_U16
6478 ENUMDOC
6479   PRU LDI 16-bit unsigned data-memory relocation.
6480 ENUM
6481   BFD_RELOC_PRU_U16_PMEMIMM
6482 ENUMDOC
6483   PRU LDI 16-bit unsigned instruction-memory relocation.
6484 ENUM
6485   BFD_RELOC_PRU_LDI32
6486 ENUMDOC
6487   PRU relocation for two consecutive LDI load instructions that load a
6488   32 bit value into a register. If the higher bits are all zero, then
6489   the second instruction may be relaxed.
6490 ENUM
6491   BFD_RELOC_PRU_S10_PCREL
6492 ENUMDOC
6493   PRU QBBx 10-bit signed PC-relative relocation.
6494 ENUM
6495   BFD_RELOC_PRU_U8_PCREL
6496 ENUMDOC
6497   PRU 8-bit unsigned relocation used for the LOOP instruction.
6498 ENUM
6499   BFD_RELOC_PRU_32_PMEM
6500 ENUMX
6501   BFD_RELOC_PRU_16_PMEM
6502 ENUMDOC
6503   PRU Program Memory relocations.  Used to convert from byte addressing to
6504   32-bit word addressing.
6505 ENUM
6506   BFD_RELOC_PRU_GNU_DIFF8
6507 ENUMX
6508   BFD_RELOC_PRU_GNU_DIFF16
6509 ENUMX
6510   BFD_RELOC_PRU_GNU_DIFF32
6511 ENUMX
6512   BFD_RELOC_PRU_GNU_DIFF16_PMEM
6513 ENUMX
6514   BFD_RELOC_PRU_GNU_DIFF32_PMEM
6515 ENUMDOC
6516   PRU relocations to mark the difference of two local symbols.
6517   These are only needed to support linker relaxation and can be ignored
6518   when not relaxing.  The field is set to the value of the difference
6519   assuming no relaxation.  The relocation encodes the position of the
6520   second symbol so the linker can determine whether to adjust the field
6521   value. The PMEM variants encode the word difference, instead of byte
6522   difference between symbols.
6523 
6524 ENUM
6525   BFD_RELOC_IQ2000_OFFSET_16
6526 ENUMX
6527   BFD_RELOC_IQ2000_OFFSET_21
6528 ENUMX
6529   BFD_RELOC_IQ2000_UHI16
6530 ENUMDOC
6531   IQ2000 Relocations.
6532 
6533 ENUM
6534   BFD_RELOC_XTENSA_RTLD
6535 ENUMDOC
6536   Special Xtensa relocation used only by PLT entries in ELF shared
6537   objects to indicate that the runtime linker should set the value
6538   to one of its own internal functions or data structures.
6539 ENUM
6540   BFD_RELOC_XTENSA_GLOB_DAT
6541 ENUMX
6542   BFD_RELOC_XTENSA_JMP_SLOT
6543 ENUMX
6544   BFD_RELOC_XTENSA_RELATIVE
6545 ENUMDOC
6546   Xtensa relocations for ELF shared objects.
6547 ENUM
6548   BFD_RELOC_XTENSA_PLT
6549 ENUMDOC
6550   Xtensa relocation used in ELF object files for symbols that may require
6551   PLT entries.  Otherwise, this is just a generic 32-bit relocation.
6552 ENUM
6553   BFD_RELOC_XTENSA_DIFF8
6554 ENUMX
6555   BFD_RELOC_XTENSA_DIFF16
6556 ENUMX
6557   BFD_RELOC_XTENSA_DIFF32
6558 ENUMDOC
6559   Xtensa relocations to mark the difference of two local symbols.
6560   These are only needed to support linker relaxation and can be ignored
6561   when not relaxing.  The field is set to the value of the difference
6562   assuming no relaxation.  The relocation encodes the position of the
6563   first symbol so the linker can determine whether to adjust the field
6564   value.
6565 ENUM
6566   BFD_RELOC_XTENSA_SLOT0_OP
6567 ENUMX
6568   BFD_RELOC_XTENSA_SLOT1_OP
6569 ENUMX
6570   BFD_RELOC_XTENSA_SLOT2_OP
6571 ENUMX
6572   BFD_RELOC_XTENSA_SLOT3_OP
6573 ENUMX
6574   BFD_RELOC_XTENSA_SLOT4_OP
6575 ENUMX
6576   BFD_RELOC_XTENSA_SLOT5_OP
6577 ENUMX
6578   BFD_RELOC_XTENSA_SLOT6_OP
6579 ENUMX
6580   BFD_RELOC_XTENSA_SLOT7_OP
6581 ENUMX
6582   BFD_RELOC_XTENSA_SLOT8_OP
6583 ENUMX
6584   BFD_RELOC_XTENSA_SLOT9_OP
6585 ENUMX
6586   BFD_RELOC_XTENSA_SLOT10_OP
6587 ENUMX
6588   BFD_RELOC_XTENSA_SLOT11_OP
6589 ENUMX
6590   BFD_RELOC_XTENSA_SLOT12_OP
6591 ENUMX
6592   BFD_RELOC_XTENSA_SLOT13_OP
6593 ENUMX
6594   BFD_RELOC_XTENSA_SLOT14_OP
6595 ENUMDOC
6596   Generic Xtensa relocations for instruction operands.  Only the slot
6597   number is encoded in the relocation.  The relocation applies to the
6598   last PC-relative immediate operand, or if there are no PC-relative
6599   immediates, to the last immediate operand.
6600 ENUM
6601   BFD_RELOC_XTENSA_SLOT0_ALT
6602 ENUMX
6603   BFD_RELOC_XTENSA_SLOT1_ALT
6604 ENUMX
6605   BFD_RELOC_XTENSA_SLOT2_ALT
6606 ENUMX
6607   BFD_RELOC_XTENSA_SLOT3_ALT
6608 ENUMX
6609   BFD_RELOC_XTENSA_SLOT4_ALT
6610 ENUMX
6611   BFD_RELOC_XTENSA_SLOT5_ALT
6612 ENUMX
6613   BFD_RELOC_XTENSA_SLOT6_ALT
6614 ENUMX
6615   BFD_RELOC_XTENSA_SLOT7_ALT
6616 ENUMX
6617   BFD_RELOC_XTENSA_SLOT8_ALT
6618 ENUMX
6619   BFD_RELOC_XTENSA_SLOT9_ALT
6620 ENUMX
6621   BFD_RELOC_XTENSA_SLOT10_ALT
6622 ENUMX
6623   BFD_RELOC_XTENSA_SLOT11_ALT
6624 ENUMX
6625   BFD_RELOC_XTENSA_SLOT12_ALT
6626 ENUMX
6627   BFD_RELOC_XTENSA_SLOT13_ALT
6628 ENUMX
6629   BFD_RELOC_XTENSA_SLOT14_ALT
6630 ENUMDOC
6631   Alternate Xtensa relocations.  Only the slot is encoded in the
6632   relocation.  The meaning of these relocations is opcode-specific.
6633 ENUM
6634   BFD_RELOC_XTENSA_OP0
6635 ENUMX
6636   BFD_RELOC_XTENSA_OP1
6637 ENUMX
6638   BFD_RELOC_XTENSA_OP2
6639 ENUMDOC
6640   Xtensa relocations for backward compatibility.  These have all been
6641   replaced by BFD_RELOC_XTENSA_SLOT0_OP.
6642 ENUM
6643   BFD_RELOC_XTENSA_ASM_EXPAND
6644 ENUMDOC
6645   Xtensa relocation to mark that the assembler expanded the
6646   instructions from an original target.  The expansion size is
6647   encoded in the reloc size.
6648 ENUM
6649   BFD_RELOC_XTENSA_ASM_SIMPLIFY
6650 ENUMDOC
6651   Xtensa relocation to mark that the linker should simplify
6652   assembler-expanded instructions.  This is commonly used
6653   internally by the linker after analysis of a
6654   BFD_RELOC_XTENSA_ASM_EXPAND.
6655 ENUM
6656   BFD_RELOC_XTENSA_TLSDESC_FN
6657 ENUMX
6658   BFD_RELOC_XTENSA_TLSDESC_ARG
6659 ENUMX
6660   BFD_RELOC_XTENSA_TLS_DTPOFF
6661 ENUMX
6662   BFD_RELOC_XTENSA_TLS_TPOFF
6663 ENUMX
6664   BFD_RELOC_XTENSA_TLS_FUNC
6665 ENUMX
6666   BFD_RELOC_XTENSA_TLS_ARG
6667 ENUMX
6668   BFD_RELOC_XTENSA_TLS_CALL
6669 ENUMDOC
6670   Xtensa TLS relocations.
6671 
6672 ENUM
6673   BFD_RELOC_Z80_DISP8
6674 ENUMDOC
6675   8 bit signed offset in (ix+d) or (iy+d).
6676 ENUM
6677   BFD_RELOC_Z80_BYTE0
6678 ENUMDOC
6679   First 8 bits of multibyte (32, 24 or 16 bit) value.
6680 ENUM
6681   BFD_RELOC_Z80_BYTE1
6682 ENUMDOC
6683   Second 8 bits of multibyte (32, 24 or 16 bit) value.
6684 ENUM
6685   BFD_RELOC_Z80_BYTE2
6686 ENUMDOC
6687   Third 8 bits of multibyte (32 or 24 bit) value.
6688 ENUM
6689   BFD_RELOC_Z80_BYTE3
6690 ENUMDOC
6691   Fourth 8 bits of multibyte (32 bit) value.
6692 ENUM
6693   BFD_RELOC_Z80_WORD0
6694 ENUMDOC
6695   Lowest 16 bits of multibyte (32 or 24 bit) value.
6696 ENUM
6697   BFD_RELOC_Z80_WORD1
6698 ENUMDOC
6699   Highest 16 bits of multibyte (32 or 24 bit) value.
6700 
6701 ENUM
6702   BFD_RELOC_Z8K_DISP7
6703 ENUMDOC
6704   DJNZ offset.
6705 ENUM
6706   BFD_RELOC_Z8K_CALLR
6707 ENUMDOC
6708   CALR offset.
6709 ENUM
6710   BFD_RELOC_Z8K_IMM4L
6711 ENUMDOC
6712   4 bit value.
6713 
6714 ENUM
6715    BFD_RELOC_LM32_CALL
6716 ENUMX
6717    BFD_RELOC_LM32_BRANCH
6718 ENUMX
6719    BFD_RELOC_LM32_16_GOT
6720 ENUMX
6721    BFD_RELOC_LM32_GOTOFF_HI16
6722 ENUMX
6723    BFD_RELOC_LM32_GOTOFF_LO16
6724 ENUMX
6725    BFD_RELOC_LM32_COPY
6726 ENUMX
6727    BFD_RELOC_LM32_GLOB_DAT
6728 ENUMX
6729    BFD_RELOC_LM32_JMP_SLOT
6730 ENUMX
6731    BFD_RELOC_LM32_RELATIVE
6732 ENUMDOC
6733  Lattice Mico32 relocations.
6734 
6735 ENUM
6736   BFD_RELOC_MACH_O_SECTDIFF
6737 ENUMDOC
6738   Difference between two section addreses.  Must be followed by a
6739   BFD_RELOC_MACH_O_PAIR.
6740 ENUM
6741   BFD_RELOC_MACH_O_LOCAL_SECTDIFF
6742 ENUMDOC
6743   Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol.
6744 ENUM
6745   BFD_RELOC_MACH_O_PAIR
6746 ENUMDOC
6747   Pair of relocation.  Contains the first symbol.
6748 ENUM
6749   BFD_RELOC_MACH_O_SUBTRACTOR32
6750 ENUMDOC
6751   Symbol will be substracted.  Must be followed by a BFD_RELOC_32.
6752 ENUM
6753   BFD_RELOC_MACH_O_SUBTRACTOR64
6754 ENUMDOC
6755   Symbol will be substracted.  Must be followed by a BFD_RELOC_64.
6756 
6757 ENUM
6758   BFD_RELOC_MACH_O_X86_64_BRANCH32
6759 ENUMX
6760   BFD_RELOC_MACH_O_X86_64_BRANCH8
6761 ENUMDOC
6762   PCREL relocations.  They are marked as branch to create PLT entry if
6763   required.
6764 ENUM
6765   BFD_RELOC_MACH_O_X86_64_GOT
6766 ENUMDOC
6767   Used when referencing a GOT entry.
6768 ENUM
6769   BFD_RELOC_MACH_O_X86_64_GOT_LOAD
6770 ENUMDOC
6771   Used when loading a GOT entry with movq.  It is specially marked so that
6772   the linker could optimize the movq to a leaq if possible.
6773 ENUM
6774   BFD_RELOC_MACH_O_X86_64_PCREL32_1
6775 ENUMDOC
6776   Same as BFD_RELOC_32_PCREL but with an implicit -1 addend.
6777 ENUM
6778   BFD_RELOC_MACH_O_X86_64_PCREL32_2
6779 ENUMDOC
6780   Same as BFD_RELOC_32_PCREL but with an implicit -2 addend.
6781 ENUM
6782   BFD_RELOC_MACH_O_X86_64_PCREL32_4
6783 ENUMDOC
6784   Same as BFD_RELOC_32_PCREL but with an implicit -4 addend.
6785 ENUM
6786   BFD_RELOC_MACH_O_X86_64_TLV
6787 ENUMDOC
6788   Used when referencing a TLV entry.
6789 
6790 
6791 ENUM
6792   BFD_RELOC_MACH_O_ARM64_ADDEND
6793 ENUMDOC
6794   Addend for PAGE or PAGEOFF.
6795 ENUM
6796   BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21
6797 ENUMDOC
6798   Relative offset to page of GOT slot.
6799 ENUM
6800   BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12
6801 ENUMDOC
6802   Relative offset within page of GOT slot.
6803 ENUM
6804   BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT
6805 ENUMDOC
6806   Address of a GOT entry.
6807 
6808 ENUM
6809   BFD_RELOC_MICROBLAZE_32_LO
6810 ENUMDOC
6811   This is a 32 bit reloc for the microblaze that stores the
6812   low 16 bits of a value
6813 ENUM
6814   BFD_RELOC_MICROBLAZE_32_LO_PCREL
6815 ENUMDOC
6816   This is a 32 bit pc-relative reloc for the microblaze that
6817   stores the low 16 bits of a value
6818 ENUM
6819   BFD_RELOC_MICROBLAZE_32_ROSDA
6820 ENUMDOC
6821   This is a 32 bit reloc for the microblaze that stores a
6822   value relative to the read-only small data area anchor
6823 ENUM
6824   BFD_RELOC_MICROBLAZE_32_RWSDA
6825 ENUMDOC
6826   This is a 32 bit reloc for the microblaze that stores a
6827   value relative to the read-write small data area anchor
6828 ENUM
6829   BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM
6830 ENUMDOC
6831   This is a 32 bit reloc for the microblaze to handle
6832   expressions of the form "Symbol Op Symbol"
6833 ENUM
6834   BFD_RELOC_MICROBLAZE_64_NONE
6835 ENUMDOC
6836   This is a 64 bit reloc that stores the 32 bit pc relative
6837   value in two words (with an imm instruction).  No relocation is
6838   done here - only used for relaxing
6839 ENUM
6840   BFD_RELOC_MICROBLAZE_64_GOTPC
6841 ENUMDOC
6842   This is a 64 bit reloc that stores the 32 bit pc relative
6843   value in two words (with an imm instruction).  The relocation is
6844   PC-relative GOT offset
6845 ENUM
6846   BFD_RELOC_MICROBLAZE_64_GOT
6847 ENUMDOC
6848   This is a 64 bit reloc that stores the 32 bit pc relative
6849   value in two words (with an imm instruction).  The relocation is
6850   GOT offset
6851 ENUM
6852   BFD_RELOC_MICROBLAZE_64_PLT
6853 ENUMDOC
6854   This is a 64 bit reloc that stores the 32 bit pc relative
6855   value in two words (with an imm instruction).  The relocation is
6856   PC-relative offset into PLT
6857 ENUM
6858   BFD_RELOC_MICROBLAZE_64_GOTOFF
6859 ENUMDOC
6860   This is a 64 bit reloc that stores the 32 bit GOT relative
6861   value in two words (with an imm instruction).  The relocation is
6862   relative offset from _GLOBAL_OFFSET_TABLE_
6863 ENUM
6864   BFD_RELOC_MICROBLAZE_32_GOTOFF
6865 ENUMDOC
6866   This is a 32 bit reloc that stores the 32 bit GOT relative
6867   value in a word.  The relocation is relative offset from
6868   _GLOBAL_OFFSET_TABLE_
6869 ENUM
6870   BFD_RELOC_MICROBLAZE_COPY
6871 ENUMDOC
6872   This is used to tell the dynamic linker to copy the value out of
6873   the dynamic object into the runtime process image.
6874 ENUM
6875   BFD_RELOC_MICROBLAZE_64_TLS
6876 ENUMDOC
6877   Unused Reloc
6878 ENUM
6879   BFD_RELOC_MICROBLAZE_64_TLSGD
6880 ENUMDOC
6881   This is a 64 bit reloc that stores the 32 bit GOT relative value
6882   of the GOT TLS GD info entry in two words (with an imm instruction). The
6883   relocation is GOT offset.
6884 ENUM
6885   BFD_RELOC_MICROBLAZE_64_TLSLD
6886 ENUMDOC
6887   This is a 64 bit reloc that stores the 32 bit GOT relative value
6888   of the GOT TLS LD info entry in two words (with an imm instruction). The
6889   relocation is GOT offset.
6890 ENUM
6891   BFD_RELOC_MICROBLAZE_32_TLSDTPMOD
6892 ENUMDOC
6893   This is a 32 bit reloc that stores the Module ID to GOT(n).
6894 ENUM
6895   BFD_RELOC_MICROBLAZE_32_TLSDTPREL
6896 ENUMDOC
6897   This is a 32 bit reloc that stores TLS offset to GOT(n+1).
6898 ENUM
6899   BFD_RELOC_MICROBLAZE_64_TLSDTPREL
6900 ENUMDOC
6901   This is a 32 bit reloc for storing TLS offset to two words (uses imm
6902   instruction)
6903 ENUM
6904   BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL
6905 ENUMDOC
6906   This is a 64 bit reloc that stores 32-bit thread pointer relative offset
6907   to two words (uses imm instruction).
6908 ENUM
6909   BFD_RELOC_MICROBLAZE_64_TLSTPREL
6910 ENUMDOC
6911   This is a 64 bit reloc that stores 32-bit thread pointer relative offset
6912   to two words (uses imm instruction).
6913 ENUM
6914   BFD_RELOC_MICROBLAZE_64_TEXTPCREL
6915 ENUMDOC
6916   This is a 64 bit reloc that stores the 32 bit pc relative
6917   value in two words (with an imm instruction).  The relocation is
6918   PC-relative offset from start of TEXT.
6919 ENUM
6920   BFD_RELOC_MICROBLAZE_64_TEXTREL
6921 ENUMDOC
6922   This is a 64 bit reloc that stores the 32 bit offset
6923   value in two words (with an imm instruction).  The relocation is
6924   relative offset from start of TEXT.
6925 
6926 ENUM
6927   BFD_RELOC_AARCH64_RELOC_START
6928 ENUMDOC
6929   AArch64 pseudo relocation code to mark the start of the AArch64
6930   relocation enumerators.  N.B. the order of the enumerators is
6931   important as several tables in the AArch64 bfd backend are indexed
6932   by these enumerators; make sure they are all synced.
6933 ENUM
6934   BFD_RELOC_AARCH64_NULL
6935 ENUMDOC
6936   Deprecated AArch64 null relocation code.
6937 ENUM
6938   BFD_RELOC_AARCH64_NONE
6939 ENUMDOC
6940   AArch64 null relocation code.
6941 ENUM
6942   BFD_RELOC_AARCH64_64
6943 ENUMX
6944   BFD_RELOC_AARCH64_32
6945 ENUMX
6946   BFD_RELOC_AARCH64_16
6947 ENUMDOC
6948   Basic absolute relocations of N bits.  These are equivalent to
6949 BFD_RELOC_N and they were added to assist the indexing of the howto
6950 table.
6951 ENUM
6952   BFD_RELOC_AARCH64_64_PCREL
6953 ENUMX
6954   BFD_RELOC_AARCH64_32_PCREL
6955 ENUMX
6956   BFD_RELOC_AARCH64_16_PCREL
6957 ENUMDOC
6958   PC-relative relocations.  These are equivalent to BFD_RELOC_N_PCREL
6959 and they were added to assist the indexing of the howto table.
6960 ENUM
6961   BFD_RELOC_AARCH64_MOVW_G0
6962 ENUMDOC
6963   AArch64 MOV[NZK] instruction with most significant bits 0 to 15
6964   of an unsigned address/value.
6965 ENUM
6966   BFD_RELOC_AARCH64_MOVW_G0_NC
6967 ENUMDOC
6968   AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of
6969   an address/value.  No overflow checking.
6970 ENUM
6971   BFD_RELOC_AARCH64_MOVW_G1
6972 ENUMDOC
6973   AArch64 MOV[NZK] instruction with most significant bits 16 to 31
6974   of an unsigned address/value.
6975 ENUM
6976   BFD_RELOC_AARCH64_MOVW_G1_NC
6977 ENUMDOC
6978   AArch64 MOV[NZK] instruction with less significant bits 16 to 31
6979   of an address/value.  No overflow checking.
6980 ENUM
6981   BFD_RELOC_AARCH64_MOVW_G2
6982 ENUMDOC
6983   AArch64 MOV[NZK] instruction with most significant bits 32 to 47
6984   of an unsigned address/value.
6985 ENUM
6986   BFD_RELOC_AARCH64_MOVW_G2_NC
6987 ENUMDOC
6988   AArch64 MOV[NZK] instruction with less significant bits 32 to 47
6989   of an address/value.  No overflow checking.
6990 ENUM
6991   BFD_RELOC_AARCH64_MOVW_G3
6992 ENUMDOC
6993   AArch64 MOV[NZK] instruction with most signficant bits 48 to 64
6994   of a signed or unsigned address/value.
6995 ENUM
6996   BFD_RELOC_AARCH64_MOVW_G0_S
6997 ENUMDOC
6998   AArch64 MOV[NZ] instruction with most significant bits 0 to 15
6999   of a signed value.  Changes instruction to MOVZ or MOVN depending on the
7000   value's sign.
7001 ENUM
7002   BFD_RELOC_AARCH64_MOVW_G1_S
7003 ENUMDOC
7004   AArch64 MOV[NZ] instruction with most significant bits 16 to 31
7005   of a signed value.  Changes instruction to MOVZ or MOVN depending on the
7006   value's sign.
7007 ENUM
7008   BFD_RELOC_AARCH64_MOVW_G2_S
7009 ENUMDOC
7010   AArch64 MOV[NZ] instruction with most significant bits 32 to 47
7011   of a signed value.  Changes instruction to MOVZ or MOVN depending on the
7012   value's sign.
7013 ENUM
7014   BFD_RELOC_AARCH64_MOVW_PREL_G0
7015 ENUMDOC
7016   AArch64 MOV[NZ] instruction with most significant bits 0 to 15
7017   of a signed value.  Changes instruction to MOVZ or MOVN depending on the
7018   value's sign.
7019 ENUM
7020   BFD_RELOC_AARCH64_MOVW_PREL_G0_NC
7021 ENUMDOC
7022   AArch64 MOV[NZ] instruction with most significant bits 0 to 15
7023   of a signed value.  Changes instruction to MOVZ or MOVN depending on the
7024   value's sign.
7025 ENUM
7026   BFD_RELOC_AARCH64_MOVW_PREL_G1
7027 ENUMDOC
7028   AArch64 MOVK instruction with most significant bits 16 to 31
7029   of a signed value.
7030 ENUM
7031   BFD_RELOC_AARCH64_MOVW_PREL_G1_NC
7032 ENUMDOC
7033   AArch64 MOVK instruction with most significant bits 16 to 31
7034   of a signed value.
7035 ENUM
7036   BFD_RELOC_AARCH64_MOVW_PREL_G2
7037 ENUMDOC
7038   AArch64 MOVK instruction with most significant bits 32 to 47
7039   of a signed value.
7040 ENUM
7041   BFD_RELOC_AARCH64_MOVW_PREL_G2_NC
7042 ENUMDOC
7043   AArch64 MOVK instruction with most significant bits 32 to 47
7044   of a signed value.
7045 ENUM
7046   BFD_RELOC_AARCH64_MOVW_PREL_G3
7047 ENUMDOC
7048   AArch64 MOVK instruction with most significant bits 47 to 63
7049   of a signed value.
7050 ENUM
7051   BFD_RELOC_AARCH64_LD_LO19_PCREL
7052 ENUMDOC
7053   AArch64 Load Literal instruction, holding a 19 bit pc-relative word
7054   offset.  The lowest two bits must be zero and are not stored in the
7055   instruction, giving a 21 bit signed byte offset.
7056 ENUM
7057   BFD_RELOC_AARCH64_ADR_LO21_PCREL
7058 ENUMDOC
7059   AArch64 ADR instruction, holding a simple 21 bit pc-relative byte offset.
7060 ENUM
7061   BFD_RELOC_AARCH64_ADR_HI21_PCREL
7062 ENUMDOC
7063   AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
7064   offset, giving a 4KB aligned page base address.
7065 ENUM
7066   BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL
7067 ENUMDOC
7068   AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
7069   offset, giving a 4KB aligned page base address, but with no overflow
7070   checking.
7071 ENUM
7072   BFD_RELOC_AARCH64_ADD_LO12
7073 ENUMDOC
7074   AArch64 ADD immediate instruction, holding bits 0 to 11 of the address.
7075   Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7076 ENUM
7077   BFD_RELOC_AARCH64_LDST8_LO12
7078 ENUMDOC
7079   AArch64 8-bit load/store instruction, holding bits 0 to 11 of the
7080   address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7081 ENUM
7082   BFD_RELOC_AARCH64_TSTBR14
7083 ENUMDOC
7084   AArch64 14 bit pc-relative test bit and branch.
7085   The lowest two bits must be zero and are not stored in the instruction,
7086   giving a 16 bit signed byte offset.
7087 ENUM
7088   BFD_RELOC_AARCH64_BRANCH19
7089 ENUMDOC
7090   AArch64 19 bit pc-relative conditional branch and compare & branch.
7091   The lowest two bits must be zero and are not stored in the instruction,
7092   giving a 21 bit signed byte offset.
7093 ENUM
7094   BFD_RELOC_AARCH64_JUMP26
7095 ENUMDOC
7096   AArch64 26 bit pc-relative unconditional branch.
7097   The lowest two bits must be zero and are not stored in the instruction,
7098   giving a 28 bit signed byte offset.
7099 ENUM
7100   BFD_RELOC_AARCH64_CALL26
7101 ENUMDOC
7102   AArch64 26 bit pc-relative unconditional branch and link.
7103   The lowest two bits must be zero and are not stored in the instruction,
7104   giving a 28 bit signed byte offset.
7105 ENUM
7106   BFD_RELOC_AARCH64_LDST16_LO12
7107 ENUMDOC
7108   AArch64 16-bit load/store instruction, holding bits 0 to 11 of the
7109   address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7110 ENUM
7111   BFD_RELOC_AARCH64_LDST32_LO12
7112 ENUMDOC
7113   AArch64 32-bit load/store instruction, holding bits 0 to 11 of the
7114   address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7115 ENUM
7116   BFD_RELOC_AARCH64_LDST64_LO12
7117 ENUMDOC
7118   AArch64 64-bit load/store instruction, holding bits 0 to 11 of the
7119   address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7120 ENUM
7121   BFD_RELOC_AARCH64_LDST128_LO12
7122 ENUMDOC
7123   AArch64 128-bit load/store instruction, holding bits 0 to 11 of the
7124   address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7125 ENUM
7126   BFD_RELOC_AARCH64_GOT_LD_PREL19
7127 ENUMDOC
7128   AArch64 Load Literal instruction, holding a 19 bit PC relative word
7129   offset of the global offset table entry for a symbol.  The lowest two
7130   bits must be zero and are not stored in the instruction, giving a 21
7131   bit signed byte offset.  This relocation type requires signed overflow
7132   checking.
7133 ENUM
7134   BFD_RELOC_AARCH64_ADR_GOT_PAGE
7135 ENUMDOC
7136   Get to the page base of the global offset table entry for a symbol as
7137   part of an ADRP instruction using a 21 bit PC relative value.Used in
7138   conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC.
7139 ENUM
7140   BFD_RELOC_AARCH64_LD64_GOT_LO12_NC
7141 ENUMDOC
7142   Unsigned 12 bit byte offset for 64 bit load/store from the page of
7143   the GOT entry for this symbol.  Used in conjunction with
7144   BFD_RELOC_AARCH64_ADR_GOT_PAGE.  Valid in LP64 ABI only.
7145 ENUM
7146   BFD_RELOC_AARCH64_LD32_GOT_LO12_NC
7147 ENUMDOC
7148   Unsigned 12 bit byte offset for 32 bit load/store from the page of
7149   the GOT entry for this symbol.  Used in conjunction with
7150   BFD_RELOC_AARCH64_ADR_GOT_PAGE.  Valid in ILP32 ABI only.
7151  ENUM
7152   BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC
7153 ENUMDOC
7154   Unsigned 16 bit byte offset for 64 bit load/store from the GOT entry
7155   for this symbol.  Valid in LP64 ABI only.
7156 ENUM
7157   BFD_RELOC_AARCH64_MOVW_GOTOFF_G1
7158 ENUMDOC
7159   Unsigned 16 bit byte higher offset for 64 bit load/store from the GOT entry
7160   for this symbol.  Valid in LP64 ABI only.
7161 ENUM
7162   BFD_RELOC_AARCH64_LD64_GOTOFF_LO15
7163 ENUMDOC
7164   Unsigned 15 bit byte offset for 64 bit load/store from the page of
7165   the GOT entry for this symbol.  Valid in LP64 ABI only.
7166 ENUM
7167   BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14
7168 ENUMDOC
7169   Scaled 14 bit byte offset to the page base of the global offset table.
7170 ENUM
7171   BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15
7172 ENUMDOC
7173   Scaled 15 bit byte offset to the page base of the global offset table.
7174 ENUM
7175   BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21
7176 ENUMDOC
7177   Get to the page base of the global offset table entry for a symbols
7178   tls_index structure as part of an adrp instruction using a 21 bit PC
7179   relative value.  Used in conjunction with
7180   BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC.
7181 ENUM
7182   BFD_RELOC_AARCH64_TLSGD_ADR_PREL21
7183 ENUMDOC
7184   AArch64 TLS General Dynamic
7185 ENUM
7186   BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC
7187 ENUMDOC
7188   Unsigned 12 bit byte offset to global offset table entry for a symbols
7189   tls_index structure.  Used in conjunction with
7190   BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.
7191 ENUM
7192   BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC
7193 ENUMDOC
7194   AArch64 TLS General Dynamic relocation.
7195 ENUM
7196   BFD_RELOC_AARCH64_TLSGD_MOVW_G1
7197 ENUMDOC
7198   AArch64 TLS General Dynamic relocation.
7199 ENUM
7200   BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21
7201 ENUMDOC
7202   AArch64 TLS INITIAL EXEC relocation.
7203 ENUM
7204   BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC
7205 ENUMDOC
7206   AArch64 TLS INITIAL EXEC relocation.
7207 ENUM
7208   BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC
7209 ENUMDOC
7210   AArch64 TLS INITIAL EXEC relocation.
7211 ENUM
7212   BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19
7213 ENUMDOC
7214   AArch64 TLS INITIAL EXEC relocation.
7215 ENUM
7216   BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC
7217 ENUMDOC
7218   AArch64 TLS INITIAL EXEC relocation.
7219 ENUM
7220   BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1
7221 ENUMDOC
7222   AArch64 TLS INITIAL EXEC relocation.
7223 ENUM
7224   BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12
7225 ENUMDOC
7226   bit[23:12] of byte offset to module TLS base address.
7227 ENUM
7228   BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12
7229 ENUMDOC
7230   Unsigned 12 bit byte offset to module TLS base address.
7231 ENUM
7232   BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC
7233 ENUMDOC
7234   No overflow check version of BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12.
7235 ENUM
7236   BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC
7237 ENUMDOC
7238   Unsigned 12 bit byte offset to global offset table entry for a symbols
7239   tls_index structure.  Used in conjunction with
7240   BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21.
7241 ENUM
7242   BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21
7243 ENUMDOC
7244   GOT entry page address for AArch64 TLS Local Dynamic, used with ADRP
7245   instruction.
7246 ENUM
7247   BFD_RELOC_AARCH64_TLSLD_ADR_PREL21
7248 ENUMDOC
7249   GOT entry address for AArch64 TLS Local Dynamic, used with ADR instruction.
7250 ENUM
7251   BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12
7252 ENUMDOC
7253   bit[11:1] of byte offset to module TLS base address, encoded in ldst
7254   instructions.
7255 ENUM
7256   BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC
7257 ENUMDOC
7258   Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no overflow check.
7259 ENUM
7260   BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12
7261 ENUMDOC
7262   bit[11:2] of byte offset to module TLS base address, encoded in ldst
7263   instructions.
7264 ENUM
7265   BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC
7266 ENUMDOC
7267   Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no overflow check.
7268 ENUM
7269   BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12
7270 ENUMDOC
7271   bit[11:3] of byte offset to module TLS base address, encoded in ldst
7272   instructions.
7273 ENUM
7274   BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC
7275 ENUMDOC
7276   Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no overflow check.
7277 ENUM
7278   BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12
7279 ENUMDOC
7280   bit[11:0] of byte offset to module TLS base address, encoded in ldst
7281   instructions.
7282 ENUM
7283   BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC
7284 ENUMDOC
7285   Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no overflow check.
7286 ENUM
7287   BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
7288 ENUMDOC
7289   bit[15:0] of byte offset to module TLS base address.
7290 ENUM
7291   BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC
7292 ENUMDOC
7293   No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
7294 ENUM
7295   BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
7296 ENUMDOC
7297   bit[31:16] of byte offset to module TLS base address.
7298 ENUM
7299   BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC
7300 ENUMDOC
7301   No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
7302 ENUM
7303   BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2
7304 ENUMDOC
7305   bit[47:32] of byte offset to module TLS base address.
7306 ENUM
7307   BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2
7308 ENUMDOC
7309   AArch64 TLS LOCAL EXEC relocation.
7310 ENUM
7311   BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1
7312 ENUMDOC
7313   AArch64 TLS LOCAL EXEC relocation.
7314 ENUM
7315   BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC
7316 ENUMDOC
7317   AArch64 TLS LOCAL EXEC relocation.
7318 ENUM
7319   BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0
7320 ENUMDOC
7321   AArch64 TLS LOCAL EXEC relocation.
7322 ENUM
7323   BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC
7324 ENUMDOC
7325   AArch64 TLS LOCAL EXEC relocation.
7326 ENUM
7327   BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12
7328 ENUMDOC
7329   AArch64 TLS LOCAL EXEC relocation.
7330 ENUM
7331   BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12
7332 ENUMDOC
7333   AArch64 TLS LOCAL EXEC relocation.
7334 ENUM
7335   BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC
7336 ENUMDOC
7337   AArch64 TLS LOCAL EXEC relocation.
7338 ENUM
7339   BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12
7340 ENUMDOC
7341   bit[11:1] of byte offset to module TLS base address, encoded in ldst
7342   instructions.
7343 ENUM
7344   BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC
7345 ENUMDOC
7346   Similar as BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no overflow check.
7347 ENUM
7348   BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12
7349 ENUMDOC
7350   bit[11:2] of byte offset to module TLS base address, encoded in ldst
7351   instructions.
7352 ENUM
7353   BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC
7354 ENUMDOC
7355   Similar as BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no overflow check.
7356 ENUM
7357   BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12
7358 ENUMDOC
7359   bit[11:3] of byte offset to module TLS base address, encoded in ldst
7360   instructions.
7361 ENUM
7362   BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC
7363 ENUMDOC
7364   Similar as BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no overflow check.
7365 ENUM
7366   BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12
7367 ENUMDOC
7368   bit[11:0] of byte offset to module TLS base address, encoded in ldst
7369   instructions.
7370 ENUM
7371   BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC
7372 ENUMDOC
7373   Similar as BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no overflow check.
7374 ENUM
7375   BFD_RELOC_AARCH64_TLSDESC_LD_PREL19
7376 ENUMDOC
7377   AArch64 TLS DESC relocation.
7378 ENUM
7379   BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21
7380 ENUMDOC
7381   AArch64 TLS DESC relocation.
7382 ENUM
7383   BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21
7384 ENUMDOC
7385   AArch64 TLS DESC relocation.
7386 ENUM
7387   BFD_RELOC_AARCH64_TLSDESC_LD64_LO12
7388 ENUMDOC
7389   AArch64 TLS DESC relocation.
7390 ENUM
7391   BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC
7392 ENUMDOC
7393   AArch64 TLS DESC relocation.
7394 ENUM
7395   BFD_RELOC_AARCH64_TLSDESC_ADD_LO12
7396 ENUMDOC
7397   AArch64 TLS DESC relocation.
7398 ENUM
7399   BFD_RELOC_AARCH64_TLSDESC_OFF_G1
7400 ENUMDOC
7401   AArch64 TLS DESC relocation.
7402 ENUM
7403   BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC
7404 ENUMDOC
7405   AArch64 TLS DESC relocation.
7406 ENUM
7407   BFD_RELOC_AARCH64_TLSDESC_LDR
7408 ENUMDOC
7409   AArch64 TLS DESC relocation.
7410 ENUM
7411   BFD_RELOC_AARCH64_TLSDESC_ADD
7412 ENUMDOC
7413   AArch64 TLS DESC relocation.
7414 ENUM
7415   BFD_RELOC_AARCH64_TLSDESC_CALL
7416 ENUMDOC
7417   AArch64 TLS DESC relocation.
7418 ENUM
7419   BFD_RELOC_AARCH64_COPY
7420 ENUMDOC
7421   AArch64 TLS relocation.
7422 ENUM
7423   BFD_RELOC_AARCH64_GLOB_DAT
7424 ENUMDOC
7425   AArch64 TLS relocation.
7426 ENUM
7427   BFD_RELOC_AARCH64_JUMP_SLOT
7428 ENUMDOC
7429   AArch64 TLS relocation.
7430 ENUM
7431   BFD_RELOC_AARCH64_RELATIVE
7432 ENUMDOC
7433   AArch64 TLS relocation.
7434 ENUM
7435   BFD_RELOC_AARCH64_TLS_DTPMOD
7436 ENUMDOC
7437   AArch64 TLS relocation.
7438 ENUM
7439   BFD_RELOC_AARCH64_TLS_DTPREL
7440 ENUMDOC
7441   AArch64 TLS relocation.
7442 ENUM
7443   BFD_RELOC_AARCH64_TLS_TPREL
7444 ENUMDOC
7445   AArch64 TLS relocation.
7446 ENUM
7447   BFD_RELOC_AARCH64_TLSDESC
7448 ENUMDOC
7449   AArch64 TLS relocation.
7450 ENUM
7451   BFD_RELOC_AARCH64_IRELATIVE
7452 ENUMDOC
7453   AArch64 support for STT_GNU_IFUNC.
7454 ENUM
7455   BFD_RELOC_AARCH64_RELOC_END
7456 ENUMDOC
7457   AArch64 pseudo relocation code to mark the end of the AArch64
7458   relocation enumerators that have direct mapping to ELF reloc codes.
7459   There are a few more enumerators after this one; those are mainly
7460   used by the AArch64 assembler for the internal fixup or to select
7461   one of the above enumerators.
7462 ENUM
7463   BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP
7464 ENUMDOC
7465   AArch64 pseudo relocation code to be used internally by the AArch64
7466   assembler and not (currently) written to any object files.
7467 ENUM
7468   BFD_RELOC_AARCH64_LDST_LO12
7469 ENUMDOC
7470   AArch64 unspecified load/store instruction, holding bits 0 to 11 of the
7471   address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7472 ENUM
7473   BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12
7474 ENUMDOC
7475   AArch64 pseudo relocation code for TLS local dynamic mode.  It's to be
7476   used internally by the AArch64 assembler and not (currently) written to
7477   any object files.
7478 ENUM
7479   BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC
7480 ENUMDOC
7481   Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow check.
7482 ENUM
7483   BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12
7484 ENUMDOC
7485   AArch64 pseudo relocation code for TLS local exec mode.  It's to be
7486   used internally by the AArch64 assembler and not (currently) written to
7487   any object files.
7488 ENUM
7489   BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC
7490 ENUMDOC
7491   Similar as BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12, but no overflow check.
7492 ENUM
7493   BFD_RELOC_AARCH64_LD_GOT_LO12_NC
7494 ENUMDOC
7495   AArch64 pseudo relocation code to be used internally by the AArch64
7496   assembler and not (currently) written to any object files.
7497 ENUM
7498   BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC
7499 ENUMDOC
7500   AArch64 pseudo relocation code to be used internally by the AArch64
7501   assembler and not (currently) written to any object files.
7502 ENUM
7503   BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC
7504 ENUMDOC
7505   AArch64 pseudo relocation code to be used internally by the AArch64
7506   assembler and not (currently) written to any object files.
7507 ENUM
7508   BFD_RELOC_TILEPRO_COPY
7509 ENUMX
7510   BFD_RELOC_TILEPRO_GLOB_DAT
7511 ENUMX
7512   BFD_RELOC_TILEPRO_JMP_SLOT
7513 ENUMX
7514   BFD_RELOC_TILEPRO_RELATIVE
7515 ENUMX
7516   BFD_RELOC_TILEPRO_BROFF_X1
7517 ENUMX
7518   BFD_RELOC_TILEPRO_JOFFLONG_X1
7519 ENUMX
7520   BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT
7521 ENUMX
7522   BFD_RELOC_TILEPRO_IMM8_X0
7523 ENUMX
7524   BFD_RELOC_TILEPRO_IMM8_Y0
7525 ENUMX
7526   BFD_RELOC_TILEPRO_IMM8_X1
7527 ENUMX
7528   BFD_RELOC_TILEPRO_IMM8_Y1
7529 ENUMX
7530   BFD_RELOC_TILEPRO_DEST_IMM8_X1
7531 ENUMX
7532   BFD_RELOC_TILEPRO_MT_IMM15_X1
7533 ENUMX
7534   BFD_RELOC_TILEPRO_MF_IMM15_X1
7535 ENUMX
7536   BFD_RELOC_TILEPRO_IMM16_X0
7537 ENUMX
7538   BFD_RELOC_TILEPRO_IMM16_X1
7539 ENUMX
7540   BFD_RELOC_TILEPRO_IMM16_X0_LO
7541 ENUMX
7542   BFD_RELOC_TILEPRO_IMM16_X1_LO
7543 ENUMX
7544   BFD_RELOC_TILEPRO_IMM16_X0_HI
7545 ENUMX
7546   BFD_RELOC_TILEPRO_IMM16_X1_HI
7547 ENUMX
7548   BFD_RELOC_TILEPRO_IMM16_X0_HA
7549 ENUMX
7550   BFD_RELOC_TILEPRO_IMM16_X1_HA
7551 ENUMX
7552   BFD_RELOC_TILEPRO_IMM16_X0_PCREL
7553 ENUMX
7554   BFD_RELOC_TILEPRO_IMM16_X1_PCREL
7555 ENUMX
7556   BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL
7557 ENUMX
7558   BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL
7559 ENUMX
7560   BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL
7561 ENUMX
7562   BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL
7563 ENUMX
7564   BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL
7565 ENUMX
7566   BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL
7567 ENUMX
7568   BFD_RELOC_TILEPRO_IMM16_X0_GOT
7569 ENUMX
7570   BFD_RELOC_TILEPRO_IMM16_X1_GOT
7571 ENUMX
7572   BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO
7573 ENUMX
7574   BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO
7575 ENUMX
7576   BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI
7577 ENUMX
7578   BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI
7579 ENUMX
7580   BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA
7581 ENUMX
7582   BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA
7583 ENUMX
7584   BFD_RELOC_TILEPRO_MMSTART_X0
7585 ENUMX
7586   BFD_RELOC_TILEPRO_MMEND_X0
7587 ENUMX
7588   BFD_RELOC_TILEPRO_MMSTART_X1
7589 ENUMX
7590   BFD_RELOC_TILEPRO_MMEND_X1
7591 ENUMX
7592   BFD_RELOC_TILEPRO_SHAMT_X0
7593 ENUMX
7594   BFD_RELOC_TILEPRO_SHAMT_X1
7595 ENUMX
7596   BFD_RELOC_TILEPRO_SHAMT_Y0
7597 ENUMX
7598   BFD_RELOC_TILEPRO_SHAMT_Y1
7599 ENUMX
7600   BFD_RELOC_TILEPRO_TLS_GD_CALL
7601 ENUMX
7602   BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD
7603 ENUMX
7604   BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD
7605 ENUMX
7606   BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD
7607 ENUMX
7608   BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD
7609 ENUMX
7610   BFD_RELOC_TILEPRO_TLS_IE_LOAD
7611 ENUMX
7612   BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD
7613 ENUMX
7614   BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD
7615 ENUMX
7616   BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO
7617 ENUMX
7618   BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO
7619 ENUMX
7620   BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI
7621 ENUMX
7622   BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI
7623 ENUMX
7624   BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA
7625 ENUMX
7626   BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA
7627 ENUMX
7628   BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE
7629 ENUMX
7630   BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE
7631 ENUMX
7632   BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO
7633 ENUMX
7634   BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO
7635 ENUMX
7636   BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI
7637 ENUMX
7638   BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI
7639 ENUMX
7640   BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA
7641 ENUMX
7642   BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA
7643 ENUMX
7644   BFD_RELOC_TILEPRO_TLS_DTPMOD32
7645 ENUMX
7646   BFD_RELOC_TILEPRO_TLS_DTPOFF32
7647 ENUMX
7648   BFD_RELOC_TILEPRO_TLS_TPOFF32
7649 ENUMX
7650   BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE
7651 ENUMX
7652   BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE
7653 ENUMX
7654   BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO
7655 ENUMX
7656   BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO
7657 ENUMX
7658   BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI
7659 ENUMX
7660   BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI
7661 ENUMX
7662   BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA
7663 ENUMX
7664   BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA
7665 ENUMDOC
7666   Tilera TILEPro Relocations.
7667 ENUM
7668   BFD_RELOC_TILEGX_HW0
7669 ENUMX
7670   BFD_RELOC_TILEGX_HW1
7671 ENUMX
7672   BFD_RELOC_TILEGX_HW2
7673 ENUMX
7674   BFD_RELOC_TILEGX_HW3
7675 ENUMX
7676   BFD_RELOC_TILEGX_HW0_LAST
7677 ENUMX
7678   BFD_RELOC_TILEGX_HW1_LAST
7679 ENUMX
7680   BFD_RELOC_TILEGX_HW2_LAST
7681 ENUMX
7682   BFD_RELOC_TILEGX_COPY
7683 ENUMX
7684   BFD_RELOC_TILEGX_GLOB_DAT
7685 ENUMX
7686   BFD_RELOC_TILEGX_JMP_SLOT
7687 ENUMX
7688   BFD_RELOC_TILEGX_RELATIVE
7689 ENUMX
7690   BFD_RELOC_TILEGX_BROFF_X1
7691 ENUMX
7692   BFD_RELOC_TILEGX_JUMPOFF_X1
7693 ENUMX
7694   BFD_RELOC_TILEGX_JUMPOFF_X1_PLT
7695 ENUMX
7696   BFD_RELOC_TILEGX_IMM8_X0
7697 ENUMX
7698   BFD_RELOC_TILEGX_IMM8_Y0
7699 ENUMX
7700   BFD_RELOC_TILEGX_IMM8_X1
7701 ENUMX
7702   BFD_RELOC_TILEGX_IMM8_Y1
7703 ENUMX
7704   BFD_RELOC_TILEGX_DEST_IMM8_X1
7705 ENUMX
7706   BFD_RELOC_TILEGX_MT_IMM14_X1
7707 ENUMX
7708   BFD_RELOC_TILEGX_MF_IMM14_X1
7709 ENUMX
7710   BFD_RELOC_TILEGX_MMSTART_X0
7711 ENUMX
7712   BFD_RELOC_TILEGX_MMEND_X0
7713 ENUMX
7714   BFD_RELOC_TILEGX_SHAMT_X0
7715 ENUMX
7716   BFD_RELOC_TILEGX_SHAMT_X1
7717 ENUMX
7718   BFD_RELOC_TILEGX_SHAMT_Y0
7719 ENUMX
7720   BFD_RELOC_TILEGX_SHAMT_Y1
7721 ENUMX
7722   BFD_RELOC_TILEGX_IMM16_X0_HW0
7723 ENUMX
7724   BFD_RELOC_TILEGX_IMM16_X1_HW0
7725 ENUMX
7726   BFD_RELOC_TILEGX_IMM16_X0_HW1
7727 ENUMX
7728   BFD_RELOC_TILEGX_IMM16_X1_HW1
7729 ENUMX
7730   BFD_RELOC_TILEGX_IMM16_X0_HW2
7731 ENUMX
7732   BFD_RELOC_TILEGX_IMM16_X1_HW2
7733 ENUMX
7734   BFD_RELOC_TILEGX_IMM16_X0_HW3
7735 ENUMX
7736   BFD_RELOC_TILEGX_IMM16_X1_HW3
7737 ENUMX
7738   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST
7739 ENUMX
7740   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST
7741 ENUMX
7742   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST
7743 ENUMX
7744   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST
7745 ENUMX
7746   BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST
7747 ENUMX
7748   BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST
7749 ENUMX
7750   BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL
7751 ENUMX
7752   BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL
7753 ENUMX
7754   BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL
7755 ENUMX
7756   BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL
7757 ENUMX
7758   BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL
7759 ENUMX
7760   BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL
7761 ENUMX
7762   BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL
7763 ENUMX
7764   BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL
7765 ENUMX
7766   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL
7767 ENUMX
7768   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL
7769 ENUMX
7770   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL
7771 ENUMX
7772   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL
7773 ENUMX
7774   BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL
7775 ENUMX
7776   BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL
7777 ENUMX
7778   BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT
7779 ENUMX
7780   BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT
7781 ENUMX
7782   BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL
7783 ENUMX
7784   BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL
7785 ENUMX
7786   BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL
7787 ENUMX
7788   BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL
7789 ENUMX
7790   BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL
7791 ENUMX
7792   BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL
7793 ENUMX
7794   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT
7795 ENUMX
7796   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT
7797 ENUMX
7798   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT
7799 ENUMX
7800   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT
7801 ENUMX
7802   BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL
7803 ENUMX
7804   BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL
7805 ENUMX
7806   BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD
7807 ENUMX
7808   BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD
7809 ENUMX
7810   BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE
7811 ENUMX
7812   BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE
7813 ENUMX
7814   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE
7815 ENUMX
7816   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE
7817 ENUMX
7818   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE
7819 ENUMX
7820   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE
7821 ENUMX
7822   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD
7823 ENUMX
7824   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD
7825 ENUMX
7826   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD
7827 ENUMX
7828   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD
7829 ENUMX
7830   BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE
7831 ENUMX
7832   BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE
7833 ENUMX
7834   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL
7835 ENUMX
7836   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL
7837 ENUMX
7838   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL
7839 ENUMX
7840   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL
7841 ENUMX
7842   BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL
7843 ENUMX
7844   BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL
7845 ENUMX
7846   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE
7847 ENUMX
7848   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE
7849 ENUMX
7850   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE
7851 ENUMX
7852   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE
7853 ENUMX
7854   BFD_RELOC_TILEGX_TLS_DTPMOD64
7855 ENUMX
7856   BFD_RELOC_TILEGX_TLS_DTPOFF64
7857 ENUMX
7858   BFD_RELOC_TILEGX_TLS_TPOFF64
7859 ENUMX
7860   BFD_RELOC_TILEGX_TLS_DTPMOD32
7861 ENUMX
7862   BFD_RELOC_TILEGX_TLS_DTPOFF32
7863 ENUMX
7864   BFD_RELOC_TILEGX_TLS_TPOFF32
7865 ENUMX
7866   BFD_RELOC_TILEGX_TLS_GD_CALL
7867 ENUMX
7868   BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD
7869 ENUMX
7870   BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD
7871 ENUMX
7872   BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD
7873 ENUMX
7874   BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD
7875 ENUMX
7876   BFD_RELOC_TILEGX_TLS_IE_LOAD
7877 ENUMX
7878   BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD
7879 ENUMX
7880   BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD
7881 ENUMX
7882   BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD
7883 ENUMX
7884   BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD
7885 ENUMDOC
7886   Tilera TILE-Gx Relocations.
7887 
7888 ENUM
7889   BFD_RELOC_BPF_64
7890 ENUMX
7891   BFD_RELOC_BPF_32
7892 ENUMX
7893   BFD_RELOC_BPF_16
7894 ENUMX
7895   BFD_RELOC_BPF_DISP16
7896 ENUMX
7897   BFD_RELOC_BPF_DISP32
7898 ENUMDOC
7899   Linux eBPF relocations.
7900 
7901 ENUM
7902   BFD_RELOC_EPIPHANY_SIMM8
7903 ENUMDOC
7904   Adapteva EPIPHANY - 8 bit signed pc-relative displacement
7905 ENUM
7906   BFD_RELOC_EPIPHANY_SIMM24
7907 ENUMDOC
7908   Adapteva EPIPHANY - 24 bit signed pc-relative displacement
7909 ENUM
7910   BFD_RELOC_EPIPHANY_HIGH
7911 ENUMDOC
7912   Adapteva EPIPHANY - 16 most-significant bits of absolute address
7913 ENUM
7914   BFD_RELOC_EPIPHANY_LOW
7915 ENUMDOC
7916   Adapteva EPIPHANY - 16 least-significant bits of absolute address
7917 ENUM
7918   BFD_RELOC_EPIPHANY_SIMM11
7919 ENUMDOC
7920   Adapteva EPIPHANY - 11 bit signed number - add/sub immediate
7921 ENUM
7922   BFD_RELOC_EPIPHANY_IMM11
7923 ENUMDOC
7924   Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st displacement)
7925 ENUM
7926   BFD_RELOC_EPIPHANY_IMM8
7927 ENUMDOC
7928   Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction.
7929 
7930 ENUM
7931   BFD_RELOC_VISIUM_HI16
7932 ENUMX
7933   BFD_RELOC_VISIUM_LO16
7934 ENUMX
7935   BFD_RELOC_VISIUM_IM16
7936 ENUMX
7937   BFD_RELOC_VISIUM_REL16
7938 ENUMX
7939   BFD_RELOC_VISIUM_HI16_PCREL
7940 ENUMX
7941   BFD_RELOC_VISIUM_LO16_PCREL
7942 ENUMX
7943   BFD_RELOC_VISIUM_IM16_PCREL
7944 ENUMDOC
7945   Visium Relocations.
7946 
7947 ENUM
7948   BFD_RELOC_WASM32_LEB128
7949 ENUMX
7950   BFD_RELOC_WASM32_LEB128_GOT
7951 ENUMX
7952   BFD_RELOC_WASM32_LEB128_GOT_CODE
7953 ENUMX
7954   BFD_RELOC_WASM32_LEB128_PLT
7955 ENUMX
7956   BFD_RELOC_WASM32_PLT_INDEX
7957 ENUMX
7958   BFD_RELOC_WASM32_ABS32_CODE
7959 ENUMX
7960   BFD_RELOC_WASM32_COPY
7961 ENUMX
7962   BFD_RELOC_WASM32_CODE_POINTER
7963 ENUMX
7964   BFD_RELOC_WASM32_INDEX
7965 ENUMX
7966   BFD_RELOC_WASM32_PLT_SIG
7967 ENUMDOC
7968   WebAssembly relocations.
7969 
7970 ENUM
7971   BFD_RELOC_CKCORE_NONE
7972 ENUMX
7973   BFD_RELOC_CKCORE_ADDR32
7974 ENUMX
7975   BFD_RELOC_CKCORE_PCREL_IMM8BY4
7976 ENUMX
7977   BFD_RELOC_CKCORE_PCREL_IMM11BY2
7978 ENUMX
7979   BFD_RELOC_CKCORE_PCREL_IMM4BY2
7980 ENUMX
7981   BFD_RELOC_CKCORE_PCREL32
7982 ENUMX
7983   BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2
7984 ENUMX
7985   BFD_RELOC_CKCORE_GNU_VTINHERIT
7986 ENUMX
7987   BFD_RELOC_CKCORE_GNU_VTENTRY
7988 ENUMX
7989   BFD_RELOC_CKCORE_RELATIVE
7990 ENUMX
7991   BFD_RELOC_CKCORE_COPY
7992 ENUMX
7993   BFD_RELOC_CKCORE_GLOB_DAT
7994 ENUMX
7995   BFD_RELOC_CKCORE_JUMP_SLOT
7996 ENUMX
7997   BFD_RELOC_CKCORE_GOTOFF
7998 ENUMX
7999   BFD_RELOC_CKCORE_GOTPC
8000 ENUMX
8001   BFD_RELOC_CKCORE_GOT32
8002 ENUMX
8003   BFD_RELOC_CKCORE_PLT32
8004 ENUMX
8005   BFD_RELOC_CKCORE_ADDRGOT
8006 ENUMX
8007   BFD_RELOC_CKCORE_ADDRPLT
8008 ENUMX
8009   BFD_RELOC_CKCORE_PCREL_IMM26BY2
8010 ENUMX
8011   BFD_RELOC_CKCORE_PCREL_IMM16BY2
8012 ENUMX
8013   BFD_RELOC_CKCORE_PCREL_IMM16BY4
8014 ENUMX
8015   BFD_RELOC_CKCORE_PCREL_IMM10BY2
8016 ENUMX
8017   BFD_RELOC_CKCORE_PCREL_IMM10BY4
8018 ENUMX
8019   BFD_RELOC_CKCORE_ADDR_HI16
8020 ENUMX
8021   BFD_RELOC_CKCORE_ADDR_LO16
8022 ENUMX
8023   BFD_RELOC_CKCORE_GOTPC_HI16
8024 ENUMX
8025   BFD_RELOC_CKCORE_GOTPC_LO16
8026 ENUMX
8027   BFD_RELOC_CKCORE_GOTOFF_HI16
8028 ENUMX
8029   BFD_RELOC_CKCORE_GOTOFF_LO16
8030 ENUMX
8031   BFD_RELOC_CKCORE_GOT12
8032 ENUMX
8033   BFD_RELOC_CKCORE_GOT_HI16
8034 ENUMX
8035   BFD_RELOC_CKCORE_GOT_LO16
8036 ENUMX
8037   BFD_RELOC_CKCORE_PLT12
8038 ENUMX
8039   BFD_RELOC_CKCORE_PLT_HI16
8040 ENUMX
8041   BFD_RELOC_CKCORE_PLT_LO16
8042 ENUMX
8043   BFD_RELOC_CKCORE_ADDRGOT_HI16
8044 ENUMX
8045   BFD_RELOC_CKCORE_ADDRGOT_LO16
8046 ENUMX
8047   BFD_RELOC_CKCORE_ADDRPLT_HI16
8048 ENUMX
8049   BFD_RELOC_CKCORE_ADDRPLT_LO16
8050 ENUMX
8051   BFD_RELOC_CKCORE_PCREL_JSR_IMM26BY2
8052 ENUMX
8053   BFD_RELOC_CKCORE_TOFFSET_LO16
8054 ENUMX
8055   BFD_RELOC_CKCORE_DOFFSET_LO16
8056 ENUMX
8057   BFD_RELOC_CKCORE_PCREL_IMM18BY2
8058 ENUMX
8059   BFD_RELOC_CKCORE_DOFFSET_IMM18
8060 ENUMX
8061   BFD_RELOC_CKCORE_DOFFSET_IMM18BY2
8062 ENUMX
8063   BFD_RELOC_CKCORE_DOFFSET_IMM18BY4
8064 ENUMX
8065   BFD_RELOC_CKCORE_GOTOFF_IMM18
8066 ENUMX
8067   BFD_RELOC_CKCORE_GOT_IMM18BY4
8068 ENUMX
8069   BFD_RELOC_CKCORE_PLT_IMM18BY4
8070 ENUMX
8071   BFD_RELOC_CKCORE_PCREL_IMM7BY4
8072 ENUMX
8073   BFD_RELOC_CKCORE_TLS_LE32
8074 ENUMX
8075   BFD_RELOC_CKCORE_TLS_IE32
8076 ENUMX
8077   BFD_RELOC_CKCORE_TLS_GD32
8078 ENUMX
8079   BFD_RELOC_CKCORE_TLS_LDM32
8080 ENUMX
8081   BFD_RELOC_CKCORE_TLS_LDO32
8082 ENUMX
8083   BFD_RELOC_CKCORE_TLS_DTPMOD32
8084 ENUMX
8085   BFD_RELOC_CKCORE_TLS_DTPOFF32
8086 ENUMX
8087   BFD_RELOC_CKCORE_TLS_TPOFF32
8088 ENUMX
8089   BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4
8090 ENUMX
8091   BFD_RELOC_CKCORE_NOJSRI
8092 ENUMX
8093   BFD_RELOC_CKCORE_CALLGRAPH
8094 ENUMX
8095   BFD_RELOC_CKCORE_IRELATIVE
8096 ENUMX
8097   BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4
8098 ENUMX
8099   BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4
8100 ENUMDOC
8101   C-SKY relocations.
8102 
8103 ENUM
8104   BFD_RELOC_S12Z_OPR
8105 ENUMDOC
8106   S12Z relocations.
8107 
8108 ENDSENUM
8109   BFD_RELOC_UNUSED
8110 CODE_FRAGMENT
8111 .
8112 .typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
8113 */
8114 
8115 /*
8116 FUNCTION
8117 	bfd_reloc_type_lookup
8118 	bfd_reloc_name_lookup
8119 
8120 SYNOPSIS
8121 	reloc_howto_type *bfd_reloc_type_lookup
8122 	  (bfd *abfd, bfd_reloc_code_real_type code);
8123 	reloc_howto_type *bfd_reloc_name_lookup
8124 	  (bfd *abfd, const char *reloc_name);
8125 
8126 DESCRIPTION
8127 	Return a pointer to a howto structure which, when
8128 	invoked, will perform the relocation @var{code} on data from the
8129 	architecture noted.
8130 
8131 */
8132 
8133 reloc_howto_type *
8134 bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
8135 {
8136   return BFD_SEND (abfd, reloc_type_lookup, (abfd, code));
8137 }
8138 
8139 reloc_howto_type *
8140 bfd_reloc_name_lookup (bfd *abfd, const char *reloc_name)
8141 {
8142   return BFD_SEND (abfd, reloc_name_lookup, (abfd, reloc_name));
8143 }
8144 
8145 static reloc_howto_type bfd_howto_32 =
8146 HOWTO (0, 00, 2, 32, FALSE, 0, complain_overflow_dont, 0, "VRT32", FALSE, 0xffffffff, 0xffffffff, TRUE);
8147 
8148 /*
8149 INTERNAL_FUNCTION
8150 	bfd_default_reloc_type_lookup
8151 
8152 SYNOPSIS
8153 	reloc_howto_type *bfd_default_reloc_type_lookup
8154 	  (bfd *abfd, bfd_reloc_code_real_type  code);
8155 
8156 DESCRIPTION
8157 	Provides a default relocation lookup routine for any architecture.
8158 
8159 */
8160 
8161 reloc_howto_type *
8162 bfd_default_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
8163 {
8164   /* Very limited support is provided for relocs in generic targets
8165      such as elf32-little.  FIXME: Should we always return NULL?  */
8166   if (code == BFD_RELOC_CTOR
8167       && bfd_arch_bits_per_address (abfd) == 32)
8168     return &bfd_howto_32;
8169   return NULL;
8170 }
8171 
8172 /*
8173 FUNCTION
8174 	bfd_get_reloc_code_name
8175 
8176 SYNOPSIS
8177 	const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
8178 
8179 DESCRIPTION
8180 	Provides a printable name for the supplied relocation code.
8181 	Useful mainly for printing error messages.
8182 */
8183 
8184 const char *
8185 bfd_get_reloc_code_name (bfd_reloc_code_real_type code)
8186 {
8187   if (code > BFD_RELOC_UNUSED)
8188     return 0;
8189   return bfd_reloc_code_real_names[code];
8190 }
8191 
8192 /*
8193 INTERNAL_FUNCTION
8194 	bfd_generic_relax_section
8195 
8196 SYNOPSIS
8197 	bfd_boolean bfd_generic_relax_section
8198 	  (bfd *abfd,
8199 	   asection *section,
8200 	   struct bfd_link_info *,
8201 	   bfd_boolean *);
8202 
8203 DESCRIPTION
8204 	Provides default handling for relaxing for back ends which
8205 	don't do relaxing.
8206 */
8207 
8208 bfd_boolean
8209 bfd_generic_relax_section (bfd *abfd ATTRIBUTE_UNUSED,
8210 			   asection *section ATTRIBUTE_UNUSED,
8211 			   struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
8212 			   bfd_boolean *again)
8213 {
8214   if (bfd_link_relocatable (link_info))
8215     (*link_info->callbacks->einfo)
8216       (_("%P%F: --relax and -r may not be used together\n"));
8217 
8218   *again = FALSE;
8219   return TRUE;
8220 }
8221 
8222 /*
8223 INTERNAL_FUNCTION
8224 	bfd_generic_gc_sections
8225 
8226 SYNOPSIS
8227 	bfd_boolean bfd_generic_gc_sections
8228 	  (bfd *, struct bfd_link_info *);
8229 
8230 DESCRIPTION
8231 	Provides default handling for relaxing for back ends which
8232 	don't do section gc -- i.e., does nothing.
8233 */
8234 
8235 bfd_boolean
8236 bfd_generic_gc_sections (bfd *abfd ATTRIBUTE_UNUSED,
8237 			 struct bfd_link_info *info ATTRIBUTE_UNUSED)
8238 {
8239   return TRUE;
8240 }
8241 
8242 /*
8243 INTERNAL_FUNCTION
8244 	bfd_generic_lookup_section_flags
8245 
8246 SYNOPSIS
8247 	bfd_boolean bfd_generic_lookup_section_flags
8248 	  (struct bfd_link_info *, struct flag_info *, asection *);
8249 
8250 DESCRIPTION
8251 	Provides default handling for section flags lookup
8252 	-- i.e., does nothing.
8253 	Returns FALSE if the section should be omitted, otherwise TRUE.
8254 */
8255 
8256 bfd_boolean
8257 bfd_generic_lookup_section_flags (struct bfd_link_info *info ATTRIBUTE_UNUSED,
8258 				  struct flag_info *flaginfo,
8259 				  asection *section ATTRIBUTE_UNUSED)
8260 {
8261   if (flaginfo != NULL)
8262     {
8263       _bfd_error_handler (_("INPUT_SECTION_FLAGS are not supported"));
8264       return FALSE;
8265     }
8266   return TRUE;
8267 }
8268 
8269 /*
8270 INTERNAL_FUNCTION
8271 	bfd_generic_merge_sections
8272 
8273 SYNOPSIS
8274 	bfd_boolean bfd_generic_merge_sections
8275 	  (bfd *, struct bfd_link_info *);
8276 
8277 DESCRIPTION
8278 	Provides default handling for SEC_MERGE section merging for back ends
8279 	which don't have SEC_MERGE support -- i.e., does nothing.
8280 */
8281 
8282 bfd_boolean
8283 bfd_generic_merge_sections (bfd *abfd ATTRIBUTE_UNUSED,
8284 			    struct bfd_link_info *link_info ATTRIBUTE_UNUSED)
8285 {
8286   return TRUE;
8287 }
8288 
8289 /*
8290 INTERNAL_FUNCTION
8291 	bfd_generic_get_relocated_section_contents
8292 
8293 SYNOPSIS
8294 	bfd_byte *bfd_generic_get_relocated_section_contents
8295 	  (bfd *abfd,
8296 	   struct bfd_link_info *link_info,
8297 	   struct bfd_link_order *link_order,
8298 	   bfd_byte *data,
8299 	   bfd_boolean relocatable,
8300 	   asymbol **symbols);
8301 
8302 DESCRIPTION
8303 	Provides default handling of relocation effort for back ends
8304 	which can't be bothered to do it efficiently.
8305 
8306 */
8307 
8308 bfd_byte *
8309 bfd_generic_get_relocated_section_contents (bfd *abfd,
8310 					    struct bfd_link_info *link_info,
8311 					    struct bfd_link_order *link_order,
8312 					    bfd_byte *data,
8313 					    bfd_boolean relocatable,
8314 					    asymbol **symbols)
8315 {
8316   bfd *input_bfd = link_order->u.indirect.section->owner;
8317   asection *input_section = link_order->u.indirect.section;
8318   long reloc_size;
8319   arelent **reloc_vector;
8320   long reloc_count;
8321 
8322   reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section);
8323   if (reloc_size < 0)
8324     return NULL;
8325 
8326   /* Read in the section.  */
8327   if (!bfd_get_full_section_contents (input_bfd, input_section, &data))
8328     return NULL;
8329 
8330   if (data == NULL)
8331     return NULL;
8332 
8333   if (reloc_size == 0)
8334     return data;
8335 
8336   reloc_vector = (arelent **) bfd_malloc (reloc_size);
8337   if (reloc_vector == NULL)
8338     return NULL;
8339 
8340   reloc_count = bfd_canonicalize_reloc (input_bfd,
8341 					input_section,
8342 					reloc_vector,
8343 					symbols);
8344   if (reloc_count < 0)
8345     goto error_return;
8346 
8347   if (reloc_count > 0)
8348     {
8349       arelent **parent;
8350 
8351       for (parent = reloc_vector; *parent != NULL; parent++)
8352 	{
8353 	  char *error_message = NULL;
8354 	  asymbol *symbol;
8355 	  bfd_reloc_status_type r;
8356 
8357 	  symbol = *(*parent)->sym_ptr_ptr;
8358 	  /* PR ld/19628: A specially crafted input file
8359 	     can result in a NULL symbol pointer here.  */
8360 	  if (symbol == NULL)
8361 	    {
8362 	      link_info->callbacks->einfo
8363 		/* xgettext:c-format */
8364 		(_("%X%P: %pB(%pA): error: relocation for offset %V has no value\n"),
8365 		 abfd, input_section, (* parent)->address);
8366 	      goto error_return;
8367 	    }
8368 
8369 	  /* Zap reloc field when the symbol is from a discarded
8370 	     section, ignoring any addend.  Do the same when called
8371 	     from bfd_simple_get_relocated_section_contents for
8372 	     undefined symbols in debug sections.  This is to keep
8373 	     debug info reasonably sane, in particular so that
8374 	     DW_FORM_ref_addr to another file's .debug_info isn't
8375 	     confused with an offset into the current file's
8376 	     .debug_info.  */
8377 	  if ((symbol->section != NULL && discarded_section (symbol->section))
8378 	      || (symbol->section == bfd_und_section_ptr
8379 		  && (input_section->flags & SEC_DEBUGGING) != 0
8380 		  && link_info->input_bfds == link_info->output_bfd))
8381 	    {
8382 	      bfd_vma off;
8383 	      static reloc_howto_type none_howto
8384 		= HOWTO (0, 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL,
8385 			 "unused", FALSE, 0, 0, FALSE);
8386 
8387 	      off = ((*parent)->address
8388 		     * bfd_octets_per_byte (input_bfd, input_section));
8389 	      _bfd_clear_contents ((*parent)->howto, input_bfd,
8390 				   input_section, data, off);
8391 	      (*parent)->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
8392 	      (*parent)->addend = 0;
8393 	      (*parent)->howto = &none_howto;
8394 	      r = bfd_reloc_ok;
8395 	    }
8396 	  else
8397 	    r = bfd_perform_relocation (input_bfd,
8398 					*parent,
8399 					data,
8400 					input_section,
8401 					relocatable ? abfd : NULL,
8402 					&error_message);
8403 
8404 	  if (relocatable)
8405 	    {
8406 	      asection *os = input_section->output_section;
8407 
8408 	      /* A partial link, so keep the relocs.  */
8409 	      os->orelocation[os->reloc_count] = *parent;
8410 	      os->reloc_count++;
8411 	    }
8412 
8413 	  if (r != bfd_reloc_ok)
8414 	    {
8415 	      switch (r)
8416 		{
8417 		case bfd_reloc_undefined:
8418 		  (*link_info->callbacks->undefined_symbol)
8419 		    (link_info, bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
8420 		     input_bfd, input_section, (*parent)->address, TRUE);
8421 		  break;
8422 		case bfd_reloc_dangerous:
8423 		  BFD_ASSERT (error_message != NULL);
8424 		  (*link_info->callbacks->reloc_dangerous)
8425 		    (link_info, error_message,
8426 		     input_bfd, input_section, (*parent)->address);
8427 		  break;
8428 		case bfd_reloc_overflow:
8429 		  (*link_info->callbacks->reloc_overflow)
8430 		    (link_info, NULL,
8431 		     bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
8432 		     (*parent)->howto->name, (*parent)->addend,
8433 		     input_bfd, input_section, (*parent)->address);
8434 		  break;
8435 		case bfd_reloc_outofrange:
8436 		  /* PR ld/13730:
8437 		     This error can result when processing some partially
8438 		     complete binaries.  Do not abort, but issue an error
8439 		     message instead.  */
8440 		  link_info->callbacks->einfo
8441 		    /* xgettext:c-format */
8442 		    (_("%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"),
8443 		     abfd, input_section, * parent);
8444 		  goto error_return;
8445 
8446 		case bfd_reloc_notsupported:
8447 		  /* PR ld/17512
8448 		     This error can result when processing a corrupt binary.
8449 		     Do not abort.  Issue an error message instead.  */
8450 		  link_info->callbacks->einfo
8451 		    /* xgettext:c-format */
8452 		    (_("%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"),
8453 		     abfd, input_section, * parent);
8454 		  goto error_return;
8455 
8456 		default:
8457 		  /* PR 17512; file: 90c2a92e.
8458 		     Report unexpected results, without aborting.  */
8459 		  link_info->callbacks->einfo
8460 		    /* xgettext:c-format */
8461 		    (_("%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"),
8462 		     abfd, input_section, * parent, r);
8463 		  break;
8464 		}
8465 
8466 	    }
8467 	}
8468     }
8469 
8470   free (reloc_vector);
8471   return data;
8472 
8473 error_return:
8474   free (reloc_vector);
8475   return NULL;
8476 }
8477 
8478 /*
8479 INTERNAL_FUNCTION
8480 	_bfd_generic_set_reloc
8481 
8482 SYNOPSIS
8483 	void _bfd_generic_set_reloc
8484 	  (bfd *abfd,
8485 	   sec_ptr section,
8486 	   arelent **relptr,
8487 	   unsigned int count);
8488 
8489 DESCRIPTION
8490 	Installs a new set of internal relocations in SECTION.
8491 */
8492 
8493 void
8494 _bfd_generic_set_reloc (bfd *abfd ATTRIBUTE_UNUSED,
8495 			sec_ptr section,
8496 			arelent **relptr,
8497 			unsigned int count)
8498 {
8499   section->orelocation = relptr;
8500   section->reloc_count = count;
8501 }
8502 
8503 /*
8504 INTERNAL_FUNCTION
8505 	_bfd_unrecognized_reloc
8506 
8507 SYNOPSIS
8508 	bfd_boolean _bfd_unrecognized_reloc
8509 	  (bfd * abfd,
8510 	   sec_ptr section,
8511 	   unsigned int r_type);
8512 
8513 DESCRIPTION
8514 	Reports an unrecognized reloc.
8515 	Written as a function in order to reduce code duplication.
8516 	Returns FALSE so that it can be called from a return statement.
8517 */
8518 
8519 bfd_boolean
8520 _bfd_unrecognized_reloc (bfd * abfd, sec_ptr section, unsigned int r_type)
8521 {
8522    /* xgettext:c-format */
8523   _bfd_error_handler (_("%pB: unrecognized relocation type %#x in section `%pA'"),
8524 		      abfd, r_type, section);
8525 
8526   /* PR 21803: Suggest the most likely cause of this error.  */
8527   _bfd_error_handler (_("is this version of the linker - %s - out of date ?"),
8528 		      BFD_VERSION_STRING);
8529 
8530   bfd_set_error (bfd_error_bad_value);
8531   return FALSE;
8532 }
8533 
8534 reloc_howto_type *
8535 _bfd_norelocs_bfd_reloc_type_lookup
8536     (bfd *abfd,
8537      bfd_reloc_code_real_type code ATTRIBUTE_UNUSED)
8538 {
8539   return (reloc_howto_type *) _bfd_ptr_bfd_null_error (abfd);
8540 }
8541 
8542 reloc_howto_type *
8543 _bfd_norelocs_bfd_reloc_name_lookup (bfd *abfd,
8544 				     const char *reloc_name ATTRIBUTE_UNUSED)
8545 {
8546   return (reloc_howto_type *) _bfd_ptr_bfd_null_error (abfd);
8547 }
8548 
8549 long
8550 _bfd_nodynamic_canonicalize_dynamic_reloc (bfd *abfd,
8551 					   arelent **relp ATTRIBUTE_UNUSED,
8552 					   asymbol **symp ATTRIBUTE_UNUSED)
8553 {
8554   return _bfd_long_bfd_n1_error (abfd);
8555 }
8556