On Thu, 16 May 2019, R. Diez wrote:
Hi all:
I am building a cross-compiling toolchain. In the process, my makefile builds
a number of libraries that GCC needs. GMP is one of them.
I ran "make check" once, and self-test t-get_d_2exp is failing:
mpz_get_d_2exp wrong on 2**54-1
result out of range, expect 0.5 <= got < 1.0
rnd_mode = 0
data[i] = 54
z=0x3F
got =[00 00 00 00 00 00 F0 3F] 1
got exp 54
FAIL t-get_d_2exp (exit status: 134)
Other tests run fine.
Is this problem already known? Is it worth pursuing? I can provide more
information on demand.
These are the versions I am building at the moment:
BINUTILS_VERSION := 2.32
GMP_VERSION := 6.1.2
MPFR_VERSION := 4.0.2
MPC_VERSION := 1.1.0
GCC_VERSION := 8.3.0
NEWLIB_VERSION := 3.1.0
GDB_VERSION := 8.3
The whole thing runs on an Ubuntu 18.04.2 system. This PC is a few years old
and I have not noticed anything wrong with it yet.
I am building the toolchain with -O3 and LTO at the moment.
Yes, the problem is known. LTO prevents configure from guessing correctly
how floating point numbers are represented on your platform, and the
fallback code has a bug. I think the fallback code has been fixed (at
least related patches have been posted on the mailing list). Using fat lto
might also help configure.
--
Marc Glisse
___
gmp-bugs mailing list
gmp-bugs@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-bugs