Alexander Leidinger から current へのメールが投稿された。
(メールの内容)
Tom Rhodes が私の icc 用パッチをコミットした。これは gcc を使用した コンパイルには何の影響も与えない。しかし、インテル製の C/C++ コンパイラ を用いたカーネルのコンパイルを可能にするものである。
icc でカーネルをコンパイルするには、/usr/ports で lang/icc7 の最新版(ついさっき、私が更新を かけたばかりだが)を既に入手 していることを確認して欲しい。 そして、post-install のメッセージで要求されているように、icc7 の bin ディレク トリを PATH に加えて欲しい。 不幸なことに、lang/icc (これは icc v8 だが) でカーネルをコンパイルすると 壊れたカーネル(FPU を見つけられない)ができてしまうので注意して欲しい。
加えて、world を構築しインストールするには、share/mk を更新する 必要がある。
新しいカーネルコンパイル用のディレクトリ (例えば、config -d ../compile/MYKERNEL_icc MYKERNEL を入力する) を作ったなら、そこに cd して欲しい。 icc でコンパイルするのは、gcc でコンパイルするのとほとんど同じである。 構築システムに icc をコンパイラとして使用することを伝えればいいだけである。 例えば、"CC=icc make depend && CC=icc make" のようにコマンド入力すればよい。
ここで、コマンドで定義するか、make.confを修正するかして、適切な CFALGS が 付加されるようにしなければならない。
---snip---
.if ${CC} == icc
CFLAGS=-O2 -ip
COPTFLAGS=-O2 -ip
.else
CFLAGS=-O -pipe
COPTFLAGS=-O -pipe
.endif
---snip---コンパイル時に -ipo を指定してはならない。構築システムは ld を使って直接 カーネルとモジュールをリンクするが、-ipo はリンク処理にインテル製のリンカー を呼び出してしまうからである。
もしサウンドモジュールをカーネルに加えようとすると、現在のカーネルは 失敗するので注意して欲しい。
icc でコンパイルしたカーネルに、gcc でコンパイルしたモジュールを 使うことは可能である。この逆も可能である。
P4 で最適化したカーネルは P4 の上で以前より速くブートするように感じるが、 何らかの測定手段で確認したわけではないので、現実を無視した妄想だったかも しれない。もし誰か何かのベンチマーク(どういうものがあるかよく知らないが) を走らせたなら、是非結果を知らせて欲しい。
今初めて icc をインストールしようとする人には、port がどこからダウンロード するか教えてくれるだろう。見つけられない人は、ダウンロードのやり方を 注意深く読んでいないからだろう。icc について特に何も情報を送らないし、 私に尋ねないで欲しい。
コミッタ-諸氏へ:
我々は icc の商用ライセンスを持っているので、icc でコンパイル したバイナリの配布を許可されている。(icc でリリース全体を構築するには、 まだ程遠い状況ではあるが)
普通のやつらの下を行け -- バッドノウハウ専門家