diff options
author | Ian Lance Taylor <ian@airs.com> | 1994-10-18 19:20:58 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1994-10-18 19:20:58 +0000 |
commit | 67f67ed998bb2be381c9eba2eafcbbdaaf2527d6 (patch) | |
tree | 1d29c206e11c157889705778510100525b335c8c /binutils | |
parent | c768bd3f2da5eaa0a1a458a3104670da1c0d531f (diff) | |
download | gdb-67f67ed998bb2be381c9eba2eafcbbdaaf2527d6.zip gdb-67f67ed998bb2be381c9eba2eafcbbdaaf2527d6.tar.gz gdb-67f67ed998bb2be381c9eba2eafcbbdaaf2527d6.tar.bz2 |
* 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.
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/ChangeLog | 8 | ||||
-rw-r--r-- | binutils/binutils.texi | 20 | ||||
-rw-r--r-- | binutils/objcopy.1 | 32 | ||||
-rw-r--r-- | binutils/objcopy.c | 10 |
4 files changed, 67 insertions, 3 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 7c89df8..5300fbb 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -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. diff --git a/binutils/binutils.texi b/binutils/binutils.texi index daa1777..5e2f2c7 100644 --- a/binutils/binutils.texi +++ b/binutils/binutils.texi @@ -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 diff --git a/binutils/objcopy.1 b/binutils/objcopy.1 index 365c11a..ca863ff 100644 --- a/binutils/objcopy.1 +++ b/binutils/objcopy.1 @@ -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 diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 70d118e..eff90c5 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -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) |