elfxx-tilegx.h revision 1.1.1.5 1 1.1 christos /* TILE-Gx ELF specific backend routines.
2 1.1.1.5 christos Copyright (C) 2011-2017 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 christos extern bfd_boolean
44 1.1 christos tilegx_elf_create_dynamic_sections (bfd *, struct bfd_link_info *);
45 1.1 christos
46 1.1 christos extern bfd_boolean
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 christos extern bfd_boolean
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 christos extern bfd_boolean
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 christos extern bfd_boolean
60 1.1 christos tilegx_elf_size_dynamic_sections (bfd *, struct bfd_link_info *);
61 1.1 christos
62 1.1 christos extern bfd_boolean
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_boolean
77 1.1 christos tilegx_elf_gc_sweep_hook (bfd *, struct bfd_link_info *,
78 1.1 christos asection *, const Elf_Internal_Rela *);
79 1.1 christos
80 1.1 christos extern bfd_vma
81 1.1 christos tilegx_elf_plt_sym_val (bfd_vma, const asection *, const arelent *);
82 1.1 christos
83 1.1 christos extern void
84 1.1 christos tilegx_info_to_howto_rela (bfd *, arelent *, Elf_Internal_Rela *);
85 1.1 christos
86 1.1 christos extern int
87 1.1 christos tilegx_additional_program_headers (bfd *, struct bfd_link_info *);
88 1.1 christos
89 1.1 christos extern bfd_boolean
90 1.1 christos tilegx_elf_finish_dynamic_symbol (bfd *,
91 1.1 christos struct bfd_link_info *,
92 1.1 christos struct elf_link_hash_entry *,
93 1.1 christos Elf_Internal_Sym *);
94 1.1 christos
95 1.1 christos extern bfd_boolean
96 1.1 christos tilegx_elf_finish_dynamic_sections (bfd *, struct bfd_link_info *);
97 1.1 christos
98 1.1 christos extern bfd_boolean
99 1.1.1.5 christos _bfd_tilegx_elf_merge_private_bfd_data (bfd *, struct bfd_link_info *);
100