PackageCompiler.jl
PackageCompiler.jl copied to clipboard
Artifact error for compiled binaries with chinese characters in path
Only test on windows11 with julia-1.7.1. A MWE:
- make a package (called SelfTest) with PackageTemplate.jl
- add HDF5 as a dependency
- create the main function
function julia_main()::Cint
println("wow")
return 0
end
- create a precompile file
using SelfTest
SelfTest.julia_main()
- run
create_app(".", "bin/test_hdf5"; precompile_execution_file=["test/precompile/run_systems.jl"], force=true, include_lazy_artifacts=true) - check it works fine
PS D:\selftest> .\bin\test_hdf5\bin\SelfTest.exe
wow
- mkdir
中文testinbinand movetest_hdf5into it - check it fails
PS D:\selftest> .\bin\中文test\test_hdf5\bin\SelfTest.exe
fatal: error thrown and no exception handler available.
InitError(mod=:OpenSSL_jll, error=ErrorException("Artifact "OpenSSL" was not installed correctly. Try `using Pkg; Pkg.instantiate()` to re-install all missing resources."))
unknown function (ip: 000000000ecd85c2)
unknown function (ip: 000000000edecd64)
unknown function (ip: 000000000ea24f23)
jl_f__call_latest at D:\selftest\bin\中文test\test_hdf5\bin\libjulia-internal.d (unknown line)
jl_f__setsuper at D:\selftest\bin\中文test\test_hdf5\bin\libjulia-internal.d (unknown line)
unknown function (ip: 000000000ea2317d)
jl_f__setsuper at D:\selftest\bin\中文test\test_hdf5\bin\libjulia-internal.d (unknown line)
unknown function (ip: 000000000ea23263)
jl_clear_implicit_imports at D:\selftest\bin\中文test\test_hdf5\bin\libjulia-internal.d (unknown line)
jl_clear_implicit_imports at D:\selftest\bin\中文test\test_hdf5\bin\libjulia-internal.d (unknown line)
jl_clear_implicit_imports at D:\selftest\bin\中文test\test_hdf5\bin\libjulia-internal.d (unknown line)
jl_fptr_interpret_call at D:\selftest\bin\中文test\test_hdf5\bin\libjulia-internal.d (unknown line)
macro expansion at C:\Users\DELL\AppData\Local\Programs\Julia-1.7.1\share\julia\stdlib\v1.7\Artifacts\src\Artifacts.jl:680 [inlined]
find_artifact_dir at C:\Users\DELL\.julia\packages\JLLWrappers\QpMQW\src\wrapper_generators.jl:17
unknown function (ip: 000000000edb0676)
jl_module_run_initializer at D:\selftest\bin\中文test\test_hdf5\bin\libjulia-internal.d (unknown line)
jl_get_libllvm at D:\selftest\bin\中文test\test_hdf5\bin\libjulia-internal.d (unknown line)
jl_init at D:\selftest\bin\中文test\test_hdf5\bin\libjulia-internal.d (unknown line)
main at D:\selftest\bin\中文test\test_hdf5\bin\SelfTest.e (unknown line)
unknown function (ip: 00000000004013c6)
unknown function (ip: 00000000004014fa)
BaseThreadInitThunk at C:\WINDOWS\System32\KERNEL32.DLL (unknown line)
RtlUserThreadStart at C:\WINDOWS\SYSTEM32\ntdll.dll (unknown line)
- mkdir
eng_testinbinand movetest_hdf5into it - check it works fine
PS D:\selftest> .\bin\eng_test\test_hdf5\bin\SelfTest.exe
wow
- test directly compiled into Chinese directory
create_app(".", "bin/中文"; precompile_execution_file=["test/precompile/run_systems.jl"], force=true, include_lazy_artifacts=true) - check it fails
PS D:\selftest> .\bin\中文\bin\SelfTest.exe
fatal: error thrown and no exception handler available.
InitError(mod=:OpenSSL_jll, error=ErrorException("Artifact "OpenSSL" was not installed correctly. Try `using Pkg; Pkg.instantiate()` to re-install all missing resources."))
unknown function (ip: 00000000101c9e62)
unknown function (ip: 000000001025a4b4)
unknown function (ip: 000000000fe92563)
jl_f__call_latest at D:\selftest\bin\中文\bin\libjulia-internal.d (unknown line)
jl_f__setsuper at D:\selftest\bin\中文\bin\libjulia-internal.d (unknown line)
unknown function (ip: 000000000fe8f10d)
jl_f__setsuper at D:\selftest\bin\中文\bin\libjulia-internal.d (unknown line)
unknown function (ip: 000000000fe8f2c3)
jl_clear_implicit_imports at D:\selftest\bin\中文\bin\libjulia-internal.d (unknown line)
jl_clear_implicit_imports at D:\selftest\bin\中文\bin\libjulia-internal.d (unknown line)
jl_clear_implicit_imports at D:\selftest\bin\中文\bin\libjulia-internal.d (unknown line)
jl_fptr_interpret_call at D:\selftest\bin\中文\bin\libjulia-internal.d (unknown line)
macro expansion at C:\Users\DELL\AppData\Local\Programs\Julia-1.7.1\share\julia\stdlib\v1.7\Artifacts\src\Artifacts.jl:680 [inlined]
find_artifact_dir at C:\Users\DELL\.julia\packages\JLLWrappers\QpMQW\src\wrapper_generators.jl:17
unknown function (ip: 000000001021b486)
jl_module_run_initializer at D:\selftest\bin\中文\bin\libjulia-internal.d (unknown line)
jl_get_libllvm at D:\selftest\bin\中文\bin\libjulia-internal.d (unknown line)
jl_init at D:\selftest\bin\中文\bin\libjulia-internal.d (unknown line)
main at D:\selftest\bin\中文\bin\SelfTest.e (unknown line)
unknown function (ip: 00000000004013c6)
unknown function (ip: 00000000004014fa)
BaseThreadInitThunk at C:\WINDOWS\System32\KERNEL32.DLL (unknown line)
RtlUserThreadStart at C:\WINDOWS\SYSTEM32\ntdll.dll (unknown line)
- rename it to
engand move toeng_test - check it works fine
PS D:\selftest> .\bin\eng_test\eng\bin\SelfTest.exe
wow
It seems that it is a bug with chinese characters in the path of executables.