ee89a4dad04442463252b6a368a8ba373288a774
Trying to load a 64-bit image, the VM segfaults in gcc3x-cointerp.c line 2809 `memset(theStackMemory, 0, stackPagesBytes);`
Other win64x64 targets might be affected. I tested both a custom build and bintray version: https://bintray.com/opensmalltalk/vm/download_file?file_path=squeak.cog.spur...
I have rebuild a working VM from 020c80f357c8164e26f37cefea8c50b92bae7fa8 (CogVM source as per VMMaker.oscog-eem.2751 - may 8)
But this one segfaults: ee89a4dad04442463252b6a368a8ba373288a774 (Merge branch 'Cog' of https://github.com/OpenSmalltalk/opensmalltalk-vm into Cog - may 9)
Ah Ah! If I revert those 3 lines from build.win64x64/common/Makefile.tools then the broken VM works again!
``` ifeq ($(COMPILER_TO_USE),clang) COGDEFS:=$(COGDEFS) -mno-stack-arg-probe endif ```
So the problem comes from 920248dc54ecbcadd9121058360081665d3c7460
This might be relevant material about stack handling in windows NT:
https://stackoverflow.com/questions/8400118/what-is-the-purpose-of-the-chkst... https://archive.is/J01oT https://docs.microsoft.com/en-us/windows/win32/devnotes/-win32-chkstk https://bugs.llvm.org/show_bug.cgi?id=36221 https://bugs.llvm.org/show_bug.cgi?id=21896 ...
Closed #498.
vm-dev@lists.squeakfoundation.org