Home | History | Annotate | Line # | Download | only in bfd
elfxx-tilegx.h revision 1.1.1.2
      1      1.1  christos /* TILE-Gx ELF specific backend routines.
      2      1.1  christos    Copyright 2011 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  christos _bfd_tilegx_elf_merge_private_bfd_data (bfd *, bfd *);
    100