/* libbfd.h -- Declarations used by bfd library *implementation*.
(This include file is not for users of the library.)
- Copyright 1990, 91, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
+ Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ 2000, 2001
+ Free Software Foundation, Inc.
Written by Cygnus Support.
** NOTE: libbfd.h is a GENERATED file. Don't change it; instead,
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Align an address upward to a boundary, expressed as a number of bytes.
- E.g. align to an 8-byte boundary with argument of 8. */
-#define BFD_ALIGN(this, boundary) \
- ((( (this) + ((boundary) -1)) & (~((boundary)-1))))
+ E.g. align to an 8-byte boundary with argument of 8. Take care never
+ to wrap around if the address is within boundary-1 of the end of the
+ address space. */
+#define BFD_ALIGN(this, boundary) \
+ ((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this)) \
+ ? (((bfd_vma) (this) + ((boundary) - 1)) & (~((boundary)-1))) \
+ : ~ (bfd_vma) 0)
/* If you want to read and write large blocks, you might want to do it
in quanta of this amount */
file_ptr first_file_filepos;
/* Speed up searching the armap */
struct ar_cache *cache;
- bfd *archive_head; /* Only interesting in output routines */
+ bfd *archive_head; /* Only interesting in output routines */
carsym *symdefs; /* the symdef entries */
- symindex symdef_count; /* how many there are */
+ symindex symdef_count; /* how many there are */
char *extended_names; /* clever intel extension */
/* when more compilers are standard C, this can be a time_t */
long armap_timestamp; /* Timestamp value written into armap.
/* Goes in bfd's arelt_data slot */
struct areltdata {
- char * arch_header; /* it's actually a string */
- unsigned int parsed_size; /* octets of filesize not including ar_hdr */
- char *filename; /* null-terminated */
+ char * arch_header; /* it's actually a string */
+ unsigned int parsed_size; /* octets of filesize not including ar_hdr */
+ char *filename; /* null-terminated */
};
#define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size)
extern bfd_error_handler_type _bfd_error_handler;
-/* These routines allocate and free things on the BFD's obstack. */
+/* These routines allocate and free things on the BFD's objalloc. */
-PTR bfd_alloc PARAMS ((bfd *abfd, size_t size));
-PTR bfd_zalloc PARAMS ((bfd *abfd, size_t size));
-void bfd_alloc_grow PARAMS ((bfd *abfd, PTR thing, size_t size));
-PTR bfd_alloc_finish PARAMS ((bfd *abfd));
-PTR bfd_alloc_by_size_t PARAMS ((bfd *abfd, size_t wanted));
-
-#define bfd_release(x,y) (void) obstack_free(&(x->memory),y)
+extern PTR bfd_alloc PARAMS ((bfd *, size_t));
+extern PTR bfd_zalloc PARAMS ((bfd *, size_t));
+extern void bfd_release PARAMS ((bfd *, PTR));
bfd * _bfd_create_empty_archive_element_shell PARAMS ((bfd *obfd));
bfd * _bfd_look_for_bfd_in_cache PARAMS ((bfd *arch_bfd, file_ptr index));
bfd *_bfd_new_bfd_contained_in PARAMS ((bfd *));
const bfd_target *_bfd_dummy_target PARAMS ((bfd *abfd));
-void bfd_dont_truncate_arname PARAMS ((bfd *abfd, CONST char *filename,
+void bfd_dont_truncate_arname PARAMS ((bfd *abfd, const char *filename,
char *hdr));
-void bfd_bsd_truncate_arname PARAMS ((bfd *abfd, CONST char *filename,
+void bfd_bsd_truncate_arname PARAMS ((bfd *abfd, const char *filename,
char *hdr));
-void bfd_gnu_truncate_arname PARAMS ((bfd *abfd, CONST char *filename,
+void bfd_gnu_truncate_arname PARAMS ((bfd *abfd, const char *filename,
char *hdr));
boolean bsd_write_armap PARAMS ((bfd *arch, unsigned int elength,
((void (*) PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type))) bfd_void)
#define _bfd_nosymbols_get_symbol_info \
((void (*) PARAMS ((bfd *, asymbol *, symbol_info *))) bfd_void)
-#define _bfd_nosymbols_bfd_is_local_label \
- ((boolean (*) PARAMS ((bfd *, asymbol *))) bfd_false)
+#define _bfd_nosymbols_bfd_is_local_label_name \
+ ((boolean (*) PARAMS ((bfd *, const char *))) bfd_false)
#define _bfd_nosymbols_get_lineno \
((alent *(*) PARAMS ((bfd *, asymbol *))) bfd_nullvoidptr)
#define _bfd_nosymbols_find_nearest_line \
((boolean (*) \
PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *))) \
bfd_false)
+#define _bfd_nolink_bfd_gc_sections \
+ ((boolean (*) \
+ PARAMS ((bfd *, struct bfd_link_info *))) \
+ bfd_false)
+#define _bfd_nolink_bfd_merge_sections \
+ ((boolean (*) \
+ PARAMS ((bfd *, struct bfd_link_info *))) \
+ bfd_false)
#define _bfd_nolink_bfd_link_hash_table_create \
((struct bfd_link_hash_table *(*) PARAMS ((bfd *))) bfd_nullvoidptr)
#define _bfd_nolink_bfd_link_add_symbols \
\f
/* Generic routine to determine of the given symbol is a local
label. */
-extern boolean bfd_generic_is_local_label PARAMS ((bfd *, asymbol *));
+extern boolean bfd_generic_is_local_label_name PARAMS ((bfd *, const char *));
/* Generic minisymbol routines. */
extern long _bfd_generic_read_minisymbols
extern asymbol *_bfd_generic_minisymbol_to_symbol
PARAMS ((bfd *, boolean, const PTR, asymbol *));
+/* Find the nearest line using .stab/.stabstr sections. */
+extern boolean _bfd_stab_section_find_nearest_line
+ PARAMS ((bfd *, asymbol **, asection *, bfd_vma, boolean *, const char **,
+ const char **, unsigned int *, PTR *));
+
+/* Find the neaderst line using DWARF 1 debugging information. */
+extern boolean _bfd_dwarf1_find_nearest_line
+ PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
+ const char **, unsigned int *));
+
+/* Find the nearest line using DWARF 2 debugging information. */
+extern boolean _bfd_dwarf2_find_nearest_line
+ PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **,
+ const char **, unsigned int *, unsigned int,
+ PTR *));
+
/* A routine to create entries for a bfd_link_hash_table. */
extern struct bfd_hash_entry *_bfd_link_hash_newfunc
PARAMS ((struct bfd_hash_entry *entry,
PARAMS ((bfd *, struct bfd_link_info *,
boolean (*checkfn) (bfd *, struct bfd_link_info *, boolean *)));
+
+
/* Forward declaration to avoid prototype errors. */
typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
extern bfd_reloc_status_type _bfd_relocate_contents
PARAMS ((reloc_howto_type *, bfd *, bfd_vma, bfd_byte *));
+/* Link stabs in sections in the first pass. */
+
+extern boolean _bfd_link_section_stabs
+ PARAMS ((bfd *, PTR *, asection *, asection *, PTR *));
+
+/* Write out the .stab section when linking stabs in sections. */
+
+extern boolean _bfd_write_section_stabs
+ PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_byte *));
+
+/* Write out the .stabstr string table when linking stabs in sections. */
+
+extern boolean _bfd_write_stab_strings PARAMS ((bfd *, PTR *));
+
+/* Find an offset within a .stab section when linking stabs in
+ sections. */
+
+extern bfd_vma _bfd_stab_section_offset
+ PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_vma));
+
+/* Attempt to merge a SEC_MERGE section. */
+
+extern boolean _bfd_merge_section
+ PARAMS ((bfd *, PTR *, asection *, PTR *));
+
+/* Attempt to merge SEC_MERGE sections. */
+
+extern boolean _bfd_merge_sections
+ PARAMS ((bfd *, PTR));
+
+/* Write out a merged section. */
+
+extern boolean _bfd_write_merged_section
+ PARAMS ((bfd *, asection *, PTR));
+
+/* Find an offset within a modified SEC_MERGE section. */
+
+extern bfd_vma _bfd_merged_section_offset
+ PARAMS ((bfd *, asection **, PTR, bfd_vma, bfd_vma));
+
/* Create a string table. */
extern struct bfd_strtab_hash *_bfd_stringtab_init PARAMS ((void));
/* Write out a string table. */
extern boolean _bfd_stringtab_emit PARAMS ((bfd *, struct bfd_strtab_hash *));
+
+/* Check that endianness of input and output file match. */
+extern boolean _bfd_generic_verify_endian_match PARAMS ((bfd *, bfd *));
\f
/* Macros to tell if bfds are read or write enabled.
#define BFD_FAIL() \
{ bfd_assert(__FILE__,__LINE__); }
+extern void _bfd_abort PARAMS ((const char *, int, const char *))
+ ATTRIBUTE_NORETURN;
+
+/* if gcc >= 2.6, we can give a function name, too */
+#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)
+#define __PRETTY_FUNCTION__ ((char *) NULL)
+#endif
+
+#undef abort
+#define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
+
FILE * bfd_cache_lookup_worker PARAMS ((bfd *));
extern bfd *bfd_last_cache;
-
-/* Now Steve, what's the story here? */
-#ifdef lint
-#define itos(x) "l"
-#define stoi(x) 1
-#else
-#define itos(x) ((char*)(x))
-#define stoi(x) ((int)(x))
-#endif
/* List of supported target vectors, and the default vector (if
bfd_default_vector[0] is NULL, there is no default). */
-extern const bfd_target * const bfd_target_vector[];
-extern const bfd_target * const bfd_default_vector[];
+extern const bfd_target * const *bfd_target_vector;
+extern const bfd_target *bfd_default_vector[];
/* Functions shared by the ECOFF and MIPS ELF backends, which have no
other common header files. */
extern boolean _bfd_ecoff_get_accumulated_sym PARAMS ((PTR, bfd_byte *));
extern boolean _bfd_ecoff_get_accumulated_ss PARAMS ((PTR, bfd_byte *));
+extern bfd_vma _bfd_get_gp_value PARAMS ((bfd *));
+extern void _bfd_set_gp_value PARAMS ((bfd *, bfd_vma));
+
+/* Function shared by the COFF and ELF SH backends, which have no
+ other common header files. */
+
+extern boolean _bfd_sh_align_load_span
+ PARAMS ((bfd *, asection *, bfd_byte *,
+ boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma),
+ PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, boolean *));
+
/* And more follows */
-void
+void
bfd_write_bigendian_4byte_int PARAMS ((bfd *abfd, int i));
-unsigned int
+unsigned int
bfd_log2 PARAMS ((bfd_vma x));
#define BFD_CACHE_MAX_OPEN 10
#define bfd_cache_lookup(x) \
((x)==bfd_last_cache? \
- (FILE*)(bfd_last_cache->iostream): \
+ (FILE*) (bfd_last_cache->iostream): \
bfd_cache_lookup_worker(x))
-boolean
-bfd_cache_init PARAMS ((bfd *abfd));
+boolean
+bfd_cache_init PARAMS ((bfd *abfd));
-boolean
-bfd_cache_close PARAMS ((bfd *abfd));
+boolean
+bfd_cache_close PARAMS ((bfd *abfd));
-FILE*
+FILE*
bfd_open_file PARAMS ((bfd *abfd));
FILE *
"BFD_RELOC_64",
"BFD_RELOC_32",
"BFD_RELOC_26",
+ "BFD_RELOC_24",
"BFD_RELOC_16",
"BFD_RELOC_14",
"BFD_RELOC_8",
"BFD_RELOC_SPARC_GLOB_DAT",
"BFD_RELOC_SPARC_JMP_SLOT",
"BFD_RELOC_SPARC_RELATIVE",
+ "BFD_RELOC_SPARC_UA16",
"BFD_RELOC_SPARC_UA32",
+ "BFD_RELOC_SPARC_UA64",
"BFD_RELOC_SPARC_BASE13",
"BFD_RELOC_SPARC_BASE22",
"BFD_RELOC_SPARC_10",
"BFD_RELOC_SPARC_PC_LM22",
"BFD_RELOC_SPARC_WDISP16",
"BFD_RELOC_SPARC_WDISP19",
- "BFD_RELOC_SPARC_GLOB_JMP",
- "BFD_RELOC_SPARC_LO7",
+ "BFD_RELOC_SPARC_7",
+ "BFD_RELOC_SPARC_6",
+ "BFD_RELOC_SPARC_5",
+ "BFD_RELOC_SPARC_PLT64",
+ "BFD_RELOC_SPARC_HIX22",
+ "BFD_RELOC_SPARC_LOX10",
+ "BFD_RELOC_SPARC_H44",
+ "BFD_RELOC_SPARC_M44",
+ "BFD_RELOC_SPARC_L44",
+ "BFD_RELOC_SPARC_REGISTER",
+ "BFD_RELOC_SPARC_REV32",
"BFD_RELOC_ALPHA_GPDISP_HI16",
"BFD_RELOC_ALPHA_GPDISP_LO16",
+ "BFD_RELOC_ALPHA_GPDISP",
"BFD_RELOC_ALPHA_LITERAL",
+ "BFD_RELOC_ALPHA_ELF_LITERAL",
"BFD_RELOC_ALPHA_LITUSE",
+ "BFD_RELOC_ALPHA_USER_LITERAL",
+ "BFD_RELOC_ALPHA_USER_LITUSE_BASE",
+ "BFD_RELOC_ALPHA_USER_LITUSE_BYTOFF",
+ "BFD_RELOC_ALPHA_USER_LITUSE_JSR",
+ "BFD_RELOC_ALPHA_USER_GPDISP",
+ "BFD_RELOC_ALPHA_USER_GPRELHIGH",
+ "BFD_RELOC_ALPHA_USER_GPRELLOW",
"BFD_RELOC_ALPHA_HINT",
+ "BFD_RELOC_ALPHA_LINKAGE",
+ "BFD_RELOC_ALPHA_CODEADDR",
"BFD_RELOC_MIPS_JMP",
+ "BFD_RELOC_MIPS16_JMP",
+ "BFD_RELOC_MIPS16_GPREL",
"BFD_RELOC_HI16",
"BFD_RELOC_HI16_S",
"BFD_RELOC_LO16",
"BFD_RELOC_MIPS_LITERAL",
"BFD_RELOC_MIPS_GOT16",
"BFD_RELOC_MIPS_CALL16",
+ "BFD_RELOC_MIPS_GOT_HI16",
+ "BFD_RELOC_MIPS_GOT_LO16",
+ "BFD_RELOC_MIPS_CALL_HI16",
+ "BFD_RELOC_MIPS_CALL_LO16",
+ "BFD_RELOC_MIPS_SUB",
+ "BFD_RELOC_MIPS_GOT_PAGE",
+ "BFD_RELOC_MIPS_GOT_OFST",
+ "BFD_RELOC_MIPS_GOT_DISP",
+ "BFD_RELOC_MIPS_SHIFT5",
+ "BFD_RELOC_MIPS_SHIFT6",
+ "BFD_RELOC_MIPS_INSERT_A",
+ "BFD_RELOC_MIPS_INSERT_B",
+ "BFD_RELOC_MIPS_DELETE",
+ "BFD_RELOC_MIPS_HIGHEST",
+ "BFD_RELOC_MIPS_HIGHER",
+ "BFD_RELOC_MIPS_SCN_DISP",
+ "BFD_RELOC_MIPS_REL16",
+ "BFD_RELOC_MIPS_RELGOT",
+ "BFD_RELOC_MIPS_JALR",
+
"BFD_RELOC_386_GOT32",
"BFD_RELOC_386_PLT32",
"BFD_RELOC_386_COPY",
"BFD_RELOC_386_RELATIVE",
"BFD_RELOC_386_GOTOFF",
"BFD_RELOC_386_GOTPC",
+ "BFD_RELOC_X86_64_GOT32",
+ "BFD_RELOC_X86_64_PLT32",
+ "BFD_RELOC_X86_64_COPY",
+ "BFD_RELOC_X86_64_GLOB_DAT",
+ "BFD_RELOC_X86_64_JUMP_SLOT",
+ "BFD_RELOC_X86_64_RELATIVE",
+ "BFD_RELOC_X86_64_GOTPCREL",
+ "BFD_RELOC_X86_64_32S",
"BFD_RELOC_NS32K_IMM_8",
"BFD_RELOC_NS32K_IMM_16",
"BFD_RELOC_NS32K_IMM_32",
"BFD_RELOC_NS32K_DISP_8_PCREL",
"BFD_RELOC_NS32K_DISP_16_PCREL",
"BFD_RELOC_NS32K_DISP_32_PCREL",
+ "BFD_RELOC_PDP11_DISP_8_PCREL",
+ "BFD_RELOC_PDP11_DISP_6_PCREL",
+ "BFD_RELOC_PJ_CODE_HI16",
+ "BFD_RELOC_PJ_CODE_LO16",
+ "BFD_RELOC_PJ_CODE_DIR16",
+ "BFD_RELOC_PJ_CODE_DIR32",
+ "BFD_RELOC_PJ_CODE_REL16",
+ "BFD_RELOC_PJ_CODE_REL32",
"BFD_RELOC_PPC_B26",
"BFD_RELOC_PPC_BA26",
"BFD_RELOC_PPC_TOC16",
"BFD_RELOC_PPC_JMP_SLOT",
"BFD_RELOC_PPC_RELATIVE",
"BFD_RELOC_PPC_LOCAL24PC",
+ "BFD_RELOC_PPC_EMB_NADDR32",
+ "BFD_RELOC_PPC_EMB_NADDR16",
+ "BFD_RELOC_PPC_EMB_NADDR16_LO",
+ "BFD_RELOC_PPC_EMB_NADDR16_HI",
+ "BFD_RELOC_PPC_EMB_NADDR16_HA",
+ "BFD_RELOC_PPC_EMB_SDAI16",
+ "BFD_RELOC_PPC_EMB_SDA2I16",
+ "BFD_RELOC_PPC_EMB_SDA2REL",
+ "BFD_RELOC_PPC_EMB_SDA21",
+ "BFD_RELOC_PPC_EMB_MRKREF",
+ "BFD_RELOC_PPC_EMB_RELSEC16",
+ "BFD_RELOC_PPC_EMB_RELST_LO",
+ "BFD_RELOC_PPC_EMB_RELST_HI",
+ "BFD_RELOC_PPC_EMB_RELST_HA",
+ "BFD_RELOC_PPC_EMB_BIT_FLD",
+ "BFD_RELOC_PPC_EMB_RELSDA",
+ "BFD_RELOC_I370_D12",
"BFD_RELOC_CTOR",
"BFD_RELOC_ARM_PCREL_BRANCH",
+ "BFD_RELOC_ARM_PCREL_BLX",
+ "BFD_RELOC_THUMB_PCREL_BLX",
"BFD_RELOC_ARM_IMMEDIATE",
+ "BFD_RELOC_ARM_ADRL_IMMEDIATE",
"BFD_RELOC_ARM_OFFSET_IMM",
"BFD_RELOC_ARM_SHIFT_IMM",
"BFD_RELOC_ARM_SWI",
"BFD_RELOC_ARM_LDR_IMM",
"BFD_RELOC_ARM_LITERAL",
"BFD_RELOC_ARM_IN_POOL",
-/* start-sanitize-arc */
+ "BFD_RELOC_ARM_OFFSET_IMM8",
+ "BFD_RELOC_ARM_HWLITERAL",
+ "BFD_RELOC_ARM_THUMB_ADD",
+ "BFD_RELOC_ARM_THUMB_IMM",
+ "BFD_RELOC_ARM_THUMB_SHIFT",
+ "BFD_RELOC_ARM_THUMB_OFFSET",
+ "BFD_RELOC_ARM_GOT12",
+ "BFD_RELOC_ARM_GOT32",
+ "BFD_RELOC_ARM_JUMP_SLOT",
+ "BFD_RELOC_ARM_COPY",
+ "BFD_RELOC_ARM_GLOB_DAT",
+ "BFD_RELOC_ARM_PLT32",
+ "BFD_RELOC_ARM_RELATIVE",
+ "BFD_RELOC_ARM_GOTOFF",
+ "BFD_RELOC_ARM_GOTPC",
+ "BFD_RELOC_SH_PCDISP8BY2",
+ "BFD_RELOC_SH_PCDISP12BY2",
+ "BFD_RELOC_SH_IMM4",
+ "BFD_RELOC_SH_IMM4BY2",
+ "BFD_RELOC_SH_IMM4BY4",
+ "BFD_RELOC_SH_IMM8",
+ "BFD_RELOC_SH_IMM8BY2",
+ "BFD_RELOC_SH_IMM8BY4",
+ "BFD_RELOC_SH_PCRELIMM8BY2",
+ "BFD_RELOC_SH_PCRELIMM8BY4",
+ "BFD_RELOC_SH_SWITCH16",
+ "BFD_RELOC_SH_SWITCH32",
+ "BFD_RELOC_SH_USES",
+ "BFD_RELOC_SH_COUNT",
+ "BFD_RELOC_SH_ALIGN",
+ "BFD_RELOC_SH_CODE",
+ "BFD_RELOC_SH_DATA",
+ "BFD_RELOC_SH_LABEL",
+ "BFD_RELOC_SH_LOOP_START",
+ "BFD_RELOC_SH_LOOP_END",
+ "BFD_RELOC_SH_COPY",
+ "BFD_RELOC_SH_GLOB_DAT",
+ "BFD_RELOC_SH_JMP_SLOT",
+ "BFD_RELOC_SH_RELATIVE",
+ "BFD_RELOC_SH_GOTPC",
+ "BFD_RELOC_THUMB_PCREL_BRANCH9",
+ "BFD_RELOC_THUMB_PCREL_BRANCH12",
+ "BFD_RELOC_THUMB_PCREL_BRANCH23",
"BFD_RELOC_ARC_B22_PCREL",
"BFD_RELOC_ARC_B26",
-/* end-sanitize-arc */
+ "BFD_RELOC_D10V_10_PCREL_R",
+ "BFD_RELOC_D10V_10_PCREL_L",
+ "BFD_RELOC_D10V_18",
+ "BFD_RELOC_D10V_18_PCREL",
+ "BFD_RELOC_D30V_6",
+ "BFD_RELOC_D30V_9_PCREL",
+ "BFD_RELOC_D30V_9_PCREL_R",
+ "BFD_RELOC_D30V_15",
+ "BFD_RELOC_D30V_15_PCREL",
+ "BFD_RELOC_D30V_15_PCREL_R",
+ "BFD_RELOC_D30V_21",
+ "BFD_RELOC_D30V_21_PCREL",
+ "BFD_RELOC_D30V_21_PCREL_R",
+ "BFD_RELOC_D30V_32",
+ "BFD_RELOC_D30V_32_PCREL",
+ "BFD_RELOC_M32R_24",
+ "BFD_RELOC_M32R_10_PCREL",
+ "BFD_RELOC_M32R_18_PCREL",
+ "BFD_RELOC_M32R_26_PCREL",
+ "BFD_RELOC_M32R_HI16_ULO",
+ "BFD_RELOC_M32R_HI16_SLO",
+ "BFD_RELOC_M32R_LO16",
+ "BFD_RELOC_M32R_SDA16",
+ "BFD_RELOC_V850_9_PCREL",
+ "BFD_RELOC_V850_22_PCREL",
+ "BFD_RELOC_V850_SDA_16_16_OFFSET",
+ "BFD_RELOC_V850_SDA_15_16_OFFSET",
+ "BFD_RELOC_V850_ZDA_16_16_OFFSET",
+ "BFD_RELOC_V850_ZDA_15_16_OFFSET",
+ "BFD_RELOC_V850_TDA_6_8_OFFSET",
+ "BFD_RELOC_V850_TDA_7_8_OFFSET",
+ "BFD_RELOC_V850_TDA_7_7_OFFSET",
+ "BFD_RELOC_V850_TDA_16_16_OFFSET",
+ "BFD_RELOC_V850_TDA_4_5_OFFSET",
+ "BFD_RELOC_V850_TDA_4_4_OFFSET",
+ "BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET",
+ "BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET",
+ "BFD_RELOC_V850_CALLT_6_7_OFFSET",
+ "BFD_RELOC_V850_CALLT_16_16_OFFSET",
+
+ "BFD_RELOC_MN10300_32_PCREL",
+ "BFD_RELOC_MN10300_16_PCREL",
+ "BFD_RELOC_TIC30_LDP",
+ "BFD_RELOC_TIC54X_PARTLS7",
+ "BFD_RELOC_TIC54X_PARTMS9",
+ "BFD_RELOC_TIC54X_23",
+ "BFD_RELOC_TIC54X_16_OF_23",
+ "BFD_RELOC_TIC54X_MS7_OF_23",
+ "BFD_RELOC_FR30_48",
+ "BFD_RELOC_FR30_20",
+ "BFD_RELOC_FR30_6_IN_4",
+ "BFD_RELOC_FR30_8_IN_8",
+ "BFD_RELOC_FR30_9_IN_8",
+ "BFD_RELOC_FR30_10_IN_8",
+ "BFD_RELOC_FR30_9_PCREL",
+ "BFD_RELOC_FR30_12_PCREL",
+ "BFD_RELOC_MCORE_PCREL_IMM8BY4",
+ "BFD_RELOC_MCORE_PCREL_IMM11BY2",
+ "BFD_RELOC_MCORE_PCREL_IMM4BY2",
+ "BFD_RELOC_MCORE_PCREL_32",
+ "BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2",
+ "BFD_RELOC_MCORE_RVA",
+ "BFD_RELOC_AVR_7_PCREL",
+ "BFD_RELOC_AVR_13_PCREL",
+ "BFD_RELOC_AVR_16_PM",
+ "BFD_RELOC_AVR_LO8_LDI",
+ "BFD_RELOC_AVR_HI8_LDI",
+ "BFD_RELOC_AVR_HH8_LDI",
+ "BFD_RELOC_AVR_LO8_LDI_NEG",
+ "BFD_RELOC_AVR_HI8_LDI_NEG",
+ "BFD_RELOC_AVR_HH8_LDI_NEG",
+ "BFD_RELOC_AVR_LO8_LDI_PM",
+ "BFD_RELOC_AVR_HI8_LDI_PM",
+ "BFD_RELOC_AVR_HH8_LDI_PM",
+ "BFD_RELOC_AVR_LO8_LDI_PM_NEG",
+ "BFD_RELOC_AVR_HI8_LDI_PM_NEG",
+ "BFD_RELOC_AVR_HH8_LDI_PM_NEG",
+ "BFD_RELOC_AVR_CALL",
+ "BFD_RELOC_390_12",
+ "BFD_RELOC_390_GOT12",
+ "BFD_RELOC_390_PLT32",
+ "BFD_RELOC_390_COPY",
+ "BFD_RELOC_390_GLOB_DAT",
+ "BFD_RELOC_390_JMP_SLOT",
+ "BFD_RELOC_390_RELATIVE",
+ "BFD_RELOC_390_GOTPC",
+ "BFD_RELOC_390_GOT16",
+ "BFD_RELOC_390_PC16DBL",
+ "BFD_RELOC_390_PLT16DBL",
+ "BFD_RELOC_390_PC32DBL",
+ "BFD_RELOC_390_PLT32DBL",
+ "BFD_RELOC_390_GOTPCDBL",
+ "BFD_RELOC_390_GOT64",
+ "BFD_RELOC_390_PLT64",
+ "BFD_RELOC_390_GOTENT",
+ "BFD_RELOC_VTABLE_INHERIT",
+ "BFD_RELOC_VTABLE_ENTRY",
+ "BFD_RELOC_IA64_IMM14",
+ "BFD_RELOC_IA64_IMM22",
+ "BFD_RELOC_IA64_IMM64",
+ "BFD_RELOC_IA64_DIR32MSB",
+ "BFD_RELOC_IA64_DIR32LSB",
+ "BFD_RELOC_IA64_DIR64MSB",
+ "BFD_RELOC_IA64_DIR64LSB",
+ "BFD_RELOC_IA64_GPREL22",
+ "BFD_RELOC_IA64_GPREL64I",
+ "BFD_RELOC_IA64_GPREL32MSB",
+ "BFD_RELOC_IA64_GPREL32LSB",
+ "BFD_RELOC_IA64_GPREL64MSB",
+ "BFD_RELOC_IA64_GPREL64LSB",
+ "BFD_RELOC_IA64_LTOFF22",
+ "BFD_RELOC_IA64_LTOFF64I",
+ "BFD_RELOC_IA64_PLTOFF22",
+ "BFD_RELOC_IA64_PLTOFF64I",
+ "BFD_RELOC_IA64_PLTOFF64MSB",
+ "BFD_RELOC_IA64_PLTOFF64LSB",
+ "BFD_RELOC_IA64_FPTR64I",
+ "BFD_RELOC_IA64_FPTR32MSB",
+ "BFD_RELOC_IA64_FPTR32LSB",
+ "BFD_RELOC_IA64_FPTR64MSB",
+ "BFD_RELOC_IA64_FPTR64LSB",
+ "BFD_RELOC_IA64_PCREL21B",
+ "BFD_RELOC_IA64_PCREL21BI",
+ "BFD_RELOC_IA64_PCREL21M",
+ "BFD_RELOC_IA64_PCREL21F",
+ "BFD_RELOC_IA64_PCREL22",
+ "BFD_RELOC_IA64_PCREL60B",
+ "BFD_RELOC_IA64_PCREL64I",
+ "BFD_RELOC_IA64_PCREL32MSB",
+ "BFD_RELOC_IA64_PCREL32LSB",
+ "BFD_RELOC_IA64_PCREL64MSB",
+ "BFD_RELOC_IA64_PCREL64LSB",
+ "BFD_RELOC_IA64_LTOFF_FPTR22",
+ "BFD_RELOC_IA64_LTOFF_FPTR64I",
+ "BFD_RELOC_IA64_LTOFF_FPTR32MSB",
+ "BFD_RELOC_IA64_LTOFF_FPTR32LSB",
+ "BFD_RELOC_IA64_LTOFF_FPTR64MSB",
+ "BFD_RELOC_IA64_LTOFF_FPTR64LSB",
+ "BFD_RELOC_IA64_SEGREL32MSB",
+ "BFD_RELOC_IA64_SEGREL32LSB",
+ "BFD_RELOC_IA64_SEGREL64MSB",
+ "BFD_RELOC_IA64_SEGREL64LSB",
+ "BFD_RELOC_IA64_SECREL32MSB",
+ "BFD_RELOC_IA64_SECREL32LSB",
+ "BFD_RELOC_IA64_SECREL64MSB",
+ "BFD_RELOC_IA64_SECREL64LSB",
+ "BFD_RELOC_IA64_REL32MSB",
+ "BFD_RELOC_IA64_REL32LSB",
+ "BFD_RELOC_IA64_REL64MSB",
+ "BFD_RELOC_IA64_REL64LSB",
+ "BFD_RELOC_IA64_LTV32MSB",
+ "BFD_RELOC_IA64_LTV32LSB",
+ "BFD_RELOC_IA64_LTV64MSB",
+ "BFD_RELOC_IA64_LTV64LSB",
+ "BFD_RELOC_IA64_IPLTMSB",
+ "BFD_RELOC_IA64_IPLTLSB",
+ "BFD_RELOC_IA64_COPY",
+ "BFD_RELOC_IA64_TPREL22",
+ "BFD_RELOC_IA64_TPREL64MSB",
+ "BFD_RELOC_IA64_TPREL64LSB",
+ "BFD_RELOC_IA64_LTOFF_TP22",
+ "BFD_RELOC_IA64_LTOFF22X",
+ "BFD_RELOC_IA64_LDXMOV",
+ "BFD_RELOC_M68HC11_HI8",
+ "BFD_RELOC_M68HC11_LO8",
+ "BFD_RELOC_M68HC11_3B",
+ "BFD_RELOC_CRIS_BDISP8",
+ "BFD_RELOC_CRIS_UNSIGNED_5",
+ "BFD_RELOC_CRIS_SIGNED_6",
+ "BFD_RELOC_CRIS_UNSIGNED_6",
+ "BFD_RELOC_CRIS_UNSIGNED_4",
+ "BFD_RELOC_CRIS_COPY",
+ "BFD_RELOC_CRIS_GLOB_DAT",
+ "BFD_RELOC_CRIS_JUMP_SLOT",
+ "BFD_RELOC_CRIS_RELATIVE",
+ "BFD_RELOC_CRIS_32_GOT",
+ "BFD_RELOC_CRIS_16_GOT",
+ "BFD_RELOC_CRIS_32_GOTPLT",
+ "BFD_RELOC_CRIS_16_GOTPLT",
+ "BFD_RELOC_CRIS_32_GOTREL",
+ "BFD_RELOC_CRIS_32_PLT_GOTREL",
+ "BFD_RELOC_CRIS_32_PLT_PCREL",
+ "BFD_RELOC_860_COPY",
+ "BFD_RELOC_860_GLOB_DAT",
+ "BFD_RELOC_860_JUMP_SLOT",
+ "BFD_RELOC_860_RELATIVE",
+ "BFD_RELOC_860_PC26",
+ "BFD_RELOC_860_PLT26",
+ "BFD_RELOC_860_PC16",
+ "BFD_RELOC_860_LOW0",
+ "BFD_RELOC_860_SPLIT0",
+ "BFD_RELOC_860_LOW1",
+ "BFD_RELOC_860_SPLIT1",
+ "BFD_RELOC_860_LOW2",
+ "BFD_RELOC_860_SPLIT2",
+ "BFD_RELOC_860_LOW3",
+ "BFD_RELOC_860_LOGOT0",
+ "BFD_RELOC_860_SPGOT0",
+ "BFD_RELOC_860_LOGOT1",
+ "BFD_RELOC_860_SPGOT1",
+ "BFD_RELOC_860_LOGOTOFF0",
+ "BFD_RELOC_860_SPGOTOFF0",
+ "BFD_RELOC_860_LOGOTOFF1",
+ "BFD_RELOC_860_SPGOTOFF1",
+ "BFD_RELOC_860_LOGOTOFF2",
+ "BFD_RELOC_860_LOGOTOFF3",
+ "BFD_RELOC_860_LOPC",
+ "BFD_RELOC_860_HIGHADJ",
+ "BFD_RELOC_860_HAGOT",
+ "BFD_RELOC_860_HAGOTOFF",
+ "BFD_RELOC_860_HAPC",
+ "BFD_RELOC_860_HIGH",
+ "BFD_RELOC_860_HIGOT",
+ "BFD_RELOC_860_HIGOTOFF",
+ "BFD_RELOC_OPENRISC_ABS_26",
+ "BFD_RELOC_OPENRISC_REL_26",
"@@overflow: BFD_RELOC_UNUSED@@",
};
#endif
reloc_howto_type *
-bfd_default_reloc_type_lookup
- PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
+bfd_default_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
-boolean
-bfd_generic_relax_section
- PARAMS ((bfd *abfd,
+boolean
+bfd_generic_relax_section PARAMS ((bfd *abfd,
asection *section,
struct bfd_link_info *,
boolean *));
-bfd_byte *
+boolean
+bfd_generic_gc_sections PARAMS ((bfd *, struct bfd_link_info *));
-bfd_generic_get_relocated_section_contents PARAMS ((bfd *abfd,
+boolean
+bfd_generic_merge_sections PARAMS ((bfd *, struct bfd_link_info *));
+
+bfd_byte *
+bfd_generic_get_relocated_section_contents PARAMS ((bfd *abfd,
struct bfd_link_info *link_info,
struct bfd_link_order *link_order,
bfd_byte *data,
asymbol **symbols));
extern const bfd_arch_info_type bfd_default_arch_struct;
-boolean
+boolean
bfd_default_set_arch_mach PARAMS ((bfd *abfd,
enum bfd_architecture arch,
unsigned long mach));
const bfd_arch_info_type *
-bfd_default_compatible
- PARAMS ((const bfd_arch_info_type *a,
+bfd_default_compatible PARAMS ((const bfd_arch_info_type *a,
const bfd_arch_info_type *b));
-boolean
+boolean
bfd_default_scan PARAMS ((const struct bfd_arch_info *info, const char *string));
struct elf_internal_shdr *
-bfd_elf_find_section PARAMS ((bfd *abfd, char *name));
+bfd_elf_find_section PARAMS ((bfd *abfd, char *name));