[cfe-dev] Why clang needs to fork into itself?

Benjamin Kramer benny.kra at gmail.com
Mon Jan 27 14:21:30 PST 2014

On 27.01.2014, at 22:56, Richard <legalize at xmission.com> wrote:

> In article <CAAnoKN971ZHsDU-01s5pqbUK2qKNW=_rJy-t=u7ovDd7kOWFyg at mail.gmail.com>,
>    Tomasz Mikolajczyk <tmmikolajczyk at gmail.com> writes:
>> I haven't see the code but potentially the purpose of forking is to
>> handle internal compiler errors, especially the case when the child
>> process crashes when processing an input code. That may be easily
>> detected and handled properly by the parent process, by collecting the
>> trace, logs and by encouraging user to fill an issue in the bug DB,
>> etc.
> How is this going to work on Windows where fork semantics really aren't
> supported?
> I've used crash report generator mechanisms on both linux and Windows
> that didn't require forking oneself.

"forking" is a bit misleading. Clang spawns a new copy of itself, it doesn't
require fork semantics. The performance hit is probably a bit larger as
creating processes tends to be more expensive on windows but it still works
in exactly the same way as on unices.

- Ben

More information about the cfe-dev mailing list