Bug#897416: mpfr4: FTBFS on kfreebsd-amd64

2018-05-03 Thread Svante Signell
On Thu, 2018-05-03 at 14:59 +0100, James Clarke wrote:
> On 3 May 2018, at 09:21, Svante Signell 
> wrote:
> > On Wed, 2018-05-02 at 12:51 +0100, James Clarke wrote:
> > > Control: reassign -1 gcc-7
> > > Control: retitle -1 gcc: Decimal float support is not enabled on
> > > kfreebsd-
> > > amd64
> > > 
> > > On 2 May 2018, at 10:38, Svante Signell  > > > wrote:
> > > > 
> > > > Source: mpfr4
> > > > Version: 4.0.1-1
> > > > Severity: important
> > > > Tags: patch
> > > > User: debian-...@lists.debian.org
> > > > Usertags: kfreebsd

> > I think it is unfortunate that you reassigned this bug to gcc-7.
> > That will not
> > solve the mpfr4 build on the buildds.
> > 
> > There are two ways to solve this problem:
> > 1)
> > - reassign this bug back to mpfr4, adding the
> > libfr6.symbols.kfreebsd-amd64 in
> > next version 4.0.1-2.
> 
> Well, if you wanted to do that, it should be by changing the
> (arch=...) restriction lists in the main libfr6.symbols rather than
> forking a copy for kfreebsd-amd64.

Do you mean changing
(arch=any-amd64 any-i386 powerpc ppc64 ppc64el s390x)mpfr_get_decimal64
@Base 4.0.0
to
(arch=any-amd64 !kfreebsd-amd64 any-i386 powerpc ppc64 ppc64el s390x)mp
fr_get_decimal64@Base 4.0.0
if that works. Or list all arch-any architectures except kfreebsd-
amd64. How to find the architecture list for any-amd64?

The result would still be the same: as soon as gcc-7-7.3.0-18 is built
the libfr6.symbols file has to be changed again. Wouldn't it be better
to just remove the libfr6.symbols.kfreebsd-amd64 file for next version
of mpfr4 4.0.1-2?

> > - clone this bug to gcc-7, adding a patch to dfp.m4 so it can be
> > integrated in
> > next release of gcc-7: 7.3.0-18?
> 
> Personally I'd just get gcc patched and give back mpfr4.

How would you be able to build gcc-7 on the buildds with the current
mpfr4-4.0.1-1? It does not build as is on kfreebsd-amd64.



Bug#897416: mpfr4: FTBFS on kfreebsd-amd64

2018-05-03 Thread James Clarke
On 3 May 2018, at 09:21, Svante Signell  wrote:
> On Wed, 2018-05-02 at 12:51 +0100, James Clarke wrote:
>> Control: reassign -1 gcc-7
>> Control: retitle -1 gcc: Decimal float support is not enabled on kfreebsd-
>> amd64
>> 
>> On 2 May 2018, at 10:38, Svante Signell  wrote:
>>> 
>>> Source: mpfr4
>>> Version: 4.0.1-1
>>> Severity: important
>>> Tags: patch
>>> User: debian-...@lists.debian.org
>>> Usertags: kfreebsd
>>> 
>>> Hi,
>>> 
>>> mpfr4 FTBFS on kFreebsd-amd64 due to mismatches in the
>>> debian/libmpfr6.symbols
>>> file. Attached is a file with the symbols generated from the build:
>>> libmpfr6.symbols.kfreebsd-amd64.
>>> 
>>> Thanks!
>> 
>> You're right that the symbols file is currently wrong, but IMO gcc should 
>> have
>> decimal float support enabled for kfreebsd-amd64. It's enabled for
>> kfreebsd-i386 by virtue of the fact that i?86*-*-gnu* (for Hurd) matches
>> kfreebsd-i386's tuple, but there's no corresponding x86_64*-*-gnu* for a
>> future
>> 64-bit Hurd, and thus kfreebsd-amd64's tuple is not matched[0].
>> 
>> James
>> 
>> [0] https://github.com/gcc-mirror/gcc/blob/trunk/config/dfp.m4#L23-L26
> 
> Hi James,
> 
> I think it is unfortunate that you reassigned this bug to gcc-7. That will not
> solve the mpfr4 build on the buildds.
> 
> There are two ways to solve this problem:
> 1)
> - reassign this bug back to mpfr4, adding the libfr6.symbols.kfreebsd-amd64 in
> next version 4.0.1-2.

