Line 36... |
Line 36... |
extern "C" {
|
extern "C" {
|
#endif
|
#endif
|
|
|
#include "ansidecl.h"
|
#include "ansidecl.h"
|
#include "symcat.h"
|
#include "symcat.h"
|
|
#include <sys/stat.h>
|
|
|
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
|
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
|
#ifndef SABER
|
#ifndef SABER
|
/* This hack is to avoid a problem with some strict ANSI C preprocessors.
|
/* This hack is to avoid a problem with some strict ANSI C preprocessors.
|
The problem is, "32_" is not a valid preprocessing token, and we don't
|
The problem is, "32_" is not a valid preprocessing token, and we don't
|
want extra underscores (e.g., "nlm_32_"). The XCONCAT2 macro will
|
want extra underscores (e.g., "nlm_32_"). The XCONCAT2 macro will
|
Line 305... |
Line 307... |
#define elf_discarded_section(sec) \
|
#define elf_discarded_section(sec) \
|
(!bfd_is_abs_section (sec) \
|
(!bfd_is_abs_section (sec) \
|
&& bfd_is_abs_section ((sec)->output_section) \
|
&& bfd_is_abs_section ((sec)->output_section) \
|
&& (sec)->sec_info_type != ELF_INFO_TYPE_MERGE \
|
&& (sec)->sec_info_type != ELF_INFO_TYPE_MERGE \
|
&& (sec)->sec_info_type != ELF_INFO_TYPE_JUST_SYMS)
|
&& (sec)->sec_info_type != ELF_INFO_TYPE_JUST_SYMS)
|
|
|
/* Forward define. */
|
|
struct stat;
|
|
|
|
typedef enum bfd_print_symbol
|
typedef enum bfd_print_symbol
|
{
|
{
|
bfd_print_symbol_name,
|
bfd_print_symbol_name,
|
bfd_print_symbol_more,
|
bfd_print_symbol_more,
|
Line 650... |
Line 649... |
(bfd *, struct bfd_link_info *);
|
(bfd *, struct bfd_link_info *);
|
extern bfd_boolean bfd_elf_get_bfd_needed_list
|
extern bfd_boolean bfd_elf_get_bfd_needed_list
|
(bfd *, struct bfd_link_needed_list **);
|
(bfd *, struct bfd_link_needed_list **);
|
extern bfd_boolean bfd_elf_size_dynamic_sections
|
extern bfd_boolean bfd_elf_size_dynamic_sections
|
(bfd *, const char *, const char *, const char *, const char *, const char *,
|
(bfd *, const char *, const char *, const char *, const char *, const char *,
|
const char * const *, struct bfd_link_info *, struct bfd_section **,
|
const char * const *, struct bfd_link_info *, struct bfd_section **);
|
struct bfd_elf_version_tree *);
|
|
extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
|
extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
|
(bfd *, struct bfd_link_info *);
|
(bfd *, struct bfd_link_info *);
|
extern void bfd_elf_set_dt_needed_name
|
extern void bfd_elf_set_dt_needed_name
|
(bfd *, const char *);
|
(bfd *, const char *);
|
extern const char *bfd_elf_get_dt_soname
|
extern const char *bfd_elf_get_dt_soname
|
Line 2071... |
Line 2069... |
#define bfd_mach_ip2022 1
|
#define bfd_mach_ip2022 1
|
#define bfd_mach_ip2022ext 2
|
#define bfd_mach_ip2022ext 2
|
bfd_arch_iq2000, /* Vitesse IQ2000. */
|
bfd_arch_iq2000, /* Vitesse IQ2000. */
|
#define bfd_mach_iq2000 1
|
#define bfd_mach_iq2000 1
|
#define bfd_mach_iq10 2
|
#define bfd_mach_iq10 2
|
|
bfd_arch_epiphany, /* Adapteva EPIPHANY */
|
|
#define bfd_mach_epiphany16 1
|
|
#define bfd_mach_epiphany32 2
|
bfd_arch_mt,
|
bfd_arch_mt,
|
#define bfd_mach_ms1 1
|
#define bfd_mach_ms1 1
|
#define bfd_mach_mrisc2 2
|
#define bfd_mach_mrisc2 2
|
#define bfd_mach_ms2 3
|
#define bfd_mach_ms2 3
|
bfd_arch_pj,
|
bfd_arch_pj,
|
Line 2106... |
Line 2107... |
#define bfd_mach_crx 1
|
#define bfd_mach_crx 1
|
bfd_arch_cris, /* Axis CRIS */
|
bfd_arch_cris, /* Axis CRIS */
|
#define bfd_mach_cris_v0_v10 255
|
#define bfd_mach_cris_v0_v10 255
|
#define bfd_mach_cris_v32 32
|
#define bfd_mach_cris_v32 32
|
#define bfd_mach_cris_v10_v32 1032
|
#define bfd_mach_cris_v10_v32 1032
|
|
bfd_arch_rl78,
|
|
#define bfd_mach_rl78 0x75
|
bfd_arch_rx, /* Renesas RX. */
|
bfd_arch_rx, /* Renesas RX. */
|
#define bfd_mach_rx 0x75
|
#define bfd_mach_rx 0x75
|
bfd_arch_s390, /* IBM s390 */
|
bfd_arch_s390, /* IBM s390 */
|
#define bfd_mach_s390_31 31
|
#define bfd_mach_s390_31 31
|
#define bfd_mach_s390_64 64
|
#define bfd_mach_s390_64 64
|
Line 4056... |
Line 4059... |
|
|
/* This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
|
/* This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
|
instructions */
|
instructions */
|
BFD_RELOC_AVR_6_ADIW,
|
BFD_RELOC_AVR_6_ADIW,
|
|
|
|
/* Renesas RL78 Relocations. */
|
|
BFD_RELOC_RL78_NEG8,
|
|
BFD_RELOC_RL78_NEG16,
|
|
BFD_RELOC_RL78_NEG24,
|
|
BFD_RELOC_RL78_NEG32,
|
|
BFD_RELOC_RL78_16_OP,
|
|
BFD_RELOC_RL78_24_OP,
|
|
BFD_RELOC_RL78_32_OP,
|
|
BFD_RELOC_RL78_8U,
|
|
BFD_RELOC_RL78_16U,
|
|
BFD_RELOC_RL78_24U,
|
|
BFD_RELOC_RL78_DIR3U_PCREL,
|
|
BFD_RELOC_RL78_DIFF,
|
|
BFD_RELOC_RL78_GPRELB,
|
|
BFD_RELOC_RL78_GPRELW,
|
|
BFD_RELOC_RL78_GPRELL,
|
|
BFD_RELOC_RL78_SYM,
|
|
BFD_RELOC_RL78_OP_SUBTRACT,
|
|
BFD_RELOC_RL78_OP_NEG,
|
|
BFD_RELOC_RL78_OP_AND,
|
|
BFD_RELOC_RL78_OP_SHRA,
|
|
BFD_RELOC_RL78_ABS8,
|
|
BFD_RELOC_RL78_ABS16,
|
|
BFD_RELOC_RL78_ABS16_REV,
|
|
BFD_RELOC_RL78_ABS32,
|
|
BFD_RELOC_RL78_ABS32_REV,
|
|
BFD_RELOC_RL78_ABS16U,
|
|
BFD_RELOC_RL78_ABS16UW,
|
|
BFD_RELOC_RL78_ABS16UL,
|
|
BFD_RELOC_RL78_RELAX,
|
|
BFD_RELOC_RL78_HI16,
|
|
BFD_RELOC_RL78_HI8,
|
|
BFD_RELOC_RL78_LO16,
|
|
|
/* Renesas RX Relocations. */
|
/* Renesas RX Relocations. */
|
BFD_RELOC_RX_NEG8,
|
BFD_RELOC_RX_NEG8,
|
BFD_RELOC_RX_NEG16,
|
BFD_RELOC_RX_NEG16,
|
BFD_RELOC_RX_NEG24,
|
BFD_RELOC_RX_NEG24,
|
BFD_RELOC_RX_NEG32,
|
BFD_RELOC_RX_NEG32,
|
Line 5051... |
Line 5088... |
BFD_RELOC_TILEGX_TLS_DTPOFF64,
|
BFD_RELOC_TILEGX_TLS_DTPOFF64,
|
BFD_RELOC_TILEGX_TLS_TPOFF64,
|
BFD_RELOC_TILEGX_TLS_TPOFF64,
|
BFD_RELOC_TILEGX_TLS_DTPMOD32,
|
BFD_RELOC_TILEGX_TLS_DTPMOD32,
|
BFD_RELOC_TILEGX_TLS_DTPOFF32,
|
BFD_RELOC_TILEGX_TLS_DTPOFF32,
|
BFD_RELOC_TILEGX_TLS_TPOFF32,
|
BFD_RELOC_TILEGX_TLS_TPOFF32,
|
|
|
|
/* Adapteva EPIPHANY - 8 bit signed pc-relative displacement */
|
|
BFD_RELOC_EPIPHANY_SIMM8,
|
|
|
|
/* Adapteva EPIPHANY - 24 bit signed pc-relative displacement */
|
|
BFD_RELOC_EPIPHANY_SIMM24,
|
|
|
|
/* Adapteva EPIPHANY - 16 most-significant bits of absolute address */
|
|
BFD_RELOC_EPIPHANY_HIGH,
|
|
|
|
/* Adapteva EPIPHANY - 16 least-significant bits of absolute address */
|
|
BFD_RELOC_EPIPHANY_LOW,
|
|
|
|
/* Adapteva EPIPHANY - 11 bit signed number - add/sub immediate */
|
|
BFD_RELOC_EPIPHANY_SIMM11,
|
|
|
|
/* Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st displacement) */
|
|
BFD_RELOC_EPIPHANY_IMM11,
|
|
|
|
/* Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction. */
|
|
BFD_RELOC_EPIPHANY_IMM8,
|
BFD_RELOC_UNUSED };
|
BFD_RELOC_UNUSED };
|
typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
|
typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
|
reloc_howto_type *bfd_reloc_type_lookup
|
reloc_howto_type *bfd_reloc_type_lookup
|
(bfd *abfd, bfd_reloc_code_real_type code);
|
(bfd *abfd, bfd_reloc_code_real_type code);
|
reloc_howto_type *bfd_reloc_name_lookup
|
reloc_howto_type *bfd_reloc_name_lookup
|
Line 6225... |
Line 6283... |
|
|
struct bfd_elf_version_tree * bfd_find_version_for_sym
|
struct bfd_elf_version_tree * bfd_find_version_for_sym
|
(struct bfd_elf_version_tree *verdefs,
|
(struct bfd_elf_version_tree *verdefs,
|
const char *sym_name, bfd_boolean *hide);
|
const char *sym_name, bfd_boolean *hide);
|
|
|
|
bfd_boolean bfd_hide_sym_by_version
|
|
(struct bfd_elf_version_tree *verdefs, const char *sym_name);
|
|
|
/* Extracted from simple.c. */
|
/* Extracted from simple.c. */
|
bfd_byte *bfd_simple_get_relocated_section_contents
|
bfd_byte *bfd_simple_get_relocated_section_contents
|
(bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
|
(bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
|
|
|
/* Extracted from compress.c. */
|
/* Extracted from compress.c. */
|