This bug is related to the new version of SuperLU (5.0)
The authors decided to change the interface of xGSSVX and xGSTRF which are called by Eigen in SuperLUSupport.h. As a result Eigen crashes if linked with SuperLU 5.0.
The crash can be reproduced with this simple program:
Eigen::SparseMatrix<double> A(3, 3);
Eigen::Matrix<Scalar, Eigen::Dynamic, 1> b(3);
Eigen::Matrix<Scalar, Eigen::Dynamic, 1> x(3);
x = solver.solve(b);
It does not crash if linking the prior version 4.3 of SuperLU.
SuperLU 5.0 expects an additional work variable GlobalLU_t Glu to be passed via pointer in the interfaces of xGSSVX and xGSTRF. Eigen always calls xGSSVX with the "old" interface (having 1 parameter less).
hm, then I don't see how it can even compile if you include superlu 5.0 headers.
Anyway, feel free to propose a patch specializing the calls for 5.0 (hopefully superlu 5.0 headers define some macro allowing to detect it)
Fixed here (dev-branch only):
(In reply to Gael Guennebaud from comment #1)
> hm, then I don't see how it can even compile if you include superlu 5.0
I guess the reason it compiled was because we provided the declaration of the external "C" functions ourself. And C does not care about parameters when linking.