Neil Hopcroft

A digital misfit

Octave build break: SuiteSparse version

The recent update to the latest SuiteSparse has caused a build error, undefined references to SuiteSparse_realloc, SuiteSparse_free, SuiteSparse_time, SuiteSparse_calloc, SuiteSparse_config and SuiteSparse_malloc. This appears to be because they have moved to a new library, libsuitesparse_config.a and the octave dependencies haven’t yet been updated. Indeed, I suspect there are a number of other projects which will suffer a similar break.
After a little hacking around I have added a build hack to include the library in the dependency list whenever cxsparse is used. This isn’t the right solution, but should get the build working for the moment.
Of course, the frustrating thing here is that the SuiteSparse upgrade doesn’t resolve the error I was seeing in the dolfin build. That is still giving me the same undefined symbol errors. Again, I have made a hack to get around them, but they need a proper solution. What I have done is add the SuiteSparse_config.h header to the files causing errors, CholmodCholeskySolver.cpp and UmfpackLUSolver.cpp
This, however, shows there might be another problem with the build – there is some overlap between SuiteSparse_config.h and UFConfig.h, suggesting there could be a version clash between different suitesparse versions. (which, indeed, may be the cause of the original error in the octave build)
For the moment I will just worry about getting a build working again, and trust that the developers of suitesparse have done a reasonable job of maintaining compatibility.

Leave a Reply

Your email address will not be published.