> +(mips1) `cfc1 $2,$31' > make[1]: *** [arch/mips/math-emu/cp1emu.o] Error 1 > make: *** [arch/mips/math-emu] Error 2 > make: *** Waiting for unfinished jobs.... This is the offending code in cp1emu.c: if (is_fpu_owner()) asm volatile( ".set push\n" "\t.set mips1\n" "\tcfc1\t%0,$31\n" "\t.set pop" : "=r" (fcr31)); else fcr31 = current->thread.fpu.fcr31; preempt_enable(); I'm not sure how this can have built with binutils 2.23 (as indicated by Manuel and not built with 2.24). The reason this works with the latest version of binutils 2.24.x is that cfc1 has been reclassified as not an FPU instruction. This just needs the hardfloat annotation adding via the macro as in the other cases. Thanks, Matthew