Well, if you wanted to do that, it should be by changing the (arch=...)
restriction lists in the main libfr6.symbols rather than forking a copy for
kfreebsd-amd64.

> - clone this bug to gcc-7, adding a patch to dfp.m4 so it can be integrated in
> next release of gcc-7: 7.3.0-18?

Personally I'd just get gcc patched and give back mpfr4.

> 2) (not preferred)
> - Build an NMUed version of mpfr4, 4.0.1-1.1, and install it at debian-ports. 

Indeed, unreleased uploads are best avoided when possible.

> For GNU/Hurd the entry in sources.list is
> deb http://ftp.ports.debian.org/debian-ports unreleased main
> 
> What about creating
> http://ftp.ports.debian.org/debian-ports/pool-kfreebsd-{amd64,i386} and 
> populate
> the mpfr4 packages there at pool-kfreebsd-amd64/m/. Additionally the buildds
> need to use these packages. Unfortunately I don't know how to do that.

We could, and may well eventually need an unreleased suite, but not now.
Getting the buildds to see the suite would be simple; wanna-build would need a
copy of the hurd code to tell it that unreleased exists, and our buildd setup
scripts would need tweaking to add it to apt's sources in the chroots.

> Then when gcc-7-7.3.0-18 is released, an updated version of mpfr4 is hopefully
> available (if not, what to do, how to get back to using the old version?)

In such a situation, the updated version of mpfr4 in unstable would be picked
by `apt upgrade` as unstable and unreleased get the same priority by default,
just like how you automatically get security updates from stretch/updates for
packages installed from the stretch archive on ftp-master.

James



Bug#897416: mpfr4: FTBFS on kfreebsd-amd64

2018-05-03 Thread Svante Signell
On Wed, 2018-05-02 at 12:51 +0100, James Clarke wrote:
> Control: reassign -1 gcc-7
> Control: retitle -1 gcc: Decimal float support is not enabled on kfreebsd-
> amd64
> 
> On 2 May 2018, at 10:38, Svante Signell  wrote:
> > 
> > Source: mpfr4
> > Version: 4.0.1-1
> > Severity: important
> > Tags: patch
> > User: debian-...@lists.debian.org
> > Usertags: kfreebsd
> > 
> > Hi,
> > 
> > mpfr4 FTBFS on kFreebsd-amd64 due to mismatches in the
> > debian/libmpfr6.symbols
> > file. Attached is a file with the symbols generated from the build:
> > libmpfr6.symbols.kfreebsd-amd64.
> > 
> > Thanks!
> 
> You're right that the symbols file is currently wrong, but IMO gcc should have
> decimal float support enabled for kfreebsd-amd64. It's enabled for
> kfreebsd-i386 by virtue of the fact that i?86*-*-gnu* (for Hurd) matches
> kfreebsd-i386's tuple, but there's no corresponding x86_64*-*-gnu* for a
> future
> 64-bit Hurd, and thus kfreebsd-amd64's tuple is not matched[0].
> 
> James
> 
> [0] https://github.com/gcc-mirror/gcc/blob/trunk/config/dfp.m4#L23-L26

Hi James,

I think it is unfortunate that you reassigned this bug to gcc-7. That will not
solve the mpfr4 build on the buildds.

There are two ways to solve this problem:
1)
- reassign this bug back to mpfr4, adding the libfr6.symbols.kfreebsd-amd64 in
next version 4.0.1-2.
- clone this bug to gcc-7, adding a patch to dfp.m4 so it can be integrated in
next release of gcc-7: 7.3.0-18?

2) (not preferred)
- Build an NMUed version of mpfr4, 4.0.1-1.1, and install it at debian-ports. 

For GNU/Hurd the entry in sources.list is
deb http://ftp.ports.debian.org/debian-ports unreleased main

