* libelf.h (struct elf_backend_data): Added fields

elf_backend_sym_is_global and elf_backend_final_write_processing.
	* elf32-target.h (elf32_bed): Added corresponding initializers.
	* elf64-target.h (elf64_bed): Likewise.
This commit is contained in:
Ian Lance Taylor 1993-11-18 17:10:42 +00:00
parent 7855533586
commit 643e9fc768
3 changed files with 62 additions and 36 deletions

View File

@ -61,29 +61,35 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define ELF_MAXPAGESIZE 1
#endif
#ifndef elf_backend_sym_is_global
#define elf_backend_sym_is_global 0
#endif
#ifndef elf_backend_object_p
#define elf_backend_object_p 0 /* elf_backend_object_p */
#define elf_backend_object_p 0
#endif
#ifndef elf_backend_symbol_processing
#define elf_backend_symbol_processing 0 /* elf_backend_symbol_processing */
#define elf_backend_symbol_processing 0
#endif
#ifndef elf_backend_symbol_table_processing
#define elf_backend_symbol_table_processing 0 /* elf_backend_symbol_table_processing */
#define elf_backend_symbol_table_processing 0
#endif
#ifndef elf_backend_section_processing
#define elf_backend_section_processing 0 /* elf_backend_section_processing */
#define elf_backend_section_processing 0
#endif
#ifndef elf_backend_section_from_shdr
#define elf_backend_section_from_shdr 0 /* elf_backend_section_from_shdr */
#define elf_backend_section_from_shdr 0
#endif
#ifndef elf_backend_fake_sections
#define elf_backend_fake_sections 0 /* elf_backend_fake_sections */
#define elf_backend_fake_sections 0
#endif
#ifndef elf_backend_section_from_bfd_section
#define elf_backend_section_from_bfd_section 0 /* elf_backend_section_from_bfd_section */
#define elf_backend_section_from_bfd_section 0
#endif
#ifndef elf_backend_final_write_processing
#define elf_backend_final_write_processing 0
#endif
#ifndef elf_backend_ecoff_debug_swap
#define elf_backend_ecoff_debug_swap 0 /* elf_backed_ecoff_debug_swap */
#define elf_backend_ecoff_debug_swap 0
#endif
static CONST struct elf_backend_data elf32_bed =
@ -97,16 +103,18 @@ static CONST struct elf_backend_data elf32_bed =
ELF_ARCH, /* arch */
ELF_MACHINE_CODE, /* elf_machine_code */
ELF_MAXPAGESIZE, /* maxpagesize */
elf_info_to_howto, /* elf_info_to_howto */
elf_info_to_howto_rel, /* elf_info_to_howto_rel */
elf_backend_object_p, /* elf_backend_object_p */
elf_backend_symbol_processing, /* elf_backend_symbol_processing */
elf_backend_symbol_table_processing, /* elf_backend_symbol_table_processing */
elf_backend_section_processing, /* elf_backend_section_processing */
elf_backend_section_from_shdr, /* elf_backend_section_from_shdr */
elf_backend_fake_sections, /* elf_backend_fake_sections */
elf_backend_section_from_bfd_section, /* elf_backend_section_from_bfd_section */
elf_backend_ecoff_debug_swap /* elf_backend_ecoff_debug_swap */
elf_info_to_howto,
elf_info_to_howto_rel,
elf_backend_sym_is_global,
elf_backend_object_p,
elf_backend_symbol_processing,
elf_backend_symbol_table_processing,
elf_backend_section_processing,
elf_backend_section_from_shdr,
elf_backend_fake_sections,
elf_backend_section_from_bfd_section,
elf_backend_final_write_processing,
elf_backend_ecoff_debug_swap
};
#ifdef TARGET_BIG_SYM

View File

