Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Sep 2018 19:03:26 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Mark Johnston <markj@FreeBSD.org>, Li-Wen Hsu <lwhsu@freebsd.org>, John Baldwin <jhb@freebsd.org>, svn-src-head@freebsd.org
Subject:   Re: svn commit: r336299 - in head: include lib/msun lib/msun/ld128  lib/msun/ld80 lib/msun/man lib/msun/src
Message-ID:  <B4DE8C10-126A-4BDA-AF3E-45A848DAE7A8@yahoo.com>
In-Reply-To: <21AF98BF-12EE-49DD-B485-54537B26FBF8@yahoo.com>
References:  <21AF98BF-12EE-49DD-B485-54537B26FBF8@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
[I've got a historical WERROR=3D used in my amd64-gcc based builds.]

On 2018-Sep-20, at 6:05 PM, Mark Millard <marklmi at yahoo.com> wrote:


> Li-Wen Hsu lwhsu at freebsd.org wrote on
> Thu Sep 20 22:10:19 UTC 2018 :
>=20
>> On Thu, Sep 20, 2018 at 10:06 PM Mark Johnston <markj at freebsd.org> =
wrote:
>>>=20
>>> On Thu, Sep 20, 2018 at 09:39:24AM -0700, John Baldwin wrote:
>>>> On 9/20/18 8:54 AM, Mark Johnston wrote:
>>>>> On Sun, Jul 15, 2018 at 12:23:11AM +0000, Matt Macy wrote:
>>>>>> Author: mmacy
>>>>>> Date: Sun Jul 15 00:23:10 2018
>>>>>> New Revision: 336299
>>>>>> URL: https://svnweb.freebsd.org/changeset/base/336299
>>>>>>=20
>>>>>> Log:
>>>>>>  msun: add ld80/ld128 powl, cpow, cpowf, cpowl from openbsd
>>>>>>=20
>>>>>>  This corresponds to the latest status (hasn't changed in 9+
>>>>>>  years) from openbsd of ld80/ld128 powl, and source cpowf, cpow,
>>>>>>  cpowl (the complex power functions for float complex, double
>>>>>>  complex, and long double complex) which are required for C99
>>>>>>  compliance and were missing from FreeBSD. Also required for
>>>>>>  some numerical codes using complex numbered Hamiltonians.
>>>>>>=20
>>>>>>  Thanks to jhb for tracking down the issue with making
>>>>>>  weak_reference compile on powerpc.
>>>>>>=20
>>>>>>  When asked to review, bde said "I don't like it" - but
>>>>>>  provided no actionable feedback or superior implementations.
>>>>>>=20
>>>>>>  Discussed with: jhb
>>>>>>  Submitted by: jmd
>>>>>>  Differential Revision: https://reviews.freebsd.org/D15919
>>>>>=20
>>>>> This seems to have broken the gcc build:
>>>>> https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc/
>>>>>=20
>>>>> /workspace/src/lib/msun/ld80/e_powl.c:275:1: error: floating =
constant exceeds range of 'long double' [-Werror=3Doverflow]
>>>>>  if( y >=3D LDBL_MAX )
>>>>>  ^~
>>>>=20
>>>> Which architecture?  i386 doesn't get build with =
i386-xtoolchain-gcc pending
>>>> some patches I haven't yet posted for review related to the =
weirdness we do
>>>> with floating point on i386.
>>>=20
>>> This is the -m32 build on amd64.  I haven't tested it myself, but =
Mark
>>> Millard noted that the issue might be fixed by a gcc update.
>>>=20
>>=20
>> I suspect this.  Each build is in a fresh created jail with the =
latest
>> branch of packages from pkg.freebsd.org.
>>=20
>> At the beginning of (warning: 56MB file)
>> https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc/7262/consoleText
>>=20
>> There is:
>>=20
>> New packages to be INSTALLED:
>>        amd64-xtoolchain-gcc: 0.4_1
>>        amd64-gcc: 6.4.0_2
>>        mpfr: 4.0.1
>>        gmp: 6.1.2
>>        mpc: 1.1.0_1
>>        amd64-binutils: 2.30_5,1
>>=20
>> Number of packages to be installed: 6
>>=20
>> Or is there a newer version of devel/amd64-gcc I am not aware?
>=20
> I wonder when ci.freebsd.org started using "amd64-gcc: 6.4.0_2".
> Looking: =
https://ci.freebsd.org/job/FreeBSD-head-amd64-gcc/6665/consoleText
> from back on 2018-Jul-26. This suggests being based on
> -r475319 (2018-Jul-25) for devel/powerpc-gcc (the master
> port).
>=20
> Looks like -r475290 (the float.h removal) is the first version
> with PORT_REVISION being 2, as are all later versions at
> this point. Technically -r476273 (2018-Aug-2) removed a typo from
> -r475290 but at the time the typo seemed to not make an operational
> difference. Still, ci.freebsd.org seems to not be
> using the version with the typo fixed.
>=20
> Looks like system head being built was -r338831. (I'm only at
> -r338675 so far.)
>=20
> I've started a buildworld buildkernel based -on head -r3338675
> and based on master port:
>=20
> # svnlite diff /usr/ports/devel/powerpc64-gcc/ | more
> Index: /usr/ports/devel/powerpc64-gcc/Makefile
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- /usr/ports/devel/powerpc64-gcc/Makefile     (revision 480180)
> +++ /usr/ports/devel/powerpc64-gcc/Makefile     (working copy)
> @@ -16,7 +16,8 @@
> LIB_DEPENDS=3D   libgmp.so:math/gmp \
>                libmpfr.so:math/mpfr \
>                libmpc.so:math/mpc
> -BUILD_DEPENDS=3D ${BU_PREFIX}-as:devel/${PKGNAMEPREFIX}binutils
> +BUILD_DEPENDS=3D ${BU_PREFIX}-as:devel/${PKGNAMEPREFIX}binutils \
> +               objdump:devel/binutils
> RUN_DEPENDS=3D   ${BU_PREFIX}-as:devel/${PKGNAMEPREFIX}binutils
>=20
> USES=3D  gmake iconv libtool tar:xz makeinfo compiler
>=20
> which does not have -r478209 involved ( un-breaking
> devel/aarch64-none-elf-gcc ).
>=20
> # svnlite diff /usr/ports/devel/amd64-gcc/ | more
> #
>=20
> So no differences there (relative to -r480180).
>=20
>=20
> (The objdump is from having built systems based on
> WITHOUT_BINUTILS and WITHOUT_BINUTILS_BOOTSTRAP at times
> but some devel/*-gcc builds trying to use objdump in the
> configuration part of gcc's build.)
>=20
> My past builds using at or after -r475290 for various system
> head revisions have completed without being stopped by an
> error but it has been a while. I will see for this one, but
> it is only into building lib32 so far.
>=20
> (Note: My port builds are via devel/poudriere-devel tied to
> my /usr/ports/ and to my
> /usr/obj/DESTDIRs/clang-amd64-installworld-poud/ that is installed
> from the same build that I install and boot from, just with
> distrib-dirs distribution DB_FROM_SRC=3D1 also involved with the
> installworld .)
>=20

The build completed.

The difference in what I get as a result is that I get:

/usr/src/lib/msun/ld80/e_powl.c: In function 'powl':
/usr/src/lib/msun/ld80/e_powl.c:275:1: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
/usr/src/lib/msun/ld80/e_powl.c:286:1: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
/usr/src/lib/msun/ld80/e_powl.c:297:1: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
/usr/src/lib/msun/ld80/e_powl.c:321:1: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
/usr/src/lib/msun/ld80/e_powl.c: In function 'powil':
/usr/src/lib/msun/ld80/e_powl.c:577:3: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
. . .
/usr/src/lib/msun/ld80/e_powl.c: In function 'powl':
/usr/src/lib/msun/ld80/e_powl.c:275:1: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
/usr/src/lib/msun/ld80/e_powl.c:286:1: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
/usr/src/lib/msun/ld80/e_powl.c:297:1: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
/usr/src/lib/msun/ld80/e_powl.c:321:1: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
/usr/src/lib/msun/ld80/e_powl.c: In function 'powil':
/usr/src/lib/msun/ld80/e_powl.c:577:3: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
. . .
/usr/src/lib/msun/ld80/e_powl.c: In function 'powl':
/usr/src/lib/msun/ld80/e_powl.c:275:1: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
/usr/src/lib/msun/ld80/e_powl.c:286:1: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
/usr/src/lib/msun/ld80/e_powl.c:297:1: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
/usr/src/lib/msun/ld80/e_powl.c:321:1: warning: floating constant =
exceeds range of 'long double' [-Woverflow]
/usr/src/lib/msun/ld80/e_powl.c: In function 'powil':
/usr/src/lib/msun/ld80/e_powl.c:577:3: warning: floating constant =
exceeds range of 'long double' [-Woverflow]

from my (historically driven) use of:

# Avoid db_trace.o getting:
#   calling '__builtin_frame_address' with a nonzero argument is unsafe
# as an error? Other such points as well.
WERROR=3D

in my equivalent of src.conf : src.conf.amd64-xtoolchain-gcc.amd64-host =
.

I had given up on avoiding use of WERROR for fairly-modern-gcc-based
long ago. May be things are better now and I should disable that.

Anyway, the messages in both types of builds seem to fit with John
Baldwin's notes about his proposed patch of sys/x86/include/float.h :
overflow by lack of truncation making the value bigger.

=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B4DE8C10-126A-4BDA-AF3E-45A848DAE7A8>