[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
strip [`-F' bfdname |`--target='bfdname] [`-I' bfdname |`--input-target='bfdname] [`-O' bfdname |`--output-target='bfdname] [`-s'|`--strip-all'] [`-S'|`-g'|`-d'|`--strip-debug'] [`--strip-dwo'] [`-K' symbolname |`--keep-symbol='symbolname] [`-N' symbolname |`--strip-symbol='symbolname] [`-w'|`--wildcard'] [`-x'|`--discard-all'] [`-X' |`--discard-locals'] [`-R' sectionname |`--remove-section='sectionname] [`-o' file] [`-p'|`--preserve-dates'] [`-D'|`--enable-deterministic-archives'] [`-U'|`--disable-deterministic-archives'] [`--keep-file-symbols'] [`--only-keep-debug'] [`-v' |`--verbose'] [`-V'|`--version'] [`--help'] [`--info'] objfile... |
GNU strip
discards all symbols from object files
objfile. The list of object files may include archives.
At least one object file must be given.
strip
modifies the files named in its argument,
rather than writing modified copies under different names.
-F bfdname
--target=bfdname
--help
strip
and exit.
--info
-I bfdname
--input-target=bfdname
-O bfdname
--output-target=bfdname
-R sectionname
--remove-section=sectionname
-s
--strip-all
-g
-S
-d
--strip-debug
--strip-dwo
objcopy
section
for more information.
--strip-unneeded
-K symbolname
--keep-symbol=symbolname
-N symbolname
--strip-symbol=symbolname
-o file
-p
--preserve-dates
-D
--enable-deterministic-archives
If `binutils' was configured with `--enable-deterministic-archives', then this mode is on by default. It can be disabled with the `-U' option, below.
-U
--disable-deterministic-archives
This is the default unless `binutils' was configured with `--enable-deterministic-archives'.
-w
--wildcard
-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
-X
--discard-locals
--keep-file-symbols
--only-keep-debug
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:
foo
then...
objcopy --only-keep-debug foo foo.dbg
to
create a file containing the debugging info.
objcopy --strip-debug foo
to create a
stripped executable.
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:
foo
to foo.full
strip --strip-debug foo
objcopy --add-gnu-debuglink=foo.full foo
i.e., 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.
Note--this switch is only intended for use on fully linked files. It does not make sense to use it on object files where the debugging information may be incomplete. Besides the gnu_debuglink feature currently only supports the presence of one filename containing debugging information, not multiple filenames on a one-per-object-file basis.
-V
--version
strip
.
-v
--verbose
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |