Merge r3778 and r3779 from ELFToolchain.

Modify strip(1) to not accept multiple input files when an output
file is specified.  There is no good way to handle this combination,
and the change is compatible with binutils.

MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Mark Johnston 2019-07-29 22:07:43 +00:00
parent 98549e2dc6
commit 36d7818975
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=350432
2 changed files with 19 additions and 4 deletions

View File

@ -1187,6 +1187,12 @@ strip_main(struct elfcopy *ecp, int argc, char **argv)
ecp->strip = STRIP_ALL;
if (optind == argc)
strip_usage();
/*
* Only accept a single input file if an output file had been
* specified.
*/
if (outfile != NULL && argc != (optind + 1))
strip_usage();
for (i = optind; i < argc; i++)
create_file(ecp, argv[i], outfile);

View File

@ -23,7 +23,7 @@
.\"
.\" $Id: strip.1 3642 2018-10-14 14:24:28Z jkoshy $
.\"
.Dd September 17, 2011
.Dd July 27, 2019
.Dt STRIP 1
.Os
.Sh NAME
@ -51,7 +51,15 @@
.Sh DESCRIPTION
The
.Nm
utility is used to discard information from ELF objects.
utility is used to discard information from the ELF objects
specified by the arguments
.Ar .
.Pp
If an explicit output file name is not specified using the
.Fl o
option, the
.Nm
utility will modify its input arguments in-place.
.Pp
The
.Nm
@ -65,8 +73,9 @@ Print a help message and exit.
Remove all content except that which would be used for debugging.
.It Fl o Ar outputfile | Fl -output-file= Ns Ar outputfile
Write the stripped object to file
.Ar outputfile .
The default behaviour is to modify objects in place.
.Ar outputfile
instead of modifying the input in-place.
Only a single input object should be specified if this option is used.
.It Fl p | Fl -preserve-dates
Preserve the object's access and modification times.
.It Fl s | Fl -strip-all