newlibの導入(2)

前回newlibの導入はできたと思って記事を書いたけれど、間違いだった
今回はgcc4.2.3をコンパイルできたのでnewlibのコンパイルにも成功した
newlibをコンパイルしてインストールするとインストール先にlib/とinclude/フォルダができる
lib/にはcygmon-crt0.o、cygmon.ld、libc.a、libcygmon.a、libg.a、libm.a、libnosys.aが入っているが
libc,libm,はライブラリそのものであり、libgはよくわからない。
cygmon.ldはリンカスクリプトであり、自分が勝手に作ったメモリマップと一致しないので使わない
libnosys.aはシステムコール呼び出し部で、システムコールが実装されていない場合のために用意されているみたいだ
newlib/libgloss/以下にそのソースコードがある
cygmon-crt0.oはスタートアップコードだろうが、よくわからんので放置

実験
printfではpagefaultが発生する
getpidは成功する(常に1を返す(libnosys.aの中に記述されているとおり))

感想
大分調整が必要になりそう
早くprintfが使えるようになりたい
coreutilsの一部が使えるようになれば、OSっぽさが増すはず。頑張ろう