On 12/30/18 11:45 AM, Jeffrey Walton wrote:
On Sun, Dec 30, 2018 at 11:12 AM Torbjörn Granlund <[email protected]> wrote:
Jeffrey Walton <[email protected]> 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
_______________________________________________
gmp-bugs mailing list
[email protected]
https://gmplib.org/mailman/listinfo/gmp-bugs