On 7/29/2018 10:28 AM, Jan Claeys wrote:
On Fri, 2018-07-27 at 19:13 +0200, Barath Aron wrote:
I intend to cross-compile Python v3.6.6 to Threos ( https://threos.io
) operating system. Threos is supports a quite large set from
POSIX and C89/C99. Unfortunately, Threos lacks fork(2), but
provides posix_spawn(3) instead. I already made some local changes
in posixmodule.c to compile due to some features are detected
as present but actually not supported, like HAVE_FORK -- I blame
autotools for this :-).
Then perhaps Threos should be patched to describe itself more accurately
or autotools patched to detect more accurately.
I don't know, however, whether the Python
shall cross-compile without issues.
We generally prefer that it does, but no longer try to officially
support (with conditionals in the codebase) every odd-ball OS. You or
some Threos group may have to keep a separate patch set, to be update
for each Python version. If there is any such thing now, Google does
not find it.
My question is that the _posixsubprocess.c can be prepared to
use posix_spawn(3) instead of fork(2)?
What does the doc for _posixubprocess so it does? If it says 'create a
subprocess by forking', then perhaps not.
Maybe the UNIX/Linux version
can also benefit from it, see: https://salsa.debian.org/ruby-
team/ruby-posix-spawn
You might want to ask this on the python-dev mailing list.
multiprocessing module uses 'spawn' rather than 'fork' on Windows and it
has an option to use 'spawn' even on *nix. I presume the latter refers
to posix_spawn. You might want to check the multiprocessing code to see
what *it* is doing 'under the covers'.
--
Terry Jan Reedy
--
https://mail.python.org/mailman/listinfo/python-list