newlib-1.8.1 の使用法


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