This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: binutils-2.11.2 strip -s wierdness
- To: Magnus Damm <damm at opensource dot se>
- Subject: Re: binutils-2.11.2 strip -s wierdness
- From: Manfred Hollstein <manfred dot h at gmx dot net>
- Date: Wed, 12 Sep 2001 17:08:11 +0200
- CC: binutils at sources dot redhat dot com, bug-binutils at gnu dot org
- References: <3B9F6275.2955B2FD@opensource.se>
- Reply-To: manfred dot h at gmx dot net
Magnus Damm wrote:
>
> Hi folks,
>
> I've used binutils-2.10 for quite some time,
> and now I've upgraded to 2.11.2.
>
> I have one wierd problem to report.
>
> "strip -s" works fine with 2.10, but fails with 2.11.2.
> "strip --strip-all" seems to work though.
>
> Either "strip --help" gives wrong information about -s, or
> strip acts wierd.
This behaviour is caused by the merge of the objcopy and the strip
program which had happened between 2.10 and 2.11.x. It also caused
another failure when invoking strip as follows:
$ strip -o a.stripped a.out
Usage: strip <switches> in-file(s)
The switches are:
...
Both problems are fixed by the attached patch; can someone with
write permission please install it in the branch?
TIA, cheers.
l8er
manfred
>
> I've cross-compiled binutils for a ppc-linux.
>
> Please CC me - I'm not on this list.
>
> Thanks /
>
> Magnus
>
> damm@sepang:~/scdb/scdb_20010907x/root/scl-0.01/mpc8xx/xxx/bin$
> ../../install/host/usr/bin/ppc-linux-strip -s busybox
> Usage: ../../install/host/usr/bin/ppc-linux-strip <switches> in-file(s)
> The switches are:
> -I --input-target <bfdname> Assume input file is in format
> <bfdname>
> -O --output-target <bfdname> Create an output file in format
> <bfdname>
> -F --target <bfdname> Set both input and output format to
> <bfdname>
> -p --preserve-dates Copy modified/access timestamps to
> the output
> -R --remove-section <name> Remove section <name> from the output
> -s --strip-all Remove all symbol and relocation
> information
> -g -S --strip-debug Remove all debugging symbols
> --strip-unneeded Remove all symbols not needed by
> relocations
> -N --strip-symbol <name> Do not copy symbol <name>
> -K --keep-symbol <name> Only copy symbol <name>
> -x --discard-all Remove all non-global symbols
> -X --discard-locals Remove any compiler-generated symbols
> -v --verbose List all object files modified
> -V --version Display this program's version number
> -h --help Display this output
> -o <file> Place stripped output into <file>
> ../../install/host/usr/bin/ppc-linux-strip: supported targets:
> elf32-powerpc aixcoff-rs6000 elf32-powerpcle ppcboot elf32-little
> elf32-big srec symbolsrec tekhex binary ihex
> damm@sepang:~/scdb/scdb_20010907x/root/scl-0.01/mpc8xx/xxx/bin$
> ../../install/host/usr/bin/ppc-linux-strip --strip-all busybox
> damm@sepang:~/scdb/scdb_20010907x/root/scl-0.01/mpc8xx/xxx/bin$
2001-09-12 Manfred Hollstein <manfredh@redhat.com>
* objcopy.c (strip_main): -s/--strip-all option doesn't take an
argument.
2001-07-25 Manfred Hollstein <manfredh@redhat.com>
* objcopy.c (strip_options): Add entry for the --output-file
command line flag.
(strip_main): Add entry for -o/--output-file argument.
diff -rup -x CVS -x RCS -x *.o -x *.info* -x *.html* -x *.elc -x *.dvi -x *.orig -x *~ -x version.el binutils-2.11.2.orig/binutils/objcopy.c binutils-2.11.2/binutils/objcopy.c
--- binutils-2.11.2.orig/binutils/objcopy.c Thu Jun 7 05:12:27 2001
+++ binutils-2.11.2/binutils/objcopy.c Wed Sep 12 16:47:28 2001
@@ -238,6 +238,7 @@ static struct option strip_options[] =
{"input-format", required_argument, 0, 'I'}, /* Obsolete */
{"input-target", required_argument, 0, 'I'},
{"keep-symbol", required_argument, 0, 'K'},
+ {"output-file", required_argument, 0, 'o'},
{"output-format", required_argument, 0, 'O'}, /* Obsolete */
{"output-target", required_argument, 0, 'O'},
{"preserve-dates", no_argument, 0, 'p'},
@@ -1835,7 +1836,7 @@ strip_main (argc, argv)
struct section_list *p;
char *output_file = NULL;
- while ((c = getopt_long (argc, argv, "b:i:I:j:K:N:s:O:d:F:L:G:R:SpgxXVvW:",
+ while ((c = getopt_long (argc, argv, "b:i:I:j:K:N:o:O:d:F:L:G:R:sSpgxXVvW:",
strip_options, (int *) 0)) != EOF)
{
switch (c)