Re: [PATCH] Makefile: pass -Wno-vla to sparse while checking pre-process.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux