xref: /openbsd/gnu/usr.bin/binutils-2.17/bfd/libbfd.h (revision 9b7c3dbb)
1 /* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically
2    generated from "libbfd-in.h", "init.c", "libbfd.c", "bfdio.c",
3    "bfdwin.c", "cache.c", "reloc.c", "archures.c" and "elf.c".
4    Run "make headers" in your build bfd/ to regenerate.  */
5 
6 /* libbfd.h -- Declarations used by bfd library *implementation*.
7    (This include file is not for users of the library.)
8 
9    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
10    1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
11    Free Software Foundation, Inc.
12 
13    Written by Cygnus Support.
14 
15 This file is part of BFD, the Binary File Descriptor library.
16 
17 This program is free software; you can redistribute it and/or modify
18 it under the terms of the GNU General Public License as published by
19 the Free Software Foundation; either version 2 of the License, or
20 (at your option) any later version.
21 
22 This program is distributed in the hope that it will be useful,
23 but WITHOUT ANY WARRANTY; without even the implied warranty of
24 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25 GNU General Public License for more details.
26 
27 You should have received a copy of the GNU General Public License
28 along with this program; if not, write to the Free Software
29 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
30 
31 #include "hashtab.h"
32 
33 /* Align an address upward to a boundary, expressed as a number of bytes.
34    E.g. align to an 8-byte boundary with argument of 8.  Take care never
35    to wrap around if the address is within boundary-1 of the end of the
36    address space.  */
37 #define BFD_ALIGN(this, boundary)					  \
38   ((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this))		  \
39    ? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
40    : ~ (bfd_vma) 0)
41 
42 /* If you want to read and write large blocks, you might want to do it
43    in quanta of this amount */
44 #define DEFAULT_BUFFERSIZE 8192
45 
46 /* Set a tdata field.  Can't use the other macros for this, since they
47    do casts, and casting to the left of assignment isn't portable.  */
48 #define set_tdata(bfd, v) ((bfd)->tdata.any = (v))
49 
50 /* If BFD_IN_MEMORY is set for a BFD, then the iostream fields points
51    to an instance of this structure.  */
52 
53 struct bfd_in_memory
54 {
55   /* Size of buffer.  */
56   bfd_size_type size;
57   /* Buffer holding contents of BFD.  */
58   bfd_byte *buffer;
59 };
60 
61 struct section_hash_entry
62 {
63   struct bfd_hash_entry root;
64   asection section;
65 };
66 
67 /* tdata for an archive.  For an input archive, cache
68    needs to be free()'d.  For an output archive, symdefs do.  */
69 
70 struct artdata {
71   file_ptr first_file_filepos;
72   /* Speed up searching the armap */
73   htab_t cache;
74   bfd *archive_head;		/* Only interesting in output routines */
75   carsym *symdefs;		/* the symdef entries */
76   symindex symdef_count;	/* how many there are */
77   char *extended_names;		/* clever intel extension */
78   bfd_size_type extended_names_size; /* Size of extended names */
79   time_t  armap_timestamp;	/* Timestamp value written into armap.
80 				   This is used for BSD archives to check
81 				   that the timestamp is recent enough
82 				   for the BSD linker to not complain,
83 				   just before we finish writing an
84 				   archive.  */
85   file_ptr armap_datepos;	/* Position within archive to seek to
86 				   rewrite the date field.  */
87   void *tdata;			/* Backend specific information.  */
88 };
89 
90 #define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
91 
92 /* Goes in bfd's arelt_data slot */
93 struct areltdata {
94   char * arch_header;		/* it's actually a string */
95   unsigned int parsed_size;	/* octets of filesize not including ar_hdr */
96   char *filename;		/* null-terminated */
97 };
98 
99 #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
100 
101 extern void *bfd_malloc
102   (bfd_size_type);
103 extern void *bfd_realloc
104   (void *, bfd_size_type);
105 extern void *bfd_zmalloc
106   (bfd_size_type);
107 extern void *bfd_malloc2
108   (bfd_size_type, bfd_size_type);
109 extern void *bfd_realloc2
110   (void *, bfd_size_type, bfd_size_type);
111 extern void *bfd_zmalloc2
112   (bfd_size_type, bfd_size_type);
113 
114 extern void _bfd_default_error_handler (const char *s, ...);
115 extern bfd_error_handler_type _bfd_error_handler;
116 
117 /* These routines allocate and free things on the BFD's objalloc.  */
118 
119 extern void *bfd_alloc
120   (bfd *, bfd_size_type);
121 extern void *bfd_zalloc
122   (bfd *, bfd_size_type);
123 extern void *bfd_alloc2
124   (bfd *, bfd_size_type, bfd_size_type);
125 extern void *bfd_zalloc2
126   (bfd *, bfd_size_type, bfd_size_type);
127 extern void bfd_release
128   (bfd *, void *);
129 
130 bfd * _bfd_create_empty_archive_element_shell
131   (bfd *obfd);
132 bfd * _bfd_look_for_bfd_in_cache
133   (bfd *, file_ptr);
134 bfd_boolean _bfd_add_bfd_to_archive_cache
135   (bfd *, file_ptr, bfd *);
136 bfd_boolean _bfd_generic_mkarchive
137   (bfd *abfd);
138 const bfd_target *bfd_generic_archive_p
139   (bfd *abfd);
140 bfd_boolean bfd_slurp_armap
141   (bfd *abfd);
142 bfd_boolean bfd_slurp_bsd_armap_f2
143   (bfd *abfd);
144 #define bfd_slurp_bsd_armap bfd_slurp_armap
145 #define bfd_slurp_coff_armap bfd_slurp_armap
146 bfd_boolean _bfd_slurp_extended_name_table
147   (bfd *abfd);
148 extern bfd_boolean _bfd_construct_extended_name_table
149   (bfd *, bfd_boolean, char **, bfd_size_type *);
150 bfd_boolean _bfd_write_archive_contents
151   (bfd *abfd);
152 bfd_boolean _bfd_compute_and_write_armap
153   (bfd *, unsigned int elength);
154 bfd *_bfd_get_elt_at_filepos
155   (bfd *archive, file_ptr filepos);
156 extern bfd *_bfd_generic_get_elt_at_index
157   (bfd *, symindex);
158 bfd * _bfd_new_bfd
159   (void);
160 void _bfd_delete_bfd
161   (bfd *);
162 
163 bfd_boolean bfd_false
164   (bfd *ignore);
165 bfd_boolean bfd_true
166   (bfd *ignore);
167 void *bfd_nullvoidptr
168   (bfd *ignore);
169 int bfd_0
170   (bfd *ignore);
171 unsigned int bfd_0u
172   (bfd *ignore);
173 long bfd_0l
174   (bfd *ignore);
175 long _bfd_n1
176   (bfd *ignore);
177 void bfd_void
178   (bfd *ignore);
179 
180 bfd *_bfd_new_bfd_contained_in
181   (bfd *);
182 const bfd_target *_bfd_dummy_target
183   (bfd *abfd);
184 
185 void bfd_dont_truncate_arname
186   (bfd *abfd, const char *filename, char *hdr);
187 void bfd_bsd_truncate_arname
188   (bfd *abfd, const char *filename, char *hdr);
189 void bfd_gnu_truncate_arname
190   (bfd *abfd, const char *filename, char *hdr);
191 
192 bfd_boolean bsd_write_armap
193   (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
194    int stridx);
195 
196 bfd_boolean coff_write_armap
197   (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count,
198    int stridx);
199 
200 extern void *_bfd_generic_read_ar_hdr
201   (bfd *);
202 extern void _bfd_ar_spacepad
203   (char *, size_t, const char *, long);
204 extern void _bfd_ar_spacepadll
205   (char *, size_t, const char *, long long);
206 
207 extern void *_bfd_generic_read_ar_hdr_mag
208   (bfd *, const char *);
209 
210 bfd * bfd_generic_openr_next_archived_file
211   (bfd *archive, bfd *last_file);
212 
213 int bfd_generic_stat_arch_elt
214   (bfd *, struct stat *);
215 
216 #define _bfd_read_ar_hdr(abfd) \
217   BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd))
218 
219 /* Generic routines to use for BFD_JUMP_TABLE_GENERIC.  Use
220    BFD_JUMP_TABLE_GENERIC (_bfd_generic).  */
221 
222 #define _bfd_generic_close_and_cleanup bfd_true
223 #define _bfd_generic_bfd_free_cached_info bfd_true
224 #define _bfd_generic_new_section_hook \
225   ((bfd_boolean (*) (bfd *, asection *)) bfd_true)
226 extern bfd_boolean _bfd_generic_get_section_contents
227   (bfd *, asection *, void *, file_ptr, bfd_size_type);
228 extern bfd_boolean _bfd_generic_get_section_contents_in_window
229   (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type);
230 
231 /* Generic routines to use for BFD_JUMP_TABLE_COPY.  Use
232    BFD_JUMP_TABLE_COPY (_bfd_generic).  */
233 
234 #define _bfd_generic_bfd_copy_private_bfd_data \
235   ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
236 #define _bfd_generic_bfd_merge_private_bfd_data \
237   ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
238 #define _bfd_generic_bfd_set_private_flags \
239   ((bfd_boolean (*) (bfd *, flagword)) bfd_true)
240 #define _bfd_generic_bfd_copy_private_section_data \
241   ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true)
242 #define _bfd_generic_bfd_copy_private_symbol_data \
243   ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true)
244 #define _bfd_generic_bfd_copy_private_header_data \
245   ((bfd_boolean (*) (bfd *, bfd *)) bfd_true)
246 #define _bfd_generic_bfd_print_private_bfd_data \
247   ((bfd_boolean (*) (bfd *, void *)) bfd_true)
248 
249 extern bfd_boolean _bfd_generic_init_private_section_data
250   (bfd *, asection *, bfd *, asection *, struct bfd_link_info *);
251 
252 /* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file
253    support.  Use BFD_JUMP_TABLE_CORE (_bfd_nocore).  */
254 
255 extern char *_bfd_nocore_core_file_failing_command
256   (bfd *);
257 extern int _bfd_nocore_core_file_failing_signal
258   (bfd *);
259 extern bfd_boolean _bfd_nocore_core_file_matches_executable_p
260   (bfd *, bfd *);
261 
262 /* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive
263    file support.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive).  */
264 
265 #define _bfd_noarchive_slurp_armap bfd_false
266 #define _bfd_noarchive_slurp_extended_name_table bfd_false
267 #define _bfd_noarchive_construct_extended_name_table \
268   ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) \
269    bfd_false)
270 #define _bfd_noarchive_truncate_arname \
271   ((void (*) (bfd *, const char *, char *)) bfd_void)
272 #define _bfd_noarchive_write_armap \
273   ((bfd_boolean (*) (bfd *, unsigned int, struct orl *, unsigned int, int)) \
274    bfd_false)
275 #define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr
276 #define _bfd_noarchive_openr_next_archived_file \
277   ((bfd *(*) (bfd *, bfd *)) bfd_nullvoidptr)
278 #define _bfd_noarchive_get_elt_at_index \
279   ((bfd *(*) (bfd *, symindex)) bfd_nullvoidptr)
280 #define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt
281 #define _bfd_noarchive_update_armap_timestamp bfd_false
282 
283 /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get BSD style
284    archives.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd).  */
285 
286 #define _bfd_archive_bsd_slurp_armap bfd_slurp_bsd_armap
287 #define _bfd_archive_bsd_slurp_extended_name_table \
288   _bfd_slurp_extended_name_table
289 extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table
290   (bfd *, char **, bfd_size_type *, const char **);
291 #define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname
292 #define _bfd_archive_bsd_write_armap bsd_write_armap
293 #define _bfd_archive_bsd_read_ar_hdr _bfd_generic_read_ar_hdr
294 #define _bfd_archive_bsd_openr_next_archived_file \
295   bfd_generic_openr_next_archived_file
296 #define _bfd_archive_bsd_get_elt_at_index _bfd_generic_get_elt_at_index
297 #define _bfd_archive_bsd_generic_stat_arch_elt \
298   bfd_generic_stat_arch_elt
299 extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp
300   (bfd *);
301 
302 /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style
303    archives.  Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff).  */
304 
305 #define _bfd_archive_coff_slurp_armap bfd_slurp_coff_armap
306 #define _bfd_archive_coff_slurp_extended_name_table \
307   _bfd_slurp_extended_name_table
308 extern bfd_boolean _bfd_archive_coff_construct_extended_name_table
309   (bfd *, char **, bfd_size_type *, const char **);
310 #define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname
311 #define _bfd_archive_coff_write_armap coff_write_armap
312 #define _bfd_archive_coff_read_ar_hdr _bfd_generic_read_ar_hdr
313 #define _bfd_archive_coff_openr_next_archived_file \
314   bfd_generic_openr_next_archived_file
315 #define _bfd_archive_coff_get_elt_at_index _bfd_generic_get_elt_at_index
316 #define _bfd_archive_coff_generic_stat_arch_elt \
317   bfd_generic_stat_arch_elt
318 #define _bfd_archive_coff_update_armap_timestamp bfd_true
319 
320 /* Routines to use for BFD_JUMP_TABLE_SYMBOLS where there is no symbol
321    support.  Use BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols).  */
322 
323 #define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1
324 #define _bfd_nosymbols_canonicalize_symtab \
325   ((long (*) (bfd *, asymbol **)) _bfd_n1)
326 #define _bfd_nosymbols_make_empty_symbol _bfd_generic_make_empty_symbol
327 #define _bfd_nosymbols_print_symbol \
328   ((void (*) (bfd *, void *, asymbol *, bfd_print_symbol_type)) bfd_void)
329 #define _bfd_nosymbols_get_symbol_info \
330   ((void (*) (bfd *, asymbol *, symbol_info *)) bfd_void)
331 #define _bfd_nosymbols_bfd_is_local_label_name \
332   ((bfd_boolean (*) (bfd *, const char *)) bfd_false)
333 #define _bfd_nosymbols_bfd_is_target_special_symbol \
334   ((bfd_boolean (*) (bfd *, asymbol *)) bfd_false)
335 #define _bfd_nosymbols_get_lineno \
336   ((alent *(*) (bfd *, asymbol *)) bfd_nullvoidptr)
337 #define _bfd_nosymbols_find_nearest_line \
338   ((bfd_boolean (*) (bfd *, asection *, asymbol **, bfd_vma, const char **, \
339 		     const char **, unsigned int *)) \
340    bfd_false)
341 #define _bfd_nosymbols_find_inliner_info \
342   ((bfd_boolean (*) (bfd *, const char **, const char **, unsigned int *)) \
343    bfd_false)
344 #define _bfd_nosymbols_bfd_make_debug_symbol \
345   ((asymbol *(*) (bfd *, void *, unsigned long)) bfd_nullvoidptr)
346 #define _bfd_nosymbols_read_minisymbols \
347   ((long (*) (bfd *, bfd_boolean, void **, unsigned int *)) _bfd_n1)
348 #define _bfd_nosymbols_minisymbol_to_symbol \
349   ((asymbol *(*) (bfd *, bfd_boolean, const void *, asymbol *)) \
350    bfd_nullvoidptr)
351 
352 /* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc
353    support.  Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs).  */
354 
355 #define _bfd_norelocs_get_reloc_upper_bound \
356   ((long (*) (bfd *, asection *)) _bfd_n1)
357 #define _bfd_norelocs_canonicalize_reloc \
358   ((long (*) (bfd *, asection *, arelent **, asymbol **)) _bfd_n1)
359 #define _bfd_norelocs_bfd_reloc_type_lookup \
360   ((reloc_howto_type *(*) (bfd *, bfd_reloc_code_real_type)) bfd_nullvoidptr)
361 
362 /* Routines to use for BFD_JUMP_TABLE_WRITE for targets which may not
363    be written.  Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite).  */
364 
365 #define _bfd_nowrite_set_arch_mach \
366   ((bfd_boolean (*) (bfd *, enum bfd_architecture, unsigned long)) \
367    bfd_false)
368 #define _bfd_nowrite_set_section_contents \
369   ((bfd_boolean (*) (bfd *, asection *, const void *, file_ptr, bfd_size_type)) \
370    bfd_false)
371 
372 /* Generic routines to use for BFD_JUMP_TABLE_WRITE.  Use
373    BFD_JUMP_TABLE_WRITE (_bfd_generic).  */
374 
375 #define _bfd_generic_set_arch_mach bfd_default_set_arch_mach
376 extern bfd_boolean _bfd_generic_set_section_contents
377   (bfd *, asection *, const void *, file_ptr, bfd_size_type);
378 
379 /* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not
380    support linking.  Use BFD_JUMP_TABLE_LINK (_bfd_nolink).  */
381 
382 #define _bfd_nolink_sizeof_headers ((int (*) (bfd *, bfd_boolean)) bfd_0)
383 #define _bfd_nolink_bfd_get_relocated_section_contents \
384   ((bfd_byte *(*) (bfd *, struct bfd_link_info *, struct bfd_link_order *, \
385 		   bfd_byte *, bfd_boolean, asymbol **)) \
386    bfd_nullvoidptr)
387 #define _bfd_nolink_bfd_relax_section \
388   ((bfd_boolean (*) \
389     (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)) \
390    bfd_false)
391 #define _bfd_nolink_bfd_gc_sections \
392   ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
393    bfd_false)
394 #define _bfd_nolink_bfd_merge_sections \
395   ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) \
396    bfd_false)
397 #define _bfd_nolink_bfd_is_group_section \
398   ((bfd_boolean (*) (bfd *, const struct bfd_section *)) \
399    bfd_false)
400 #define _bfd_nolink_bfd_discard_group \
401   ((bfd_boolean (*) (bfd *, struct bfd_section *)) \
402    bfd_false)
403 #define _bfd_nolink_bfd_link_hash_table_create \
404   ((struct bfd_link_hash_table *(*) (bfd *)) bfd_nullvoidptr)
405 #define _bfd_nolink_bfd_link_hash_table_free \
406   ((void (*) (struct bfd_link_hash_table *)) bfd_void)
407 #define _bfd_nolink_bfd_link_add_symbols \
408   ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
409 #define _bfd_nolink_bfd_link_just_syms \
410   ((void (*) (asection *, struct bfd_link_info *)) bfd_void)
411 #define _bfd_nolink_bfd_final_link \
412   ((bfd_boolean (*) (bfd *, struct bfd_link_info *)) bfd_false)
413 #define _bfd_nolink_bfd_link_split_section \
414   ((bfd_boolean (*) (bfd *, struct bfd_section *)) bfd_false)
415 #define _bfd_nolink_section_already_linked \
416   ((void (*) (bfd *, struct bfd_section *, struct bfd_link_info *)) bfd_void)
417 
418 /* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not
419    have dynamic symbols or relocs.  Use BFD_JUMP_TABLE_DYNAMIC
420    (_bfd_nodynamic).  */
421 
422 #define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1
423 #define _bfd_nodynamic_canonicalize_dynamic_symtab \
424   ((long (*) (bfd *, asymbol **)) _bfd_n1)
425 #define _bfd_nodynamic_get_synthetic_symtab \
426   ((long (*) (bfd *, long, asymbol **, long, asymbol **, asymbol **)) _bfd_n1)
427 #define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1
428 #define _bfd_nodynamic_canonicalize_dynamic_reloc \
429   ((long (*) (bfd *, arelent **, asymbol **)) _bfd_n1)
430 
431 /* Generic routine to determine of the given symbol is a local
432    label.  */
433 extern bfd_boolean bfd_generic_is_local_label_name
434   (bfd *, const char *);
435 
436 /* Generic minisymbol routines.  */
437 extern long _bfd_generic_read_minisymbols
438   (bfd *, bfd_boolean, void **, unsigned int *);
439 extern asymbol *_bfd_generic_minisymbol_to_symbol
440   (bfd *, bfd_boolean, const void *, asymbol *);
441 
442 /* Find the nearest line using .stab/.stabstr sections.  */
443 extern bfd_boolean _bfd_stab_section_find_nearest_line
444   (bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *,
445    const char **, const char **, unsigned int *, void **);
446 
447 /* Find the nearest line using DWARF 1 debugging information.  */
448 extern bfd_boolean _bfd_dwarf1_find_nearest_line
449   (bfd *, asection *, asymbol **, bfd_vma, const char **,
450    const char **, unsigned int *);
451 
452 /* Find the nearest line using DWARF 2 debugging information.  */
453 extern bfd_boolean _bfd_dwarf2_find_nearest_line
454   (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **,
455    unsigned int *, unsigned int, void **);
456 
457 /* Find the line using DWARF 2 debugging information.  */
458 extern bfd_boolean _bfd_dwarf2_find_line
459   (bfd *, asymbol **, asymbol *, const char **,
460    unsigned int *, unsigned int, void **);
461 
462 bfd_boolean _bfd_generic_find_line
463   (bfd *, asymbol **, asymbol *, const char **, unsigned int *);
464 
465 /* Find inliner info after calling bfd_find_nearest_line. */
466 extern bfd_boolean _bfd_dwarf2_find_inliner_info
467   (bfd *, const char **, const char **, unsigned int *, void **);
468 
469 /* Create a new section entry.  */
470 extern struct bfd_hash_entry *bfd_section_hash_newfunc
471   (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
472 
473 /* A routine to create entries for a bfd_link_hash_table.  */
474 extern struct bfd_hash_entry *_bfd_link_hash_newfunc
475   (struct bfd_hash_entry *entry, struct bfd_hash_table *table,
476    const char *string);
477 
478 /* Initialize a bfd_link_hash_table.  */
479 extern bfd_boolean _bfd_link_hash_table_init
480   (struct bfd_link_hash_table *, bfd *,
481    struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
482 			       struct bfd_hash_table *,
483 			       const char *),
484    unsigned int);
485 
486 /* Generic link hash table creation routine.  */
487 extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create
488   (bfd *);
489 
490 /* Generic link hash table destruction routine.  */
491 extern void _bfd_generic_link_hash_table_free
492   (struct bfd_link_hash_table *);
493 
494 /* Generic add symbol routine.  */
495 extern bfd_boolean _bfd_generic_link_add_symbols
496   (bfd *, struct bfd_link_info *);
497 
498 /* Generic add symbol routine.  This version is used by targets for
499    which the linker must collect constructors and destructors by name,
500    as the collect2 program does.  */
501 extern bfd_boolean _bfd_generic_link_add_symbols_collect
502   (bfd *, struct bfd_link_info *);
503 
504 /* Generic archive add symbol routine.  */
505 extern bfd_boolean _bfd_generic_link_add_archive_symbols
506   (bfd *, struct bfd_link_info *,
507    bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *));
508 
509 /* Forward declaration to avoid prototype errors.  */
510 typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
511 
512 /* Generic routine to add a single symbol.  */
513 extern bfd_boolean _bfd_generic_link_add_one_symbol
514   (struct bfd_link_info *, bfd *, const char *name, flagword,
515    asection *, bfd_vma, const char *, bfd_boolean copy,
516    bfd_boolean constructor, struct bfd_link_hash_entry **);
517 
518 /* Generic routine to mark section as supplying symbols only.  */
519 extern void _bfd_generic_link_just_syms
520   (asection *, struct bfd_link_info *);
521 
522 /* Generic link routine.  */
523 extern bfd_boolean _bfd_generic_final_link
524   (bfd *, struct bfd_link_info *);
525 
526 extern bfd_boolean _bfd_generic_link_split_section
527   (bfd *, struct bfd_section *);
528 
529 extern void _bfd_generic_section_already_linked
530   (bfd *, struct bfd_section *, struct bfd_link_info *);
531 
532 /* Generic reloc_link_order processing routine.  */
533 extern bfd_boolean _bfd_generic_reloc_link_order
534   (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
535 
536 /* Default link order processing routine.  */
537 extern bfd_boolean _bfd_default_link_order
538   (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *);
539 
540 /* Count the number of reloc entries in a link order list.  */
541 extern unsigned int _bfd_count_link_order_relocs
542   (struct bfd_link_order *);
543 
544 /* Final link relocation routine.  */
545 extern bfd_reloc_status_type _bfd_final_link_relocate
546   (reloc_howto_type *, bfd *, asection *, bfd_byte *,
547    bfd_vma, bfd_vma, bfd_vma);
548 
549 /* Relocate a particular location by a howto and a value.  */
550 extern bfd_reloc_status_type _bfd_relocate_contents
551   (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *);
552 
553 /* Link stabs in sections in the first pass.  */
554 
555 extern bfd_boolean _bfd_link_section_stabs
556   (bfd *, struct stab_info *, asection *, asection *, void **,
557    bfd_size_type *);
558 
559 /* Eliminate stabs for discarded functions and symbols.  */
560 extern bfd_boolean _bfd_discard_section_stabs
561   (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *);
562 
563 /* Write out the .stab section when linking stabs in sections.  */
564 
565 extern bfd_boolean _bfd_write_section_stabs
566   (bfd *, struct stab_info *, asection *, void **, bfd_byte *);
567 
568 /* Write out the .stabstr string table when linking stabs in sections.  */
569 
570 extern bfd_boolean _bfd_write_stab_strings
571   (bfd *, struct stab_info *);
572 
573 /* Find an offset within a .stab section when linking stabs in
574    sections.  */
575 
576 extern bfd_vma _bfd_stab_section_offset
577   (asection *, void *, bfd_vma);
578 
579 /* Register a SEC_MERGE section as a candidate for merging.  */
580 
581 extern bfd_boolean _bfd_add_merge_section
582   (bfd *, void **, asection *, void **);
583 
584 /* Attempt to merge SEC_MERGE sections.  */
585 
586 extern bfd_boolean _bfd_merge_sections
587   (bfd *, struct bfd_link_info *, void *, void (*) (bfd *, asection *));
588 
589 /* Write out a merged section.  */
590 
591 extern bfd_boolean _bfd_write_merged_section
592   (bfd *, asection *, void *);
593 
594 /* Find an offset within a modified SEC_MERGE section.  */
595 
596 extern bfd_vma _bfd_merged_section_offset
597   (bfd *, asection **, void *, bfd_vma);
598 
599 /* Create a string table.  */
600 extern struct bfd_strtab_hash *_bfd_stringtab_init
601   (void);
602 
603 /* Create an XCOFF .debug section style string table.  */
604 extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init
605   (void);
606 
607 /* Free a string table.  */
608 extern void _bfd_stringtab_free
609   (struct bfd_strtab_hash *);
610 
611 /* Get the size of a string table.  */
612 extern bfd_size_type _bfd_stringtab_size
613   (struct bfd_strtab_hash *);
614 
615 /* Add a string to a string table.  */
616 extern bfd_size_type _bfd_stringtab_add
617   (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy);
618 
619 /* Write out a string table.  */
620 extern bfd_boolean _bfd_stringtab_emit
621   (bfd *, struct bfd_strtab_hash *);
622 
623 /* Check that endianness of input and output file match.  */
624 extern bfd_boolean _bfd_generic_verify_endian_match
625   (bfd *, bfd *);
626 
627 /* Macros to tell if bfds are read or write enabled.
628 
629    Note that bfds open for read may be scribbled into if the fd passed
630    to bfd_fdopenr is actually open both for read and write
631    simultaneously.  However an output bfd will never be open for
632    read.  Therefore sometimes you want to check bfd_read_p or
633    !bfd_read_p, and only sometimes bfd_write_p.
634 */
635 
636 #define	bfd_read_p(abfd) \
637   ((abfd)->direction == read_direction || (abfd)->direction == both_direction)
638 #define	bfd_write_p(abfd) \
639   ((abfd)->direction == write_direction || (abfd)->direction == both_direction)
640 
641 void bfd_assert
642   (const char*,int);
643 
644 #define BFD_ASSERT(x) \
645   do { if (!(x)) bfd_assert(__FILE__,__LINE__); } while (0)
646 
647 #define BFD_FAIL() \
648   do { bfd_assert(__FILE__,__LINE__); } while (0)
649 
650 extern void _bfd_abort
651   (const char *, int, const char *) ATTRIBUTE_NORETURN;
652 
653 /* if gcc >= 2.6, we can give a function name, too */
654 #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)
655 #define __PRETTY_FUNCTION__  ((char *) NULL)
656 #endif
657 
658 #undef abort
659 #define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
660 
661 /* Manipulate a system FILE but using BFD's "file_ptr", rather than
662    the system "off_t" or "off64_t", as the offset.  */
663 extern file_ptr real_ftell (FILE *file);
664 extern int real_fseek (FILE *file, file_ptr offset, int whence);
665 extern FILE *real_fopen (const char *filename, const char *modes);
666 
667 /* List of supported target vectors, and the default vector (if
668    bfd_default_vector[0] is NULL, there is no default).  */
669 extern const bfd_target * const *bfd_target_vector;
670 extern const bfd_target *bfd_default_vector[];
671 
672 /* List of associated target vectors.  */
673 extern const bfd_target * const *bfd_associated_vector;
674 
675 /* Functions shared by the ECOFF and MIPS ELF backends, which have no
676    other common header files.  */
677 
678 #if defined(__STDC__) || defined(ALMOST_STDC)
679 struct ecoff_find_line;
680 #endif
681 
682 extern bfd_boolean _bfd_ecoff_locate_line
683   (bfd *, asection *, bfd_vma, struct ecoff_debug_info * const,
684    const struct ecoff_debug_swap * const, struct ecoff_find_line *,
685    const char **, const char **, unsigned int *);
686 extern bfd_boolean _bfd_ecoff_get_accumulated_pdr
687   (void *, bfd_byte *);
688 extern bfd_boolean _bfd_ecoff_get_accumulated_sym
689   (void *, bfd_byte *);
690 extern bfd_boolean _bfd_ecoff_get_accumulated_ss
691   (void *, bfd_byte *);
692 
693 extern bfd_vma _bfd_get_gp_value
694   (bfd *);
695 extern void _bfd_set_gp_value
696   (bfd *, bfd_vma);
697 
698 /* Function shared by the COFF and ELF SH backends, which have no
699    other common header files.  */
700 
701 #ifndef _bfd_sh_align_load_span
702 extern bfd_boolean _bfd_sh_align_load_span
703   (bfd *, asection *, bfd_byte *,
704    bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma),
705    void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *);
706 #endif
707 
708 /* This is the shape of the elements inside the already_linked hash
709    table. It maps a name onto a list of already_linked elements with
710    the same name.  */
711 
712 struct bfd_section_already_linked_hash_entry
713 {
714   struct bfd_hash_entry root;
715   struct bfd_section_already_linked *entry;
716 };
717 
718 struct bfd_section_already_linked
719 {
720   struct bfd_section_already_linked *next;
721   asection *sec;
722 };
723 
724 extern struct bfd_section_already_linked_hash_entry *
725   bfd_section_already_linked_table_lookup (const char *);
726 extern void bfd_section_already_linked_table_insert
727   (struct bfd_section_already_linked_hash_entry *, asection *);
728 extern void bfd_section_already_linked_table_traverse
729   (bfd_boolean (*) (struct bfd_section_already_linked_hash_entry *,
730 		    void *), void *);
731 
732 extern bfd_vma read_unsigned_leb128 (bfd *, bfd_byte *, unsigned int *);
733 extern bfd_signed_vma read_signed_leb128 (bfd *, bfd_byte *, unsigned int *);
734 
735 /* Extracted from init.c.  */
736 /* Extracted from libbfd.c.  */
737 bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
738 
739 unsigned int bfd_log2 (bfd_vma x);
740 
741 /* Extracted from bfdio.c.  */
742 struct bfd_iovec
743 {
744   /* To avoid problems with macros, a "b" rather than "f"
745      prefix is prepended to each method name.  */
746   /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching
747      bytes starting at PTR.  Return the number of bytes actually
748      transfered (a read past end-of-file returns less than NBYTES),
749      or -1 (setting <<bfd_error>>) if an error occurs.  */
750   file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
751   file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
752                       file_ptr nbytes);
753   /* Return the current IOSTREAM file offset, or -1 (setting <<bfd_error>>
754      if an error occurs.  */
755   file_ptr (*btell) (struct bfd *abfd);
756   /* For the following, on successful completion a value of 0 is returned.
757      Otherwise, a value of -1 is returned (and  <<bfd_error>> is set).  */
758   int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
759   int (*bclose) (struct bfd *abfd);
760   int (*bflush) (struct bfd *abfd);
761   int (*bstat) (struct bfd *abfd, struct stat *sb);
762 };
763 /* Extracted from bfdwin.c.  */
764 struct _bfd_window_internal {
765   struct _bfd_window_internal *next;
766   void *data;
767   bfd_size_type size;
768   int refcount : 31;           /* should be enough...  */
769   unsigned mapped : 1;         /* 1 = mmap, 0 = malloc */
770 };
771 /* Extracted from cache.c.  */
772 bfd_boolean bfd_cache_init (bfd *abfd);
773 
774 bfd_boolean bfd_cache_close (bfd *abfd);
775 
776 FILE* bfd_open_file (bfd *abfd);
777 
778 /* Extracted from reloc.c.  */
779 #ifdef _BFD_MAKE_TABLE_bfd_reloc_code_real
780 
781 static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
782 
783   "BFD_RELOC_64",
784   "BFD_RELOC_32",
785   "BFD_RELOC_26",
786   "BFD_RELOC_24",
787   "BFD_RELOC_16",
788   "BFD_RELOC_14",
789   "BFD_RELOC_8",
790   "BFD_RELOC_64_PCREL",
791   "BFD_RELOC_32_PCREL",
792   "BFD_RELOC_24_PCREL",
793   "BFD_RELOC_16_PCREL",
794   "BFD_RELOC_12_PCREL",
795   "BFD_RELOC_8_PCREL",
796   "BFD_RELOC_32_SECREL",
797   "BFD_RELOC_32_GOT_PCREL",
798   "BFD_RELOC_16_GOT_PCREL",
799   "BFD_RELOC_8_GOT_PCREL",
800   "BFD_RELOC_32_GOTOFF",
801   "BFD_RELOC_16_GOTOFF",
802   "BFD_RELOC_LO16_GOTOFF",
803   "BFD_RELOC_HI16_GOTOFF",
804   "BFD_RELOC_HI16_S_GOTOFF",
805   "BFD_RELOC_8_GOTOFF",
806   "BFD_RELOC_64_PLT_PCREL",
807   "BFD_RELOC_32_PLT_PCREL",
808   "BFD_RELOC_24_PLT_PCREL",
809   "BFD_RELOC_16_PLT_PCREL",
810   "BFD_RELOC_8_PLT_PCREL",
811   "BFD_RELOC_64_PLTOFF",
812   "BFD_RELOC_32_PLTOFF",
813   "BFD_RELOC_16_PLTOFF",
814   "BFD_RELOC_LO16_PLTOFF",
815   "BFD_RELOC_HI16_PLTOFF",
816   "BFD_RELOC_HI16_S_PLTOFF",
817   "BFD_RELOC_8_PLTOFF",
818   "BFD_RELOC_68K_GLOB_DAT",
819   "BFD_RELOC_68K_JMP_SLOT",
820   "BFD_RELOC_68K_RELATIVE",
821   "BFD_RELOC_32_BASEREL",
822   "BFD_RELOC_16_BASEREL",
823   "BFD_RELOC_LO16_BASEREL",
824   "BFD_RELOC_HI16_BASEREL",
825   "BFD_RELOC_HI16_S_BASEREL",
826   "BFD_RELOC_8_BASEREL",
827   "BFD_RELOC_RVA",
828   "BFD_RELOC_8_FFnn",
829   "BFD_RELOC_32_PCREL_S2",
830   "BFD_RELOC_16_PCREL_S2",
831   "BFD_RELOC_23_PCREL_S2",
832   "BFD_RELOC_18_PCREL_S2",
833   "BFD_RELOC_28_PCREL_S2",
834   "BFD_RELOC_HI22",
835   "BFD_RELOC_LO10",
836   "BFD_RELOC_GPREL16",
837   "BFD_RELOC_GPREL32",
838   "BFD_RELOC_I960_CALLJ",
839   "BFD_RELOC_NONE",
840   "BFD_RELOC_SPARC_WDISP22",
841   "BFD_RELOC_SPARC22",
842   "BFD_RELOC_SPARC13",
843   "BFD_RELOC_SPARC_GOT10",
844   "BFD_RELOC_SPARC_GOT13",
845   "BFD_RELOC_SPARC_GOT22",
846   "BFD_RELOC_SPARC_PC10",
847   "BFD_RELOC_SPARC_PC22",
848   "BFD_RELOC_SPARC_WPLT30",
849   "BFD_RELOC_SPARC_COPY",
850   "BFD_RELOC_SPARC_GLOB_DAT",
851   "BFD_RELOC_SPARC_JMP_SLOT",
852   "BFD_RELOC_SPARC_RELATIVE",
853   "BFD_RELOC_SPARC_UA16",
854   "BFD_RELOC_SPARC_UA32",
855   "BFD_RELOC_SPARC_UA64",
856   "BFD_RELOC_SPARC_BASE13",
857   "BFD_RELOC_SPARC_BASE22",
858   "BFD_RELOC_SPARC_10",
859   "BFD_RELOC_SPARC_11",
860   "BFD_RELOC_SPARC_OLO10",
861   "BFD_RELOC_SPARC_HH22",
862   "BFD_RELOC_SPARC_HM10",
863   "BFD_RELOC_SPARC_LM22",
864   "BFD_RELOC_SPARC_PC_HH22",
865   "BFD_RELOC_SPARC_PC_HM10",
866   "BFD_RELOC_SPARC_PC_LM22",
867   "BFD_RELOC_SPARC_WDISP16",
868   "BFD_RELOC_SPARC_WDISP19",
869   "BFD_RELOC_SPARC_7",
870   "BFD_RELOC_SPARC_6",
871   "BFD_RELOC_SPARC_5",
872   "BFD_RELOC_SPARC_PLT32",
873   "BFD_RELOC_SPARC_PLT64",
874   "BFD_RELOC_SPARC_HIX22",
875   "BFD_RELOC_SPARC_LOX10",
876   "BFD_RELOC_SPARC_H44",
877   "BFD_RELOC_SPARC_M44",
878   "BFD_RELOC_SPARC_L44",
879   "BFD_RELOC_SPARC_REGISTER",
880   "BFD_RELOC_SPARC_REV32",
881   "BFD_RELOC_SPARC_TLS_GD_HI22",
882   "BFD_RELOC_SPARC_TLS_GD_LO10",
883   "BFD_RELOC_SPARC_TLS_GD_ADD",
884   "BFD_RELOC_SPARC_TLS_GD_CALL",
885   "BFD_RELOC_SPARC_TLS_LDM_HI22",
886   "BFD_RELOC_SPARC_TLS_LDM_LO10",
887   "BFD_RELOC_SPARC_TLS_LDM_ADD",
888   "BFD_RELOC_SPARC_TLS_LDM_CALL",
889   "BFD_RELOC_SPARC_TLS_LDO_HIX22",
890   "BFD_RELOC_SPARC_TLS_LDO_LOX10",
891   "BFD_RELOC_SPARC_TLS_LDO_ADD",
892   "BFD_RELOC_SPARC_TLS_IE_HI22",
893   "BFD_RELOC_SPARC_TLS_IE_LO10",
894   "BFD_RELOC_SPARC_TLS_IE_LD",
895   "BFD_RELOC_SPARC_TLS_IE_LDX",
896   "BFD_RELOC_SPARC_TLS_IE_ADD",
897   "BFD_RELOC_SPARC_TLS_LE_HIX22",
898   "BFD_RELOC_SPARC_TLS_LE_LOX10",
899   "BFD_RELOC_SPARC_TLS_DTPMOD32",
900   "BFD_RELOC_SPARC_TLS_DTPMOD64",
901   "BFD_RELOC_SPARC_TLS_DTPOFF32",
902   "BFD_RELOC_SPARC_TLS_DTPOFF64",
903   "BFD_RELOC_SPARC_TLS_TPOFF32",
904   "BFD_RELOC_SPARC_TLS_TPOFF64",
905   "BFD_RELOC_ALPHA_GPDISP_HI16",
906   "BFD_RELOC_ALPHA_GPDISP_LO16",
907   "BFD_RELOC_ALPHA_GPDISP",
908   "BFD_RELOC_ALPHA_LITERAL",
909   "BFD_RELOC_ALPHA_ELF_LITERAL",
910   "BFD_RELOC_ALPHA_LITUSE",
911   "BFD_RELOC_ALPHA_HINT",
912   "BFD_RELOC_ALPHA_LINKAGE",
913   "BFD_RELOC_ALPHA_CODEADDR",
914   "BFD_RELOC_ALPHA_GPREL_HI16",
915   "BFD_RELOC_ALPHA_GPREL_LO16",
916   "BFD_RELOC_ALPHA_BRSGP",
917   "BFD_RELOC_ALPHA_TLSGD",
918   "BFD_RELOC_ALPHA_TLSLDM",
919   "BFD_RELOC_ALPHA_DTPMOD64",
920   "BFD_RELOC_ALPHA_GOTDTPREL16",
921   "BFD_RELOC_ALPHA_DTPREL64",
922   "BFD_RELOC_ALPHA_DTPREL_HI16",
923   "BFD_RELOC_ALPHA_DTPREL_LO16",
924   "BFD_RELOC_ALPHA_DTPREL16",
925   "BFD_RELOC_ALPHA_GOTTPREL16",
926   "BFD_RELOC_ALPHA_TPREL64",
927   "BFD_RELOC_ALPHA_TPREL_HI16",
928   "BFD_RELOC_ALPHA_TPREL_LO16",
929   "BFD_RELOC_ALPHA_TPREL16",
930   "BFD_RELOC_MIPS_JMP",
931   "BFD_RELOC_MIPS16_JMP",
932   "BFD_RELOC_MIPS16_GPREL",
933   "BFD_RELOC_HI16",
934   "BFD_RELOC_HI16_S",
935   "BFD_RELOC_LO16",
936   "BFD_RELOC_HI16_PCREL",
937   "BFD_RELOC_HI16_S_PCREL",
938   "BFD_RELOC_LO16_PCREL",
939   "BFD_RELOC_MIPS16_HI16",
940   "BFD_RELOC_MIPS16_HI16_S",
941   "BFD_RELOC_MIPS16_LO16",
942   "BFD_RELOC_MIPS_LITERAL",
943   "BFD_RELOC_MIPS_GOT16",
944   "BFD_RELOC_MIPS_CALL16",
945   "BFD_RELOC_MIPS_GOT_HI16",
946   "BFD_RELOC_MIPS_GOT_LO16",
947   "BFD_RELOC_MIPS_CALL_HI16",
948   "BFD_RELOC_MIPS_CALL_LO16",
949   "BFD_RELOC_MIPS_SUB",
950   "BFD_RELOC_MIPS_GOT_PAGE",
951   "BFD_RELOC_MIPS_GOT_OFST",
952   "BFD_RELOC_MIPS_GOT_DISP",
953   "BFD_RELOC_MIPS_SHIFT5",
954   "BFD_RELOC_MIPS_SHIFT6",
955   "BFD_RELOC_MIPS_INSERT_A",
956   "BFD_RELOC_MIPS_INSERT_B",
957   "BFD_RELOC_MIPS_DELETE",
958   "BFD_RELOC_MIPS_HIGHEST",
959   "BFD_RELOC_MIPS_HIGHER",
960   "BFD_RELOC_MIPS_SCN_DISP",
961   "BFD_RELOC_MIPS_REL16",
962   "BFD_RELOC_MIPS_RELGOT",
963   "BFD_RELOC_MIPS_JALR",
964   "BFD_RELOC_MIPS_TLS_DTPMOD32",
965   "BFD_RELOC_MIPS_TLS_DTPREL32",
966   "BFD_RELOC_MIPS_TLS_DTPMOD64",
967   "BFD_RELOC_MIPS_TLS_DTPREL64",
968   "BFD_RELOC_MIPS_TLS_GD",
969   "BFD_RELOC_MIPS_TLS_LDM",
970   "BFD_RELOC_MIPS_TLS_DTPREL_HI16",
971   "BFD_RELOC_MIPS_TLS_DTPREL_LO16",
972   "BFD_RELOC_MIPS_TLS_GOTTPREL",
973   "BFD_RELOC_MIPS_TLS_TPREL32",
974   "BFD_RELOC_MIPS_TLS_TPREL64",
975   "BFD_RELOC_MIPS_TLS_TPREL_HI16",
976   "BFD_RELOC_MIPS_TLS_TPREL_LO16",
977 
978   "BFD_RELOC_MIPS_COPY",
979   "BFD_RELOC_MIPS_JUMP_SLOT",
980 
981   "BFD_RELOC_FRV_LABEL16",
982   "BFD_RELOC_FRV_LABEL24",
983   "BFD_RELOC_FRV_LO16",
984   "BFD_RELOC_FRV_HI16",
985   "BFD_RELOC_FRV_GPREL12",
986   "BFD_RELOC_FRV_GPRELU12",
987   "BFD_RELOC_FRV_GPREL32",
988   "BFD_RELOC_FRV_GPRELHI",
989   "BFD_RELOC_FRV_GPRELLO",
990   "BFD_RELOC_FRV_GOT12",
991   "BFD_RELOC_FRV_GOTHI",
992   "BFD_RELOC_FRV_GOTLO",
993   "BFD_RELOC_FRV_FUNCDESC",
994   "BFD_RELOC_FRV_FUNCDESC_GOT12",
995   "BFD_RELOC_FRV_FUNCDESC_GOTHI",
996   "BFD_RELOC_FRV_FUNCDESC_GOTLO",
997   "BFD_RELOC_FRV_FUNCDESC_VALUE",
998   "BFD_RELOC_FRV_FUNCDESC_GOTOFF12",
999   "BFD_RELOC_FRV_FUNCDESC_GOTOFFHI",
1000   "BFD_RELOC_FRV_FUNCDESC_GOTOFFLO",
1001   "BFD_RELOC_FRV_GOTOFF12",
1002   "BFD_RELOC_FRV_GOTOFFHI",
1003   "BFD_RELOC_FRV_GOTOFFLO",
1004   "BFD_RELOC_FRV_GETTLSOFF",
1005   "BFD_RELOC_FRV_TLSDESC_VALUE",
1006   "BFD_RELOC_FRV_GOTTLSDESC12",
1007   "BFD_RELOC_FRV_GOTTLSDESCHI",
1008   "BFD_RELOC_FRV_GOTTLSDESCLO",
1009   "BFD_RELOC_FRV_TLSMOFF12",
1010   "BFD_RELOC_FRV_TLSMOFFHI",
1011   "BFD_RELOC_FRV_TLSMOFFLO",
1012   "BFD_RELOC_FRV_GOTTLSOFF12",
1013   "BFD_RELOC_FRV_GOTTLSOFFHI",
1014   "BFD_RELOC_FRV_GOTTLSOFFLO",
1015   "BFD_RELOC_FRV_TLSOFF",
1016   "BFD_RELOC_FRV_TLSDESC_RELAX",
1017   "BFD_RELOC_FRV_GETTLSOFF_RELAX",
1018   "BFD_RELOC_FRV_TLSOFF_RELAX",
1019   "BFD_RELOC_FRV_TLSMOFF",
1020 
1021   "BFD_RELOC_MN10300_GOTOFF24",
1022   "BFD_RELOC_MN10300_GOT32",
1023   "BFD_RELOC_MN10300_GOT24",
1024   "BFD_RELOC_MN10300_GOT16",
1025   "BFD_RELOC_MN10300_COPY",
1026   "BFD_RELOC_MN10300_GLOB_DAT",
1027   "BFD_RELOC_MN10300_JMP_SLOT",
1028   "BFD_RELOC_MN10300_RELATIVE",
1029 
1030   "BFD_RELOC_386_GOT32",
1031   "BFD_RELOC_386_PLT32",
1032   "BFD_RELOC_386_COPY",
1033   "BFD_RELOC_386_GLOB_DAT",
1034   "BFD_RELOC_386_JUMP_SLOT",
1035   "BFD_RELOC_386_RELATIVE",
1036   "BFD_RELOC_386_GOTOFF",
1037   "BFD_RELOC_386_GOTPC",
1038   "BFD_RELOC_386_TLS_TPOFF",
1039   "BFD_RELOC_386_TLS_IE",
1040   "BFD_RELOC_386_TLS_GOTIE",
1041   "BFD_RELOC_386_TLS_LE",
1042   "BFD_RELOC_386_TLS_GD",
1043   "BFD_RELOC_386_TLS_LDM",
1044   "BFD_RELOC_386_TLS_LDO_32",
1045   "BFD_RELOC_386_TLS_IE_32",
1046   "BFD_RELOC_386_TLS_LE_32",
1047   "BFD_RELOC_386_TLS_DTPMOD32",
1048   "BFD_RELOC_386_TLS_DTPOFF32",
1049   "BFD_RELOC_386_TLS_TPOFF32",
1050   "BFD_RELOC_386_TLS_GOTDESC",
1051   "BFD_RELOC_386_TLS_DESC_CALL",
1052   "BFD_RELOC_386_TLS_DESC",
1053   "BFD_RELOC_X86_64_GOT32",
1054   "BFD_RELOC_X86_64_PLT32",
1055   "BFD_RELOC_X86_64_COPY",
1056   "BFD_RELOC_X86_64_GLOB_DAT",
1057   "BFD_RELOC_X86_64_JUMP_SLOT",
1058   "BFD_RELOC_X86_64_RELATIVE",
1059   "BFD_RELOC_X86_64_GOTPCREL",
1060   "BFD_RELOC_X86_64_32S",
1061   "BFD_RELOC_X86_64_DTPMOD64",
1062   "BFD_RELOC_X86_64_DTPOFF64",
1063   "BFD_RELOC_X86_64_TPOFF64",
1064   "BFD_RELOC_X86_64_TLSGD",
1065   "BFD_RELOC_X86_64_TLSLD",
1066   "BFD_RELOC_X86_64_DTPOFF32",
1067   "BFD_RELOC_X86_64_GOTTPOFF",
1068   "BFD_RELOC_X86_64_TPOFF32",
1069   "BFD_RELOC_X86_64_GOTOFF64",
1070   "BFD_RELOC_X86_64_GOTPC32",
1071   "BFD_RELOC_X86_64_GOT64",
1072   "BFD_RELOC_X86_64_GOTPCREL64",
1073   "BFD_RELOC_X86_64_GOTPC64",
1074   "BFD_RELOC_X86_64_GOTPLT64",
1075   "BFD_RELOC_X86_64_PLTOFF64",
1076   "BFD_RELOC_X86_64_GOTPC32_TLSDESC",
1077   "BFD_RELOC_X86_64_TLSDESC_CALL",
1078   "BFD_RELOC_X86_64_TLSDESC",
1079   "BFD_RELOC_NS32K_IMM_8",
1080   "BFD_RELOC_NS32K_IMM_16",
1081   "BFD_RELOC_NS32K_IMM_32",
1082   "BFD_RELOC_NS32K_IMM_8_PCREL",
1083   "BFD_RELOC_NS32K_IMM_16_PCREL",
1084   "BFD_RELOC_NS32K_IMM_32_PCREL",
1085   "BFD_RELOC_NS32K_DISP_8",
1086   "BFD_RELOC_NS32K_DISP_16",
1087   "BFD_RELOC_NS32K_DISP_32",
1088   "BFD_RELOC_NS32K_DISP_8_PCREL",
1089   "BFD_RELOC_NS32K_DISP_16_PCREL",
1090   "BFD_RELOC_NS32K_DISP_32_PCREL",
1091   "BFD_RELOC_PDP11_DISP_8_PCREL",
1092   "BFD_RELOC_PDP11_DISP_6_PCREL",
1093   "BFD_RELOC_PJ_CODE_HI16",
1094   "BFD_RELOC_PJ_CODE_LO16",
1095   "BFD_RELOC_PJ_CODE_DIR16",
1096   "BFD_RELOC_PJ_CODE_DIR32",
1097   "BFD_RELOC_PJ_CODE_REL16",
1098   "BFD_RELOC_PJ_CODE_REL32",
1099   "BFD_RELOC_PPC_B26",
1100   "BFD_RELOC_PPC_BA26",
1101   "BFD_RELOC_PPC_TOC16",
1102   "BFD_RELOC_PPC_B16",
1103   "BFD_RELOC_PPC_B16_BRTAKEN",
1104   "BFD_RELOC_PPC_B16_BRNTAKEN",
1105   "BFD_RELOC_PPC_BA16",
1106   "BFD_RELOC_PPC_BA16_BRTAKEN",
1107   "BFD_RELOC_PPC_BA16_BRNTAKEN",
1108   "BFD_RELOC_PPC_COPY",
1109   "BFD_RELOC_PPC_GLOB_DAT",
1110   "BFD_RELOC_PPC_JMP_SLOT",
1111   "BFD_RELOC_PPC_RELATIVE",
1112   "BFD_RELOC_PPC_LOCAL24PC",
1113   "BFD_RELOC_PPC_EMB_NADDR32",
1114   "BFD_RELOC_PPC_EMB_NADDR16",
1115   "BFD_RELOC_PPC_EMB_NADDR16_LO",
1116   "BFD_RELOC_PPC_EMB_NADDR16_HI",
1117   "BFD_RELOC_PPC_EMB_NADDR16_HA",
1118   "BFD_RELOC_PPC_EMB_SDAI16",
1119   "BFD_RELOC_PPC_EMB_SDA2I16",
1120   "BFD_RELOC_PPC_EMB_SDA2REL",
1121   "BFD_RELOC_PPC_EMB_SDA21",
1122   "BFD_RELOC_PPC_EMB_MRKREF",
1123   "BFD_RELOC_PPC_EMB_RELSEC16",
1124   "BFD_RELOC_PPC_EMB_RELST_LO",
1125   "BFD_RELOC_PPC_EMB_RELST_HI",
1126   "BFD_RELOC_PPC_EMB_RELST_HA",
1127   "BFD_RELOC_PPC_EMB_BIT_FLD",
1128   "BFD_RELOC_PPC_EMB_RELSDA",
1129   "BFD_RELOC_PPC64_HIGHER",
1130   "BFD_RELOC_PPC64_HIGHER_S",
1131   "BFD_RELOC_PPC64_HIGHEST",
1132   "BFD_RELOC_PPC64_HIGHEST_S",
1133   "BFD_RELOC_PPC64_TOC16_LO",
1134   "BFD_RELOC_PPC64_TOC16_HI",
1135   "BFD_RELOC_PPC64_TOC16_HA",
1136   "BFD_RELOC_PPC64_TOC",
1137   "BFD_RELOC_PPC64_PLTGOT16",
1138   "BFD_RELOC_PPC64_PLTGOT16_LO",
1139   "BFD_RELOC_PPC64_PLTGOT16_HI",
1140   "BFD_RELOC_PPC64_PLTGOT16_HA",
1141   "BFD_RELOC_PPC64_ADDR16_DS",
1142   "BFD_RELOC_PPC64_ADDR16_LO_DS",
1143   "BFD_RELOC_PPC64_GOT16_DS",
1144   "BFD_RELOC_PPC64_GOT16_LO_DS",
1145   "BFD_RELOC_PPC64_PLT16_LO_DS",
1146   "BFD_RELOC_PPC64_SECTOFF_DS",
1147   "BFD_RELOC_PPC64_SECTOFF_LO_DS",
1148   "BFD_RELOC_PPC64_TOC16_DS",
1149   "BFD_RELOC_PPC64_TOC16_LO_DS",
1150   "BFD_RELOC_PPC64_PLTGOT16_DS",
1151   "BFD_RELOC_PPC64_PLTGOT16_LO_DS",
1152   "BFD_RELOC_PPC_TLS",
1153   "BFD_RELOC_PPC_DTPMOD",
1154   "BFD_RELOC_PPC_TPREL16",
1155   "BFD_RELOC_PPC_TPREL16_LO",
1156   "BFD_RELOC_PPC_TPREL16_HI",
1157   "BFD_RELOC_PPC_TPREL16_HA",
1158   "BFD_RELOC_PPC_TPREL",
1159   "BFD_RELOC_PPC_DTPREL16",
1160   "BFD_RELOC_PPC_DTPREL16_LO",
1161   "BFD_RELOC_PPC_DTPREL16_HI",
1162   "BFD_RELOC_PPC_DTPREL16_HA",
1163   "BFD_RELOC_PPC_DTPREL",
1164   "BFD_RELOC_PPC_GOT_TLSGD16",
1165   "BFD_RELOC_PPC_GOT_TLSGD16_LO",
1166   "BFD_RELOC_PPC_GOT_TLSGD16_HI",
1167   "BFD_RELOC_PPC_GOT_TLSGD16_HA",
1168   "BFD_RELOC_PPC_GOT_TLSLD16",
1169   "BFD_RELOC_PPC_GOT_TLSLD16_LO",
1170   "BFD_RELOC_PPC_GOT_TLSLD16_HI",
1171   "BFD_RELOC_PPC_GOT_TLSLD16_HA",
1172   "BFD_RELOC_PPC_GOT_TPREL16",
1173   "BFD_RELOC_PPC_GOT_TPREL16_LO",
1174   "BFD_RELOC_PPC_GOT_TPREL16_HI",
1175   "BFD_RELOC_PPC_GOT_TPREL16_HA",
1176   "BFD_RELOC_PPC_GOT_DTPREL16",
1177   "BFD_RELOC_PPC_GOT_DTPREL16_LO",
1178   "BFD_RELOC_PPC_GOT_DTPREL16_HI",
1179   "BFD_RELOC_PPC_GOT_DTPREL16_HA",
1180   "BFD_RELOC_PPC64_TPREL16_DS",
1181   "BFD_RELOC_PPC64_TPREL16_LO_DS",
1182   "BFD_RELOC_PPC64_TPREL16_HIGHER",
1183   "BFD_RELOC_PPC64_TPREL16_HIGHERA",
1184   "BFD_RELOC_PPC64_TPREL16_HIGHEST",
1185   "BFD_RELOC_PPC64_TPREL16_HIGHESTA",
1186   "BFD_RELOC_PPC64_DTPREL16_DS",
1187   "BFD_RELOC_PPC64_DTPREL16_LO_DS",
1188   "BFD_RELOC_PPC64_DTPREL16_HIGHER",
1189   "BFD_RELOC_PPC64_DTPREL16_HIGHERA",
1190   "BFD_RELOC_PPC64_DTPREL16_HIGHEST",
1191   "BFD_RELOC_PPC64_DTPREL16_HIGHESTA",
1192   "BFD_RELOC_I370_D12",
1193   "BFD_RELOC_CTOR",
1194   "BFD_RELOC_ARM_PCREL_BRANCH",
1195   "BFD_RELOC_ARM_PCREL_BLX",
1196   "BFD_RELOC_THUMB_PCREL_BLX",
1197   "BFD_RELOC_ARM_PCREL_CALL",
1198   "BFD_RELOC_ARM_PCREL_JUMP",
1199   "BFD_RELOC_THUMB_PCREL_BRANCH7",
1200   "BFD_RELOC_THUMB_PCREL_BRANCH9",
1201   "BFD_RELOC_THUMB_PCREL_BRANCH12",
1202   "BFD_RELOC_THUMB_PCREL_BRANCH20",
1203   "BFD_RELOC_THUMB_PCREL_BRANCH23",
1204   "BFD_RELOC_THUMB_PCREL_BRANCH25",
1205   "BFD_RELOC_ARM_OFFSET_IMM",
1206   "BFD_RELOC_ARM_THUMB_OFFSET",
1207   "BFD_RELOC_ARM_TARGET1",
1208   "BFD_RELOC_ARM_ROSEGREL32",
1209   "BFD_RELOC_ARM_SBREL32",
1210   "BFD_RELOC_ARM_TARGET2",
1211   "BFD_RELOC_ARM_PREL31",
1212   "BFD_RELOC_ARM_JUMP_SLOT",
1213   "BFD_RELOC_ARM_GLOB_DAT",
1214   "BFD_RELOC_ARM_GOT32",
1215   "BFD_RELOC_ARM_PLT32",
1216   "BFD_RELOC_ARM_RELATIVE",
1217   "BFD_RELOC_ARM_GOTOFF",
1218   "BFD_RELOC_ARM_GOTPC",
1219   "BFD_RELOC_ARM_TLS_GD32",
1220   "BFD_RELOC_ARM_TLS_LDO32",
1221   "BFD_RELOC_ARM_TLS_LDM32",
1222   "BFD_RELOC_ARM_TLS_DTPOFF32",
1223   "BFD_RELOC_ARM_TLS_DTPMOD32",
1224   "BFD_RELOC_ARM_TLS_TPOFF32",
1225   "BFD_RELOC_ARM_TLS_IE32",
1226   "BFD_RELOC_ARM_TLS_LE32",
1227   "BFD_RELOC_ARM_IMMEDIATE",
1228   "BFD_RELOC_ARM_ADRL_IMMEDIATE",
1229   "BFD_RELOC_ARM_T32_IMMEDIATE",
1230   "BFD_RELOC_ARM_T32_IMM12",
1231   "BFD_RELOC_ARM_T32_ADD_PC12",
1232   "BFD_RELOC_ARM_SHIFT_IMM",
1233   "BFD_RELOC_ARM_SMC",
1234   "BFD_RELOC_ARM_SWI",
1235   "BFD_RELOC_ARM_MULTI",
1236   "BFD_RELOC_ARM_CP_OFF_IMM",
1237   "BFD_RELOC_ARM_CP_OFF_IMM_S2",
1238   "BFD_RELOC_ARM_T32_CP_OFF_IMM",
1239   "BFD_RELOC_ARM_T32_CP_OFF_IMM_S2",
1240   "BFD_RELOC_ARM_ADR_IMM",
1241   "BFD_RELOC_ARM_LDR_IMM",
1242   "BFD_RELOC_ARM_LITERAL",
1243   "BFD_RELOC_ARM_IN_POOL",
1244   "BFD_RELOC_ARM_OFFSET_IMM8",
1245   "BFD_RELOC_ARM_T32_OFFSET_U8",
1246   "BFD_RELOC_ARM_T32_OFFSET_IMM",
1247   "BFD_RELOC_ARM_HWLITERAL",
1248   "BFD_RELOC_ARM_THUMB_ADD",
1249   "BFD_RELOC_ARM_THUMB_IMM",
1250   "BFD_RELOC_ARM_THUMB_SHIFT",
1251   "BFD_RELOC_SH_PCDISP8BY2",
1252   "BFD_RELOC_SH_PCDISP12BY2",
1253   "BFD_RELOC_SH_IMM3",
1254   "BFD_RELOC_SH_IMM3U",
1255   "BFD_RELOC_SH_DISP12",
1256   "BFD_RELOC_SH_DISP12BY2",
1257   "BFD_RELOC_SH_DISP12BY4",
1258   "BFD_RELOC_SH_DISP12BY8",
1259   "BFD_RELOC_SH_DISP20",
1260   "BFD_RELOC_SH_DISP20BY8",
1261   "BFD_RELOC_SH_IMM4",
1262   "BFD_RELOC_SH_IMM4BY2",
1263   "BFD_RELOC_SH_IMM4BY4",
1264   "BFD_RELOC_SH_IMM8",
1265   "BFD_RELOC_SH_IMM8BY2",
1266   "BFD_RELOC_SH_IMM8BY4",
1267   "BFD_RELOC_SH_PCRELIMM8BY2",
1268   "BFD_RELOC_SH_PCRELIMM8BY4",
1269   "BFD_RELOC_SH_SWITCH16",
1270   "BFD_RELOC_SH_SWITCH32",
1271   "BFD_RELOC_SH_USES",
1272   "BFD_RELOC_SH_COUNT",
1273   "BFD_RELOC_SH_ALIGN",
1274   "BFD_RELOC_SH_CODE",
1275   "BFD_RELOC_SH_DATA",
1276   "BFD_RELOC_SH_LABEL",
1277   "BFD_RELOC_SH_LOOP_START",
1278   "BFD_RELOC_SH_LOOP_END",
1279   "BFD_RELOC_SH_COPY",
1280   "BFD_RELOC_SH_GLOB_DAT",
1281   "BFD_RELOC_SH_JMP_SLOT",
1282   "BFD_RELOC_SH_RELATIVE",
1283   "BFD_RELOC_SH_GOTPC",
1284   "BFD_RELOC_SH_GOT_LOW16",
1285   "BFD_RELOC_SH_GOT_MEDLOW16",
1286   "BFD_RELOC_SH_GOT_MEDHI16",
1287   "BFD_RELOC_SH_GOT_HI16",
1288   "BFD_RELOC_SH_GOTPLT_LOW16",
1289   "BFD_RELOC_SH_GOTPLT_MEDLOW16",
1290   "BFD_RELOC_SH_GOTPLT_MEDHI16",
1291   "BFD_RELOC_SH_GOTPLT_HI16",
1292   "BFD_RELOC_SH_PLT_LOW16",
1293   "BFD_RELOC_SH_PLT_MEDLOW16",
1294   "BFD_RELOC_SH_PLT_MEDHI16",
1295   "BFD_RELOC_SH_PLT_HI16",
1296   "BFD_RELOC_SH_GOTOFF_LOW16",
1297   "BFD_RELOC_SH_GOTOFF_MEDLOW16",
1298   "BFD_RELOC_SH_GOTOFF_MEDHI16",
1299   "BFD_RELOC_SH_GOTOFF_HI16",
1300   "BFD_RELOC_SH_GOTPC_LOW16",
1301   "BFD_RELOC_SH_GOTPC_MEDLOW16",
1302   "BFD_RELOC_SH_GOTPC_MEDHI16",
1303   "BFD_RELOC_SH_GOTPC_HI16",
1304   "BFD_RELOC_SH_COPY64",
1305   "BFD_RELOC_SH_GLOB_DAT64",
1306   "BFD_RELOC_SH_JMP_SLOT64",
1307   "BFD_RELOC_SH_RELATIVE64",
1308   "BFD_RELOC_SH_GOT10BY4",
1309   "BFD_RELOC_SH_GOT10BY8",
1310   "BFD_RELOC_SH_GOTPLT10BY4",
1311   "BFD_RELOC_SH_GOTPLT10BY8",
1312   "BFD_RELOC_SH_GOTPLT32",
1313   "BFD_RELOC_SH_SHMEDIA_CODE",
1314   "BFD_RELOC_SH_IMMU5",
1315   "BFD_RELOC_SH_IMMS6",
1316   "BFD_RELOC_SH_IMMS6BY32",
1317   "BFD_RELOC_SH_IMMU6",
1318   "BFD_RELOC_SH_IMMS10",
1319   "BFD_RELOC_SH_IMMS10BY2",
1320   "BFD_RELOC_SH_IMMS10BY4",
1321   "BFD_RELOC_SH_IMMS10BY8",
1322   "BFD_RELOC_SH_IMMS16",
1323   "BFD_RELOC_SH_IMMU16",
1324   "BFD_RELOC_SH_IMM_LOW16",
1325   "BFD_RELOC_SH_IMM_LOW16_PCREL",
1326   "BFD_RELOC_SH_IMM_MEDLOW16",
1327   "BFD_RELOC_SH_IMM_MEDLOW16_PCREL",
1328   "BFD_RELOC_SH_IMM_MEDHI16",
1329   "BFD_RELOC_SH_IMM_MEDHI16_PCREL",
1330   "BFD_RELOC_SH_IMM_HI16",
1331   "BFD_RELOC_SH_IMM_HI16_PCREL",
1332   "BFD_RELOC_SH_PT_16",
1333   "BFD_RELOC_SH_TLS_GD_32",
1334   "BFD_RELOC_SH_TLS_LD_32",
1335   "BFD_RELOC_SH_TLS_LDO_32",
1336   "BFD_RELOC_SH_TLS_IE_32",
1337   "BFD_RELOC_SH_TLS_LE_32",
1338   "BFD_RELOC_SH_TLS_DTPMOD32",
1339   "BFD_RELOC_SH_TLS_DTPOFF32",
1340   "BFD_RELOC_SH_TLS_TPOFF32",
1341   "BFD_RELOC_ARC_B22_PCREL",
1342   "BFD_RELOC_ARC_B26",
1343   "BFD_RELOC_BFIN_16_IMM",
1344   "BFD_RELOC_BFIN_16_HIGH",
1345   "BFD_RELOC_BFIN_4_PCREL",
1346   "BFD_RELOC_BFIN_5_PCREL",
1347   "BFD_RELOC_BFIN_16_LOW",
1348   "BFD_RELOC_BFIN_10_PCREL",
1349   "BFD_RELOC_BFIN_11_PCREL",
1350   "BFD_RELOC_BFIN_12_PCREL_JUMP",
1351   "BFD_RELOC_BFIN_12_PCREL_JUMP_S",
1352   "BFD_RELOC_BFIN_24_PCREL_CALL_X",
1353   "BFD_RELOC_BFIN_24_PCREL_JUMP_L",
1354   "BFD_RELOC_BFIN_GOT17M4",
1355   "BFD_RELOC_BFIN_GOTHI",
1356   "BFD_RELOC_BFIN_GOTLO",
1357   "BFD_RELOC_BFIN_FUNCDESC",
1358   "BFD_RELOC_BFIN_FUNCDESC_GOT17M4",
1359   "BFD_RELOC_BFIN_FUNCDESC_GOTHI",
1360   "BFD_RELOC_BFIN_FUNCDESC_GOTLO",
1361   "BFD_RELOC_BFIN_FUNCDESC_VALUE",
1362   "BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4",
1363   "BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI",
1364   "BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO",
1365   "BFD_RELOC_BFIN_GOTOFF17M4",
1366   "BFD_RELOC_BFIN_GOTOFFHI",
1367   "BFD_RELOC_BFIN_GOTOFFLO",
1368   "BFD_RELOC_BFIN_GOT",
1369   "BFD_RELOC_BFIN_PLTPC",
1370   "BFD_ARELOC_BFIN_PUSH",
1371   "BFD_ARELOC_BFIN_CONST",
1372   "BFD_ARELOC_BFIN_ADD",
1373   "BFD_ARELOC_BFIN_SUB",
1374   "BFD_ARELOC_BFIN_MULT",
1375   "BFD_ARELOC_BFIN_DIV",
1376   "BFD_ARELOC_BFIN_MOD",
1377   "BFD_ARELOC_BFIN_LSHIFT",
1378   "BFD_ARELOC_BFIN_RSHIFT",
1379   "BFD_ARELOC_BFIN_AND",
1380   "BFD_ARELOC_BFIN_OR",
1381   "BFD_ARELOC_BFIN_XOR",
1382   "BFD_ARELOC_BFIN_LAND",
1383   "BFD_ARELOC_BFIN_LOR",
1384   "BFD_ARELOC_BFIN_LEN",
1385   "BFD_ARELOC_BFIN_NEG",
1386   "BFD_ARELOC_BFIN_COMP",
1387   "BFD_ARELOC_BFIN_PAGE",
1388   "BFD_ARELOC_BFIN_HWPAGE",
1389   "BFD_ARELOC_BFIN_ADDR",
1390   "BFD_RELOC_D10V_10_PCREL_R",
1391   "BFD_RELOC_D10V_10_PCREL_L",
1392   "BFD_RELOC_D10V_18",
1393   "BFD_RELOC_D10V_18_PCREL",
1394   "BFD_RELOC_D30V_6",
1395   "BFD_RELOC_D30V_9_PCREL",
1396   "BFD_RELOC_D30V_9_PCREL_R",
1397   "BFD_RELOC_D30V_15",
1398   "BFD_RELOC_D30V_15_PCREL",
1399   "BFD_RELOC_D30V_15_PCREL_R",
1400   "BFD_RELOC_D30V_21",
1401   "BFD_RELOC_D30V_21_PCREL",
1402   "BFD_RELOC_D30V_21_PCREL_R",
1403   "BFD_RELOC_D30V_32",
1404   "BFD_RELOC_D30V_32_PCREL",
1405   "BFD_RELOC_DLX_HI16_S",
1406   "BFD_RELOC_DLX_LO16",
1407   "BFD_RELOC_DLX_JMP26",
1408   "BFD_RELOC_M32C_HI8",
1409   "BFD_RELOC_M32C_RL_JUMP",
1410   "BFD_RELOC_M32C_RL_1ADDR",
1411   "BFD_RELOC_M32C_RL_2ADDR",
1412   "BFD_RELOC_M32R_24",
1413   "BFD_RELOC_M32R_10_PCREL",
1414   "BFD_RELOC_M32R_18_PCREL",
1415   "BFD_RELOC_M32R_26_PCREL",
1416   "BFD_RELOC_M32R_HI16_ULO",
1417   "BFD_RELOC_M32R_HI16_SLO",
1418   "BFD_RELOC_M32R_LO16",
1419   "BFD_RELOC_M32R_SDA16",
1420   "BFD_RELOC_M32R_GOT24",
1421   "BFD_RELOC_M32R_26_PLTREL",
1422   "BFD_RELOC_M32R_COPY",
1423   "BFD_RELOC_M32R_GLOB_DAT",
1424   "BFD_RELOC_M32R_JMP_SLOT",
1425   "BFD_RELOC_M32R_RELATIVE",
1426   "BFD_RELOC_M32R_GOTOFF",
1427   "BFD_RELOC_M32R_GOTOFF_HI_ULO",
1428   "BFD_RELOC_M32R_GOTOFF_HI_SLO",
1429   "BFD_RELOC_M32R_GOTOFF_LO",
1430   "BFD_RELOC_M32R_GOTPC24",
1431   "BFD_RELOC_M32R_GOT16_HI_ULO",
1432   "BFD_RELOC_M32R_GOT16_HI_SLO",
1433   "BFD_RELOC_M32R_GOT16_LO",
1434   "BFD_RELOC_M32R_GOTPC_HI_ULO",
1435   "BFD_RELOC_M32R_GOTPC_HI_SLO",
1436   "BFD_RELOC_M32R_GOTPC_LO",
1437   "BFD_RELOC_V850_9_PCREL",
1438   "BFD_RELOC_V850_22_PCREL",
1439   "BFD_RELOC_V850_SDA_16_16_OFFSET",
1440   "BFD_RELOC_V850_SDA_15_16_OFFSET",
1441   "BFD_RELOC_V850_ZDA_16_16_OFFSET",
1442   "BFD_RELOC_V850_ZDA_15_16_OFFSET",
1443   "BFD_RELOC_V850_TDA_6_8_OFFSET",
1444   "BFD_RELOC_V850_TDA_7_8_OFFSET",
1445   "BFD_RELOC_V850_TDA_7_7_OFFSET",
1446   "BFD_RELOC_V850_TDA_16_16_OFFSET",
1447   "BFD_RELOC_V850_TDA_4_5_OFFSET",
1448   "BFD_RELOC_V850_TDA_4_4_OFFSET",
1449   "BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET",
1450   "BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET",
1451   "BFD_RELOC_V850_CALLT_6_7_OFFSET",
1452   "BFD_RELOC_V850_CALLT_16_16_OFFSET",
1453   "BFD_RELOC_V850_LONGCALL",
1454   "BFD_RELOC_V850_LONGJUMP",
1455   "BFD_RELOC_V850_ALIGN",
1456   "BFD_RELOC_V850_LO16_SPLIT_OFFSET",
1457   "BFD_RELOC_MN10300_32_PCREL",
1458   "BFD_RELOC_MN10300_16_PCREL",
1459   "BFD_RELOC_TIC30_LDP",
1460   "BFD_RELOC_TIC54X_PARTLS7",
1461   "BFD_RELOC_TIC54X_PARTMS9",
1462   "BFD_RELOC_TIC54X_23",
1463   "BFD_RELOC_TIC54X_16_OF_23",
1464   "BFD_RELOC_TIC54X_MS7_OF_23",
1465   "BFD_RELOC_FR30_48",
1466   "BFD_RELOC_FR30_20",
1467   "BFD_RELOC_FR30_6_IN_4",
1468   "BFD_RELOC_FR30_8_IN_8",
1469   "BFD_RELOC_FR30_9_IN_8",
1470   "BFD_RELOC_FR30_10_IN_8",
1471   "BFD_RELOC_FR30_9_PCREL",
1472   "BFD_RELOC_FR30_12_PCREL",
1473   "BFD_RELOC_MCORE_PCREL_IMM8BY4",
1474   "BFD_RELOC_MCORE_PCREL_IMM11BY2",
1475   "BFD_RELOC_MCORE_PCREL_IMM4BY2",
1476   "BFD_RELOC_MCORE_PCREL_32",
1477   "BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2",
1478   "BFD_RELOC_MCORE_RVA",
1479   "BFD_RELOC_MMIX_GETA",
1480   "BFD_RELOC_MMIX_GETA_1",
1481   "BFD_RELOC_MMIX_GETA_2",
1482   "BFD_RELOC_MMIX_GETA_3",
1483   "BFD_RELOC_MMIX_CBRANCH",
1484   "BFD_RELOC_MMIX_CBRANCH_J",
1485   "BFD_RELOC_MMIX_CBRANCH_1",
1486   "BFD_RELOC_MMIX_CBRANCH_2",
1487   "BFD_RELOC_MMIX_CBRANCH_3",
1488   "BFD_RELOC_MMIX_PUSHJ",
1489   "BFD_RELOC_MMIX_PUSHJ_1",
1490   "BFD_RELOC_MMIX_PUSHJ_2",
1491   "BFD_RELOC_MMIX_PUSHJ_3",
1492   "BFD_RELOC_MMIX_PUSHJ_STUBBABLE",
1493   "BFD_RELOC_MMIX_JMP",
1494   "BFD_RELOC_MMIX_JMP_1",
1495   "BFD_RELOC_MMIX_JMP_2",
1496   "BFD_RELOC_MMIX_JMP_3",
1497   "BFD_RELOC_MMIX_ADDR19",
1498   "BFD_RELOC_MMIX_ADDR27",
1499   "BFD_RELOC_MMIX_REG_OR_BYTE",
1500   "BFD_RELOC_MMIX_REG",
1501   "BFD_RELOC_MMIX_BASE_PLUS_OFFSET",
1502   "BFD_RELOC_MMIX_LOCAL",
1503   "BFD_RELOC_AVR_7_PCREL",
1504   "BFD_RELOC_AVR_13_PCREL",
1505   "BFD_RELOC_AVR_16_PM",
1506   "BFD_RELOC_AVR_LO8_LDI",
1507   "BFD_RELOC_AVR_HI8_LDI",
1508   "BFD_RELOC_AVR_HH8_LDI",
1509   "BFD_RELOC_AVR_MS8_LDI",
1510   "BFD_RELOC_AVR_LO8_LDI_NEG",
1511   "BFD_RELOC_AVR_HI8_LDI_NEG",
1512   "BFD_RELOC_AVR_HH8_LDI_NEG",
1513   "BFD_RELOC_AVR_MS8_LDI_NEG",
1514   "BFD_RELOC_AVR_LO8_LDI_PM",
1515   "BFD_RELOC_AVR_HI8_LDI_PM",
1516   "BFD_RELOC_AVR_HH8_LDI_PM",
1517   "BFD_RELOC_AVR_LO8_LDI_PM_NEG",
1518   "BFD_RELOC_AVR_HI8_LDI_PM_NEG",
1519   "BFD_RELOC_AVR_HH8_LDI_PM_NEG",
1520   "BFD_RELOC_AVR_CALL",
1521   "BFD_RELOC_AVR_LDI",
1522   "BFD_RELOC_AVR_6",
1523   "BFD_RELOC_AVR_6_ADIW",
1524   "BFD_RELOC_390_12",
1525   "BFD_RELOC_390_GOT12",
1526   "BFD_RELOC_390_PLT32",
1527   "BFD_RELOC_390_COPY",
1528   "BFD_RELOC_390_GLOB_DAT",
1529   "BFD_RELOC_390_JMP_SLOT",
1530   "BFD_RELOC_390_RELATIVE",
1531   "BFD_RELOC_390_GOTPC",
1532   "BFD_RELOC_390_GOT16",
1533   "BFD_RELOC_390_PC16DBL",
1534   "BFD_RELOC_390_PLT16DBL",
1535   "BFD_RELOC_390_PC32DBL",
1536   "BFD_RELOC_390_PLT32DBL",
1537   "BFD_RELOC_390_GOTPCDBL",
1538   "BFD_RELOC_390_GOT64",
1539   "BFD_RELOC_390_PLT64",
1540   "BFD_RELOC_390_GOTENT",
1541   "BFD_RELOC_390_GOTOFF64",
1542   "BFD_RELOC_390_GOTPLT12",
1543   "BFD_RELOC_390_GOTPLT16",
1544   "BFD_RELOC_390_GOTPLT32",
1545   "BFD_RELOC_390_GOTPLT64",
1546   "BFD_RELOC_390_GOTPLTENT",
1547   "BFD_RELOC_390_PLTOFF16",
1548   "BFD_RELOC_390_PLTOFF32",
1549   "BFD_RELOC_390_PLTOFF64",
1550   "BFD_RELOC_390_TLS_LOAD",
1551   "BFD_RELOC_390_TLS_GDCALL",
1552   "BFD_RELOC_390_TLS_LDCALL",
1553   "BFD_RELOC_390_TLS_GD32",
1554   "BFD_RELOC_390_TLS_GD64",
1555   "BFD_RELOC_390_TLS_GOTIE12",
1556   "BFD_RELOC_390_TLS_GOTIE32",
1557   "BFD_RELOC_390_TLS_GOTIE64",
1558   "BFD_RELOC_390_TLS_LDM32",
1559   "BFD_RELOC_390_TLS_LDM64",
1560   "BFD_RELOC_390_TLS_IE32",
1561   "BFD_RELOC_390_TLS_IE64",
1562   "BFD_RELOC_390_TLS_IEENT",
1563   "BFD_RELOC_390_TLS_LE32",
1564   "BFD_RELOC_390_TLS_LE64",
1565   "BFD_RELOC_390_TLS_LDO32",
1566   "BFD_RELOC_390_TLS_LDO64",
1567   "BFD_RELOC_390_TLS_DTPMOD",
1568   "BFD_RELOC_390_TLS_DTPOFF",
1569   "BFD_RELOC_390_TLS_TPOFF",
1570   "BFD_RELOC_390_20",
1571   "BFD_RELOC_390_GOT20",
1572   "BFD_RELOC_390_GOTPLT20",
1573   "BFD_RELOC_390_TLS_GOTIE20",
1574   "BFD_RELOC_IP2K_FR9",
1575   "BFD_RELOC_IP2K_BANK",
1576   "BFD_RELOC_IP2K_ADDR16CJP",
1577   "BFD_RELOC_IP2K_PAGE3",
1578   "BFD_RELOC_IP2K_LO8DATA",
1579   "BFD_RELOC_IP2K_HI8DATA",
1580   "BFD_RELOC_IP2K_EX8DATA",
1581   "BFD_RELOC_IP2K_LO8INSN",
1582   "BFD_RELOC_IP2K_HI8INSN",
1583   "BFD_RELOC_IP2K_PC_SKIP",
1584   "BFD_RELOC_IP2K_TEXT",
1585   "BFD_RELOC_IP2K_FR_OFFSET",
1586   "BFD_RELOC_VPE4KMATH_DATA",
1587   "BFD_RELOC_VPE4KMATH_INSN",
1588   "BFD_RELOC_VTABLE_INHERIT",
1589   "BFD_RELOC_VTABLE_ENTRY",
1590   "BFD_RELOC_IA64_IMM14",
1591   "BFD_RELOC_IA64_IMM22",
1592   "BFD_RELOC_IA64_IMM64",
1593   "BFD_RELOC_IA64_DIR32MSB",
1594   "BFD_RELOC_IA64_DIR32LSB",
1595   "BFD_RELOC_IA64_DIR64MSB",
1596   "BFD_RELOC_IA64_DIR64LSB",
1597   "BFD_RELOC_IA64_GPREL22",
1598   "BFD_RELOC_IA64_GPREL64I",
1599   "BFD_RELOC_IA64_GPREL32MSB",
1600   "BFD_RELOC_IA64_GPREL32LSB",
1601   "BFD_RELOC_IA64_GPREL64MSB",
1602   "BFD_RELOC_IA64_GPREL64LSB",
1603   "BFD_RELOC_IA64_LTOFF22",
1604   "BFD_RELOC_IA64_LTOFF64I",
1605   "BFD_RELOC_IA64_PLTOFF22",
1606   "BFD_RELOC_IA64_PLTOFF64I",
1607   "BFD_RELOC_IA64_PLTOFF64MSB",
1608   "BFD_RELOC_IA64_PLTOFF64LSB",
1609   "BFD_RELOC_IA64_FPTR64I",
1610   "BFD_RELOC_IA64_FPTR32MSB",
1611   "BFD_RELOC_IA64_FPTR32LSB",
1612   "BFD_RELOC_IA64_FPTR64MSB",
1613   "BFD_RELOC_IA64_FPTR64LSB",
1614   "BFD_RELOC_IA64_PCREL21B",
1615   "BFD_RELOC_IA64_PCREL21BI",
1616   "BFD_RELOC_IA64_PCREL21M",
1617   "BFD_RELOC_IA64_PCREL21F",
1618   "BFD_RELOC_IA64_PCREL22",
1619   "BFD_RELOC_IA64_PCREL60B",
1620   "BFD_RELOC_IA64_PCREL64I",
1621   "BFD_RELOC_IA64_PCREL32MSB",
1622   "BFD_RELOC_IA64_PCREL32LSB",
1623   "BFD_RELOC_IA64_PCREL64MSB",
1624   "BFD_RELOC_IA64_PCREL64LSB",
1625   "BFD_RELOC_IA64_LTOFF_FPTR22",
1626   "BFD_RELOC_IA64_LTOFF_FPTR64I",
1627   "BFD_RELOC_IA64_LTOFF_FPTR32MSB",
1628   "BFD_RELOC_IA64_LTOFF_FPTR32LSB",
1629   "BFD_RELOC_IA64_LTOFF_FPTR64MSB",
1630   "BFD_RELOC_IA64_LTOFF_FPTR64LSB",
1631   "BFD_RELOC_IA64_SEGREL32MSB",
1632   "BFD_RELOC_IA64_SEGREL32LSB",
1633   "BFD_RELOC_IA64_SEGREL64MSB",
1634   "BFD_RELOC_IA64_SEGREL64LSB",
1635   "BFD_RELOC_IA64_SECREL32MSB",
1636   "BFD_RELOC_IA64_SECREL32LSB",
1637   "BFD_RELOC_IA64_SECREL64MSB",
1638   "BFD_RELOC_IA64_SECREL64LSB",
1639   "BFD_RELOC_IA64_REL32MSB",
1640   "BFD_RELOC_IA64_REL32LSB",
1641   "BFD_RELOC_IA64_REL64MSB",
1642   "BFD_RELOC_IA64_REL64LSB",
1643   "BFD_RELOC_IA64_LTV32MSB",
1644   "BFD_RELOC_IA64_LTV32LSB",
1645   "BFD_RELOC_IA64_LTV64MSB",
1646   "BFD_RELOC_IA64_LTV64LSB",
1647   "BFD_RELOC_IA64_IPLTMSB",
1648   "BFD_RELOC_IA64_IPLTLSB",
1649   "BFD_RELOC_IA64_COPY",
1650   "BFD_RELOC_IA64_LTOFF22X",
1651   "BFD_RELOC_IA64_LDXMOV",
1652   "BFD_RELOC_IA64_TPREL14",
1653   "BFD_RELOC_IA64_TPREL22",
1654   "BFD_RELOC_IA64_TPREL64I",
1655   "BFD_RELOC_IA64_TPREL64MSB",
1656   "BFD_RELOC_IA64_TPREL64LSB",
1657   "BFD_RELOC_IA64_LTOFF_TPREL22",
1658   "BFD_RELOC_IA64_DTPMOD64MSB",
1659   "BFD_RELOC_IA64_DTPMOD64LSB",
1660   "BFD_RELOC_IA64_LTOFF_DTPMOD22",
1661   "BFD_RELOC_IA64_DTPREL14",
1662   "BFD_RELOC_IA64_DTPREL22",
1663   "BFD_RELOC_IA64_DTPREL64I",
1664   "BFD_RELOC_IA64_DTPREL32MSB",
1665   "BFD_RELOC_IA64_DTPREL32LSB",
1666   "BFD_RELOC_IA64_DTPREL64MSB",
1667   "BFD_RELOC_IA64_DTPREL64LSB",
1668   "BFD_RELOC_IA64_LTOFF_DTPREL22",
1669   "BFD_RELOC_M68HC11_HI8",
1670   "BFD_RELOC_M68HC11_LO8",
1671   "BFD_RELOC_M68HC11_3B",
1672   "BFD_RELOC_M68HC11_RL_JUMP",
1673   "BFD_RELOC_M68HC11_RL_GROUP",
1674   "BFD_RELOC_M68HC11_LO16",
1675   "BFD_RELOC_M68HC11_PAGE",
1676   "BFD_RELOC_M68HC11_24",
1677   "BFD_RELOC_M68HC12_5B",
1678   "BFD_RELOC_16C_NUM08",
1679   "BFD_RELOC_16C_NUM08_C",
1680   "BFD_RELOC_16C_NUM16",
1681   "BFD_RELOC_16C_NUM16_C",
1682   "BFD_RELOC_16C_NUM32",
1683   "BFD_RELOC_16C_NUM32_C",
1684   "BFD_RELOC_16C_DISP04",
1685   "BFD_RELOC_16C_DISP04_C",
1686   "BFD_RELOC_16C_DISP08",
1687   "BFD_RELOC_16C_DISP08_C",
1688   "BFD_RELOC_16C_DISP16",
1689   "BFD_RELOC_16C_DISP16_C",
1690   "BFD_RELOC_16C_DISP24",
1691   "BFD_RELOC_16C_DISP24_C",
1692   "BFD_RELOC_16C_DISP24a",
1693   "BFD_RELOC_16C_DISP24a_C",
1694   "BFD_RELOC_16C_REG04",
1695   "BFD_RELOC_16C_REG04_C",
1696   "BFD_RELOC_16C_REG04a",
1697   "BFD_RELOC_16C_REG04a_C",
1698   "BFD_RELOC_16C_REG14",
1699   "BFD_RELOC_16C_REG14_C",
1700   "BFD_RELOC_16C_REG16",
1701   "BFD_RELOC_16C_REG16_C",
1702   "BFD_RELOC_16C_REG20",
1703   "BFD_RELOC_16C_REG20_C",
1704   "BFD_RELOC_16C_ABS20",
1705   "BFD_RELOC_16C_ABS20_C",
1706   "BFD_RELOC_16C_ABS24",
1707   "BFD_RELOC_16C_ABS24_C",
1708   "BFD_RELOC_16C_IMM04",
1709   "BFD_RELOC_16C_IMM04_C",
1710   "BFD_RELOC_16C_IMM16",
1711   "BFD_RELOC_16C_IMM16_C",
1712   "BFD_RELOC_16C_IMM20",
1713   "BFD_RELOC_16C_IMM20_C",
1714   "BFD_RELOC_16C_IMM24",
1715   "BFD_RELOC_16C_IMM24_C",
1716   "BFD_RELOC_16C_IMM32",
1717   "BFD_RELOC_16C_IMM32_C",
1718   "BFD_RELOC_CRX_REL4",
1719   "BFD_RELOC_CRX_REL8",
1720   "BFD_RELOC_CRX_REL8_CMP",
1721   "BFD_RELOC_CRX_REL16",
1722   "BFD_RELOC_CRX_REL24",
1723   "BFD_RELOC_CRX_REL32",
1724   "BFD_RELOC_CRX_REGREL12",
1725   "BFD_RELOC_CRX_REGREL22",
1726   "BFD_RELOC_CRX_REGREL28",
1727   "BFD_RELOC_CRX_REGREL32",
1728   "BFD_RELOC_CRX_ABS16",
1729   "BFD_RELOC_CRX_ABS32",
1730   "BFD_RELOC_CRX_NUM8",
1731   "BFD_RELOC_CRX_NUM16",
1732   "BFD_RELOC_CRX_NUM32",
1733   "BFD_RELOC_CRX_IMM16",
1734   "BFD_RELOC_CRX_IMM32",
1735   "BFD_RELOC_CRX_SWITCH8",
1736   "BFD_RELOC_CRX_SWITCH16",
1737   "BFD_RELOC_CRX_SWITCH32",
1738   "BFD_RELOC_CRIS_BDISP8",
1739   "BFD_RELOC_CRIS_UNSIGNED_5",
1740   "BFD_RELOC_CRIS_SIGNED_6",
1741   "BFD_RELOC_CRIS_UNSIGNED_6",
1742   "BFD_RELOC_CRIS_SIGNED_8",
1743   "BFD_RELOC_CRIS_UNSIGNED_8",
1744   "BFD_RELOC_CRIS_SIGNED_16",
1745   "BFD_RELOC_CRIS_UNSIGNED_16",
1746   "BFD_RELOC_CRIS_LAPCQ_OFFSET",
1747   "BFD_RELOC_CRIS_UNSIGNED_4",
1748   "BFD_RELOC_CRIS_COPY",
1749   "BFD_RELOC_CRIS_GLOB_DAT",
1750   "BFD_RELOC_CRIS_JUMP_SLOT",
1751   "BFD_RELOC_CRIS_RELATIVE",
1752   "BFD_RELOC_CRIS_32_GOT",
1753   "BFD_RELOC_CRIS_16_GOT",
1754   "BFD_RELOC_CRIS_32_GOTPLT",
1755   "BFD_RELOC_CRIS_16_GOTPLT",
1756   "BFD_RELOC_CRIS_32_GOTREL",
1757   "BFD_RELOC_CRIS_32_PLT_GOTREL",
1758   "BFD_RELOC_CRIS_32_PLT_PCREL",
1759   "BFD_RELOC_860_COPY",
1760   "BFD_RELOC_860_GLOB_DAT",
1761   "BFD_RELOC_860_JUMP_SLOT",
1762   "BFD_RELOC_860_RELATIVE",
1763   "BFD_RELOC_860_PC26",
1764   "BFD_RELOC_860_PLT26",
1765   "BFD_RELOC_860_PC16",
1766   "BFD_RELOC_860_LOW0",
1767   "BFD_RELOC_860_SPLIT0",
1768   "BFD_RELOC_860_LOW1",
1769   "BFD_RELOC_860_SPLIT1",
1770   "BFD_RELOC_860_LOW2",
1771   "BFD_RELOC_860_SPLIT2",
1772   "BFD_RELOC_860_LOW3",
1773   "BFD_RELOC_860_LOGOT0",
1774   "BFD_RELOC_860_SPGOT0",
1775   "BFD_RELOC_860_LOGOT1",
1776   "BFD_RELOC_860_SPGOT1",
1777   "BFD_RELOC_860_LOGOTOFF0",
1778   "BFD_RELOC_860_SPGOTOFF0",
1779   "BFD_RELOC_860_LOGOTOFF1",
1780   "BFD_RELOC_860_SPGOTOFF1",
1781   "BFD_RELOC_860_LOGOTOFF2",
1782   "BFD_RELOC_860_LOGOTOFF3",
1783   "BFD_RELOC_860_LOPC",
1784   "BFD_RELOC_860_HIGHADJ",
1785   "BFD_RELOC_860_HAGOT",
1786   "BFD_RELOC_860_HAGOTOFF",
1787   "BFD_RELOC_860_HAPC",
1788   "BFD_RELOC_860_HIGH",
1789   "BFD_RELOC_860_HIGOT",
1790   "BFD_RELOC_860_HIGOTOFF",
1791   "BFD_RELOC_OPENRISC_ABS_26",
1792   "BFD_RELOC_OPENRISC_REL_26",
1793   "BFD_RELOC_H8_DIR16A8",
1794   "BFD_RELOC_H8_DIR16R8",
1795   "BFD_RELOC_H8_DIR24A8",
1796   "BFD_RELOC_H8_DIR24R8",
1797   "BFD_RELOC_H8_DIR32A16",
1798   "BFD_RELOC_XSTORMY16_REL_12",
1799   "BFD_RELOC_XSTORMY16_12",
1800   "BFD_RELOC_XSTORMY16_24",
1801   "BFD_RELOC_XSTORMY16_FPTR16",
1802   "BFD_RELOC_XC16X_PAG",
1803   "BFD_RELOC_XC16X_POF",
1804   "BFD_RELOC_XC16X_SEG",
1805   "BFD_RELOC_XC16X_SOF",
1806   "BFD_RELOC_VAX_GLOB_DAT",
1807   "BFD_RELOC_VAX_JMP_SLOT",
1808   "BFD_RELOC_VAX_RELATIVE",
1809   "BFD_RELOC_MT_PC16",
1810   "BFD_RELOC_MT_HI16",
1811   "BFD_RELOC_MT_LO16",
1812   "BFD_RELOC_MT_GNU_VTINHERIT",
1813   "BFD_RELOC_MT_GNU_VTENTRY",
1814   "BFD_RELOC_MT_PCINSN8",
1815   "BFD_RELOC_MSP430_10_PCREL",
1816   "BFD_RELOC_MSP430_16_PCREL",
1817   "BFD_RELOC_MSP430_16",
1818   "BFD_RELOC_MSP430_16_PCREL_BYTE",
1819   "BFD_RELOC_MSP430_16_BYTE",
1820   "BFD_RELOC_MSP430_2X_PCREL",
1821   "BFD_RELOC_MSP430_RL_PCREL",
1822   "BFD_RELOC_IQ2000_OFFSET_16",
1823   "BFD_RELOC_IQ2000_OFFSET_21",
1824   "BFD_RELOC_IQ2000_UHI16",
1825   "BFD_RELOC_XTENSA_RTLD",
1826   "BFD_RELOC_XTENSA_GLOB_DAT",
1827   "BFD_RELOC_XTENSA_JMP_SLOT",
1828   "BFD_RELOC_XTENSA_RELATIVE",
1829   "BFD_RELOC_XTENSA_PLT",
1830   "BFD_RELOC_XTENSA_DIFF8",
1831   "BFD_RELOC_XTENSA_DIFF16",
1832   "BFD_RELOC_XTENSA_DIFF32",
1833   "BFD_RELOC_XTENSA_SLOT0_OP",
1834   "BFD_RELOC_XTENSA_SLOT1_OP",
1835   "BFD_RELOC_XTENSA_SLOT2_OP",
1836   "BFD_RELOC_XTENSA_SLOT3_OP",
1837   "BFD_RELOC_XTENSA_SLOT4_OP",
1838   "BFD_RELOC_XTENSA_SLOT5_OP",
1839   "BFD_RELOC_XTENSA_SLOT6_OP",
1840   "BFD_RELOC_XTENSA_SLOT7_OP",
1841   "BFD_RELOC_XTENSA_SLOT8_OP",
1842   "BFD_RELOC_XTENSA_SLOT9_OP",
1843   "BFD_RELOC_XTENSA_SLOT10_OP",
1844   "BFD_RELOC_XTENSA_SLOT11_OP",
1845   "BFD_RELOC_XTENSA_SLOT12_OP",
1846   "BFD_RELOC_XTENSA_SLOT13_OP",
1847   "BFD_RELOC_XTENSA_SLOT14_OP",
1848   "BFD_RELOC_XTENSA_SLOT0_ALT",
1849   "BFD_RELOC_XTENSA_SLOT1_ALT",
1850   "BFD_RELOC_XTENSA_SLOT2_ALT",
1851   "BFD_RELOC_XTENSA_SLOT3_ALT",
1852   "BFD_RELOC_XTENSA_SLOT4_ALT",
1853   "BFD_RELOC_XTENSA_SLOT5_ALT",
1854   "BFD_RELOC_XTENSA_SLOT6_ALT",
1855   "BFD_RELOC_XTENSA_SLOT7_ALT",
1856   "BFD_RELOC_XTENSA_SLOT8_ALT",
1857   "BFD_RELOC_XTENSA_SLOT9_ALT",
1858   "BFD_RELOC_XTENSA_SLOT10_ALT",
1859   "BFD_RELOC_XTENSA_SLOT11_ALT",
1860   "BFD_RELOC_XTENSA_SLOT12_ALT",
1861   "BFD_RELOC_XTENSA_SLOT13_ALT",
1862   "BFD_RELOC_XTENSA_SLOT14_ALT",
1863   "BFD_RELOC_XTENSA_OP0",
1864   "BFD_RELOC_XTENSA_OP1",
1865   "BFD_RELOC_XTENSA_OP2",
1866   "BFD_RELOC_XTENSA_ASM_EXPAND",
1867   "BFD_RELOC_XTENSA_ASM_SIMPLIFY",
1868   "BFD_RELOC_Z80_DISP8",
1869   "BFD_RELOC_Z8K_DISP7",
1870   "BFD_RELOC_Z8K_CALLR",
1871   "BFD_RELOC_Z8K_IMM4L",
1872  "@@overflow: BFD_RELOC_UNUSED@@",
1873 };
1874 #endif
1875 
1876 reloc_howto_type *bfd_default_reloc_type_lookup
1877    (bfd *abfd, bfd_reloc_code_real_type  code);
1878 
1879 bfd_boolean bfd_generic_relax_section
1880    (bfd *abfd,
1881     asection *section,
1882     struct bfd_link_info *,
1883     bfd_boolean *);
1884 
1885 bfd_boolean bfd_generic_gc_sections
1886    (bfd *, struct bfd_link_info *);
1887 
1888 bfd_boolean bfd_generic_merge_sections
1889    (bfd *, struct bfd_link_info *);
1890 
1891 bfd_byte *bfd_generic_get_relocated_section_contents
1892    (bfd *abfd,
1893     struct bfd_link_info *link_info,
1894     struct bfd_link_order *link_order,
1895     bfd_byte *data,
1896     bfd_boolean relocatable,
1897     asymbol **symbols);
1898 
1899 /* Extracted from archures.c.  */
1900 extern const bfd_arch_info_type bfd_default_arch_struct;
1901 bfd_boolean bfd_default_set_arch_mach
1902    (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
1903 
1904 const bfd_arch_info_type *bfd_default_compatible
1905    (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
1906 
1907 bfd_boolean bfd_default_scan
1908    (const struct bfd_arch_info *info, const char *string);
1909 
1910 /* Extracted from elf.c.  */
1911 struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name);
1912 
1913