From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?G=C3=A1bor_Boskovits?= Subject: Re: java: switch to icedtea-8 as default JDK Date: Mon, 4 Dec 2017 16:44:00 +0100 Message-ID: References: <87375czhqj.fsf@elephly.net> <873756herx.fsf@gmail.com> <87y3myv7k9.fsf@elephly.net> <87d141mvgn.fsf@gmail.com> <878tepmud6.fsf@gmail.com> <87bmjkfe1j.fsf@gmail.com> <87lgiltxr4.fsf@gmail.com> <87efobqybc.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="001a1144af5e577528055f85964a" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33248) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eLsub-0005Do-Ck for guix-devel@gnu.org; Mon, 04 Dec 2017 10:44:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eLsuY-0001E9-E0 for guix-devel@gnu.org; Mon, 04 Dec 2017 10:44:05 -0500 Received: from mail-it0-x234.google.com ([2607:f8b0:4001:c0b::234]:38770) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eLsuY-0001Dt-4h for guix-devel@gnu.org; Mon, 04 Dec 2017 10:44:02 -0500 Received: by mail-it0-x234.google.com with SMTP id r6so7619188itr.3 for ; Mon, 04 Dec 2017 07:44:01 -0800 (PST) In-Reply-To: List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Chris Marusich Cc: guix-devel --001a1144af5e577528055f85964a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Now that this problem around glibc is resolved, I think I will do some history rewrite, so that these reverts, reverting the revert.... does not show up. I 'm also willing to rename the branch to have wip in the name, as this seems to be standard for longer runnig parts. WDYT? 2017-12-04 15:19 GMT+01:00 G=C3=A1bor Boskovits : > Ok, so it seems, that the latest glibc update was made to fix the icu4c > thing. > It just broke the locales. > Fix for that has just been pushed, making core-updates usable again. > I pushed to my icedtea branch also. > I'm now building it to see what we have now. > > 2017-12-04 13:59 GMT+01:00 G=C3=A1bor Boskovits : > >> Upstream corrected the issue in commit 6913ad65e00bb32417ad39c41d292b >> 976171e27e. >> >> It is not yet included in 2.26. >> >> The patch is basically the same as I proposed. >> >> I think we should get the upstream version. >> >> 2017-12-04 13:33 GMT+01:00 G=C3=A1bor Boskovits : >> >>> I think it should look like this: >>> >>> --- cdefs.h 2017-12-04 13:27:55.640000000 +0100 >>> +++ cdefs.new.h 2017-12-04 13:31:53.820000000 +0100 >>> @@ -1,4 +1,4 @@ >>> -/* Copyright (C) 1992-2017 Free Software Foundation, Inc. >>> +y/* Copyright (C) 1992-2017 Free Software Foundation, Inc. >>> This file is part of the GNU C Library. >>> >>> The GNU C Library is free software; you can redistribute it and/or >>> @@ -471,10 +471,10 @@ >>> testing __STDC_VERSION__ for generic selection support. >>> On the other hand, Clang also defines __GNUC__, so a clang-specific >>> check is required to enable the use of generic selection. */ >>> -#if __GNUC_PREREQ (4, 9) \ >>> +#if !defined __cplusplus && (__GNUC_PREREQ (4, 9) \ >>> || __glibc_clang_has_extension (c_generic_selections) \ >>> || (!defined __GNUC__ && defined __STDC_VERSION__ \ >>> - && __STDC_VERSION__ >=3D 201112L) >>> + && __STDC_VERSION__ >=3D 201112L)) >>> # define __HAVE_GENERIC_SELECTION 1 >>> #else >>> # define __HAVE_GENERIC_SELECTION 0 >>> >>> >>> 2017-12-04 13:21 GMT+01:00 G=C3=A1bor Boskovits : >>> >>>> We also have this in bits/floatn.h, but this seems right. >>>> >>>> #if (defined __x86_64__ >>>> \ >>>> ? __GNUC_PREREQ (4, 3) >>>> \ >>>> : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))= ) >>>> # define __HAVE_FLOAT128 1 >>>> #else >>>> # define __HAVE_FLOAT128 0 >>>> #endif >>>> >>>> /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct >>>> >>>> >>>> from the default float, double and long double types in this glibc. >>>> */ >>>> #if __HAVE_FLOAT128 >>>> # define __HAVE_DISTINCT_FLOAT128 1 >>>> #else >>>> # define __HAVE_DISTINCT_FLOAT128 0 >>>> #endif >>>> >>>> I think the problem is caused by HAVE_GENERIC_SELECTION defined when w= e >>>> are in C++. >>>> >>>> >>>> 2017-12-04 13:18 GMT+01:00 G=C3=A1bor Boskovits : >>>> >>>>> We have this in cdefs.h: >>>>> #if __GNUC_PREREQ (4, 9) \ >>>>> || __glibc_clang_has_extension (c_generic_selections) \ >>>>> || (!defined __GNUC__ && defined __STDC_VERSION__ \ >>>>> && __STDC_VERSION__ >=3D 201112L) >>>>> # define __HAVE_GENERIC_SELECTION 1 >>>>> #else >>>>> # define __HAVE_GENERIC_SELECTION 0 >>>>> #endif >>>>> >>>>> This does not seem right. >>>>> >>>>> We should not have this defined when compiling c++. >>>>> WDYT? >>>>> >>>>> 2017-12-04 13:03 GMT+01:00 G=C3=A1bor Boskovits = : >>>>> >>>>>> This minimal file reproduces the problem in icu4c 60.1 in guix >>>>>> environment icu4c on current core-updates. >>>>>> >>>>>> #include >>>>>> >>>>>> int main(int argc, char **argv) >>>>>> { >>>>>> std::signbit(1); >>>>>> return 0; >>>>>> } >>>>>> >>>>>> It seems, that it is some problem with cmath.h >>>>>> >>>>>> /gnu/store/2wzijwwgpcdb1msmn3wgq9zmrbrkpx2h-gcc-5.5.0/includ >>>>>> e/c++/cmath:44:0 >>>>>> >>>>>> The definition is in glibc 2.26 math.h, looks like this: >>>>>> >>>>>> #elif __HAVE_DISTINCT_FLOAT128 >>>>>> # if __HAVE_GENERIC_SELECTION >>>>>> # define __MATH_TG(TG_ARG, FUNC, ARGS) \ >>>>>> _Generic ((TG_ARG), \ >>>>>> float: FUNC ## f ARGS, \ >>>>>> default: FUNC ARGS, \ >>>>>> long double: FUNC ## l ARGS, \ >>>>>> _Float128: FUNC ## f128 ARGS) >>>>>> >>>>>> >>>>>> >>>>>> 2017-12-03 23:25 GMT+01:00 G=C3=A1bor Boskovits : >>>>>> >>>>>>> It seems, that the fix is already included in the 60.1 release for >>>>>>> the xlocal problem. I think we can ignore that. >>>>>>> >>>>>>> 2017-12-03 23:20 GMT+01:00 G=C3=A1bor Boskovits : >>>>>>> >>>>>>>> It seems, that they issued that already: >>>>>>>> http://bugs.icu-project.org/trac/changeset/40603 >>>>>>>> >>>>>>>> 2017-12-03 23:08 GMT+01:00 G=C3=A1bor Boskovits : >>>>>>>> >>>>>>>>> Ok, I found this one: >>>>>>>>> https://sourceware.org/glibc/wiki/Release/2.26#Removal_of_.2 >>>>>>>>> 7xlocale.h.27 >>>>>>>>> >>>>>>>>> It seems, that xlocale.h should not be used as an include, and >>>>>>>>> glibc removed that. >>>>>>>>> >>>>>>>>> So this is ok. >>>>>>>>> >>>>>>>>> The question is if this issue was addressed by icu4c, so we can >>>>>>>>> just go to the next step, or should we do something about this. >>>>>>>>> >>>>>>>>> >>>>>>>>> 2017-12-03 23:04 GMT+01:00 G=C3=A1bor Boskovits : >>>>>>>>> >>>>>>>>>> I've found that simply reverting the update to icu4c 60 commit >>>>>>>>>> brings up the issue you just mentioned, with missing xlocale.h. >>>>>>>>>> So it seems, that the one you found introduced the xlocale >>>>>>>>>> problem, while 4e080fbb0bb73e4444181599676f4e1ef5fdc2ba >>>>>>>>>> introduces the new error. >>>>>>>>>> I think we should deal with the one you find first, the see >>>>>>>>>> what's with this newer one. >>>>>>>>>> >>>>>>>>>> We also have a long running discussion on a bug introduced by a >>>>>>>>>> later glibc update, ee3ebf1a357bd4eb36a2fa1790a7b549cffb305a >>>>>>>>>> which broke a lot of packages. Might these be somehow related? >>>>>>>>>> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D29537 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 2017-12-03 22:46 GMT+01:00 Chris Marusich = : >>>>>>>>>> >>>>>>>>>>> G=C3=A1bor Boskovits writes: >>>>>>>>>>> >>>>>>>>>>> > Any news on this icu4c thing? >>>>>>>>>>> >>>>>>>>>>> After about 2 days of running git bisect, my computer has >>>>>>>>>>> informed me >>>>>>>>>>> that the first bad commit is 67d527e35e367c9e9e89ec01cda2ce >>>>>>>>>>> 32cabd2d89. >>>>>>>>>>> This is the first commit where icu4c fails to build on >>>>>>>>>>> core-updates. >>>>>>>>>>> The build failure at this commit is as follows: >>>>>>>>>>> >>>>>>>>>>> --8<---------------cut here---------------start------ >>>>>>>>>>> ------->8--- >>>>>>>>>>> g++ ... decimfmt.cpp >>>>>>>>>>> g++ ... decimalformatpattern.cpp >>>>>>>>>>> g++ ... dcfmtsym.cpp >>>>>>>>>>> g++ ... digitlst.cpp >>>>>>>>>>> g++ ... fmtable_cnv.cpp >>>>>>>>>>> digitlst.cpp:67:24: fatal error: xlocale.h: No such file or >>>>>>>>>>> directory >>>>>>>>>>> compilation terminated. >>>>>>>>>>> *** Failed compilation command follows: >>>>>>>>>>> ---------------------------------------------------------- >>>>>>>>>>> g++ -D_REENTRANT -DU_HAVE_ELF_H=3D1 -DU_HAVE_ATOMIC=3D1 >>>>>>>>>>> -DU_HAVE_STRTOD_L=3D1 -I. -I../common -DU_ATTRIBUTE_DEPRECATED= =3D >>>>>>>>>>> -DU_I18N_IMPLEMENTATION -O2 -W -Wall -pedantic -Wpointer-arith >>>>>>>>>>> -Wwrite-strings -Wno-long-long --std=3Dc++0x -c -DPIC -fPIC -o = digitlst.o >>>>>>>>>>> digitlst.cpp >>>>>>>>>>> --- ( rebuild with "make VERBOSE=3D1 all" to show all parameter= s ) >>>>>>>>>>> -------- >>>>>>>>>>> make[1]: *** [../config/mh-linux:51: digitlst.o] Error 1 >>>>>>>>>>> make[1]: *** Waiting for unfinished jobs.... >>>>>>>>>>> make[1]: Leaving directory '/tmp/guix-build-icu4c-58.2.dr >>>>>>>>>>> v-0/icu/source/i18n' >>>>>>>>>>> make: *** [Makefile:143: all-recursive] Error 2 >>>>>>>>>>> phase `build' failed after 59.0 seconds >>>>>>>>>>> builder for `/gnu/store/mdd6glhc0dg65y4wd11y0b7sbky9cwv6-icu4c-= 58.2.drv' >>>>>>>>>>> failed with exit code 1 >>>>>>>>>>> @ build-failed /gnu/store/mdd6glhc0dg65y4wd11y0b7sbky9cwv6-icu4= c-58.2.drv >>>>>>>>>>> - 1 builder for `/gnu/store/mdd6glhc0dg65y4wd11y0b7sbky9cwv6-ic= u4c-58.2.drv' >>>>>>>>>>> failed with exit code 1 >>>>>>>>>>> guix build: error: build failed: build of >>>>>>>>>>> `/gnu/store/mdd6glhc0dg65y4wd11y0b7sbky9cwv6-icu4c-58.2.drv' >>>>>>>>>>> failed >>>>>>>>>>> --8<---------------cut here---------------end-------- >>>>>>>>>>> ------->8--- >>>>>>>>>>> >>>>>>>>>>> Note that this is NOT the same error as the one that occurs at >>>>>>>>>>> commit >>>>>>>>>>> d6adba786cf2ab1b26ff083928b64262281ff106 (which is the commit o= n >>>>>>>>>>> core-updates from which G=C3=A1bor's branch change-default-iced= tea-8 >>>>>>>>>>> branch >>>>>>>>>>> begins). That error is: >>>>>>>>>>> >>>>>>>>>>> --8<---------------cut here---------------start------ >>>>>>>>>>> ------->8--- >>>>>>>>>>> g++ ... number_decimalquantity.cpp >>>>>>>>>>> g++ ... number_decimfmtprops.cpp >>>>>>>>>>> number_decimalquantity.cpp: In member function >>>>>>>>>>> =E2=80=98icu_60::number::impl::DecimalQuantity& >>>>>>>>>>> icu_60::number::impl::DecimalQuantity::setToDouble(double)=E2= =80=99: >>>>>>>>>>> number_decimalquantity.cpp:333:9: error: =E2=80=98_Generic=E2= =80=99 is not a >>>>>>>>>>> member of =E2=80=98std=E2=80=99 >>>>>>>>>>> if (std::signbit(n) !=3D 0) { >>>>>>>>>>> ^ >>>>>>>>>>> In file included from /gnu/store/nz2m4gdvgzcrkqa4xwv >>>>>>>>>>> 360iskh7syj7i-gcc-5.5.0/include/c++/cmath:44:0, >>>>>>>>>>> from number_decimalquantity.cpp:9: >>>>>>>>>>> number_decimalquantity.cpp:333:14: error: expected >>>>>>>>>>> primary-expression before =E2=80=98float=E2=80=99 >>>>>>>>>>> if (std::signbit(n) !=3D 0) { >>>>>>>>>>> ^ >>>>>>>>>>> number_decimalquantity.cpp:333:14: error: expected >>>>>>>>>>> primary-expression before =E2=80=98default=E2=80=99 >>>>>>>>>>> if (std::signbit(n) !=3D 0) { >>>>>>>>>>> ^ >>>>>>>>>>> number_decimalquantity.cpp:333:14: error: expected >>>>>>>>>>> primary-expression before =E2=80=98long=E2=80=99 >>>>>>>>>>> if (std::signbit(n) !=3D 0) { >>>>>>>>>>> ^ >>>>>>>>>>> number_decimalquantity.cpp:333:14: error: expected >>>>>>>>>>> primary-expression before =E2=80=98:=E2=80=99 token >>>>>>>>>>> if (std::signbit(n) !=3D 0) { >>>>>>>>>>> ^ >>>>>>>>>>> number_decimalquantity.cpp:337:9: error: =E2=80=98__builtin_isn= an=E2=80=99 is >>>>>>>>>>> not a member of =E2=80=98std=E2=80=99 >>>>>>>>>>> if (std::isnan(n) !=3D 0) { >>>>>>>>>>> ^ >>>>>>>>>>> number_decimalquantity.cpp:337:9: note: suggested alternative: >>>>>>>>>>> : note: =E2=80=98__builtin_isnan=E2=80=99 >>>>>>>>>>> number_decimalquantity.cpp:339:16: error: =E2=80=98__builtin_is= finite=E2=80=99 >>>>>>>>>>> is not a member of =E2=80=98std=E2=80=99 >>>>>>>>>>> } else if (std::isfinite(n) =3D=3D 0) { >>>>>>>>>>> ^ >>>>>>>>>>> number_decimalquantity.cpp:339:16: note: suggested alternative: >>>>>>>>>>> : note: =E2=80=98__builtin_isfinite=E2=80=99 >>>>>>>>>>> *** Failed compilation command follows: >>>>>>>>>>> ---------------------------------------------------------- >>>>>>>>>>> g++ -D_REENTRANT -DU_HAVE_ELF_H=3D1 -DU_HAVE_ATOMIC=3D1 >>>>>>>>>>> -DU_HAVE_STRTOD_L=3D1 -DU_HAVE_XLOCALE_H=3D0 -I. -I../common >>>>>>>>>>> -DU_ATTRIBUTE_DEPRECATED=3D -DU_I18N_IMPLEMENTATION -O2 -W -Wal= l -pedantic >>>>>>>>>>> -Wpointer-arith -Wwrite-strings -Wno-long-long -std=3Dc++11 -c = -DPIC -fPIC -o >>>>>>>>>>> number_decimalquantity.o number_decimalquantity.cpp >>>>>>>>>>> --- ( rebuild with "make VERBOSE=3D1 all" to show all parameter= s ) >>>>>>>>>>> -------- >>>>>>>>>>> make[1]: *** [../config/mh-linux:51: number_decimalquantity.o] >>>>>>>>>>> Error 1 >>>>>>>>>>> make[1]: *** Waiting for unfinished jobs.... >>>>>>>>>>> make[1]: Leaving directory '/tmp/guix-build-icu4c-60.1.dr >>>>>>>>>>> v-0/icu/source/i18n' >>>>>>>>>>> make: *** [Makefile:149: all-recursive] Error 2 >>>>>>>>>>> phase `build' failed after 122.2 seconds >>>>>>>>>>> builder for `/gnu/store/8s6q5cll4knh7y0wfrbjqs2dai0x4sm2-icu4c-= 60.1.drv' >>>>>>>>>>> failed with exit code 1 >>>>>>>>>>> @ build-failed /gnu/store/8s6q5cll4knh7y0wfrbjqs2dai0x4sm2-icu4= c-60.1.drv >>>>>>>>>>> - 1 builder for `/gnu/store/8s6q5cll4knh7y0wfrbjqs2dai0x4sm2-ic= u4c-60.1.drv' >>>>>>>>>>> failed with exit code 1 >>>>>>>>>>> guix build: error: build failed: build of >>>>>>>>>>> `/gnu/store/8s6q5cll4knh7y0wfrbjqs2dai0x4sm2-icu4c-60.1.drv' >>>>>>>>>>> failed >>>>>>>>>>> --8<---------------cut here---------------end-------- >>>>>>>>>>> ------->8--- >>>>>>>>>>> >>>>>>>>>>> The fact that these errors are different suggests that more tha= n >>>>>>>>>>> one >>>>>>>>>>> problem may have been introduced... >>>>>>>>>>> >>>>>>>>>>> I haven't tried any more recent commits on core-updates. I am >>>>>>>>>>> not sure >>>>>>>>>>> what the best way is to debug this, so I would appreciate any >>>>>>>>>>> advice >>>>>>>>>>> anyone has. >>>>>>>>>>> >>>>>>>>>>> I hope that information helps. Hopefully, together, we can >>>>>>>>>>> untangle >>>>>>>>>>> this! >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Chris >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > --001a1144af5e577528055f85964a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Now that this problem around glibc is resolved, I think I = will do some history rewrite, so that these reverts, reverting the revert..= .. does not show up.
I 'm also willing to rename the branch to have= wip in the name, as this seems to be standard for longer runnig parts. WDY= T?

