git: 49d3dcb041f0 - stable/12 - elfctl: add backwards compatibility for "no" prefixes

Ed Maste emaste at FreeBSD.org
Tue Jan 26 14:45:25 UTC 2021


The branch stable/12 has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=49d3dcb041f058880486e3489ca79c9476ac7abf

commit 49d3dcb041f058880486e3489ca79c9476ac7abf
Author:     Ed Maste <emaste at FreeBSD.org>
AuthorDate: 2021-01-13 19:21:38 +0000
Commit:     Ed Maste <emaste at FreeBSD.org>
CommitDate: 2021-01-26 14:43:42 +0000

    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)
---
 usr.bin/elfctl/elfctl.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

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);


More information about the dev-commits-src-all mailing list