osprey/cygnus/bfd/elf64-sparc.c File Reference

#include "bfd.h"
#include "sysdep.h"
#include "libbfd.h"
#include "elf-bfd.h"
#include "opcode/sparc.h"
#include "elf/sparc.h"
#include "elf64-target.h"

Include dependency graph for elf64-sparc.c:

Go to the source code of this file.

Data Types

type  elf_reloc_map
type  sparc64_elf_section_data
type  sparc64_elf_app_reg
type  sparc64_elf_link_hash_table

Defines

#define MINUS_ONE   (~ (bfd_vma) 0)
#define sec_do_relax(sec)   ((struct sparc64_elf_section_data *) elf_section_data (sec))->do_relax
#define canon_reloc_count(sec)   ((struct sparc64_elf_section_data *) elf_section_data (sec))->reloc_count
#define sparc64_elf_hash_table(p)   ((struct sparc64_elf_link_hash_table *) ((p)->hash))
#define PLT_ENTRY_SIZE   32
#define PLT_HEADER_SIZE   (4 * PLT_ENTRY_SIZE)
#define LARGE_PLT_THRESHOLD   32768
#define GOT_RESERVED_ENTRIES   1
#define ELF_DYNAMIC_INTERPRETER   "/usr/lib/sparcv9/ld.so.1"
#define add_dynamic_entry(TAG, VAL)   _bfd_elf_add_dynamic_entry (info, TAG, VAL)
#define G0   0
#define O7   15
#define XCC   (2 << 20)
#define COND(x)   (((x)&0xf)<<25)
#define CONDA   COND(0x8)
#define INSN_BPA   (F2(0,1) | CONDA | BPRED | XCC)
#define INSN_BA   (F2(0,2) | CONDA)
#define INSN_OR   F3(2, 0x2, 0)
#define INSN_NOP   F2(0,4)
#define EF_SPARC_ISA_EXTENSIONS   (EF_SPARC_SUN_US1 | EF_SPARC_SUN_US3 | EF_SPARC_HAL_R1)
#define TARGET_BIG_SYM   bfd_elf64_sparc_vec
#define TARGET_BIG_NAME   "elf64-sparc"
#define ELF_ARCH   bfd_arch_sparc
#define ELF_MAXPAGESIZE   0x100000
#define ELF_MACHINE_CODE   EM_SPARCV9
#define ELF_MACHINE_ALT1   EM_OLD_SPARCV9
#define bfd_elf64_bfd_link_hash_table_create   sparc64_elf_bfd_link_hash_table_create
#define elf_info_to_howto   sparc64_elf_info_to_howto
#define bfd_elf64_get_reloc_upper_bound   sparc64_elf_get_reloc_upper_bound
#define bfd_elf64_get_dynamic_reloc_upper_bound   sparc64_elf_get_dynamic_reloc_upper_bound
#define bfd_elf64_canonicalize_reloc   sparc64_elf_canonicalize_reloc
#define bfd_elf64_canonicalize_dynamic_reloc   sparc64_elf_canonicalize_dynamic_reloc
#define bfd_elf64_bfd_reloc_type_lookup   sparc64_elf_reloc_type_lookup
#define bfd_elf64_bfd_relax_section   sparc64_elf_relax_section
#define bfd_elf64_new_section_hook   sparc64_elf_new_section_hook
#define elf_backend_create_dynamic_sections   sparc64_elf_create_dynamic_sections
#define elf_backend_add_symbol_hook   sparc64_elf_add_symbol_hook
#define elf_backend_get_symbol_type   sparc64_elf_get_symbol_type
#define elf_backend_symbol_processing   sparc64_elf_symbol_processing
#define elf_backend_check_relocs   sparc64_elf_check_relocs
#define elf_backend_adjust_dynamic_symbol   sparc64_elf_adjust_dynamic_symbol
#define elf_backend_omit_section_dynsym   sparc64_elf_omit_section_dynsym
#define elf_backend_size_dynamic_sections   sparc64_elf_size_dynamic_sections
#define elf_backend_relocate_section   sparc64_elf_relocate_section
#define elf_backend_finish_dynamic_symbol   sparc64_elf_finish_dynamic_symbol
#define elf_backend_finish_dynamic_sections   sparc64_elf_finish_dynamic_sections
#define elf_backend_print_symbol_all   sparc64_elf_print_symbol_all
#define elf_backend_output_arch_syms   sparc64_elf_output_arch_syms
#define bfd_elf64_bfd_merge_private_bfd_data   sparc64_elf_merge_private_bfd_data
#define elf_backend_fake_sections   sparc64_elf_fake_sections
#define elf_backend_plt_sym_val   sparc64_elf_plt_sym_val
#define elf_backend_size_info   sparc64_elf_size_info
#define elf_backend_object_p   sparc64_elf_object_p
#define elf_backend_reloc_type_class   sparc64_elf_reloc_type_class
#define elf_backend_want_got_plt   0
#define elf_backend_plt_readonly   0
#define elf_backend_want_plt_sym   1
#define elf_backend_rela_normal   1
#define elf_backend_plt_alignment   8
#define elf_backend_got_header_size   8

