On 11/07/2014 11:05 AM, Matthew Fortune wrote: >> +(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 > I am confused about this comment. The problem is reproducible with the latest Mentor toolchain which uses the following gas GNU assembler version 2.24.51 (mips-linux-gnu) using BFD version (Sourcery CodeBench Lite 2014.05-27) 2.24.51.20140217. I am not sure how Manuel's patch triggered this problem on Mentor to be honest. -- markos