What about creating
http://ftp.ports.debian.org/debian-ports/pool-kfreebsd-{amd64,i386} and populate
 the mpfr4 packages there at pool-kfreebsd-amd64/m/. Additionally the buildds
need to use these packages. Unfortunately I don't know how to do that.

Then when gcc-7-7.3.0-18 is released, an updated version of mpfr4 is hopefully
available (if not, what to do, how to get back to using the old version?)



Bug#897416: mpfr4: FTBFS on kfreebsd-amd64

2018-05-02 Thread Vincent Lefevre
[Cc mpfr list]

On 2018-05-02 13:45:30 +0200, Vincent Lefevre wrote:
> and in the configure output:
> 
> checking if compiler knows _Decimal64... no

Note that it is "yes" for kfreebsd-i386:

  
https://buildd.debian.org/status/fetch.php?pkg=mpfr4=kfreebsd-i386=4.0.1-1=1523420566=0

> It should have been "yes", unless it is known that _Decimal64 does not
> work on FreeBSD. But the GCC manual does not mention OS related issues
> for _Decimal64:
> 
>   https://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html

Well, I've looked at the test done by MPFR, and it is awkward:

  volatile _Decimal64 x = 1;
  union { double d; _Decimal64 d64; } y;
  if (x != x) return 83;
  y.d64 = 1234567890123456.0dd;
  return y.d == 0.14894469406741037E-123 ? 80 :
 y.d == 0.59075095508629822E-68  ? 81 : 82;

If there is any issue related to double (such as the use of
x87 extended precision), this may fail. Is this the reason
for kfreebsd-amd64?

I can see 3 solutions:

1. Still compare to double, but use the hex format for the double
values to avoid any inexact base 10 to base 2 conversion.

Note: IMHO, if _Decimal64 exists, one can safely assume that the
hex format is supported.

2. Use uint64_t instead of double. Similarly, IMHO, if _Decimal64
exists, uint64_t probably exists too.

3. Use an array of 8 unsigned char instead of double, and consider
the two possible cases of endianness that can occur nowadays.

-- 
Vincent Lefèvre  - Web: 
100% accessible validated (X)HTML - Blog: 
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)



Processed: Re: Bug#897416: mpfr4: FTBFS on kfreebsd-amd64

2018-05-02 Thread Debian Bug Tracking System
Processing control commands:

> reassign -1 gcc-7
Bug #897416 [src:mpfr4] mpfr4: FTBFS on kfreebsd-amd64
Bug reassigned from package 'src:mpfr4' to 'gcc-7'.
No longer marked as found in versions mpfr4/4.0.1-1.
Ignoring request to alter fixed versions of bug #897416 to the same values 
previously set
> retitle -1 gcc: Decimal float support is not enabled on kfreebsd-amd64
Bug #897416 [gcc-7] mpfr4: FTBFS on kfreebsd-amd64
Changed Bug title to 'gcc: Decimal float support is not enabled on 
kfreebsd-amd64' from 'mpfr4: FTBFS on kfreebsd-amd64'.

-- 
897416: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897416
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#897416: mpfr4: FTBFS on kfreebsd-amd64

2018-05-02 Thread James Clarke
Control: reassign -1 gcc-7
Control: retitle -1 gcc: Decimal float support is not enabled on kfreebsd-amd64

On 2 May 2018, at 10:38, Svante Signell  wrote:
> 
> Source: mpfr4
> Version: 4.0.1-1
> Severity: important
> Tags: patch
> User: debian-...@lists.debian.org
> Usertags: kfreebsd
> 
> Hi,
> 
> mpfr4 FTBFS on kFreebsd-amd64 due to mismatches in the debian/libmpfr6.symbols
> file. Attached is a file with the symbols generated from the build:
> libmpfr6.symbols.kfreebsd-amd64.
> 
> Thanks!

You're right that the symbols file is currently wrong, but IMO gcc should have
decimal float support enabled for kfreebsd-amd64. It's enabled for
kfreebsd-i386 by virtue of the fact that i?86*-*-gnu* (for Hurd) matches
kfreebsd-i386's tuple, but there's no corresponding x86_64*-*-gnu* for a future
64-bit Hurd, and thus kfreebsd-amd64's tuple is not matched[0].

