aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2021-01-13 19:21:38 +0000
committerEd Maste <emaste@FreeBSD.org>2021-01-26 14:43:42 +0000
commit49d3dcb041f058880486e3489ca79c9476ac7abf (patch)
tree6947007d1acf67f5fc0ae1c97df1b2392e384666
parent70cdab054c8ffe7f5561ab8f31db33ee62d12c9c (diff)
downloadsrc-49d3dcb041f058880486e3489ca79c9476ac7abf.tar.gz
src-49d3dcb041f058880486e3489ca79c9476ac7abf.zip
elfctl: add backwards compatibility for "no" prefixes
I am going to prefix opt-out ELF feature flag names with "no" to make their meaning more clear (review D28139), but there are some uses of the existing names already (e.g., the PR referenced below). For now accept the older, unprefixed name as well, and emit a warning. We can revert this after FreeBSD 13 branches. % elfctl -e +aslr foo elfctl: interpreting aslr as noaslr; please specify noaslr PR: 239873 (related) MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D28140 (cherry picked from commit 3dfcb70b6ae9bcb9fd6a66721bebdb8c6a53c329)
-rw-r--r--usr.bin/elfctl/elfctl.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/usr.bin/elfctl/elfctl.c b/usr.bin/elfctl/elfctl.c
index 725752375d16..efc993302c60 100644
--- a/usr.bin/elfctl/elfctl.c
+++ b/usr.bin/elfctl/elfctl.c
@@ -234,6 +234,16 @@ convert_to_feature_val(char *feature_str, uint32_t *feature_val)
input |= featurelist[i].value;
break;
}
+ /* XXX Backwards compatibility for "no"-prefix flags. */
+ if (strncmp(featurelist[i].alias, "no", 2) == 0 &&
+ strcmp(featurelist[i].alias + 2, feature) == 0) {
+ input |= featurelist[i].value;
+ warnx(
+ "interpreting %s as %s; please specify %s",
+ feature, featurelist[i].alias,
+ featurelist[i].alias);
+ break;
+ }
}
if (i == len) {
warnx("%s is not a valid feature", feature);