(address . bug-guix@gnu.org)
Hello,
On core-updates (at least as of commit 8456581375cf), the gcc package fails
to cross-compile. This can be seen in the following CI jobs:
gcc-11.1.0, arm-linux-gnueabihf.gcc.x86_64-linux
gcc-11.1.0, aarch64-linux-gnu.gcc.x86_64-linux
gcc-11.1.0, powerpc64le-linux-gnu.gcc.x86_64-linux
gcc-11.1.0, riscv64-linux-gnu.gcc.x86_64-linux
gcc-11.1.0, mips64el-linux-gnu.gcc.x86_64-linux
gcc-11.1.0, powerpc-linux-gnu.gcc.x86_64-linux
They all fail with a similar error:
Toggle snippet (19 lines)
⋮
In file included from /tmp/guix-build-gcc-11.1.0.drv-0/build/arm-linux-gnueabihf/libstdc++-v3/include/bits/move.h:57,
from /tmp/guix-build-gcc-11.1.0.drv-0/build/arm-linux-gnueabihf/libstdc++-v3/include/bits/nested_exception.h:40,
from ../../../../gcc-11.1.0/libstdc++-v3/libsupc++/exception:148,
from ../../../../gcc-11.1.0/libstdc++-v3/libsupc++/eh_exception.cc:26:
/tmp/guix-build-gcc-11.1.0.drv-0/build/arm-linux-gnueabihf/libstdc++-v3/include/type_traits:971:25: error: there are no arguments to ?__is_nothrow_constructible? that depend on a template parameter, so a declaration of ?__is_nothrow_constructible? must be available [-fpermissive]
971 | = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/guix-build-gcc-11.1.0.drv-0/build/arm-linux-gnueabihf/libstdc++-v3/include/type_traits:971:25: note: (if you use ?-fpermissive?, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/tmp/guix-build-gcc-11.1.0.drv-0/build/arm-linux-gnueabihf/libstdc++-v3/include/type_traits:971:66: error: template argument 1 is invalid
971 | = __bool_constant<__is_nothrow_constructible(_Tp, _Args...)>;
| ^
/tmp/guix-build-gcc-11.1.0.drv-0/build/arm-linux-gnueabihf/libstdc++-v3/include/type_traits:976:45: error: expected template-name before ?<? token
976 | : public __is_nothrow_constructible_impl<_Tp, _Args...>::type
| ^
/tmp/guix-build-gcc-11.1.0.drv-0/build/arm-linux-gnueabihf/libstdc++-v3/include/type_traits:976:45: error: expected ?{? before ?<? token
⋮
In addition to that, arm-linux-gnueabihf.gcc.x86_64-linux has the following
error which doesn’t appear on the other arches:
no include path in which to search for stdc-predef.h
As a side note, gcc-11.1.0 also fails to build on
i586-pc-gnu.gcc.x86_64-linux¹, but with a very different error message,
so it appears to be an unrelated problem.
gcc-8.5.0 also fails to cross-compile on several arches, but with a
different error message as well, so it also appears to be a separate
problem.
--
Thanks,
Thiago