The output surrounding the error looks something like:
/usr/include/stdc-predef.h:0: Syntax error near '3'
Failed to parse ./librpc/idl/atsvc.idl at ./pidl/pidl line 583.
Makefile:28880: recipe for target 'idl' failed
make: *** [idl] Error 1
If you get this error, it is probably because you are using GCC v4.8 or higher.
This can be resolved by using the following make command line:
make "CPP=gcc -E -ffreestanding"
For technical details refer to this article
The relevant text from the article is included here:
The GCC pre-processor may now pre-include a file that defines certain macros for the entirety of the translation unit. This allows fully conformant implementations of C99/C11 and other standards that require compiler or compiler + runtime macros that describe implementation availability.
On GNU/Linux, is pre-included.
This subtle change means that some more creative uses of the pre-processor may now fail, with the following diagnostic:
/usr/include/stdc-predef.h:0: error: Syntax error near '3'
As a workaround, the stdc-predef.h pre-include can be disabled with the use of -ffreestanding. For non C/C++ code, use the pre-processor flag -P.