glibcでbusyboxをコンパイルする
make allnoconfigしているのは一旦全ての選択を解除する為。
menuconfigでは 以下をチェックし最小にする。
Shells ---> ash
Coreutils ---> cat,df
Busybox Settings ---> Build Options ---> Build BusyBox as a static binary (no shared libs)
$ wget http://busybox.net/downloads/busybox-1.7.2.tar.bz2 $ tar xjpf busybox-1.7.2.tar.bz2 $ cd busybox-1.7.2 $ make allnoconfig $ make menuconfig $ make
ところが、以下のエラーが出て現時点ではglibcではコンパイルに失敗する。
CC applets/applets.o applets/applets.c:20:2: warning: #warning Static linking against glibc produces buggy executables applets/applets.c:21:2: warning: #warning (glibc does not cope well with ld --gc-sections). applets/applets.c:22:2: warning: #warning See sources.redhat.com/bugzilla/show_bug.cgi?id=3400 applets/applets.c:23:2: warning: #warning Note that glibc is unsuitable for static linking anyway. applets/applets.c:24:2: warning: #warning If you still want to do it, remove -Wl,--gc-sections applets/applets.c:25:2: warning: #warning from top-level Makefile and remove this warning. applets/applets.c:26:2: error: #error Aborting compilation. make[1]: *** [applets/applets.o] エラー 1 make: *** [applets] エラー 2
標準パッケージだけで生成したかったので、とりあえずあきらめることにする。
ちなみにuClibcでコンパイルするには以下のようにする
$ make CC=/usr/bin/i386-uclibc-linux-gcc