> +If @file{vfork.h} is found, define @code{HAVE_VFORK_H}. If a working
> +@code{vfork} is found, define @code{HAVE_WORKING_VFORK}. Otherwise,
> +define @code{vfork} to be @code{fork} for backward compatibility.
You need to append "with previous versions of @command{autoconf}" here.
> +In case you prefer to use @code{fork} whereever possible, use this code:
> +@example
> +@group
> +#if HAVE_WORKING_FORK
> +# define vfork fork
> +#endif
> +but still use @code{vfork} whereever it can be used portably.
It's a bit confusing to suggest to people that they use a macro that
is incompatible with common practice and with previous versions of
autoconf, without much explanation.
The simplest way to fix this confusion is to remove the above-quoted
text. If you really want to document this stuff, you should recommend
the following instead, as it's less confusiong:
#if HAVE_WORKING_FORK || ! HAVE_WORKING_VFORK
# define vfork fork
#endif
If you go this route, you should discuss that this is a change from
previous practice, and you should discuss who should prefer the change
and why. Possible reasons for wanting this change are:
- You don't care about performance that much.
- Your program is small so the performance difference doesn't matter.
- You don't want to worry about vfork bugs in various implementations.
- You want to run on non-POSIX platforms like AmigaOS.