ld Memory exhaustedの一解
今日32 bit UbuntuでChromium 11 Debug版をコンパイルし、憂鬱なメモリ用光エラーを報告します.
link中のメモリ消費量をよくチェックして、物理メモリは基本的に光を使って、swapは100 Mを使わないで掛けました.
その後、ネットで助けを求めたところ、ulimitの設定の問題かもしれないということで、自分の設定を見ました.
stack sizeを調整して、再link、成功!
このような大きなプログラムlinkは物理メモリを消費する可能性があるので、機械の放熱に注意しなければならない.メモリが少し不安定で、Memory exhaustedエラーさえ見えないかもしれないが、segment faultである.
- carl@carl-ubuntu-t400:/work/chromium11/src$ make out/Debug/chrome
- ACTION Extracting last change to /work/chromium11/src/out/Debug/obj/gen/build/LASTCHANGE out/Debug/obj/gen/build/LASTCHANGE.always
- LINK(target) out/Debug/chrome
- /usr/bin/ld: final link failed: Memory exhausted
- collect2: ld returned 1 exit status
- make: *** [out/Debug/chrome] 1
link中のメモリ消費量をよくチェックして、物理メモリは基本的に光を使って、swapは100 Mを使わないで掛けました.
その後、ネットで助けを求めたところ、ulimitの設定の問題かもしれないということで、自分の設定を見ました.
- carl@carl-ubuntu-t400:/work/chromium11/src$ ulimit -a
- core file size (blocks, -c) 0
- data seg size (kbytes, -d) unlimited
- scheduling priority (-e) 20
- file size (blocks, -f) unlimited
- pending signals (-i) 16382
- max locked memory (kbytes, -l) 64
- max memory size (kbytes, -m) unlimited
- open files (-n) 1024
- pipe size (512 bytes, -p) 8
- POSIX message queues (bytes, -q) 819200
- real-time priority (-r) 0
- stack size (kbytes, -s) 8192
- cpu time (seconds, -t) unlimited
- max user processes (-u) unlimited
- virtual memory (kbytes, -v) unlimited
- file locks (-x) unlimited
stack sizeを調整して、再link、成功!
- carl@carl-ubuntu-t400:/work/chromium11/src$ ulimit -s 16384
このような大きなプログラムlinkは物理メモリを消費する可能性があるので、機械の放熱に注意しなければならない.メモリが少し不安定で、Memory exhaustedエラーさえ見えないかもしれないが、segment faultである.