> From: Andy Wingo <wi...@pobox.com> > Cc: guile-devel@gnu.org, l...@gnu.org, m...@netris.org > Date: Mon, 11 Jul 2016 23:51:17 +0200 > > I have reworked Guile a bit in anticipation of your patch and in the end > reworked your patch a bit too. Please fetch git and see how things are > working for you, first -- it could be I introduced a MinGW bug. Then > here attached is your patch, reworked. Let me know how it looks to > you. If it looks good I'll apply and release in 2.0.12 tomorrow or so.
Thanks. It's hard for me to build Guile from Git, due to the additional prerequisites that needs. Instead, I reviewed the changes, comparing them with my original patch. First, I see that you also removed getuid and getgid; I believe we only talked about removing setuid and setgid. As I said, getuid is needed to build Guile. The only other issue I see is the type of the value returned by start_child, and as result by scm_open_process. On Windows, the value returned has the type HANDLE, which is actually a pointer in disguise. I used intptr_t for that, but you changed it to just int. This will not work in 64-bit MinGW builds, where a pointer is a 64-bit type. I think we should go back to intptr_t, and also change the conversion to the value returned by scm_open_process, since scm_from_int will AFAIK not support 64-bit integer types. Note that the MinGW waitpid implementation also expects to get a valu that is interpreted as a handle. Other than that, the changes look good, and I will certainly try to build Guile 2.0.12 when it is released. Thanks.