This is the mail archive of the
libffi-discuss@sourceware.org
mailing list for the libffi project.
Re: libffi & fork
> There is, as far as I can see, only one way to remedy this: allow
> python to map anonymous memory with both write and execute permission.
> Then it should work fine.
>
I believe memory allocation is a service provided by the OS and not by
the application or interpreter. Python does not provide memory
allocation service to libffi. In this case libffi creates
read-write-exec memory block using mmap to a tmp file. I guess the
problem is common to libff users and it is not unique to python.
libffi uses mmap with MAP_SHARED at libffi:closures.c:dlmap(). What
was the reason for using MAP_SHARED in the first place?
I think MAP_PRIVATE would create the desired behavior of copy-on-write
when forked. Would that be a proper fix?
Gaash