current: arm codegen severely broken
Richard Earnshaw
rearnsha@arm.com
Mon Aug 10 06:55:00 GMT 1998
> Since about 6/21 snapshot, possibly prior, the arm codegen is broken to the
> point that egcs cannot compile itself.
>
> This is seen on arm-netbsd, but the errors are /very/ likely the codegen
> engine as any compiler generated by gcc 2.7.2.2 (NetBSD's current compiler)
> will run fine. However, if a 'make bootstrap' (or its equivalent of bulding
> a gcc, installing, and building another one from that) is done, you get the
> lovely specific error of:
>
> xgcc: Internal compiler error: program cc1 got fatal signal 11
>
> What's actually happening is that cc1 is coredumping, which I can cause
> simply by running cc1 with no arguments. It happens before stdin is even
> read.
>
> Backtrace:
>
> #0 0xe9958 in init_emit_once (line_numbers=2708776) at ../emit-rtl.c:3462
> 3462 const_tiny_rtx[i][(int) mode] = tem;
> #1 0x48858 in compile_file (name=0xdf1c "stdin") at ../toplev.c:2548
> #2 0x4e5dc in main (argc=1, argv=0xefbfd838, envp=0xefbfd840)
> at ../toplev.c:4838
> #3 0x10d0 in start ()
First of all, my apologies for the delay replying to this, I've been
trying to get my own shark board up and running.
My guess is that this is the stage2 compiler that is crashing, and I would
imagine this is the first time floating point gets used in gcc. You are
probably running into a mis-configuration problem, since the stage1
compiler will build a stage2 compiler with hardware floating point.
However, unless your kernel has an FPE in it, this will promptly crash.
Try the following patch (there is also a patch to your recent
ASM_WEAKEN_LABEL change to put a new-line between the two statements).
Jeff, can this go in egcs 1.1?
Richard.
<date> Richard Earnshaw (rearnsha@arm.com)
* netbsd.h (ASM_WEAKEN_LABEL): Insert newline between .globl and .weak
directives.
* arm/netbsd.h (TARGET_DEFAULT): Default includes software floating
point.
(CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
More information about the Gcc-bugs
mailing list