New branch name is: change-default-icedtea-8-wip I left the original intact, but that does not have the needed fixes. Guix refresh shows the following on current core updates: Building the following 39 packages would ensure 202 dependent packages are rebuilt: sra-tools@2.8.2-1 minced@0.2.0 r-seurat@1.4.0.12-1.fccb77d ant@1.10.1 java-htsjdk@1.129 java-osgi-service-jdbc@1.0.0 java-plexus-interpolation@1.23 java-commons-cli@1.2 f-seq@1.1-1.6ccded3 java-commons-net@3.6 java-commons-lang@2.6 tuxguitar@1.4 antlr3@3.5.2 java-commons-daemon@1.0.15 java-jdom@1.1.3 java-commons-beanutils@1.9.3 java-httpcomponents-httpcore-ab@4.4.6 java-httpcomponents-httpcore-nio@4.4.6 java-commons-collections4@4.1 java-jgit@4.7.0.201704051617-r java-jmh@1.17.5 java-javax-mail@1.5.6 clojure@1.8.0 java-osgi-service-resolver@1.0.1 java-osgi-service-packageadmin@1.2.0 java-osgi-util-tracker@1.5.1 java-osgi-service-cm@1.5.0 java-httpcomponents-httpmime@4.5.3 java-eclipse-team-core@3.8.0 java-plexus-container-default@1.7.1 kodi@18.0_alpha-6-f22d62d hdf-java@3.3.2 ruby-atoulme-antwrap@0.7.5 plantuml@8048 icedtea-web@1.6.2 java-guice-servlet@4.1 java-eclipse-jetty-servlet@9.2.22 java-eclipse-jetty-servlet@9.4.6 axoloti-patcher@1.0.12 2017-12-04 16:44 GMT+01:00 Gábor Boskovits : > 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ábor 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ábor 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ábor 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__ >= 201112L) >>>> + && __STDC_VERSION__ >= 201112L)) >>>> # define __HAVE_GENERIC_SELECTION 1 >>>> #else >>>> # define __HAVE_GENERIC_SELECTION 0 >>>> >>>> >>>> 2017-12-04 13:21 GMT+01:00 Gábor 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ábor 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__ >= 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ábor 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ábor 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ábor 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ábor 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ábor 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=29537 >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 2017-12-03 22:46 GMT+01:00 Chris Marusich >>>>>>>>>>> : >>>>>>>>>>> >>>>>>>>>>>> Gábor 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=1 -DU_HAVE_ATOMIC=1 >>>>>>>>>>>> -DU_HAVE_STRTOD_L=1 -I. -I../common -DU_ATTRIBUTE_DEPRECATED= >>>>>>>>>>>> -DU_I18N_IMPLEMENTATION -O2 -W -Wall -pedantic -Wpointer-arith >>>>>>>>>>>> -Wwrite-strings -Wno-long-long --std=c++0x -c -DPIC -fPIC -o digitlst.o >>>>>>>>>>>> digitlst.cpp >>>>>>>>>>>> --- ( rebuild with "make VERBOSE=1 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-58.2.drv' >>>>>>>>>>>> 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ábor's branch change-default-icedtea-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 >>>>>>>>>>>> ‘icu_60::number::impl::DecimalQuantity& >>>>>>>>>>>> icu_60::number::impl::DecimalQuantity::setToDouble(double)’: >>>>>>>>>>>> number_decimalquantity.cpp:333:9: error: ‘_Generic’ is not a >>>>>>>>>>>> member of ‘std’ >>>>>>>>>>>> if (std::signbit(n) != 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 ‘float’ >>>>>>>>>>>> if (std::signbit(n) != 0) { >>>>>>>>>>>> ^ >>>>>>>>>>>> number_decimalquantity.cpp:333:14: error: expected >>>>>>>>>>>> primary-expression before ‘default’ >>>>>>>>>>>> if (std::signbit(n) != 0) { >>>>>>>>>>>> ^ >>>>>>>>>>>> number_decimalquantity.cpp:333:14: error: expected >>>>>>>>>>>> primary-expression before ‘long’ >>>>>>>>>>>> if (std::signbit(n) != 0) { >>>>>>>>>>>> ^ >>>>>>>>>>>> number_decimalquantity.cpp:333:14: error: expected >>>>>>>>>>>> primary-expression before ‘:’ token >>>>>>>>>>>> if (std::signbit(n) != 0) { >>>>>>>>>>>> ^ >>>>>>>>>>>> number_decimalquantity.cpp:337:9: error: ‘__builtin_isnan’ is >>>>>>>>>>>> not a member of ‘std’ >>>>>>>>>>>> if (std::isnan(n) != 0) { >>>>>>>>>>>> ^ >>>>>>>>>>>> number_decimalquantity.cpp:337:9: note: suggested alternative: >>>>>>>>>>>> : note: ‘__builtin_isnan’ >>>>>>>>>>>> number_decimalquantity.cpp:339:16: error: ‘__builtin_isfinite’ >>>>>>>>>>>> is not a member of ‘std’ >>>>>>>>>>>> } else if (std::isfinite(n) == 0) { >>>>>>>>>>>> ^ >>>>>>>>>>>> number_decimalquantity.cpp:339:16: note: suggested alternative: >>>>>>>>>>>> : note: ‘__builtin_isfinite’ >>>>>>>>>>>> *** Failed compilation command follows: >>>>>>>>>>>> ---------------------------------------------------------- >>>>>>>>>>>> g++ -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_ATOMIC=1 >>>>>>>>>>>> -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=0 -I. -I../common >>>>>>>>>>>> -DU_ATTRIBUTE_DEPRECATED= -DU_I18N_IMPLEMENTATION -O2 -W -Wall -pedantic >>>>>>>>>>>> -Wpointer-arith -Wwrite-strings -Wno-long-long -std=c++11 -c -DPIC -fPIC -o >>>>>>>>>>>> number_decimalquantity.o number_decimalquantity.cpp >>>>>>>>>>>> --- ( rebuild with "make VERBOSE=1 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-60.1.drv' >>>>>>>>>>>> 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. 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 >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >