macOS上でネイティブにLinuxカーネルをビルドする:コンパイル地獄への旅
この記事では、macOS上でネイティブにLinuxカーネル(RISC-Vアーキテクチャ)をビルドした際の著者の経験について詳しく説明しています。この旅は多くの課題に満ちていました。古いmakeのバージョン、macOSのldがLinuxの期待と互換性がないこと、elf.hとbyteswap.hヘッダーファイルの欠如、uuid_tとsedのバージョン競合などです。著者はHomebrewを使用して最新のツールチェーン(make、llvm、lld、libelf、gnu-sed)をインストールし、ヘッダーファイルの不一致と型定義の競合に対処するためにパッチを作成することで、これらの問題を克服しました。カーネルは正常にビルドされ、クリーンビルドではmacOSの方がDockerよりも高速でしたが、インクリメンタルビルドでは遅くなりました。著者は、ビルドの問題の解決は継続的な統合と同様の、継続的で反復的なプロセスであると結論付けています。
続きを読む