Bug#1000780: eigen3 breaks pybind11 autopkgtest on ppc64el: inlining failed in call to ‘always_inline’

Drew Parsons dparsons at debian.org
Mon Dec 13 13:10:00 GMT 2021


Source: pybind11
Version: 2.7.1-1
Followup-For: Bug #1000780

Debugging on ppc64el porterbox narrows the problem down to the -flto
flag.

The full compilation line is

/usr/bin/c++ -DBOOST_ALL_NO_LIB -DPYBIND11_TEST_BOOST -DPYBIND11_TEST_EIGEN -Dpybind11_tests_EXPORTS -isystem /usr/include/python3.10 -isystem /usr/include/eigen3 -Os -DNDEBUG -fPIC -fvisibility=hidden -Wall -Wextra -Wconversion -Wcast-qual -Wdeprecated -Wundef -Wnon-virtual-dtor -flto -fno-fat-lto-objects -MD  -o test_eigen.cpp.o -c test_eigen.cpp

But the inline error can be reproduced with just

/usr/bin/c++ -isystem /usr/include/python3.10 -isystem /usr/include/eigen3 -flto -o test_pybind11_eigen3.cpp.o -c test_pybind11_eigen3.cpp


-flto in pybind11 has proven to be a problem elsewhere, with dolfin on
mips64el, see  https://lists.debian.org/debian-mips/2020/09/msg00000.html

The workaround there was to specify the -fno-lto.

Sounds like -fno-lto should be patched in to both mips64el and
ppc64el, perhaps other arches too (or all).



More information about the debian-science-maintainers mailing list