On Wed 08 Mar 2017 22:32, Mike Gran <spk...@yahoo.com> writes:

> On Wednesday, March 8, 2017 12:42 PM, Andy Wingo <wi...@pobox.com> wrote:
> Hi,
>
>> The problem with the malloc path is that not only is it a bit slower, as
>> it has to page in data that might not be needed, it doesn't share memory
>> between processes.  So if the system supports mmap, Guile will use mmap
>> to load its ELF images (.go files).
>
> In trying to get Guile to work on Cygwin, I've reverted to the
> malloc path by #undef'ing HAVE_SYS_MMAN_H.  The mmap path is broken,
> as you note.
>
>> One solution to this issue would be to choose target-specific page
>> sizes.  This is still a little tricky; on amd64 for example, systems
>> commonly have 4KB pages, but they are allowed by the ABI to have any
>> multiple-of-2 page size up to 64 KB.  On Cygwin, pages are 4kB but they
>> can only be allocated 16 at a time.  MIPS and ARM64 can use 64K pages
>> too and that's not uncommon.
>
> Cygwin wants its users to not second-guess the 64k pagesize it
> provides as its interface.  It sees the 16x 4k pagesize as an internal
> detail that it is trying to abstract away.

Thanks for the notes.  With the patch I just pushed to change to 64 KB
segment alignment I hope cygwin is fixed (among other targets).
If you are able to try again, great; otherwise we can test tomorrow's
tarball.

Cheers,

Andy

Reply via email to