Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject Re: ad clusterのインテルマックでのコンパイルオプションについて
Date: 2008/01/21(Mon) 19:47:36
ContributorAkio Morita
URLhttp://acc-physics.kek.jp/SAD/SADrelease/distfiles/oldsad-1.0.10.2.2b.tar.gz

> sad clusterのインテル・マックでのコンパイルオプションについて。
>
> -O2でビルドすると、GetMAIN関数のところで以下のエラーが発生する。
>
> LALR(1) parser:
> sad1.exe(13416) malloc: *** vm_allocate(size=2147483648) failed (error code=3)
> sad1.exe(13416) malloc: *** error: can't allocate region
> sad1.exe(13416) malloc: *** set a breakpoint in szone_error to debug
>
> その対処として、/users/hoge/oldsad/obj/i386-Darwin8/Makefileに以下のような行を追加し、hsrch.fのみ-O1でコンパイルする。
>
> hsrch.o: $(@:.o=.f)
> $(FC) -c -O1 -Wall -fno-second-underscore -fdollar-ok -fargument-alias -mpreferred-stack-boundary=4 -I/users/hoge/src/compile/oldsad/src -I/proj/epics/R314/R3149/base/include -I/proj/epics/R314/R3149/base/include/os/Darwin -I/SAD/arch/i386-Darwin8/include -I/usr/X11R6/include -o /users/hoge/src/compile/oldsad/obj/i386-Darwin8/$(@:.f=.o) /users/hoge/src/compile/oldsad/src/$(@:.o=.f)
>
Makefileを修正するよりも、特定オブジェクトにオプションを付けるなら
SYS_FOPT_hsrch=-O1
が使えると思います(sad.confに入れるか、config/Darwin.specへ入れる)

ただ、デフォルトではGCCの場合、FOPTは "-g -O1"にしてあるのですが...

> (これは、iMacのLopard+gcc4.2.2では発生していない。)
>
と言うことですし、最適化オプションで挙動が変わるので単にコンパイラーの bugのような気がしますが?
amsad8で makeしているなら
gcc-4.2.0 (GCC) 4.2.0 20061109 (prerelease)
なはずです


- 関連一覧ツリー (Click ▼ to display all articles in a thread.)