2009年11月19日

[plamo:30268] gcc (c++) 4.3.4

ごぶさたしておりました。

Plamo上でのオープンソースソフトウェアのインストールで困ることは少なかったのですが、
Plamo 4.7を使い始めてみたら、4.6でmakeできたものがmakeできないことがあり、
自力解決が困難です。どなたか原因に心あたりはありませんか。

具体例は、antlr (ANother Tool for Language Recognition) 2.7.7
( http://www.antlr2.org/download.html にある antlr-2.7.7.tar.gz )

です。(Antlrはすでにversion 3.2があり、インストール手順がまったく違うのですが、
これのversion 2に依存しているソフトウェアを使いたかったのでした。)

Plamo 4.6 (のほぼ初期状態)では、問題なく configure、make、make installできました。
ところが4.7では、configureは正常に終了しますが、
makeの途中のC++のコンパイル (lib/cpp/src/CharScanner.cpp のところ)で
strcasecmpというものが定義されていないというエラーで異常終了します。
その部分のログを引用します。

*** compiling /home/masudako/making/antlr-2.7.7/lib/cpp/src/../../../lib/cpp/src/CharScanner.cpp
In file included from /home/masudako/making/antlr-2.7.7/lib/cpp/src/../../../lib/cpp/src/CharScanner.cpp:10:
/home/masudako/making/antlr-2.7.7/scripts/../lib/cpp/antlr/CharScanner.hpp: In member function 'bool antlr::CharScannerLiteralsLess::operator()(const std::string&, const std::string&) const':
/home/masudako/making/antlr-2.7.7/scripts/../lib/cpp/antlr/CharScanner.hpp:565: error: 'strcasecmp' was not declared in this scope

(なお、config.logを見ると、
warning: conflicting types for built-in function 'strcasecmp'
というメッセージが出ていました。
ただしこれは、うまくいったPlamo 4.6の場合も同じものが出ます。)

Plamo 4.6でも、gccを (libgcc, gcc-g++, gcc-fortranも)
4.3.4にアップデートしたら、同じところで止まるようになりました。
4.2.4までもどしたら、また正常にmakeできるようになりました。

したがって、gccのバージョン4.3に伴う問題だと思いますが、
gccそのものの問題なのか、Plamoのパッケージの問題なのかはわたしにはわかりません。
推測ですが、c++のヘッダのありかがコンパイラから見つからないのでしょうか。
あるいは、gccの仕様のstrcasecmpのあたりが変わったのでしょうか。

なお、4.71rc1も見ましたが、関係するものの更新はなさそうです。
--
ますだ こういち
masuda@xxxxx (職場)

投稿者 xml-rpc : 2009年11月19日 15:41
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/90602
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。