Functions/Subroutines

static struct
bfd_link_hash_table
*sparc64_elf_bfd_link_hash_table_create 
PARAMS ((bfd *))
static bfd_boolean
create_got_section 
PARAMS ((bfd *, struct bfd_link_info *))
static bfd_reloc_status_type
init_insn_reloc 
PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, bfd_vma *, bfd_vma *))
static reloc_howto_type
*sparc64_elf_reloc_type_lookup 
PARAMS ((bfd *, bfd_reloc_code_real_type))
static void
sparc64_elf_info_to_howto 
PARAMS ((bfd *, arelent *, Elf_Internal_Rela *))
static void sparc64_elf_build_plt PARAMS ((bfd *, unsigned char *, int))
static bfd_vma
sparc64_elf_plt_entry_offset 
PARAMS ((bfd_vma))
static bfd_vma
sparc64_elf_plt_ptr_offset 
PARAMS ((bfd_vma, bfd_vma))
static bfd_boolean
sparc64_elf_check_relocs 
PARAMS ((bfd *, struct bfd_link_info *, asection *sec, const Elf_Internal_Rela *))
static bfd_boolean
sparc64_elf_adjust_dynamic_symbol 
PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *))
static bfd_boolean
sparc64_elf_omit_section_dynsym 
PARAMS ((bfd *, struct bfd_link_info *, asection *))
static int
sparc64_elf_get_symbol_type 
PARAMS ((Elf_Internal_Sym *, int))
static bfd_boolean
sparc64_elf_add_symbol_hook 
PARAMS ((bfd *, struct bfd_link_info *, Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *))
static bfd_boolean
sparc64_elf_output_arch_syms 
PARAMS ((bfd *, struct bfd_link_info *, PTR, bfd_boolean(*)(PTR, const char *, Elf_Internal_Sym *, asection *, struct elf_link_hash_entry *)))
static void
sparc64_elf_symbol_processing 
PARAMS ((bfd *, asymbol *))
static bfd_boolean
sparc64_elf_merge_private_bfd_data 
PARAMS ((bfd *, bfd *))
static bfd_boolean
sparc64_elf_fake_sections 
PARAMS ((bfd *, Elf_Internal_Shdr *, asection *))
static const char
*sparc64_elf_print_symbol_all 
PARAMS ((bfd *, PTR, asymbol *))
static bfd_boolean
sparc64_elf_new_section_hook 
PARAMS ((bfd *, asection *))
static bfd_boolean
sparc64_elf_relax_section 
PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *))
static bfd_boolean
sparc64_elf_relocate_section 
PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **))
static bfd_boolean
sparc64_elf_finish_dynamic_symbol 
PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *))
static bfd_boolean
sparc64_elf_slurp_one_reloc_table 
PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, asymbol **, bfd_boolean))
static bfd_boolean
sparc64_elf_slurp_reloc_table 
PARAMS ((bfd *, asection *, asymbol **, bfd_boolean))
static long
sparc64_elf_canonicalize_reloc 
PARAMS ((bfd *, asection *, arelent **, asymbol **))
static long
sparc64_elf_canonicalize_dynamic_reloc 
PARAMS ((bfd *, arelent **, asymbol **))
static void
sparc64_elf_write_relocs 
PARAMS ((bfd *, asection *, PTR))
static enum
elf_reloc_type_class
sparc64_elf_reloc_type_class 
PARAMS ((const Elf_Internal_Rela *))
static bfd_reloc_status_type
sparc_elf_notsup_reloc 
PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **))
static reloc_howto_typesparc64_elf_reloc_type_lookup (abfd, bfd_reloc_code_real_type code)
static void sparc64_elf_info_to_howto (abfd, arelent *cache_ptr, Elf_Internal_Rela *dst)
static long sparc64_elf_get_reloc_upper_bound (abfd, asection *sec)
static long sparc64_elf_get_dynamic_reloc_upper_bound (bfd *abfd)
static bfd_boolean sparc64_elf_slurp_one_reloc_table (bfd *abfd, asection *asect, Elf_Internal_Shdr *rel_hdr, asymbol **symbols, bfd_boolean dynamic)
static bfd_boolean sparc64_elf_slurp_reloc_table (bfd *abfd, asection *asect, asymbol **symbols, bfd_boolean dynamic)
static long sparc64_elf_canonicalize_reloc (bfd *abfd, sec_ptr section, arelent **relptr, asymbol **symbols)
static long sparc64_elf_canonicalize_dynamic_reloc (bfd *abfd, arelent **storage, asymbol **syms)
static void sparc64_elf_write_relocs (bfd *abfd, asection *sec, PTR data)
static struct bfd_link_hash_tablesparc64_elf_bfd_link_hash_table_create (bfd *abfd)
static bfd_boolean create_got_section (bfd *dynobj, struct bfd_link_info *info)
static bfd_boolean sparc64_elf_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info)
static bfd_reloc_status_type init_insn_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, PTR data, asection *input_section, bfd *output_bfd, bfd_vma *prelocation, bfd_vma *pinsn)
static bfd_reloc_status_type sparc_elf_notsup_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd, error_message)
static bfd_reloc_status_type sparc_elf_wdisp16_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, PTR data, asection *input_section, bfd *output_bfd, error_message)
static bfd_reloc_status_type sparc_elf_hix22_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, PTR data, asection *input_section, bfd *output_bfd, error_message)
static bfd_reloc_status_type sparc_elf_lox10_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol, PTR data, asection *input_section, bfd *output_bfd, error_message)
static void sparc64_elf_build_plt (bfd *output_bfd, unsigned char *contents, int nentries)
static bfd_vma sparc64_elf_plt_entry_offset (bfd_vma index)
static bfd_vma sparc64_elf_plt_ptr_offset (bfd_vma index, bfd_vma max)
static bfd_boolean sparc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec, const Elf_Internal_Rela *relocs)
static bfd_boolean sparc64_elf_add_symbol_hook (bfd *abfd, struct bfd_link_info *info, Elf_Internal_Sym *sym, const char **namep, flagsp, secp, valp)
static bfd_boolean sparc64_elf_output_arch_syms (output_bfd, struct bfd_link_info *info, PTR finfo, bfd_boolean *func)
static int sparc64_elf_get_symbol_type (Elf_Internal_Sym *elf_sym, int type)
static void sparc64_elf_symbol_processing (abfd, asymbol *asym)
static bfd_boolean sparc64_elf_adjust_dynamic_symbol (struct bfd_link_info *info, struct elf_link_hash_entry *h)
static bfd_boolean sparc64_elf_omit_section_dynsym (bfd *output_bfd, struct bfd_link_info *info, asection *p)
static bfd_boolean sparc64_elf_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
static bfd_boolean sparc64_elf_new_section_hook (bfd *abfd, asection *sec)
static bfd_boolean sparc64_elf_relax_section (abfd, section, link_info, bfd_boolean *again)
static bfd_boolean sparc64_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info, bfd *input_bfd, asection *input_section, bfd_byte *contents, Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms, asection **local_sections)
static bfd_boolean sparc64_elf_finish_dynamic_symbol (bfd *output_bfd, struct bfd_link_info *info, struct elf_link_hash_entry *h, Elf_Internal_Sym *sym)
static bfd_boolean sparc64_elf_finish_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info)
static enum elf_reloc_type_class sparc64_elf_reloc_type_class (Elf_Internal_Rela *rela) const
static bfd_boolean sparc64_elf_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
static bfd_boolean sparc64_elf_fake_sections (abfd, hdr, asection *sec)
static const char * sparc64_elf_print_symbol_all (abfd, PTR filep, asymbol *symbol)
static bfd_boolean sparc64_elf_object_p (bfd *abfd)
static bfd_vma sparc64_elf_plt_sym_val (bfd_vma i, const asection *plt, const arelent *rel ATTRIBUTE_UNUSED)