@ -59,29 +59,35 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define ELF_MAXPAGESIZE 1
#endif
#ifndef elf_backend_sym_is_global
#define elf_backend_sym_is_global 0
#endif
#ifndef elf_backend_object_p
#define elf_backend_object_p 0 /* elf_backend_object_p */
#define elf_backend_object_p 0
#endif
#ifndef elf_backend_symbol_processing
#define elf_backend_symbol_processing 0 /* elf_backend_symbol_processing */
#define elf_backend_symbol_processing 0
#endif
#ifndef elf_backend_symbol_table_processing
#define elf_backend_symbol_table_processing 0 /* elf_backend_symbol_table_processing */
#define elf_backend_symbol_table_processing 0
#endif
#ifndef elf_backend_section_processing
#define elf_backend_section_processing 0 /* elf_backend_section_processing */
#define elf_backend_section_processing 0
#endif
#ifndef elf_backend_section_from_shdr
#define elf_backend_section_from_shdr 0 /* elf_backend_section_from_shdr */
#define elf_backend_section_from_shdr 0
#endif
#ifndef elf_backend_fake_sections
#define elf_backend_fake_sections 0 /* elf_backend_fake_sections */
#define elf_backend_fake_sections 0
#endif
#ifndef elf_backend_section_from_bfd_section
#define elf_backend_section_from_bfd_section 0 /* elf_backend_section_from_bfd_section */
#define elf_backend_section_from_bfd_section 0
#endif
#ifndef elf_backend_final_write_processing
#define elf_backend_final_write_processing 0
#endif
#ifndef elf_backend_ecoff_debug_swap
#define elf_backend_ecoff_debug_swap 0 /* elf_backed_ecoff_debug_swap */
#define elf_backend_ecoff_debug_swap 0
#endif
static CONST struct elf_backend_data elf64_bed =
@ -95,16 +101,17 @@ static CONST struct elf_backend_data elf64_bed =
ELF_ARCH, /* arch */
ELF_MACHINE_CODE, /* elf_machine_code */
ELF_MAXPAGESIZE, /* maxpagesize */
elf_info_to_howto, /* elf_info_to_howto */
elf_info_to_howto_rel, /* elf_info_to_howto_rel */
elf_backend_object_p, /* elf_backend_object_p */
elf_backend_symbol_processing, /* elf_backend_symbol_processing */
elf_backend_symbol_table_processing, /* elf_backend_symbol_table_processing */
elf_backend_section_processing, /* elf_backend_section_processing */
elf_backend_section_from_shdr, /* elf_backend_section_from_shdr */
elf_backend_fake_sections, /* elf_backend_fake_sections */
elf_backend_section_from_bfd_section, /* elf_backend_section_from_bfd_section */
elf_backend_ecoff_debug_swap /* elf_backend_ecoff_debug_swap */
elf_info_to_howto,
elf_info_to_howto_rel,
elf_backend_sym_is_global,
elf_backend_object_p,
elf_backend_symbol_processing,
elf_backend_symbol_table_processing,
elf_backend_section_processing,
elf_backend_section_from_shdr,
elf_backend_fake_sections,
elf_backend_section_from_bfd_section,
elf_backend_ecoff_debug_swap
};
#ifdef TARGET_BIG_SYM

View File

@ -93,6 +93,13 @@ struct elf_backend_data
void (*elf_info_to_howto_rel) PARAMS ((bfd *, arelent *,
Elf_Internal_Rel *));
/* A function to determine whether a symbol is global when
partitioning the symbol table into local and global symbols.
This should be NULL for most targets, in which case the correct
thing will be done. MIPS ELF, at least on the Irix 5, has
special requirements. */
boolean (*elf_backend_sym_is_global) PARAMS ((bfd *, asymbol *));
/* The remaining functions are hooks which are called only if they
are not NULL. */
@ -141,6 +148,10 @@ struct elf_backend_data
boolean (*elf_backend_section_from_bfd_section)
PARAMS ((bfd *, Elf32_Internal_Shdr *, asection *, int *retval));
/* A function to do any final processing needed for the ELF file
before writing it out. */
void (*elf_backend_final_write_processing) PARAMS ((bfd *));
/* The swapping table to use when dealing with ECOFF information.
Used for the MIPS ELF .mdebug section. */
const struct ecoff_debug_swap *elf_backend_ecoff_debug_swap;