Akira TAKAMISAWA
akira****@takam*****
2003年 8月 28日 (木) 16:53:15 JST
たかみさわと申します。 初めて投稿します。 長文になってしまい、大変申し訳ございませんが宜しくお願いします。 現在 AKI-H8/3069F にて uClinux を動作させてみようと思い ソースより開発環境を構築している最中です。 しかし、uClibc の make で躓いておりまして、 ご指南いただきたくメール致しました。 まず以下を取得してきて、それぞれ必要なパッチを当てました。 ----------- binutils-2.14.tar.gz gcc-3.3-core.tar.gz + gcc-3.3.diff elf2flt-h8300.tar.gz(wikiより。パッチ適用済アーカイブ。) newlib-1.11.0.tar.gz uClinux-dist-20030522.tar.gz + uClinux-2.4.x + uClinux-dist-h8300h.diff.gz + blkdev-fix.diff uClibc-0.9.20.tar.gz ----------- 次にbinutilsを下記のように入れました。 ----------- $ export UCPREFIX=/usr/local/uC $ tar zxpvf binutils-2.14.tar.gz $ cd binutils-2.14 $ mkdir objdir $ cd objdir $ ../configure --prefix=${UCPREFIX} --target=h8300-elf $ make # make install 次にGCCを下記のように入れました。 ----------- $ export PATH=${PATH}:${UCPREFIX}/bin $ tar zxpvf gcc-3.3.tar.gz $ tar zxpvf newlib-1.11.0.tar.gz $ cd gcc-3.3 $ ln -s ../newlib-1.11.0/newlib . $ patch -p1 < ../gcc-3.3.diff $ mkdir objdir $ cd objdir $ ../configure --prefix=${UCPREFIX} --target=h8300-elf \ --with-newlib --enable-languages=c $ make # make install gcc-3.3/ 以下に newlib-1.11.0/newlib の シンボリックリンクを張っておくと --with-headers オプションは必要ないと思い、 ここではこのオプションは付けていません。 ちなみにこの際、--enable-languages='c,c++'とすると C++はサポートしていない旨のエラーでmakeできないので、 --enable-languages=c としてmakeしています。 これもおかしいとは思ったんですが。 次に elf2flt & flthdr を入れました。 ----------- $ BINUTILS_SRCDIR=(binutilsを展開したディレクトリ) $ ./configure --prefix=${UCPREFIX} \ --target=h8300-elf \ --with-libbfd=${UCPREFIX}/lib \ --with-bfd-include-dir=${UCPREFIX}/include \ --with-binutils-include-dir=${BINUTILS_SRCDIR}/include $ make # make install 次に uClinux-dist のソースにパッチを当てました。 ----------- $ cvs -d:pserver:anony****@cvs*****:/var/cvs login Logging in to :pserver:anony****@cvs*****:2401/var/cvs CVS password: $ cvs -z3 -d:pserver:anony****@cvs*****:/var/cvs co -P uClinux-2.4.x $ mv uClinux-dist/linux-2.4.x uClinux-dist/linux-2.4.x- $ mv uClinux-2.4.x uClinux-dist/linux-2.4 $ cd uClinux-dist $ zcat ../uClinux-dist-h8300h.diff.gz | patch -p0 $ cd linux-2.4.x $ patch -p0 < ../../blkdev-fix.diff 最後に uClibc-0.9.20 をコンパイルしようとして 途中でエラーを吐いて終了します。 ----------- $ vi Rules.mak CROSS=h8300-elf- $ make menuconfig $ make (中略) make[2]: Entering directory `${TMPDIR}/uClibc-0.9.20/libc/inet' h8300-elf-gcc -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -Os -mh -mint32 -fsigned-char -fno-builtin -nostdinc -D_LIBC -I../../include -I. -I/usr/local/uC/lib/gcc-lib/h8300-elf/3.3/include -DNDEBUG -DL_encodeh resolv.c -c -o encodeh.o In file included from ../../include/asm/param.h:4, from ../../include/linux/param.h:4, from ../../include/sys/param.h:24, from ../../include/resolv.h:55, from resolv.c:73: ../../include/linux/config.h:4:28: linux/autoconf.h: No such file or directory make[2]: *** [encodeh.o] Error 1 make[2]: Leaving directory `${TMPDIR}/uClibc-0.9.20/libc/inet' make[1]: *** [_dir_inet] Error 2 make[1]: Leaving directory `${TMPDIR}/uClibc-0.9.20/libc' make: *** [_dir_libc] エラー 2 config.h の内容は ----------- #ifndef _LINUX_CONFIG_H #define _LINUX_CONFIG_H #include <linux/autoconf.h> #endif ----------- となっており、この autoconf.h が無いと怒られます。 どのような対処を取ったらよろしいのか ご教授頂けますでしょうか。宜しくお願いいたいます。 なお、以下の構成でも同様のエラーが発生する事を 確認しております。 ----------- gcc-3.3.1-core.tar.gz + gcc-3.3.diff uClibc-0.9.19.tar.gz --- Akira TAKAMISAWA akira****@takam*****