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も使えるようになったところで、適当フォントを使いつつ読み進めるのであった……。