971122 for arm-coff dies building newlib/libm: testcase attached

Robin Kirkham Robin.Kirkham@mlb.dmt.csiro.au
Wed Nov 26 23:40:00 GMT 1997


It's possible this is not a configuration that is supposed to work--I was 
just trying this out to prove a point but it backfired a little 8-(

I am not in a position to investigate it much, but I will report the problem
in case anyone is interested in or working on ARM support in egcs.

I built binutils 2.8.1 and egcs 971122 with target configuration arm-coff
(strictly, arm-1-coff) on a sun-sparc-solaris2.5.1 host. The tools and compiler
build without incident, including the gcclib and libstdc++ libraries. Then 
I configured newlib 1.8.0 similarly and started building it. The compiler
failed compiling newlib/libm/math/ef_exp.c. The error was

[much deleted ...]
arm-1-gcc -g -O2  -O2 -DABORT_PROVIDED -fno-builtin 
-I/opt/embedded/src/newlib-1.8.0/build-arm-1-coff/arm-1-coff/newlib/./targ-incl
ude -I/opt/embedded/src/newlib-1.8.0/newlib/./libc/include -c
../../../../../newlib/libm/math/ef_exp.c
../../../../../newlib/libm/math/ef_exp.c: In function `__ieee754_expf':
../../../../../newlib/libm/math/ef_exp.c:102: internal error--unrecognizable 
insn:
(insn 621 66 77 (set (reg:SF 49)
        (if_then_else:SF (eq (reg:CC 24 cc)
                (const_int 0))
            (reg/v:SF 31)
            (const_double:SF (cc0) 0 0))) -1 (insn_list 66 (nil))
    (expr_list:REG_DEAD (reg:CC 24 cc)
        (expr_list:REG_DEAD (reg/v:SF 31)
            (nil))))
arm-1-gcc: Internal compiler error: program cc1 got fatal signal 6
gmake[3]: *** [ef_exp.o] Error 1
gmake[3]: Leaving directory
`/opt/embedded/src/newlib-1.8.0/build-arm-1-coff/arm-1-coff/newlib/libm/math'


I've prepared a single file testcase bad.c (simply using arm-1-gcc -E) which
is attached to this mail. It causes a similar error (below). The compile 
succeeds if you don't use -O.

% arm-gcc -O -c bad.c    
ef_exp.c: In function `__ieee754_expf':
ef_exp.c:102: internal error--unrecognizable insn:

(insn 593 589 77 (set (reg:SF 46)
        (if_then_else:SF (eq (reg:CC 24 cc)
                (const_int 0))
            (reg/v:SF 31)
            (const_double:SF (cc0) 0 0))) -1 (insn_list 66 (nil))
    (expr_list:REG_DEAD (reg:CC 24 cc)
        (expr_list:REG_DEAD (reg/v:SF 31)
            (nil))))
arm-1-gcc: Internal compiler error: program cc1 got fatal signal 6
%

As I say I am not in a position to investigate this, but of course I'll
any addition information if someone wants.

Thanks,

Robin Kirkham			CSIRO Manufacturing Science and Technology
Project Engineer		Locked Bag 9, Preston 3072, Australia
robin.kirkham@mlb.dmt.csiro.au	Phone: +61 3 9662-7756  Fax: +61 3 9662-7851



More information about the Gcc mailing list