1 |
/* Target definitions for NN-bit ELF |
/* Target definitions for NN-bit ELF |
2 |
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 |
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, |
3 |
Free Software Foundation, Inc. |
2003, 2004, 2005 Free Software Foundation, Inc. |
4 |
|
|
5 |
This file is part of BFD, the Binary File Descriptor library. |
This file is part of BFD, the Binary File Descriptor library. |
6 |
|
|
7 |
This program is free software; you can redistribute it and/or modify |
This program is free software; you can redistribute it and/or modify |
8 |
it under the terms of the GNU General Public License as published by |
it under the terms of the GNU General Public License as published by |
9 |
the Free Software Foundation; either version 2 of the License, or |
the Free Software Foundation; either version 2 of the License, or |
10 |
(at your option) any later version. |
(at your option) any later version. |
11 |
|
|
12 |
This program is distributed in the hope that it will be useful, |
This program is distributed in the hope that it will be useful, |
13 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 |
GNU General Public License for more details. |
GNU General Public License for more details. |
16 |
|
|
17 |
You should have received a copy of the GNU General Public License |
You should have received a copy of the GNU General Public License |
18 |
along with this program; if not, write to the Free Software |
along with this program; if not, write to the Free Software |
19 |
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ |
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ |
20 |
|
|
21 |
/* This structure contains everything that BFD knows about a target. |
/* This structure contains everything that BFD knows about a target. |
22 |
It includes things like its byte order, name, what routines to call |
It includes things like its byte order, name, what routines to call |
32 |
#define bfd_elfNN_get_section_contents _bfd_generic_get_section_contents |
#define bfd_elfNN_get_section_contents _bfd_generic_get_section_contents |
33 |
#endif |
#endif |
34 |
|
|
35 |
#define bfd_elfNN_canonicalize_dynamic_symtab _bfd_elf_canonicalize_dynamic_symtab |
#define bfd_elfNN_canonicalize_dynamic_symtab \ |
36 |
|
_bfd_elf_canonicalize_dynamic_symtab |
37 |
|
#ifndef bfd_elfNN_get_synthetic_symtab |
38 |
|
#define bfd_elfNN_get_synthetic_symtab \ |
39 |
|
_bfd_elf_get_synthetic_symtab |
40 |
|
#endif |
41 |
|
#ifndef bfd_elfNN_canonicalize_reloc |
42 |
#define bfd_elfNN_canonicalize_reloc _bfd_elf_canonicalize_reloc |
#define bfd_elfNN_canonicalize_reloc _bfd_elf_canonicalize_reloc |
43 |
|
#endif |
44 |
#ifndef bfd_elfNN_find_nearest_line |
#ifndef bfd_elfNN_find_nearest_line |
45 |
#define bfd_elfNN_find_nearest_line _bfd_elf_find_nearest_line |
#define bfd_elfNN_find_nearest_line _bfd_elf_find_nearest_line |
46 |
#endif |
#endif |
47 |
#define bfd_elfNN_read_minisymbols _bfd_elf_read_minisymbols |
#define bfd_elfNN_read_minisymbols _bfd_elf_read_minisymbols |
48 |
#define bfd_elfNN_minisymbol_to_symbol _bfd_elf_minisymbol_to_symbol |
#define bfd_elfNN_minisymbol_to_symbol _bfd_elf_minisymbol_to_symbol |
49 |
#define bfd_elfNN_get_dynamic_symtab_upper_bound _bfd_elf_get_dynamic_symtab_upper_bound |
#define bfd_elfNN_get_dynamic_symtab_upper_bound \ |
50 |
|
_bfd_elf_get_dynamic_symtab_upper_bound |
51 |
#define bfd_elfNN_get_lineno _bfd_elf_get_lineno |
#define bfd_elfNN_get_lineno _bfd_elf_get_lineno |
52 |
#ifndef bfd_elfNN_get_reloc_upper_bound |
#ifndef bfd_elfNN_get_reloc_upper_bound |
53 |
#define bfd_elfNN_get_reloc_upper_bound _bfd_elf_get_reloc_upper_bound |
#define bfd_elfNN_get_reloc_upper_bound _bfd_elf_get_reloc_upper_bound |
55 |
#ifndef bfd_elfNN_get_symbol_info |
#ifndef bfd_elfNN_get_symbol_info |
56 |
#define bfd_elfNN_get_symbol_info _bfd_elf_get_symbol_info |
#define bfd_elfNN_get_symbol_info _bfd_elf_get_symbol_info |
57 |
#endif |
#endif |
58 |
#define bfd_elfNN_get_symtab _bfd_elf_get_symtab |
#define bfd_elfNN_canonicalize_symtab _bfd_elf_canonicalize_symtab |
59 |
#define bfd_elfNN_get_symtab_upper_bound _bfd_elf_get_symtab_upper_bound |
#define bfd_elfNN_get_symtab_upper_bound _bfd_elf_get_symtab_upper_bound |
|
#if 0 /* done in elf-bfd.h */ |
|
|
#define bfd_elfNN_link_record_dynamic_symbol _bfd_elf_link_record_dynamic_symbol |
|
|
#endif |
|
60 |
#define bfd_elfNN_make_empty_symbol _bfd_elf_make_empty_symbol |
#define bfd_elfNN_make_empty_symbol _bfd_elf_make_empty_symbol |
61 |
|
#ifndef bfd_elfNN_new_section_hook |
62 |
#define bfd_elfNN_new_section_hook _bfd_elf_new_section_hook |
#define bfd_elfNN_new_section_hook _bfd_elf_new_section_hook |
63 |
|
#endif |
64 |
#define bfd_elfNN_set_arch_mach _bfd_elf_set_arch_mach |
#define bfd_elfNN_set_arch_mach _bfd_elf_set_arch_mach |
65 |
#ifndef bfd_elfNN_set_section_contents |
#ifndef bfd_elfNN_set_section_contents |
66 |
#define bfd_elfNN_set_section_contents _bfd_elf_set_section_contents |
#define bfd_elfNN_set_section_contents _bfd_elf_set_section_contents |
96 |
#ifndef elf_backend_want_dynbss |
#ifndef elf_backend_want_dynbss |
97 |
#define elf_backend_want_dynbss 1 |
#define elf_backend_want_dynbss 1 |
98 |
#endif |
#endif |
99 |
|
#ifndef elf_backend_want_p_paddr_set_to_zero |
100 |
|
#define elf_backend_want_p_paddr_set_to_zero 0 |
101 |
|
#endif |
102 |
|
|
103 |
#define bfd_elfNN_bfd_debug_info_start bfd_void |
#define bfd_elfNN_bfd_debug_info_start bfd_void |
104 |
#define bfd_elfNN_bfd_debug_info_end bfd_void |
#define bfd_elfNN_bfd_debug_info_end bfd_void |
105 |
#define bfd_elfNN_bfd_debug_info_accumulate \ |
#define bfd_elfNN_bfd_debug_info_accumulate \ |
106 |
(void (*) PARAMS ((bfd*, struct sec *))) bfd_void |
((void (*) (bfd*, struct bfd_section *)) bfd_void) |
107 |
|
|
108 |
#ifndef bfd_elfNN_bfd_get_relocated_section_contents |
#ifndef bfd_elfNN_bfd_get_relocated_section_contents |
109 |
#define bfd_elfNN_bfd_get_relocated_section_contents \ |
#define bfd_elfNN_bfd_get_relocated_section_contents \ |
110 |
bfd_generic_get_relocated_section_contents |
bfd_generic_get_relocated_section_contents |
111 |
#endif |
#endif |
112 |
|
|
113 |
#ifndef bfd_elfNN_bfd_relax_section |
#ifndef bfd_elfNN_bfd_relax_section |
130 |
#define elf_backend_gc_sweep_hook NULL |
#define elf_backend_gc_sweep_hook NULL |
131 |
#endif |
#endif |
132 |
#ifndef bfd_elfNN_bfd_gc_sections |
#ifndef bfd_elfNN_bfd_gc_sections |
133 |
#define bfd_elfNN_bfd_gc_sections _bfd_elfNN_gc_sections |
#define bfd_elfNN_bfd_gc_sections bfd_elf_gc_sections |
134 |
#endif |
#endif |
135 |
|
|
136 |
#ifndef bfd_elfNN_bfd_merge_sections |
#ifndef bfd_elfNN_bfd_merge_sections |
138 |
_bfd_elf_merge_sections |
_bfd_elf_merge_sections |
139 |
#endif |
#endif |
140 |
|
|
141 |
|
#ifndef bfd_elfNN_bfd_is_group_section |
142 |
|
#define bfd_elfNN_bfd_is_group_section bfd_elf_is_group_section |
143 |
|
#endif |
144 |
|
|
145 |
#ifndef bfd_elfNN_bfd_discard_group |
#ifndef bfd_elfNN_bfd_discard_group |
146 |
#define bfd_elfNN_bfd_discard_group bfd_elf_discard_group |
#define bfd_elfNN_bfd_discard_group bfd_generic_discard_group |
147 |
|
#endif |
148 |
|
|
149 |
|
#ifndef bfd_elfNN_section_already_linked |
150 |
|
#define bfd_elfNN_section_already_linked \ |
151 |
|
_bfd_elf_section_already_linked |
152 |
#endif |
#endif |
153 |
|
|
154 |
#ifndef bfd_elfNN_bfd_make_debug_symbol |
#ifndef bfd_elfNN_bfd_make_debug_symbol |
155 |
#define bfd_elfNN_bfd_make_debug_symbol \ |
#define bfd_elfNN_bfd_make_debug_symbol \ |
156 |
((asymbol *(*) PARAMS ((bfd *, void *, unsigned long))) bfd_nullvoidptr) |
((asymbol * (*) (bfd *, void *, unsigned long)) bfd_nullvoidptr) |
157 |
#endif |
#endif |
158 |
|
|
159 |
#ifndef bfd_elfNN_bfd_copy_private_symbol_data |
#ifndef bfd_elfNN_bfd_copy_private_symbol_data |
165 |
#define bfd_elfNN_bfd_copy_private_section_data \ |
#define bfd_elfNN_bfd_copy_private_section_data \ |
166 |
_bfd_elf_copy_private_section_data |
_bfd_elf_copy_private_section_data |
167 |
#endif |
#endif |
168 |
|
#ifndef bfd_elfNN_bfd_copy_private_header_data |
169 |
|
#define bfd_elfNN_bfd_copy_private_header_data \ |
170 |
|
_bfd_elf_copy_private_header_data |
171 |
|
#endif |
172 |
#ifndef bfd_elfNN_bfd_copy_private_bfd_data |
#ifndef bfd_elfNN_bfd_copy_private_bfd_data |
173 |
#define bfd_elfNN_bfd_copy_private_bfd_data \ |
#define bfd_elfNN_bfd_copy_private_bfd_data \ |
174 |
_bfd_elf_copy_private_bfd_data |
_bfd_elf_copy_private_bfd_data |
179 |
#endif |
#endif |
180 |
#ifndef bfd_elfNN_bfd_merge_private_bfd_data |
#ifndef bfd_elfNN_bfd_merge_private_bfd_data |
181 |
#define bfd_elfNN_bfd_merge_private_bfd_data \ |
#define bfd_elfNN_bfd_merge_private_bfd_data \ |
182 |
((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) |
((bfd_boolean (*) (bfd *, bfd *)) bfd_true) |
183 |
#endif |
#endif |
184 |
#ifndef bfd_elfNN_bfd_set_private_flags |
#ifndef bfd_elfNN_bfd_set_private_flags |
185 |
#define bfd_elfNN_bfd_set_private_flags \ |
#define bfd_elfNN_bfd_set_private_flags \ |
186 |
((boolean (*) PARAMS ((bfd *, flagword))) bfd_true) |
((bfd_boolean (*) (bfd *, flagword)) bfd_true) |
187 |
#endif |
#endif |
188 |
#ifndef bfd_elfNN_bfd_is_local_label_name |
#ifndef bfd_elfNN_bfd_is_local_label_name |
189 |
#define bfd_elfNN_bfd_is_local_label_name _bfd_elf_is_local_label_name |
#define bfd_elfNN_bfd_is_local_label_name _bfd_elf_is_local_label_name |
190 |
#endif |
#endif |
191 |
|
#ifndef bfd_elfNN_bfd_is_target_special_symbol |
192 |
|
#define bfd_elfNN_bfd_is_target_special_symbol \ |
193 |
|
((bfd_boolean (*) (bfd *, asymbol *)) bfd_false) |
194 |
|
#endif |
195 |
|
|
196 |
#ifndef bfd_elfNN_get_dynamic_reloc_upper_bound |
#ifndef bfd_elfNN_get_dynamic_reloc_upper_bound |
197 |
#define bfd_elfNN_get_dynamic_reloc_upper_bound \ |
#define bfd_elfNN_get_dynamic_reloc_upper_bound \ |
210 |
#ifndef bfd_elfNN_bfd_link_hash_table_create |
#ifndef bfd_elfNN_bfd_link_hash_table_create |
211 |
#define bfd_elfNN_bfd_link_hash_table_create _bfd_elf_link_hash_table_create |
#define bfd_elfNN_bfd_link_hash_table_create _bfd_elf_link_hash_table_create |
212 |
#endif |
#endif |
213 |
|
#ifndef bfd_elfNN_bfd_link_add_symbols |
214 |
|
#define bfd_elfNN_bfd_link_add_symbols bfd_elf_link_add_symbols |
215 |
|
#endif |
216 |
|
#ifndef bfd_elfNN_bfd_final_link |
217 |
|
#define bfd_elfNN_bfd_final_link bfd_elf_final_link |
218 |
|
#endif |
219 |
#else /* ! defined (elf_backend_relocate_section) */ |
#else /* ! defined (elf_backend_relocate_section) */ |
220 |
/* If no backend relocate_section routine, use the generic linker. |
/* If no backend relocate_section routine, use the generic linker. |
221 |
Note - this will prevent the port from being able to use some of |
Note - this will prevent the port from being able to use some of |
262 |
#define bfd_elfNN_mkarchive _bfd_generic_mkarchive |
#define bfd_elfNN_mkarchive _bfd_generic_mkarchive |
263 |
#endif |
#endif |
264 |
|
|
265 |
|
#ifndef bfd_elfNN_print_symbol |
266 |
|
#define bfd_elfNN_print_symbol bfd_elf_print_symbol |
267 |
|
#endif |
268 |
|
|
269 |
#ifndef elf_symbol_leading_char |
#ifndef elf_symbol_leading_char |
270 |
#define elf_symbol_leading_char 0 |
#define elf_symbol_leading_char 0 |
271 |
#endif |
#endif |
283 |
#define ELF_MAXPAGESIZE 1 |
#define ELF_MAXPAGESIZE 1 |
284 |
#endif |
#endif |
285 |
|
|
286 |
|
#ifndef ELF_MINPAGESIZE |
287 |
|
#define ELF_MINPAGESIZE ELF_MAXPAGESIZE |
288 |
|
#endif |
289 |
|
|
290 |
|
#ifndef ELF_DYNAMIC_SEC_FLAGS |
291 |
|
/* Note that we set the SEC_IN_MEMORY flag for these sections. */ |
292 |
|
#define ELF_DYNAMIC_SEC_FLAGS \ |
293 |
|
(SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS \ |
294 |
|
| SEC_IN_MEMORY | SEC_LINKER_CREATED) |
295 |
|
#endif |
296 |
|
|
297 |
#ifndef elf_backend_collect |
#ifndef elf_backend_collect |
298 |
#define elf_backend_collect false |
#define elf_backend_collect FALSE |
299 |
#endif |
#endif |
300 |
#ifndef elf_backend_type_change_ok |
#ifndef elf_backend_type_change_ok |
301 |
#define elf_backend_type_change_ok false |
#define elf_backend_type_change_ok FALSE |
302 |
#endif |
#endif |
303 |
|
|
304 |
#ifndef elf_backend_sym_is_global |
#ifndef elf_backend_sym_is_global |
316 |
#ifndef elf_backend_get_symbol_type |
#ifndef elf_backend_get_symbol_type |
317 |
#define elf_backend_get_symbol_type 0 |
#define elf_backend_get_symbol_type 0 |
318 |
#endif |
#endif |
319 |
|
#ifndef elf_backend_archive_symbol_lookup |
320 |
|
#define elf_backend_archive_symbol_lookup _bfd_elf_archive_symbol_lookup |
321 |
|
#endif |
322 |
|
#ifndef elf_backend_name_local_section_symbols |
323 |
|
#define elf_backend_name_local_section_symbols 0 |
324 |
|
#endif |
325 |
#ifndef elf_backend_section_processing |
#ifndef elf_backend_section_processing |
326 |
#define elf_backend_section_processing 0 |
#define elf_backend_section_processing 0 |
327 |
#endif |
#endif |
328 |
#ifndef elf_backend_section_from_shdr |
#ifndef elf_backend_section_from_shdr |
329 |
#define elf_backend_section_from_shdr 0 |
#define elf_backend_section_from_shdr _bfd_elf_make_section_from_shdr |
330 |
#endif |
#endif |
331 |
#ifndef elf_backend_section_flags |
#ifndef elf_backend_section_flags |
332 |
#define elf_backend_section_flags 0 |
#define elf_backend_section_flags 0 |
333 |
#endif |
#endif |
334 |
#ifndef elf_backend_section_from_phdr |
#ifndef elf_backend_section_from_phdr |
335 |
#define elf_backend_section_from_phdr 0 |
#define elf_backend_section_from_phdr _bfd_elf_make_section_from_phdr |
336 |
#endif |
#endif |
337 |
#ifndef elf_backend_fake_sections |
#ifndef elf_backend_fake_sections |
338 |
#define elf_backend_fake_sections 0 |
#define elf_backend_fake_sections 0 |
349 |
#ifndef elf_backend_create_dynamic_sections |
#ifndef elf_backend_create_dynamic_sections |
350 |
#define elf_backend_create_dynamic_sections 0 |
#define elf_backend_create_dynamic_sections 0 |
351 |
#endif |
#endif |
352 |
|
#ifndef elf_backend_omit_section_dynsym |
353 |
|
#define elf_backend_omit_section_dynsym _bfd_elf_link_omit_section_dynsym |
354 |
|
#endif |
355 |
#ifndef elf_backend_check_relocs |
#ifndef elf_backend_check_relocs |
356 |
#define elf_backend_check_relocs 0 |
#define elf_backend_check_relocs 0 |
357 |
#endif |
#endif |
358 |
|
#ifndef elf_backend_check_directives |
359 |
|
#define elf_backend_check_directives 0 |
360 |
|
#endif |
361 |
#ifndef elf_backend_adjust_dynamic_symbol |
#ifndef elf_backend_adjust_dynamic_symbol |
362 |
#define elf_backend_adjust_dynamic_symbol 0 |
#define elf_backend_adjust_dynamic_symbol 0 |
363 |
#endif |
#endif |
391 |
#ifndef elf_backend_ecoff_debug_swap |
#ifndef elf_backend_ecoff_debug_swap |
392 |
#define elf_backend_ecoff_debug_swap 0 |
#define elf_backend_ecoff_debug_swap 0 |
393 |
#endif |
#endif |
394 |
|
#ifndef elf_backend_bfd_from_remote_memory |
395 |
|
#define elf_backend_bfd_from_remote_memory _bfd_elfNN_bfd_from_remote_memory |
396 |
|
#endif |
397 |
#ifndef elf_backend_got_header_size |
#ifndef elf_backend_got_header_size |
398 |
#define elf_backend_got_header_size 0 |
#define elf_backend_got_header_size 0 |
399 |
#endif |
#endif |
|
#ifndef elf_backend_plt_header_size |
|
|
#define elf_backend_plt_header_size 0 |
|
|
#endif |
|
400 |
#ifndef elf_backend_post_process_headers |
#ifndef elf_backend_post_process_headers |
401 |
#define elf_backend_post_process_headers NULL |
#define elf_backend_post_process_headers NULL |
402 |
#endif |
#endif |
412 |
#ifndef elf_backend_hide_symbol |
#ifndef elf_backend_hide_symbol |
413 |
#define elf_backend_hide_symbol _bfd_elf_link_hash_hide_symbol |
#define elf_backend_hide_symbol _bfd_elf_link_hash_hide_symbol |
414 |
#endif |
#endif |
415 |
|
#ifndef elf_backend_merge_symbol_attribute |
416 |
|
#define elf_backend_merge_symbol_attribute NULL |
417 |
|
#endif |
418 |
#ifndef elf_backend_emit_relocs |
#ifndef elf_backend_emit_relocs |
419 |
#define elf_backend_emit_relocs NULL |
#define elf_backend_emit_relocs NULL |
420 |
#endif |
#endif |
442 |
#ifndef elf_backend_ignore_discarded_relocs |
#ifndef elf_backend_ignore_discarded_relocs |
443 |
#define elf_backend_ignore_discarded_relocs NULL |
#define elf_backend_ignore_discarded_relocs NULL |
444 |
#endif |
#endif |
445 |
#ifndef elf_backend_write_section |
#ifndef elf_backend_eh_frame_address_size |
446 |
#define elf_backend_write_section NULL |
#define elf_backend_eh_frame_address_size _bfd_elf_eh_frame_address_size |
447 |
|
#endif |
448 |
|
#ifndef elf_backend_can_make_relative_eh_frame |
449 |
|
#define elf_backend_can_make_relative_eh_frame _bfd_elf_can_make_relative |
450 |
#endif |
#endif |
451 |
#ifndef elf_backend_set_nonloadable_filepos |
#ifndef elf_backend_can_make_lsda_relative_eh_frame |
452 |
#define elf_backend_set_nonloadable_filepos NULL |
#define elf_backend_can_make_lsda_relative_eh_frame _bfd_elf_can_make_relative |
453 |
#endif |
#endif |
454 |
#ifndef elf_backend_is_contained_by_filepos |
#ifndef elf_backend_encode_eh_address |
455 |
#define elf_backend_is_contained_by_filepos NULL |
#define elf_backend_encode_eh_address _bfd_elf_encode_eh_address |
456 |
#endif |
#endif |
457 |
#ifndef elf_backend_copy_private_bfd_data_p |
#ifndef elf_backend_write_section |
458 |
#define elf_backend_copy_private_bfd_data_p NULL |
#define elf_backend_write_section NULL |
459 |
#endif |
#endif |
460 |
#ifndef elf_backend_mips_irix_compat |
#ifndef elf_backend_mips_irix_compat |
461 |
#define elf_backend_mips_irix_compat NULL |
#define elf_backend_mips_irix_compat NULL |
470 |
For backwards compatibility, we still support this usage. */ |
For backwards compatibility, we still support this usage. */ |
471 |
#ifndef USE_REL |
#ifndef USE_REL |
472 |
#define USE_REL 0 |
#define USE_REL 0 |
|
#else |
|
|
#undef USE_REL |
|
|
#define USE_REL 1 |
|
473 |
#endif |
#endif |
474 |
|
|
475 |
/* Use these in new code. */ |
/* Use these in new code. */ |
487 |
#define elf_backend_rela_normal 0 |
#define elf_backend_rela_normal 0 |
488 |
#endif |
#endif |
489 |
|
|
490 |
|
#ifndef elf_backend_plt_sym_val |
491 |
|
#define elf_backend_plt_sym_val NULL |
492 |
|
#endif |
493 |
|
#ifndef elf_backend_relplt_name |
494 |
|
#define elf_backend_relplt_name NULL |
495 |
|
#endif |
496 |
|
|
497 |
#ifndef ELF_MACHINE_ALT1 |
#ifndef ELF_MACHINE_ALT1 |
498 |
#define ELF_MACHINE_ALT1 0 |
#define ELF_MACHINE_ALT1 0 |
499 |
#endif |
#endif |
506 |
#define elf_backend_size_info _bfd_elfNN_size_info |
#define elf_backend_size_info _bfd_elfNN_size_info |
507 |
#endif |
#endif |
508 |
|
|
509 |
|
#ifndef elf_backend_special_sections |
510 |
|
#define elf_backend_special_sections NULL |
511 |
|
#endif |
512 |
|
|
513 |
#ifndef elf_backend_sign_extend_vma |
#ifndef elf_backend_sign_extend_vma |
514 |
#define elf_backend_sign_extend_vma 0 |
#define elf_backend_sign_extend_vma 0 |
515 |
#endif |
#endif |
516 |
|
|
517 |
|
#ifndef elf_backend_link_order_error_handler |
518 |
|
#define elf_backend_link_order_error_handler _bfd_default_error_handler |
519 |
|
#endif |
520 |
|
|
521 |
extern const struct elf_size_info _bfd_elfNN_size_info; |
extern const struct elf_size_info _bfd_elfNN_size_info; |
522 |
|
|
523 |
#ifndef INCLUDED_TARGET_FILE |
#ifndef INCLUDED_TARGET_FILE |
526 |
ELF_ARCH, /* arch */ |
ELF_ARCH, /* arch */ |
527 |
ELF_MACHINE_CODE, /* elf_machine_code */ |
ELF_MACHINE_CODE, /* elf_machine_code */ |
528 |
ELF_MAXPAGESIZE, /* maxpagesize */ |
ELF_MAXPAGESIZE, /* maxpagesize */ |
529 |
|
ELF_MINPAGESIZE, /* minpagesize */ |
530 |
|
ELF_DYNAMIC_SEC_FLAGS, /* dynamic_sec_flags */ |
531 |
elf_info_to_howto, |
elf_info_to_howto, |
532 |
elf_info_to_howto_rel, |
elf_info_to_howto_rel, |
533 |
elf_backend_sym_is_global, |
elf_backend_sym_is_global, |
535 |
elf_backend_symbol_processing, |
elf_backend_symbol_processing, |
536 |
elf_backend_symbol_table_processing, |
elf_backend_symbol_table_processing, |
537 |
elf_backend_get_symbol_type, |
elf_backend_get_symbol_type, |
538 |
|
elf_backend_archive_symbol_lookup, |
539 |
|
elf_backend_name_local_section_symbols, |
540 |
elf_backend_section_processing, |
elf_backend_section_processing, |
541 |
elf_backend_section_from_shdr, |
elf_backend_section_from_shdr, |
542 |
elf_backend_section_flags, |
elf_backend_section_flags, |
546 |
elf_backend_add_symbol_hook, |
elf_backend_add_symbol_hook, |
547 |
elf_backend_link_output_symbol_hook, |
elf_backend_link_output_symbol_hook, |
548 |
elf_backend_create_dynamic_sections, |
elf_backend_create_dynamic_sections, |
549 |
|
elf_backend_omit_section_dynsym, |
550 |
elf_backend_check_relocs, |
elf_backend_check_relocs, |
551 |
|
elf_backend_check_directives, |
552 |
elf_backend_adjust_dynamic_symbol, |
elf_backend_adjust_dynamic_symbol, |
553 |
elf_backend_always_size_sections, |
elf_backend_always_size_sections, |
554 |
elf_backend_size_dynamic_sections, |
elf_backend_size_dynamic_sections, |
566 |
elf_backend_output_arch_syms, |
elf_backend_output_arch_syms, |
567 |
elf_backend_copy_indirect_symbol, |
elf_backend_copy_indirect_symbol, |
568 |
elf_backend_hide_symbol, |
elf_backend_hide_symbol, |
569 |
|
elf_backend_merge_symbol_attribute, |
570 |
elf_backend_emit_relocs, |
elf_backend_emit_relocs, |
571 |
elf_backend_count_relocs, |
elf_backend_count_relocs, |
572 |
elf_backend_grok_prstatus, |
elf_backend_grok_prstatus, |
576 |
elf_backend_reloc_type_class, |
elf_backend_reloc_type_class, |
577 |
elf_backend_discard_info, |
elf_backend_discard_info, |
578 |
elf_backend_ignore_discarded_relocs, |
elf_backend_ignore_discarded_relocs, |
579 |
|
elf_backend_eh_frame_address_size, |
580 |
|
elf_backend_can_make_relative_eh_frame, |
581 |
|
elf_backend_can_make_lsda_relative_eh_frame, |
582 |
|
elf_backend_encode_eh_address, |
583 |
elf_backend_write_section, |
elf_backend_write_section, |
|
elf_backend_set_nonloadable_filepos, |
|
|
elf_backend_is_contained_by_filepos, |
|
|
elf_backend_copy_private_bfd_data_p, |
|
584 |
elf_backend_mips_irix_compat, |
elf_backend_mips_irix_compat, |
585 |
elf_backend_mips_rtype_to_howto, |
elf_backend_mips_rtype_to_howto, |
586 |
elf_backend_ecoff_debug_swap, |
elf_backend_ecoff_debug_swap, |
587 |
|
elf_backend_bfd_from_remote_memory, |
588 |
|
elf_backend_plt_sym_val, |
589 |
|
elf_backend_link_order_error_handler, |
590 |
|
elf_backend_relplt_name, |
591 |
ELF_MACHINE_ALT1, |
ELF_MACHINE_ALT1, |
592 |
ELF_MACHINE_ALT2, |
ELF_MACHINE_ALT2, |
593 |
&elf_backend_size_info, |
&elf_backend_size_info, |
594 |
|
elf_backend_special_sections, |
595 |
elf_backend_got_symbol_offset, |
elf_backend_got_symbol_offset, |
596 |
elf_backend_got_header_size, |
elf_backend_got_header_size, |
|
elf_backend_plt_header_size, |
|
597 |
elf_backend_collect, |
elf_backend_collect, |
598 |
elf_backend_type_change_ok, |
elf_backend_type_change_ok, |
599 |
elf_backend_may_use_rel_p, |
elf_backend_may_use_rel_p, |
609 |
elf_backend_can_gc_sections, |
elf_backend_can_gc_sections, |
610 |
elf_backend_can_refcount, |
elf_backend_can_refcount, |
611 |
elf_backend_want_got_sym, |
elf_backend_want_got_sym, |
612 |
elf_backend_want_dynbss |
elf_backend_want_dynbss, |
613 |
|
elf_backend_want_p_paddr_set_to_zero |
614 |
}; |
}; |
615 |
#endif |
#endif |
616 |
|
|
641 |
/* section_flags: mask of all section flags */ |
/* section_flags: mask of all section flags */ |
642 |
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
643 |
| SEC_CODE | SEC_DATA | SEC_DEBUGGING | SEC_EXCLUDE | SEC_SORT_ENTRIES |
| SEC_CODE | SEC_DATA | SEC_DEBUGGING | SEC_EXCLUDE | SEC_SORT_ENTRIES |
644 |
| SEC_ARCH_BIT_0 | SEC_SMALL_DATA | SEC_MERGE | SEC_STRINGS | SEC_GROUP), |
| SEC_SMALL_DATA | SEC_MERGE | SEC_STRINGS | SEC_GROUP), |
645 |
|
|
646 |
/* leading_symbol_char: is the first char of a user symbol |
/* leading_symbol_char: is the first char of a user symbol |
647 |
predictable, and if so what is it */ |
predictable, and if so what is it */ |
689 |
bfd_elfNN_write_corefile_contents, |
bfd_elfNN_write_corefile_contents, |
690 |
}, |
}, |
691 |
|
|
692 |
BFD_JUMP_TABLE_GENERIC (bfd_elfNN), |
BFD_JUMP_TABLE_GENERIC (bfd_elfNN), |
693 |
BFD_JUMP_TABLE_COPY (bfd_elfNN), |
BFD_JUMP_TABLE_COPY (bfd_elfNN), |
694 |
BFD_JUMP_TABLE_CORE (bfd_elfNN), |
BFD_JUMP_TABLE_CORE (bfd_elfNN), |
695 |
#ifdef bfd_elfNN_archive_functions |
#ifdef bfd_elfNN_archive_functions |
696 |
BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive), |
BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive), |
697 |
#else |
#else |
698 |
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
699 |
#endif |
#endif |
700 |
BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN), |
BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN), |
701 |
BFD_JUMP_TABLE_RELOCS (bfd_elfNN), |
BFD_JUMP_TABLE_RELOCS (bfd_elfNN), |
702 |
BFD_JUMP_TABLE_WRITE (bfd_elfNN), |
BFD_JUMP_TABLE_WRITE (bfd_elfNN), |
703 |
BFD_JUMP_TABLE_LINK (bfd_elfNN), |
BFD_JUMP_TABLE_LINK (bfd_elfNN), |
704 |
BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN), |
BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN), |
705 |
|
|
706 |
/* Alternative endian target. */ |
/* Alternative endian target. */ |
707 |
#ifdef TARGET_LITTLE_SYM |
#ifdef TARGET_LITTLE_SYM |
711 |
#endif |
#endif |
712 |
|
|
713 |
/* backend_data: */ |
/* backend_data: */ |
714 |
(PTR) &elfNN_bed |
&elfNN_bed |
715 |
}; |
}; |
716 |
#endif |
#endif |
717 |
|
|
737 |
/* section_flags: mask of all section flags */ |
/* section_flags: mask of all section flags */ |
738 |
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
739 |
| SEC_CODE | SEC_DATA | SEC_DEBUGGING | SEC_EXCLUDE | SEC_SORT_ENTRIES |
| SEC_CODE | SEC_DATA | SEC_DEBUGGING | SEC_EXCLUDE | SEC_SORT_ENTRIES |
740 |
| SEC_ARCH_BIT_0 | SEC_SMALL_DATA | SEC_MERGE | SEC_STRINGS | SEC_GROUP), |
| SEC_SMALL_DATA | SEC_MERGE | SEC_STRINGS | SEC_GROUP), |
741 |
|
|
742 |
/* leading_symbol_char: is the first char of a user symbol |
/* leading_symbol_char: is the first char of a user symbol |
743 |
predictable, and if so what is it */ |
predictable, and if so what is it */ |
785 |
bfd_elfNN_write_corefile_contents, |
bfd_elfNN_write_corefile_contents, |
786 |
}, |
}, |
787 |
|
|
788 |
BFD_JUMP_TABLE_GENERIC (bfd_elfNN), |
BFD_JUMP_TABLE_GENERIC (bfd_elfNN), |
789 |
BFD_JUMP_TABLE_COPY (bfd_elfNN), |
BFD_JUMP_TABLE_COPY (bfd_elfNN), |
790 |
BFD_JUMP_TABLE_CORE (bfd_elfNN), |
BFD_JUMP_TABLE_CORE (bfd_elfNN), |
791 |
#ifdef bfd_elfNN_archive_functions |
#ifdef bfd_elfNN_archive_functions |
792 |
BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive), |
BFD_JUMP_TABLE_ARCHIVE (bfd_elfNN_archive), |
793 |
#else |
#else |
794 |
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), |
795 |
#endif |
#endif |
796 |
BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN), |
BFD_JUMP_TABLE_SYMBOLS (bfd_elfNN), |
797 |
BFD_JUMP_TABLE_RELOCS (bfd_elfNN), |
BFD_JUMP_TABLE_RELOCS (bfd_elfNN), |
798 |
BFD_JUMP_TABLE_WRITE (bfd_elfNN), |
BFD_JUMP_TABLE_WRITE (bfd_elfNN), |
799 |
BFD_JUMP_TABLE_LINK (bfd_elfNN), |
BFD_JUMP_TABLE_LINK (bfd_elfNN), |
800 |
BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN), |
BFD_JUMP_TABLE_DYNAMIC (bfd_elfNN), |
801 |
|
|
802 |
/* Alternative endian target. */ |
/* Alternative endian target. */ |
803 |
#ifdef TARGET_BIG_SYM |
#ifdef TARGET_BIG_SYM |
807 |
#endif |
#endif |
808 |
|
|
809 |
/* backend_data: */ |
/* backend_data: */ |
810 |
(PTR) &elfNN_bed |
&elfNN_bed |
811 |
}; |
}; |
812 |
#endif |
#endif |