tmp-lshift.s:106: Error: selected processor does not support ARM mode `vdup.32 d6,r3'
Dennis Clarke
dclarke at blastwave.org
Mon Dec 31 15:30:26 UTC 2018
On 12/30/18 11:45 AM, Jeffrey Walton wrote:
> On Sun, Dec 30, 2018 at 11:12 AM Torbjörn Granlund <tg at gmplib.org> wrote:
>>
>> Jeffrey Walton <noloader at gmail.com> writes:
>>
>> I'm working on my BananaPi. It is a Cortex-A7 with ARMv7-a.
>>
>> Compile results in the following. According to Stallman I believe you
>> are supposed to add the necessary options to compile the file
>> independent of CFLAGS, and it should not need to be override-able by
>> the user because it is required. Also see
>> https://www.gnu.org/prep/standards/html_node/Command-Variables.html .
>>
>> gcc -std=gnu99 -c -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I..
>> -DOPERATION_lshift -I/usr/local/include -DNDEBUG -g2 -O2 -march=native
>> -fPIC -Wa,--noexecstack tmp-lshift.s -fPIC -DPIC -o .libs/lshift.o
>> tmp-lshift.s: gcc -std=gnu99 -c -DHAVE_CONFIG_H -I. -I..
>> -D__GMP_WITHIN_GMP -I.. -DOPERATION_rshift -I/usr/local/include
>> -DNDEBUG -g2 -O2 -march=native -fPIC -Wa,--noexecstack tmp-rshift.s
>> -fPIC -DPIC -o .libs/rshift.o
>> 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-lshift.s:120: Error: selected processor does not support ARM mode
>> `vshl.u64 d4,d19,d6'
>> ...
>>
>> Are you implicitly saying that you're overriding CFLAGS (at "make" time)
>> and then things fail and that it shouldn't fail?
>>
>> If I guess right, my recommendation is that you don't override CFLAGS in
>> a build-breaking manner.
>>
>> If I guess wrong, please spell our what you do and what you think is
>> wrong in GMP.
>
> No, I don't override the CFLAGS. I set them like:
>
> CFLAGS="-g2 -O3 -DNDEBUG -march=native" ./configure ...
>
> What is wrong is obvious. The build is broken.
>
Maybe I am missing something here. I have an arm7 unit here :
arm7$ uname -a
Linux arm7 4.4.132+ #1 SMP Tue Oct 23 18:03:49 CST 2018 armv7l GNU/Linux
arm7$ head /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 1 (v7l)
BogoMIPS : 48.00
Features : half thumb fastmult vfp edsp thumbee neon vfpv3 tls
vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc0d
CPU revision : 1
arm7$
arm7$ cat ver.c
#define _XOPEN_SOURCE 600
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <gmp.h>
#include <mpfr.h>
void mpfr_version_report();
int main (int argc, char *argv[])
{
mpfr_version_report();
return EXIT_SUCCESS;
}
arm7$
arm7$ cat mpfr_ver.c
#define _XOPEN_SOURCE 600
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <gmp.h>
#include <mpfr.h>
void mpfr_version_report()
{
printf("GMP library version : %d.%d.%d\n",
__GNU_MP_VERSION,
__GNU_MP_VERSION_MINOR,
__GNU_MP_VERSION_PATCHLEVEL );
printf("MPFR library: %-12s\n", mpfr_get_version ());
printf("MPFR header : %s (based on %d.%d.%d)\n",
MPFR_VERSION_STRING,
MPFR_VERSION_MAJOR,
MPFR_VERSION_MINOR,
MPFR_VERSION_PATCHLEVEL);
if (mpfr_buildopt_tls_p()!=0)
printf(" : compiled as thread safe using TLS\n");
if (mpfr_buildopt_float128_p()!=0)
printf(" : __float128 support enabled\n");
if (mpfr_buildopt_decimal_p()!=0)
printf(" : decimal float support enabled\n");
if (mpfr_buildopt_gmpinternals_p()!=0)
printf(" : compiled with GMP internals\n");
if (mpfr_buildopt_sharedcache_p()!=0)
printf(" : threads share cache per MPFR const\n");
printf("MPFR thresholds file used at compile time : %s\n",
mpfr_buildopt_tune_case ());
}
arm7$ file ver
ver: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV),
dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux
3.2.0, BuildID[sha1]=606244578692f7d651c024dc7d7c7eed2deb47c5, not stripped
arm7$ ldd ver
linux-vdso.so.1 (0xbef3e000)
libgmp.so.10 => /opt/bw/lib/libgmp.so.10 (0xb6ef0000)
libmpfr.so.6 => /opt/bw/lib/libmpfr.so.6 (0xb6e48000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6d46000)
/lib/ld-linux-armhf.so.3 (0xb6fa2000)
arm7$ ./ver
GMP library version : 6.1.2
MPFR library: 4.0.1-p13
MPFR header : 4.0.1-p13 (based on 4.0.1)
: compiled as thread safe using TLS
MPFR thresholds file used at compile time : src/arm/mparam.h
arm7$
Both gmp and mpfr compile and test fine on this arm7 unit here.
Download the sources and try a reconfigure with trivial CFLAGS like
-std=c99 -g -march=armv7-a -O0 and not much else.
Dennis
More information about the gmp-bugs
mailing list