elfxx-tilegx.h revision 1.1.1.9 1 1.1 christos /* TILE-Gx ELF specific backend routines.
2 1.1.1.9 christos Copyright (C) 2011-2024 Free Software Foundation, Inc.
3 1.1 christos
4 1.1 christos This file is part of BFD, the Binary File Descriptor library.
5 1.1 christos
6 1.1 christos This program is free software; you can redistribute it and/or modify
7 1.1 christos it under the terms of the GNU General Public License as published by
8 1.1 christos the Free Software Foundation; either version 3 of the License, or
9 1.1 christos (at your option) any later version.
10 1.1 christos
11 1.1 christos This program is distributed in the hope that it will be useful,
12 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of
13 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 1.1 christos GNU General Public License for more details.
15 1.1 christos
16 1.1 christos You should have received a copy of the GNU General Public License
17 1.1 christos along with this program; if not, write to the Free Software
18 1.1 christos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
19 1.1 christos MA 02110-1301, USA. */
20 1.1 christos
21 1.1 christos #include "elf/common.h"
22 1.1 christos #include "elf/internal.h"
23 1.1 christos
24 1.1 christos extern enum elf_reloc_type_class
25 1.1.1.2 christos tilegx_reloc_type_class (const struct bfd_link_info *,
26 1.1.1.2 christos const asection *,
27 1.1.1.2 christos const Elf_Internal_Rela *);
28 1.1 christos
29 1.1 christos extern reloc_howto_type *
30 1.1 christos tilegx_reloc_name_lookup (bfd *, const char *);
31 1.1 christos
32 1.1 christos extern struct bfd_link_hash_table *
33 1.1 christos tilegx_elf_link_hash_table_create (bfd *);
34 1.1 christos
35 1.1 christos extern reloc_howto_type *
36 1.1 christos tilegx_reloc_type_lookup (bfd *, bfd_reloc_code_real_type);
37 1.1 christos
38 1.1 christos extern void
39 1.1 christos tilegx_elf_copy_indirect_symbol (struct bfd_link_info *,
40 1.1 christos struct elf_link_hash_entry *,
41 1.1 christos struct elf_link_hash_entry *);
42 1.1 christos
43 1.1.1.8 christos extern bool
44 1.1 christos tilegx_elf_create_dynamic_sections (bfd *, struct bfd_link_info *);
45 1.1 christos
46 1.1.1.8 christos extern bool
47 1.1 christos tilegx_elf_check_relocs (bfd *, struct bfd_link_info *,
48 1.1 christos asection *, const Elf_Internal_Rela *);
49 1.1 christos
50 1.1.1.8 christos extern bool
51 1.1 christos tilegx_elf_adjust_dynamic_symbol (struct bfd_link_info *,
52 1.1 christos struct elf_link_hash_entry *);
53 1.1 christos
54 1.1.1.8 christos extern bool
55 1.1 christos tilegx_elf_omit_section_dynsym (bfd *,
56 1.1 christos struct bfd_link_info *,
57 1.1 christos asection *);
58 1.1 christos
59 1.1.1.8 christos extern bool
60 1.1.1.9 christos tilegx_elf_late_size_sections (bfd *, struct bfd_link_info *);
61 1.1 christos
62 1.1.1.8 christos extern int
63 1.1 christos tilegx_elf_relocate_section (bfd *, struct bfd_link_info *,
64 1.1 christos bfd *, asection *,
65 1.1 christos bfd_byte *, Elf_Internal_Rela *,
66 1.1 christos Elf_Internal_Sym *,
67 1.1 christos asection **);
68 1.1 christos
69 1.1 christos extern asection *
70 1.1 christos tilegx_elf_gc_mark_hook (asection *,
71 1.1 christos struct bfd_link_info *,
72 1.1 christos Elf_Internal_Rela *,
73 1.1 christos struct elf_link_hash_entry *,
74 1.1 christos Elf_Internal_Sym *);
75 1.1 christos
76 1.1 christos extern bfd_vma
77 1.1 christos tilegx_elf_plt_sym_val (bfd_vma, const asection *, const arelent *);
78 1.1 christos
79 1.1.1.8 christos extern bool
80 1.1 christos tilegx_info_to_howto_rela (bfd *, arelent *, Elf_Internal_Rela *);
81 1.1 christos
82 1.1 christos extern int
83 1.1 christos tilegx_additional_program_headers (bfd *, struct bfd_link_info *);
84 1.1 christos
85 1.1.1.8 christos extern bool
86 1.1 christos tilegx_elf_finish_dynamic_symbol (bfd *,
87 1.1 christos struct bfd_link_info *,
88 1.1 christos struct elf_link_hash_entry *,
89 1.1 christos Elf_Internal_Sym *);
90 1.1 christos
91 1.1.1.8 christos extern bool
92 1.1 christos tilegx_elf_finish_dynamic_sections (bfd *, struct bfd_link_info *);
93 1.1 christos
94 1.1.1.8 christos extern bool
95 1.1.1.5 christos _bfd_tilegx_elf_merge_private_bfd_data (bfd *, struct bfd_link_info *);
96