201= 7-12-04 15:19 GMT+01:00 G=C3=A1bor Boskovits <boskovits@gmail.com&g= t;:
Ok, so it see= ms, that the latest glibc update was made to fix the icu4c thing.
It ju= st broke the locales.
Fix for that has just been pushed, making c= ore-updates usable again.
I pushed to my icedtea branch also.
I'm now building it to see what we have now.

2017-12-04 13:59 GMT+01:00 G=C3=A1bor Boskovits <bosko= vits@gmail.com>:
Upstream corrected the issue in commit 6913ad65e00bb32417ad39c41d2= 92b976171e27e.

It is not yet included in 2.26.

The patch is basically the same as I proposed.

I think we should get the upstream version.=C2=A0

2017= -12-04 13:33 GMT+01:00 G=C3=A1bor Boskovits <boskovits@gmail.com&g= t;:
I think it sh= ould look like this:

--- cdefs.h 2017-12-04 13:27:55.640000000 +0100
+++= cdefs.new.h 2017-12-04 13:31:5= 3.820000000 +0100
@@ -1,4 +1,4 @@
-/* Copyright (C) 199= 2-2017 Free Software Foundation, Inc.
+y/* Copyright (C) 1992-201= 7 Free Software Foundation, Inc.
=C2=A0 =C2=A0 This file is part = of the GNU C Library.
=C2=A0
=C2=A0 =C2=A0 The GNU C Li= brary is free software; you can redistribute it and/or
@@ -471,10= +471,10 @@
=C2=A0 =C2=A0 testing __STDC_VERSION__ for generic se= lection support.
=C2=A0 =C2=A0 On the other hand, Clang also defi= nes __GNUC__, so a clang-specific
=C2=A0 =C2=A0 check is required= to enable the use of generic selection.=C2=A0 */
-#if __GNUC_PRE= REQ (4, 9) \
+#if !defined __cplusplus && (__GNUC_PREREQ = (4, 9) =C2=A0 \
=C2=A0 =C2=A0 =C2=A0|| __glibc_clang_has_extension (c_generic_selections) = \
=C2=A0 =C2=A0 =C2=A0|| (!defined __GNUC__ && defined __= STDC_VERSION__ \
- && __STDC_VERSION__ >=3D 201112L)
+ && __STDC_VERSION__ >=3D 201112L)= )
=C2=A0# define __HAVE_GENERIC_SELECTION 1
=C2= =A0#else
=C2=A0# define __HAVE_GENERIC_SELECTION 0


