Bug#981128: libgmsh4: SIGABRT in dolfinx demo from gmsh polynomialBasis via Eigen::compute_inverse

Bernhard Übelacker bernhardu at mailbox.org
Sat Feb 13 22:51:38 GMT 2021


> 
> This flag is already in use, see https://salsa.debian.org/science-team/gmsh/-/
> blob/master/debian/rules#L34
> 
> 

Hello everyone,
the ENABLE_SYSTEM_CONTRIB=1 seems not to be sufficient.

The build log shows this line:
     -- Found Eigen
With this include given to c++:
     -I/home/benutzer/source/libgmsh4/try2/gmsh-4.7.1+ds1/contrib/eigen

But in CMakeLists.txt we find these lines:
         if(ENABLE_SYSTEM_CONTRIB)
             find_path(EIGEN_INC "Eigen/Dense" HINTS eigen3)
             if(EIGEN_INC)
             include_directories(${EIGEN_INC})
             set_config_option(HAVE_EIGEN "Eigen[system]")
             endif()
         endif()
         if(NOT HAVE_EIGEN)
             include_directories(contrib/eigen)
             set_config_option(HAVE_EIGEN "Eigen")
         endif()

Therefore it seems if it is not found in the system
and therefore it falls back to contrib.


Adding following to debian/rules:
     -DEIGEN_INC:STRING="/usr/include/eigen3"

Would show this with an attempt to dpkg-buildpackage:
     -- Found Eigen[system]
With this include given to c++:
     -I/usr/include/eigen3


If its not desired to give the path directly maybe somehow retrieved by:
$ pkg-config --cflags eigen3
-I/usr/include/eigen3




But I built a package with that change, but the error remained.

So I rebuilt also dolfinx and saw that it gives to c++ this parameter:
     "-DEIGEN_MAX_ALIGN_BYTES=32"
This define might change EIGEN_DEFAULT_ALIGN_BYTES,
and this controls how allocation is done inside
aligned_malloc/aligned_free.

Shouldn't either both have to override the default here
or both stay to the default?


Kind regards,
Bernhard



More information about the debian-science-maintainers mailing list