Variables

static reloc_howto_type sparc64_elf_howto_table []
static struct elf_reloc_map sparc_reloc_map []
struct elf_size_info sparc64_elf_size_info


Define Documentation

#define add_dynamic_entry ( TAG,
VAL   )     _bfd_elf_add_dynamic_entry (info, TAG, VAL)

#define bfd_elf64_bfd_link_hash_table_create   sparc64_elf_bfd_link_hash_table_create

Definition at line 3242 of file elf64-sparc.c.

#define bfd_elf64_bfd_merge_private_bfd_data   sparc64_elf_merge_private_bfd_data

Definition at line 3288 of file elf64-sparc.c.

#define bfd_elf64_bfd_relax_section   sparc64_elf_relax_section

Definition at line 3257 of file elf64-sparc.c.

#define bfd_elf64_bfd_reloc_type_lookup   sparc64_elf_reloc_type_lookup

Definition at line 3255 of file elf64-sparc.c.

#define bfd_elf64_canonicalize_dynamic_reloc   sparc64_elf_canonicalize_dynamic_reloc

Definition at line 3253 of file elf64-sparc.c.

#define bfd_elf64_canonicalize_reloc   sparc64_elf_canonicalize_reloc

Definition at line 3251 of file elf64-sparc.c.

#define bfd_elf64_get_dynamic_reloc_upper_bound   sparc64_elf_get_dynamic_reloc_upper_bound

