@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.
@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
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
[ -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 ]
@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
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
@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
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
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
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
@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
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
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{} )
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} )
@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
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
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
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