On 11/12/12 19:39, Matthew Gretton-Dann wrote:
On 10 December 2012 14:53, Zhangfei Gao <zhangfei....@linaro.org> wrote:
We met build error when using arm-linux-gnueabihf-gcc 3.7.3 for Huawei
s40v200 kernel, which is 3.0.8, log is below.

HAVE issue:
gcc-linaro-arm-linux-gnueabihf-4.7-2012.11-20121123_linux.tar.bz2
gcc-linaro-arm-linux-gnueabihf-4.7-2012.10-20121022_linux.tar.bz2
gcc-linaro-arm-linux-gnueabi-2012.03-20120326_linux.tar.bz2, with build flag
--with-float=softfp


NO issue:
arm-eabi-gcc 4.4.0, which comes from android package.

Any suggestion?

Thanks

make[1]: `include/generated/mach-types.h' is up to date.
   CALL    scripts/checksyscalls.sh
   CHK     include/generated/compile.h
   AS      arch/arm/mach-godbox/hi_pm_sleep.o
arch/arm/mach-godbox/hi_pm_sleep.S: Assembler messages:
arch/arm/mach-godbox/hi_pm_sleep.S:456: Error: selected processor does not
support requested special purpose register -- `mrs r10,FPEXC'
arch/arm/mach-godbox/hi_pm_sleep.S:456: Error: selected processor does not
support requested special purpose register -- `msr FPEXC,r2'
arch/arm/mach-godbox/hi_pm_sleep.S:456: Error: selected processor does not
support requested special purpose register -- `mrs r2,FPSCR'
arch/arm/mach-godbox/hi_pm_sleep.S:546: Error: selected processor does not
support requested special purpose register -- `msr FPEXC,r2'
arch/arm/mach-godbox/hi_pm_sleep.S:546: Error: selected processor does not
support requested special purpose register -- `msr FPSCR,r10'
arch/arm/mach-godbox/hi_pm_sleep.S:546: Error: selected processor does not
support requested special purpose register -- `msr FPEXC,r9'
make[1]: *** [arch/arm/mach-godbox/hi_pm_sleep.o] Error 1
make: *** [arch/arm/mach-godbox] Error 2
make: *** Waiting for unfinished jobs....

Can you show me the complete command line for assembling
arch/arm/mach-godbox/hi_pm_sleep.S into
arch/arm/mach-godbox/hi_pm_sleep.o please?  And also the output of gcc
-v?

My guess is that you are building GCC yourself have specified
--with-float=softfp, but not specified the actual floating point
architecture with --with-fpu= on the GCC configure line.  See the
documentation for -mfpu= in the GCC manuals to see what values are
valid here (again guessing but you probably want --with-fpu=vfpv3 or
--with-fpu=neon - but I don't know what architecture you are actually
compiling for).


Hmm, building the kernel with floating-point enabled is probably a no-no! The kernel has to preserve the user-space floating point context as it isn't saved on kernel entry. IIRC, insns in the kernel that really must access the co-processors have to use generic instrucions (MCR/MRC/LDC/STC, etc).

However, you might get a more useful answer if you talked to the kernel folk.

R.


_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to