Skip to content

Failed PowerPC build in python typeregistry

While packaging dune-common 2.10.0 for openSuse, building fails for PowerPC (ppc64le). Not sure if it is really the architecture or some missing Python packages. The error:

[   66s] cd /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/serial/python/dune/typeregistry && /usr/bin/c++ -DHAVE_CONFIG_H -DHAVE_GMP=1 -DHAVE_QUADMATH=1 -D_GLIBCXX_USE_FLOAT128 -D_typeregistry_EXPORTS -I/home/abuild/rpmbuild/BUILD/dune-common-2.10.0/serial -I/home/abuild/rpmbuild/BUILD/dune-common-2.10.0 -I/home/abuild/rpmbuild/BUILD/dune-common-2.10.0/serial/include -I/home/abuild/rpmbuild/BUILD/dune-common-2.10.0/serial/include_private -isystem /usr/include/python3.11 -fPIC -Wabi -fabi-version=0 -fabi-compat-version=0 -ffp-contract=fast -DHAVE_VC=1 -fext-numeric-literals -MD -MT python/dune/typeregistry/CMakeFiles/_typeregistry.dir/_typeregistry.cc.o -MF CMakeFiles/_typeregistry.dir/_typeregistry.cc.o.d -o CMakeFiles/_typeregistry.dir/_typeregistry.cc.o -c /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/python/dune/typeregistry/_typeregistry.cc
[   66s] In file included from /usr/include/c++/14/bits/stl_pair.h:60,
[   66s]                  from /usr/include/c++/14/bits/stl_algobase.h:64,
[   66s]                  from /usr/include/c++/14/algorithm:60,
[   66s]                  from /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/dune/python/common/typeregistry.hh:6,
[   66s]                  from /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/python/dune/typeregistry/_typeregistry.cc:5:
[   66s] /usr/include/c++/14/type_traits:514:12: error: redefinition of ‘struct std::__is_floating_point_helper<long double>’
[   66s]   514 |     struct __is_floating_point_helper<__float128>
[   66s]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[   66s] /usr/include/c++/14/type_traits:479:12: note: previous definition of ‘struct std::__is_floating_point_helper<long double>’
[   66s]   479 |     struct __is_floating_point_helper<long double>
[   66s]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[   66s] /usr/include/c++/14/bits/stl_algobase.h:1079:3: error: redefinition of ‘constexpr long long int std::__size_to_integer(long double)’
[   66s]  1079 |   __size_to_integer(__float128 __n) { return (long long)__n; }
[   66s]       |   ^~~~~~~~~~~~~~~~~
[   66s] /usr/include/c++/14/bits/stl_algobase.h:1076:3: note: ‘constexpr long long int std::__size_to_integer(long double)’ previously defined here
[   66s]  1076 |   __size_to_integer(long double __n) { return (long long)__n; }
[   66s]       |   ^~~~~~~~~~~~~~~~~
[   66s] In file included from /usr/include/c++/14/cstdlib:81,
[   66s]                  from /usr/include/c++/14/bits/stl_algo.h:71,
[   66s]                  from /usr/include/c++/14/algorithm:61:
[   66s] /usr/include/c++/14/bits/std_abs.h:137:3: error: redefinition of ‘constexpr long double std::abs(long double)’
[   66s]   137 |   abs(__float128 __x)
[   66s]       |   ^~~
[   66s] /usr/include/c++/14/bits/std_abs.h:79:3: note: ‘constexpr long double std::abs(long double)’ previously defined here
[   66s]    79 |   abs(long double __x)
[   66s]       |   ^~~
[   66s] In file included from /usr/include/c++/14/bits/specfun.h:44,
[   66s]                  from /usr/include/c++/14/cmath:3898,
[   66s]                  from /usr/include/c++/14/math.h:36,
[   66s]                  from /usr/include/python3.11/pyport.h:218,
[   66s]                  from /usr/include/python3.11/Python.h:38,
[   66s]                  from /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/dune/python/pybind11/detail/../detail/common.h:274,
[   66s]                  from /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/dune/python/pybind11/detail/../attr.h:13,
[   66s]                  from /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/dune/python/pybind11/detail/class.h:12,
[   66s]                  from /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/dune/python/pybind11/pybind11.h:13,
[   66s]                  from /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/dune/python/common/typeregistry.hh:21:
[   66s] /usr/include/c++/14/limits:2089:12: error: redefinition of ‘struct std::numeric_limits<long double>’
[   66s]  2089 |     struct numeric_limits<__float128>
[   66s]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~
[   66s] /usr/include/c++/14/limits:1820:12: note: previous definition of ‘struct std::numeric_limits<long double>’
[   66s]  1820 |     struct numeric_limits<long double>
[   66s]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
[   66s] make[2]: *** [python/dune/typeregistry/CMakeFiles/_typeregistry.dir/build.make:76: python/dune/typeregistry/CMakeFiles/_typeregistry.dir/_typeregistry.cc.o] Error 1
[   66s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/dune-common-2.10.0/serial'
[   66s] make[1]: *** [CMakeFiles/Makefile2:5304: python/dune/typeregistry/CMakeFiles/_typeregistry.dir/all] Error 2
[   66s] make[1]: *** Waiting for unfinished jobs....
[   69s] make[2]: Entering directory '/home/abuild/rpmbuild/BUILD/dune-common-2.10.0/serial'
[   69s] [100%] Building CXX object python/dune/common/CMakeFiles/_common.dir/_common.cc.o
[   69s] cd /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/serial/python/dune/common && /usr/bin/c++ -DHAVE_CONFIG_H -DHAVE_GMP=1 -DHAVE_QUADMATH=1 -D_GLIBCXX_USE_FLOAT128 -D_common_EXPORTS -I/home/abuild/rpmbuild/BUILD/dune-common-2.10.0/serial -I/home/abuild/rpmbuild/BUILD/dune-common-2.10.0 -I/home/abuild/rpmbuild/BUILD/dune-common-2.10.0/serial/include -I/home/abuild/rpmbuild/BUILD/dune-common-2.10.0/serial/include_private -isystem /usr/include/python3.11 -fPIC -Wabi -fabi-version=0 -fabi-compat-version=0 -ffp-contract=fast -DHAVE_VC=1 -fext-numeric-literals -MD -MT python/dune/common/CMakeFiles/_common.dir/_common.cc.o -MF CMakeFiles/_common.dir/_common.cc.o.d -o CMakeFiles/_common.dir/_common.cc.o -c /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/python/dune/common/_common.cc
[   69s] In file included from /usr/include/c++/14/bits/stl_pair.h:60,
[   69s]                  from /usr/include/c++/14/utility:69,
[   69s]                  from /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/python/dune/common/_common.cc:5:
[   69s] /usr/include/c++/14/type_traits:514:12: error: redefinition of ‘struct std::__is_floating_point_helper<long double>’
[   69s]   514 |     struct __is_floating_point_helper<__float128>
[   69s]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[   69s] /usr/include/c++/14/type_traits:479:12: note: previous definition of ‘struct std::__is_floating_point_helper<long double>’
[   69s]   479 |     struct __is_floating_point_helper<long double>
[   69s]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[   69s] In file included from /usr/include/c++/14/string:51,
[   69s]                  from /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/dune/python/common/dynmatrix.hh:9,
[   69s]                  from /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/python/dune/common/_common.cc:9:
[   69s] /usr/include/c++/14/bits/stl_algobase.h:1079:3: error: redefinition of ‘constexpr long long int std::__size_to_integer(long double)’
[   69s]  1079 |   __size_to_integer(__float128 __n) { return (long long)__n; }
[   69s]       |   ^~~~~~~~~~~~~~~~~
[   69s] /usr/include/c++/14/bits/stl_algobase.h:1076:3: note: ‘constexpr long long int std::__size_to_integer(long double)’ previously defined here
[   69s]  1076 |   __size_to_integer(long double __n) { return (long long)__n; }
[   69s]       |   ^~~~~~~~~~~~~~~~~
[   69s] In file included from /usr/include/c++/14/cstdlib:81,
[   69s]                  from /usr/include/c++/14/ext/string_conversions.h:43,
[   69s]                  from /usr/include/c++/14/bits/basic_string.h:4154,
[   69s]                  from /usr/include/c++/14/string:54:
[   69s] /usr/include/c++/14/bits/std_abs.h:137:3: error: redefinition of ‘constexpr long double std::abs(long double)’
[   69s]   137 |   abs(__float128 __x)
[   69s]       |   ^~~
[   69s] /usr/include/c++/14/bits/std_abs.h:79:3: note: ‘constexpr long double std::abs(long double)’ previously defined here
[   69s]    79 |   abs(long double __x)
[   69s]       |   ^~~
[   69s] In file included from /usr/include/c++/14/bits/specfun.h:44,
[   69s]                  from /usr/include/c++/14/cmath:3898,
[   69s]                  from /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/dune/common/dynmatrix.hh:8,
[   69s]                  from /home/abuild/rpmbuild/BUILD/dune-common-2.10.0/dune/python/common/dynmatrix.hh:13:
[   69s] /usr/include/c++/14/limits:2089:12: error: redefinition of ‘struct std::numeric_limits<long double>’
[   69s]  2089 |     struct numeric_limits<__float128>
[   69s]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~
[   69s] /usr/include/c++/14/limits:1820:12: note: previous definition of ‘struct std::numeric_limits<long double>’
[   69s]  1820 |     struct numeric_limits<long double>
[   69s]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
[   69s] make[2]: *** [python/dune/common/CMakeFiles/_common.dir/build.make:76: python/dune/common/CMakeFiles/_common.dir/_common.cc.o] Error 1
[   69s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/dune-common-2.10.0/serial'
[   69s] make[1]: *** [CMakeFiles/Makefile2:5278: python/dune/common/CMakeFiles/_common.dir/all] Error 2