Olimex CS-E9302日記 - 開発ツールチェーンに uClibc を導入

開発ツールチェーンに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章