rb_spawn_process() in process.c tries different solutions for when fork and/or spawnv are/aren't available.
The last resort when both aren't is to use the system() call which stores the value in the status variable, which isn't declared.
It only affects 2.3.0+
It seems that rb_spawn_process() has been broken since 2.0.
I think we should drop support for such platforms, no-fork, no-spawn, and non-Windows.
Do you have such platforms?