[MLton] Re: cygwoes

Stephen Weeks MLton@mlton.org
Tue, 11 Oct 2005 20:36:00 -0700


> Assuming the problem with VirtualAlloc looks unsolvable, I propose
> that we move forward with the release with MLton-on-Cygwin using
> mmap.

Maybe.

I attempted to bootstrap with the cross-built MLton and got the
following error, which is reminiscent of the kind of Cygwin bug that I
encountered years ago when I first did the Cygwin port and which
caused me to go the VirtualAlloc route.  It indicates that they still
haven't got mmap right.


MLton 20051011 (built Tue Oct 11 14:18:23 2005 on CYGWIN)
  created this file on Tue Oct 11 18:41:58 2005.
...
   Compile SML finished in 638.50 + 466.29 (42% GC)
   Compile C and Assemble starting
      gcc -std=gnu99 -c -I/usr/lib/mlton/include -O1 -fno-strict-aliasing \
          -fomit-frame-pointer -w -fno-strength-reduce -fschedule-insns \
          -fschedule-insns2 -malign-functions=5 -malign-jumps=2 \
          -malign-loops=2 -o /tmp/fileYaEIbv.o /tmp/fileoFeMTH.109.c
     56 [main] mlton-compile 864 fixup_mmaps_after_fork: WARNING: VirtualProtectEx to return to previous state in parent failed for MAP_PRIVATE address 0x1A5D0000, Win32 error 87
   2767 [main] mlton-compile 864 fixup_mmaps_after_fork: WARNING: VirtualProtect to copy protection to child failed forMAP_PRIVATE address 0x1A5D0000, Win32 error 487
   4438 [main] mlton-compile 864 fixup_mmaps_after_fork: ReadProcessMemory (2nd try) failed for MAP_PRIVATE address 0x1A5D0000, Win32 error 487
C:\cygwin\lib\mlton\mlton-compile (864): *** recreate_mmaps_after_fork_failed
     69 [main] mlton-compile 1492 fork_parent: child 864 died waiting for dll loading
   Compile C and Assemble raised in 0.03 + 0.00 (0% GC)
MLton raised in 640.65 + 467.52 (42% GC)
call to system failed with Invalid argument:
gcc -std=gnu99 -c -I/usr/lib/mlton/include -O1 -fno-strict-aliasing -fomit-frame-pointer -w -fno-strength-reduce -fschedule-insns -fschedule-insns2 -malign-functions=5 -malign-jumps=2 -malign-loops=2 -o /tmp/fileYaEIbv.o /tmp/fileoFeMTH.109.c