Subject: [core-updates-frozen] eigen-for-tensorflow fails to build

From: Guillaume Le Vaillant <[email-masked]>
Date: Wed, 24 Nov 2021 10:42:40 +0000

On the core-updates-frozen branch at d5de4e163ccef80f78bc5fe330f568d8fe3a23ab,
compilation of eigen-for-tensorflow fails with the following error:

--8<---------------cut here---------------start------------->8---
[ 56%] Building CXX object test/CMakeFiles/stddeque_overload_4.dir/stddeque_overload.cpp.o
cd /tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/build/test && /gnu/store/vakvgvrb839igv16jkif4lmx11d25jqb-gcc-10.3.0/bin/c++  -I/tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/build/test -I/tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/source/test -I/tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/source -I/tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/build -pedantic -Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor -Wunused-local-typedefs -Wpointer-arith -Wwrite-strings -Wformat-security -Wlogical-op -Wdouble-promotion -Wshadow -Wno-psabi -Wno-variadic-macros -Wno-long-long -fno-check-new -fno-common -fstrict-aliasing -ansi -O3 -DNDEBUG  -DEIGEN_TEST_MAX_SIZE=320 -DEIGEN_TEST_FUNC=stddeque_overload  -DEIGEN_TEST_PART_4=1 -MD -MT test/CMakeFiles/stddeque_overload_4.dir/stddeque_overload.cpp.o -MF CMakeFiles/stddeque_overload_4.dir/stddeque_overload.cpp.o.d -o CMakeFiles/stddeque_overload_4.dir/stddeque_overload.cpp.o -c /tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/source/test/stddeque_overload.cpp
In file included from /tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/source/Eigen/StdDeque:23,
                 from /tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/source/test/stddeque_overload.cpp:13:
/tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/source/Eigen/src/StlSupport/StdDeque.h: In instantiation of ‘void std::deque<T, Eigen::aligned_allocator<T> >::resize(std::deque<T, Eigen::aligned_allocator<T> >::size_type, const value_type&) [with T = Eigen::Transform<float, 3, 2>; std::deque<T, Eigen::aligned_allocator<T> >::size_type = long unsigned int; std::deque<T, Eigen::aligned_allocator<T> >::value_type = Eigen::Transform<float, 3, 2>]’:
/tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/source/test/stddeque_overload.cpp:81:11:   required from ‘void check_stddeque_transform(const TransformType&) [with TransformType = Eigen::Transform<float, 3, 2>]’
/tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/source/test/stddeque_overload.cpp:152:3:   required from here
/tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/source/Eigen/src/StlSupport/StdDeque.h:106:41: error: ‘std::_Deque_base<Eigen::Transform<float, 3, 2>, Eigen::aligned_allocator_indirection<Eigen::Transform<float, 3, 2> > >::_Deque_impl std::_Deque_base<Eigen::Transform<float, 3, 2>, Eigen::aligned_allocator_indirection<Eigen::Transform<float, 3, 2> > >::_M_impl’ is protected within this context
  106 |       deque_base::_M_erase_at_end(this->_M_impl._M_start + new_size);
      |                                   ~~~~~~^~~~~~~
In file included from /gnu/store/vakvgvrb839igv16jkif4lmx11d25jqb-gcc-10.3.0/include/c++/deque:67,
                 from /tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/source/test/main.h:42,
                 from /tmp/guix-build-eigen-for-tensorflow-3.3.5-1.fd6845384b86.drv-0/source/test/stddeque_overload.cpp:11:
/gnu/store/vakvgvrb839igv16jkif4lmx11d25jqb-gcc-10.3.0/include/c++/bits/stl_deque.h:589:19: note: declared protected here
  589 |       _Deque_impl _M_impl;
      |                   ^~~~~~~
--8<---------------cut here---------------end--------------->8---