2017-12-04 13:= 21 GMT+01:00 G=C3=A1bor Boskovits <boskovits@gmail.com>:
We also have this in= bits/floatn.h, but this seems right.

#if (defined= __x86_64__=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\
=C2=A0 =C2=A0 =C2=A0? __G= NUC_PREREQ (4, 3)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\
=C2=A0 =C2=A0 =C2=A0: (defined _= _GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4)))
# define _= _HAVE_FLOAT128 1
#else
# define __HAVE_FLOAT128 0
=
#endif

/* Defined to 1 if __HAVE_FLOAT128 is = 1 and the type is ABI-distinct=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0
<= div>=C2=A0 =C2=A0from the default float, double and long double types in th= is glibc.=C2=A0 */
#if __HAVE_FLOAT128
# define __HAVE_= DISTINCT_FLOAT128 1
#else
# define __HAVE_DISTINCT_FLOA= T128 0
#endif

I think the problem is cau= sed by HAVE_GENERIC_SELECTION defined when we are in C++.


2017-12-04 13:18 GMT+01:00 G=C3=A1bor Boskovits <boskovits= @gmail.com>:
We have this in cdefs.h:
#if __GNUC_PREREQ (4, 9) \
= =C2=A0 =C2=A0 || __glibc_clang_has_extension (c_generic_selections) \
=
=C2=A0 =C2=A0 || (!defined __GNUC__ && defined __STDC_VERSION_= _ \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 && __STDC_VERSION__ >= =3D 201112L)
# define __HAVE_GENERIC_SELECTION 1
#else<= /div>
# define __HAVE_GENERIC_SELECTION 0
#endif
<= div>
This does not seem right.

