I've received a report of a mingw build failure:
../../../gcc/libgcc/libgcov-interface.c: In function '__gcov_fork':
../../../gcc/libgcc/libgcov-interface.c:185:9: error: implicit declaration of
function 'fork' [-Wimplicit-function-declaration]
185 | pid = fork ();
| ^~~~
make[2]: *** [Makefile:932: _gcov_fork.o] Error 1
make[2]: *** Waiting for unfinished jobs....
As far as I understand it, mingw doesn't have fork and doesn't declare
it in <unistd.h>, so it's not clear to me how this has ever worked. I
would expect a linker failure. Maybe that doesn't happen because the
object containing a reference to fork is only ever pulled in if the
application calls the intercepted fork, which doesn't happen on mingw.
What's the best way to fix this? I expect it's going to impact other
targets (perhaps for different functions) because all of
libgcov-interface.c is built unconditionally. I don't think we run
configure for the target, so we can't simply check for a definition of
the HAVE_FORK macro.
Thanks,
Florian