Definition at line 3249 of file elf64-sparc.c.

#define bfd_elf64_get_reloc_upper_bound   sparc64_elf_get_reloc_upper_bound

Definition at line 3247 of file elf64-sparc.c.

#define bfd_elf64_new_section_hook   sparc64_elf_new_section_hook

Definition at line 3259 of file elf64-sparc.c.

#define canon_reloc_count ( sec   )     ((struct sparc64_elf_section_data *) elf_section_data (sec))->reloc_count

#define COND (  )     (((x)&0xf)<<25)

#define CONDA   COND(0x8)

#define EF_SPARC_ISA_EXTENSIONS   (EF_SPARC_SUN_US1 | EF_SPARC_SUN_US3 | EF_SPARC_HAL_R1)

#define ELF_ARCH   bfd_arch_sparc

Definition at line 3233 of file elf64-sparc.c.

#define elf_backend_add_symbol_hook   sparc64_elf_add_symbol_hook

Definition at line 3264 of file elf64-sparc.c.

#define elf_backend_adjust_dynamic_symbol   sparc64_elf_adjust_dynamic_symbol

Definition at line 3272 of file elf64-sparc.c.

#define elf_backend_check_relocs   sparc64_elf_check_relocs

Definition at line 3270 of file elf64-sparc.c.

#define elf_backend_create_dynamic_sections   sparc64_elf_create_dynamic_sections

Definition at line 3262 of file elf64-sparc.c.

#define elf_backend_fake_sections   sparc64_elf_fake_sections

Definition at line 3290 of file elf64-sparc.c.

#define elf_backend_finish_dynamic_sections   sparc64_elf_finish_dynamic_sections

Definition at line 3282 of file elf64-sparc.c.

#define elf_backend_finish_dynamic_symbol   sparc64_elf_finish_dynamic_symbol

Definition at line 3280 of file elf64-sparc.c.

#define elf_backend_get_symbol_type   sparc64_elf_get_symbol_type

Definition at line 3266 of file elf64-sparc.c.

#define elf_backend_got_header_size   8

Definition at line 3310 of file elf64-sparc.c.

#define elf_backend_object_p   sparc64_elf_object_p

Definition at line 3297 of file elf64-sparc.c.

#define elf_backend_omit_section_dynsym   sparc64_elf_omit_section_dynsym

Definition at line 3274 of file elf64-sparc.c.

#define elf_backend_output_arch_syms   sparc64_elf_output_arch_syms

Definition at line 3286 of file elf64-sparc.c.

#define elf_backend_plt_alignment   8

Definition at line 3308 of file elf64-sparc.c.

#define elf_backend_plt_readonly   0

Definition at line 3303 of file elf64-sparc.c.

#define elf_backend_plt_sym_val   sparc64_elf_plt_sym_val

Definition at line 3292 of file elf64-sparc.c.

#define elf_backend_print_symbol_all   sparc64_elf_print_symbol_all

Definition at line 3284 of file elf64-sparc.c.

#define elf_backend_rela_normal   1

Definition at line 3305 of file elf64-sparc.c.

#define elf_backend_reloc_type_class   sparc64_elf_reloc_type_class

Definition at line 3299 of file elf64-sparc.c.

#define elf_backend_relocate_section   sparc64_elf_relocate_section

Definition at line 3278 of file elf64-sparc.c.

#define elf_backend_size_dynamic_sections   sparc64_elf_size_dynamic_sections

Definition at line 3276 of file elf64-sparc.c.

