http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55211
Bug #: 55211 Summary: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassig...@gcc.gnu.org ReportedBy: mi...@it.uu.se Attempting to bootstrap 4.8-20121104 on sparc64-linux fails with: /mnt/scratch/objdir48/./gcc/xgcc -B/mnt/scratch/objdir48/./gcc/ -B/mnt/scratch/install48/sparc64-unknown-linux-gnu/bin/ -B/mnt/scratch/install48/sparc64-unknown-linux-gnu/lib/ -isystem /mnt/scratch/install48/sparc64-unknown-linux-gnu/include -isystem /mnt/scratch/install48/sparc64-unknown-linux-gnu/sys-include -g -O2 -m64 -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -fPIC -I. -I. -I../../.././gcc -I/mnt/scratch/gcc-4.8-20121104/libgcc -I/mnt/scratch/gcc-4.8-20121104/libgcc/. -I/mnt/scratch/gcc-4.8-20121104/libgcc/../gcc -I/mnt/scratch/gcc-4.8-20121104/libgcc/../include -DHAVE_CC_TLS -o _mulvdi3.o -MT _mulvdi3.o -MD -MP -MF _mulvdi3.dep -DL_mulvdi3 -c /mnt/scratch/gcc-4.8-20121104/libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS /mnt/scratch/gcc-4.8-20121104/libgcc/libgcc2.c: In function '__mulvti3': /mnt/scratch/gcc-4.8-20121104/libgcc/libgcc2.c:397:1: internal compiler error: Illegal instruction } ^ /mnt/scratch/gcc-4.8-20121104/libgcc/libgcc2.c:397:1: internal compiler error: Aborted xgcc: internal compiler error: Aborted (program cc1) make[5]: *** [_mulvdi3.o] Aborted make[5]: Leaving directory `/mnt/scratch/objdir48/sparc64-unknown-linux-gnu/64/libgcc' make[4]: *** [multi-do] Error 1 make[4]: Leaving directory `/mnt/scratch/objdir48/sparc64-unknown-linux-gnu/libgcc' make[3]: *** [all-multi] Error 2 make[3]: Leaving directory `/mnt/scratch/objdir48/sparc64-unknown-linux-gnu/libgcc' make[2]: *** [all-stage2-target-libgcc] Error 2 make[2]: Leaving directory `/mnt/scratch/objdir48' make[1]: *** [stage2-bubble] Error 2 make[1]: Leaving directory `/mnt/scratch/objdir48' make: *** [bootstrap] Error 2 Re-running cc1 in gdb shows: Program received signal SIGILL, Illegal instruction. 0x00575f94 in emit_note_insn_var_location(void**, void*) () Missing separate debuginfos, use: debuginfo-install glibc-2.13.90-4.1.sparcv9 (gdb) bt #0 0x00575f94 in emit_note_insn_var_location(void**, void*) () #1 0x00734b7c in htab_traverse_noresize () #2 0x00576a64 in emit_notes_for_changes(rtx_def*, emit_note_where, shared_hash_def*) () #3 0x00577118 in vt_emit_notes() () #4 0x0057a378 in variable_tracking_main() () #5 0x002f8454 in execute_one_pass(opt_pass*) () #6 0x002f8954 in execute_pass_list(opt_pass*) () #7 0x002f8978 in execute_pass_list(opt_pass*) () #8 0x002f8978 in execute_pass_list(opt_pass*) () #9 0x00111ad8 in expand_function(cgraph_node*) () #10 0x001134fc in compile() () #11 0x00113c8c in finalize_compilation_unit() () #12 0x00034a14 in c_write_global_declarations() () #13 0x003a62bc in compile_file() () #14 0x003a7c04 in toplev_main(int, char**) () #15 0xf7d44234 in __libc_start_main () from /lib/libc.so.6 #16 0x00023798 in _start () Disassembling the faulting instruction shows: (gdb) disassemble 0x575f80,0x575fa0 Dump of assembler code from 0x575f80 to 0x575fa0: 0x00575f80 <_ZL27emit_note_insn_var_locationPPvS_+1584>: clr %i3 0x00575f84 <_ZL27emit_note_insn_var_locationPPvS_+1588>: add %fp, -192, %i2 0x00575f88 <_ZL27emit_note_insn_var_locationPPvS_+1592>: add %fp, -128, %i0 0x00575f8c <_ZL27emit_note_insn_var_locationPPvS_+1596>: add %i5, %i5, %g1 0x00575f90 <_ZL27emit_note_insn_var_locationPPvS_+1600>: ld [ %i2 + %i5 ], %i1 => 0x00575f94 <_ZL27emit_note_insn_var_locationPPvS_+1604>: ldd [ %i0 + %g1 ], %o1 0x00575f98 <_ZL27emit_note_insn_var_locationPPvS_+1608>: call 0x1835a0 <_Z17gen_rtx_CONST_INT12machine_modex> 0x00575f9c <_ZL27emit_note_insn_var_locationPPvS_+1612>: clr %o0 End of assembler dump. (gdb) print/x $i0 $1 = 0xffffc5b8 (gdb) print/x $g1 $2 = 0x0 The same problem occurred with the previous weekly snapshot, 4.8-20121028, while the one before that (4.8-20121021) was Ok. Configuration parameters: /mnt/scratch/gcc-4.8-20121104/configure --prefix=/mnt/scratch/install48 --with-gmp=/home/mikpe/pkgs/linux-sparc64/gmp-5.0.5 --with-mpfr=/home/mikpe/pkgs/linux-sparc64/mpfr-3.1.1 --with-mpc=/home/mikpe/pkgs/linux-sparc64/mpc-1.0.1 --with-cpu=v8 --enable-multilib --disable-plugin --disable-lto --disable-nls --enable-threads=posix --enable-checking=release --disable-libmudflap --enable-languages=c,c++,fortran,ada