From 726cc6ef804d2a17dea43860ee1aca667f70703f Mon Sep 17 00:00:00 2001 From: "K. Richard Pixley" Date: Mon, 8 Apr 1991 16:02:27 +0000 Subject: [PATCH] Added little endian a.out. --- bfd/Makefile.in | 10 +++++---- bfd/aout.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++-- bfd/targets.c | 32 ++++++++++++--------------- 3 files changed, 77 insertions(+), 24 deletions(-) diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 5741343eb5c..861edd349e8 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -35,19 +35,21 @@ CSEARCH = -I$(INCDIR) ### TARG = libbfd.a -CFLAGS = -g $(CDEFINES) $(CSEARCH) $(CSWITCHES) -DINTEL960VERSION +CFLAGS = -g $(CDEFINES) $(CSEARCH) $(CSWITCHES) # -DINTEL960VERSION -BFD_LIBS = libbfd.o opncls.o bfd.o archive.o targets.o cache.o archures.o +BFD_LIBS = libbfd.o opncls.o bfd.o archive.o targets.o cache.o \ + archures.o obstack.o -BFD_BACKENDS = sunos.o icoff.o b.out.o # srec.o # bcs88kcoff.o +BFD_BACKENDS = oasys.o ieee.o srec.o sunos.o icoff.o b.out.o \ + m88k-bcs.o BFD_H=$(INCDIR)/bfd.h SYSDEP_H=$(INCDIR)/sysdep.h # C source files that correspond to .o's. CFILES = libbfd.c opncls.c bfd.c archive.c targets.c cache.c archures.c \ - sunos.c icoff.c b.out.c # srec.c # bcs88kcoff.c + sunos.c icoff.c b.out.c srec.c oasys.c ieee.c m88k-bcs.c all: $(TARG) diff --git a/bfd/aout.c b/bfd/aout.c index 9b554b65ff0..3391657ba7d 100755 --- a/bfd/aout.c +++ b/bfd/aout.c @@ -1169,7 +1169,6 @@ sunos4_slurp_symbol_table (abfd) register struct nlist *sym_end = syms + symbol_count; register aout_symbol_type *cache_ptr = cached; - if (bfd_header_twiddle_required (abfd) == true) { /* run through the table and byte swap if needed */ for (sym_pointer = syms; sym_pointer < sym_end; sym_pointer++) { sym_pointer->n_un.n_strx = @@ -1184,7 +1183,7 @@ sunos4_slurp_symbol_table (abfd) bfd_h_get_x(abfd, &sym_pointer->n_type); } - } + /* Run through table and copy values */ for (sym_pointer = syms, cache_ptr = cached; sym_pointer < sym_end; sym_pointer++, cache_ptr++) @@ -2117,3 +2116,59 @@ bfd_target aoutvec = bfd_generic_stat_arch_elt /* bfd_stat_arch_elt */ }; +bfd_target aout_little_vec = +{ + "a.out-generic-little", /* name */ + bfd_target_aout_flavour_enum, + true, /* target byte order */ + true, /* target headers byte order */ + (HAS_RELOC | EXEC_P | /* object flags */ + HAS_LINENO | HAS_DEBUG | + HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED), + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ + 0, /* valid reloc types */ + ' ', /* ar_pad_char */ + 16, /* ar_max_namelen */ + sunos4_close_and_cleanup, /* _close_and_cleanup */ + sunos4_set_section_contents, /* bfd_set_section_contents */ + sunos4_get_section_contents, /* bfd_get_section_contents */ + sunos4_new_section_hook, /* new_section_hook */ + sunos4_core_file_failing_command, /* _core_file_failing_command */ + sunos4_core_file_failing_signal, /* _core_file_failing_signal */ + sunos4_core_file_matches_executable_p, /* _core_file_matches_ex...p */ + + bfd_slurp_bsd_armap, /* bfd_slurp_armap */ + bfd_true, /* bfd_slurp_extended_name_table */ + bfd_bsd_truncate_arname, /* bfd_truncate_arname */ + + sunos4_get_symtab_upper_bound, /* get_symtab_upper_bound */ + sunos4_get_symtab, /* canonicalize_symtab */ + sunos4_reclaim_symbol_table, /* bfd_reclaim_symbol_table */ + sunos4_get_reloc_upper_bound, /* get_reloc_upper_bound */ + sunos4_canonicalize_reloc, /* bfd_canonicalize_reloc */ + sunos4_reclaim_reloc, /* bfd_reclaim_reloc */ + sunos4_get_symcount_upper_bound, /* bfd_get_symcount_upper_bound */ + sunos4_get_first_symbol, /* bfd_get_first_symbol */ + sunos4_get_next_symbol, /* bfd_get_next_symbol */ + sunos4_classify_symbol, /* bfd_classify_symbol */ + sunos4_symbol_hasclass, /* bfd_symbol_hasclass */ + sunos4_symbol_name, /* bfd_symbol_name */ + sunos4_symbol_value, /* bfd_symbol_value */ + + _do_getllong, _do_putllong, _do_getlshort, _do_putlshort, /* data */ + _do_getllong, _do_putllong, _do_getlshort, _do_putlshort, /* hdrs */ + + {_bfd_dummy_target, sunos4_object_p, /* bfd_check_format */ + bfd_generic_archive_p, sunos4_core_file_p}, + {bfd_false, sunos4_mkobject, /* bfd_zxset_format */ + _bfd_generic_mkarchive, bfd_false}, + sunos4_make_empty_symbol, + sunos4_print_symbol, + sunos4_get_lineno, + sunos4_set_arch_mach, + bsd_write_armap, + bfd_generic_openr_next_archived_file, + sunos4_find_nearest_line, /* bfd_find_nearest_line */ + bfd_generic_stat_arch_elt /* bfd_stat_arch_elt */ + }; + diff --git a/bfd/targets.c b/bfd/targets.c index 252cbe7ca4a..e7cb64d3313 100644 --- a/bfd/targets.c +++ b/bfd/targets.c @@ -27,6 +27,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "libbfd.h" extern bfd_target aoutvec; +extern bfd_target aout_little_vec; extern bfd_target srec_vec; extern bfd_target b_out_vec_little_host; extern bfd_target b_out_vec_big_host; @@ -36,21 +37,16 @@ extern bfd_target ieee_vec; extern bfd_target oasys_vec; extern bfd_target m88k_bcs_vec; - -bfd_target *target_vector[] = - { -#ifndef INTEL960VERSION - - -#endif /* INTEL960VERSION */ - &ieee_vec, - &oasys_vec, - &icoff_big_vec, - &aoutvec, - &icoff_little_vec, - &m88k_bcs_vec, - &b_out_vec_big_host, - &b_out_vec_little_host, - &srec_vec, - NULL - }; +bfd_target *target_vector[] = { + &aout_little_vec, + &ieee_vec, + &oasys_vec, + &icoff_big_vec, + &aoutvec, + &icoff_little_vec, + &m88k_bcs_vec, + &b_out_vec_big_host, + &b_out_vec_little_host, + &srec_vec, + NULL, +}; -- 2.30.2