The patch here http://gcc.gnu.org/ml/gcc-patches/2009-11/msg00515.html breaks CSibe builds at Os for thumb2. I've attached a reduced testcase with this bug report. This was reduced from linux-2.4.23/fs/nfs/read.c .
Building with -fno-schedule-insns works. Command Line options used -mcpu=cortex-a8 -mthumb -Os. besttry.c:75:1: error: unable to find a register to spill in class 'LO_REGS' besttry.c:75:1: error: this is the insn: (insn 28 32 29 3 besttry.c:52 (parallel [ (set (reg:DI 162) (plus:DI (zero_extend:DI (reg:SI 161 [ req_6(D)->wb_offset ])) (reg:DI 173 [orig:158 D.2071 ] [158]))) (clobber (reg:CC 24 cc)) ]) 3 {*adddi_zesidi_di} (expr_list:REG_DEAD (reg:SI 161 [ req_6(D)->wb_offset ]) (expr_list:REG_UNUSED (reg:CC 24 cc) (expr_list:REG_EQUIV (mem/s:DI (reg:SI 133 [ D.2071 ]) [7 0B->args.offset+0 S8 A64]) (nil))))) besttry.c:75:1: internal compiler error: in spill_failure, at reload1.c:2141 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. -- Summary: Thumb2 ICE - spill failure. Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ramana at gcc dot gnu dot org GCC build triplet: x86_64-linux GCC host triplet: x86_64 linux gnu GCC target triplet: arm-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42031