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