2021年05月03日 : OS自作本に戻った

組込みRustを一通り読んだので

OS自作本に戻ってきました。 最後、何で悩んでたのかなーと思い出したところ、vsprintfを使うようにしたあたりで Cのライブラリどうしようって事になって止まっていたのでした。

まぁ、本的には著者が用意したたNewlib使えってはなしだったんですが、 得体の知れないNewlibの謎ビルドを使うのは何か抵抗があったので、 ひとまず手元でビルドしなおしました。

ちょっと手間取りましたが、newlibを

$ ../newlib-4.1.0/newlib/configure --prefix=/home/rare/work/read/zero-kara-no-os-jisaku-nyumon/newlib-build/build/../../newlib --target=x86_64-none-elf --disable-multilib --disable-newlib-multithread --disable-newlib-io-pos-args --disable-newlib-atexit-dynamic-alloc --disable-newlib-iconv --enable-newlib-nano-malloc --enable-newlib-nano-formatted-io --enable-target-optspace --disable-newlib-io-c99-formats --enable-newlib-reent-small --disable-newlib-reent-small

みたいな感じでビルドしました。 いくつか無駄にオプションつけてると思いますが、 ひとまずこれでsbrkrのシンボルが無い、以外のリンクエラーは出ないようになり、 さらにsbrkrのシンボルについてはlibnosys.aを使うのがよさげのようだったので、

$ ../newlib-4.1.0/libgloss/libnosys/configure --target=x86_64-none-elf --prefix=/home/rare/work/read/zero-kara-no-os-jisaku-nyumon/newlib-build/build/../../newlib --disable-multilib

として作ったlibnosys.aをリンクするようにしたらなんとか直りました。 ということで、printfも使えるようになったところで、適当フォントを使いつつ読み進めるのであった……。

自作OS途中経過