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    =0x3FFFFFFFFFFFFF
  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
[email protected]
https://gmplib.org/mailman/listinfo/gmp-bugs

Reply via email to