newlib-1.8.1 の使用法
[Up]
- newlib-1.8.1.tar.gz を入手し,ソースコードを展開する.
archie 等で簡単に見つかる.newlib-1.8.2 は 1.8.1 か
ら大きく変わってしまっているため,ここで述べる方法ではすぐには使えない.
- newlib-1.8.1-eota.patch
を入手する.
- newlib-1.8.1 の下に移動し,patch -p1 < newlib-1.8.1-eota.patch
としてパッチをあてる.
- ./configure --target=eota; make として make する.
newlib-1.8.1 の下に eota/newlib というディレクトリが
作られ,crt0.o, libc.a, libm.a ができる.
- ソースコードをコンパイルするときには,include ファイルのサーチパスに
newlib-1.8.1/eota/newlib/targ-include と
newlib-1.8.1/eota/newlib/libc/include を加える.
- オブジェクトコードをリンクして実行可能ファイルを作る場合には,
newlib-1.8.1/eota/newlib の下にある crt0.o と
libc.a をリンクする.算術関数を使う場合には libm.a
も加える.さらに,kernel/POSIX/libc/libnative.a もリンクする
必要がある.ld には entry として _start を指定す
る.テキストセグメントの開始アドレスには特に指定はないが,習慣的に
0x00001000 としている.ld のオプションとしては
-Bstatic -e _start -Ttext=0x00001000 となる.