diff options
author | Ian Lance Taylor <ian@airs.com> | 1993-11-18 17:10:42 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1993-11-18 17:10:42 +0000 |
commit | 643e9fc7683e5df2e66a43576bdaea2ea794e735 (patch) | |
tree | 7b20973549762e1c2d3b7f8ee54cf4d155dba68d /bfd | |
parent | 7855533586f9dbdce6ef1fc48b5ce5f4fc4e4f32 (diff) | |
download | gdb-643e9fc7683e5df2e66a43576bdaea2ea794e735.zip gdb-643e9fc7683e5df2e66a43576bdaea2ea794e735.tar.gz gdb-643e9fc7683e5df2e66a43576bdaea2ea794e735.tar.bz2 |
* 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.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/elf32-target.h | 44 | ||||
-rw-r--r-- | bfd/elf64-target.h | 43 | ||||
-rw-r--r-- | bfd/libelf.h | 11 |
3 files changed, 62 insertions, 36 deletions
diff --git a/bfd/elf32-target.h b/bfd/elf32-target.h index 2711fbd..ed1f417 100644 --- a/bfd/elf32-target.h +++ b/bfd/elf32-target.h @@ -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 diff --git a/bfd/elf64-target.h b/bfd/elf64-target.h index 8ada3b9..8450179 100644 --- a/bfd/elf64-target.h +++ b/bfd/elf64-target.h @@ -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 diff --git a/bfd/libelf.h b/bfd/libelf.h index 4d58293..04db170 100644 --- a/bfd/libelf.h +++ b/bfd/libelf.h @@ -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; |