ARM Cortex-A7 feature misdetection

Jeffrey Walton noloader at gmail.com
Sun Feb 4 11:32:51 UTC 2018


Hi Everyone,

I'm working on a CubieTruck v5. It has a Cortex A7 with ARMv7-a and a
NEON coprocessor. I'm building GMP 6.1.2 from sources. I performed a
standard ./configure.

It appears something is misdetected. Or maybe some flags are missing
from source files like rshift.c. I believe the CubieTruck should use
something like the following to make the ISA available:

   * -march=armv7-a -mfpu=neon-vfpv4 (or just =neon)

I believe ARM AS and LD are not like i386/x86_64 tools. You must
explicitly enable the ISA, or it is not available (like shown below).

Jeff

 gcc -std=gnu99 -c -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I..
-DOPERATION_rshift -I/usr/local/include -DNDEBUG -march=native -fPIC
-Wa,--noexecstack tmp-rshift.s -fPIC -DPIC -o .libs/rshift.o
tmp-lshift.s: Assembler messages:
tmp-lshift.s:106: Error: selected processor does not support ARM mode
`vdup.32 d6,r3'
tmp-lshift.s:108: Error: selected processor does not support ARM mode
`vdup.32 d7,r3'
tmp-lshift.s:114: Error: selected processor does not support ARM mode
`vshl.u64 d18,d19,d7'
tmp-rshift.s: tmp-lshift.s:120: Assembler messages:
Error: selected processor does not support ARM mode `vshl.u64 d4,d19,d6'
tmp-rshift.s:108: Error: selected processor does not support ARM mode
`vdup.32 d6,r3'
tmp-lshift.s:134: tmp-rshift.s:110: Error: selected processor does not
support ARM mode `vshl.u64 d5,d19,d6'
Error: selected processor does not support ARM mode `vdup.32 d7,r3'
tmp-lshift.s:136: Error: selected processor does not support ARM mode
`vshl.u64 d0,d17,d7'
tmp-rshift.s:115: tmp-lshift.s:137: Error: selected processor does not
support ARM mode `vshl.u64 d18,d19,d7'
Error: selected processor does not support ARM mode `vshl.u64 d4,d17,d6'
tmp-rshift.s:121: Error: selected processor does not support ARM mode
`vshl.u64 d4,d19,d6'
tmp-lshift.s:142: Error: selected processor does not support ARM mode
`vshl.u64 d4,d19,d6'
tmp-rshift.s:135: tmp-lshift.s:144: Error: selected processor does not
support ARM mode `vshl.u64 d5,d19,d6'
Error: tmp-rshift.s:137: selected processor does not support ARM mode
`vshl.u64 d1,d16,d7'
Error: selected processor does not support ARM mode `vshl.u64 d0,d17,d7'
tmp-lshift.s:145: tmp-rshift.s:138: Error: selected processor does not
support ARM mode `vshl.u64 d5,d16,d6'
Error: selected processor does not support ARM mode `vshl.u64 d4,d17,d6'
tmp-lshift.s:150: Error: selected processor does not support ARM mode
`vorr d2,d4,d1'
tmp-rshift.s:143: tmp-lshift.s:151: Error: selected processor does not
support ARM mode `vshl.u64 d4,d19,d6'
Error: tmp-rshift.s:145: selected processor does not support ARM mode
`vshl.u64 d0,d17,d7'
Error: selected processor does not support ARM mode `vshl.u64 d1,d16,d7'
tmp-lshift.s:152: tmp-rshift.s:146: Error: selected processor does not
support ARM mode `vshl.u64 d4,d17,d6'
Error: selected processor does not support ARM mode `vshl.u64 d5,d16,d6'
tmp-lshift.s:155: Error: selected processor does not support ARM mode
`vorr d3,d5,d0'
tmp-rshift.s:151: tmp-lshift.s:156: Error: selected processor does not
support ARM mode `vorr d2,d4,d1'
Error: selected processor does not support ARM mode `vshl.u64 d1,d16,d7'
tmp-rshift.s:152: tmp-lshift.s:157: Error: selected processor does not
support ARM mode `vshl.u64 d0,d17,d7'
Error: selected processor does not support ARM mode `vshl.u64 d5,d16,d6'
tmp-rshift.s:153: Error: selected processor does not support ARM mode
`vshl.u64 d4,d17,d6'
tmp-lshift.s:165: Error: selected processor does not support ARM mode
`vorr d2,d4,d1'
tmp-rshift.s:156: Error: selected processor does not support ARM mode
`vorr d3,d5,d0'
tmp-lshift.s:169: tmp-rshift.s:157: Error: selected processor does not
support ARM mode `vorr d2,d4,d1'
Error: selected processor does not support ARM mode `vshl.u64 d1,d16,d7'
tmp-lshift.s:170: tmp-rshift.s:158: Error: selected processor does not
support ARM mode `vshl.u64 d0,d17,d7'
Error: selected processor does not support ARM mode `vshl.u64 d5,d16,d6'
tmp-lshift.s:171: Error: selected processor does not support ARM mode
`vshl.u64 d16,d17,d6'
tmp-rshift.s:166: tmp-lshift.s:173: Error: selected processor does not
support ARM mode `vorr d2,d4,d1'
Error: tmp-rshift.s:170: selected processor does not support ARM mode
`vorr d2,d5,d0'
Error: selected processor does not support ARM mode `vorr d2,d4,d1'
tmp-lshift.s:181: tmp-rshift.s:171: Error: selected processor does not
support ARM mode `vshl.u64 d5,d19,d6'
Error: tmp-lshift.s:183: selected processor does not support ARM mode
`vshl.u64 d0,d17,d7'
Error: selected processor does not support ARM mode `veor d16,d16,d16'
tmp-rshift.s:172: tmp-lshift.s:186: Error: selected processor does not
support ARM mode `vshl.u64 d16,d17,d6'
Error: selected processor does not support ARM mode `vshl.u64 d0,d17,d7'
tmp-rshift.s:174: tmp-lshift.s:187: Error: selected processor does not
support ARM mode `vorr d2,d5,d0'
Error: selected processor does not support ARM mode `vshl.u64 d4,d17,d6'
tmp-rshift.s:182: tmp-lshift.s:188: Error: selected processor does not
support ARM mode `vshl.u64 d5,d19,d6'
Error: tmp-rshift.s:184: selected processor does not support ARM mode
`vorr d3,d5,d0'
Error: selected processor does not support ARM mode `veor d16,d16,d16'
tmp-lshift.s:189: tmp-rshift.s:187: Error: selected processor does not
support ARM mode `vshl.u64 d1,d16,d7'
Error: selected processor does not support ARM mode `vshl.u64 d0,d17,d7'
tmp-lshift.s:190: tmp-rshift.s:188: Error: selected processor does not
support ARM mode `vshl.u64 d5,d16,d6'
Error: selected processor does not support ARM mode `vshl.u64 d4,d17,d6'
tmp-lshift.s:192: tmp-rshift.s:189: Error: selected processor does not
support ARM mode `vorr d2,d4,d1'
Error: selected processor does not support ARM mode `vorr d3,d5,d0'
tmp-lshift.s:200: tmp-rshift.s:190: Error: selected processor does not
support ARM mode `vshl.u64 d4,d19,d6'
Error: selected processor does not support ARM mode `vshl.u64 d1,d16,d7'
tmp-lshift.s:201: tmp-rshift.s:191: Error: selected processor does not
support ARM mode `vshl.u64 d1,d16,d7'
Error: selected processor does not support ARM mode `vshl.u64 d5,d16,d6'
tmp-lshift.s:202: tmp-rshift.s:193: Error: selected processor does not
support ARM mode `vshl.u64 d16,d16,d6'
Error: selected processor does not support ARM mode `vorr d2,d4,d1'
tmp-lshift.s:203: Error: selected processor does not support ARM mode
`vorr d2,d4,d1'
tmp-rshift.s:201: Error: selected processor does not support ARM mode
`vshl.u64 d4,d19,d6'
tmp-rshift.s:202: Error: selected processor does not support ARM mode
`vshl.u64 d1,d16,d7'
tmp-rshift.s:203: Error: selected processor does not support ARM mode
`vshl.u64 d16,d16,d6'
tmp-rshift.s:204: Error: selected processor does not support ARM mode
`vorr d2,d4,d1'
make[2]: *** [lshift.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [rshift.lo] Error 1
libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I..
-D__GMP_WITHIN_GMP -I.. -DOPERATION_sub_err3_n -I/usr/local/include
-DNDEBUG -march=native -fPIC -c sub_err3_n.c -o sub_err3_n.o
>/dev/null 2>&1
make[2]: Leaving directory `/home/test/gmp-6.1.2/mpn'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/test/gmp-6.1.2'
make: *** [all] Error 2


More information about the gmp-bugs mailing list