clang/llvm でカーネルを作ってみる ― 2009年03月12日 11時43分10秒
Building FreeBSD with clang/llvm に手順が載っている。
が説明されている手順だ。試したところ、旧来のカーネルの作り方でしか出来ない。どうも、llvm では# cd /usr/ports/devel/llvm-devel/ # make install # cd /usr/sys/{amd64,i386}/conf/ # config GENERIC # cd ../compile/GENERIC/ # make depend # env CC=ccc make # make KERNEL=llvm install
make depend
が処理が出来ないようだ。また、buildkernel では、無理なようだ。
buildkernel を試したところ、以下のように失敗した。
$ echo 'include GENERIC' > sys/amd64/conf/LLVM
$ make buildkernel KERNCONF=LLVM CC=ccc
cd /usr/obj/usr/src/head/sys/LLVM; MAKESRCPATH=/usr/src/head/sys/dev/aic7xxx/ai
casm make SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF -f /usr/src/head/sys/dev/aic7xx
x/aicasm/Makefile
Warning: Object directory not changed from original /usr/obj/usr/src/head/sys/LL
VM
ccc -O2 -pipe -nostdinc -I/usr/include -I. -I/usr/src/head/sys/dev/aic7xxx/aicas
m -c /usr/src/head/sys/dev/aic7xxx/aicasm/aicasm.c
ccc: not found
*** Error code 127
1 error
*** Error code 2
1 error
*** Error code 2
1 error
そこで、記載されている手順道理に事を進める。
$ cd sys/amd64/conf
$ config LLVM
Kernel build directory is ../compile/LLVM
Don't forget to do ``make cleandepend && make depend''
$ cd ../compile/LLVM/
$ make depend
出力は取っていないのだが、実は make depend
に失敗した。buildkernel では問題なく、カーネルを作れているので無視して make
を続けた。初めての時や、make clean
を行うなどして、全てのオブジェクトを作るのなら make depend
が無くても支障は無い。
この後にコンパイルが続いたが、カーネルは作れなかった。まだ、いつでも llvm で作れるような状態では無いようだ。折角なので、折りをみて試したいと思う。
最近のコメント