Another problem is that if Julia links to MKL with the 64-bit BLAS API then any packages that link to libraries using the ordinary MKL API (32-bit BLAS) will crash. For example, any packages calling Python numpy routines, such as PyPlot, will crash with an MKL numpy (see e.g. https://github.com/JuliaPy/PyCall.jl/issues/443).
Of course, this is related to MKL being non free/open-source — otherwise, we could recompile MKL with renamed symbols to avoid library conflicts, like we do with OpenBLAS. (We could try to do it at the binary level with
objcopy ala https://github.com/JuliaLang/julia/pull/8734 … I’m not sure if that would be permissible according to the MKL license?)