On 12/2/2010 10:33 AM, Andrew Wiley wrote:
On Wed, Dec 1, 2010 at 7:14 PM, Mike Parker <[email protected]
<mailto:[email protected]>> wrote:

    On 12/2/2010 6:12 AM, Andrew Wiley wrote:



        On Wed, Dec 1, 2010 at 2:36 PM, bearophile
        <[email protected] <mailto:[email protected]>
        <mailto:[email protected]
        <mailto:[email protected]>>> wrote:

            Franciszek Czekala:

         > How do you set the stack size for D programs?

            On Windows with DMD this is how to set the max stack size to
        about
            1.5 GB of the "test.d" module:
            dmd -L/STACK:1500000000 test.d

            (I'd like D to have a standard syntax (maybe a pragma(...))
        to tell
            the other parts of the compilation chain how much stack to use).


        If the stack size is only set by the executable on Windows, I
        don't see
        how that would be useful.


    It's not set by DMD, but by the linker. You need to pass the
    appropriate flag to the linker on each platform via the -L command
    line option. bearophile's example is for OPTLINK. On platforms where
    DMD is backed by the gcc toolchain, you should be able to use

    dmd -L--stack 1500000000 test.d


$ ld --stack
ld: unrecognized option '--stack'
ld: use the --help option for usage information

The linker doesn't set the stack size on Linux/Unix (seems like OSX is
an exception). You set the stack size in the environment with 'ulimit -s'

I got that from the ld man page [1]. But on checking again, I see this:

[This option is specific to the i386 PE targeted port of the linker]

Sorry about that.

[1] http://linux.die.net/man/1/ld

Reply via email to