James

[0] https://github.com/gcc-mirror/gcc/blob/trunk/config/dfp.m4#L23-L26



Bug#897416: mpfr4: FTBFS on kfreebsd-amd64

2018-05-02 Thread Vincent Lefevre
On 2018-05-02 11:38:14 +0200, Svante Signell wrote:
> mpfr4 FTBFS on kFreebsd-amd64 due to mismatches in the debian/libmpfr6.symbols
> file. Attached is a file with the symbols generated from the build:
> libmpfr6.symbols.kfreebsd-amd64.

This is due to:

--- debian/libmpfr6.symbols (libmpfr6_4.0.1-1_kfreebsd-amd64)
+++ dpkg-gensymbolst5OG2p   2018-04-04 16:57:36.0 +
@@ -189,7 +189,7 @@
  mpfr_get_d1@Base 3.1.3
  mpfr_get_d@Base 3.1.3
  mpfr_get_d_2exp@Base 3.1.3
- (arch=any-amd64 any-i386 powerpc ppc64 ppc64el s390x)mpfr_get_decimal64@Base 
4.0.0
+#MISSING: 4.0.1-1# (arch=any-amd64 any-i386 powerpc ppc64 ppc64el 
s390x)mpfr_get_decimal64@Base 4.0.0
  mpfr_get_default_prec@Base 3.1.3
  mpfr_get_default_rounding_mode@Base 3.1.3
  mpfr_get_emax@Base 3.1.3
@@ -442,7 +442,7 @@
  mpfr_set@Base 3.1.3
  mpfr_set_1_2@Base 4.0.0
  mpfr_set_d@Base 3.1.3
- (arch=any-amd64 any-i386 powerpc ppc64 ppc64el s390x)mpfr_set_decimal64@Base 
4.0.0
+#MISSING: 4.0.1-1# (arch=any-amd64 any-i386 powerpc ppc64 ppc64el 
s390x)mpfr_set_decimal64@Base 4.0.0
  mpfr_set_default_prec@Base 3.1.3
  mpfr_set_default_rounding_mode@Base 3.1.3
  mpfr_set_divby0@Base 3.1.3

and in the configure output:

checking if compiler knows _Decimal64... no

It should have been "yes", unless it is known that _Decimal64 does not
work on FreeBSD. But the GCC manual does not mention OS related issues
for _Decimal64:

  https://gcc.gnu.org/onlinedocs/gcc/Decimal-Float.html

-- 
Vincent Lefèvre  - Web: 
100% accessible validated (X)HTML - Blog: 
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)



Bug#897416: mpfr4: FTBFS on kfreebsd-amd64

2018-05-02 Thread Svante Signell
Source: mpfr4
Version: 4.0.1-1
Severity: important
Tags: patch
User: debian-...@lists.debian.org
Usertags: kfreebsd

Hi,

mpfr4 FTBFS on kFreebsd-amd64 due to mismatches in the debian/libmpfr6.symbols
file. Attached is a file with the symbols generated from the build:
libmpfr6.symbols.kfreebsd-amd64.

