-F bfdname
--target=bfdname |
Treat the original objfile as a
file with the object code format bfdname, and rewrite it in
the same format. |
| --help |
Show a summary of the options to
strip and exit. |
| --info |
Display a list showing all
architectures and object formats available. |
-I bfdname
--input-target=bfdname |
Treat the original objfile as a
file with the object code format bfdname. |
-O bfdname
--output-target=bfdname |
Replace objfile with a file in
the output format bfdname. |
-R sectionname
--remove-section=sectionname |
Remove any section named
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. |
-s
--strip-all |
Remove all symbols. |
| --strip-debug |
Remove debugging symbols only. |
| --strip-unneeded |
Remove all symbols that are not
needed for relocation processing. |
-K symbolname
--keep-symbol=symbolname |
Keep only symbol symbolname from
the source file. This option may be given more than once. |
-N symbolname
--strip-symbol=symbolname |
Remove symbol symbolname from
the source file. This option may be given more than once,
and may be combined with strip options other than -K. |
| -o file |
Put the stripped output in file,
rather than replacing the existing file. When this argument
is used, only one obj-file argument may be specified. |
-p
--preserve-dates |
Preserve the access and
modification dates of the file. |
-w
--wildcard |
Permit regular expressions in
symbolnames used in other command line options. The question
mark (?), asterisk (*), backslash (\) and square brackets
([]) operators can be used anywhere in the symbol name. If
the first character of the symbol name is the exclamation
point (!) then the sense of the switch is reversed for that
symbol. For example: -w -K !foo -K fo*
would cause strip to only keep symbols that start with
the letters ``fo'', but to discard the symbol ``foo''. |
-x
--discard-all |
Remove non-global symbols. |
-X
--discard-locals |
Remove compiler-generated local
symbols. (These usually start with L or ..) |
| --only-keep-debug |
Strip a file, removing any
sections that would be stripped by --strip-debug and leaving
the debugging sections. The intention is that this option
will be used in conjunction with --add-gnu-debuglink to
create a two part executable. One a stripped binary which
will occupy less space in RAM and in a distribution and the
second a debugging information file which is only needed if
debugging abilities are required. The suggested procedure to
create these files is as follows:
1.<Link the executable as normal. Assuming that is is
called> "foo" then...
1.<Run "objcopy --only-keep-debug foo foo.dbg" to> create
a file containing the debugging info.
1.<Run "objcopy --strip-debug foo" to create a> stripped
executable.
1.<Run "objcopy --add-gnu-debuglink=foo.dbg foo"> to add
a link to the debugging info into the stripped executable.
Note - the choice of ".dbg" as an extension for the debug
info file is arbitrary. Also the "--only-keep-debug" step is
optional. You could instead do this:
1.<Link the executable as normal.>
1.<Copy "foo" to "foo.full">
1.<Run "strip --strip-debug foo">
1.<Run "objcopy --add-gnu-debuglink=foo.full foo">
ie the file pointed to by the --add-gnu-debuglink can be
the full executable. It does not have to be a file created
by the --only-keep-debug switch. |
-V
--version |
Show the version number for
strip. |
-v
--verbose |
Verbose output: list all object
files modified. In the case of archives, strip -v lists all
members of the archive. |
The above example would strip out symbols and
line numbers from the a.out object file.