cancel
Showing results for 
Search instead for 
Did you mean: 

Compilation error: "*** Couldn't reserve space for cygwin's heap, Win32 error 0"

ABELA
Associate II

Compilation of any project almost always ends with this post. If you run the compilation several times, sometimes success comes. Basically, an error occurs when compiling images. What can I configure to avoid this error?

   0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487

AllocationBase 0x0, BaseAddress 0x60EA0000, RegionSize 0x200000, State 0x10000

C:\TouchGFX\4.10.0\env\MinGW\msys\1.0\bin\echo.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0

simulator/gcc/Makefile:238: recipe for target 'BitmapDatabase' failed

make[1]: *** [BitmapDatabase] Error 1

simulator/gcc/Makefile:32: recipe for target 'all' failed

make: *** [all] Error 2

11 REPLIES 11

That's greatm @ABELA​!

JayEarl
Associate

Hi All,

 

I see that a solution here is rebasing a dll. However we did not want to do that for several reasons.

On further investigation, we are building on Windows 11, it appears that Windows Defender was the cause, using a mechanism called "Force Randomisation mechanism for Images", also known as ASLR

To fix this we needed to run PowerShell as Administrator and then run the following two commands

Be sure to change the path to match your own installation.

 

Get-ChildItem -Recurse -Path "C:\TouchGFX\4.24.0\env\MinGW\msys\1.0\bin\*.exe" | Foreach-Object -Process { Set-ProcessMitigation -Name $_.Name -Disable ForceRelocateImages

 

Get-ChildItem -Recurse -Path "C:\TouchGFX\4.24.0\env\MinGW\msys\1.0\bin\*.exe" | Foreach-Object -Process { Set-ProcessMitigation -Name $_.Name -Disable BottomUp }

 

The result of this is that the ASLR process is disabled for the specific executables contained within the sensitive directory, leaving the rest of the system protected.