m68k build failure
Brian Witt
aleks@spoda.gentoo.com
Wed Jun 4 15:35:00 GMT 1997
I have this exact same problem. It seems the optimizer places
a few variables into address registers. In _floatdixf, there is
if( u < 0 )
u = -u, negate = 1;
This is when the bad assembly is generated. I believe it is a
compiler bug. I scanned the m68kmd.c file and it look OK, but
I ain't no expert. I filed a bug report Sunday, but have received
no reply to it. Not sure when/if it will be fixed.
Work-around.
gcc-2.7.2% make TARGET_LIBGCC2_CFLAGS=-O0
Which disables optimization when compiling the parts of libgcc2.c
file. When the compiler, ./xgcc is invoked, you'll see -O, but
the compiler only uses the *last* optimization specified.
Hope that helps you along. GCC 2.7.0 does not have this problem.
Neal Becker writes:
-----------
Now gcc-2.7.2.2 cross configured as:
# GCC was configured as follows:
./configure --verbose --target=m68k-none-coff --prefix=/usr/local/m68k
--with-gnu-as --with-gnu-ld
echo host=hppa1.1-hp-hpux9.05 target=m68k-none-coff build=hppa1.1-hp-hpux9.05
then make all in gcc-2.7.2.2 produced:
_fixunsxfdi
_floatdixf
/usr/tmp/cca15191.s: Assembler messages:
/usr/tmp/cca15191.s:97: Error: operands mismatch -- statement `tst.l %a4'
ignored
make[2]: *** [libgcc2.a] Error 1
make[2]: Leaving directory `/a/data/src/gcc-2.7.2.2'
make[1]: *** [stmp-multilib-sub] Error 2
make[1]: Leaving directory `/a/data/src/gcc-2.7.2.2'
make: *** [stmp-multilib] Error 1
Any ideas?
-----------
--- Real programmers desolder in the nude.
--- brian witt
More information about the crossgcc
mailing list