From 0aca460e7c11225478d0ec4b962f204f0e91857a Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 11 Aug 1994 19:00:26 +0000 Subject: [PATCH] Add support for removing named sections to objcopy and strip. * objcopy.c (struct section_list): Define. (remove_sections): New static variable. (strip_options, copy_options): Add remove-section. (copy_usage, strip_usage): Mention -R and --remove-section. (setup_section): If section is in remove_sections list, ignore it. (copy_section): Likewise. (strip_main, copy_main): Handle -R. * binutils.texi, objcopy.1, strip.1: Document new options. --- binutils/ChangeLog | 12 ++++++++++++ binutils/binutils.texi | 14 ++++++++++++++ binutils/objcopy.1 | 6 ++++++ binutils/strip.1 | 18 +++++++++++++++--- 4 files changed, 47 insertions(+), 3 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 899c1c32cfb..a3a1677d0c0 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,15 @@ +Thu Aug 11 14:55:57 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + Add support for removing named sections to objcopy and strip. + * objcopy.c (struct section_list): Define. + (remove_sections): New static variable. + (strip_options, copy_options): Add remove-section. + (copy_usage, strip_usage): Mention -R and --remove-section. + (setup_section): If section is in remove_sections list, ignore it. + (copy_section): Likewise. + (strip_main, copy_main): Handle -R. + * binutils.texi, objcopy.1, strip.1: Document new options. + Wed Aug 10 10:19:55 1994 Stan Shebs (shebs@andros.cygnus.com) * nlmconv.c (powerpc_mangle_relocs): Rename symvalue to sym_value, diff --git a/binutils/binutils.texi b/binutils/binutils.texi index 77f2e2fbc67..aeb67fbc572 100644 --- a/binutils/binutils.texi +++ b/binutils/binutils.texi @@ -741,6 +741,7 @@ objcopy [ -F @var{bfdname} | --target=@var{bfdname} ] [ -x | --discard-all ] [ -X | --discard-locals ] [ -b @var{byte} | --byte=@var{byte} ] [ -i @var{interleave} | --interleave=@var{interleave} ] + [ -R @var{sectionname} | --remove-section=@var{sectionname} ] [ -v | --verbose ] [ -V | --version ] [ --help ] @var{infile} [@var{outfile}] @end smallexample @@ -781,6 +782,12 @@ Use @var{bfdname} as the object format for both the input and the output file; i.e., simply transfer data from source to destination with no translation. @xref{Target Selection}, for more information. +@item -R @var{sectionname} +@itemx --remove-section=@var{sectionname} +Remove any section named @var{sectionname} from the output file. This +option may be given more than once. Note that using this option +inappropriately may make the output file unusable. + @item -S @itemx --strip-all Do not copy relocation and symbol information from the source file. @@ -1208,6 +1215,7 @@ strip [ -F @var{bfdname} | --target=@var{bfdname} | --target=@var{bfdname} ] [ -O @var{bfdname} | --output-target=@var{bfdname} ] [ -s | --strip-all ] [ -S | -g | --strip-debug ] [ -x | --discard-all ] [ -X | --discard-locals ] + [ -R @var{sectionname} | --remove-section=@var{sectionname} ] [ -v | --verbose ] [ -V | --version ] [ --help ] @var{objfile}@dots{} @end smallexample @@ -1240,6 +1248,12 @@ code format @var{bfdname}. Replace @var{objfile} with a file in the output format @var{bfdname}. @xref{Target Selection}, for more information. +@item -R @var{sectionname} +@itemx --remove-section=@var{sectionname} +Remove any section named @var{sectionname} from the output file. This +option may be given more than once. Note that using this option +inappropriately may make the output file unusable. + @item -s @itemx --strip-all Remove all symbols. diff --git a/binutils/objcopy.1 b/binutils/objcopy.1 index 4ba11646d72..78877e63603 100644 --- a/binutils/objcopy.1 +++ b/binutils/objcopy.1 @@ -18,6 +18,7 @@ objcopy \- copy and translate object files .RB "[\|" \-F\ \fIbfdname\fB\ |\ \-\-target=\fIbfdname\fR "\|]" .RB "[\|" \-I\ \fIbfdname\fB\ |\ \-\-input\-target=\fIbfdname\fR "\|]" .RB "[\|" \-O\ \fIbfdname\fB\ |\ \-\-output\-target=\fIbfdname\fR "\|]" +.RB "[\|" \-R\ \fIsectionname\fB\ |\ \-\-remove\-section=\fIsectionname\fR "\|]" .RB "[\|" \-S\ |\ \-\-strip\-all\fR "\|]" .RB "[\|" \-g\ |\ \-\-strip\-debug\fR "\|]" .RB "[\|" \-x\ |\ \-\-discard\-all\fR "\|]" @@ -74,6 +75,11 @@ Use as the object format for both the input and the output file; i.e. simply transfer data from source to destination with no translation. .TP +.B \-R \fIsectionname\fR, \fB\-\-remove-section=\fIsectionname +Remove the named section from the file. This option may be given more +than once. Note that using this option inappropriately may make the +output file unusable. +.TP .B \-S\fR, \fB\-\-strip\-all Do not copy relocation and symbol information from the source file. .TP diff --git a/binutils/strip.1 b/binutils/strip.1 index 2854304ee3c..5373b9f84b3 100644 --- a/binutils/strip.1 +++ b/binutils/strip.1 @@ -11,10 +11,14 @@ strip \- Discard symbols from object files. .SH SYNOPSIS +.hy 0 +.na +.TP .B strip -.RB "[\|" "\-F \fIbfdname\fP" | \-\-target=\fIbfdname\fP "\|]" -.RB "[\|" "\-I \fIbfdname\fP" | \-\-input\-target=\fIbfdname\fP "\|]" -.RB "[\|" "\-O \fIbfdname\fP" | \-\-output\-target=\fIbfdname\fP "\|]" +.RB "[\|" \-F \fIbfdname\fP\ |\ \-\-target=\fIbfdname\fP "\|]" +.RB "[\|" \-I \fIbfdname\fP\ |\ \-\-input\-target=\fIbfdname\fP "\|]" +.RB "[\|" \-O \fIbfdname\fP\ |\ \-\-output\-target=\fIbfdname\fP "\|]" +.RB "[\|" \-R \fIsectionname\fP\ |\ \-\-remove\-section=\fIsectionname\fP "\|]" .RB "[\|" \-s | \-\-strip\-all "\|]" .RB "[\|" \-S | -g | \-\-strip\-debug "\|]" .RB "[\|" \-x | \-\-discard\-all "\|]" @@ -65,6 +69,14 @@ code format \fIbfdname\fP. .B "\-\-output\-target=\fIbfdname" Replace \fIobjfile\fP with a file in the output format \fIbfdname\fP. +.TP +.B "\-R \fIsectionname\fP" +.TP +.B "\-\-remove\-section=\fIsectionname" +Remove the named section from the file. This option may be given more +than once. Note that using this option inappropriately may make the +object file unusable. + .TP .B \-s .TP -- 2.30.2