WITNESS と INVARIANTS2007年02月04日 11時06分08秒

CURRENT 用の GENERIC カーネルには特殊なデバッグオプションが有効になっている。その為、初期値を使っていると、動作が遅くなる。GENERIC ファイルによると WITNESS はデッドロックを調べ、INVARIANTS は関数に渡される引数を点検するらしい。

これらの設定を変えた後は、一度全てのオブジェクトファイルを削除する必要があるようだ。make では依存関係を正しく解決出来ないらしく、古いオブジェクトファイルを残したまま buildkernel をすると、起動できないカーネルが出来てしまう。

起動できなかったら、二段目のブートローダで、プロンプトモードに移行し、boot kernel.old で起動する。もう一度、カーネルを作り直して make reinstallkernel だ。間違えて make installkernel をすると、kernel.old が消えてしまう。そのため、新しいカーネルで起動できないと悲惨なことになる。