* corelow.c, exec.c, inftarg.c, m3-nat.c, op50-rom.c, procfs.c,
[deliverable/binutils-gdb.git] / bfd / libbfd.h
CommitLineData
c618de01
SC
1/* libbfd.h -- Declarations used by bfd library *implementation*.
2 (This include file is not for users of the library.)
4ee3b9be 3 Copyright 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
c618de01 4 Written by Cygnus Support.
fc723380 5
e914ed52
ILT
6** NOTE: libbfd.h is a GENERATED file. Don't change it; instead,
7** change libbfd-in.h or the other BFD source files processed to
8** generate this file.
9
c618de01 10This file is part of BFD, the Binary File Descriptor library.
4a81b561 11
c618de01 12This program is free software; you can redistribute it and/or modify
4a81b561 13it under the terms of the GNU General Public License as published by
c618de01
SC
14the Free Software Foundation; either version 2 of the License, or
15(at your option) any later version.
4a81b561 16
c618de01 17This program is distributed in the hope that it will be useful,
4a81b561
DHW
18but WITHOUT ANY WARRANTY; without even the implied warranty of
19MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20GNU General Public License for more details.
21
22You should have received a copy of the GNU General Public License
c618de01
SC
23along with this program; if not, write to the Free Software
24Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
4a81b561 25
01dd1b2b
SC
26/* Align an address upward to a boundary, expressed as a number of bytes.
27 E.g. align to an 8-byte boundary with argument of 8. */
de0da6ce 28#define BFD_ALIGN(this, boundary) \
01dd1b2b
SC
29 ((( (this) + ((boundary) -1)) & (~((boundary)-1))))
30
4a81b561
DHW
31/* If you want to read and write large blocks, you might want to do it
32 in quanta of this amount */
33#define DEFAULT_BUFFERSIZE 8192
34
fc723380
JG
35/* Set a tdata field. Can't use the other macros for this, since they
36 do casts, and casting to the left of assignment isn't portable. */
d5cd3c0e 37#define set_tdata(bfd, v) ((bfd)->tdata.any = (PTR) (v))
fc723380
JG
38
39/* tdata for an archive. For an input archive, cache
40 needs to be free()'d. For an output archive, symdefs do. */
4a81b561
DHW
41
42struct artdata {
43 file_ptr first_file_filepos;
44 /* Speed up searching the armap */
45 struct ar_cache *cache;
46 bfd *archive_head; /* Only interesting in output routines */
47 carsym *symdefs; /* the symdef entries */
48 symindex symdef_count; /* how many there are */
49 char *extended_names; /* clever intel extension */
c188b0be
DM
50 /* when more compilers are standard C, this can be a time_t */
51 long armap_timestamp; /* Timestamp value written into armap.
b5b4294e
JG
52 This is used for BSD archives to check
53 that the timestamp is recent enough
54 for the BSD linker to not complain,
55 just before we finish writing an
56 archive. */
57 file_ptr armap_datepos; /* Position within archive to seek to
58 rewrite the date field. */
b59f0276 59 PTR tdata; /* Backend specific information. */
4a81b561
DHW
60};
61
e98e6ec1 62#define bfd_ardata(bfd) ((bfd)->tdata.aout_ar_data)
4a81b561
DHW
63
64/* Goes in bfd's arelt_data slot */
65struct areltdata {
66 char * arch_header; /* it's actually a string */
67 unsigned int parsed_size; /* octets of filesize not including ar_hdr */
68 char *filename; /* null-terminated */
69};
70
71#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
72
f4bd7a8f 73char *bfd_zmalloc PARAMS ((bfd_size_type size));
9846338e 74
fc723380
JG
75/* These routines allocate and free things on the BFD's obstack. Note
76 that realloc can never occur in place. */
4a81b561 77
6affd66a
KR
78PTR bfd_alloc PARAMS ((bfd *abfd, size_t size));
79PTR bfd_zalloc PARAMS ((bfd *abfd, size_t size));
4ee3b9be 80PTR bfd_realloc PARAMS ((bfd *abfd, PTR orig, size_t size));
6affd66a 81void bfd_alloc_grow PARAMS ((bfd *abfd, PTR thing, size_t size));
287c221d
PB
82PTR bfd_alloc_finish PARAMS ((bfd *abfd));
83PTR bfd_alloc_by_size_t PARAMS ((bfd *abfd, size_t wanted));
84
85#define bfd_release(x,y) (void) obstack_free(&(x->memory),y)
86
287c221d 87bfd * _bfd_create_empty_archive_element_shell PARAMS ((bfd *obfd));
f4bd7a8f 88bfd * _bfd_look_for_bfd_in_cache PARAMS ((bfd *arch_bfd, file_ptr index));
b59f0276 89boolean _bfd_add_bfd_to_archive_cache PARAMS ((bfd *, file_ptr, bfd *));
287c221d 90boolean _bfd_generic_mkarchive PARAMS ((bfd *abfd));
e914ed52
ILT
91struct areltdata *_bfd_snarf_ar_hdr PARAMS ((bfd *abfd));
92const bfd_target *bfd_generic_archive_p PARAMS ((bfd *abfd));
287c221d 93boolean bfd_slurp_armap PARAMS ((bfd *abfd));
898728d4 94boolean bfd_slurp_bsd_armap_f2 PARAMS ((bfd *abfd));
287c221d
PB
95#define bfd_slurp_bsd_armap bfd_slurp_armap
96#define bfd_slurp_coff_armap bfd_slurp_armap
97boolean _bfd_slurp_extended_name_table PARAMS ((bfd *abfd));
98boolean _bfd_write_archive_contents PARAMS ((bfd *abfd));
f4bd7a8f
DM
99bfd *_bfd_get_elt_at_filepos PARAMS ((bfd *archive, file_ptr filepos));
100bfd * _bfd_new_bfd PARAMS ((void));
4a81b561
DHW
101
102#define DEFAULT_STRING_SPACE_SIZE 0x2000
287c221d
PB
103boolean bfd_add_to_string_table PARAMS ((char **table, char *new_string,
104 unsigned int *table_length,
105 char **free_ptr));
898728d4 106
287c221d
PB
107boolean bfd_false PARAMS ((bfd *ignore));
108boolean bfd_true PARAMS ((bfd *ignore));
109PTR bfd_nullvoidptr PARAMS ((bfd *ignore));
110int bfd_0 PARAMS ((bfd *ignore));
111unsigned int bfd_0u PARAMS ((bfd *ignore));
326e32d7 112long bfd_0l PARAMS ((bfd *ignore));
6812b607 113long _bfd_n1 PARAMS ((bfd *ignore));
287c221d
PB
114void bfd_void PARAMS ((bfd *ignore));
115
e914ed52
ILT
116bfd *_bfd_new_bfd_contained_in PARAMS ((bfd *));
117const bfd_target *_bfd_dummy_target PARAMS ((bfd *abfd));
4a81b561 118
287c221d 119void bfd_dont_truncate_arname PARAMS ((bfd *abfd, CONST char *filename,
69ebee86 120 char *hdr));
287c221d 121void bfd_bsd_truncate_arname PARAMS ((bfd *abfd, CONST char *filename,
69ebee86 122 char *hdr));
287c221d 123void bfd_gnu_truncate_arname PARAMS ((bfd *abfd, CONST char *filename,
69ebee86 124 char *hdr));
4a81b561 125
287c221d 126boolean bsd_write_armap PARAMS ((bfd *arch, unsigned int elength,
01dd1b2b 127 struct orl *map, unsigned int orl_count, int stridx));
4a81b561 128
287c221d 129boolean coff_write_armap PARAMS ((bfd *arch, unsigned int elength,
01dd1b2b 130 struct orl *map, unsigned int orl_count, int stridx));
4a81b561 131
287c221d 132bfd * bfd_generic_openr_next_archived_file PARAMS ((bfd *archive,
2203f786 133 bfd *last_file));
4a81b561 134
287c221d 135int bfd_generic_stat_arch_elt PARAMS ((bfd *, struct stat *));
fc723380 136
6812b607
ILT
137\f
138/* Generic routines to use for BFD_JUMP_TABLE_GENERIC. Use
139 BFD_JUMP_TABLE_GENERIC (_bfd_generic). */
140
141#define _bfd_generic_close_and_cleanup bfd_true
142#define _bfd_generic_bfd_free_cached_info bfd_true
143#define _bfd_generic_new_section_hook \
144 ((boolean (*) PARAMS ((bfd *, asection *))) bfd_true)
145extern boolean _bfd_generic_get_section_contents
146 PARAMS ((bfd *, asection *, PTR location, file_ptr offset,
147 bfd_size_type count));
148
149/* Generic routines to use for BFD_JUMP_TABLE_COPY. Use
150 BFD_JUMP_TABLE_COPY (_bfd_generic). */
151
152#define _bfd_generic_bfd_copy_private_bfd_data \
153 ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
154#define _bfd_generic_bfd_copy_private_section_data \
155 ((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
156
157/* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file
158 support. Use BFD_JUMP_TABLE_CORE (_bfd_nocore). */
159
160extern char *_bfd_nocore_core_file_failing_command PARAMS ((bfd *));
161extern int _bfd_nocore_core_file_failing_signal PARAMS ((bfd *));
162extern boolean _bfd_nocore_core_file_matches_executable_p
163 PARAMS ((bfd *, bfd *));
164
165/* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive
166 file support. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive). */
167
168#define _bfd_noarchive_slurp_armap bfd_false
169#define _bfd_noarchive_slurp_extended_name_table bfd_false
170#define _bfd_noarchive_truncate_arname \
171 ((void (*) PARAMS ((bfd *, const char *, char *))) bfd_void)
172#define _bfd_noarchive_write_armap \
173 ((boolean (*) \
174 PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \
175 bfd_false)
176#define _bfd_noarchive_openr_next_archived_file \
177 ((bfd *(*) PARAMS ((bfd *, bfd *))) bfd_nullvoidptr)
178#define _bfd_noarchive_generic_stat_arch_elt bfd_generic_stat_arch_elt
0443af31 179#define _bfd_noarchive_update_armap_timestamp bfd_false
6812b607
ILT
180
181/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get BSD style
182 archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_bsd). */
183
184#define _bfd_archive_bsd_slurp_armap bfd_slurp_bsd_armap
185#define _bfd_archive_bsd_slurp_extended_name_table \
186 _bfd_slurp_extended_name_table
187#define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname
188#define _bfd_archive_bsd_write_armap bsd_write_armap
189#define _bfd_archive_bsd_openr_next_archived_file \
190 bfd_generic_openr_next_archived_file
191#define _bfd_archive_bsd_generic_stat_arch_elt \
192 bfd_generic_stat_arch_elt
0443af31 193extern boolean _bfd_archive_bsd_update_armap_timestamp PARAMS ((bfd *));
6812b607
ILT
194
195/* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style
196 archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff). */
197
198#define _bfd_archive_coff_slurp_armap bfd_slurp_coff_armap
199#define _bfd_archive_coff_slurp_extended_name_table \
200 _bfd_slurp_extended_name_table
201#define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname
202#define _bfd_archive_coff_write_armap coff_write_armap
203#define _bfd_archive_coff_openr_next_archived_file \
204 bfd_generic_openr_next_archived_file
205#define _bfd_archive_coff_generic_stat_arch_elt \
206 bfd_generic_stat_arch_elt
0443af31 207#define _bfd_archive_coff_update_armap_timestamp bfd_true
6812b607
ILT
208
209/* Routines to use for BFD_JUMP_TABLE_SYMBOLS where there is no symbol
210 support. Use BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols). */
211
212#define _bfd_nosymbols_get_symtab_upper_bound _bfd_n1
213#define _bfd_nosymbols_get_symtab \
214 ((long (*) PARAMS ((bfd *, asymbol **))) _bfd_n1)
215#define _bfd_nosymbols_make_empty_symbol \
216 ((asymbol *(*) PARAMS ((bfd *))) bfd_nullvoidptr)
217#define _bfd_nosymbols_print_symbol \
218 ((void (*) PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type))) bfd_void)
219#define _bfd_nosymbols_get_symbol_info \
220 ((void (*) PARAMS ((bfd *, asymbol *, symbol_info *))) bfd_void)
221#define _bfd_nosymbols_bfd_is_local_label \
222 ((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
223#define _bfd_nosymbols_get_lineno \
224 ((alent *(*) PARAMS ((bfd *, asymbol *))) bfd_nullvoidptr)
225#define _bfd_nosymbols_find_nearest_line \
226 ((boolean (*) \
227 PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, \
228 const char **, unsigned int *))) \
229 bfd_false)
230#define _bfd_nosymbols_bfd_make_debug_symbol \
231 ((asymbol *(*) PARAMS ((bfd *, PTR, unsigned long))) bfd_nullvoidptr)
232
233/* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc
234 support. Use BFD_JUMP_TABLE_RELOCS (_bfd_norelocs). */
235
236#define _bfd_norelocs_get_reloc_upper_bound \
237 ((long (*) PARAMS ((bfd *, asection *))) _bfd_n1)
238#define _bfd_norelocs_canonicalize_reloc \
239 ((long (*) PARAMS ((bfd *, asection *, arelent **, asymbol **))) _bfd_n1)
240#define _bfd_norelocs_bfd_reloc_type_lookup \
241 ((const reloc_howto_type *(*) PARAMS ((bfd *, bfd_reloc_code_real_type))) \
242 bfd_nullvoidptr)
243
244/* Routines to use for BFD_JUMP_TABLE_WRITE for targets which may not
245 be written. Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite). */
246
247#define _bfd_nowrite_set_arch_mach \
248 ((boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \
249 bfd_false)
250#define _bfd_nowrite_set_section_contents \
251 ((boolean (*) PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \
252 bfd_false)
253
254/* Generic routines to use for BFD_JUMP_TABLE_WRITE. Use
255 BFD_JUMP_TABLE_WRITE (_bfd_generic). */
256
257#define _bfd_generic_set_arch_mach bfd_default_set_arch_mach
258extern boolean _bfd_generic_set_section_contents
259 PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type));
260
261/* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not
262 support linking. Use BFD_JUMP_TABLE_LINK (_bfd_nolink). */
263
264#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, boolean))) bfd_0)
265#define _bfd_nolink_bfd_get_relocated_section_contents \
266 ((bfd_byte *(*) \
267 PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, \
268 bfd_byte *, boolean, asymbol **))) \
269 bfd_nullvoidptr)
270#define _bfd_nolink_bfd_relax_section \
271 ((boolean (*) \
272 PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *))) \
273 bfd_false)
274#define _bfd_nolink_bfd_link_hash_table_create \
275 ((struct bfd_link_hash_table *(*) PARAMS ((bfd *))) bfd_nullvoidptr)
276#define _bfd_nolink_bfd_link_add_symbols \
277 ((boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
278#define _bfd_nolink_bfd_final_link \
279 ((boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false)
4ee3b9be
JL
280
281/* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not
282 have dynamic symbols or relocs. Use BFD_JUMP_TABLE_DYNAMIC
283 (_bfd_nodynamic). */
284
285#define _bfd_nodynamic_get_dynamic_symtab_upper_bound _bfd_n1
286#define _bfd_nodynamic_canonicalize_dynamic_symtab \
287 ((long (*) PARAMS ((bfd *, asymbol **))) _bfd_n1)
288#define _bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_n1
289#define _bfd_nodynamic_canonicalize_dynamic_reloc \
290 ((long (*) PARAMS ((bfd *, arelent **, asymbol **))) _bfd_n1)
4c3721d5 291\f
f1cca647
ILT
292/* Generic routine to determine of the given symbol is a local
293 label. */
294extern boolean bfd_generic_is_local_label PARAMS ((bfd *, asymbol *));
295
4c3721d5
ILT
296/* A routine to create entries for a bfd_link_hash_table. */
297extern struct bfd_hash_entry *_bfd_link_hash_newfunc
298 PARAMS ((struct bfd_hash_entry *entry,
299 struct bfd_hash_table *table,
300 const char *string));
301
302/* Initialize a bfd_link_hash_table. */
303extern boolean _bfd_link_hash_table_init
304 PARAMS ((struct bfd_link_hash_table *, bfd *,
305 struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
306 struct bfd_hash_table *,
307 const char *)));
308
309/* Generic link hash table creation routine. */
310extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create
311 PARAMS ((bfd *));
312
313/* Generic add symbol routine. */
314extern boolean _bfd_generic_link_add_symbols
315 PARAMS ((bfd *, struct bfd_link_info *));
316
4335ce64
ILT
317/* Generic add symbol routine. This version is used by targets for
318 which the linker must collect constructors and destructors by name,
319 as the collect2 program does. */
320extern boolean _bfd_generic_link_add_symbols_collect
321 PARAMS ((bfd *, struct bfd_link_info *));
322
4c3721d5
ILT
323/* Generic archive add symbol routine. */
324extern boolean _bfd_generic_link_add_archive_symbols
325 PARAMS ((bfd *, struct bfd_link_info *,
326 boolean (*checkfn) (bfd *, struct bfd_link_info *, boolean *)));
327
328/* Forward declaration to avoid prototype errors. */
329typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
330
331/* Generic routine to add a single symbol. */
332extern boolean _bfd_generic_link_add_one_symbol
333 PARAMS ((struct bfd_link_info *, bfd *, const char *name, flagword,
334 asection *, bfd_vma, const char *, boolean copy,
f1cca647 335 boolean constructor, struct bfd_link_hash_entry **));
4c3721d5
ILT
336
337/* Generic link routine. */
338extern boolean _bfd_generic_final_link
339 PARAMS ((bfd *, struct bfd_link_info *));
340
f1cca647
ILT
341/* Generic reloc_link_order processing routine. */
342extern boolean _bfd_generic_reloc_link_order
343 PARAMS ((bfd *, struct bfd_link_info *, asection *,
344 struct bfd_link_order *));
345
4c3721d5
ILT
346/* Default link order processing routine. */
347extern boolean _bfd_default_link_order
348 PARAMS ((bfd *, struct bfd_link_info *, asection *,
349 struct bfd_link_order *));
350
f1cca647
ILT
351/* Count the number of reloc entries in a link order list. */
352extern unsigned int _bfd_count_link_order_relocs
353 PARAMS ((struct bfd_link_order *));
354
4c3721d5
ILT
355/* Final link relocation routine. */
356extern bfd_reloc_status_type _bfd_final_link_relocate
357 PARAMS ((const reloc_howto_type *, bfd *, asection *, bfd_byte *,
358 bfd_vma address, bfd_vma value, bfd_vma addend));
359
360/* Relocate a particular location by a howto and a value. */
361extern bfd_reloc_status_type _bfd_relocate_contents
362 PARAMS ((const reloc_howto_type *, bfd *, bfd_vma, bfd_byte *));
e914ed52
ILT
363
364/* Create a string table. */
365extern struct bfd_strtab_hash *_bfd_stringtab_init PARAMS ((void));
366
367/* Free a string table. */
368extern void _bfd_stringtab_free PARAMS ((struct bfd_strtab_hash *));
369
370/* Get the size of a string table. */
371extern bfd_size_type _bfd_stringtab_size PARAMS ((struct bfd_strtab_hash *));
372
373/* Add a string to a string table. */
374extern bfd_size_type _bfd_stringtab_add
375 PARAMS ((struct bfd_strtab_hash *, const char *, boolean hash,
376 boolean copy));
377
378/* Write out a string table. */
379extern boolean _bfd_stringtab_emit PARAMS ((bfd *, struct bfd_strtab_hash *));
4c3721d5 380\f
4a81b561
DHW
381/* Macros to tell if bfds are read or write enabled.
382
383 Note that bfds open for read may be scribbled into if the fd passed
384 to bfd_fdopenr is actually open both for read and write
385 simultaneously. However an output bfd will never be open for
386 read. Therefore sometimes you want to check bfd_read_p or
387 !bfd_read_p, and only sometimes bfd_write_p.
388*/
389
287c221d
PB
390#define bfd_read_p(abfd) ((abfd)->direction == read_direction || (abfd)->direction == both_direction)
391#define bfd_write_p(abfd) ((abfd)->direction == write_direction || (abfd)->direction == both_direction)
392
393void bfd_assert PARAMS ((char*,int));
4a81b561 394
4a81b561
DHW
395#define BFD_ASSERT(x) \
396{ if (!(x)) bfd_assert(__FILE__,__LINE__); }
397
398#define BFD_FAIL() \
399{ bfd_assert(__FILE__,__LINE__); }
400
287c221d 401FILE * bfd_cache_lookup_worker PARAMS ((bfd *));
4a81b561
DHW
402
403extern bfd *bfd_last_cache;
4a81b561
DHW
404
405/* Now Steve, what's the story here? */
406#ifdef lint
407#define itos(x) "l"
408#define stoi(x) 1
409#else
410#define itos(x) ((char*)(x))
411#define stoi(x) ((int)(x))
412#endif
69ebee86 413
4c3721d5 414/* List of supported target vectors, and the default vector (if
f4bd7a8f 415 bfd_default_vector[0] is NULL, there is no default). */
e914ed52
ILT
416extern const bfd_target * const bfd_target_vector[];
417extern const bfd_target * const bfd_default_vector[];
4c3721d5 418
b8d69097 419/* And more follows */
6f715d66 420
fefb4b30
JG
421void
422bfd_check_init PARAMS ((void));
423
fefb4b30
JG
424void
425bfd_write_bigendian_4byte_int PARAMS ((bfd *abfd, int i));
426
3ceaa255 427unsigned int
fefb4b30
JG
428bfd_log2 PARAMS ((bfd_vma x));
429
6f715d66 430#define BFD_CACHE_MAX_OPEN 10
6f715d66 431extern bfd *bfd_last_cache;
e98e6ec1 432
6f715d66 433#define bfd_cache_lookup(x) \
0cda46cf
SC
434 ((x)==bfd_last_cache? \
435 (FILE*)(bfd_last_cache->iostream): \
436 bfd_cache_lookup_worker(x))
4ee3b9be
JL
437boolean
438bfd_cache_init PARAMS ((bfd *abfd));
439
fefb4b30 440boolean
c188b0be 441bfd_cache_close PARAMS ((bfd *abfd));
fefb4b30
JG
442
443FILE*
c188b0be 444bfd_open_file PARAMS ((bfd *abfd));
fefb4b30
JG
445
446FILE *
c188b0be 447bfd_cache_lookup_worker PARAMS ((bfd *abfd));
fefb4b30 448
80425e6c 449boolean
fefb4b30 450bfd_constructor_entry PARAMS ((bfd *abfd,
e98e6ec1
SC
451 asymbol **symbol_ptr_ptr,
452 CONST char*type));
fefb4b30 453
0443af31
KR
454#ifdef _BFD_MAKE_TABLE_bfd_reloc_code_real
455
456static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
457
458 "BFD_RELOC_64",
459 "BFD_RELOC_32",
460 "BFD_RELOC_26",
461 "BFD_RELOC_16",
462 "BFD_RELOC_14",
463 "BFD_RELOC_8",
464 "BFD_RELOC_64_PCREL",
465 "BFD_RELOC_32_PCREL",
466 "BFD_RELOC_24_PCREL",
467 "BFD_RELOC_16_PCREL",
468 "BFD_RELOC_8_PCREL",
469 "BFD_RELOC_32_BASEREL",
470 "BFD_RELOC_16_BASEREL",
471 "BFD_RELOC_8_BASEREL",
472 "BFD_RELOC_8_FFnn",
473 "BFD_RELOC_32_PCREL_S2",
474 "BFD_RELOC_16_PCREL_S2",
475 "BFD_RELOC_23_PCREL_S2",
476 "BFD_RELOC_HI22",
477 "BFD_RELOC_LO10",
478 "BFD_RELOC_GPREL16",
479 "BFD_RELOC_GPREL32",
480 "BFD_RELOC_I960_CALLJ",
481 "BFD_RELOC_NONE",
482 "BFD_RELOC_SPARC_WDISP22",
483 "BFD_RELOC_SPARC22",
484 "BFD_RELOC_SPARC13",
485 "BFD_RELOC_SPARC_GOT10",
486 "BFD_RELOC_SPARC_GOT13",
487 "BFD_RELOC_SPARC_GOT22",
488 "BFD_RELOC_SPARC_PC10",
489 "BFD_RELOC_SPARC_PC22",
490 "BFD_RELOC_SPARC_WPLT30",
491 "BFD_RELOC_SPARC_COPY",
492 "BFD_RELOC_SPARC_GLOB_DAT",
493 "BFD_RELOC_SPARC_JMP_SLOT",
494 "BFD_RELOC_SPARC_RELATIVE",
495 "BFD_RELOC_SPARC_UA32",
496 "BFD_RELOC_SPARC_BASE13",
497 "BFD_RELOC_SPARC_BASE22",
498 "BFD_RELOC_SPARC_10",
499 "BFD_RELOC_SPARC_11",
500 "BFD_RELOC_SPARC_OLO10",
501 "BFD_RELOC_SPARC_HH22",
502 "BFD_RELOC_SPARC_HM10",
503 "BFD_RELOC_SPARC_LM22",
504 "BFD_RELOC_SPARC_PC_HH22",
505 "BFD_RELOC_SPARC_PC_HM10",
506 "BFD_RELOC_SPARC_PC_LM22",
507 "BFD_RELOC_SPARC_WDISP16",
508 "BFD_RELOC_SPARC_WDISP19",
509 "BFD_RELOC_SPARC_GLOB_JMP",
510 "BFD_RELOC_SPARC_LO7",
511 "BFD_RELOC_ALPHA_GPDISP_HI16",
512 "BFD_RELOC_ALPHA_GPDISP_LO16",
513 "BFD_RELOC_ALPHA_LITERAL",
514 "BFD_RELOC_ALPHA_LITUSE",
515 "BFD_RELOC_ALPHA_HINT",
516 "BFD_RELOC_MIPS_JMP",
517 "BFD_RELOC_HI16",
518 "BFD_RELOC_HI16_S",
519 "BFD_RELOC_LO16",
520 "BFD_RELOC_PCREL_HI16_S",
521 "BFD_RELOC_PCREL_LO16",
522 "BFD_RELOC_MIPS_LITERAL",
523 "BFD_RELOC_MIPS_GOT16",
524 "BFD_RELOC_MIPS_CALL16",
525 "BFD_RELOC_386_GOT32",
526 "BFD_RELOC_386_PLT32",
527 "BFD_RELOC_386_COPY",
528 "BFD_RELOC_386_GLOB_DAT",
529 "BFD_RELOC_386_JUMP_SLOT",
530 "BFD_RELOC_386_RELATIVE",
531 "BFD_RELOC_386_GOTOFF",
532 "BFD_RELOC_386_GOTPC",
533 "BFD_RELOC_NS32K_IMM_8",
534 "BFD_RELOC_NS32K_IMM_16",
535 "BFD_RELOC_NS32K_IMM_32",
536 "BFD_RELOC_NS32K_IMM_8_PCREL",
537 "BFD_RELOC_NS32K_IMM_16_PCREL",
538 "BFD_RELOC_NS32K_IMM_32_PCREL",
539 "BFD_RELOC_NS32K_DISP_8",
540 "BFD_RELOC_NS32K_DISP_16",
541 "BFD_RELOC_NS32K_DISP_32",
542 "BFD_RELOC_NS32K_DISP_8_PCREL",
543 "BFD_RELOC_NS32K_DISP_16_PCREL",
544 "BFD_RELOC_NS32K_DISP_32_PCREL",
545 "BFD_RELOC_PPC_B26",
546 "BFD_RELOC_PPC_BA26",
547 "BFD_RELOC_PPC_TOC16",
548 "BFD_RELOC_CTOR",
549 "@@overflow: BFD_RELOC_UNUSED@@",
550};
551#endif
552
e2756048 553const struct reloc_howto_struct *
fefb4b30 554bfd_default_reloc_type_lookup
57a1867e 555 PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
fefb4b30
JG
556
557boolean
558bfd_generic_relax_section
559 PARAMS ((bfd *abfd,
d58b7049 560 asection *section,
4c3721d5 561 struct bfd_link_info *,
326e32d7 562 boolean *));
fefb4b30 563
e98e6ec1 564bfd_byte *
fefb4b30 565
287c221d 566bfd_generic_get_relocated_section_contents PARAMS ((bfd *abfd,
4c3721d5
ILT
567 struct bfd_link_info *link_info,
568 struct bfd_link_order *link_order,
14e3c2e4 569 bfd_byte *data,
4c3721d5
ILT
570 boolean relocateable,
571 asymbol **symbols));
14e3c2e4 572
e98e6ec1 573extern bfd_arch_info_type bfd_default_arch_struct;
fefb4b30
JG
574boolean
575bfd_default_set_arch_mach PARAMS ((bfd *abfd,
e98e6ec1
SC
576 enum bfd_architecture arch,
577 unsigned long mach));
fefb4b30 578
c188b0be 579void
fefb4b30
JG
580bfd_arch_init PARAMS ((void));
581
582void
c188b0be 583bfd_arch_linkin PARAMS ((bfd_arch_info_type *ptr));
fefb4b30
JG
584
585CONST bfd_arch_info_type *
586bfd_default_compatible
587 PARAMS ((CONST bfd_arch_info_type *a,
e98e6ec1 588 CONST bfd_arch_info_type *b));
fefb4b30
JG
589
590boolean
c188b0be 591bfd_default_scan PARAMS ((CONST struct bfd_arch_info *info, CONST char *string));
fefb4b30 592
3ceaa255 593struct elf_internal_shdr *
6affd66a 594bfd_elf_find_section PARAMS ((bfd *abfd, char *name));
fefb4b30 595
This page took 0.155015 seconds and 4 git commands to generate.