1. 一般來說,如果沒有特別設定,預設值為 4K bytes 的 stack size。

  2. 可以在 link 時,指定 stack size 大小,-elf2flt=-s32768,-s 用來指定 elf2flt 的 stack size。

  3. 也可以用環境參數 FLTFLAGS 來指定 stack size。
    FLTFLAGS="-s 10240"
    export FLTFLAGS

  4. 在普通 linux 下,則使用下列方式來改變 stack 大小。
    ld --stack=
    gcc -Wl,--stack=

  5. 在一般 linux 下,已經捨棄 ld 來改變 stack 大小,而是經由 setrlimit 函數動態設定。或是可以經由 ulimit 指令立即變更預設的 stack 大小。ulimit -c -n -s 可以查詢目前 stack 大小。

// 設定 stack 為無限大 struct rlimit rlim; rlim.rlim_cur = rlim.rlim_max = RLIM_INFINITY; setrlimit(RLIMIT_STACK, &rlim);

台南小新 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • ads901119
  • 您好
    請問一下我使用您在此說明的第四項指令 --stack=10000000
    但它卻回應
    /usr/bin/ld: unrecognized option '--stack'
    請問這是為什麼呢
    我man ld確實有此指令
    但我用ld --help卻沒有看到此指令耶?
    感謝你的回答
  • 已經修正文章了,請使用 setrlimit 函數設定,或是使用 ulimit 指令變更。

    台南小新 於 2010/02/03 10:03 回覆