Is it possible to link statically with MKL for a self contained binary for simpler deployment using GCC?
I am sure it would be possible, but I think it would require a minor rewrite to the linear solver interface code. Details of how to do that are here: Contributing — OSQP 0.6.2 documentation
I think the reason we do not statically link MKL in the standard disrtribution is that it causes a licensing issue when we distribute binaries.
whats the licensing issue?
seems to indicate that its allowed (but licensing is always tricky)
Having now looked into again, perhaps you are right.
In the discussion here there is the suggestion that there was a potential issue at some point, and perhaps that was the reason we made the change. It seems that Intel have since changed or clarified their terms though.
The answer to the original question is still that I think it should be possible with minimal effort. We will probably still not distribute our default binaries with statically linked MKL anyway just to keep the binary footprint small, but I don’t see any reason for us not to allow a compile time option to use the static library if that’s what the user wants to do. Feel free to open a feature request on github for it, or just make a PR if you implement it yourself first.
I’ll make a feature request. I’m afraid that my abilities as a C programmer are rather lacking so I don’t think I could produce anything adequate.
I will make a feature request however