section size out if there are alignment restrictions so that the
image will be ok on a system where section positions are worked
out by accumulating sizes rather than from the section headers.
* opncls.c (bfd_close_all_done). Added so that generative
programs like gas can close a bfd without causing bfd confusion.
* libbfd.h (changed becuase of protos)
* amdcoff.c: messed with the way that jmp displacements are
calcualated. This may not yet be totally correct.
* archive.c (coff_write_armap): rewrote the way that ranlibs are
written out.
* coffcode.h (fixup_symbol_value): now doesn't core dump if a non
abs symbol has no section (like a register symbol).
(coff_write_symbol) now zeros auxent before filling it up to help
with sensitive applications.
* libbfd.c (bfd_write_bigendian_4byte_int): added.
should not include teh size field itself.
* aoutx.h, libaout.h (NAME(aout, sizeof_headers)): Use
adata(abfd)->exec_bytes_size field instead of constant macro,
because aoutx.h compiles to a simple .o file shared by
all 32-bits a.out targets.
and data structures to handle the file, but set a few parameters
from the host's config file (page size, text start addr, etc).
* libaout.h: Define HP BSD machine types.
virtual-memory-address of the .reg section. We can't just make a
section for "all the regs and nothing else" because only GDB knows
exactly where the regs are (scattered around the upage and stack).
Clean up memory allocation. Remove big- and little-endian
vectors, replace with single vector; this only runs on the host,
in host byte order. Replace byteswap routines with aborts in case
anyone calls them.
* targets.c: There's only one trad_core_vec now.
* aoutf1.h (sunos_core_file_p): VMA of .reg* now needs to be 0.
* libbfd.h: Moved ALIGN macro here.
* bout.c (b_out_callback): Replace i960_align by align_power.
* libaout.h (struct aoutdata): Added fields page_size,
segment_size and exec_bytes_size. These help generic code
(in aoutx.h and libaout.h) to figure out where to align
the various segments in a demand paged file.
* libaout.h (WRITE_HEADER): Use new (struct aoutdata) fields
to decide if the exec header counts in a_text (text segment size).
Also, assume D_PAGED flag is set; don't set it here.
* bout.c (b_out_callback): Add initialization of
adata fields page_size, segment_size, and exec_bytes_size.
* host-aout.c (NAME(host_aout, callback) and
NAME(host_aout,mkobject): Ditto.
* i386aout.c (aout386_callback) and new aout386_mkobject): Ditto.
* newos3.c (newsos3_callback) and new newsos_mkobject): Ditto.
* aoutf1.c (sunos4_callback) and new sunos_mkobject): Ditto.
* aoutx.h (NAME(aout,some_aout_object_p)): Don't subtract
EXEC_BYTES_SIZE from the a_test size; this is only appropriate
for some systems (mainly sunos), so do it in the callback instead.
Same routine: Add stuff to the THIS_IS_ONLY_DOCUMENTATION comment.
* aoutx.h (NAME(aout,set_section_contents): Change the way
filepos and size of sections are carried out to support
older styles of demand paged executables.
* bfd.c: Added macros to enable gas to swap coff records.
* coffcode.h: Make the coff_swap_*_out routines return the number
of bytes swapped, and cleaned up their prototypes.
* configure.in: Added ebmon/coff support
* ecoff.c: Changed null definitions of coff_swap_*_out to conform
to new prototypes
* targets.c: Added new entry points for coff swapping
* include/sys/h-*.h: Move to bfd/hosts/h-*.h.
* configure.in: Revise to symlink sysdep.h to hosts/h-xxx.h.
Change some config names to match other dirs.
* *.c: Include bfd.h before sysdep.h, so ansidecl and PROTO()
get defined first.
* Makefile.in: Use -I. to get sysdep.h.
* trad-core.c: Don't disable the whole file if SUN4_SYS.
* config/: Rename some config files to match up h-*.h names.
Remove all the HOST_SYS definitions from the config files.
* hosts/h-amix.h, h-i386v.h: Define POSIX_UTIME, not USG.
* hosts/h-hp9000.h: Remove USG comment.
* hosts/h-rs6000.h: Include <stdlib.h> for malloc.
* hosts/h-news.h, h-sparc-64.h: New config files that had
previously been kludged in the <sysdep.h> file.
* hosts/h-hp9000.h: Remove USG comment.
* hosts/h-rs6000.h: Include <stdlib.h> for malloc.
* hosts/h-news.h, h-sparc-64.h: New config files that had
previously been kludged in the <sysdep.h> file.
* trad-core.c: Document how to use it nowadays.
* i386aout.c, newsos3.c: Clean up.
* i386coff.c: Allow 386 coff files to be used as core files too
(for reading core files from embedded systems).
* elf.c: Remove elf_set_section_contents, use generic one. Lint.
* libbfd-in.h, libbfd.c: Add bfd_generic_set_section_contents.
* libbfd.c (bfd_generic_{get,set}_section_contents): Check that
last byte of transfer, not first byte, is within the section.
* host-aout.c: Remove `BSD' archive support. Lint.
* archures.c: Rename `struct bfd_arch_info_struct' to `struct
bfd_arch_info'. Rename `typedef bfd_arch_info_struct_type' to
`bfd_arch_info_type'. All uses changed.
* reloc.c: Rename `bfd_reloc_status_enum_type' to
`bfd_reloc_status_type'. Rename `bfd_reloc_code_enum_real_type'
to `bfd_reloc_code_real_type'. (This seems to be a misnomer,
it needs a better name.) All uses changed.
* targets.c: Rename `enum target_flavour_enum' to `enum
target_flavour', and remove the `_enum' from all of the enum
values themselves. All uses changed.
* configure.in, config/h-i386mach: i386 mach host.
* config/t-i386-aout: Use host-aout.c.
* trad-core.c: Give it its own xvec's to make it independent
of other file formats.
* ecoff.c, host-aout.c: Remove refs to trad-core.
* config/t-dec3100, t-hp300bsd, t-tahoe, t-vax: Define TRAD_CORE.
* targets.c: #ifdef TRAD_CORE, include it in the vector.
Mon Sep 30 15:13:46 1991 Steve Chamberlain (steve at cygnus.com)
* cpu-a29k.c, cpu-i386.c, cpu-m68k.c, cpu-mips.c, cpu-vax.c,
cpu-h8300.c, cpu-i960.c, cpu-m88k.c, cpu-sparc.c: added. These
files will eventually contain processor specific bits for bfd,
like strange relocation information and dis/assembly. So far only
the H8 has been even partially done. This work also ties in with
the change in handling architectures.
* amdcoff.c: (a29k_reloc) fix error message.
* aout-f1.h: (choose_reloc_size) now calls bfd_get_arch to
discover the architecture of the bfd. (sunos4_callback) calls the
function bfd_set_arch_mach rather than stuffing stuff directly
into the bfd. (sunos4_write_object_contents), changed names of
accessor functions.
* aoutx.h: (set_arch_mach) now calls bfd_default_set_arch_mach to
setup the environment.
* archive.c: (bfd_slurp_coff_armap) coff archives always have the
headers in big endian format, regardless of the endianess of the
host or target.
* archures.c: totally changed. Now an architecture is represented
with a pointer to an info structure rather than an enumerated type
and a long. The old info is available as two elements in the
structure. Future enhancements to architecure support will
involve pointers to methods being placed into the info structure.
* bfd.c: changed the definition of the bfd structure for the new
architecture stuff.
* bout.c: (b_out_set_arch_mach) changed to use the new
architecture mechanism.
* coffcode.h: (coff_set_arch_mach, coff_set_flags) changed to use
the new architecture mechanism.
* configure.in: added h8 stuff.
* ieee.c: too many changes to note. Now ieee files written with
bfd gas and ld can be read by gld and ieee only linkers and
simulators.
* libbfd.c, libbfd.h: changed prototype of bfd_write.
* newsos3.c: (newos3_callback) now calls bfd_set_arch_mach rather
than fixing the structure directly.
* oasys.c: (oasys_object_p) now calls bfd_default_set_arch_mach rather
than fixing the structure directly.
* opncls.c: (new_bfd) makes sure that bfd_init has been called
before opening a bfd.
* srec.c: (srec_set_arch_mach) now calls bfd_default_set_arch_mach
rather than fixing the structure directly.
* targets.c: (target_vector) now by defining SELECT_VECS (perhaps
in the t/hmake file) a user can select which backends they want
linked with bfd without changing the source.
* init.c: new, looks after initializing modules.
* howto.c: for future use, will allow an application to work out
what cookie to use as a handle on a relcoatio howto.
* cpu-a29k.c, cpu-i386.c, cpu-m68k.c, cpu-mips.c, cpu-vax.c,
cpu-h8300.c, cpu-i960.c, cpu-m88k.c, cpu-sparc.c: added. These
files will eventually contain processor specific bits for bfd,
like strange relocation information and dis/assembly. So far only
the H8 has been even partially done. This work also ties in with
the change in handling architectures.
* aout-f1.h: (choose_reloc_size) now calls bfd_get_arch to
discover the architecture of the bfd. (sunos4_callback) calls the
function bfd_set_arch_mach rather than stuffing stuff directly
into the bfd. (sunos4_write_object_contents), changed names of
accessor functions.
* aoutx.h: (set_arch_mach) now calls bfd_default_set_arch_mach to
setup the environment.
* archive.c: (bfd_slurp_coff_armap) coff archives always have the
headers in big endian format, regardless of the endianess of the
host or target.
* archures.c: totally changed. Now an architecture is represented
with a pointer to an info structure rather than an enumerated type
and a long. The old info is available as two elements in the
structure. Future enhancements to architecure support will
involve pointers to methods being placed into the info structure.
* bfd.c: changed the definition of the bfd structure for the new
architecture stuff.
* bout.c: (b_out_set_arch_mach) changed to use the new
architecture mechanism.
* coffcode.h: (coff_set_arch_mach, coff_set_flags) changed to use
the new architecture mechanism.
* configure.in: added h8 stuff.
* ieee.c: too many changes to note. Now ieee files written with
bfd gas and ld can be read by gld and ieee only linkers and
simulators.
* libbfd.c, libbfd.h: changed prototype of bfd_write.
* newsos3.c: (newos3_callback) now calls bfd_set_arch_mach rather
than fixing the structure directly.
* oasys.c: (oasys_object_p) now calls bfd_default_set_arch_mach rather
than fixing the structure directly.
* opncls.c: (new_bfd) makes sure that bfd_init has been called
before opening a bfd.
* srec.c: (srec_set_arch_mach) now calls bfd_default_set_arch_mach
rather than fixing the structure directly.
* targets.c: (target_vector) now by defining SELECT_VECS (perhaps
in the t/hmake file) a user can select which backends they want
linked with bfd without changing the source.
* init.c: new, looks after initializing modules.
* howto.c: for future use, will allow an application to work out
what cookie to use as a handle on a relcoatio howto.
(srec_object_p): Avoid assuming any file that starts with 'S' is
an S-record file! (Check for 3 uppercase-hex digits after it.)
(ISHEX): Define new macro for checking supposedly hex characters.
(pass_over): Treat as EOF any S-record line that:
* doesn't have hex in either size character
* produces a size larger than 0x7F
* has an unrecognized type number