<div dir="ltr">Most distributed build systems I know about end up writing their own custom preprocessor to very quickly discover which .h files are included by a cc file (you don't need a full preprocessor for getting just that, and so you can be faster than clang -E), and then send .h and .cc files to the server based on content hashes, so that you don't need to send the full preprocessed text, but can send source files before preprocessing. <a href="https://github.com/facebookarchive/warp">https://github.com/facebookarchive/warp</a> was a somewhat recent example of this (but also, as you say, pump mode, and proprietary systems). (Your thread mentions that you do this for -M / /showIncludes, but you can just do this as part of regular compilation – not sure why you need this in a separate process?)<div><br></div><div>So while this doesn't answer your question, I'd expect that you won't need it, eventually :-)</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 11, 2017 at 5:05 AM, Boris Kolpackov via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
In the build system I am working on we are looking at always performing<br>
the preprocessing and then C/C++ compilation as two separate clang/clang++<br>
invocations. The main reason is support for distributed compilation but<br>
see here[1] for other reasons.<br>
<br>
I realize that tools like ccache/distcc have been relying on this for<br>
a while (though see the 'direct' mode in ccache and 'pump' in distcc).<br>
However, some compilers apparently do not support this (for example,<br>
VC; see the above link for details).<br>
<br>
So I wonder, in the context of Clang, if this is just a hack that<br>
happens to work "for now" or if this is a feature that is expected<br>
to continue to work?<br>
<br>
Also, has anyone seen/heard of any real-world issues with compiling<br>
preprocessed source code?<br>
<br>
[1] <a href="https://www.reddit.com/r/cpp/comments/6abi99/rfc_issues_with_separate_preprocess_and_compile/" rel="noreferrer" target="_blank">https://www.reddit.com/r/cpp/<wbr>comments/6abi99/rfc_issues_<wbr>with_separate_preprocess_and_<wbr>compile/</a><br>
<br>
<br>
Thanks,<br>
Boris<br>
______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br></div>