2010年07月17日

PPLのコンパイル&インストール

GCCを自前でビルドしたい方向けの情報です。
興味のない方は読み飛ばしてください。

2011/02/22 追記
ppl-0.11.1以降、パッチ等は不要になりましたので、記事を書き直しました。
PPLのコンパイル&インストール (ppl-0.11.1以降)


PPLは、以下の場所にあります。
最新版は、こちらでチェックしてください。
http://www.cs.unipr.it/ppl/

先に、GMPをインストールしておいてください。

Download
http://www.cs.unipr.it/ppl/Download/
Source distributions
bzip2 tar archive
ftp または http より、
ppl-0.11.tar.bz2
を、適当なディレクトリに保存します。

MSYSで、ファイルを保存したディレクトリに移動し、
$ tar xjf ppl-0.11.tar.bz2
$ cd ppl-0.11
$ ./configure --prefix=/mingw --disable-debugging --disable-shared
$ make
$ make install

以上で終了です。


【補足】
gmp-5.0.1をインストールした場合、configureでgmpを見つけられなくて失敗するのですが、こちらにその情報があります。
http://www.cs.unipr.it/pipermail/ppl-devel/2010-January/015873.html

上記の記事より、パッチをダウンロードします。
ftp://ftp.cruxppc.org/cruxppc/distfiles/2.6/ppl-0.10.2-gmp-5-fix.patch

パッチを適用した後、autoreconfを実行します。

2010/08/24 追記
ppl-0.11から、gmp-5.0.1用のパッチは不要になりましたが、autoreconfは必要です。

autoreconfは、
http://sourceforge.net/downloads/mingw/MSYS/autoconf/autoconf-2.63-1/
autoconf-2.63-1-msys-1.0.11-bin.tar.lzma
に、アップデートしておいてください。

ついでに、automakeも
http://sourceforge.net/downloads/mingw/MSYS/automake/automake-1.11-1/
automake-1.11-1-msys-1.0.11-bin.tar.lzma
に、アップデートしておいてください。

autoconf-2.65も出ていますが、2.65だとxvidocoreのbootstrap.shで失敗するので、2.63にしています。

$ tar xjf ppl-0.11.tar.bz2
$ cd ppl-0.11
$ patch -p1 < ../ppl-0.10.2-gmp-5-fix.patch
$ autoreconf
$ ./configure --prefix=/mingw --disable-debugging --disable-shared
$ make
$ make install

patchとautoreconf以外の手順は同じです。
autoreconf以外の手順は同じです。

gmp-4.3.2をインストールした場合は、上記のパッチは不要です。


【更新履歴】を見る
posted by あべちん at 14:48 | Comment(6) | TrackBack(0) | GCC追加ライブラリ
この記事へのコメント
こんばんは。

一通り頑張ってみましたが、PPLでこけます。
どうもデモファイルのリンク中にこけるようで。
GMPの問題なのかなあ。
そういえばGMPだけconfigureの時に検出CPUタイプが違ったような…

報告だけ。
Posted by Kazuki Ashiya at 2010年07月19日 21:04
あべちんさん
こんばんは
試してみたところこういうエラーが出ました

何か足りないかもしれませんね・・・
もうちょっといろいろやってみます
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -I/mingw/include -
g -O2 -frounding-math -W -Wall -MT Box.lo -MD -MP -MF .deps/Box.Tpo -c Box.cc -
DDLL_EXPORT -DPIC -o .libs/Box.o
In file included from checked.defs.hh:595,
from Checked_Number.defs.hh:27,
from Coefficient.types.hh:15,
from Coefficient.defs.hh:26,
from Box.defs.hh:28,
from Box.cc:24:
checked.inlines.hh: In function `Parma_Polyhedra_Library::Result Parma_Polyhedra
_Library::Checked::input_generic(Type&, std::istream&, Parma_Polyhedra_Library::
Rounding_Dir)':
checked.inlines.hh:607: internal compiler error: in invert_truthvalue, at fold-c
onst.c:2700
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.mingw.org/bugs.shtml> for instructions.
Posted by 蓄電 at 2010年07月20日 20:28
Kazuki Ashiyaさん、こんばんは。管理人です。

おしい感じですね。
その後どうでしょうか?

configure 1回目で失敗しても、そのままconfigureやり直すと通ることもあります。

他に気をつけることといえば、binutils-2.20.51にアップデートすることくらいです。
Posted by あべちん at 2010年07月20日 23:30
蓄電さん、こんばんは。管理人です。

gcc-3.4.5辺りを使っているとそのようなエラーが出ることがあるようですが、お使いのgccのバージョンは何ですか?

http://www.cs.unipr.it/pipermail/ppl-devel/2009-August/015207.html

PPLのコンパイルには、gcc-4.0.3以上が必要だそうです。
Posted by あべちん at 2010年07月20日 23:35
あべちんさん
こんばんわー

なるほど!MINGWデフォルトだから3.4.5ですね!

バージョンアップしますー

ありがとうございました!!
Posted by 蓄電 at 2010年07月21日 22:28
あべちんさん、こんにちは。

うんともすんとも行かないです。

configure:16850: g++ -o conftest.exe -g -O2 -frounding-math -I/mingw/include -I/mingw/include -L/mingw/lib conftest.cpp /mingw/lib/libgmpxx.dll.a /mingw/lib/libgmp.dll.a -L/mingw/lib -L/mingw/lib >&5
Info: resolving ___gmp_version by linking to __imp____gmp_version (auto-import)
Info: resolving ___gmp_bits_per_limb by linking to __imp____gmp_bits_per_limb (auto-importc:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.
C:\Users\takahiro\AppData\Local\Temp\ccFB38a6.o: In function `main':
C:\msys\1.0\home\takahiro\ppl-0.10.2/conftest.cpp:93: undefined reference to `_Unwind_Resume'
C:\Users\takahiro\AppData\Local\Temp\ccFB38a6.o:conftest.cpp:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0)
'
collect2: ld returned 1 exit status
configure:16854: $? = 1
configure: program exited with status 1
configure: failed program was:


ということらしいのですが。
よくわからないです…
Posted by Kazuki Ashiya at 2010年07月25日 14:36
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/39677517
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック