fix bug introduced by report filtering

On OS X some exec call would produce duplicate entries in the output.
Since one of those call is doing multiple attempt to execute the same
command, with different PATH prefixes.

  execvp("/usr/local/bin/g++", ["g++", "-c", ...]); -> no such file
  execvp("/usr/bin/g++", ["g++", "-c", ...]); -> succeed

On the other hand GNU make is doing vfork() many places to speed up
the compilation, since it gonna do exec() anyway. But this cause no
reset on the already_reported flag.

This commit introduce vfork() to override from libc, and simply call
fork() to solve the flag problem.