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への依存を解消
関連ページ
	・apache2gccの再インストール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に上書きする。
インストールされるもの:
install files list(--enable-languages=c,c++): use command is: ls -pR /usr/local >~/bin.txt
install files list(default): use command is: ls -pR /usr/local >~/bin.txt

おまじない
	# 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」
このcheckを行わないと、clamavさんから
「私、ぶっ壊れたコンパイラで作られちゃったんですけどぉ?」
と、愚痴られます(clamscan --version)
なんか、brokenとか付くと嫌なので、ちょっち時間が掛かりますが、checkはきっちりしておいた方が良いですよ。

で、今回のgcc-3.4.6をインストールすると、今までコンパイルエラーで作れなかったようなものが、
あれもこれもどれもそれも、、、なんか、サクッと作れちゃったりします。
あぁ、今までの苦労は何だったんだろう・・・?と、思ってしまいますが、
今までの環境がおかしかった。と言うことでw

libgcc_s.so.1への依存を解消

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)
「パッチを作った」
わ、私が0から書いた訳じゃないですよ(ヾノ・∀・`)ナイナイ
いろいろ調べていたらこれの原型のパッチがあって、
余計な(その環境特有の)部分があったからそれをを削り取ったら上手く使えた。ってだけ。
私が必要だ方作ったの!何も、あんたのために作ったんじゃないからね!
そこのところ間違えないでよね!!!

前のページ? 次のページ?autoconf


戻るなら押せ!