Hiroki MINEMATSU
mine****@lanca*****
2003年 11月 28日 (金) 20:43:44 JST
峰松です お世話になります Akiyoshi SATO wrote: >[2] Makefileのbusybox:〜の部分を以下のように書き換える。 >########################################################################################## >busybox: .depend include/config.h $(libraries-y) > $(CC) $(LDOPT) -o $@ $(OBJCTS) $(LIBBB_LIB) $(UCL) >########################################################################################## > > 上記ですが、 h8300-elf-ld.real が何故か *.aの中から _mainを検出できない ために … という認識で正しいでしょうか。 当方も別経路から同じような対処に落ち着 きました。 こちらでとりました手法では: .config: EXTRA_CFLAGS_OPTIONS="-mh -mint32 -static -nostartfiles -I. -I/usr/h8300-linux-uclib c/usr/include -Wall" さらに Makefileの busyboxの部分を busybox: .depend include/config.h $(libraries-y) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ `echo $(libraries-y)|sed "s/applets\.a/*.o/"` $(LIBRARIES) 上記のように変更し、 make CROSS=h8300-elf- \ LDFLAGS="-static -nostartfiles /usr/h8300-linux-uclibc/usr/lib/crt0.o -L/usr/h8300-linux-uclibc/usr/lib -Wl,-elf2flt -Wl,-move-rodata -Wl,--verbose" で makeしました。 >[3] make menuconfig でShellのASHを外す。 > > 上記ですが、h8300-elf-gcc が コンパイラのバグ?によって停止するために、それ を回避されていると推測しております。 当方では shell/ash.c のコンパイルが どう しても通りませんでした(gcc-3.2.1、gcc-3.2.3) >[5] 続いて、make clean ; make とすると、次のようなエラーが出る。 > > busybox.elf2flt: In function `.L40': > busybox.elf2flt(.text+0x12b1b): undefined reference to `_daemon' > busybox.elf2flt: In function `.L91': > busybox.elf2flt(.text+0x134fb): undefined reference to `_daemon' > collect2: ld returned 1 exit status > make: *** [busybox] エラー 1 > > 上記は一部のコマンドが libbsdを使用するため、リンクに失敗しているようで した。 for a in `find . -name '*.o'`;do echo $a;h8300-elf-nm $a|grep _daemon;done 上記のような スクリプトで_daemonに関連しそうなライブラリを抜き出して、 configから 外す方法で回避しました(後ろ向き…)。 その他、最後のリンク時に /usr/local/lib/gcc-lib/h8300-elf/3.2.3/../../../../h8300-elf/bin/ld.real: skipping incompatible /usr/h8300-linux-uclibc/usr/lib/libc.a when searching for -lc /usr/local/lib/gcc-lib/h8300-elf/3.2.3/../../../../h8300-elf/bin/ld.real: cannot find -lc 上記のようなエラーメッセージに悩まされましたが、 -mh -mint32 -static 等 のリンカ オプションを付け忘れた場合に出るようです(ので、チェックポイントor FAQとして 何処かにまとめておきます…)。 # 大逃避中…ううう -- 峰松 浩樹 mine****@lanca***** TEL: 095-840-0021 DFAX: 020-4669-6889