From e10d93eda272bb1efb9131bd9f534f4adc716e78 Mon Sep 17 00:00:00 2001 From: John Gilmore Date: Sat, 11 May 1991 00:48:27 +0000 Subject: [PATCH] Sony NEWS port and modularization of a.out code. Cleanup of close_and_cleanup, write_contents, and jump vectors. --- bfd/ChangeLog | 77 ++++++++++++++++++++++++++++++++++++++++++++++++- bfd/Makefile.in | 8 ++--- 2 files changed, 80 insertions(+), 5 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c8fb06df014..a21c434aee7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,52 @@ +Fri May 10 16:58:53 1991 John Gilmore (gnu at cygint.cygnus.com) + + Merge Per Bothner's changes to modularize BFD a.out a bit. + + * libbfd.h, libbfd.c (bfd_generic_get_section_contents): Add. + * ieee.c: Cast enums to int before comparing them, for brain- + dead compilers. + * coff-code.h: Remove coff_get_section_contents, and use the + generic one instead. + + * aout.c: Derive new module from sunos.c, containing generic + support code for all kinds of a.out files. + + * sunos.c: Remove all code that goes in aout.c. Split out + machine dependent followup in sunos4_object_p into + sunos4_callback. Use JUMP_TABLE(aout) for the transver vector, + and redefine only the names we CHANGE, not all the names. Drop + the little-endian vector, and rename the vector as sunos4 rather + than generic. + + * b.out.c: Use aout.c routines for most of the work. Slight + changes for the new regime. Remove close_and_cleanup and + get_section_contents in favor of generics. New transfer vector + regime. + + * newsos.c: New support for Sony NEWS, another a.out format. + + * ecoff.c: Remove close_and_cleanup. New tvec regime. + * icoff.c, m88k-bcs.c: Add write_contents to tvec. + * ieee.c, oasys.c: Remove close_and_cleanup, add write_contents + to tvec. + * opncls.c (bfd_close): Call format-dependent write_contents + routine, if writing, before calling target-dependent + close_and_cleanup routine (which is now always generic, I think). + * srec.c: Use bfd_alloc instead of malloc. Remove + close_and_cleanup and move code from it to + srec_write_object_contents. Add write_contents to tvec. + * targets.c: Remove a.out little vector, replace a.out big + vector with SunOS vector. FIXME: Need Vax support again now. + + * libbfd.h: Add write_contents format-dependent-vector to the + bfd_target vector. Supply a generic close_and_cleanup routine. + * liba.out.h: Handle the new aout.c split. Add prototypes for + all routines defined in aout.c. Rename "sunos" things to "aout" + things. Add a few fields where needed for various formats. + * Makefile.in: Add aout.c and newsos.c. + + * archive.c, ieee.c, oasys.c: Lint. + Fri May 10 12:34:48 1991 Steve Chamberlain (steve at cygint.cygnus.com) * ../include/bfd.h @@ -19,7 +68,6 @@ Fri May 10 12:34:48 1991 Steve Chamberlain (steve at cygint.cygnus.com) all the code in coffswap.c, since it should be done using the target swap routines now. - Thu May 9 11:00:45 1991 Steve Chamberlain (steve at cygint.cygnus.com) * ieee.c (do_one, ieee_slurp_section_data): now supports the load @@ -35,6 +83,33 @@ Sat May 4 15:49:43 1991 John Gilmore (gnu at cygint.cygnus.com) * ecoff.c: Clean up types and such. Remove routines that are not used. Fix up reading and swapping of shorts from files. + Notes on bfd-0.5.2-patch1a, from Per Bothner: + + * a.out.vax.c: Remove two bogus "static" from prototypes. + + * ecoff.c: Got rid of lots of non-working junk (that had + been copied directly from coff-code.h). + Updated to be consistent with updates to icoff.c and coff-code.h. + + * libbfd.h: Added definitions for S_IXUSR, S_IXGRP, and S_IXOTH + if they're missing (as they are in (BDS-4.3-based) NewsOS-3). + + * sunos.c (n_txtoff): (Re-)Add support for sony. This is a kludge, + but until the target_vector is automatically generated, + it's as good as any. Note that the text offset is the only + difference between NewsOS and SunOs (including magic numbers). + (Most of the sunos_* routines should to renamed bsd_* + and move to a bsd.c file. Then (and when the target_vector + is automatically generated) it might make sense to create + a separate Sony target.) + + * sysdep.h: Don't declare fread and fwrite. Causes trouble + on some systems, and doesn't help on others. + Similarly, only define X_OK if not already defined. + + * trad-core.c: Don't include sys/stat.h - at least + on NewsOS 3, it has already been included. + Tue Mar 5 01:47:57 1991 John Gilmore (gnu at cygint.cygnus.com) * coff-code.h (bfd_coff_swap_sym, bfd_coff_swap_aux, diff --git a/bfd/Makefile.in b/bfd/Makefile.in index a4374a86b0d..e73faf386f9 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -36,16 +36,16 @@ CFLAGS = -g $(HDEFINES) $(TDEFINES) $(CSEARCH) $(CSWITCHES) # -DINTEL960VERSION BFD_LIBS = libbfd.o opncls.o bfd.o archive.o targets.o cache.o \ archures.o -BFD_BACKENDS = oasys.o ieee.o srec.o sunos.o icoff.o b.out.o \ - m68kcoff.o m88k-bcs.o coffswap.o ecoff.o # trad-core.o +BFD_BACKENDS = oasys.o ieee.o srec.o aout.o sunos.o icoff.o b.out.o \ + m68kcoff.o m88k-bcs.o coffswap.o ecoff.o newsos3.o # trad-core.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 oasys.c ieee.c m68kcoff.c m88k-bcs.c \ - coffswap.c ecoff.c trad-core.c + aout.c sunos.c icoff.c b.out.c srec.c oasys.c ieee.c m68kcoff.c \ + m88k-bcs.c coffswap.c ecoff.c trad-core.c newsos3.c STAGESTUFF = $(TARGETLIB) $(OFILES) -- 2.30.2