(root)/
binutils-2.41/
bfd/
elf32-score.h
       1  /* 32-bit ELF support for S+core.
       2     Copyright (C) 2009-2023 Free Software Foundation, Inc.
       3     Contributed by
       4     Brain.lin (brain.lin@sunplusct.com)
       5     Mei Ligang (ligang@sunnorth.com.cn)
       6     Pei-Lin Tsai (pltsai@sunplus.com)
       7  
       8     This file is part of BFD, the Binary File Descriptor library.
       9  
      10     This program is free software; you can redistribute it and/or modify
      11     it under the terms of the GNU General Public License as published by
      12     the Free Software Foundation; either version 3 of the License, or
      13     (at your option) any later version.
      14  
      15     This program is distributed in the hope that it will be useful,
      16     but WITHOUT ANY WARRANTY; without even the implied warranty of
      17     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      18     GNU General Public License for more details.
      19  
      20     You should have received a copy of the GNU General Public License
      21     along with this program; if not, write to the Free Software
      22     Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
      23     MA 02110-1301, USA.  */
      24  
      25  #include "elf/common.h"
      26  #include "elf/internal.h"
      27  
      28  extern void
      29  s7_bfd_score_elf_hide_symbol (struct bfd_link_info *,
      30  			      struct elf_link_hash_entry *,
      31  			      bool);
      32  
      33  extern bool
      34  s7_bfd_score_info_to_howto (bfd *, arelent *, Elf_Internal_Rela *);
      35  
      36  extern int
      37  s7_bfd_score_elf_relocate_section (bfd *,
      38  				   struct bfd_link_info *,
      39  				   bfd *,
      40  				   asection *,
      41  				   bfd_byte *,
      42  				   Elf_Internal_Rela *,
      43  				   Elf_Internal_Sym *,
      44  				   asection **);
      45  
      46  extern bool
      47  s7_bfd_score_elf_check_relocs (bfd *,
      48  			       struct bfd_link_info *,
      49  			       asection *,
      50  			       const Elf_Internal_Rela *);
      51  
      52  extern bool
      53  s7_bfd_score_elf_add_symbol_hook (bfd *,
      54  				  struct bfd_link_info *,
      55  				  Elf_Internal_Sym *,
      56  				  const char **,
      57  				  flagword *,
      58  				  asection **,
      59  				  bfd_vma *);
      60  
      61  extern void
      62  s7_bfd_score_elf_symbol_processing (bfd *, asymbol *);
      63  
      64  extern int
      65  s7_bfd_score_elf_link_output_symbol_hook (struct bfd_link_info *,
      66  					  const char *,
      67  					  Elf_Internal_Sym *,
      68  					  asection *,
      69  					  struct elf_link_hash_entry *);
      70  
      71  extern bool
      72  s7_bfd_score_elf_section_from_bfd_section (bfd *,
      73  					   asection *,
      74  					   int *);
      75  
      76  extern bool
      77  s7_bfd_score_elf_adjust_dynamic_symbol (struct bfd_link_info *,
      78  					struct elf_link_hash_entry *);
      79  
      80  extern bool
      81  s7_bfd_score_elf_always_size_sections (bfd *, struct bfd_link_info *);
      82  
      83  extern bool
      84  s7_bfd_score_elf_size_dynamic_sections (bfd *, struct bfd_link_info *);
      85  
      86  extern bool
      87  s7_bfd_score_elf_create_dynamic_sections (bfd *, struct bfd_link_info *);
      88  
      89  extern bool
      90  s7_bfd_score_elf_finish_dynamic_symbol (bfd *,
      91  					struct bfd_link_info *,
      92  					struct elf_link_hash_entry *,
      93  					Elf_Internal_Sym *);
      94  
      95  extern bool
      96  s7_bfd_score_elf_finish_dynamic_sections (bfd *, struct bfd_link_info *);
      97  
      98  extern bool
      99  s7_bfd_score_elf_fake_sections (bfd *,
     100  				Elf_Internal_Shdr *,
     101  				asection *);
     102  
     103  extern bool
     104  s7_bfd_score_elf_section_processing (bfd *, Elf_Internal_Shdr *);
     105  
     106  extern bool
     107  s7_bfd_score_elf_write_section (bfd *, asection *, bfd_byte *);
     108  
     109  extern void
     110  s7_bfd_score_elf_copy_indirect_symbol (struct bfd_link_info *,
     111  				       struct elf_link_hash_entry *,
     112  				       struct elf_link_hash_entry *);
     113  
     114  extern bool
     115  s7_bfd_score_elf_discard_info (bfd *, struct elf_reloc_cookie *,
     116  			       struct bfd_link_info *);
     117  
     118  extern bool
     119  s7_bfd_score_elf_ignore_discarded_relocs (asection *);
     120  
     121  extern asection *
     122  s7_bfd_score_elf_gc_mark_hook (asection *,
     123  			       struct bfd_link_info *,
     124  			       Elf_Internal_Rela *,
     125  			       struct elf_link_hash_entry *,
     126  			       Elf_Internal_Sym *);
     127  
     128  extern bool
     129  s7_bfd_score_elf_grok_prstatus (bfd *, Elf_Internal_Note *);
     130  
     131  extern bool
     132  s7_bfd_score_elf_grok_psinfo (bfd *, Elf_Internal_Note *);
     133  
     134  extern reloc_howto_type *
     135  s7_elf32_score_reloc_type_lookup (bfd *, bfd_reloc_code_real_type);
     136  
     137  extern struct bfd_link_hash_table *
     138  s7_elf32_score_link_hash_table_create (bfd *);
     139  
     140  extern bool
     141  s7_elf32_score_print_private_bfd_data (bfd *, void *);
     142  
     143  extern bool
     144  s7_elf32_score_merge_private_bfd_data (bfd *, struct bfd_link_info *);
     145  
     146  extern bool
     147  s7_elf32_score_new_section_hook (bfd *, asection *);
     148  
     149  extern bool
     150  _bfd_score_elf_common_definition (Elf_Internal_Sym *);
     151  
     152  #define elf_backend_common_definition   _bfd_score_elf_common_definition