This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: m68k build failure


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