[BACK]Return to elfxx-mips.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / external / gpl3 / binutils.old / dist / bfd

Annotation of src/external/gpl3/binutils.old/dist/bfd/elfxx-mips.h, Revision 1.1

1.1     ! christos    1: /* MIPS ELF specific backend routines.
        !             2:    Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
        !             3:    Free Software Foundation, Inc.
        !             4:
        !             5:    This file is part of BFD, the Binary File Descriptor library.
        !             6:
        !             7:    This program is free software; you can redistribute it and/or modify
        !             8:    it under the terms of the GNU General Public License as published by
        !             9:    the Free Software Foundation; either version 3 of the License, or
        !            10:    (at your option) any later version.
        !            11:
        !            12:    This program is distributed in the hope that it will be useful,
        !            13:    but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            14:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            15:    GNU General Public License for more details.
        !            16:
        !            17:    You should have received a copy of the GNU General Public License
        !            18:    along with this program; if not, write to the Free Software
        !            19:    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
        !            20:    MA 02110-1301, USA.  */
        !            21:
        !            22: #include "elf/common.h"
        !            23: #include "elf/internal.h"
        !            24: #include "elf/mips.h"
        !            25:
        !            26: extern bfd_boolean _bfd_mips_elf_new_section_hook
        !            27:   (bfd *, asection *);
        !            28: extern void _bfd_mips_elf_symbol_processing
        !            29:   (bfd *, asymbol *);
        !            30: extern unsigned int _bfd_mips_elf_eh_frame_address_size
        !            31:   (bfd *, asection *);
        !            32: extern bfd_boolean _bfd_mips_elf_name_local_section_symbols
        !            33:   (bfd *);
        !            34: extern bfd_boolean _bfd_mips_elf_section_processing
        !            35:   (bfd *, Elf_Internal_Shdr *);
        !            36: extern bfd_boolean _bfd_mips_elf_section_from_shdr
        !            37:   (bfd *, Elf_Internal_Shdr *, const char *, int);
        !            38: extern bfd_boolean _bfd_mips_elf_fake_sections
        !            39:   (bfd *, Elf_Internal_Shdr *, asection *);
        !            40: extern bfd_boolean _bfd_mips_elf_section_from_bfd_section
        !            41:   (bfd *, asection *, int *);
        !            42: extern bfd_boolean _bfd_mips_elf_add_symbol_hook
        !            43:   (bfd *, struct bfd_link_info *, Elf_Internal_Sym *,
        !            44:    const char **, flagword *, asection **, bfd_vma *);
        !            45: extern int _bfd_mips_elf_link_output_symbol_hook
        !            46:   (struct bfd_link_info *, const char *, Elf_Internal_Sym *,
        !            47:    asection *, struct elf_link_hash_entry *);
        !            48: extern bfd_boolean _bfd_mips_elf_create_dynamic_sections
        !            49:   (bfd *, struct bfd_link_info *);
        !            50: extern bfd_boolean _bfd_mips_elf_check_relocs
        !            51:   (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
        !            52: extern bfd_boolean _bfd_mips_elf_adjust_dynamic_symbol
        !            53:   (struct bfd_link_info *, struct elf_link_hash_entry *);
        !            54: extern bfd_boolean _bfd_mips_elf_always_size_sections
        !            55:   (bfd *, struct bfd_link_info *);
        !            56: extern bfd_boolean _bfd_mips_elf_size_dynamic_sections
        !            57:   (bfd *, struct bfd_link_info *);
        !            58: extern bfd_boolean _bfd_mips_elf_relocate_section
        !            59:   (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
        !            60:    Elf_Internal_Rela *, Elf_Internal_Sym *, asection **);
        !            61: extern bfd_boolean _bfd_mips_elf_finish_dynamic_symbol
        !            62:   (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
        !            63:    Elf_Internal_Sym *);
        !            64: extern bfd_boolean _bfd_mips_vxworks_finish_dynamic_symbol
        !            65:   (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
        !            66:    Elf_Internal_Sym *);
        !            67: extern bfd_boolean _bfd_mips_elf_finish_dynamic_sections
        !            68:   (bfd *, struct bfd_link_info *);
        !            69: extern void _bfd_mips_elf_final_write_processing
        !            70:   (bfd *, bfd_boolean);
        !            71: extern int _bfd_mips_elf_additional_program_headers
        !            72:   (bfd *, struct bfd_link_info *);
        !            73: extern bfd_boolean _bfd_mips_elf_modify_segment_map
        !            74:   (bfd *, struct bfd_link_info *);
        !            75: extern asection * _bfd_mips_elf_gc_mark_hook
        !            76:   (asection *, struct bfd_link_info *, Elf_Internal_Rela *,
        !            77:    struct elf_link_hash_entry *, Elf_Internal_Sym *);
        !            78: extern bfd_boolean _bfd_mips_elf_gc_sweep_hook
        !            79:   (bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
        !            80: extern void _bfd_mips_elf_copy_indirect_symbol
        !            81:   (struct bfd_link_info *, struct elf_link_hash_entry *,
        !            82:    struct elf_link_hash_entry *);
        !            83: extern bfd_boolean _bfd_mips_elf_ignore_discarded_relocs
        !            84:   (asection *);
        !            85: extern bfd_boolean _bfd_mips_elf_is_target_special_symbol
        !            86:   (bfd *abfd, asymbol *sym);
        !            87: extern bfd_boolean _bfd_mips_elf_find_nearest_line
        !            88:   (bfd *, asection *, asymbol **, bfd_vma, const char **,
        !            89:    const char **, unsigned int *);
        !            90: extern bfd_boolean _bfd_mips_elf_find_inliner_info
        !            91:   (bfd *, const char **, const char **, unsigned int *);
        !            92: extern bfd_boolean _bfd_mips_elf_set_section_contents
        !            93:   (bfd *, asection *, const void *, file_ptr, bfd_size_type);
        !            94: extern bfd_byte *_bfd_elf_mips_get_relocated_section_contents
        !            95:   (bfd *, struct bfd_link_info *, struct bfd_link_order *,
        !            96:    bfd_byte *, bfd_boolean, asymbol **);
        !            97: extern bfd_boolean _bfd_mips_elf_relax_section
        !            98:   (bfd *abfd, asection *sec, struct bfd_link_info *link_info,
        !            99:    bfd_boolean *again);
        !           100: extern struct bfd_link_hash_table *_bfd_mips_elf_link_hash_table_create
        !           101:   (bfd *);
        !           102: extern struct bfd_link_hash_table *_bfd_mips_vxworks_link_hash_table_create
        !           103:   (bfd *);
        !           104: extern bfd_boolean _bfd_mips_elf_final_link
        !           105:   (bfd *, struct bfd_link_info *);
        !           106: extern bfd_boolean _bfd_mips_elf_merge_private_bfd_data
        !           107:   (bfd *, bfd *);
        !           108: extern bfd_boolean _bfd_mips_elf_set_private_flags
        !           109:   (bfd *, flagword);
        !           110: extern bfd_boolean _bfd_mips_elf_print_private_bfd_data
        !           111:   (bfd *, void *);
        !           112: extern bfd_boolean _bfd_mips_elf_discard_info
        !           113:   (bfd *, struct elf_reloc_cookie *, struct bfd_link_info *);
        !           114: extern bfd_boolean _bfd_mips_elf_write_section
        !           115:   (bfd *, struct bfd_link_info *, asection *, bfd_byte *);
        !           116:
        !           117: extern bfd_boolean _bfd_mips_elf_read_ecoff_info
        !           118:   (bfd *, asection *, struct ecoff_debug_info *);
        !           119: extern void _bfd_mips_elf_reloc_unshuffle
        !           120:   (bfd *, int, bfd_boolean, bfd_byte *);
        !           121: extern void _bfd_mips_elf_reloc_shuffle
        !           122:   (bfd *, int, bfd_boolean, bfd_byte *);
        !           123: extern bfd_reloc_status_type _bfd_mips_elf_gprel16_with_gp
        !           124:   (bfd *, asymbol *, arelent *, asection *, bfd_boolean, void *, bfd_vma);
        !           125: extern bfd_reloc_status_type _bfd_mips_elf32_gprel16_reloc
        !           126:   (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
        !           127: extern bfd_reloc_status_type _bfd_mips_elf_hi16_reloc
        !           128:   (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
        !           129: extern bfd_reloc_status_type _bfd_mips_elf_got16_reloc
        !           130:   (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
        !           131: extern bfd_reloc_status_type _bfd_mips_elf_lo16_reloc
        !           132:   (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
        !           133: extern bfd_reloc_status_type _bfd_mips_elf_generic_reloc
        !           134:   (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
        !           135: extern unsigned long _bfd_elf_mips_mach
        !           136:   (flagword);
        !           137: extern bfd_boolean _bfd_mips_relax_section
        !           138:   (bfd *, asection *, struct bfd_link_info *, bfd_boolean *);
        !           139: extern bfd_vma _bfd_mips_elf_sign_extend
        !           140:   (bfd_vma, int);
        !           141: extern void _bfd_mips_elf_merge_symbol_attribute
        !           142:   (struct elf_link_hash_entry *, const Elf_Internal_Sym *, bfd_boolean, bfd_boolean);
        !           143: extern char *_bfd_mips_elf_get_target_dtag (bfd_vma);
        !           144: extern bfd_boolean _bfd_mips_elf_ignore_undef_symbol
        !           145:   (struct elf_link_hash_entry *);
        !           146: extern void _bfd_mips_elf_use_plts_and_copy_relocs
        !           147:   (struct bfd_link_info *);
        !           148: extern bfd_boolean _bfd_mips_elf_init_stubs
        !           149:   (struct bfd_link_info *,
        !           150:    asection *(*) (const char *, asection *, asection *));
        !           151: extern bfd_vma _bfd_mips_elf_plt_sym_val
        !           152:   (bfd_vma, const asection *, const arelent *rel);
        !           153: extern void _bfd_mips_post_process_headers
        !           154:   (bfd *abfd, struct bfd_link_info *link_info);
        !           155:
        !           156: extern const struct bfd_elf_special_section _bfd_mips_elf_special_sections [];
        !           157:
        !           158: extern bfd_boolean _bfd_mips_elf_common_definition (Elf_Internal_Sym *);
        !           159:
        !           160: static inline bfd_boolean
        !           161: gprel16_reloc_p (unsigned int r_type)
        !           162: {
        !           163:   return (r_type == R_MIPS_GPREL16
        !           164:          || r_type == R_MIPS16_GPREL
        !           165:          || r_type == R_MICROMIPS_GPREL16
        !           166:          || r_type == R_MICROMIPS_GPREL7_S2);
        !           167: }
        !           168:
        !           169: static inline bfd_boolean
        !           170: literal_reloc_p (int r_type)
        !           171: {
        !           172:   return r_type == R_MIPS_LITERAL || r_type == R_MICROMIPS_LITERAL;
        !           173: }
        !           174:
        !           175: #define elf_backend_common_definition   _bfd_mips_elf_common_definition
        !           176: #define elf_backend_name_local_section_symbols \
        !           177:   _bfd_mips_elf_name_local_section_symbols
        !           178: #define elf_backend_special_sections _bfd_mips_elf_special_sections
        !           179: #define elf_backend_eh_frame_address_size _bfd_mips_elf_eh_frame_address_size
        !           180: #define elf_backend_merge_symbol_attribute  _bfd_mips_elf_merge_symbol_attribute
        !           181: #define elf_backend_ignore_undef_symbol _bfd_mips_elf_ignore_undef_symbol
        !           182: #define elf_backend_post_process_headers _bfd_mips_post_process_headers

CVSweb <webmaster@jp.NetBSD.org>