1 1.1 christos /* TILE-Gx ELF specific backend routines. 2 1.1.1.10 christos Copyright (C) 2011-2026 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.10 christos const Elf_Internal_Rela *) ATTRIBUTE_HIDDEN; 28 1.1 christos 29 1.1 christos extern reloc_howto_type * 30 1.1.1.10 christos tilegx_reloc_name_lookup (bfd *, const char *) ATTRIBUTE_HIDDEN; 31 1.1 christos 32 1.1 christos extern struct bfd_link_hash_table * 33 1.1.1.10 christos tilegx_elf_link_hash_table_create (bfd *) ATTRIBUTE_HIDDEN; 34 1.1 christos 35 1.1 christos extern reloc_howto_type * 36 1.1.1.10 christos tilegx_reloc_type_lookup (bfd *, bfd_reloc_code_real_type) ATTRIBUTE_HIDDEN; 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.1.10 christos struct elf_link_hash_entry *) ATTRIBUTE_HIDDEN; 42 1.1 christos 43 1.1.1.7 christos extern bool 44 1.1.1.10 christos tilegx_elf_create_dynamic_sections (bfd *, struct bfd_link_info *) 45 1.1.1.10 christos ATTRIBUTE_HIDDEN; 46 1.1 christos 47 1.1.1.7 christos extern bool 48 1.1 christos tilegx_elf_check_relocs (bfd *, struct bfd_link_info *, 49 1.1.1.10 christos asection *, const Elf_Internal_Rela *) 50 1.1.1.10 christos ATTRIBUTE_HIDDEN; 51 1.1 christos 52 1.1.1.7 christos extern bool 53 1.1 christos tilegx_elf_adjust_dynamic_symbol (struct bfd_link_info *, 54 1.1.1.10 christos struct elf_link_hash_entry *) 55 1.1.1.10 christos ATTRIBUTE_HIDDEN; 56 1.1 christos 57 1.1.1.7 christos extern bool 58 1.1 christos tilegx_elf_omit_section_dynsym (bfd *, 59 1.1 christos struct bfd_link_info *, 60 1.1.1.10 christos asection *) ATTRIBUTE_HIDDEN; 61 1.1 christos 62 1.1.1.7 christos extern bool 63 1.1.1.10 christos tilegx_elf_late_size_sections (bfd *, struct bfd_link_info *) ATTRIBUTE_HIDDEN; 64 1.1 christos 65 1.1.1.7 christos extern int 66 1.1 christos tilegx_elf_relocate_section (bfd *, struct bfd_link_info *, 67 1.1 christos bfd *, asection *, 68 1.1 christos bfd_byte *, Elf_Internal_Rela *, 69 1.1 christos Elf_Internal_Sym *, 70 1.1.1.10 christos asection **) ATTRIBUTE_HIDDEN; 71 1.1 christos 72 1.1 christos extern asection * 73 1.1 christos tilegx_elf_gc_mark_hook (asection *, 74 1.1 christos struct bfd_link_info *, 75 1.1.1.10 christos struct elf_reloc_cookie *, 76 1.1 christos struct elf_link_hash_entry *, 77 1.1.1.10 christos unsigned int) ATTRIBUTE_HIDDEN; 78 1.1 christos 79 1.1 christos extern bfd_vma 80 1.1.1.10 christos tilegx_elf_plt_sym_val (bfd_vma, const asection *, const arelent *) 81 1.1.1.10 christos ATTRIBUTE_HIDDEN; 82 1.1 christos 83 1.1.1.7 christos extern bool 84 1.1.1.10 christos tilegx_info_to_howto_rela (bfd *, arelent *, Elf_Internal_Rela *) 85 1.1.1.10 christos ATTRIBUTE_HIDDEN; 86 1.1 christos 87 1.1 christos extern int 88 1.1.1.10 christos tilegx_additional_program_headers (bfd *, struct bfd_link_info *) 89 1.1.1.10 christos ATTRIBUTE_HIDDEN; 90 1.1 christos 91 1.1.1.7 christos extern bool 92 1.1 christos tilegx_elf_finish_dynamic_symbol (bfd *, 93 1.1 christos struct bfd_link_info *, 94 1.1 christos struct elf_link_hash_entry *, 95 1.1.1.10 christos Elf_Internal_Sym *) ATTRIBUTE_HIDDEN; 96 1.1 christos 97 1.1.1.7 christos extern bool 98 1.1.1.10 christos tilegx_elf_finish_dynamic_sections (bfd *, struct bfd_link_info *, bfd_byte *) 99 1.1.1.10 christos ATTRIBUTE_HIDDEN; 100 1.1 christos 101 1.1.1.7 christos extern bool 102 1.1.1.10 christos _bfd_tilegx_elf_merge_private_bfd_data (bfd *, struct bfd_link_info *) 103 1.1.1.10 christos ATTRIBUTE_HIDDEN; 104