mirror of
https://gitlab.com/apparmor/apparmor
synced 2025-08-30 22:05:27 +00:00
parser: Add option --Werror to enable turning warnings into errors
Add basic ability to treat a warning as an error and abort the compile by specifying the new option --Werror. --Werror will turn all warnings into errors. Where if an warning type is specified only that type of warning will be turned into an error. --Werror=deprecated. The full list of supported warning types can be found by using apparmor_parser --help=warn or apparmor_parser --help=Werror MR: https://gitlab.com/apparmor/apparmor/-/merge_requests/600 Signed-off-by: John Johansen <john.johansen@canonical.com>
This commit is contained in:
@@ -128,6 +128,7 @@ static const char *config_file = "/etc/apparmor/parser.conf";
|
||||
#define ARG_PRINT_CONFIG_FILE 140
|
||||
#define ARG_OVERRIDE_POLICY_ABI 141
|
||||
#define EARLY_ARG_CONFIG_FILE 142
|
||||
#define ARG_WERROR 143
|
||||
|
||||
/* Make sure to update BOTH the short and long_options */
|
||||
static const char *short_options = "ad::f:h::rRVvI:b:BCD:NSm:M:qQn:XKTWkL:O:po:j:";
|
||||
@@ -172,6 +173,7 @@ struct option long_options[] = {
|
||||
{"abort-on-error", 0, 0, ARG_ABORT_ON_ERROR}, /* no short option */
|
||||
{"skip-bad-cache-rebuild", 0, 0, ARG_SKIP_BAD_CACHE_REBUILD},/* no short option */
|
||||
{"warn", 1, 0, ARG_WARN}, /* no short option */
|
||||
{"Werror", 2, 0, ARG_WERROR},
|
||||
{"debug-cache", 0, 0, ARG_DEBUG_CACHE}, /* no short option */
|
||||
{"max-jobs", 1, 0, ARG_MAX_JOBS}, /* no short option */
|
||||
{"print-cache-dir", 0, 0, ARG_PRINT_CACHE_DIR}, /* no short option */
|
||||
@@ -242,6 +244,7 @@ static void display_usage(const char *command)
|
||||
"--config-file n Specify the parser config file location, processed early before other options.\n"
|
||||
"--print-config Print config file location\n"
|
||||
"--warn n Enable warnings (see --help=warn)\n"
|
||||
"--Werror [n] Convert warnings to errors. If n is specified turn warn n into an error\n"
|
||||
,command);
|
||||
}
|
||||
|
||||
@@ -471,7 +474,8 @@ static int process_arg(int c, char *optarg)
|
||||
strcmp(optarg, "optimize") == 0 ||
|
||||
strcmp(optarg, "O") == 0) {
|
||||
display_optimize(progname);
|
||||
} else if (strcmp(optarg, "warn") == 0) {
|
||||
} else if (strcmp(optarg, "warn") == 0 ||
|
||||
strcmp(optarg, "Werror") == 0) {
|
||||
display_warn(progname);
|
||||
} else {
|
||||
PERROR("%s: Invalid --help option %s\n",
|
||||
@@ -696,6 +700,16 @@ static int process_arg(int c, char *optarg)
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
case ARG_WERROR:
|
||||
if (!optarg) {
|
||||
werrflags = -1;
|
||||
} else if (optarg && !handle_flag_table(warnflag_table, optarg,
|
||||
&werrflags)) {
|
||||
PERROR("%s: Invalid --Werror option %s\n",
|
||||
progname, optarg);
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
case ARG_DEBUG_CACHE:
|
||||
warnflags |= WARN_DEBUG_CACHE;
|
||||
break;
|
||||
|
Reference in New Issue
Block a user