#define elf_backend_size_info   sparc64_elf_size_info

Definition at line 3295 of file elf64-sparc.c.

#define elf_backend_symbol_processing   sparc64_elf_symbol_processing

Definition at line 3268 of file elf64-sparc.c.

#define elf_backend_want_got_plt   0

Definition at line 3302 of file elf64-sparc.c.

#define elf_backend_want_plt_sym   1

Definition at line 3304 of file elf64-sparc.c.

#define ELF_DYNAMIC_INTERPRETER   "/usr/lib/sparcv9/ld.so.1"

Definition at line 1028 of file elf64-sparc.c.

#define elf_info_to_howto   sparc64_elf_info_to_howto

Definition at line 3245 of file elf64-sparc.c.

#define ELF_MACHINE_ALT1   EM_OLD_SPARCV9

Definition at line 3240 of file elf64-sparc.c.

#define ELF_MACHINE_CODE   EM_SPARCV9

Definition at line 3237 of file elf64-sparc.c.

#define ELF_MAXPAGESIZE   0x100000

Definition at line 3234 of file elf64-sparc.c.

#define G0   0

#define GOT_RESERVED_ENTRIES   1

Definition at line 1026 of file elf64-sparc.c.

#define INSN_BA   (F2(0,2) | CONDA)

#define INSN_BPA   (F2(0,1) | CONDA | BPRED | XCC)

#define INSN_NOP   F2(0,4)

#define INSN_OR   F3(2, 0x2, 0)

#define LARGE_PLT_THRESHOLD   32768

#define MINUS_ONE   (~ (bfd_vma) 0)

Definition at line 39 of file elf64-sparc.c.

#define O7   15

#define PLT_ENTRY_SIZE   32

Definition at line 1023 of file elf64-sparc.c.

#define PLT_HEADER_SIZE   (4 * PLT_ENTRY_SIZE)

Definition at line 1024 of file elf64-sparc.c.

#define sec_do_relax ( sec   )     ((struct sparc64_elf_section_data *) elf_section_data (sec))->do_relax

Definition at line 333 of file elf64-sparc.c.

#define sparc64_elf_hash_table ( p   )     ((struct sparc64_elf_link_hash_table *) ((p)->hash))

#define TARGET_BIG_NAME   "elf64-sparc"

Definition at line 3232 of file elf64-sparc.c.

Definition at line 3231 of file elf64-sparc.c.

#define XCC   (2 << 20)


Function Documentation

static bfd_boolean create_got_section ( bfd dynobj,
struct bfd_link_info info 
) [static]

static bfd_reloc_status_type init_insn_reloc ( bfd abfd,
arelent reloc_entry,
asymbol symbol,
PTR  data,
asection input_section,
bfd output_bfd,
bfd_vma prelocation,
bfd_vma pinsn 
) [static]

static bfd_reloc_status_type sparc_elf_notsup_reloc PARAMS ( (bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)   )  [static]

static enum elf_reloc_type_class sparc64_elf_reloc_type_class PARAMS ( (const Elf_Internal_Rela *)   )  [static]

