Yoichi Koyanagi
yk****@tinyw*****
2004年 8月 23日 (月) 16:28:04 JST
小柳です.こんにちは. gcc-3.3 の h8300-elf で,float/double を含むユーザプログラムを コンパイルしようとしたところ,エラーとなってしまいました. binutils: 2.14 gcc : 3.3 + ecos-h8 リリースファイルの gcc.diff (2004-04-20の方) elf2flt : cvs + elf2flt.patch uClibc : uClinux dist 20040408 + uClinux-dist-20040408.diff ソースは,printf("hello\n") だけのもので,これだけだと正常に コンパイルできてaki3069でちゃんと動くのですが,ここに float f = 1.23; printf("hello %f\n", f); を加えただけで 以下のようなエラーとなりました. 何か gcc の構築に失敗しているでしょうか. よろしくお願いいたします. ==================================== h8300-elf-gcc -I/share/src/uClinux/uClinux-dist-20040408-h8/lib/uClibc/include -mh -mint32 -fno-builtin -nostartfiles /share/src/uClinux/uClinux-dist-20040408-h8/lib/uClibc/lib/crt0.o -o hello hello.c -L/share/src/uClinux/uClinux-dist-20040408-h8/lib/uClibc/lib -Wl,-elf2flt -lc /usr/local/h8300-elf/lib/gcc-lib/h8300-elf/3.3/h8300h/int32/libgcc.a(floatlib.o)(.text+0x45c): In function `__floatsidf': /share/src/eCos/gcc-3.3/gcc/floatlib.c:362: multiple definition of `___floatsidf' /usr/local/h8300-elf/lib/gcc-lib/h8300-elf/3.3/h8300h/int32/libgcc.a(_si_to_df.o)(.text+0x0):/share/src/eCos/build/gcc-3.3/gcc/dp-bit.c:1295: first defined here/usr/local/h8300-elf/lib/gcc-lib/h8300-elf/3.3/../../../../h8300-elf/bin/ld.real: Warning: size of symbol `___floatsidf' changed from 316 in /usr/local/h8300-elf/lib/gcc-lib/h8300-elf/3.3/h8300h/int32/libgcc.a(_si_to_df.o) to 184 in /usr/local/h8300-elf/lib/gcc-lib/h8300-elf/3.3/h8300h/int32/libgcc.a(_si_to_df.o) /usr/local/h8300-elf/lib/gcc-lib/h8300-elf/3.3/h8300h/int32/libgcc.a(floatlib.o)(.text+0x72a): In function `__negdf2': /share/src/eCos/gcc-3.3/gcc/floatlib.c:459: multiple definition of `___negdf2' /usr/local/h8300-elf/lib/gcc-lib/h8300-elf/3.3/h8300h/int32/libgcc.a(_negate_df.o)(.text+0x0):/share/src/eCos/build/gcc-3.3/gcc/dp-bit.c:1433: first defined here ...(以下省略) ====================================