Subject: bug#74805: 30.0.92; Trying to build scratch/igc on Cygwin

From: Ken Brown <[email-masked]>
Date: Sat, 21 Dec 2024 15:25:45 -0500

On 12/21/2024 12:34 PM, Pip Cet wrote:
> Gerd Möllmann <[email-masked]> writes:
> 
>> Ken Brown <[email-masked]> writes:
>>
>>> On 12/21/2024 2:24 AM, Eli Zaretskii wrote:
>>>>> Date: Fri, 20 Dec 2024 18:48:37 -0500
>>>>> Cc: [email-masked], Richard Brooksby <[email-masked]>
>>>>> From: Ken Brown <[email-masked]>
>>>>> 3. The "mmap" branch is a straightforward port, mostly imitating the
>>>>> FreeBSD port.  It currently (with Cygwin 3.5.5) fails because of a
>>>>> limitation of Cygwin's mmap.  But I have a simple patch to Cygwin in the
>>>>> works that removes that limitation.  With that patch, 37 of the 38 MPS
>>>>> tests pass.  I still need to debug the failing test.  I'm cautiously
>>>>> optimistic that I can get this approach to work.  Either way, I expect
>>>>> the Cygwin patch to soon be available in a test release of Cygwin 3.6.0
>>>>> so that other Cygwin users can try it.
>>>> Thanks for the update, I think this is very good news.
>>>
>>> I could use some help from the MPS experts in debugging the failing
>>> test, which is arenacv.  I ran the test under strace and didn't see
>>> any mmap or munmap failures.  I'm attaching the test log, which
> 
> What about mprotect, or whatever the equivalent is?

I can't find any calls to mprotect when this test is run.

>>> doesn't mean a thing to me.  I also built an unoptimized arenacv and
>>> can run it under gdb if someone tells me what to look for.
>>>
>>> TIA.
>>>
>>> Ken
>>
>> Hi Ken.
>>
>> I'm not an MPS internals expert, but AFAICT, this likely comes from here
>> in arenacv.c, but without being able to debug this, I find it hard to
>> tell what's going on in the allocator->alloc.
>>
>> static void testAllocAndIterate(Arena arena, Pool pool,
>>                                  Size pageSize, Count numPerPage,
>>                                  AllocatorClass allocator)
> 
> Can you check pageSize is correct?

pageSize is 65536, which is the Windows allocation granularity.  It 
should be OK.

Ken