On Thu, May 05, 2016 at 06:59:33PM +0200, John Paul Adrian Glaubitz wrote: > Source: linux > Version: 4.5.2-1 > Severity: normal > User: debian-powe...@lists.debian.org > Usertags: powerpcspe > > Hi! > > linux currently fails to build from source on powerpcspe since the compiler > is using FPU instructions which are not available on the e500v2 CPUs [1,2]: > > {standard input}: Assembler messages: > {standard input}:2227: Error: unrecognized opcode: `ldarx' > {standard input}:2274: Error: unrecognized opcode: `stdcx.' > /<<PKGBUILDDIR>>/scripts/Makefile.build:263: recipe for target > 'arch/powerpc/lib/sstep.o' failed > make[6]: *** [arch/powerpc/lib/sstep.o] Error 1 > /<<PKGBUILDDIR>>/Makefile:954: recipe for target 'arch/powerpc/lib' failed > make[5]: *** [arch/powerpc/lib] Error 2 > make[5]: *** Waiting for unfinished jobs.... > > Looking at arch/powerpc/lib/sstep.c, there are actually #ifdefs for the > CONFIG_PPC_FPU, > however, it seems there is no way of manually setting CONFIG_PPC_FPU in the > kernel > configuration. I assume, this is done by choosing a certain type of PowerPC > hardware. > > In any case, version 3.16.7 still builds fine [3], so this is a regression > either > way. Although we currently have to use a custom kernel for our e500v2 boards > anyway, it's still desirable to fix any build issues with the kernel package > on powerpcspe.
Doing this seems to agree: objdump -d arch/powerpc/lib/sstep.o | grep ldarx 1f0c: 7f 80 e0 a8 ldarx r28,0,r28 objdump -d arch/powerpc/lib/sstep.o -M 603| grep 1f0c: 1f0c: 7f 80 e0 a8 .long 0x7f80e0a8 And similarly for: objdump -d arch/powerpc/lib/sstep.o |grep stdcx 1f78: 7d 40 e1 ad stdcx. r10,0,r28 objdump -d arch/powerpc/lib/sstep.o -M 603 |grep 1f78: 1f78: 7d 40 e1 ad .long 0x7d40e1ad Going through the list of machine types in objdump I see: ldarx invalid: 403, 405, 440, 464, 476, 601, 603, 604, 7400, 7410, 7450, 7455, 750cl, ppcps, pwr, pwr2, booke, booke32, com, e300, e500, e500mc, e500x2, efs, ppc, ppc32, pwrx, titan ldarx valid: a2, altivec, any, cell, e500mc64, e5500, e6500, power4, power5, power6, power7, power8, ppc64, ppc64bridge, pwr4, pwr5, pwr5x, pwr6, pwr7, pwr8, spe, vle, vsx, htm, 32, 64, 620 So that seems to agree with IBM https://www.google.ca/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjr-5rO1cPMAhXMyRoKHd3fBTUQFggbMAA&url=https%3A%2F%2Fwww.ibm.com%2Fsupport%2Fknowledgecenter%2Fssw_aix_53%2Fcom.ibm.aix.aixassem%2Fdoc%2Falangref%2Fldarx.htm&usg=AFQjCNF1n3feBCinAC3RjBJy81zCYBES7Q&bvm=bv.121099550,d.d2s saying ldarx is only to be used in 64 bit mode on a 64 bit powerpc. -- Len Sorensen