summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog6
-rw-r--r--src/strip.c20
2 files changed, 26 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 81229034..a285ac50 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2005-08-08 Roland McGrath <[email protected]>
+
+ * strip.c (options, parse_opt): Grok -R .comment for compatibility
+ with binutils strip. Likewise -d, -S, as aliases for -g.
+ Likewise ignore -s/--strip-all.
+
2005-08-07 Roland McGrath <[email protected]>
* strip.c (process_file): Open read-only when using a different output
diff --git a/src/strip.c b/src/strip.c
index 2de5d6b8..37f9eb0e 100644
--- a/src/strip.c
+++ b/src/strip.c
@@ -63,11 +63,15 @@ static const struct argp_option options[] =
{ NULL, 'F', "FILE", 0, N_("Embed name FILE instead of -f argument"), 0 },
{ NULL, 0, NULL, 0, N_("Output options:"), 0 },
+ { "strip-all", 's', NULL, OPTION_HIDDEN, NULL, 0 },
{ "strip-debug", 'g', NULL, 0, N_("Remove all debugging symbols"), 0 },
+ { NULL, 'd', NULL, OPTION_ALIAS, NULL, 0 },
+ { NULL, 'S', NULL, OPTION_ALIAS, NULL, 0 },
{ "preserve-dates", 'p', NULL, 0,
N_("Copy modified/access timestamps to the output"), 0 },
{ "remove-comment", OPT_REMOVE_COMMENT, NULL, 0,
N_("Remove .comment section"), 0 },
+ { "remove-section", 'R', "SECTION", OPTION_HIDDEN, NULL, 0 },
{ "permissive", OPT_PERMISSIVE, NULL, 0,
N_("Relax a few rules to handle slightly broken ELF files"), 0 },
{ NULL, 0, NULL, 0, NULL, 0 }
@@ -235,7 +239,20 @@ parse_opt (int key, char *arg,
remove_comment = true;
break;
+ case 'R':
+ if (!strcmp (arg, ".comment"))
+ remove_comment = true;
+ else
+ {
+ argp_error (state,
+ gettext ("-R option supports only .comment section"));
+ return EINVAL;
+ }
+ break;
+
case 'g':
+ case 'd':
+ case 'S':
remove_debug = true;
break;
@@ -243,6 +260,9 @@ parse_opt (int key, char *arg,
permissive = true;
break;
+ case 's': /* Ignored for compatibility. */
+ break;
+
default:
return ARGP_ERR_UNKNOWN;
}