I'm not very familiar with the GCC toolset, but when using the Microsoft compiler on Windows systems, the default stack size can be set as a linker option. As an example, /STACK:0x200000 will establish a stack size of 2 MB; the default stack size is 1 MB, which indeed is not a lot. See http://msdn.microsoft.com/en-us/library/8cxs58a6(VS.80).aspx for details.

However, when the Windows version of ECL spawns threads ("processes") at runtime, it will do this by calling CreateThread() without explicitly specifying a stack size for the thread. As a result, the new thread will inherit the default stack size of the application which it is embedded in. So if you increase the app's default stack size to 50 MB and then create 100 threads, this would reserve 50*100 = 5000 MB of virtual stack memory!

So at least on the Windows platform, I'd suggest to make the thread ("process") stack size configurable first, and then (maybe) to change the default stack size of the application (in this case, ecl.exe).