static void sparc64_elf_write_relocs PARAMS ( (bfd *, asection *, PTR  )  [static]

static long sparc64_elf_canonicalize_dynamic_reloc PARAMS ( (bfd *, arelent **, asymbol **)   )  [static]

static long sparc64_elf_canonicalize_reloc PARAMS ( (bfd *, asection *, arelent **, asymbol **)   )  [static]

static bfd_boolean sparc64_elf_slurp_reloc_table PARAMS ( (bfd *, asection *, asymbol **, bfd_boolean)   )  [static]

static bfd_boolean sparc64_elf_slurp_one_reloc_table PARAMS ( (bfd *, asection *, Elf_Internal_Shdr *, asymbol **, bfd_boolean)   )  [static]

static bfd_boolean sparc64_elf_finish_dynamic_symbol PARAMS ( (bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)   )  [static]

static bfd_boolean sparc64_elf_relocate_section PARAMS ( (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)   )  [static]

static bfd_boolean sparc64_elf_relax_section PARAMS ( (bfd *, asection *, struct bfd_link_info *, bfd_boolean *)   )  [static]

static bfd_boolean sparc64_elf_new_section_hook PARAMS ( (bfd *, asection *)   )  [static]

static const char* sparc64_elf_print_symbol_all PARAMS ( (bfd *, PTR, asymbol *)   )  [static]

static bfd_boolean sparc64_elf_fake_sections PARAMS ( (bfd *, Elf_Internal_Shdr *, asection *)   )  [static]

static bfd_boolean sparc64_elf_merge_private_bfd_data PARAMS ( (bfd *, bfd *)   )  [static]

static void sparc64_elf_symbol_processing PARAMS ( (bfd *, asymbol *)   )  [static]

static bfd_boolean sparc64_elf_output_arch_syms PARAMS ( (bfd *, struct bfd_link_info *, PTR, bfd_boolean(*)(PTR, const char *, Elf_Internal_Sym *, asection *, struct elf_link_hash_entry *))   )  [static]

static bfd_boolean sparc64_elf_add_symbol_hook PARAMS ( (bfd *, struct bfd_link_info *, Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *)   )  [static]

static int sparc64_elf_get_symbol_type PARAMS ( (Elf_Internal_Sym *, int)   )  [static]

static bfd_boolean sparc64_elf_omit_section_dynsym PARAMS ( (bfd *, struct bfd_link_info *, asection *)   )  [static]

static bfd_boolean sparc64_elf_adjust_dynamic_symbol PARAMS ( (struct bfd_link_info *, struct elf_link_hash_entry *)   )  [static]

static bfd_boolean sparc64_elf_check_relocs PARAMS ( (bfd *, struct bfd_link_info *, asection *sec, const Elf_Internal_Rela *)   )  [static]

static bfd_vma sparc64_elf_plt_ptr_offset PARAMS ( (bfd_vma, bfd_vma  )  [static]

static bfd_vma sparc64_elf_plt_entry_offset PARAMS ( (bfd_vma  )  [static]

static void sparc64_elf_build_plt PARAMS ( (bfd *, unsigned char *, int)   )  [static]

static void sparc64_elf_info_to_howto PARAMS ( (bfd *, arelent *, Elf_Internal_Rela *)   )  [static]

static reloc_howto_type* sparc64_elf_reloc_type_lookup PARAMS ( (bfd *, bfd_reloc_code_real_type  )  [static]

static bfd_reloc_status_type init_insn_reloc PARAMS ( (bfd *, arelent *, asymbol *, PTR, asection *, bfd *, bfd_vma *, bfd_vma *)   )  [static]

static bfd_boolean create_got_section PARAMS ( (bfd *, struct bfd_link_info *)   )  [static]

static struct bfd_link_hash_table* sparc64_elf_bfd_link_hash_table_create PARAMS ( (bfd *)   )  [static, read]

static bfd_boolean sparc64_elf_add_symbol_hook ( bfd abfd,
struct bfd_link_info info,
Elf_Internal_Sym sym,
const char **  namep,
flagsp  ,
secp  ,
valp   
) [static]

static bfd_boolean sparc64_elf_adjust_dynamic_symbol ( struct bfd_link_info info,
struct elf_link_hash_entry h 
) [static]

static struct bfd_link_hash_table* sparc64_elf_bfd_link_hash_table_create ( bfd abfd  )  [static, read]

static void sparc64_elf_build_plt ( bfd output_bfd,
unsigned char *  contents,
int  nentries 
) [static]

static long sparc64_elf_canonicalize_dynamic_reloc ( bfd abfd,
arelent **  storage,
asymbol **  syms 
) [static]

static long sparc64_elf_canonicalize_reloc ( bfd abfd,
sec_ptr  section,
arelent **  relptr,
asymbol **  symbols 
) [static]

static bfd_boolean sparc64_elf_check_relocs ( bfd abfd,
struct bfd_link_info info,
asection sec,
const Elf_Internal_Rela relocs 
) [static]

static bfd_boolean sparc64_elf_create_dynamic_sections ( bfd dynobj,
struct bfd_link_info info 
) [static]

static bfd_boolean sparc64_elf_fake_sections ( abfd  ,
hdr  ,
asection sec 
) [static]

Definition at line 3112 of file elf64-sparc.c.

References abfd, bfd_get_section_name, elf_section_data, strcmp(), and TRUE.

static bfd_boolean sparc64_elf_finish_dynamic_sections ( bfd output_bfd,
struct bfd_link_info info 
) [static]

static bfd_boolean sparc64_elf_finish_dynamic_symbol ( bfd output_bfd,
struct bfd_link_info info,
struct elf_link_hash_entry h,
Elf_Internal_Sym sym 
) [static]

static long sparc64_elf_get_dynamic_reloc_upper_bound ( bfd abfd  )  [static]

Definition at line 351 of file elf64-sparc.c.

References _bfd_elf_get_dynamic_reloc_upper_bound().

static long sparc64_elf_get_reloc_upper_bound ( abfd  ,
asection sec 
) [static]

Definition at line 343 of file elf64-sparc.c.

References bfd_section::reloc_count.

static int sparc64_elf_get_symbol_type ( Elf_Internal_Sym elf_sym,
int  type 
) [static]

Definition at line 1620 of file elf64-sparc.c.

References ELF_ST_TYPE, and STT_REGISTER.

static void sparc64_elf_info_to_howto ( abfd  ,
arelent cache_ptr,
Elf_Internal_Rela dst 
) [static]

static bfd_boolean sparc64_elf_merge_private_bfd_data ( bfd ibfd,
bfd obfd 
) [static]

static bfd_boolean sparc64_elf_new_section_hook ( bfd abfd,
asection sec 
) [static]

static bfd_boolean sparc64_elf_object_p ( bfd abfd  )  [static]

static bfd_boolean sparc64_elf_omit_section_dynsym ( bfd output_bfd,
struct bfd_link_info info,
asection p 
) [static]

static bfd_boolean sparc64_elf_output_arch_syms ( output_bfd  ,
struct bfd_link_info info,
PTR  finfo,
bfd_boolean *  func 
) [static]

static bfd_vma sparc64_elf_plt_entry_offset ( bfd_vma  index  )  [static]

static bfd_vma sparc64_elf_plt_ptr_offset ( bfd_vma  index,
bfd_vma  max 
) [static]

Definition at line 1127 of file elf64-sparc.c.

References BFD_ASSERT, LARGE_PLT_THRESHOLD, last, and PLT_ENTRY_SIZE.

Referenced by sparc64_elf_finish_dynamic_symbol().

static bfd_vma sparc64_elf_plt_sym_val ( bfd_vma  i,
const asection plt,
const arelent *rel  ATTRIBUTE_UNUSED 
) [static]

Definition at line 3177 of file elf64-sparc.c.

References LARGE_PLT_THRESHOLD, PLT_ENTRY_SIZE, PLT_HEADER_SIZE, and bfd_section::vma.

static const char* sparc64_elf_print_symbol_all ( abfd  ,
PTR  filep,
asymbol symbol 
) [static]

Definition at line 3133 of file elf64-sparc.c.

References BSF_GLOBAL, BSF_LOCAL, BSF_WEAK, ELF_ST_TYPE, fprintf(), NULL, and STT_REGISTER.

static bfd_boolean sparc64_elf_relax_section ( abfd  ,
section  ,
link_info  ,
bfd_boolean *  again 
) [static]

Definition at line 2047 of file elf64-sparc.c.

References FALSE, sec_do_relax, and TRUE.

static enum elf_reloc_type_class sparc64_elf_reloc_type_class ( Elf_Internal_Rela rela  )  const [static]

static reloc_howto_type* sparc64_elf_reloc_type_lookup ( abfd  ,
bfd_reloc_code_real_type  code 
) [static]

Definition at line 304 of file elf64-sparc.c.

References elf_reloc_map::bfd_reloc_val, elf_reloc_map::elf_reloc_val, i, and int.

static bfd_boolean sparc64_elf_relocate_section ( bfd output_bfd,
struct bfd_link_info info,
bfd input_bfd,
asection input_section,
bfd_byte contents,
Elf_Internal_Rela relocs,
Elf_Internal_Sym local_syms,
asection **  local_sections 
) [static]

Definition at line 2061 of file elf64-sparc.c.

References _, _bfd_elf_rela_local_sym(), _bfd_elf_section_offset(), _bfd_final_link_relocate(), abort, bfd_arch_bits_per_address(), BFD_ASSERT, bfd_check_overflow(), bfd_elf64_swap_reloca_out(), bfd_elf_string_from_elf_section(), bfd_error_bad_value, BFD_FAIL, bfd_get_32, bfd_get_section_by_name(), bfd_get_section_name, bfd_is_abs_section, bfd_link_hash_undefweak, bfd_put_32, bfd_put_64, bfd_reloc_ok, bfd_reloc_outofrange, bfd_reloc_overflow, bfd_section_name, bfd_set_error(), reloc_howto_struct::bitsize, bfd_link_info::callbacks, reloc_howto_struct::complain_on_overflow, bfd_section::contents, elf_link_hash_entry::def_dynamic, elf_link_hash_entry::def_regular, elf_link_hash_entry::dynindx, ELF64_R_INFO, ELF64_R_SYM, ELF64_R_TYPE_DATA, ELF64_R_TYPE_ID, ELF64_R_TYPE_INFO, elf_elfheader, elf_hash_table, elf_local_got_offsets, elf_section_data, ELF_ST_VISIBILITY, elf_sym_hashes, elf_tdata, F3I, FALSE, bfd_section::flags, elf_link_hash_entry::forced_local, G0, elf_link_hash_entry::got, h, indx, INSN_BA, INSN_BPA, INSN_NOP, INSN_OR, long, memset, MINUS_ONE, reloc_howto_struct::name, NULL, NUM_SHDR_ENTRIES, O7, elf_link_hash_entry::gotplt_union::offset, OP, OP3, elf_link_hash_entry::other, bfd_section::output_offset, bfd_section::output_section, bfd_section::owner, reloc_howto_struct::pc_relative, elf_link_hash_entry::plt, r, elf_internal_rela::r_addend, elf_internal_rela::r_info, elf_internal_rela::r_offset, R_SPARC_13, R_SPARC_16, R_SPARC_22, R_SPARC_32, R_SPARC_8, R_SPARC_DISP16, R_SPARC_DISP32, R_SPARC_DISP8, R_SPARC_GOT10, R_SPARC_GOT13, R_SPARC_GOT22, R_SPARC_HI22, R_SPARC_LO10, R_SPARC_PC10, R_SPARC_PC22, R_SPARC_RELATIVE, R_SPARC_UA32, R_SPARC_WDISP22, R_SPARC_WDISP30, R_SPARC_WPLT30, RD, rel, bfd_section::reloc_count, RELOC_FOR_GLOBAL_SYMBOL, bfd_link_callbacks::reloc_overflow, bfd_link_info::relocatable, reloc_howto_struct::rightshift, elf_link_hash_entry::root, bfd_link_hash_entry::root, RS1, RS2, s, sec, SEC_ALLOC, SEC_DEBUGGING, sec_do_relax, elf_internal_shdr::sh_link, bfd_link_info::shared, bfd_section::size, skip, sparc64_elf_hash_table, sparc64_elf_plt_entry_offset(), elf_internal_sym::st_name, strcmp(), bfd_hash_entry::string, strncmp(), STV_DEFAULT, sym, bfd_link_info::symbolic, TRUE, bfd_link_hash_entry::type, bfd_section::vma, WILL_CALL_FINISH_DYNAMIC_SYMBOL, x, is::y, and is::z.

static bfd_boolean sparc64_elf_size_dynamic_sections ( bfd output_bfd,
struct bfd_link_info info 
) [static]

static bfd_boolean sparc64_elf_slurp_one_reloc_table ( bfd abfd,
asection asect,
Elf_Internal_Shdr rel_hdr,
asymbol **  symbols,
bfd_boolean  dynamic 
) [static]

static bfd_boolean sparc64_elf_slurp_reloc_table ( bfd abfd,
asection asect,
asymbol **  symbols,
bfd_boolean  dynamic 
) [static]

static void sparc64_elf_symbol_processing ( abfd  ,
asymbol asym 
) [static]

static void sparc64_elf_write_relocs ( bfd abfd,
asection sec,
PTR  data 
) [static]

static bfd_reloc_status_type sparc_elf_hix22_reloc ( bfd abfd,
arelent reloc_entry,
asymbol symbol,
PTR  data,
asection input_section,
bfd output_bfd,
error_message   
) [static]

static bfd_reloc_status_type sparc_elf_lox10_reloc ( bfd abfd,
arelent reloc_entry,
asymbol symbol,
PTR  data,
asection input_section,
bfd output_bfd,
error_message   
) [static]

static bfd_reloc_status_type sparc_elf_notsup_reloc ( abfd  ,
reloc_entry  ,
symbol  ,
data  ,
input_section  ,
output_bfd  ,
error_message   
) [static]

Definition at line 899 of file elf64-sparc.c.

References bfd_reloc_notsupported.

static bfd_reloc_status_type sparc_elf_wdisp16_reloc ( bfd abfd,
arelent reloc_entry,
asymbol symbol,
PTR  data,
asection input_section,
bfd output_bfd,
error_message   
) [static]


Variable Documentation

Definition at line 129 of file elf64-sparc.c.

Definition at line 3196 of file elf64-sparc.c.

Definition at line 221 of file elf64-sparc.c.


Generated on Wed Apr 8 14:48:54 2009 for Open64 by  doxygen 1.5.6