開発ツールチェーンにuClibcを導入
ボードにプレインストールされているuClibcのバージョンの確認
~ # ls -al /lib/libuClibc* -rw------- 1 root root 329972 Aug 22 2006 /lib/libuClibc-0.9.28.so
0.9.28をダウンロードする。ここから↓
uClibc-0.9.28.3.tar.bz2
コンパイル
と思ったら、コンフィグのために、開発PCにncurses を導入する必要があるらしい。
ncurses-devや依存パッケージを導入。ここから↓
libncurses5-dev
libc6-dev
linux-libc-dev
あらためて、uClibc のコンフィグ&コンパイル&インストール。
$ tar jxf uClibc-0.9.28.tar.bz2 $ cd uCibc-0.9.28 $ make menuconfig Target Architecture → arm Target Architecture Feature and Options → /Target Processor Type → Arm 920T /Linux kernel header location → /usr/local/arm/3.4.1/arm-linux/ General Library Settings /Shared library loader naming prefix → ld-uClibc.so Library Instllation Optins → /Shared library loader path → /lib/ /uClibc runtime library directory → /usr/local/arm/3.4.1/arm-linux/ /uClibc development environment directory → /usr/local/arm/3.4.1/arm-linux/ uClibc development/debugging options → /Cross-compiling toolchain prefix → arm-linux-
他はデフォルトのまま。セーブして終了。Linuxヘッダのバージョンが少しズレているが、とりあえずこのまま。
$ make $ su # make install
インストールの結果。
/usr/local/arm/3.4.1/arm-linux/include/ が変更された。
/usr/local/arm/3.4.1/arm-linux/lib/ が変更された。
また、arm-linux-gcc などコンパイラ、リンカ自体は変更をされていない。ラッパー(arm-uclibc-gccなど)も作成されない。
インストールディレクトリを/usr/local/arm/3.4.1/arm-linux/uclibc というのも試したが、helloのリンクエラーを回避できなかったので没。
(参考) 「組み込みLINUXシステム構築」4.3.1章