gcc3のインストール
gcc-2.95.3環境でclamavをインストールしようとすると、
「gcc古すぎwこんなんでコンパイルできねーからwww」
と言われてコンパイルがエラーで終了しまいます。
コンパイルできないと非常に困りますので、gccの3.x系をインストールしましょう。
っていうか、3.x系もかなり前に開発は終了しちゃってるので、最終版gcc-3.4.6のインストールになります。
大丈夫。ここでインストールできたって報告があるから、だ〜いじょ〜ぶ。
「かなり前に開発は終了」
まぁ、そういうわけでgcc-3.4.6も古いです。
clamavさんからも「そのgcc古すぎw」と言われてしまいます。
gcc-4.xをインストールしたいんですが、gcc-2.95.3からはいくら何でも直接コンパイルできないだろうと。
3.x系から内部の仕様がかなり変わったらしいですし・・・
やること一覧 ・gccのインストール ・libgcc_s.so.1への依存を解消
関連ページ ・apache2 ・gccの再インストール ・gcc用コンパイルスクリプト
注意
thttpdが80ポートで動いているとコンパイルエラーを起こしてしまう可能性があるので、
thttpdのアクセスポート変更を行うこと。
gcc-3.4.6.tar.gzを探してくる。
Index of /pub/GNU/gcc/
で、ユーザーのホームディレクトリにFFFTPで送る。
例のあれ
$ wget http://ftp.yz.yamagata-u.ac.jp/pub/GNU/gcc/gcc-3.4.6/gcc-3.4.6.tar.gz $ tar xvfz gcc-3.4.6.tar.gz $ cd gcc-3.4.6 $ ./configure --prefix=/usr --enable-languages=c,c++,objc $ make bootstrap 注:全機能(--enable-languages=c,c++,objcの指定なし)をインストールしてはいけない libtoolを作るときにerrorが出る(javaの実行環境を入れるなら話は別だと思う) 注:作るのに時間が掛かる。仕掛けたら、やっぱり寝ようw $ make -k check # make install 注:gcc-2.95.3に上書きする。インストールされるもの:
# cd /usr/bin # strip -p gcc c++ g++ cpp gcov g77 jv-scan jcf-dump gcjh gcj jar grepjar jv-convert gij \ rmiregistry rmic 注:インストールしていないモノも含まれるので文句を言われる。 が、気にしない「make -k check」
gcc-3.4.6では共有ライブラリ(shared library)を作るとlibgcc_s.so.1を参照するようになる様です。
この参照があるとHGXではエラーが発生し、コンパイルが上手く行かないこともあるようなので、
修正が必要となる場合があります。
N/HGに関しては同部位の記述が異なるため、問題になるか不明(libgcc_s.so.1の参照はある)
パッチを作ったので適応すれば良い。
root権限で実行すること
玄箱N/HG
# wget -O ~/specs-3.4.6.patch http://kuro.crow2.net/install/data/specs-hg-3.4.6.patch
玄箱HGX
# wget -O ~/specs-3.4.6.patch http://kuro.crow2.net/install/data/specs-hgx-3.4.6.patch
オリジナルをバックアップ
# pushd /usr/lib/gcc/powerpc-unknown-linux-gnu/3.4.6; cp -p specs specs.org; popd
# patch -p0 <~/specs-3.4.6.patch
# rm ~/specs-3.4.6.patch
再起動
# shutdown -r now
patch: 玄箱N/HG用パッチ(specs-hg-3.4.6.patch)
patch: 玄箱HGX用パッチ(specs-hgx-3.4.6.patch)
「パッチを作った」戻るなら押せ!