1 |
/* genlink.h -- interface to the BFD generic linker |
/* genlink.h -- interface to the BFD generic linker |
2 |
Copyright 1993, 1994, 1996 Free Software Foundation, Inc. |
Copyright 1993, 1994, 1996, 2002 Free Software Foundation, Inc. |
3 |
Written by Ian Lance Taylor, Cygnus Support. |
Written by Ian Lance Taylor, Cygnus Support. |
4 |
|
|
5 |
This file is part of BFD, the Binary File Descriptor library. |
This file is part of BFD, the Binary File Descriptor library. |
42 |
{ |
{ |
43 |
struct bfd_link_hash_entry root; |
struct bfd_link_hash_entry root; |
44 |
/* Whether this symbol has been written out. */ |
/* Whether this symbol has been written out. */ |
45 |
boolean written; |
bfd_boolean written; |
46 |
/* Symbol from input BFD. */ |
/* Symbol from input BFD. */ |
47 |
asymbol *sym; |
asymbol *sym; |
48 |
}; |
}; |
54 |
struct bfd_link_hash_table root; |
struct bfd_link_hash_table root; |
55 |
}; |
}; |
56 |
|
|
57 |
/* Look up an entry in an generic link hash table. */ |
/* Look up an entry in a generic link hash table. */ |
58 |
|
|
59 |
#define _bfd_generic_link_hash_lookup(table, string, create, copy, follow) \ |
#define _bfd_generic_link_hash_lookup(table, string, create, copy, follow) \ |
60 |
((struct generic_link_hash_entry *) \ |
((struct generic_link_hash_entry *) \ |
61 |
bfd_link_hash_lookup (&(table)->root, (string), (create), (copy), (follow))) |
bfd_link_hash_lookup (&(table)->root, (string), (create), (copy), (follow))) |
62 |
|
|
63 |
/* Traverse an generic link hash table. */ |
/* Traverse a generic link hash table. */ |
64 |
|
|
65 |
#define _bfd_generic_link_hash_traverse(table, func, info) \ |
#define _bfd_generic_link_hash_traverse(table, func, info) \ |
66 |
(bfd_link_hash_traverse \ |
(bfd_link_hash_traverse \ |
67 |
(&(table)->root, \ |
(&(table)->root, \ |
68 |
(boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ |
(bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ |
69 |
(info))) |
(info))) |
70 |
|
|
71 |
/* Get the generic link hash table from the info structure. This is |
/* Get the generic link hash table from the info structure. This is |
82 |
|
|
83 |
/* Add the symbols of input_bfd to the symbols being built for |
/* Add the symbols of input_bfd to the symbols being built for |
84 |
output_bfd. */ |
output_bfd. */ |
85 |
extern boolean _bfd_generic_link_output_symbols |
extern bfd_boolean _bfd_generic_link_output_symbols |
86 |
PARAMS ((bfd *output_bfd, bfd *input_bfd, struct bfd_link_info *, |
PARAMS ((bfd *output_bfd, bfd *input_bfd, struct bfd_link_info *, |
87 |
size_t *psymalloc)); |
size_t *psymalloc)); |
88 |
|
|
100 |
/* Write out a single global symbol. This is expected to be called |
/* Write out a single global symbol. This is expected to be called |
101 |
via _bfd_generic_link_hash_traverse. The second argument must |
via _bfd_generic_link_hash_traverse. The second argument must |
102 |
actually be a struct generic_write_global_symbol_info *. */ |
actually be a struct generic_write_global_symbol_info *. */ |
103 |
extern boolean _bfd_generic_link_write_global_symbol |
extern bfd_boolean _bfd_generic_link_write_global_symbol |
104 |
PARAMS ((struct generic_link_hash_entry *, PTR)); |
PARAMS ((struct generic_link_hash_entry *, PTR)); |
105 |
|
|
106 |
/* Generic link hash table entry creation routine. */ |
/* Generic link hash table entry creation routine. */ |