This might be a problem of broader scope, MKL is only an example.
I’m using dftd4 library in my package, and a first attempt give me Intel MKL ERROR: Parameter 4 was incorrect on entry to DSYTRF
.
After some digging, I believe the cause is: MKL.jl
uses ILP64 by default on 64-bit systems, and a default compilation of dftd4
uses ip64. Forcing them to use exactly the same mkl library should fix the problem.
However, I’m not quite sure how I should do it. I may use the mkl library in my ~/.julia/artifacts/{some_long_sha}/lib
to compile dftd4, or I can configure MKL.jl
to use the system mkl.
The first way seems to be less elegant, and I don’t find .pc files in julia artifacts library, so I cannot use pkg-config
during compilation.
The second way might seem to be better, but I would like to compile my package with PackageCompiler.jl
and use the binary in another machine, and I’m not quite sure whether this way will be less relocatable?