| Index: bfd/doc/aoutx.texi
|
| diff --git a/bfd/doc/aoutx.texi b/bfd/doc/aoutx.texi
|
| deleted file mode 100644
|
| index 7cf9787f106f60185c69e440666bad307d792802..0000000000000000000000000000000000000000
|
| --- a/bfd/doc/aoutx.texi
|
| +++ /dev/null
|
| @@ -1,213 +0,0 @@
|
| -@section a.out backends
|
| -
|
| -
|
| -@strong{Description}@*
|
| -BFD supports a number of different flavours of a.out format,
|
| -though the major differences are only the sizes of the
|
| -structures on disk, and the shape of the relocation
|
| -information.
|
| -
|
| -The support is split into a basic support file @file{aoutx.h}
|
| -and other files which derive functions from the base. One
|
| -derivation file is @file{aoutf1.h} (for a.out flavour 1), and
|
| -adds to the basic a.out functions support for sun3, sun4, 386
|
| -and 29k a.out files, to create a target jump vector for a
|
| -specific target.
|
| -
|
| -This information is further split out into more specific files
|
| -for each machine, including @file{sunos.c} for sun3 and sun4,
|
| -@file{newsos3.c} for the Sony NEWS, and @file{demo64.c} for a
|
| -demonstration of a 64 bit a.out format.
|
| -
|
| -The base file @file{aoutx.h} defines general mechanisms for
|
| -reading and writing records to and from disk and various
|
| -other methods which BFD requires. It is included by
|
| -@file{aout32.c} and @file{aout64.c} to form the names
|
| -@code{aout_32_swap_exec_header_in}, @code{aout_64_swap_exec_header_in}, etc.
|
| -
|
| -As an example, this is what goes on to make the back end for a
|
| -sun4, from @file{aout32.c}:
|
| -
|
| -@example
|
| - #define ARCH_SIZE 32
|
| - #include "aoutx.h"
|
| -@end example
|
| -
|
| -Which exports names:
|
| -
|
| -@example
|
| - ...
|
| - aout_32_canonicalize_reloc
|
| - aout_32_find_nearest_line
|
| - aout_32_get_lineno
|
| - aout_32_get_reloc_upper_bound
|
| - ...
|
| -@end example
|
| -
|
| -from @file{sunos.c}:
|
| -
|
| -@example
|
| - #define TARGET_NAME "a.out-sunos-big"
|
| - #define VECNAME sunos_big_vec
|
| - #include "aoutf1.h"
|
| -@end example
|
| -
|
| -requires all the names from @file{aout32.c}, and produces the jump vector
|
| -
|
| -@example
|
| - sunos_big_vec
|
| -@end example
|
| -
|
| -The file @file{host-aout.c} is a special case. It is for a large set
|
| -of hosts that use ``more or less standard'' a.out files, and
|
| -for which cross-debugging is not interesting. It uses the
|
| -standard 32-bit a.out support routines, but determines the
|
| -file offsets and addresses of the text, data, and BSS
|
| -sections, the machine architecture and machine type, and the
|
| -entry point address, in a host-dependent manner. Once these
|
| -values have been determined, generic code is used to handle
|
| -the object file.
|
| -
|
| -When porting it to run on a new system, you must supply:
|
| -
|
| -@example
|
| - HOST_PAGE_SIZE
|
| - HOST_SEGMENT_SIZE
|
| - HOST_MACHINE_ARCH (optional)
|
| - HOST_MACHINE_MACHINE (optional)
|
| - HOST_TEXT_START_ADDR
|
| - HOST_STACK_END_ADDR
|
| -@end example
|
| -
|
| -in the file @file{../include/sys/h-@var{XXX}.h} (for your host). These
|
| -values, plus the structures and macros defined in @file{a.out.h} on
|
| -your host system, will produce a BFD target that will access
|
| -ordinary a.out files on your host. To configure a new machine
|
| -to use @file{host-aout.c}, specify:
|
| -
|
| -@example
|
| - TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec
|
| - TDEPFILES= host-aout.o trad-core.o
|
| -@end example
|
| -
|
| -in the @file{config/@var{XXX}.mt} file, and modify @file{configure.in}
|
| -to use the
|
| -@file{@var{XXX}.mt} file (by setting "@code{bfd_target=XXX}") when your
|
| -configuration is selected.
|
| -
|
| -@subsection Relocations
|
| -
|
| -
|
| -@strong{Description}@*
|
| -The file @file{aoutx.h} provides for both the @emph{standard}
|
| -and @emph{extended} forms of a.out relocation records.
|
| -
|
| -The standard records contain only an
|
| -address, a symbol index, and a type field. The extended records
|
| -(used on 29ks and sparcs) also have a full integer for an
|
| -addend.
|
| -
|
| -@subsection Internal entry points
|
| -
|
| -
|
| -@strong{Description}@*
|
| -@file{aoutx.h} exports several routines for accessing the
|
| -contents of an a.out file, which are gathered and exported in
|
| -turn by various format specific files (eg sunos.c).
|
| -
|
| -@findex aout_@var{size}_swap_exec_header_in
|
| -@subsubsection @code{aout_@var{size}_swap_exec_header_in}
|
| -@strong{Synopsis}
|
| -@example
|
| -void aout_@var{size}_swap_exec_header_in,
|
| - (bfd *abfd,
|
| - struct external_exec *bytes,
|
| - struct internal_exec *execp);
|
| -@end example
|
| -@strong{Description}@*
|
| -Swap the information in an executable header @var{raw_bytes} taken
|
| -from a raw byte stream memory image into the internal exec header
|
| -structure @var{execp}.
|
| -
|
| -@findex aout_@var{size}_swap_exec_header_out
|
| -@subsubsection @code{aout_@var{size}_swap_exec_header_out}
|
| -@strong{Synopsis}
|
| -@example
|
| -void aout_@var{size}_swap_exec_header_out
|
| - (bfd *abfd,
|
| - struct internal_exec *execp,
|
| - struct external_exec *raw_bytes);
|
| -@end example
|
| -@strong{Description}@*
|
| -Swap the information in an internal exec header structure
|
| -@var{execp} into the buffer @var{raw_bytes} ready for writing to disk.
|
| -
|
| -@findex aout_@var{size}_some_aout_object_p
|
| -@subsubsection @code{aout_@var{size}_some_aout_object_p}
|
| -@strong{Synopsis}
|
| -@example
|
| -const bfd_target *aout_@var{size}_some_aout_object_p
|
| - (bfd *abfd,
|
| - struct internal_exec *execp,
|
| - const bfd_target *(*callback_to_real_object_p) (bfd *));
|
| -@end example
|
| -@strong{Description}@*
|
| -Some a.out variant thinks that the file open in @var{abfd}
|
| -checking is an a.out file. Do some more checking, and set up
|
| -for access if it really is. Call back to the calling
|
| -environment's "finish up" function just before returning, to
|
| -handle any last-minute setup.
|
| -
|
| -@findex aout_@var{size}_mkobject
|
| -@subsubsection @code{aout_@var{size}_mkobject}
|
| -@strong{Synopsis}
|
| -@example
|
| -bfd_boolean aout_@var{size}_mkobject, (bfd *abfd);
|
| -@end example
|
| -@strong{Description}@*
|
| -Initialize BFD @var{abfd} for use with a.out files.
|
| -
|
| -@findex aout_@var{size}_machine_type
|
| -@subsubsection @code{aout_@var{size}_machine_type}
|
| -@strong{Synopsis}
|
| -@example
|
| -enum machine_type aout_@var{size}_machine_type
|
| - (enum bfd_architecture arch,
|
| - unsigned long machine,
|
| - bfd_boolean *unknown);
|
| -@end example
|
| -@strong{Description}@*
|
| -Keep track of machine architecture and machine type for
|
| -a.out's. Return the @code{machine_type} for a particular
|
| -architecture and machine, or @code{M_UNKNOWN} if that exact architecture
|
| -and machine can't be represented in a.out format.
|
| -
|
| -If the architecture is understood, machine type 0 (default)
|
| -is always understood.
|
| -
|
| -@findex aout_@var{size}_set_arch_mach
|
| -@subsubsection @code{aout_@var{size}_set_arch_mach}
|
| -@strong{Synopsis}
|
| -@example
|
| -bfd_boolean aout_@var{size}_set_arch_mach,
|
| - (bfd *,
|
| - enum bfd_architecture arch,
|
| - unsigned long machine);
|
| -@end example
|
| -@strong{Description}@*
|
| -Set the architecture and the machine of the BFD @var{abfd} to the
|
| -values @var{arch} and @var{machine}. Verify that @var{abfd}'s format
|
| -can support the architecture required.
|
| -
|
| -@findex aout_@var{size}_new_section_hook
|
| -@subsubsection @code{aout_@var{size}_new_section_hook}
|
| -@strong{Synopsis}
|
| -@example
|
| -bfd_boolean aout_@var{size}_new_section_hook,
|
| - (bfd *abfd,
|
| - asection *newsect);
|
| -@end example
|
| -@strong{Description}@*
|
| -Called by the BFD in response to a @code{bfd_make_section}
|
| -request.
|
| -
|
|
|