1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23: #ifndef LDEMUL_H
24: #define LDEMUL_H
25:
26:
27: struct option;
28:
29: extern void ldemul_hll
30: (char *);
31: extern void ldemul_syslib
32: (char *);
33: extern void ldemul_after_parse
34: (void);
35: extern void ldemul_before_parse
36: (void);
37: extern void ldemul_after_open
38: (void);
39: extern void ldemul_after_allocation
40: (void);
41: extern void ldemul_before_allocation
42: (void);
43: extern void ldemul_set_output_arch
44: (void);
45: extern char *ldemul_choose_target
46: (int, char**);
47: extern void ldemul_choose_mode
48: (char *);
49: extern void ldemul_list_emulations
50: (FILE *);
51: extern void ldemul_list_emulation_options
52: (FILE *);
53: extern char *ldemul_get_script
54: (int *isfile);
55: extern void ldemul_finish
56: (void);
57: extern void ldemul_set_symbols
58: (void);
59: extern void ldemul_create_output_section_statements
60: (void);
61: extern bfd_boolean ldemul_place_orphan
62: (asection *);
63: extern bfd_boolean ldemul_parse_args
64: (int, char **);
65: extern void ldemul_add_options
66: (int, char **, int, struct option **, int, struct option **);
67: extern bfd_boolean ldemul_handle_option
68: (int);
69: extern bfd_boolean ldemul_unrecognized_file
70: (struct lang_input_statement_struct *);
71: extern bfd_boolean ldemul_recognized_file
72: (struct lang_input_statement_struct *);
73: extern bfd_boolean ldemul_open_dynamic_archive
74: (const char *, struct search_dirs *, struct lang_input_statement_struct *);
75: extern char *ldemul_default_target
76: (int, char**);
77: extern void after_parse_default
78: (void);
79: extern void after_open_default
80: (void);
81: extern void after_allocation_default
82: (void);
83: extern void before_allocation_default
84: (void);
85: extern void finish_default
86: (void);
87: extern void finish_default
88: (void);
89: extern void set_output_arch_default
90: (void);
91: extern void syslib_default
92: (char*);
93: extern void hll_default
94: (char*);
95: extern int ldemul_find_potential_libraries
96: (char *, struct lang_input_statement_struct *);
97: extern struct bfd_elf_version_expr *ldemul_new_vers_pattern
98: (struct bfd_elf_version_expr *);
99:
100: typedef struct ld_emulation_xfer_struct {
101:
102:
103: void (*before_parse) (void);
104:
105:
106: void (*syslib) (char *);
107:
108:
109: void (*hll) (char *);
110:
111:
112: void (*after_parse) (void);
113:
114:
115: void (*after_open) (void);
116:
117:
118: void (*after_allocation) (void);
119:
120:
121: void (*set_output_arch) (void);
122:
123:
124: char * (*choose_target) (int, char**);
125:
126:
127: void (*before_allocation) (void);
128:
129:
130: char * (*get_script) (int *isfile);
131:
132:
133: char *emulation_name;
134:
135:
136: char *target_name;
137:
138:
139: void (*finish) (void);
140:
141:
142: void (*create_output_section_statements) (void);
143:
144:
145:
146:
147: bfd_boolean (*open_dynamic_archive)
148: (const char *arch, struct search_dirs *,
149: struct lang_input_statement_struct *entry);
150:
151:
152:
153:
154: bfd_boolean (*place_orphan)
155: (asection *);
156:
157:
158:
159: void (*set_symbols) (void);
160:
161:
162:
163: bfd_boolean (*parse_args) (int, char **);
164:
165:
166:
167: void (*add_options)
168: (int, char **, int, struct option **, int, struct option **);
169:
170:
171:
172: bfd_boolean (*handle_option) (int);
173:
174:
175:
176: bfd_boolean (*unrecognized_file)
177: (struct lang_input_statement_struct *);
178:
179:
180: void (* list_options) (FILE *);
181:
182:
183:
184: bfd_boolean (*recognized_file)
185: (struct lang_input_statement_struct *);
186:
187:
188:
189:
190:
191: int (* find_potential_libraries)
192: (char *, struct lang_input_statement_struct *);
193:
194:
195:
196: struct bfd_elf_version_expr * (*new_vers_pattern)
197: (struct bfd_elf_version_expr *);
198:
199: } ld_emulation_xfer_type;
200:
201: typedef enum {
202: intel_ic960_ld_mode_enum,
203: default_mode_enum,
204: intel_gld960_ld_mode_enum
205: } lang_emulation_mode_enum_type;
206:
207: extern ld_emulation_xfer_type *ld_emulations[];
208:
209: #endif