diff options
author | csgr <csgr@FreeBSD.org> | 1994-09-03 12:58:05 +0000 |
---|---|---|
committer | csgr <csgr@FreeBSD.org> | 1994-09-03 12:58:05 +0000 |
commit | 32502c48aad8341b13992889ed583c961971d8df (patch) | |
tree | b638720b37859f97d4f9c1a5075ba748059a918c /usr.bin/strip | |
parent | 2e1d38a646c7164135183d8142b880bd62d7946e (diff) | |
download | FreeBSD-src-32502c48aad8341b13992889ed583c961971d8df.zip FreeBSD-src-32502c48aad8341b13992889ed583c961971d8df.tar.gz |
- Bring in -x option changes from 1.x
- eval -> err_val : slightly more meaningful (eval is what you do in Linda ;-))
Submitted by: Geoff.
Diffstat (limited to 'usr.bin/strip')
-rw-r--r-- | usr.bin/strip/strip.1 | 3 | ||||
-rw-r--r-- | usr.bin/strip/strip.1aout | 3 | ||||
-rw-r--r-- | usr.bin/strip/strip.c | 25 |
3 files changed, 25 insertions, 6 deletions
diff --git a/usr.bin/strip/strip.1 b/usr.bin/strip/strip.1 index b131004..f7af486 100644 --- a/usr.bin/strip/strip.1 +++ b/usr.bin/strip/strip.1 @@ -40,6 +40,7 @@ .Sh SYNOPSIS .Nm strip .Op Fl d +.Op Fl x .Ar file ... .Sh DESCRIPTION The @@ -54,6 +55,8 @@ The options are as follows: .Bl -tag -width Ds .It Fl d Delete only debugging and empty symbols. +.It Fl x +Delete only debugging, compiler identification, and local symbols. .El .Pp .Nm Strip diff --git a/usr.bin/strip/strip.1aout b/usr.bin/strip/strip.1aout index b131004..f7af486 100644 --- a/usr.bin/strip/strip.1aout +++ b/usr.bin/strip/strip.1aout @@ -40,6 +40,7 @@ .Sh SYNOPSIS .Nm strip .Op Fl d +.Op Fl x .Ar file ... .Sh DESCRIPTION The @@ -54,6 +55,8 @@ The options are as follows: .Bl -tag -width Ds .It Fl d Delete only debugging and empty symbols. +.It Fl x +Delete only debugging, compiler identification, and local symbols. .El .Pp .Nm Strip diff --git a/usr.bin/strip/strip.c b/usr.bin/strip/strip.c index 9de05f7..06b0134 100644 --- a/usr.bin/strip/strip.c +++ b/usr.bin/strip/strip.c @@ -38,7 +38,8 @@ static char copyright[] = #endif /* not lint */ #ifndef lint -static char sccsid[] = "@(#)strip.c 8.1 (Berkeley) 6/6/93"; +/*static char sccsid[] = "@(#)strip.c 8.1 (Berkeley) 6/6/93";*/ +static char RCSid[] = "$Id$"; #endif /* not lint */ #include <sys/types.h> @@ -64,7 +65,8 @@ void s_stab __P((const char *, int, EXEC *)); void s_sym __P((const char *, int, EXEC *)); void usage __P((void)); -int eval; +int xflag = 0; +int err_val = 0; int main(argc, argv) @@ -78,8 +80,11 @@ main(argc, argv) char *fn; sfcn = s_sym; - while ((ch = getopt(argc, argv, "d")) != EOF) + while ((ch = getopt(argc, argv, "dx")) != EOF) switch(ch) { + case 'x': + xflag = 1; + /*FALLTHROUGH*/ case 'd': sfcn = s_stab; break; @@ -90,7 +95,7 @@ main(argc, argv) argc -= optind; argv += optind; - while (fn = *argv++) { + while ((fn = *argv++)) { if ((fd = open(fn, O_RDWR)) < 0 || (nb = read(fd, &head, sizeof(EXEC))) == -1) { err(0, "%s: %s", fn, strerror(errno)); @@ -104,7 +109,7 @@ main(argc, argv) if (close(fd)) err(0, "%s: %s", fn, strerror(errno)); } - exit(eval); + exit(err_val); } void @@ -196,6 +201,14 @@ s_stab(fn, fd, ep) *nsym = *sym; nsym->strx = nstr - nstrbase; p = strbase + sym->strx; + if(xflag && + (!(sym->n_type & N_EXT) || + (sym->n_type & ~N_EXT) == N_FN || + strcmp(p, "gcc_compiled.") == 0 || + strcmp(p, "gcc2_compiled.") == 0 || + strcmp(p, "___gnu_compiled_c") == 0)) { + continue; + } len = strlen(p) + 1; bcopy(p, nstr, len); nstr += len; @@ -255,5 +268,5 @@ err(fatal, fmt, va_alist) (void)fprintf(stderr, "\n"); if (fatal) exit(1); - eval = 1; + err_val = 1; } |