Home | History | Annotate | Line # | Download | only in bfd
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