We sh= ould not have this defined when compiling c++.
WDYT?
<= div class=3D"m_-4907288514848448961m_-6165040366786183570m_-615650648185207= 2347m_1640402877081817290HOEnZb">

2017-12-04 13:03 GMT+01:00 = G=C3=A1bor Boskovits <boskovits@gmail.com>:
This minimal file reproduces the = problem in icu4c 60.1 in guix environment icu4c on current core-updates.

#include <cmath>

int = main(int argc, char **argv)
{
=C2=A0 std::signbit(1);
=C2=A0 return 0;
}

It seems, th= at it is some problem with cmath.h

/gnu/store/2wzi= jwwgpcdb1msmn3wgq9zmrbrkpx2h-gcc-5.5.0/include/c++/cmath:44:0
=

The definition is in glibc 2.26 math.h, looks lik= e this:

#elif __HAVE_DISTINCT_FLOAT128
<= div># if __HAVE_GENERIC_SELECTION
#=C2=A0 define __MATH_TG(TG_ARG= , FUNC, ARGS)=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\
=C2=A0 =C2=A0 = =C2=A0_Generic ((TG_ARG),=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 \
=C2=A0 =C2=A0 =C2=A0 =C2=A0float: FUNC ## f ARGS,=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0default: FUNC ARGS,=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0long double: FUNC ## l ARGS,=C2=A0 =C2=A0 =C2=A0\
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0_Float128: FUNC ## f= 128 ARGS)



20= 17-12-03 23:25 GMT+01:00 G=C3=A1bor Boskovits <boskovits@gmail.com&g= t;:
It seems, tha= t the fix is already included in the 60.1 release for the xlocal problem. I= think we can ignore that.

2017-12-03 23:20 GMT+01:00 G=C3=A1bor Boskovits <bosko= vits@gmail.com>:
It seems, that they issued that already:

2017-12-03 23:08 GMT+01:00 G=C3=A1bor Boskovits <bosko= vits@gmail.com>:

2017-12-03 23:04 GMT+01:00 G=C3=A1bor Boskovits <
boskovits@gmail.com>:
I've found that simply reverting the update to icu4c 60 c= ommit brings up the issue you just mentioned, with missing xlocale.h.
S= o it seems, that the one you found introduced the xlocale problem, while=C2= =A04e080fbb0bb73e4444181599676f4e1ef5fdc2ba introduces the new error.<= /div>
I think we should deal with the one you find first, the see what&= #39;s with this newer one.

We also have a long run= ning discussion on a bug introduced by a later glibc update,=C2=A0ee3ebf1a3= 57bd4eb36a2fa1790a7b549cffb305a which broke a lot of packages. Might t= hese be somehow related?



2017-12-03 22:46 GMT+01:00 Chris Maru= sich <cmmarusich@gmail.com>:
G=C3=A1bor Boskovits <boskovits@gmail.com> writes:

> Any news on this icu4c thing?

After about 2 days of running git bisect, my computer has informed m= e
that the first bad commit is 67d527e35e367c9e9e89ec01cda2ce32cabd2d89.=
This is the first commit where icu4c fails to build on core-updates.
The build failure at this commit is as follows:

--8<---------------cut here---------------start------------->8--= -
=C2=A0 =C2=A0g++=C2=A0 =C2=A0...=C2=A0 decimfmt.cpp
=C2=A0 =C2=A0g++=C2=A0 =C2=A0...=C2=A0 decimalformatpattern.cpp
=C2=A0 =C2=A0g++=C2=A0 =C2=A0...=C2=A0 dcfmtsym.cpp
=C2=A0 =C2=A0g++=C2=A0 =C2=A0...=C2=A0 digitlst.cpp
=C2=A0 =C2=A0g++=C2=A0 =C2=A0...=C2=A0 fmtable_cnv.cpp
digitlst.cpp:67:24: fatal error: xlocale.h: No such file or directory
compilation terminated.
*** Failed compilation command follows: ------------------------------= ----------------------------
g++ -D_REENTRANT -DU_HAVE_ELF_H=3D1 -DU_HAVE_ATOMIC=3D1 -DU_HAVE_STRTOD_L= =3D1 -I. -I../common -DU_ATTRIBUTE_DEPRECATED=3D -DU_I18N_IMPLEMENTATION -O= 2 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long --std= =3Dc++0x -c -DPIC -fPIC -o digitlst.o digitlst.cpp
--- ( rebuild with "make VERBOSE=3D1 all" to show all parameters = ) --------
make[1]: *** [../config/mh-linux:51: digitlst.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/tmp/guix-build-icu4c-58.2.drv-0/icu/s= ource/i18n'
make: *** [Makefile:143: all-recursive] Error 2
phase `build' failed after 59.0 seconds
builder for `/gnu/store/mdd6glhc0dg65y4wd11y0b7sbky9cwv6-icu4c-58.2.dr= v' failed with exit code 1
@ build-failed /gnu/store/mdd6glhc0dg65y4wd11y0b7sbky9cwv6-icu4c-58.2.= drv - 1 builder for `/gnu/store/mdd6glhc0dg65y4wd11y0b7sbky9cwv6-icu4c= -58.2.drv' failed with exit code 1
guix build: error: build failed: build of `/gnu/store/mdd6glhc0dg65y4wd11y0b7sbky9cwv6-icu4c-58.2.drv' failed
--8<---------------cut here---------------end--------------->8--= -

Note that this is NOT the same error as the one that occurs at commit
d6adba786cf2ab1b26ff083928b64262281ff106 (which is the commit on
core-updates from which G=C3=A1bor's branch change-default-icedtea-8 br= anch
begins).=C2=A0 That error is:

--8<---------------cut here---------------start------------->8--= -
=C2=A0 =C2=A0g++=C2=A0 =C2=A0...=C2=A0 number_decimalquantity.cpp
=C2=A0 =C2=A0g++=C2=A0 =C2=A0...=C2=A0 number_decimfmtprops.c= pp
number_decimalquantity.cpp: In member function =E2=80=98icu_60::number::imp= l::DecimalQuantity& icu_60::number::impl::DecimalQuantity::se= tToDouble(double)=E2=80=99:
number_decimalquantity.cpp:333:9: error: =E2=80=98_Generic=E2=80=99 is= not a member of =E2=80=98std=E2=80=99
=C2=A0 =C2=A0 =C2=A0if (std::signbit(n) !=3D 0) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^
In file included from /gnu/store/nz2m4gdvgzcrkqa4xwv360iskh7syj7i-gcc-= 5.5.0/include/c++/cmath:44:0,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0from number_d= ecimalquantity.cpp:9:
number_decimalquantity.cpp:333:14: error: expected primary-expression = before =E2=80=98float=E2=80=99
=C2=A0 =C2=A0 =C2=A0if (std::signbit(n) !=3D 0) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^
number_decimalquantity.cpp:333:14: error: expected primary-expression = before =E2=80=98default=E2=80=99
=C2=A0 =C2=A0 =C2=A0if (std::signbit(n) !=3D 0) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^
number_decimalquantity.cpp:333:14: error: expected primary-expression = before =E2=80=98long=E2=80=99
=C2=A0 =C2=A0 =C2=A0if (std::signbit(n) !=3D 0) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^
number_decimalquantity.cpp:333:14: error: expected primary-expression = before =E2=80=98:=E2=80=99 token
=C2=A0 =C2=A0 =C2=A0if (std::signbit(n) !=3D 0) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^
number_decimalquantity.cpp:337:9: error: =E2=80=98__builtin_isnan=E2= =80=99 is not a member of =E2=80=98std=E2=80=99
=C2=A0 =C2=A0 =C2=A0if (std::isnan(n) !=3D 0) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^
number_decimalquantity.cpp:337:9: note: suggested alternative:
<built-in>: note:=C2=A0 =C2=A0=E2=80=98__builtin_isnan=E2=80=99
number_decimalquantity.cpp:339:16: error: =E2=80=98__builtin_isfinite= =E2=80=99 is not a member of =E2=80=98std=E2=80=99
=C2=A0 =C2=A0 =C2=A0} else if (std::isfinite(n) =3D=3D 0) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^
number_decimalquantity.cpp:339:16: note: suggested alternative:
<built-in>: note:=C2=A0 =C2=A0=E2=80=98__builtin_isfinite=E2=80=99
*** Failed compilation command follows: -----------------------= -----------------------------------
g++ -D_REENTRANT -DU_HAVE_ELF_H=3D1 -DU_HAVE_ATOMIC=3D1 -DU_HAVE_STRTOD_L= =3D1 -DU_HAVE_XLOCALE_H=3D0 -I. -I../common -DU_ATTRIBUTE_DEPRECATED=3D -DU= _I18N_IMPLEMENTATION -O2 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings= -Wno-long-long -std=3Dc++11 -c -DPIC -fPIC -o number_decimalquantity.o num= ber_decimalquantity.cpp
--- ( rebuild with "make VERBOSE=3D1 all" to show all parameters = ) --------
make[1]: *** [../config/mh-linux:51: number_decimalquantity.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/tmp/guix-build-icu4c-60.1.drv-0/icu/s= ource/i18n'
make: *** [Makefile:149: all-recursive] Error 2
phase `build' failed after 122.2 seconds
builder for `/gnu/store/8s6q5cll4knh7y0wfrbjqs2dai0x4sm2-icu4c-60.1.dr= v' failed with exit code 1
@ build-failed /gnu/store/8s6q5cll4knh7y0wfrbjqs2dai0x4sm2-icu4c-60.1.= drv - 1 builder for `/gnu/store/8s6q5cll4knh7y0wfrbjqs2dai0x4sm2-icu4c= -60.1.drv' failed with exit code 1
guix build: error: build failed: build of `/gnu/store/8s6q5cll4knh7y0wfrbjqs2dai0x4sm2-icu4c-60.1.drv' failed
--8<---------------cut here---------------end--------------->8--= -

The fact that these errors are different suggests that more than one
problem may have been introduced...

I haven't tried any more recent commits on core-updates.=C2=A0 I am not= sure
what the best way is to debug this, so I would appreciate any advice
anyone has.

I hope that information helps.=C2=A0 Hopefully, together, we can untangle this!

--
Chris











--001a1144af5e577528055f85964a--