Subject: Re: [PATCH v3 0/4] remove extern from function declarations

From: SZEDER Gábor <[email-masked]>
Date: Fri, 3 May 2019 16:58:00 +0200

On Fri, May 03, 2019 at 04:42:11PM +0200, SZEDER Gábor wrote:
> > Since you *could* include it, I now assume that Coccinelle does not need
> > to follow the `#include`s (otherwise, it would have complained about not
> > finding the `windows.h` header in your setup).

> I don't really know what can cause 'spatch' to error out (besides
> unknown command line option or non-existing file specified on the
> command line), and this is all that 'man spatch' has to say:
> 
>        --all-includes
>               causes all available include files to be used
> 
> Since it explicitly mentions _available_ include files, I would
> venture to guess that non-available include files are not used, and
> since it doesn't explicitly mention that such a file causes an error,
> it doesn't.

Actually, we record Coccinelle's output to stderr in a logfile, and
with the Windows-specific source files included it contains thing
like:

  HANDLING: compat/mingw.c
  (ONCE) TYPE: header conio.h not found
  (ONCE) TYPE: header wchar.h not found
  diff =
  init_defs_builtins: /usr/lib/coccinelle/standard.h
  HANDLING: compat/winansi.c
  (ONCE) TYPE: header wingdi.h not found
  (ONCE) TYPE: header winreg.h not found
  (ONCE) TYPE: header winternl.h not found
  (ONCE) TYPE: header ntstatus.h not found

So it seems that these missing headers are just ignored, only their
absence is noted on stderr.

(And just for the record, that log also contained these:

  HANDLING: http-push.c
  (ONCE) TYPE: header xmlparse.h not found
  (ONCE) TYPE: header expat.h not found

  HANDLING: xdiff/xutils.c
  (ONCE) TYPE: header limits.h not found
  (ONCE) TYPE: header assert.h not found

which means that even on an avarage Linux box there might be missing
include files.  This also raises the question whether Coccinelle looks
for things to transform in system headers as well (and what if it
finds something there)).