On Mon, Jun 16, 2014 at 10:25:36AM +0100, Christophe Lyon wrote: > Hi, > > This patches causes a failure to build GCC (since commit 211655), on > all ARM and Aarch64 targets I track. > > I can see failures when building libgcc (_mulsc3.o, _muldc3.o, > _divdc3.o), the error message being: > 0xa07f6f crash_signal > > /tmp/214822_1.tmpdir/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/toplev.c:337 > Please submit a full bug report, >
I'm also seeing this building libgcc's linux-atomic-64bit.c. Reduced testcase attached, and a slightly more detailed backtrace: (gdb) bt #0 0x00000000 in ?? () #1 0x0054b626 in assign_by_spills () at /home/jamgre01//gcc-clean/gcc/lra-assigns.c:1434 #2 0x0054b8da in lra_assign () at /home/jamgre01//gcc-clean/gcc/lra-assigns.c:1499 #3 0x00545dd2 in lra (f=0x0) at /home/jamgre01//gcc-clean/gcc/lra.c:2230 #4 0x004ff7a6 in do_reload () at /home/jamgre01//gcc-clean/gcc/ira.c:5325 #5 0x004ffb4a in (anonymous namespace)::pass_reload::execute (this=0x11bb8e0) at /home/jamgre01//gcc-clean/gcc/ira.c:5486 #6 0x005c6da0 in execute_one_pass (pass=0x11bb8e0) at /home/jamgre01//gcc-clean/gcc/passes.c:2180 #7 0x005c6f8e in execute_pass_list_1 (pass=0x11bb8e0) at /home/jamgre01//gcc-clean/gcc/passes.c:2233 #8 0x005c6fb4 in execute_pass_list_1 (pass=0x11bac80) at /home/jamgre01//gcc-clean/gcc/passes.c:2234 #9 0x005c6fea in execute_pass_list (fn=0xb6c63bc8, pass=0x11b8880) at /home/jamgre01//gcc-clean/gcc/passes.c:2244 #10 0x002ef55a in expand_function (node=0xb6c582a0) at /home/jamgre01//gcc-clean/gcc/cgraphunit.c:1787 #11 0x002efaaa in expand_all_functions () at /home/jamgre01//gcc-clean/gcc/cgraphunit.c:1921 #12 0x002f03f4 in compile () at /home/jamgre01//gcc-clean/gcc/cgraphunit.c:2265 #13 0x002f056c in finalize_compilation_unit () at /home/jamgre01//gcc-clean/gcc/cgraphunit.c:2342 #14 0x00183b5a in c_write_global_declarations () at /home/jamgre01//gcc-clean/gcc/c/c-decl.c:10452 #15 0x006a444e in compile_file () at /home/jamgre01//gcc-clean/gcc/toplev.c:562 #16 0x006a6aa8 in do_compile () at /home/jamgre01//gcc-clean/gcc/toplev.c:1918 #17 0x006a6c34 in toplev_main (argc=4, argv=0xbefff014) at /home/jamgre01//gcc-clean/gcc/toplev.c:1994 #18 0x00cdb332 in main (argc=4, argv=0xbefff014) at /home/jamgre01//gcc-clean/gcc/main.c:36 Thanks, James
/* /home/jamgre01/build/clean/./gcc/cc1 besttry.c -O2 -fPIC */ # 1 "besttry.c" typedef int(__kernel_cmpxchg64_t)(const long long *oldval, const long long *newval, long long *ptr); long long __attribute__((visibility("hidden"))) __sync_fetch_and_nand_8(long long *ptr, long long val) { int failure; long long tmp, tmp2; do { tmp = *ptr; tmp2 = ~(tmp & val); failure = (*(__kernel_cmpxchg64_t *)0xffff0f60)(&tmp, &tmp2, ptr); } while (failure != 0); }