On Fri, Jan 29, 2016 at 02:28:27PM +0100, Antonio Trande wrote: > Latest IceCat-38.6.0 does not compile with GCC-6.0: > > > ... In file included from > > ../../dist/include/mozilla/MathAlgorithms.h:15:0, from > > /builddir/build/BUILD/icecat-38.6.0/xpcom/glue/nsTArray.h:14, from > > /builddir/build/BUILD/icecat-38.6.0/xpcom/glue/nsStringAPI.h:25, > > from > > /builddir/build/BUILD/icecat-38.6.0/xpcom/glue/nsStringGlue.h:21, > > from ../../dist/include/mozilla/AppData.h:12, from > > /builddir/build/BUILD/icecat-38.6.0/xpcom/glue/AppData.cpp:7, from > > > > /builddir/build/BUILD/icecat-38.6.0/icecat-objdir/xpcom/glue/Unified_cpp_xpcom_glue0.cpp:2: > > > > > > /usr/include/c++/6.0.0/cmath:615:11: error: '::isinf' has not > > been declared using ::isinf; ^~~~~ > > /usr/include/c++/6.0.0/cmath:640:11: error: '::isnan' has not been > > declared using ::isnan; ^~~~~ > > /builddir/build/BUILD/icecat-38.6.0/config/rules.mk:930: recipe for > > target 'Unified_cpp_xpcom_glue0.o' failed > > > > > Do you know how to fix this issue? There is a C++ conformance issue that requires changes both on the gcc and glibc side, see #1302825. The way it works is that gcc configured against glibc before that change (i.e. 2.22.90-29.fc24 and earlier) will work with glibc <= 2.22.90-29.fc24 or glibc >= 2.23, but not the later 2.22.90 prereleases (because they don't predefine macros that say it is 2.23, yet contain the isinf/isnan changes), and gcc configured against glibc after that change (i.e. 2.2.90-31.fc24 and later) will work with glibc >= 2.22.90-31.fc24 only. Now, gcc-6.0.0-0.5.fc24 has been built against -29.fc24, so it is incompatible with 2.22.90-N.fc24 N >= 31. And, gcc-6.0.0-0.6.fc24, which has been built against -31.fc24 (on primary arches only, on secondary still against -29.fc24), is compatible only with 2.22.90-31.fc24 and later, but hasn't finished yet (as arm takes many hours to days to build). At some point -31.fc24 has been tagged into f24-build (first because the glibc maintainers weren't aware of these issues, and then for the second time when I wanted to start gcc-6.0.0-0.6.fc24 build). At this point, build should work, as long as you get either gcc 0.5.fc24 and glibc 29.fc24, or gcc 0.6.fc24 and glibc 31.fc24 in the buildroots. Note, on secondary architectures, where it seems the releng folks have untagged the 31.fc24 builds, I'll need at some point temporary tagging of that into the aarch64/ppc*/s390* buildroots in order for next gcc build to pick up those changes. Jakub -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx http://lists.fedoraproject.org/admin/lists/devel@xxxxxxxxxxxxxxxxxxxxxxx