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

Subject Re: Minimum SAD/Tk build on MIKO GNYO Linux 4.2
Date: 2011/01/19(Wed) 15:05:30
ContributorAkio Morita

内容解説

> % cvs update -j1.6 -j1.4 mk/sad.libtai.mk
SYS_COPT経由で、コンパイラオプションを 3rd party productへ渡すのはNG
(libtaiは ISO C99では無い&SYS_COPTに -std=c99が含まれている)
生成ABI指定を渡すならCC経由で渡すか、amorita branchの SYS_CC_ABIOPTのように
制御変数を新設すべきところ

> % cvs update -j1.5 -j1.4 src/sim/sad_signal.h
MacOSX 10.6.x対応の変更とされるが、Linuxでは標準ヘッダーで _XOPEN_SOURCEマクロは定義済みなので
マクロの二重定義エラーになる&_XOPEN_SOURCEの設定バージョンが"1"では古すぎる
やるなら、config/Darwin.specで SYS_COPTへ -Dオプションを追加すべきところ

> % cp /dev/null sad.conf
> % echo USE_X11=YES >>sad.conf
> % echo USE_TCLTK=YES >>sad.conf
MAIN trunkでは、script/bench2.sadで Tkinterのロードを要求されるので
明示的にTkinterをリンクしておかないと ./bin/gsで走らせるときに問題が発生する

> % echo USE_GCC=4.4.3 >>sad.conf
> % echo FC=gfortran-4.4 >>sad.conf
> % echo CC=gcc-4.4 >>sad.conf
> % echo CXX=g++-4.4 >>sad.conf
Linuxでは、Fortran環境が標準でインストールされない&標準のコマンド名が統一されて無いようなので
config/Linux.specでサポートしないため、手動設定が必須

> % echo FOPT+=-falign-functions >>sad.conf
sethtb()へ渡す関数はoctet境界に整列している必要があるため
(amorita branchでは、backendデータベースの拡張&sethb API廃止済みのため、この問題は無い)

> % echo COPT+=-DTRY_SAD_ADDR32 >>sad.conf
> % echo COPT+=-DUSE_MMAP_FOR_MALLOC >>sad.conf
x86_64環境の場合、mallocが割り当てる仮想メモリアドレスが、SADの表現可能域に入る保証が無いため必要
実際には、mallocの代わりに 2GBクリップ付きの匿名mmapで代用している
Linux/x86_64固有の拡張を使用しているので、他の64bit Linuxへの移植性は有りません


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