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 15:19:12 +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="001a1144af5e1b37fa055f846770" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57083) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eLraX-0004R4-UM for guix-devel@gnu.org; Mon, 04 Dec 2017 09:19:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eLraU-0006vq-Rn for guix-devel@gnu.org; Mon, 04 Dec 2017 09:19:17 -0500 Received: from mail-it0-x233.google.com ([2607:f8b0:4001:c0b::233]:34536) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eLraU-0006vY-It for guix-devel@gnu.org; Mon, 04 Dec 2017 09:19:14 -0500 Received: by mail-it0-x233.google.com with SMTP id m11so12126492iti.1 for ; Mon, 04 Dec 2017 06:19:14 -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 --001a1144af5e1b37fa055f846770 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 we >>> 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 d= igitlst.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.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-5= 8.2.drv' >>>>>>>>>> failed with exit code 1 >>>>>>>>>> @ build-failed /gnu/store/mdd6glhc0dg65y4wd11y0b7sbky9cwv6-icu4c= -58.2.drv >>>>>>>>>> - 1 builder for `/gnu/store/mdd6glhc0dg65y4wd11y0b7sbky9cwv6-icu= 4c-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-icedt= ea-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_isna= n=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_isf= inite=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 -Wall= -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 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.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-6= 0.1.drv' >>>>>>>>>> failed with exit code 1 >>>>>>>>>> @ build-failed /gnu/store/8s6q5cll4knh7y0wfrbjqs2dai0x4sm2-icu4c= -60.1.drv >>>>>>>>>> - 1 builder for `/gnu/store/8s6q5cll4knh7y0wfrbjqs2dai0x4sm2-icu= 4c-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. 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 >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > --001a1144af5e1b37fa055f846770 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
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 <= boskovits@gmail.co= m>:
Upstre= am corrected the issue in commit 6913ad65e00bb32417ad39c41d292b976171e= 27e.

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>:
I think it should look like this:

--- cdefs.h 2017-12-04 13:27:55.640000000 +010= 0
+++ cdefs.new.h 201= 7-12-04 13:31:53.820000000 +0100
@@ -1,4 +1,4 @@
-/* Co= pyright (C) 1992-2017 Free Software Foundation, Inc.
+y/* Copyrig= ht (C) 1992-2017 Free Software Foundation, Inc.
=C2=A0 =C2=A0 Thi= s file is part of the GNU C Library.
=C2=A0
=C2=A0 =C2= =A0 The GNU C Library is free software; you can redistribute it and/or
@@ -471,10 +471,10 @@
=C2=A0 =C2=A0 testing __STDC_VERSION_= _ for generic selection support.
=C2=A0 =C2=A0 On the other hand,= Clang also defines __GNUC__, so a clang-specific
=C2=A0 =C2=A0 c= heck is required to enable the use of generic selection.=C2=A0 */
-#if __GNUC_PREREQ (4, 9) \
+#if !defined __cplusplus &&= (__GNUC_PREREQ (4, 9) =C2=A0 \=
=C2=A0 =C2=A0 =C2=A0|| __glibc_clang_has_extension (c_gene= ric_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<= /div>

=
2017-12-04 13:21 GMT+01:00 G=C3=A1bor Boskov= its <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? __GNUC_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-distin= ct=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
=C2=A0 =C2=A0from the de= fault float, double and long double types in this glibc.=C2=A0 */
#if __HAVE_FLOAT128
# define __HAVE_DISTINCT_FLOAT128 1
#else
# define __HAVE_DISTINCT_FLOAT128 0
#endif

I think the problem is caused by HAVE_GENERIC_SELECTIO= N defined when we are in C++.


2017-12-04 13:18 GMT+01:00 G=C3=A1bor Boskovits <bosko= vits@gmail.com>:
We have this in cdefs.h:
#if __GNUC_PREREQ (4, 9) \
=
=C2=A0 =C2=A0 || __glibc_clang_has_extension (c_generic_selections) \<= /div>
=C2=A0 =C2=A0 || (!defined __GNUC__ && defined __STDC_VER= SION__ \
=C2=A0 =C2=A0 =C2=A0 =C2=A0 && __STDC_VERSION__ = >=3D 201112L)
# define __HAVE_GENERIC_SELECTION 1
#e= lse
# define __HAVE_GENERIC_SELECTION 0
#endif

This does not seem right.

W= e should not have this defined when compiling c++.
WDYT?

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

#include <cmath&= gt;

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

It seems, that it is some problem with cmath.h

/gnu/store/2wzijwwgpcdb1msmn3wgq9zmrbrkpx2h-gcc-5.5.= 0/include/c++/cmath:44:0

The definition i= s in glibc 2.26 math.h, looks like this:

#eli= f __HAVE_DISTINCT_FLOAT128
# 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 \
<= div> =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 ARG= S,=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 ## f128 ARGS)

<= br>

2017-12-03 23= :25 GMT+01:00 G=C3=A1bor Boskovits <boskovits@gmail.com>:<= br>
It seems, that the fix i= s already included in the 60.1 release for the xlocal problem. I think we c= an ignore that.

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

2017-12-03 23:08= GMT+01:00 G=C3=A1bor Boskovits <boskovits@gmail.com>:
=
Ok, I found this one:
<= a href=3D"https://sourceware.org/glibc/wiki/Release/2.26#Removal_of_.27xloc= ale.h.27" target=3D"_blank">https://sourceware.org/glibc/wiki/Release/= 2.26#Removal_of_.27xlocale.h.27

It se= ems, that xlocale.h should not be used as an include, and glibc removed tha= t.

So this is ok.

The que= stion is if this issue was addressed by icu4c, so we can just go to the nex= t step, or should we do something about this.


2017-12-03 23:04 GMT+01:00 G=C3=A1bor Boskovits <bos= kovits@gmail.com>:
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=C2=A04e= 080fbb0bb73e4444181599676f4e1ef5fdc2ba 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,=C2=A0ee3ebf1a357bd4= eb36a2fa1790a7b549cffb305a which broke a lot of packages. Might these = be somehow related?



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

> 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.cpp
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










--001a1144af5e1b37fa055f846770--