Hello. I’m trying to build Julia against MKL.
Julia Version 1.3.1
Commit 2d5741174c (2019-12-30 21:36 UTC)
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: Intel(R) Core(TM) i5-8500 CPU @ 3.00GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-6.0.1 (ORCJIT, skylake)
I’ve used the steps shown at https://github.com/JuliaComputing/MKL.jl.
The same steps worked for Julia 1.3.0 on MacOS Catalina and Julia 1.3.1 on RHEL7.
It proceeds to build LibCURL, WinRPM, PackageCompiler and then MKL.
LibCURL says:
WARNING: replacing module Anon.
WARNING: replacing module Anon.
and PackageCompiler says:
[ Info: GCC already installed and package already built
This is the output in the build.log of WinRPM
┌ Warning: skipping repodata/repomd.xml, not in cache -- call WinRPM.update() to download
└ @ WinRPM C:\Users\mb\.julia\packages\WinRPM\BfpQI\src\WinRPM.jl:148
┌ Warning: skipping repodata/repomd.xml, not in cache -- call WinRPM.update() to download
└ @ WinRPM C:\Users\mb\.julia\packages\WinRPM\BfpQI\src\WinRPM.jl:148
[ Info: Downloading https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/repomd.xml
[ Info: Downloading https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_42.2/repodata/f1ba551d4e0a2e6e99dc50d93ae077464db4426a5ef1d99637cefa1cccbfa51b-primary.xml.gz
[ Info: Downloading https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_Leap_42.2/repodata/repomd.xml
[ Info: Downloading https://cache.julialang.org/http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_Leap_42.2/repodata/195241d083fca23400c5ed6566d19da1258e2dc0cf0c2e6c17e8bd045399191c-primary.xml.gz
This is the output in the build.log of MKL
essentials.jl
ctypes.jl
generator.jl
reflection.jl
options.jl
promotion.jl
tuple.jl
pair.jl
traits.jl
range.jl
expr.jl
error.jl
bool.jl
number.jl
int.jl
operators.jl
pointer.jl
refvalue.jl
indices.jl
array.jl
abstractarray.jl
bitarray.jl
bitset.jl
abstractdict.jl
abstractset.jl
iterators.jl
namedtuple.jl
docs/core.jl
ordering.jl
sort.jl
compiler/utilities.jl
compiler/validation.jl
compiler/inferenceresult.jl
compiler/params.jl
compiler/inferencestate.jl
compiler/typeutils.jl
compiler/typelimits.jl
compiler/typelattice.jl
compiler/tfuncs.jl
compiler/abstractinterpretation.jl
compiler/typeinfer.jl
compiler/optimize.jl
compiler/ssair/driver.jl
compiler/ssair/ir.jl
compiler/ssair/domtree.jl
compiler/ssair/slot2ssa.jl
compiler/ssair/queries.jl
compiler/ssair/passes.jl
compiler/ssair/inlining.jl
compiler/ssair/verify.jl
compiler/ssair/legacy.jl
compiler/bootstrap.jl
coreio.jl
exports.jl
essentials.jl
ctypes.jl
gcutils.jl
generator.jl
reflection.jl
options.jl
promotion.jl
tuple.jl
expr.jl
pair.jl
traits.jl
range.jl
error.jl
bool.jl
number.jl
int.jl
operators.jl
pointer.jl
refvalue.jl
refpointer.jl
checked.jl
indices.jl
array.jl
abstractarray.jl
subarray.jl
views.jl
baseext.jl
ntuple.jl
abstractdict.jl
iterators.jl
namedtuple.jl
hashing.jl
rounding.jl
float.jl
twiceprecision.jl
complex.jl
rational.jl
multinverses.jl
abstractarraymath.jl
arraymath.jl
simdloop.jl
reduce.jl
reshapedarray.jl
reinterpretarray.jl
bitarray.jl
bitset.jl
multimedia.jl
some.jl
dict.jl
abstractset.jl
set.jl
char.jl
strings/basic.jl
strings/string.jl
strings/substring.jl
build_h.jl
version_git.jl
osutils.jl
c.jl
io.jl
iobuffer.jl
intfuncs.jl
strings/strings.jl
strings/search.jl
strings/unicode.jl
strings/util.jl
strings/io.jl
parse.jl
shell.jl
regex.jl
pcre.jl
show.jl
arrayshow.jl
methodshow.jl
cartesian.jl
multidimensional.jl
permuteddimsarray.jl
broadcast.jl
missing.jl
version.jl
sysinfo.jl
libc.jl
env.jl
linked_list.jl
condition.jl
threads.jl
lock.jl
task.jl
weakkeydict.jl
logging.jl
libuv.jl
uv_constants.jl
asyncevent.jl
iostream.jl
stream.jl
filesystem.jl
cmd.jl
process.jl
grisu/grisu.jl
secretbuffer.jl
floatfuncs.jl
math.jl
reducedim.jl
accumulate.jl
ordering.jl
sort.jl
fastmath.jl
Enums.jl
gmp.jl
mpfr.jl
combinatorics.jl
hashing2.jl
irrationals.jl
mathconstants.jl
printf.jl
meta.jl
channels.jl
deepcopy.jl
download.jl
summarysize.jl
errorshow.jl
stacktraces.jl
initdefs.jl
threadcall.jl
uuid.jl
loading.jl
util.jl
asyncmap.jl
experimental.jl
deprecated.jl
docs\basedocs.jl
client.jl
docs\Docs.jl
Base ─────────── 22.178818 seconds
Base64 ───────── 3.217394 seconds
CRC32c ───────── 0.011880 seconds
SHA ──────────── 0.161016 seconds
FileWatching ─── 0.079299 seconds
Unicode ──────── 0.010732 seconds
Mmap ─────────── 0.065690 seconds
Serialization ── 0.971354 seconds
Libdl ────────── 0.028553 seconds
Markdown ─────── 0.923823 seconds
LibGit2 ──────── 2.288233 seconds
Logging ──────── 0.352557 seconds
Sockets ──────── 1.319219 seconds
Printf ───────── 0.011955 seconds
Profile ──────── 0.133205 seconds
Dates ────────── 1.767690 seconds
DelimitedFiles ─ 0.100001 seconds
Random ───────── 0.438204 seconds
UUIDs ────────── 0.021204 seconds
Future ───────── 0.010945 seconds
LinearAlgebra ── 9.359533 seconds
SparseArrays ─── 3.730687 seconds
SuiteSparse ──── 1.325176 seconds
Distributed ──── 4.496948 seconds
SharedArrays ─── 0.137873 seconds
Pkg ──────────── 10.583122 seconds
Test ─────────── 0.869995 seconds
REPL ─────────── 0.773218 seconds
Statistics ───── 0.149865 seconds
Stdlibs total ── 43.354746 seconds
Sysimage built. Summary:
Total ─────── 65.535906 seconds
Base: ─────── 22.178818 seconds 33.8422%
Stdlibs: ──── 43.354746 seconds 66.1542%
c:/users/mb/.julia/packages/winrpm/bfpqi/deps/usr/x86_64-w64-mingw32/sys-root/mingw/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: <unknown-file>:0: syntax error
Warning: .drectve `-export:ccalllib_C:\Users\mb\.julia\packages\MKL\9dWbC\deps\usr\bin\mkl_rt.dll,data ' unrecognized
c:/users/mb/.julia/packages/winrpm/bfpqi/deps/usr/x86_64-w64-mingw32/sys-root/mingw/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot export MKL: symbol not found
c:/users/mb/.julia/packages/winrpm/bfpqi/deps/usr/x86_64-w64-mingw32/sys-root/mingw/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot export Users: symbol not found
c:/users/mb/.julia/packages/winrpm/bfpqi/deps/usr/x86_64-w64-mingw32/sys-root/mingw/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot export ccalllib_C:: symbol not found
c:/users/mb/.julia/packages/winrpm/bfpqi/deps/usr/x86_64-w64-mingw32/sys-root/mingw/bin/../lib/gcc/x86_64-w64-mingw32/8.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot export packages: symbol not found
collect2.exe: error: ld returned 1 exit status
[ Info: Replacing libblas_name in C:\Users\mb\AppData\Local\Julia-1.3.1\bin\..\share\julia\base\build_h.jl
[ Info: Checking if we need to update PATH...
[ Info: Checking sysimg.jl
[ Info: Could not find init function in sysimg.jl
[ Info: Checking Base.jl
[ Info: Found ENV already
┌ Info: Building `inference.o`:
└ `'C:\Users\mb\AppData\Local\Julia-1.3.1\bin\julia.exe' -C native --output-ji 'C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\sysimg\backup\native\basecompiler.ji' --output-o 'C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\sysimg\backup\native\basecompiler.o' compiler/compiler.jl`
┌ Info: Building `sys.o`:
└ `'C:\Users\mb\AppData\Local\Julia-1.3.1\bin\julia.exe' -C native --output-ji 'C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\sysimg\backup\native\sys.ji' --output-o 'C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\sysimg\backup\native\sys.o' -J 'C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\sysimg\backup\native\basecompiler.ji' --startup-file=no sysimg.jl`
ERROR: LoadError: failed process: Process(setenv(`'C:\Users\mb\.julia\packages\WinRPM\BfpQI\deps\usr\x86_64-w64-mingw32\sys-root\mingw\bin\gcc.exe' --sysroot 'C:\Users\mb\.julia\packages\WinRPM\BfpQI\deps\usr\x86_64-w64-mingw32\sys-root' -shared '-DJULIAC_PROGRAM_LIBNAME="C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\sysimg\backup\native\sys.dll"' -o 'C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\sysimg\backup\native\sys.dll' -Wl,--whole-archive 'C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\sysimg\backup\native\sys.o' -Wl,--no-whole-archive -std=gnu99 '-IC:\Users\mb\AppData\Local\Julia-1.3.1\include\julia' -DJULIA_ENABLE_THREADING=1 '-LC:\Users\mb\AppData\Local\Julia-1.3.1\bin' -Wl,--stack,8388608 -ljulia -lopenlibm -m64 -Wl,--export-all-symbols`,["PATH=C:\\Users\\mb\\.julia\\packages\\WinRPM\\BfpQI\\deps\\usr\\x86_64-w64-mingw32\\sys-root\\mingw\\bin;C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.5.281\\windows\\mpi\\intel64\\bin;C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\intel64_win\\mpirt;C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\ia32_win\\mpirt;C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\intel64_win\\compiler;C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\ia32_win\\compiler;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\PuTTY\\;%JULIA_HOME%;C:\\Users\\mb\\AppData\\Local\\Julia-1.3.1\\bin;C:\\Program Files\\MATLAB\\R2019b\\runtime\\win64;C:\\Program Files\\MATLAB\\R2019b\\bin;C:\\Program Files (x86)\\Simply Fortran 3\\mingw-w64\\bin;C:\\Program Files (x86)\\Simply Fortran 3\\mingw-w64\\x86_64-w64-mingw32\\lib32;C:\\Program Files (x86)\\Simply Fortran 3\\mingw-w64\\x86_64-w64-mingw32\\lib64;C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.5.281\\windows\\\\redist\\intel64\\mkl;C:\\Program Files (x86)\\IntelSWTools\\compilers_and_libraries_2019.5.281\\windows\\\\redist\\ia32\\mkl;C:\\Users\\mb\\.julia\\packages\\WinRPM\\BfpQI\\deps\\usr\\x86_64-w64-mingw32\\sys-root\\mingw\\bin\\gcc.exe;C:\\Users\\mb\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\mb\\AppData\\Local\\Programs\\Git\\cmd;C:\\Users\\mb\\AppData\\Local\\Programs\\Git\\mingw64\\bin;C:\\Users\\mb\\AppData\\Local\\Programs\\Git\\usr\\bin;C:\\Users\\mb\\AppData\\Local\\atom\\bin;C:\\Users\\mb\\AppData\\Local\\Programs\\MiKTeX 2.9\\miktex\\bin\\x64\\;C:\\Users\\mb\\AppData\\Local\\Julia-1.2.0\\bin"]), ProcessExited(1)) [1]
Stacktrace:
[1] pipeline_error at .\process.jl:525 [inlined]
[2] #run#565(::Bool, ::typeof(run), ::Cmd) at .\process.jl:440
[3] run at .\process.jl:438 [inlined]
[4] run_PATH(::Cmd) at C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\src\static_julia.jl:23
[5] (::PackageCompiler.var"#16#18")() at C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\src\static_julia.jl:309
[6] cd(::PackageCompiler.var"#16#18", ::String) at .\file.jl:93
[7] build_shared(::String, ::String, ::Bool, ::String, ::Bool, ::Nothing, ::Nothing, ::Cmd, ::Nothing) at C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\src\static_julia.jl:308
[8] (::PackageCompiler.var"#40#41"{Bool,String})() at C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\src\system_image.jl:46
[9] cd(::PackageCompiler.var"#40#41"{Bool,String}, ::String) at .\file.jl:93
[10] #compile_system_image#39(::Bool, ::typeof(PackageCompiler.compile_system_image), ::String, ::String) at C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\src\system_image.jl:15
[11] #compile_system_image at .\none:0 [inlined]
[12] get_backup!(::Bool, ::String) at C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\src\system_image.jl:63
[13] force_native_image! at C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\src\api.jl:123 [inlined] (repeats 2 times)
[14] enable_mkl_startup(::String) at C:\Users\mb\.julia\packages\MKL\9dWbC\src\install.jl:138
[15] top-level scope at C:\Users\mb\.julia\packages\MKL\9dWbC\deps\build.jl:9
[16] include at .\boot.jl:328 [inlined]
[17] include_relative(::Module, ::String) at .\loading.jl:1105
[18] include(::Module, ::String) at .\Base.jl:31
[19] include(::String) at .\client.jl:424
[20] top-level scope at none:5
in expression starting at C:\Users\mb\.julia\packages\MKL\9dWbC\deps\build.jl:9
Build shared library "C:\\Users\\mb\\.julia\\packages\\PackageCompiler\\4yNnV\\sysimg\\backup\\native\\sys.dll":
`'C:\Users\mb\.julia\packages\WinRPM\BfpQI\deps\usr\x86_64-w64-mingw32\sys-root\mingw\bin\gcc.exe' --sysroot 'C:\Users\mb\.julia\packages\WinRPM\BfpQI\deps\usr\x86_64-w64-mingw32\sys-root' -shared '-DJULIAC_PROGRAM_LIBNAME="C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\sysimg\backup\native\sys.dll"' -o 'C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\sysimg\backup\native\sys.dll' -Wl,--whole-archive 'C:\Users\mb\.julia\packages\PackageCompiler\4yNnV\sysimg\backup\native\sys.o' -Wl,--no-whole-archive -std=gnu99 '-IC:\Users\mb\AppData\Local\Julia-1.3.1\include\julia' -DJULIA_ENABLE_THREADING=1 '-LC:\Users\mb\AppData\Local\Julia-1.3.1\bin' -Wl,--stack,8388608 -ljulia -lopenlibm -m64 -Wl,--export-all-symbols`
To me, the problem seems to happen when rebuilding the sysimage. I’ve also tried running
PackageCompiler.compile_system_image(<path to sysimage.jl here>)
and got the same error as in the MKL build.log with slightly different ordering (I can upload this if anyone wants to see it).
Is building Julia against MKL possible in Julia 1.3.1 on Windows?
I’ve also tried building from source on cygwin and it seemed to run ok, but at some point said something about wine64 and quit. I cannot find a log for that at the moment, but I’m running it again and I’ll update when it’s done.