Thanks!libmpfr.so.6 libmpfr6 #MINVER#
 __gmpfr_cache_const_catalan@Base 3.1.3
 __gmpfr_cache_const_euler@Base 3.1.3
 __gmpfr_cache_const_log2@Base 3.1.3
 __gmpfr_cache_const_pi@Base 3.1.3
 __gmpfr_ceil_exp2@Base 3.1.3
 __gmpfr_ceil_log2@Base 3.1.3
 __gmpfr_const_log2_RNDD@Base 4.0.0
 __gmpfr_const_log2_RNDU@Base 4.0.0
 __gmpfr_cuberoot@Base 3.1.3
 __gmpfr_default_fp_bit_precision@Base 3.1.3
 __gmpfr_default_rounding_mode@Base 3.1.3
 __gmpfr_emax@Base 3.1.3
 __gmpfr_emin@Base 3.1.3
 __gmpfr_flags@Base 3.1.3
 __gmpfr_floor_log2@Base 3.1.3
 __gmpfr_four@Base 3.1.3
 __gmpfr_fpif_export@Base 4.0.0
 __gmpfr_fpif_import@Base 4.0.0
 __gmpfr_fprintf@Base 3.1.3
 __gmpfr_inp_str@Base 3.1.3
 __gmpfr_int_ceil_log2@Base 3.1.3
 __gmpfr_isqrt@Base 3.1.3
 __gmpfr_l2b@Base 3.1.3
 __gmpfr_mone@Base 4.0.0
 __gmpfr_mpfr_get_sj@Base 3.1.3
 __gmpfr_mpfr_get_uj@Base 3.1.3
 __gmpfr_one@Base 3.1.3
 __gmpfr_out_str@Base 3.1.3
 __gmpfr_set_sj@Base 3.1.3
 __gmpfr_set_sj_2exp@Base 3.1.3
 __gmpfr_set_uj@Base 3.1.3
 __gmpfr_set_uj_2exp@Base 3.1.3
 __gmpfr_two@Base 3.1.3
 __gmpfr_vasprintf@Base 3.1.3
 __gmpfr_vfprintf@Base 3.1.3
 __gmpfr_vprintf@Base 3.1.3
 __gmpfr_vsnprintf@Base 3.1.3
 __gmpfr_vsprintf@Base 3.1.3
 mpfr_abort_prec_max@Base 3.1.3
 mpfr_abs@Base 3.1.3
 mpfr_acos@Base 3.1.3
 mpfr_acosh@Base 3.1.3
 mpfr_add1@Base 3.1.3
 mpfr_add1sp@Base 3.1.3
 mpfr_add@Base 3.1.3
 mpfr_add_d@Base 3.1.3
 mpfr_add_q@Base 3.1.3
 mpfr_add_si@Base 3.1.3
 mpfr_add_ui@Base 3.1.3
 mpfr_add_z@Base 3.1.3
 mpfr_agm@Base 3.1.3
 mpfr_ai@Base 3.1.3
 mpfr_allocate_func@Base 3.1.3
 mpfr_asin@Base 3.1.3
 mpfr_asinh@Base 3.1.3
 mpfr_asprintf@Base 3.1.3
 mpfr_assert_fail@Base 3.1.3
 mpfr_atan2@Base 3.1.3
 mpfr_atan@Base 3.1.3
 mpfr_atanh@Base 3.1.3
 mpfr_bases@Base 3.1.3
 mpfr_bernoulli_cache@Base 4.0.0
 mpfr_bernoulli_freecache@Base 4.0.0
 mpfr_beta@Base 4.0.0
 mpfr_buildopt_decimal_p@Base 3.1.3
 mpfr_buildopt_float128_p@Base 4.0.0
 mpfr_buildopt_gmpinternals_p@Base 3.1.3
 mpfr_buildopt_sharedcache_p@Base 4.0.0
 mpfr_buildopt_tls_p@Base 3.1.3
 mpfr_buildopt_tune_case@Base 3.1.3
 mpfr_cache@Base 3.1.3
 mpfr_can_round@Base 3.1.3
 mpfr_can_round_raw@Base 3.1.3
 mpfr_cbrt@Base 3.1.3
 mpfr_ceil@Base 3.1.3
 mpfr_ceil_mul@Base 3.1.3
 mpfr_check@Base 3.1.3
 mpfr_check_range@Base 3.1.3
 mpfr_clear@Base 3.1.3
 mpfr_clear_cache@Base 3.1.3
 mpfr_clear_divby0@Base 3.1.3
 mpfr_clear_erangeflag@Base 3.1.3
 mpfr_clear_flags@Base 3.1.3
 mpfr_clear_inexflag@Base 3.1.3
 mpfr_clear_nanflag@Base 3.1.3
 mpfr_clear_overflow@Base 3.1.3
 mpfr_clear_underflow@Base 3.1.3
 mpfr_clears@Base 3.1.3
 mpfr_cmp2@Base 3.1.3
 mpfr_cmp3@Base 3.1.3
 mpfr_cmp@Base 3.1.3
 mpfr_cmp_d@Base 3.1.3
 mpfr_cmp_f@Base 3.1.3
 mpfr_cmp_ld@Base 3.1.3
 mpfr_cmp_q@Base 3.1.3
 mpfr_cmp_si@Base 3.1.3
 mpfr_cmp_si_2exp@Base 3.1.3
 mpfr_cmp_ui@Base 3.1.3
 mpfr_cmp_ui_2exp@Base 3.1.3
 mpfr_cmp_z@Base 3.1.3
 mpfr_cmpabs@Base 3.1.3
 mpfr_const_catalan@Base 3.1.3
 mpfr_const_catalan_internal@Base 3.1.3
 mpfr_const_euler@Base 3.1.3
 mpfr_const_euler_internal@Base 3.1.3
 mpfr_const_log2@Base 3.1.3
 mpfr_const_log2_internal@Base 3.1.3
 mpfr_const_pi@Base 3.1.3
 mpfr_const_pi_internal@Base 3.1.3
 mpfr_copysign@Base 3.1.3
 mpfr_cos@Base 3.1.3
 mpfr_cosh@Base 3.1.3
 mpfr_cot@Base 3.1.3
 mpfr_coth@Base 3.1.3
 mpfr_csc@Base 3.1.3
 mpfr_csch@Base 3.1.3
 mpfr_custom_get_exp@Base 3.1.3
 mpfr_custom_get_kind@Base 3.1.3
 mpfr_custom_get_significand@Base 3.1.3
 mpfr_custom_get_size@Base 3.1.3
 mpfr_custom_init@Base 3.1.3
 mpfr_custom_init_set@Base 3.1.3
 mpfr_custom_move@Base 3.1.3
 mpfr_d_div@Base 3.1.3
 mpfr_d_sub@Base 3.1.3
 mpfr_digamma@Base 3.1.3
 mpfr_dim@Base 3.1.3
 mpfr_div@Base 3.1.3
 mpfr_div_2exp@Base 3.1.3
 mpfr_div_2si@Base 3.1.3
 mpfr_div_2ui@Base 3.1.3
 mpfr_div_d@Base 3.1.3
 mpfr_div_q@Base 3.1.3
 mpfr_div_si@Base 3.1.3
 mpfr_div_ui2@Base 3.1.3
 mpfr_div_ui@Base 3.1.3
 mpfr_div_z@Base 3.1.3
 mpfr_divby0_p@Base 3.1.3
 mpfr_divhigh_n@Base 3.1.3
 mpfr_dump@Base 3.1.3
 mpfr_eint@Base 3.1.3
 mpfr_eq@Base 3.1.3
 mpfr_equal_p@Base 3.1.3
 mpfr_erandom@Base 4.0.0
 mpfr_erangeflag_p@Base 3.1.3
 mpfr_erf@Base 3.1.3
 mpfr_erfc@Base 3.1.3
 mpfr_exp10@Base 3.1.3
 mpfr_exp2@Base 3.1.3
 mpfr_exp@Base 3.1.3
 mpfr_exp_2@Base 3.1.3
 mpfr_exp_3@Base 3.1.3
 mpfr_expm1@Base 3.1.3
 mpfr_extract@Base 3.1.3
 mpfr_fac_ui@Base 3.1.3
 mpfr_fdump@Base 4.0.0
 mpfr_fits_intmax_p@Base 3.1.3
 mpfr_fits_sint_p@Base 3.1.3
 mpfr_fits_slong_p@Base 3.1.3
 mpfr_fits_sshort_p@Base 3.1.3
 mpfr_fits_uint_p@Base 3.1.3
 mpfr_fits_uintmax_p@Base 3.1.3
 mpfr_fits_ulong_p@Base 3.1.3
 mpfr_fits_ushort_p@Base 3.1.3
 mpfr_flags_clear@Base 4.0.0
 mpfr_flags_restore@Base 4.0.0
 mpfr_flags_save@Base 4.0.0
 mpfr_flags_set@Base 4.0.0
 mpfr_flags_test@Base 4.0.0