* nlm32-i386.c: New file. First cut at i386 NLM code.
* libnlm.h: Added some more prototypes. (struct nlm_relent): New structure. (nlmNAME(symbol_type)): Added rcnt and relocs fields. (struct nlm_obj_tdata): Added new fields: nlm_symbols, nlm_text_low, nlm_data_low, nlm_reloc_fixups, nlm_reloc_fixup_secs. (struct nlm_backend_data): New structure, with accessor macros. * nlmcode.h: Use NLM_HIBIT rather than MSB. (nlm_object_p): Set SEC_RELOC for .text and .data. Don't set SEC_DATA for .bss. Set HAS_RELOC and HAS_SYMS for abfd. Set the architecture. (nlm_swap_fixed_header_out, nlm_swap_variable_header_out, find_nonzero, nlm_swap_auxiliary_headers_out): New outbound swapping functions. (nlm_get_symtab_upper_bound, nlm_slurp_symbol_table): Include external references in symbol table as undefined symbols. (nlm_get_symtab, nlm_slurp_symbol_table): Fill in alocation argument in get_symtab rather than in slurp_symbol_table. (nlm_slurp_symbol_table): Save symbol information in tdata. (nlm_print_symbol): New function. (nlm_slurp_reloc_fixups, nlm_get_reloc_upper_bound, nlm_canonicalize_reloc): New functions to read relocs. (nlm_compute_section_file_positions, nlm_set_section_contents, nlm_external_reloc_compare, nlm_write_object_contents): New functions to create NLM files. * nlm-target.h: Define all the nlm functions here either as default values or in terms of nlmNAME. Use JUMP_TABLE(nlm). Set the backend_data field to TARGET_BACKEND_DATA. * nlm32-gen.c, nlm64-gen.c: Don't define function macros here; they are now in nlm-target.h. (TARGET_BACKEND_DATA): Define as NULL. * nlm.c (nlm_mkobject): Do allocate the tdata field. (nlm_set_arch_mach): New function. * targets.c: Added nlm32_i386_vec. * Makefile.in (BFD32_BACKENDS): Added nlm32-i386.o. (CFILES): Added nlm32-i386.c. (nlm32-gen.o, nlm64-gen.o): Depend on nlm-target.h. (nlm32-i386.o): New target.
This commit is contained in:
parent
7ff4288057
commit
5a1cb8d526
2 changed files with 2 additions and 158 deletions
|
@ -31,84 +31,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#define TARGET_LITTLE_SYM nlmNAME(little_generic_vec)
|
||||
#define TARGET_BIG_NAME "nlm32-big"
|
||||
#define TARGET_BIG_SYM nlmNAME(big_generic_vec)
|
||||
#define JUMP_TABLE_INIT JUMP_TABLE(nlm32)
|
||||
|
||||
/* We don't have core files. */
|
||||
|
||||
#define nlm32_core_file_p \
|
||||
((bfd_target *(*) PARAMS ((bfd *))) bfd_nullvoidptr)
|
||||
#define nlm32_core_file_failing_command \
|
||||
_bfd_dummy_core_file_failing_command
|
||||
#define nlm32_core_file_failing_signal \
|
||||
_bfd_dummy_core_file_failing_signal
|
||||
#define nlm32_core_file_matches_executable_p \
|
||||
_bfd_dummy_core_file_matches_executable_p
|
||||
|
||||
/* Archives are generic or unimplemented. */
|
||||
|
||||
#define nlm32_slurp_armap \
|
||||
bfd_slurp_coff_armap
|
||||
#define nlm32_slurp_extended_name_table \
|
||||
_bfd_slurp_extended_name_table
|
||||
#define nlm32_truncate_arname \
|
||||
bfd_dont_truncate_arname
|
||||
#define nlm32_openr_next_archived_file \
|
||||
bfd_generic_openr_next_archived_file
|
||||
#define nlm32_generic_stat_arch_elt \
|
||||
bfd_generic_stat_arch_elt
|
||||
#define nlm32_write_armap \
|
||||
coff_write_armap
|
||||
|
||||
/* Ordinary section reading and writing */
|
||||
#define nlm32_get_section_contents \
|
||||
bfd_generic_get_section_contents
|
||||
#define nlm32_close_and_cleanup \
|
||||
bfd_generic_close_and_cleanup
|
||||
|
||||
#define nlm32_bfd_debug_info_start \
|
||||
bfd_void
|
||||
#define nlm32_bfd_debug_info_end \
|
||||
bfd_void
|
||||
#define nlm32_bfd_debug_info_accumulate \
|
||||
(PROTO(void,(*),(bfd*, struct sec *))) bfd_void
|
||||
#define nlm32_bfd_get_relocated_section_contents \
|
||||
bfd_generic_get_relocated_section_contents
|
||||
#define nlm32_bfd_relax_section \
|
||||
bfd_generic_relax_section
|
||||
#define nlm32_bfd_seclet_link \
|
||||
bfd_generic_seclet_link
|
||||
#define nlm32_bfd_make_debug_symbol \
|
||||
((asymbol *(*) PARAMS ((bfd *, void *, unsigned long))) bfd_nullvoidptr)
|
||||
|
||||
#define nlm32_set_section_contents \
|
||||
bfd_generic_set_section_contents
|
||||
#define nlm32_new_section_hook \
|
||||
_bfd_dummy_new_section_hook
|
||||
|
||||
#define nlm32_get_reloc_upper_bound \
|
||||
((unsigned int (*) PARAMS ((bfd *, sec_ptr))) bfd_0u)
|
||||
|
||||
#define nlm32_canonicalize_reloc \
|
||||
((unsigned int (*) PARAMS ((bfd *, sec_ptr, arelent **, asymbol **))) bfd_0u)
|
||||
|
||||
#define nlm32_print_symbol \
|
||||
((void (*) PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type))) bfd_false)
|
||||
|
||||
#define nlm32_get_lineno \
|
||||
((alent * (*) PARAMS ((bfd *, asymbol *))) bfd_false)
|
||||
|
||||
#define nlm32_find_nearest_line \
|
||||
((boolean (*) PARAMS ((bfd *, asection *, asymbol **, bfd_vma, \
|
||||
CONST char **, CONST char **, unsigned int *))) \
|
||||
bfd_false)
|
||||
|
||||
#define nlm32_sizeof_headers \
|
||||
((int (*) PARAMS ((bfd *, boolean))) bfd_0u)
|
||||
|
||||
#define nlm32_write_object_contents \
|
||||
((boolean (*) PARAMS ((bfd *))) bfd_false)
|
||||
|
||||
#define nlm32_bfd_reloc_type_lookup \
|
||||
bfd_default_reloc_type_lookup
|
||||
#define TARGET_BACKEND_DATA NULL
|
||||
|
||||
#include "nlm-target.h"
|
||||
|
|
|
@ -31,84 +31,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#define TARGET_LITTLE_SYM nlmNAME(little_generic_vec)
|
||||
#define TARGET_BIG_NAME "nlm64-big"
|
||||
#define TARGET_BIG_SYM nlmNAME(big_generic_vec)
|
||||
#define JUMP_TABLE_INIT JUMP_TABLE(nlm64)
|
||||
|
||||
/* We don't have core files. */
|
||||
|
||||
#define nlm64_core_file_p \
|
||||
((bfd_target *(*) PARAMS ((bfd *))) bfd_nullvoidptr)
|
||||
#define nlm64_core_file_failing_command \
|
||||
_bfd_dummy_core_file_failing_command
|
||||
#define nlm64_core_file_failing_signal \
|
||||
_bfd_dummy_core_file_failing_signal
|
||||
#define nlm64_core_file_matches_executable_p \
|
||||
_bfd_dummy_core_file_matches_executable_p
|
||||
|
||||
/* Archives are generic or unimplemented. */
|
||||
|
||||
#define nlm64_slurp_armap \
|
||||
bfd_slurp_coff_armap
|
||||
#define nlm64_slurp_extended_name_table \
|
||||
_bfd_slurp_extended_name_table
|
||||
#define nlm64_truncate_arname \
|
||||
bfd_dont_truncate_arname
|
||||
#define nlm64_openr_next_archived_file \
|
||||
bfd_generic_openr_next_archived_file
|
||||
#define nlm64_generic_stat_arch_elt \
|
||||
bfd_generic_stat_arch_elt
|
||||
#define nlm64_write_armap \
|
||||
coff_write_armap
|
||||
|
||||
/* Ordinary section reading and writing */
|
||||
#define nlm64_get_section_contents \
|
||||
bfd_generic_get_section_contents
|
||||
#define nlm64_close_and_cleanup \
|
||||
bfd_generic_close_and_cleanup
|
||||
|
||||
#define nlm64_bfd_debug_info_start \
|
||||
bfd_void
|
||||
#define nlm64_bfd_debug_info_end \
|
||||
bfd_void
|
||||
#define nlm64_bfd_debug_info_accumulate \
|
||||
(PROTO(void,(*),(bfd*, struct sec *))) bfd_void
|
||||
#define nlm64_bfd_get_relocated_section_contents \
|
||||
bfd_generic_get_relocated_section_contents
|
||||
#define nlm64_bfd_relax_section \
|
||||
bfd_generic_relax_section
|
||||
#define nlm64_bfd_seclet_link \
|
||||
bfd_generic_seclet_link
|
||||
#define nlm64_bfd_make_debug_symbol \
|
||||
((asymbol *(*) PARAMS ((bfd *, void *, unsigned long))) bfd_nullvoidptr)
|
||||
|
||||
#define nlm64_set_section_contents \
|
||||
bfd_generic_set_section_contents
|
||||
#define nlm64_new_section_hook \
|
||||
_bfd_dummy_new_section_hook
|
||||
|
||||
#define nlm64_get_reloc_upper_bound \
|
||||
((unsigned int (*) PARAMS ((bfd *, sec_ptr))) bfd_0u)
|
||||
|
||||
#define nlm64_canonicalize_reloc \
|
||||
((unsigned int (*) PARAMS ((bfd *, sec_ptr, arelent **, asymbol **))) bfd_0u)
|
||||
|
||||
#define nlm64_print_symbol \
|
||||
((void (*) PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type))) bfd_false)
|
||||
|
||||
#define nlm64_get_lineno \
|
||||
((alent * (*) PARAMS ((bfd *, asymbol *))) bfd_false)
|
||||
|
||||
#define nlm64_find_nearest_line \
|
||||
((boolean (*) PARAMS ((bfd *, asection *, asymbol **, bfd_vma, \
|
||||
CONST char **, CONST char **, unsigned int *))) \
|
||||
bfd_false)
|
||||
|
||||
#define nlm64_sizeof_headers \
|
||||
((int (*) PARAMS ((bfd *, boolean))) bfd_0u)
|
||||
|
||||
#define nlm64_write_object_contents \
|
||||
((boolean (*) PARAMS ((bfd *))) bfd_false)
|
||||
|
||||
#define nlm64_bfd_reloc_type_lookup \
|
||||
bfd_default_reloc_type_lookup
|
||||
#define TARGET_BACKEND_DATA NULL
|
||||
|
||||
#include "nlm-target.h"
|
||||
|
|
Loading…
Reference in a new issue