On 31/07/17 01:12, Christopher Li wrote: > On Sun, Jul 30, 2017 at 8:05 PM, Christopher Li <sparse@xxxxxxxxxxx> wrote: >> On Sun, Jul 30, 2017 at 7:27 PM, Ramsay Jones >> >> You actually don't need to introduce CHECKER_FLAGS. >> You can just do: > > Ah, I see what you mean here. You want to distinguish > CFLAGS for gcc, CHECKER_FLAGS for sparse specific > flags. Err, ... well, yes and no! :-D The main idea is to separate the 'additional' flags passed to sparse for the $(CHECKER) target - not necessarily for sparse specific flags. In this case, for example, -W[no]-vla is also a gcc flag, viz: $ make CFLAGS=-Wno-vla pre-process.sc Makefile:69: Your system does not have libxml, disabling c2xml Makefile:82: Your system does not have libgtk2, disabling test-inspect Makefile:102: Your system does not have llvm, disabling sparse-llvm CHECK pre-process.c $ $ rm pre-process.o $ make CFLAGS=-Wno-vla pre-process.o Makefile:69: Your system does not have libxml, disabling c2xml Makefile:82: Your system does not have libgtk2, disabling test-inspect Makefile:102: Your system does not have llvm, disabling sparse-llvm CC pre-process.o $ $ rm pre-process.o $ make CFLAGS=-Wvla pre-process.o Makefile:69: Your system does not have libxml, disabling c2xml Makefile:82: Your system does not have libgtk2, disabling test-inspect Makefile:102: Your system does not have llvm, disabling sparse-llvm CC pre-process.o pre-process.c: In function ‘expand’: pre-process.c:712:9: warning: ISO C90 forbids variable length array ‘args’ [-Wvla] struct arg args[nargs]; ^ pre-process.c: In function ‘dump_macro’: pre-process.c:2019:9: warning: ISO C90 forbids variable length array ‘args’ [-Wvla] struct token *args[nargs]; ^ $ So, yes, I initially didn't have the $(CHECKER_FLAGS) and simply had the following addition: $ git diff diff --git a/Makefile b/Makefile index 64146db..8e4b0ae 100644 --- a/Makefile +++ b/Makefile @@ -198,6 +198,8 @@ endif c2xml.o c2xml.sc: CFLAGS += $(LIBXML_CFLAGS) +pre-process.sc: CFLAGS += -Wno-vla + %.o: %.c $(LIB_H) $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $< $ ... which works just as well. [Note that gcc and sparse have a different default for -Wvla]. Also, note that we are using cgcc for checker, so non-gcc flags should never get to gcc anyway (or we have a bug). So, if you prefer not to introduce another variable, I would be equally fine with that. However, bear in mind that you will have to remember to add -Wno-vla manually to CFLAGS if you invoke make with CFLAGS on the command line. ATB, Ramsay Jones -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html