[Uclinux-h8-devel] Re: float/doubleでコンパイルエラー

Zurück zum Archiv-Index

Yoichi Koyanagi yk****@tinyw*****
2004年 8月 28日 (土) 16:26:26 JST


小柳です.その後の状況です.

http://lists.sourceforge.jp/mailman/archives/uclinux-h8-devel/2004q2/000237.html

と何か関連があるのかと思い,t-h8300 の LIB2FUNCS_EXTRA から floatlib.c を削除
してもう一度 gcc をコンパイルしてみましたが,そうすると元メールと同じように
___extendsfdf2 が undefined になってしまいました.

そこで,元の lib/gcc-lib/h8300-elf/3.3/h8300h/int32/libgcc.a で,
今度は floatlib.o は残して,floatlib.o と衝突してしまう _si_to_df.o などを
片っ端から h8300-elf-ar で削除してみました.そうすると,float/double を
含むソースもコンパイルは通るようになったのですが,演算が行われていない様子
(printf すると常に 0.0000 になる)になりました.

何をやり損なっているのかまだわかりません….

> 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
> ...(以下省略)
> ====================================



Uclinux-h8-devel メーリングリストの案内
Zurück zum Archiv-Index