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
* ecoff.c: If compiling for DEC3100, use trad_unix core files,
else dummy out the core file support.
* trad-core.c (trad_unix_core_file_p): If HOST_DATA_START_ADDR is
specified, use it to locate the data section.
* coffcode.h (coff_write_symbols): Declare buffer as bfd_bytes
rather than as chars (lint).
* Makefile.in: use targets "bfd.dvi" and "bfd.ps" instead of
texdoc and psdoc; make these depend on generated .texi's
* scanit, (new) unPROTO: turn PROTO macros into ANSI declarations in
doc
* bfd.c, reloc.c, syms.c: minor spelling/wording fixes in doc
portions
* Makefile.in, awkscan-ip, awkscan-p, intobfd,
libbfd.h, libcoff.h, tolibcoff; new bfd-in.h, libbfd-in.h,
libcoff-in.h: (a) use separate files for invariant parts of bfd.h,
libbfd.h, and libcoff.h; (b) in generated parts of same, use less
obtrusive marks indicating .c origins.
* bfd.texinfo: generalize most references to linker
* aoutx.h, archive.c, archures.c, bfd.c, bfd.texinfo, cache.c,
coffcode.h, core.c, format.c, libbfd.c, libbfd.h, libcoff.h,
opncls.c, reloc.c, section.c, syms.c, targets.c (documentation
segments): used BFD (caps) more consistently as a name in
discourse, fixed a few other minor typos and uses of fonts
The stuff after the comment /* THE FOLLOWING IS EXTRACTED ... */ is
removed from the header files, so the header files broke themselves.
This is now fixed because the description is split over two lines. Not
a great way. I'll fix it better soon.
bfd.doc bfd.texinfo. Merged what was usefull into bfd.texinfo and
deleted bfd.doc.
Install header comments and attribute most modules to their
authors. BFD's name is now officially "Binary File Descriptor",
so remove any conflicting perjoratives.
bfd.texinfo oasys.c opncls.c reloc.c srec.c: More documentation on
lint fixes.
* amdcoff.c bfd.texinfo Makefile.in : Folded in changes for amd
29k coff by David Wood (wood@lab.ultra.nyu.edu).
choose_reloc_size. (sunos4_write_object_contents) now calls
choose_reloc_size so outputs relocs correctly, also calculates the
size of the sections correctly.
* aout.c: (look in the rrgs I hate VI)
~
~
~
~
machine dependent followup in sunos4_object_p into
sunos4_callback. Use JUMP_TABLE(aout) 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.
This is now a generic module for a.out handling.
Rename all routines from sunos4_xxx to aout_xxx. Remove Sun-specific
code. Remove transfer vectors. Pull core file handling. Lint.
Remove close_and_cleanup.
alignments of structures on disk and structures in memory. #ifed out
all the code in coffswap.c, since it should be done using the target
swap routines now.
Remove obstack.h to ../include and obstack.c to ../libiberty.
Move COFF symbol swapping code to coffswap.c where GDB can call it but it
won't be duplicated if we have N different COFF targets.
Add support for traditional Unix core files (with a upage). This support
is from an Ultrix port, but is probably slightly broken now.
Improve bfd_release's of obstack'd items on error returns.
gcc -Wall fixes.
Handle section alignment slightly better in coff, and comment where it
needs more work (on page-aligning virtual vs file addresses for DPAGED).
Use set_tdata everywhere that tdata is set, to avoid "cast to the left
of assignment" problems with some compilers.
Move bfd_alloc, bfd_zalloc, bfd_realloc, and bfd_release into libbfd.h
(from bfd.h) since they are internal routines.
Remove the redundant suffix "_struct" from struct tags.
Set symbol count early in file reading, before slurping in the syms,
for GDB's use.