(1) describe -relax

(2) restructure machine dependencies into separate chapter
(3) replace pretty, but quick to become obsolete, graph of BFD platforms
    vs architectures with extended excerpt from (and ref to ) objdump -i.
This commit is contained in:
Roland Pesch 1992-01-24 03:38:02 +00:00
parent 400943fbac
commit 1c48127ed7
1 changed files with 419 additions and 258 deletions

View File

@ -2,8 +2,17 @@
@setfilename ld.info
@c $Id$
@syncodeindex ky cp
@c @smallbook
@smallbook
@c @cropmarks
@ifinfo
@format
START-INFO-DIR-ENTRY
* Ld: (ld). The GNU linker.
END-INFO-DIR-ENTRY
@end format
@end ifinfo
@ifinfo
This file documents the GNU linker GLD.
@ -83,49 +92,63 @@ This file documents the GNU linker gld.
@end ifinfo
@menu
* Overview:: Overview
* Invocation:: Invocation
* Commands:: Command Language
* BFD:: BFD
* Index:: Index
* Overview:: Overview
* Invocation:: Invocation
* Commands:: Command Language
* Machine Dependent:: Machine Dependent Features
* BFD:: BFD
* Index:: Index
--- The Detailed Node Listing ---
Invocation
* Options:: Command Line Options
* Environment:: Environment Variables
* Options:: Command Line Options
* Environment:: Environment Variables
Command Language
* Scripts:: Linker Scripts
* Expressions:: Expressions
* MEMORY:: MEMORY Command
* SECTIONS:: SECTIONS Command
* Entry Point:: The Entry Point
* Other Commands:: Other Commands
* Scripts:: Linker Scripts
* Expressions:: Expressions
* MEMORY:: MEMORY Command
* SECTIONS:: SECTIONS Command
* Entry Point:: The Entry Point
* Other Commands:: Other Commands
Expressions
* Integers:: Integers
* Symbols:: Symbol Names
* Location Counter:: The Location Counter
* Operators:: Operators
* Evaluation:: Evaluation
* Assignment:: Assignment: Defining Symbols
* Built-ins:: Built-In Functions
* Integers:: Integers
* Symbols:: Symbol Names
* Location Counter:: The Location Counter
* Operators:: Operators
* Evaluation:: Evaluation
* Assignment:: Assignment: Defining Symbols
* Built-ins:: Built-In Functions
SECTIONS Command
* Section Definition:: Section Definitions
* Section Contents:: Section Contents
* Section Options:: Optional Section Attributes
* Section Definition:: Section Definitions
* Section Contents:: Section Contents
* Section Options:: Optional Section Attributes
Machine Dependent Features
* H8/300:: @code{gld} and the H8/300
* i960:: @code{gld} and the Intel 960 family
* m68k:: @code{gld} and the Motorola 68000 family
* m88k:: @code{gld} and the Motorola 880x0 family
@code{gld} and the Intel 960 family
* i960-arch:: Linking for a Specific i960 Architecture
* i960-emulation:: Emulating Other i960 Linkers
* i960-commands:: Command Language Extensions for i960
BFD
* BFD outline:: How it works: an outline of BFD
* BFD information loss:: Information Loss
* Mechanism:: Mechanism
* BFD outline:: How it works: an outline of BFD
* BFD information loss:: Information Loss
* Mechanism:: Mechanism
@end menu
@node Overview, Invocation, Top, Top
@ -163,8 +186,8 @@ you have many choices to control its behavior through the command line,
and through environment variables.
@menu
* Options:: Command Line Options
* Environment:: Environment Variables
* Options:: Command Line Options
* Environment:: Environment Variables
@end menu
@node Options, Environment, Invocation, Invocation
@ -181,13 +204,9 @@ gld [-o @var{output} ] @var{objfiles}@dots{}
[ -c @var{commandfile} ] [ -d | -dc | -dp ]
[ -defsym @var{symbol} = @var{expression} ]
[ -e @var{entry} ] [ -F ] [ -F @var{format} ]
@c -f was in old GNU linker, not currently in new
@c [ -f @var{fill} ]
[ -format @var{input-format} ] [ -g ] [ -i ]
[ -l@var{ar} ] [ -L@var{searchdir} ] [ -M | -m ]
[ -n ] [ -noinhibit-exec ] [ -R @var{filename} ]
@c -N and -z were alternatives to -n in old GNU linker, not curr in new
@c [ -N | -n | -z ] [ -noinhibit-exec ] [ -R @var{filename} ]
[ -n ] [ -noinhibit-exec ] [ -R @var{filename} ] [ -relax ]
[ -r | -Ur ] [ -S ] [ -s ] [ -T @var{commandfile} ]
[ -Ttext @var{textorg} ] [ -Tdata @var{dataorg} ] [ -Tbss @var{bssorg} ]
[ -t ] [ -u @var{sym}] [-v] [ -X ] [ -x ]
@ -243,36 +262,14 @@ The object files @var{objfiles} to be linked.
@item -A@var{architecture}
In the current release of @code{gld}, this option is useful only for the
Intel 960 family of architectures. In that @code{gld} configuration, the
@var{architecture} argument is one of the two-letter names identifying
members of the 960 family; the option specifies the desired output
target, and warns of any incompatible instructions in the input files.
It also modifies the linker's search strategy for archive libraries, to
support the use of libraries specific to each particular
architecture, by including in the search loop names suffixed with the
string identifying the architecture.
For example, if your @code{gld} command line included @w{@samp{-ACA}} as
well as @w{@samp{-ltry}}, the linker would look (in its built-in search
paths, and in any paths you specify with @code{-L}) for a library with
the names
@example
try
libtry.a
tryca
libtryca.a
@end example
@noindent
The first two possibilities would be considered in any event; the last
two are due to the use of @w{@samp{-ACA}}.
@var{architecture} argument identifies the particular architecture in
the 960 family, enabling some safeguards and modifying the
archive-library search path. @xref{i960-arch,,,Linking for a Specific
i960 Architecture}, for details.
Future releases of @code{gld} may support similar functionality for
other architecture families.
You can meaningfully use @code{-A} more than once on a command line, if
an architecture family allows combination of target architectures; each
use will add another pair of name variants to search for when @w{@code{-l}}
specifies a library.
@cindex binary input format
@kindex -b @var{format}
@cindex input format
@ -451,6 +448,21 @@ relocate it or include it in the output. This allows your output file
to refer symbolically to absolute locations of memory defined in other
programs.
@item -relax
@kindex -relax
@cindex synthesizing linker
@cindex relaxing addressing modes
An option with machine dependent effects. Currently this option is only
supported on the H8/300; see @ref{H8/300,,@code{gld} and the H8/300}.
On some platforms, use this option to perform global optimizations that
become possible when the linker resolves addressing in your program, such
as relaxing address modes and synthesizing new instructions in the
output object file.
On platforms where this is not supported, @samp{-relax} is accepted, but
has no effect.
@item -r
@cindex partial link
@cindex relocatable output
@ -570,9 +582,9 @@ See description of @code{-N}.
@node Environment, , Options, Invocation
@section Environment Variables
@code{gld} always consults two environment variables: @code{GNUTARGET}
and @code{LDEMULATION}. Depending on the setting of the latter, other
environment variables may be used as well.
You can condition the behavior of @code{gld} with two environment
variables: @code{GNUTARGET} and @code{LDEMULATION}. Depending on the
setting of the latter, other environment variables may be used as well.
@kindex GNUTARGET
@cindex default input format
@ -628,84 +640,13 @@ A variant of the @code{gld} emulation; only differs in specifically
setting the default BFD machine as @code{m68k}.
@item LDEMULATION=gld960
@kindex gld960
@kindex G960LIB
@kindex G960BASE
@cindex i960
Emulate the Intel port of the older @code{gld} for the i960
architectures. The default library search paths are taken from two
other environment variables, @code{G960LIB} and @code{G960BASE}. The
default architecture is @code{i960}. The default output format is set
to @code{b.out.big}, and in fact the default output file name (if
@code{-o} is not specified) is @code{b.out}, to reflect this variant
format, for this emulation.
@kindex GNU960
This emulation can behave slightly differently depending on the setting
of the @code{gld} compile-time switch @code{GNU960}. If @code{gld} is
compiled with @code{GNU960} defined, then an additional environment
variable---@code{GNUTARGET}---is available; its value, if available,
specifies some other default output format than @code{b.out.big}.
@itemx LDEMULATION=lnk960
Emulate older linkers for the i960 family; see @ref{i960,,@code{gld} and
the Intel 960 family}, for details.
@item LDEMULATION=gldm88kbcs
@kindex gldm88kbcs
@cindex m88k
Sets the output format to @code{m88kbcs} and the architecture to
@code{m88k}. Default library search paths are
@example
/lib
/usr/lib
/usr/local/lib
@end example
@item LDEMULATION=lnk960
@kindex lnk960
@cindex i960
@cindex Architectures, i960 family
Emulate the Intel linker @code{lnk960}. The default output format is
@code{coff-Intel-big}. With this emulation, @code{gld}
supports the additional script commands @code{HLL} and @code{SYSLIB} for
specification of library archives. This is the only emulation with
extensive support for the @code{-A} (architecture) command-line option.
By default, the architecture @code{CORE} is assumed, but you can choose
additional features from the i960 architecture family by using one of
the following with @code{-A} (or by using the @code{OUTPUT_ARCH} command
from a script):
@example
CORE
KB
SB
MC
XA
CA
KA
SA
@end example
The default libraries are chosen with some attention to the architecture
selected; the core library @file{cg} is always included, but the library
@code{fpg} is also used if you've specified any of the architectures
@code{KA}, @code{SA}, or @code{CA}.
@kindex GNU960
Like @code{gld960}, this emulation uses additional environment variables
to set the default library search paths. Also like @code{gld960}, the
behavior of this emulation is slightly different depending on whether
@code{gld} itself was compiled with @code{GNU960} defined.
@kindex G960BASE
@kindex G960LIB
@kindex I960BASE
If your @code{gld} was compiled with @code{GNU960} defined, the default
paths are taken from all three of @code{G960LIB}, @code{G960BASE}, and
@code{I960BASE}. For the first two, paths you supply are automatically
suffixed with @samp{/lib/libcoff}; for the last, your path is
automatically suffixed with @samp{/lib}.
If your @code{gld} was @emph{not} compiled with @code{GNU960} defined,
the default paths are taken from @code{I960BASE}, and @code{G960BASE} is
only consulted if @code{I960BASE} is undefined. In this case
@code{G960LIB} is not used at all.
Configure the linker for the Motorola 88K family.
@xref{m88k,,@code{gld} and the Motorola 880x0 family}, for details.
@item LDEMULATION=vanilla
@kindex vanilla
@ -716,10 +657,9 @@ This is the least specific setting for @code{gld}. You can set
setting makes @code{gld} take the default machine from the BFD
configuration on your system; @code{a.out-generic-big} is the default
target. No other defaults are specified.
@end table
@node Commands, BFD, Invocation, Top
@node Commands, Machine Dependent, Invocation, Top
@chapter Command Language
@cindex command files
@ -749,12 +689,12 @@ You can also include a script directly on the @code{gld} command line,
delimited by the characters @samp{@{} and @samp{@}}.
@menu
* Scripts:: Linker Scripts
* Expressions:: Expressions
* MEMORY:: MEMORY Command
* SECTIONS:: SECTIONS Command
* Entry Point:: The Entry Point
* Other Commands:: Other Commands
* Scripts:: Linker Scripts
* Expressions:: Expressions
* MEMORY:: MEMORY Command
* SECTIONS:: SECTIONS Command
* Entry Point:: The Entry Point
* Other Commands:: Other Commands
@end menu
@node Scripts, Expressions, Commands, Commands
@ -807,13 +747,13 @@ You may call special purpose built-in functions.
@end itemize
@menu
* Integers:: Integers
* Symbols:: Symbol Names
* Location Counter:: The Location Counter
* Operators:: Operators
* Evaluation:: Evaluation
* Assignment:: Assignment: Defining Symbols
* Built-ins:: Built-In Functions
* Integers:: Integers
* Symbols:: Symbol Names
* Location Counter:: The Location Counter
* Operators:: Operators
* Evaluation:: Evaluation
* Assignment:: Assignment: Defining Symbols
* Built-ins:: Built-In Functions
@end menu
@node Integers, Symbols, Expressions, Expressions
@ -1335,9 +1275,9 @@ for example, the order of sections in the output file will match the
order in the first input file.
@menu
* Section Definition:: Section Definitions
* Section Contents:: Section Contents
* Section Options:: Optional Section Attributes
* Section Definition:: Section Definitions
* Section Contents:: Section Contents
* Section Options:: Optional Section Attributes
@end menu
@node Section Definition, Section Contents, SECTIONS, SECTIONS
@ -1782,19 +1722,6 @@ This command has the same effect as the @code{-d} command-line option:
to make @code{ld} assign space to common symbols even if a relocatable
output file is specified (@code{-r}).
@item HLL ( @var{file}, @var{file}, @dots{} )
@kindex HLL ( @var{files} )
@itemx HLL ( @var{file} @var{file} @dots{} )
@itemx HLL ( )
Include ``high-level libraries'' or archives as input files in the link.
Using @code{HLL(@var{file}} in a linker script is equivalent to
including @code{-l}@var{file} on the command line.
@cindex @code{lnk960} command @code{HLL}
The @code{HLL} command is only supported when @code{gld} emulates
@code{lnk960}, as specified by the @code{LDEMULATION} environment
variable.
@item INPUT ( @var{file}, @var{file}, @dots{} )
@kindex INPUT ( @var{files} )
@itemx INPUT ( @var{file} @var{file} @dots{} )
@ -1852,17 +1779,6 @@ effect as @code{-L@var{path})} on the command line.
Ensure that @var{filename} is the first input file used in the link
process.
@item SYSLIB ( @var{file}, @var{file}, @dots{} )
@kindex SYSLIB ( @var{file}, @var{file}, @dots{} )
@itemx SYSLIB ( @var{file} @var{file} @dots{} )
Use the named @var{file}s as binary input files, searching for them in
the same list of paths as archives.
@cindex @code{lnk960} command @code{SYSLIB}
The @code{SYSLIB} command is only supported when @code{gld} emulates
@code{lnk960}, as specified by the @code{LDEMULATION} environment
variable.
@item TARGET ( @var{format} )
@cindex input file format
@kindex TARGET ( @var{format} )
@ -1882,7 +1798,225 @@ the default format configured for your machine in the BFD libraries.
@end table
@node BFD, Index, Commands, Top
@node Machine Dependent, BFD, Commands, Top
@chapter Machine Dependent Features
@cindex machine dependencies
@code{gld} has additional features on some platforms; the following
sections describe them. Machines where @code{gld} has no additional
functionality are not listed.
@menu
* H8/300:: @code{gld} and the H8/300
* i960:: @code{gld} and the Intel 960 family
* m68k:: @code{gld} and the Motorola 68000 family
* m88k:: @code{gld} and the Motorola 880x0 family
@end menu
@node H8/300, i960, Machine Dependent, Machine Dependent
@section @code{gld} and the H8/300
@cindex H8/300 support
For the H8/300, @code{gld} can perform these global optimizations when
you specify the @samp{-relax} command-line option.
@table @emph
@item relaxing address modes
@cindex relaxing on i960
@code{gld} finds all @code{jsr} and @code{jmp} instructions whose
targets are within eight bits, and turns them into eight-bit
program-counter relative @code{bsr} and @code{bra} instructions,
respectively.
@item synthesizing instructions
@cindex synthesizing on i960
@c FIXME: specifically mov.b, or any mov instructions really?
@code{gld} finds all @code{mov.b} instructions which use the
sixteen-bit absolute address form, but refer to the top
page of memory, and changes them to use the eight-bit address form.
(That is: the linker turns @samp{mov.b @code{@@}@var{aa}:16} into
@samp{mov.b @code{@@}@var{aa}:8} whenever the address @var{aa} is in the
top page of memory).
@end table
@node i960, m68k, H8/300, Machine Dependent
@section @code{gld} and the Intel 960 family
@cindex i960 support
@menu
* i960-arch:: Linking for a Specific i960 Architecture
* i960-emulation:: Emulating Other i960 Linkers
* i960-commands:: Command Language Extensions for i960
@end menu
@node i960-arch, i960-emulation, i960, i960
@subsection Linking for a Specific i960 Architecture
You can use the @samp{-A@var{architecture}} command line option to
specify one of the two-letter names identifying members of the 960
family; the option specifies the desired output target, and warns of any
incompatible instructions in the input files. It also modifies the
linker's search strategy for archive libraries, to support the use of
libraries specific to each particular architecture, by including in the
search loop names suffixed with the string identifying the architecture.
For example, if your @code{gld} command line included @w{@samp{-ACA}} as
well as @w{@samp{-ltry}}, the linker would look (in its built-in search
paths, and in any paths you specify with @code{-L}) for a library with
the names
@example
try
libtry.a
tryca
libtryca.a
@end example
@noindent
The first two possibilities would be considered in any event; the last
two are due to the use of @w{@samp{-ACA}}.
You can meaningfully use @code{-A} more than once on a command line, since
the 960 architecture family allows combination of target architectures; each
use will add another pair of name variants to search for when @w{@code{-l}}
specifies a library.
@node i960-emulation, i960-commands, i960-arch, i960
@subsection Emulating Other i960 Linkers
You can set the @code{LDEMULATION} environment variable
(@pxref{Environment,,Environment Variables}) to make
@code{gld} more compatible with two older Intel 960 linkers:
@table @code
@item LDEMULATION=gld960
@kindex gld960
@kindex G960LIB
@kindex G960BASE
@cindex i960
Emulate the Intel port of the older @code{gld} for the i960
architectures. The default library search paths are taken from two
other environment variables, @code{G960LIB} and @code{G960BASE}. The
default architecture is @code{i960}. The default output format is set
to @code{b.out.big}, and in fact the default output file name (if
@code{-o} is not specified) is @code{b.out}, to reflect this variant
format, for this emulation.
@kindex GNU960
This emulation can behave slightly differently depending on the setting
of the @code{gld} compile-time switch @code{GNU960}. If @code{gld} is
compiled with @code{GNU960} defined, then an additional environment
variable---@code{GNUTARGET}---is available; its value, if available,
specifies some other default output format than @code{b.out.big}.
@item LDEMULATION=lnk960
@kindex lnk960
@cindex i960
@cindex Architectures, i960 family
Emulate the Intel linker @code{lnk960}. The default output format is
@code{coff-Intel-big}. With this emulation, @code{gld}
supports the additional script commands @code{HLL} and @code{SYSLIB} for
specification of library archives. This is the only emulation with
extensive support for the @code{-A} (architecture) command-line option.
By default, the architecture @code{CORE} is assumed, but you can choose
additional features from the i960 architecture family by using one of
the following with @code{-A} (or by using the @code{OUTPUT_ARCH} command
from a script):
@example
CORE
KB
SB
MC
XA
CA
KA
SA
@end example
The default libraries are chosen with some attention to the architecture
selected; the core library @file{cg} is always included, but the library
@code{fpg} is also used if you've specified any of the architectures
@code{KA}, @code{SA}, or @code{CA}.
@kindex GNU960
Like @code{gld960}, this emulation uses additional environment variables
to set the default library search paths. Also like @code{gld960}, the
behavior of this emulation is slightly different depending on whether
@code{gld} itself was compiled with @code{GNU960} defined.
@kindex G960BASE
@kindex G960LIB
@kindex I960BASE
If your @code{gld} was compiled with @code{GNU960} defined, the default
paths are taken from all three of @code{G960LIB}, @code{G960BASE}, and
@code{I960BASE}. For the first two, paths you supply are automatically
suffixed with @samp{/lib/libcoff}; for the last, your path is
automatically suffixed with @samp{/lib}.
If your @code{gld} was @emph{not} compiled with @code{GNU960} defined,
the default paths are taken from @code{I960BASE}, and @code{G960BASE} is
only consulted if @code{I960BASE} is undefined. In this case
@code{G960LIB} is not used at all.
@end table
@node i960-commands, , i960-emulation, i960
@subsection Command Language Extensions for i960
@code{gld} understands the following additional commands when
@code{LDEMULATION} is set to @samp{lnk960}:
@table @code
@item HLL ( @var{file}, @var{file}, @dots{} )
@itemx HLL ( @var{file} @var{file} @dots{} )
@itemx HLL ( )
@kindex HLL ( @var{files} )
Include ``high-level libraries'' or archives as input files in the link.
Using @code{HLL(@var{file}} in a linker script is equivalent to
including @code{-l}@var{file} on the command line.
@cindex @code{lnk960} command @code{HLL}
The @code{HLL} command is only supported when @code{gld} emulates
@code{lnk960}, as specified by the @code{LDEMULATION} environment
variable.
@item SYSLIB ( @var{file}, @var{file}, @dots{} )
@itemx SYSLIB ( @var{file} @var{file} @dots{} )
@kindex SYSLIB ( @var{file}, @var{file}, @dots{} )
Use the named @var{file}s as binary input files, searching for them in
the same list of paths as archives.
@cindex @code{lnk960} command @code{SYSLIB}
The @code{SYSLIB} command is only supported when @code{gld} emulates
@code{lnk960}, as specified by the @code{LDEMULATION} environment
variable.
@end table
@node m68k, m88k, i960, Machine Dependent
@section @code{gld} and the Motorola 680x0 family
@cindex m68k support
You can set the environment variable @code{LDEMULATION} to @samp{gld68k}
for closer compatibility with the older GNU linker on Motorola 680x0
platforms. This emulation is a variant of the @code{gld} emulation; it
only differs in specifically setting the default BFD machine as
@code{m68k}. @xref{Environment,,Environment Variables}.
@node m88k, , m68k, Machine Dependent
@section @code{gld} and the Motorola 880x0 family
@cindex m88k support
@kindex gldm88kbcs
You can configure the linker to conform to the Motorola 88K BCS by
setting the environment variable @code{LDEMULATION} to @samp{gldm88kbcs}.
This sets the output format to @code{m88kbcs} and the architecture to
@code{m88k}. Default library search paths are
@example
/lib
/usr/lib
/usr/local/lib
@end example
For other settings of @code{LDEMULATION}, consult
@ref{Environment,,Environment Variables}.
@node BFD, Index, Machine Dependent, Top
@chapter BFD
@cindex back end
@ -1891,83 +2025,109 @@ The linker accesses object and archive files using the BFD libraries.
These libraries allow the linker to use the same routines to operate on
object files whatever the object file format. A different object file
format can be supported simply by creating a new BFD back end and adding
it to the library. BFD supports the following combinations of
architectures (row labels below) and object formats (column headings):
it to the library. You can use @code{objdump -i}
(@pxref{objdump,,objdump,binutils.info,The GNU Binary Utilities}) to
list all the formats available for each architecture under BFD. This
was the list of formats, and of architectures supported for each format,
as of the time this manual was prepared:
@cindex formats available
@cindex architectures available
@c TEXI2ROFF-KILL
@ifinfo
@c END TEXI2ROFF-KILL
@example
|ieee
| |oasys
| | |a.out-generic-little
| | | |a.out-generic-big
| | | | |m88kbcs
| | | | | |srec
| | | | | | |coff-Intel-little
| | | | | | | |coff-Intel-big
| | | | | | | | |b.out.little
| | | | | | | | | |b.out.big
| | | | | | | | | |
m68k|**|**| | | |**| | | |
vax|**|**| | | |**| | | |
i960|**|**| | | |**|**|**|**|**
a29k|**|**|**|**| |**| | | |
sparc|**|**|**|**| |**| | | |
mips|**|**| | | |**| | | |
i386|**|**|**|**| |**| | | |
ns32k|**|**| | | |**| | | |
tahoe|**|**| | | |**| | | |
i860|**|**| | | |**| | | |
romp|**|**| | | |**| | | |
alliant|**|**| | | |**| | | |
convex|**|**| | | |**| | | |
m88k|**|**| | |**|**| | | |
pyramid|**|**| | | |**| | | |
H8/300|**|**| | | |**| | | |
BFD header file version 0.18
a.out-i386
(header big endian, data big endian)
m68k:68020
a29k
sparc
i386
a.out-sunos-big
(header big endian, data big endian)
m68k:68020
a29k
sparc
i386
b.out.big
(header big endian, data little endian)
i960:core
b.out.little
(header little endian, data little endian)
i960:core
coff-a29k-big
(header big endian, data big endian)
a29k
coff-h8300
(header big endian, data big endian)
H8/300
coff-i386
(header little endian, data little endian)
i386
coff-Intel-big
(header big endian, data little endian)
i960:core
coff-Intel-little
(header little endian, data little endian)
i960:core
coff-m68k
(header big endian, data big endian)
m68k:68020
coff-m88kbcs
(header big endian, data big endian)
m88k:88100
ecoff-bigmips
(header big endian, data big endian)
mips
ecoff-littlemips
(header little endian, data little endian)
mips
elf-big
(header big endian, data big endian)
m68k:68020
vax
i960:core
a29k
sparc
mips
i386
m88k:88100
H8/300
rs6000:6000
elf-little
(header little endian, data little endian)
m68k:68020
vax
i960:core
a29k
sparc
mips
i386
m88k:88100
H8/300
rs6000:6000
ieee
(header big endian, data big endian)
m68k:68020
vax
i960:core
a29k
sparc
mips
i386
m88k:88100
H8/300
rs6000:6000
srec
(header big endian, data big endian)
m68k:68020
vax
i960:core
a29k
sparc
mips
i386
m88k:88100
H8/300
rs6000:6000
@end example
@c TEXI2ROFF-KILL
@end ifinfo
@tex
\def\sqbull{\vrule height12pt width 10pt depth 4pt}
\vskip\baselineskip
\vbox{\offinterlineskip
\halign
{\strut\hfil #\ &\vrule#&\hskip .5em #\hskip .5em &\vrule#&\hskip .5em #\hskip .5em
&\vrule#&\hskip .5em #\hskip .5em &\vrule#&\hskip .5em #\hskip .5em &\vrule#&\hskip .5em #\hskip .5em &\vrule#&\hskip .5em #\hskip .5em &\vrule#&\hskip .5em #\hskip .5em &\vrule#&\hskip .5em #\hskip .5em &\vrule#&\hskip .5em #\hskip .5em &\vrule#&\hskip .5em #\hskip .5em &\vrule#\cr
&&\multispan{20}\quad\vbox{\hrule}\cr
&&\multispan{20}\quad\code{ieee}\hfil\cr
&& &&\multispan{18}\quad\code{oasys}\hfil\cr
&& && &&\multispan{16}\quad\code{a.out-generic-little}\hfil\cr
&& && && &&\multispan{14}\quad\code{a.out-generic-big}\hfil\cr
&& && && && &&\multispan{12}\quad\code{m88kbcs}\hfil\cr
&& && && && && &&\multispan{10}\quad\code{srec}\hfil\cr
&& && && && && && &&\multispan8\quad\code{coff-Intel-little}\hfil\cr
&& && && && && && && &&\multispan6\quad\code{coff-Intel-big}\hfil\cr
&& && && && && && && &&
&&\multispan4\quad\code{b.out.little}\hfil \cr
&& && && && && && && && && &&\multispan2\quad\code{b.out.big}\hidewidth\cr
\code{m68k}&&\sqbull&&\sqbull&& && && &&\sqbull&& && && && &\cr
\code{vax}&&\sqbull&&\sqbull&& && && &&\sqbull&& && && && &\cr
\code{i960}&&\sqbull&&\sqbull&& && && &&\sqbull&&\sqbull&&\sqbull&&\sqbull&&\sqbull &\cr
\code{a29k}&&\sqbull&&\sqbull&&\sqbull&&\sqbull&& &&\sqbull&& && && && &\cr
\code{sparc}&&\sqbull&&\sqbull&&\sqbull&&\sqbull&& &&\sqbull&& && && && &\cr
\code{mips}&&\sqbull&&\sqbull&& && && &&\sqbull&& && && && &\cr
\code{i386}&&\sqbull&&\sqbull&&\sqbull&&\sqbull&& &&\sqbull&& && && && &\cr
\code{ns32k}&&\sqbull&&\sqbull&& && && &&\sqbull&& && && && &\cr
\code{tahoe}&&\sqbull&&\sqbull&& && && &&\sqbull&& && && && &\cr
\code{i860}&&\sqbull&&\sqbull&& && && &&\sqbull&& && && && &\cr
\code{romp}&&\sqbull&&\sqbull&& && && &&\sqbull&& && && && &\cr
\code{alliant}&&\sqbull&&\sqbull&& && && &&\sqbull&& && && && &\cr
\code{convex}&&\sqbull&&\sqbull&& && && &&\sqbull&& && && && &\cr
\code{m88k}&&\sqbull&&\sqbull&& && &&\sqbull&&\sqbull&& && && && &\cr
\code{pyramid}&&\sqbull&&\sqbull&& && && &&\sqbull&& && && && &\cr
\code{H8/300}&&\sqbull&&\sqbull&& && && &&\sqbull&& && && && &\cr
}}
@end tex
@c END TEXI2ROFF-KILL
@cindex BFD requirements
@cindex requirements for BFD
@ -1985,9 +2145,9 @@ useful information can be lost using the BFD mechanism; during
conversion and during output. @xref{BFD information loss}.
@menu
* BFD outline:: How it works: an outline of BFD
* BFD information loss:: Information Loss
* Mechanism:: Mechanism
* BFD outline:: How it works: an outline of BFD
* BFD information loss:: Information Loss
* Mechanism:: Mechanism
@end menu
@node BFD outline, BFD information loss, BFD, BFD
@ -2121,6 +2281,7 @@ A relocation record requesting this relocation type would point
indirectly to a routine to perform this, so the relocation may be
performed on a byte being written to a COFF file, even though 68k COFF
has no such relocation type.
@c FIXME why specific reference to 68K above?
@item line numbers
Object formats can contain, for debugging purposes, some form of mapping