Newlib 2.3.0.20160226 : Error: selected processor does not support `vrintr.f64 d0,d0' in ARM mode

Kyrill Tkachov kyrylo.tkachov@foss.arm.com
Thu Mar 24 10:28:00 GMT 2016


Hi Arjan,

On 23/03/16 19:59, Arjan van Vught wrote:
> Using binutils-2.26, gcc-4.9.3 on a Linux host, I am getting the error as shown below.
>
> I have the following multi-lib configuration :
>
>    pi@xubuntu:/opt/gnuarm-hardfp$ arm-none-eabi-gcc -print-multi-lib
>    .;
> armv8-a/cortex-a53/hardfp/neon-vfpv4;@march=armv8-a@mtune=cortex-a53@mfloat-abi=hard@mfpu=neon-vfpv4
> armv7-a/cortex-a7/hardfp/vfpv4;@march=armv7-a@mtune=cortex-a7@mfloat-abi=hard@mfpu=vfpv4
> armv7-a/cortex-a7/hardfp/neon-vfpv4;@march=armv7-a@mtune=cortex-a7@mfloat-abi=hard@mfpu=neon-vfpv4
> armv6zk/arm1176jzf-s/hardfp/vfp;@march=armv6zk@mtune=arm1176jzf-s@mfloat-abi=hard@mfpu=vfp
>
> The libgcc  libraries are built fine :
>
>    pi@xubuntu:/opt/gnuarm-hardfp$ find $PREFIX -name libgcc.a | sort
> /opt/gnuarm-hardfp/lib/gcc/arm-none-eabi/4.9.3/armv6zk/arm1176jzf-s/hardfp/vfp/libgcc.a
> /opt/gnuarm-hardfp/lib/gcc/arm-none-eabi/4.9.3/armv7-a/cortex-a7/hardfp/neon-vfpv4/libgcc.a
> /opt/gnuarm-hardfp/lib/gcc/arm-none-eabi/4.9.3/armv7-a/cortex-a7/hardfp/vfpv4/libgcc.a
> /opt/gnuarm-hardfp/lib/gcc/arm-none-eabi/4.9.3/armv8-a/cortex-a53/hardfp/neon-vfpv4/libgcc.a
>    /opt/gnuarm-hardfp/lib/gcc/arm-none-eabi/4.9.3/libgcc.a
>
> Any thoughts on why the newlib build is giving this error?
>
> Many thanks, Arjan
>
>
> arm-none-eabi-gcc -B/opt/gnuarm-hardfp/build-newlib/arm-none-eabi/armv8-a/cortex-a53/hardfp/neon-vfpv4/newlib/ -isystem /opt/gnuarm-hardfp/build-newlib/arm-none-eabi/armv8-a/cortex-a53/hardfp/neon-vfpv4/newlib/targ-include -isystem 
> /opt/gnuarm-hardfp/newlib-2.3.0.20160226/newlib/libc/include -B/opt/gnuarm-hardfp/build-newlib/arm-none-eabi/armv8-a/cortex-a53/hardfp/neon-vfpv4/libgloss/arm 
> -L/opt/gnuarm-hardfp/build-newlib/arm-none-eabi/armv8-a/cortex-a53/hardfp/neon-vfpv4/libgloss/libnosys -L/opt/gnuarm-hardfp/newlib-2.3.0.20160226/libgloss/arm -march=armv8-a -mtune=cortex-a53 -mfloat-abi=hard -mfpu=neon-vfpv4 
> -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\" -DPACKAGE_VERSION=\"2.3.0\" -DPACKAGE_STRING=\"newlib\ 2.3.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I. 
> -I../../../../../../../../../../newlib-2.3.0.20160226/newlib/libm/machine/arm -I ../../../../../../../../../../newlib-2.3.0.20160226/newlib/libm/machine/arm/../../../../newlib/libm/common -D__NO_SYSCALLS__ -fno-builtin      -g -O2  
> -march=armv8-a -mtune=cortex-a53 -mfloat-abi=hard -mfpu=neon-vfpv4 -c -o lib_a-s_rint.o `test -f 's_rint.c' || echo '../../../../../../../../../../newlib-2.3.0.20160226/newlib/libm/machine/arm/'`s_rint.c
> /tmp/ccNt55ho.s: Assembler messages:
> /tmp/ccNt55ho.s:32: Error: selected processor does not support `vrintp.f64 d0,d0' in ARM mode
> /tmp/ccAcnERn.s: Assembler messages:
> /tmp/ccAcnERn.s:32: Error: selected processor does not support `vrintr.f64 d0,d0' in ARM mode
> Makefile:292: recipe for target 'lib_a-s_ceil.o' failed
> make[9]: *** [lib_a-s_ceil.o] Error 1
> make[9]: *** Waiting for unfinished jobs....
> Makefile:304: recipe for target 'lib_a-s_nearbyint.o' failed
> make[9]: *** [lib_a-s_nearbyint.o] Error 1
> /tmp/ccmTZYbo.s: Assembler messages:
> /tmp/ccmTZYbo.s:32: Error: selected processor does not support `vrintm.f64 d0,d0' in ARM mode
> Makefile:298: recipe for target 'lib_a-s_floor.o' failed
> make[9]: *** [lib_a-s_floor.o] Error 1
> /tmp/ccp9zz6q.s: Assembler messages:
> /tmp/ccp9zz6q.s:32: Error: selected processor does not support `vrintx.f64 d0,d0' in ARM mode
> Makefile:310: recipe for target 'lib_a-s_rint.o' failed
> make[9]: *** [lib_a-s_rint.o] Error 1
>

These vrint[p,r,m,x] instructions are ARMv8-A instructions and have to be enabled by an appropriate -mfpu option.
For example -mfpu=fp-armv8 or neon-fp-armv8 or crypto-neon-fp-armv8.
So I suppose you want to change your multilb configuration to use one of those options rather than -mfpu=neon-vfpv4 which
is more appropriate for armv7ve targets like cortex-a15, cortex-a7 etc.

HTH,
Kyrill



More information about the Newlib mailing list