* objcopy.c (copy_object): If the output file format is `binary',

and the start address was not set using --set-start, default the
	start address to zero.  This hack is because the `binary' output
	file format uses the start address to set the virtual address of
	the first byte in the file.
	* binutils.texi, objcopy.1: Add some notes on generating S-records
	and binary files.
This commit is contained in:
Ian Lance Taylor 1994-10-18 19:20:58 +00:00
parent c768bd3f2d
commit 67f67ed998
4 changed files with 67 additions and 3 deletions

View File

@ -1,5 +1,13 @@
Tue Oct 18 11:12:01 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
* objcopy.c (copy_object): If the output file format is `binary',
and the start address was not set using --set-start, default the
start address to zero. This hack is because the `binary' output
file format uses the start address to set the virtual address of
the first byte in the file.
* binutils.texi, objcopy.1: Add some notes on generating S-records
and binary files.
* nm.c (print_symdef_entry): Call print_symname to print the
symbol name, so that --demangle works.

View File

@ -767,6 +767,22 @@ translation work; it has access to all the formats described in @sc{bfd}
and thus is able to recognize most formats without being told
explicitly. @xref{BFD,,BFD,ld.info,Using LD}.
@code{objcopy} can be used to generate S-records by using an output
target of @samp{srec} (e.g., use @samp{-O srec}).
@code{objcopy} can be used to generate a raw binary file by using an
output target of @samp{binary} (e.g., use @samp{-O binary}). When
@code{objcopy} generates a raw binary file, it will essentially produce
a memory dump of the contents of the input object file. All symbols and
relocation information will be discarded. By default, the memory dump
will start at virtual address zero; the @samp{--set-start} option may be
used to specify a different starting point.
When generating an S-record or a raw binary file, it may be helpful to
use @samp{-S} to remove sections containing debugging information. In
some cases @samp{-R} will be useful to remove sections which contain
information which is not needed by the binary file.
@table @code
@item @var{infile}
@itemx @var{outfile}
@ -833,7 +849,9 @@ copy with the @var{-b} or @samp{--byte} option. The default is 4.
@item --set-start @var{val}
Set the address of the new file to @var{val}. Not all object file
formats support setting the start address.
formats support setting the start address. When using the @samp{binary}
output file format, the start address sets the virtual address of the
first byte in the binary output file.
@item --adjust-start @var{incr}
Adjust the start address by adding @var{incr}. Not all object file

View File

@ -55,6 +55,34 @@ uses BFD to do all its translation work; it knows about all the
formats BFD knows about, and thus is able to recognize most formats
without being told explicitly.
.PP
.B objcopy
can be used to generate S-records by using an output target of
.B srec
(e.g., use
.B -O srec).
.PP
.B objcopy
can be used to generate a raw binary file by using an output target of
.B binary
(e.g., use
.B -O binary).
When
.B objcopy
generates a raw binary file, it will essentially produce a memory dump
of the contents of the input object file. All symbols and relocation
information will be discarded. By default, the memory dump will start
at virtual address zero; the
.B --set-start
option may be used to specify a different starting point.
.PP
When generating an S-record or a raw binary file, it may be helpful to
use
.B -S
to remove sections containing debugging information. In some cases
.B -R
will be useful to remove sections which contain information which is
not needed by the binary file.
.PP
.I infile
and
.I outfile
@ -112,7 +140,9 @@ The interleave is ignored if neither \fB\-b\fP nor \fB\-\-byte\fP is given.
.TP
.B \fB\-\-set\-start=\fIval
Set the start address of the new file to \fIval\fP. Not all object
file formats support setting the start address.
file formats support setting the start address. When using the
\fBbinary\fP output file format, the start address sets the virtual
address of the first byte in the binary output file.
.TP
.B \fB\-\-adjust\-start=\fIincr
Adjust the start address by adding \fIincr\fP. Not all object file

View File

@ -316,7 +316,15 @@ copy_object (ibfd, obfd)
if (set_start_set)
start = set_start;
else
start = bfd_get_start_address (ibfd);
{
/* As a special hack make it easier to generate a raw binary
file, we default the starting address to zero for the binary
output format. */
if (strcmp (bfd_get_target (obfd), "binary") == 0)
start = 0;
else
start = bfd_get_start_address (ibfd);
}
start += adjust_start;
if (!bfd_set_start_address (obfd, start)