FAIL: t-get_d_2exp

Marc Glisse marc.glisse at inria.fr
Thu May 16 12:05:45 UTC 2019


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


More information about the gmp-bugs mailing list